
void gmon_out_read(char *filename)

{
  File_Format FVar1;
  int iVar2;
  gmon_ptr_size gVar3;
  int iVar4;
  uint uVar5;
  size_t sVar6;
  ulong uVar7;
  bfd_vma bVar8;
  FILE *__stream;
  char *pcVar9;
  histogram *phVar10;
  int *piVar11;
  char *pcVar12;
  uint uVar13;
  long lVar14;
  byte *pbVar15;
  gmon_hdr *pgVar16;
  byte *pbVar17;
  ulong uVar18;
  bool bVar19;
  bool bVar20;
  byte bVar21;
  uint local_a8;
  uint local_a4;
  UNIT raw_bin_count;
  uint version;
  bfd_vma from_pc;
  bfd_vma self_pc;
  uint profrate;
  undefined4 uStack_7c;
  gmon_hdr ghdr;
  uchar tag;
  undefined7 uStack_57;
  bfd_vma local_50;
  uint local_48 [6];
  
  bVar21 = 0;
  lVar14 = 2;
  bVar19 = &stack0xffffffffffffffd0 < (undefined1 *)0x78;
  bVar20 = &stack0x00000000 == (undefined1 *)0xa8;
  pbVar15 = (byte *)filename;
  pbVar17 = &DAT_001110e7;
  do {
    if (lVar14 == 0) break;
    lVar14 = lVar14 + -1;
    bVar19 = *pbVar15 < *pbVar17;
    bVar20 = *pbVar15 == *pbVar17;
    pbVar15 = pbVar15 + 1;
    pbVar17 = pbVar17 + 1;
  } while (bVar20);
  __stream = stdin;
  if (((!bVar19 && !bVar20) != bVar19) && (__stream = fopen(filename,"r"), __stream == (FILE *)0x0))
  goto LAB_00109ba3;
  sVar6 = fread(&ghdr,0x14,1,__stream);
  pcVar9 = whoami;
  FVar1 = file_format;
  if (sVar6 != 1) goto LAB_00109f6f;
  bVar19 = file_format == FF_AUTO;
  bVar20 = file_format == FF_MAGIC;
  if (bVar20) {
    lVar14 = 4;
    pgVar16 = &ghdr;
    pbVar15 = &DAT_001110e9;
    do {
      if (lVar14 == 0) break;
      lVar14 = lVar14 + -1;
      bVar19 = (byte)pgVar16->cookie[0] < *pbVar15;
      bVar20 = pgVar16->cookie[0] == *pbVar15;
      pgVar16 = (gmon_hdr *)((long)pgVar16 + (ulong)bVar21 * -2 + 1);
      pbVar15 = pbVar15 + (ulong)bVar21 * -2 + 1;
    } while (bVar20);
    if ((!bVar19 && !bVar20) == bVar19) {
LAB_001099fe:
      bVar8 = (*core_bfd->xvec->bfd_getx32)(ghdr.version);
      pcVar9 = whoami;
      gmon_file_version = (int)bVar8;
      if (1 < (uint)gmon_file_version) {
        pcVar12 = (char *)dcgettext("gprof","%s: file `%s\' has unsupported version %d\n",5);
        uVar7 = bVar8 & 0xffffffff;
LAB_00109f08:
        fprintf(stderr,pcVar12,pcVar9,filename,uVar7);
                    /* WARNING: Subroutine does not return */
        done(1);
      }
      local_a8 = 0;
      uVar5 = 0;
      local_a4 = 0;
      while (sVar6 = fread(&tag,1,1,__stream), pcVar9 = whoami, sVar6 == 1) {
        if (tag == '\x01') {
          uVar5 = uVar5 + 1;
          gmon_input = gmon_input | 2;
          cg_read_rec((FILE *)__stream,filename);
        }
        else if (tag == '\0') {
          local_a4 = local_a4 + 1;
          gmon_input = gmon_input | 1;
          hist_read_rec((FILE *)__stream,filename);
        }
        else {
          if (tag != '\x02') {
            pcVar12 = (char *)dcgettext("gprof","%s: %s: found bad tag %d (file corrupted?)\n",5);
            uVar7 = (ulong)tag;
            goto LAB_00109f08;
          }
          local_a8 = local_a8 + 1;
          gmon_input = gmon_input | 4;
          bb_read_rec((FILE *)__stream,filename);
        }
      }
      goto LAB_001099b1;
    }
LAB_00109cae:
    pcVar9 = "%s: file `%s\' has bad magic cookie\n";
    goto LAB_0010a006;
  }
  bVar19 = false;
  bVar20 = file_format == FF_AUTO;
  if (bVar20) {
    lVar14 = 4;
    pgVar16 = &ghdr;
    pbVar15 = &DAT_001110e9;
    do {
      if (lVar14 == 0) break;
      lVar14 = lVar14 + -1;
      bVar19 = (byte)pgVar16->cookie[0] < *pbVar15;
      bVar20 = pgVar16->cookie[0] == *pbVar15;
      pgVar16 = (gmon_hdr *)((long)pgVar16 + (ulong)bVar21 * -2 + 1);
      pbVar15 = pbVar15 + (ulong)bVar21 * -2 + 1;
    } while (bVar20);
    if ((!bVar19 && !bVar20) == bVar19) goto LAB_001099fe;
  }
  else if (1 < file_format - FF_BSD) {
    pcVar12 = (char *)dcgettext("gprof","%s: don\'t know how to deal with file format %d\n",5);
    fprintf(stderr,pcVar12,pcVar9,(ulong)FVar1);
                    /* WARNING: Subroutine does not return */
    done(1);
  }
  gmon_input = 3;
  iVar2 = fseek(__stream,0,0);
  if (iVar2 < 0) goto LAB_00109ba3;
  iVar2 = gmon_io_read_vma((FILE *)__stream,(bfd_vma *)&tag);
  if ((((iVar2 == 0) && (iVar2 = gmon_io_read_vma((FILE *)__stream,&local_50), iVar2 == 0)) &&
      (iVar2 = gmon_io_read_32((FILE *)__stream,local_48), iVar2 == 0)) &&
     (iVar2 = gmon_io_read_32((FILE *)__stream,&version), iVar2 == 0)) {
    if (version == 0x51879) {
      iVar2 = gmon_io_read_32((FILE *)__stream,&profrate);
      if (iVar2 != 0) goto LAB_00109f6f;
      uVar7 = (ulong)profrate;
      if ((histograms != (histogram *)0x0) && (uVar7 = hz, (int)profrate != hz)) {
        pcVar9 = "%s: profiling rate incompatible with first gmon file\n";
        goto LAB_00109f7b;
      }
      hz = uVar7;
      gVar3 = gmon_get_ptr_size();
      if (gVar3 == ptr_32bit) {
        lVar14 = 0x20;
        iVar2 = 0x20;
      }
      else {
        lVar14 = 0x28;
        if (gVar3 == ptr_64bit) {
          iVar2 = 0x28;
        }
        else {
          lVar14 = 0;
          iVar2 = 0;
        }
      }
    }
    else {
      if (file_format == FF_BSD44) goto LAB_00109cae;
      gVar3 = gmon_get_ptr_size();
      if (gVar3 == ptr_32bit) {
        lVar14 = 0xc;
        iVar2 = 0xc;
      }
      else {
        lVar14 = 0x14;
        if (gVar3 != ptr_64bit) {
          lVar14 = 0;
        }
        iVar2 = 0x14;
        if (gVar3 != ptr_64bit) {
          iVar2 = 0;
        }
      }
    }
    iVar4 = fseek(__stream,lVar14,0);
    if (iVar4 < 0) {
LAB_00109ba3:
      perror(filename);
                    /* WARNING: Subroutine does not return */
      done(1);
    }
    uVar5 = local_48[0] - iVar2;
    uVar7 = (ulong)(long)(int)uVar5 >> 1;
    uVar13 = (uint)uVar7;
    if (histograms == (histogram *)0x0) {
      num_histograms = 1;
      phVar10 = (histogram *)xmalloc(0x20);
      histograms = phVar10;
      phVar10->lowpc = CONCAT71(uStack_57,tag);
      phVar10->num_bins = uVar13;
      sVar6 = (uVar7 & 0xffffffff) << 2;
      phVar10->highpc = local_50;
      hist_scale = (double)(local_50 - CONCAT71(uStack_57,tag) >> 1) / (double)(uVar7 & 0xffffffff);
      piVar11 = (int *)xmalloc(sVar6);
      phVar10->sample = piVar11;
      memset(histograms->sample,0,sVar6);
    }
    else if (((CONCAT71(uStack_57,tag) != histograms->lowpc) || (local_50 != histograms->highpc)) ||
            (histograms->num_bins != uVar13)) {
      pcVar9 = "%s: incompatible with first gmon file\n";
      goto LAB_00109f7b;
    }
    if (((byte)debug_level & 0x40) != 0) {
      printf("[gmon_out_read] lowpc 0x%lx highpc 0x%lx ncnt %d\n",CONCAT71(uStack_57,tag),local_50,
             (ulong)local_48[0]);
      printf("[gmon_out_read] samp_bytes %d hist_num_bins %d\n",(ulong)uVar5,uVar7 & 0xffffffff);
    }
    if ((-1 < (int)uVar5) && (histograms->lowpc <= histograms->highpc)) {
      local_a4 = (uint)(uVar13 != 0);
      if (uVar13 != 0) {
        uVar18 = 0;
        do {
          sVar6 = fread(raw_bin_count,2,1,__stream);
          pcVar9 = whoami;
          if (sVar6 != 1) {
            pcVar12 = (char *)dcgettext("gprof","%s: unexpected EOF after reading %d/%d bins\n",5);
            fprintf(stderr,pcVar12,pcVar9,(ulong)((int)uVar18 - 1),uVar7 & 0xffffffff);
                    /* WARNING: Subroutine does not return */
            done(1);
          }
          bVar8 = (*core_bfd->xvec->bfd_getx16)(raw_bin_count);
          histograms->sample[uVar18] = histograms->sample[uVar18] + (int)bVar8;
          bVar19 = uVar13 - 1 != uVar18;
          uVar18 = uVar18 + 1;
        } while (bVar19);
      }
      uVar5 = 0;
      while ((iVar2 = gmon_io_read_vma((FILE *)__stream,&from_pc), iVar2 == 0 &&
             (iVar2 = gmon_io_read_vma((FILE *)__stream,&self_pc), iVar2 == 0))) {
        gVar3 = gmon_get_ptr_size();
        if (gVar3 == ptr_32bit) {
          iVar2 = gmon_io_read_32((FILE *)__stream,&profrate);
          if (iVar2 != 0) break;
          uVar7 = (ulong)profrate;
        }
        else {
          if ((gVar3 != ptr_64bit) ||
             (iVar2 = gmon_io_read_64((FILE *)__stream,(ulong *)&profrate), iVar2 != 0)) break;
          uVar7 = CONCAT44(uStack_7c,profrate);
        }
        uVar5 = uVar5 + 1;
        if (((byte)debug_level & 0x40) != 0) {
          printf("[gmon_out_read] frompc 0x%lx selfpc 0x%lx count %lu\n",from_pc,self_pc,uVar7);
        }
        cg_tally(from_pc,self_pc,uVar7);
      }
      local_a8 = 0;
      if (hz == 0) {
        iVar2 = hertz();
        hz = (long)iVar2;
        if (hz == 0) {
          hz = 1;
          pcVar9 = (char *)dcgettext("gprof","time is in ticks, not seconds\n",5);
          fprintf(stderr,pcVar9);
        }
      }
LAB_001099b1:
      if (stdin != __stream) {
        fclose(__stream);
      }
      iVar2 = gmon_file_version;
      if (((byte)output_style & 0x20) == 0) {
        return;
      }
      pcVar9 = (char *)dcgettext("gprof","File `%s\' (version %d) contains:\n",5);
      printf(pcVar9,filename,(ulong)(uint)iVar2);
      if (local_a4 == 1) {
        pcVar9 = (char *)dcgettext("gprof","\t%d histogram record\n",5);
      }
      else {
        pcVar9 = (char *)dcgettext("gprof","\t%d histogram records\n",5);
      }
      printf(pcVar9,(ulong)local_a4);
      if (uVar5 == 1) {
        pcVar9 = (char *)dcgettext("gprof","\t%d call-graph record\n",5);
      }
      else {
        pcVar9 = (char *)dcgettext("gprof","\t%d call-graph records\n",5);
      }
      printf(pcVar9,(ulong)uVar5);
      if (local_a8 == 1) {
        pcVar9 = (char *)dcgettext("gprof","\t%d basic-block count record\n",5);
      }
      else {
        pcVar9 = (char *)dcgettext("gprof","\t%d basic-block count records\n",5);
      }
      printf(pcVar9,(ulong)local_a8);
      first_output = 0;
      return;
    }
    pcVar9 = "%s: file \'%s\' does not appear to be in gmon.out format\n";
LAB_0010a006:
    pcVar12 = whoami;
    pcVar9 = (char *)dcgettext("gprof",pcVar9,5);
    fprintf(stderr,pcVar9,pcVar12,filename);
                    /* WARNING: Subroutine does not return */
    done(1);
  }
LAB_00109f6f:
  pcVar9 = "%s: file too short to be a gmon file\n";
LAB_00109f7b:
  pcVar9 = (char *)dcgettext("gprof",pcVar9,5);
  fprintf(stderr,pcVar9,filename);
                    /* WARNING: Subroutine does not return */
  done(1);
}



void FUN_00109740(byte *param_1)

{
  int *piVar1;
  uint uVar2;
  int iVar3;
  int iVar4;
  uint uVar5;
  size_t sVar6;
  ulong uVar7;
  FILE *__stream;
  char *pcVar8;
  ulong *puVar9;
  ulong uVar10;
  long lVar11;
  undefined8 uVar12;
  byte *pbVar13;
  byte *pbVar14;
  bool bVar15;
  bool bVar16;
  byte bVar17;
  uint local_a8;
  uint local_a4;
  undefined1 local_96 [2];
  int local_94;
  undefined8 local_90;
  undefined8 local_88;
  uint local_80;
  undefined4 uStack_7c;
  byte local_78 [4];
  undefined1 local_74 [28];
  byte local_58;
  undefined7 uStack_57;
  ulong local_50;
  uint local_48 [6];
  
  bVar17 = 0;
  lVar11 = 2;
  bVar15 = &stack0xffffffffffffffd0 < (undefined1 *)0x78;
  bVar16 = &stack0x00000000 == (undefined1 *)0xa8;
  pbVar13 = param_1;
  pbVar14 = &DAT_001110e7;
  do {
    if (lVar11 == 0) break;
    lVar11 = lVar11 + -1;
    bVar15 = *pbVar13 < *pbVar14;
    bVar16 = *pbVar13 == *pbVar14;
    pbVar13 = pbVar13 + 1;
    pbVar14 = pbVar14 + 1;
  } while (bVar16);
  __stream = stdin;
  if (((!bVar15 && !bVar16) != bVar15) &&
     (__stream = fopen((char *)param_1,"r"), __stream == (FILE *)0x0)) goto LAB_00109ba3;
  sVar6 = fread(local_78,0x14,1,__stream);
  uVar12 = DAT_00119b10;
  uVar5 = DAT_001195c0;
  if (sVar6 != 1) goto LAB_00109f6f;
  bVar15 = DAT_001195c0 == 0;
  bVar16 = DAT_001195c0 == 1;
  if (bVar16) {
    lVar11 = 4;
    pbVar13 = local_78;
    pbVar14 = &DAT_001110e9;
    do {
      if (lVar11 == 0) break;
      lVar11 = lVar11 + -1;
      bVar15 = *pbVar13 < *pbVar14;
      bVar16 = *pbVar13 == *pbVar14;
      pbVar13 = pbVar13 + (ulong)bVar17 * -2 + 1;
      pbVar14 = pbVar14 + (ulong)bVar17 * -2 + 1;
    } while (bVar16);
    if ((!bVar15 && !bVar16) == bVar15) {
LAB_001099fe:
      uVar5 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x38))(local_74);
      uVar12 = DAT_00119b10;
      DAT_001195b4 = uVar5;
      if (1 < uVar5) {
        pcVar8 = (char *)dcgettext("gprof","%s: file `%s\' has unsupported version %d\n",5);
        uVar7 = (ulong)uVar5;
LAB_00109f08:
        fprintf(stderr,pcVar8,uVar12,param_1,uVar7);
                    /* WARNING: Subroutine does not return */
        FUN_0010a4c0(1);
      }
      local_a8 = 0;
      uVar5 = 0;
      local_a4 = 0;
      while (sVar6 = fread(&local_58,1,1,__stream), uVar12 = DAT_00119b10, sVar6 == 1) {
        if (local_58 == 1) {
          uVar5 = uVar5 + 1;
          DAT_001195b8 = DAT_001195b8 | 2;
          FUN_001041c0(__stream,param_1);
        }
        else if (local_58 == 0) {
          local_a4 = local_a4 + 1;
          DAT_001195b8 = DAT_001195b8 | 1;
          FUN_0010b590(__stream,param_1);
        }
        else {
          if (local_58 != 2) {
            pcVar8 = (char *)dcgettext("gprof","%s: %s: found bad tag %d (file corrupted?)\n",5);
            uVar7 = (ulong)local_58;
            goto LAB_00109f08;
          }
          local_a8 = local_a8 + 1;
          DAT_001195b8 = DAT_001195b8 | 4;
          FUN_001034d0(__stream,param_1);
        }
      }
      goto LAB_001099b1;
    }
LAB_00109cae:
    pcVar8 = "%s: file `%s\' has bad magic cookie\n";
    goto LAB_0010a006;
  }
  bVar15 = false;
  bVar16 = DAT_001195c0 == 0;
  if (bVar16) {
    lVar11 = 4;
    pbVar13 = local_78;
    pbVar14 = &DAT_001110e9;
    do {
      if (lVar11 == 0) break;
      lVar11 = lVar11 + -1;
      bVar15 = *pbVar13 < *pbVar14;
      bVar16 = *pbVar13 == *pbVar14;
      pbVar13 = pbVar13 + (ulong)bVar17 * -2 + 1;
      pbVar14 = pbVar14 + (ulong)bVar17 * -2 + 1;
    } while (bVar16);
    if ((!bVar15 && !bVar16) == bVar15) goto LAB_001099fe;
  }
  else if (1 < DAT_001195c0 - 2) {
    pcVar8 = (char *)dcgettext("gprof","%s: don\'t know how to deal with file format %d\n",5);
    fprintf(stderr,pcVar8,uVar12,(ulong)uVar5);
                    /* WARNING: Subroutine does not return */
    FUN_0010a4c0(1);
  }
  DAT_001195b8 = 3;
  iVar3 = fseek(__stream,0,0);
  if (iVar3 < 0) goto LAB_00109ba3;
  iVar3 = FUN_00109550(__stream,&local_58);
  if ((((iVar3 == 0) && (iVar3 = FUN_00109550(__stream,&local_50), iVar3 == 0)) &&
      (iVar3 = FUN_00109500(__stream,local_48), iVar3 == 0)) &&
     (iVar3 = FUN_00109500(__stream,&local_94), iVar3 == 0)) {
    if (local_94 == 0x51879) {
      iVar3 = FUN_00109500(__stream,&local_80);
      if (iVar3 != 0) goto LAB_00109f6f;
      uVar7 = (ulong)local_80;
      if ((DAT_00119b18 != (ulong *)0x0) &&
         (uVar7 = DAT_001195e8, (long)(int)local_80 != DAT_001195e8)) {
        pcVar8 = "%s: profiling rate incompatible with first gmon file\n";
        goto LAB_00109f7b;
      }
      DAT_001195e8 = uVar7;
      iVar3 = FUN_00109420();
      if (iVar3 == 0) {
        lVar11 = 0x20;
        iVar3 = 0x20;
      }
      else {
        lVar11 = 0x28;
        if (iVar3 == 1) {
          iVar3 = 0x28;
        }
        else {
          lVar11 = 0;
          iVar3 = 0;
        }
      }
    }
    else {
      if (DAT_001195c0 == 3) goto LAB_00109cae;
      iVar4 = FUN_00109420();
      if (iVar4 == 0) {
        lVar11 = 0xc;
        iVar3 = 0xc;
      }
      else {
        lVar11 = 0x14;
        if (iVar4 != 1) {
          lVar11 = 0;
        }
        iVar3 = 0x14;
        if (iVar4 != 1) {
          iVar3 = 0;
        }
      }
    }
    iVar4 = fseek(__stream,lVar11,0);
    if (iVar4 < 0) {
LAB_00109ba3:
      perror((char *)param_1);
                    /* WARNING: Subroutine does not return */
      FUN_0010a4c0(1);
    }
    uVar5 = local_48[0] - iVar3;
    uVar7 = (ulong)(long)(int)uVar5 >> 1;
    iVar3 = (int)uVar7;
    if (DAT_00119b18 == (ulong *)0x0) {
      DAT_00119b20 = 1;
      puVar9 = (ulong *)xmalloc(0x20);
      DAT_00119b18 = puVar9;
      *puVar9 = CONCAT71(uStack_57,local_58);
      *(int *)(puVar9 + 2) = iVar3;
      sVar6 = (uVar7 & 0xffffffff) << 2;
      puVar9[1] = local_50;
      DAT_00119b28 = (double)(local_50 - CONCAT71(uStack_57,local_58) >> 1) /
                     (double)(uVar7 & 0xffffffff);
      uVar10 = xmalloc(sVar6);
      puVar9[3] = uVar10;
      memset((void *)DAT_00119b18[3],0,sVar6);
    }
    else if (((CONCAT71(uStack_57,local_58) != *DAT_00119b18) || (local_50 != DAT_00119b18[1])) ||
            ((int)DAT_00119b18[2] != iVar3)) {
      pcVar8 = "%s: incompatible with first gmon file\n";
      goto LAB_00109f7b;
    }
    if (((byte)DAT_001195e4 & 0x40) != 0) {
      printf("[gmon_out_read] lowpc 0x%lx highpc 0x%lx ncnt %d\n",CONCAT71(uStack_57,local_58),
             local_50,(ulong)local_48[0]);
      printf("[gmon_out_read] samp_bytes %d hist_num_bins %d\n",(ulong)uVar5,uVar7 & 0xffffffff);
    }
    if ((-1 < (int)uVar5) && (*DAT_00119b18 <= DAT_00119b18[1])) {
      local_a4 = (uint)(iVar3 != 0);
      if (iVar3 != 0) {
        uVar10 = 0;
        do {
          sVar6 = fread(local_96,2,1,__stream);
          uVar12 = DAT_00119b10;
          if (sVar6 != 1) {
            pcVar8 = (char *)dcgettext("gprof","%s: unexpected EOF after reading %d/%d bins\n",5);
            fprintf(stderr,pcVar8,uVar12,(ulong)((int)uVar10 - 1),uVar7 & 0xffffffff);
                    /* WARNING: Subroutine does not return */
            FUN_0010a4c0(1);
          }
          iVar4 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x50))(local_96);
          piVar1 = (int *)(DAT_00119b18[3] + uVar10 * 4);
          *piVar1 = *piVar1 + iVar4;
          bVar15 = iVar3 - 1 != uVar10;
          uVar10 = uVar10 + 1;
        } while (bVar15);
      }
      uVar5 = 0;
      while ((iVar3 = FUN_00109550(__stream,&local_90), iVar3 == 0 &&
             (iVar3 = FUN_00109550(__stream,&local_88), iVar3 == 0))) {
        iVar3 = FUN_00109420();
        if (iVar3 == 0) {
          iVar3 = FUN_00109500(__stream,&local_80);
          if (iVar3 != 0) break;
          uVar7 = (ulong)local_80;
        }
        else {
          if ((iVar3 != 1) || (iVar3 = FUN_001093d0(__stream,&local_80), iVar3 != 0)) break;
          uVar7 = CONCAT44(uStack_7c,local_80);
        }
        uVar5 = uVar5 + 1;
        if (((byte)DAT_001195e4 & 0x40) != 0) {
          printf("[gmon_out_read] frompc 0x%lx selfpc 0x%lx count %lu\n",local_90,local_88,uVar7);
        }
        FUN_001040b0(local_90,local_88,uVar7);
      }
      local_a8 = 0;
      if (DAT_001195e8 == 0) {
        iVar3 = FUN_0010a4d0();
        DAT_001195e8 = (ulong)iVar3;
        if (DAT_001195e8 == 0) {
          DAT_001195e8 = 1;
          pcVar8 = (char *)dcgettext("gprof","time is in ticks, not seconds\n",5);
          fprintf(stderr,pcVar8);
        }
      }
LAB_001099b1:
      if (stdin != __stream) {
        fclose(__stream);
      }
      uVar2 = DAT_001195b4;
      if (((byte)DAT_001195e0 & 0x20) == 0) {
        return;
      }
      pcVar8 = (char *)dcgettext("gprof","File `%s\' (version %d) contains:\n",5);
      printf(pcVar8,param_1,(ulong)uVar2);
      if (local_a4 == 1) {
        pcVar8 = (char *)dcgettext("gprof","\t%d histogram record\n",5);
      }
      else {
        pcVar8 = (char *)dcgettext("gprof","\t%d histogram records\n",5);
      }
      printf(pcVar8,(ulong)local_a4);
      if (uVar5 == 1) {
        pcVar8 = (char *)dcgettext("gprof","\t%d call-graph record\n",5);
      }
      else {
        pcVar8 = (char *)dcgettext("gprof","\t%d call-graph records\n",5);
      }
      printf(pcVar8,(ulong)uVar5);
      if (local_a8 == 1) {
        pcVar8 = (char *)dcgettext("gprof","\t%d basic-block count record\n",5);
      }
      else {
        pcVar8 = (char *)dcgettext("gprof","\t%d basic-block count records\n",5);
      }
      printf(pcVar8,(ulong)local_a8);
      DAT_001182d8 = 0;
      return;
    }
    pcVar8 = "%s: file \'%s\' does not appear to be in gmon.out format\n";
LAB_0010a006:
    uVar12 = DAT_00119b10;
    pcVar8 = (char *)dcgettext("gprof",pcVar8,5);
    fprintf(stderr,pcVar8,uVar12,param_1);
                    /* WARNING: Subroutine does not return */
    FUN_0010a4c0(1);
  }
LAB_00109f6f:
  pcVar8 = "%s: file too short to be a gmon file\n";
LAB_00109f7b:
  pcVar8 = (char *)dcgettext("gprof",pcVar8,5);
  fprintf(stderr,pcVar8,param_1);
                    /* WARNING: Subroutine does not return */
  FUN_0010a4c0(1);
}


PUSH R15
MOV ECX,0x2
PUSH R14
PUSH R13
PUSH R12
MOV R12,RDI
LEA RDI,[0x1110e7]
PUSH RBP
MOV RSI,R12
PUSH RBX
SUB RSP,0x78
CMPSB.REPE RDI,RSI
SETA AL
SBB AL,0x0
TEST AL,AL
JNZ 0x00109b88
MOV RBX,qword ptr [0x00118910]
LEA RBP,[RSP + 0x30]
MOV RCX,RBX
MOV EDX,0x1
MOV ESI,0x14
MOV RDI,RBP
CALL 0x001020f0
CMP RAX,0x1
JNZ 0x00109f6f
MOV R13D,dword ptr [0x001195c0]
CMP R13D,0x1
JZ 0x00109c90
TEST R13D,R13D
JZ 0x001099e0
LEA EAX,[R13 + -0x2]
CMP EAX,0x1
JA 0x00109fb3
XOR EDX,EDX
XOR ESI,ESI
MOV RDI,RBX
MOV dword ptr [0x001195b8],0x3
CALL 0x00102380
TEST EAX,EAX
JS 0x00109ba3
LEA RBP,[RSP + 0x50]
MOV RDI,RBX
MOV RSI,RBP
CALL 0x00109550
TEST EAX,EAX
JNZ 0x00109f6f
LEA RSI,[RBP + 0x8]
MOV RDI,RBX
CALL 0x00109550
TEST EAX,EAX
JNZ 0x00109f6f
LEA RSI,[RBP + 0x10]
MOV RDI,RBX
CALL 0x00109500
TEST EAX,EAX
JNZ 0x00109f6f
LEA RSI,[RSP + 0x14]
MOV RDI,RBX
CALL 0x00109500
MOV dword ptr [RSP],EAX
TEST EAX,EAX
JNZ 0x00109f6f
CMP dword ptr [RSP + 0x14],0x51879
JZ 0x00109da0
CMP dword ptr [0x001195c0],0x3
JZ 0x00109cae
CALL 0x00109420
TEST EAX,EAX
JZ 0x00109d28
CMP EAX,0x1
MOV ESI,0x14
MOV EAX,0x0
MOV EBP,0x14
CMOVNZ RSI,RAX
CMOVNZ EBP,dword ptr [RSP]
XOR EDX,EDX
MOV RDI,RBX
CALL 0x00102380
TEST EAX,EAX
JS 0x00109ba3
MOV EAX,dword ptr [RSP + 0x60]
SUB EAX,EBP
MOV EBP,EAX
CDQE
SHR RAX,0x1
MOV RCX,RAX
MOV qword ptr [RSP + 0x8],RAX
MOV RAX,qword ptr [0x00119b18]
TEST RAX,RAX
JZ 0x00109e08
MOV RDX,qword ptr [RAX]
CMP qword ptr [RSP + 0x50],RDX
JNZ 0x0010a05a
MOV RDX,qword ptr [RAX + 0x8]
CMP qword ptr [RSP + 0x58],RDX
JNZ 0x0010a05a
CMP dword ptr [RAX + 0x10],ECX
JNZ 0x0010a05a
TEST byte ptr [0x001195e4],0x40
JNZ 0x00109cd0
TEST EBP,EBP
JS 0x00109ff3
MOV RAX,qword ptr [0x00119b18]
MOV RCX,qword ptr [RAX + 0x8]
CMP qword ptr [RAX],RCX
JA 0x00109ff3
MOV RAX,qword ptr [RSP + 0x8]
XOR ECX,ECX
TEST EAX,EAX
SETNZ CL
MOV dword ptr [RSP + 0x4],ECX
JZ 0x00109973
MOV RAX,qword ptr [RSP + 0x8]
XOR R15D,R15D
LEA RBP,[RSP + 0x12]
LEA R13D,[RAX + -0x1]
JMP 0x0010992b
MOV R15,RAX
MOV RCX,RBX
MOV EDX,0x1
MOV ESI,0x2
MOV RDI,RBP
CALL 0x001020f0
CMP RAX,0x1
JNZ 0x00109f29
MOV RAX,qword ptr [0x00119ad8]
MOV RDI,RBP
MOV RAX,qword ptr [RAX + 0x8]
CALL qword ptr [RAX + 0x50]
MOV RDX,qword ptr [0x00119b18]
MOV RDX,qword ptr [RDX + 0x18]
ADD dword ptr [RDX + R15*0x4],EAX
LEA RAX,[R15 + 0x1]
CMP R13,R15
JNZ 0x00109928
LEA RAX,[RSP + 0x28]
XOR EBP,EBP
LEA R13,[RSP + 0x18]
MOV qword ptr [RSP + 0x8],RAX
LEA R14,[RSP + 0x20]
NOP dword ptr [RAX]
MOV RSI,R13
MOV RDI,RBX
CALL 0x00109550
TEST EAX,EAX
JZ 0x00109ad8
CMP qword ptr [0x001195e8],0x0
JZ 0x00109d08
CMP qword ptr [0x00118910],RBX
JZ 0x001099c2
MOV RDI,RBX
CALL 0x00102140
TEST byte ptr [0x001195e0],0x20
JNZ 0x00109bb8
ADD RSP,0x78
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
MOV ECX,0x4
LEA RDI,[0x1110e9]
MOV RSI,RBP
CMPSB.REPE RDI,RSI
SETA AL
SBB AL,0x0
TEST AL,AL
JNZ 0x001097c1
MOV RAX,qword ptr [0x00119ad8]
LEA RDI,[RBP + 0x4]
MOV RAX,qword ptr [RAX + 0x8]
CALL qword ptr [RAX + 0x38]
MOV RBP,RAX
MOV dword ptr [0x001195b4],EAX
CMP EAX,0x1
JA 0x0010a033
MOV dword ptr [RSP],0x0
XOR EBP,EBP
LEA R13,[RSP + 0x50]
MOV dword ptr [RSP + 0x4],0x0
NOP dword ptr [RAX + RAX*0x1]
MOV RCX,RBX
MOV EDX,0x1
MOV ESI,0x1
MOV RDI,R13
CALL 0x001020f0
CMP RAX,0x1
JNZ 0x001099b1
MOVZX R14D,byte ptr [RSP + 0x50]
CMP R14B,0x1
JZ 0x00109ab8
TEST R14B,R14B
JNZ 0x00109a90
MOV RSI,R12
MOV RDI,RBX
ADD dword ptr [RSP + 0x4],0x1
OR dword ptr [0x001195b8],0x1
CALL 0x0010b590
JMP 0x00109a40
CMP R14B,0x2
JNZ 0x00109ee5
MOV RSI,R12
MOV RDI,RBX
ADD dword ptr [RSP],0x1
OR dword ptr [0x001195b8],0x4
CALL 0x001034d0
JMP 0x00109a40
MOV RSI,R12
MOV RDI,RBX
ADD EBP,0x1
OR dword ptr [0x001195b8],0x2
CALL 0x001041c0
JMP 0x00109a40
MOV RSI,R14
MOV RDI,RBX
CALL 0x00109550
TEST EAX,EAX
JNZ 0x001099a3
CALL 0x00109420
TEST EAX,EAX
JZ 0x00109b68
CMP EAX,0x1
JNZ 0x001099a3
MOV RSI,qword ptr [RSP + 0x8]
MOV RDI,RBX
CALL 0x001093d0
TEST EAX,EAX
JNZ 0x001099a3
MOV R15,qword ptr [RSP + 0x28]
ADD EBP,0x1
MOV RSI,qword ptr [RSP + 0x20]
MOV RDI,qword ptr [RSP + 0x18]
TEST byte ptr [0x001195e4],0x40
JNZ 0x00109b40
MOV RDX,R15
CALL 0x001040b0
JMP 0x00109990
MOV RDX,RSI
MOV RCX,R15
MOV RSI,RDI
XOR EAX,EAX
LEA RDI,[0x110fe8]
CALL 0x001021c0
MOV RSI,qword ptr [RSP + 0x20]
MOV RDI,qword ptr [RSP + 0x18]
JMP 0x00109b2d
MOV RSI,qword ptr [RSP + 0x8]
MOV RDI,RBX
CALL 0x00109500
TEST EAX,EAX
JNZ 0x001099a3
MOV R15D,dword ptr [RSP + 0x28]
JMP 0x00109b17
LEA RSI,[0x1123a1]
MOV RDI,R12
CALL 0x001023e0
MOV RBX,RAX
TEST RAX,RAX
JNZ 0x00109776
MOV RDI,R12
CALL 0x00102400
MOV EDI,0x1
CALL 0x0010a4c0
MOV EBX,dword ptr [0x001195b4]
MOV EDX,0x5
LEA RSI,[0x111070]
LEA RDI,[0x110008]
CALL 0x00102170
MOV RSI,R12
MOV EDX,EBX
MOV RDI,RAX
XOR EAX,EAX
CALL 0x001021c0
CMP dword ptr [RSP + 0x4],0x1
MOV EDX,0x5
JZ 0x00109d80
LEA RSI,[0x111104]
LEA RDI,[0x110008]
CALL 0x00102170
MOV ESI,dword ptr [RSP + 0x4]
MOV RDI,RAX
XOR EAX,EAX
CALL 0x001021c0
MOV EDX,0x5
CMP EBP,0x1
JZ 0x00109d60
LEA RSI,[0x111132]
LEA RDI,[0x110008]
CALL 0x00102170
MOV RDI,RAX
MOV ESI,EBP
XOR EAX,EAX
CALL 0x001021c0
CMP dword ptr [RSP],0x1
MOV EDX,0x5
JZ 0x00109d40
LEA RSI,[0x111098]
LEA RDI,[0x110008]
CALL 0x00102170
MOV ESI,dword ptr [RSP]
MOV RDI,RAX
XOR EAX,EAX
CALL 0x001021c0
MOV dword ptr [0x001182d8],0x0
ADD RSP,0x78
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
MOV ECX,0x4
LEA RDI,[0x1110e9]
MOV RSI,RBP
CMPSB.REPE RDI,RSI
SETA AL
SBB AL,0x0
TEST AL,AL
JZ 0x001099fe
MOV RBX,qword ptr [0x00119b10]
MOV EDX,0x5
LEA RSI,[0x110e30]
JMP 0x0010a006
MOV RDX,qword ptr [RSP + 0x58]
MOV RSI,qword ptr [RSP + 0x50]
LEA RDI,[0x110f18]
XOR EAX,EAX
MOV ECX,dword ptr [RSP + 0x60]
CALL 0x001021c0
MOV EDX,dword ptr [RSP + 0x8]
MOV ESI,EBP
XOR EAX,EAX
LEA RDI,[0x110f50]
CALL 0x001021c0
JMP 0x001098e3
CALL 0x0010a4d0
CDQE
TEST RAX,RAX
JZ 0x00109e91
MOV qword ptr [0x001195e8],RAX
JMP 0x001099b1
MOV ESI,0xc
MOV EBP,0xc
JMP 0x00109879
LEA RSI,[0x11114a]
LEA RDI,[0x110008]
CALL 0x00102170
JMP 0x00109c65
LEA RSI,[0x11111b]
LEA RDI,[0x110008]
CALL 0x00102170
JMP 0x00109c37
LEA RSI,[0x1110ee]
LEA RDI,[0x110008]
CALL 0x00102170
JMP 0x00109c08
LEA RSI,[RSP + 0x28]
MOV RDI,RBX
CALL 0x00109500
MOV EBP,EAX
TEST EAX,EAX
JNZ 0x00109f6f
CMP qword ptr [0x00119b18],0x0
MOV EAX,dword ptr [RSP + 0x28]
JZ 0x00109ed9
CDQE
CMP RAX,qword ptr [0x001195e8]
JNZ 0x00109fa5
CALL 0x00109420
TEST EAX,EAX
JZ 0x00109eca
CMP EAX,0x1
MOV ESI,0x28
MOV EDX,0x0
MOV EAX,0x28
CMOVNZ RSI,RDX
CMOVZ EBP,EAX
JMP 0x00109879
MOV dword ptr [0x00119b20],0x1
MOV EDI,0x20
CALL 0x00102240
MOV RDX,qword ptr [RSP + 0x50]
MOV RCX,qword ptr [RSP + 0x8]
PXOR XMM0,XMM0
MOV R14,RAX
MOV qword ptr [0x00119b18],RAX
PXOR XMM1,XMM1
MOV qword ptr [RAX],RDX
MOV RAX,qword ptr [RSP + 0x58]
MOV R13D,ECX
CVTSI2SD XMM1,R13
MOV dword ptr [R14 + 0x10],ECX
SHL R13,0x2
MOV qword ptr [R14 + 0x8],RAX
SUB RAX,RDX
MOV RDI,R13
SHR RAX,0x1
CVTSI2SD XMM0,RAX
DIVSD XMM0,XMM1
MOVSD qword ptr [0x00119b28],XMM0
CALL 0x00102240
MOV RDX,R13
XOR ESI,ESI
MOV qword ptr [R14 + 0x18],RAX
MOV RAX,qword ptr [0x00119b18]
MOV RDI,qword ptr [RAX + 0x18]
CALL 0x00102210
JMP 0x001098d6
MOV EDX,0x5
LEA RSI,[0x111020]
LEA RDI,[0x110008]
MOV qword ptr [0x001195e8],0x1
CALL 0x00102170
MOV RDI,qword ptr [0x00118940]
MOV RSI,RAX
XOR EAX,EAX
CALL 0x001022f0
JMP 0x001099b1
MOV ESI,0x20
MOV EBP,0x20
JMP 0x00109879
MOV qword ptr [0x001195e8],RAX
JMP 0x00109dd8
MOV EDX,0x5
LEA RSI,[0x110e88]
LEA RDI,[0x110008]
MOV RBX,qword ptr [0x00119b10]
CALL 0x00102170
MOVZX R8D,R14B
MOV RDI,qword ptr [0x00118940]
MOV RSI,RAX
MOV RCX,R12
MOV RDX,RBX
XOR EAX,EAX
CALL 0x001022f0
MOV EDI,0x1
CALL 0x0010a4c0
MOV RBX,qword ptr [0x00119b10]
MOV EDX,0x5
LEA RSI,[0x110fb8]
LEA RDI,[0x110008]
CALL 0x00102170
MOV RDI,qword ptr [0x00118940]
MOV R8D,dword ptr [RSP + 0x8]
LEA ECX,[R15 + -0x1]
MOV RSI,RAX
MOV RDX,RBX
XOR EAX,EAX
CALL 0x001022f0
MOV EDI,0x1
CALL 0x0010a4c0
MOV EDX,0x5
LEA RSI,[0x110e08]
LEA RDI,[0x110008]
CALL 0x00102170
MOV RDI,qword ptr [0x00118940]
MOV RDX,R12
MOV RSI,RAX
XOR EAX,EAX
CALL 0x001022f0
MOV EDI,0x1
CALL 0x0010a4c0
MOV EDX,0x5
LEA RSI,[0x110eb8]
JMP 0x00109f7b
MOV RBX,qword ptr [0x00119b10]
MOV EDX,0x5
LEA RSI,[0x111040]
LEA RDI,[0x110008]
CALL 0x00102170
MOV RDI,qword ptr [0x00118940]
MOV ECX,R13D
MOV RSI,RAX
MOV RDX,RBX
XOR EAX,EAX
CALL 0x001022f0
MOV EDI,0x1
CALL 0x0010a4c0
MOV RBX,qword ptr [0x00119b10]
MOV EDX,0x5
LEA RSI,[0x110f80]
LEA RDI,[0x110008]
CALL 0x00102170
MOV RDI,qword ptr [0x00118940]
MOV RCX,R12
MOV RDX,RBX
MOV RSI,RAX
XOR EAX,EAX
CALL 0x001022f0
MOV EDI,0x1
CALL 0x0010a4c0
MOV EDX,0x5
LEA RSI,[0x110e58]
LEA RDI,[0x110008]
MOV RBX,qword ptr [0x00119b10]
CALL 0x00102170
MOV R8D,EBP
JMP 0x00109f08
MOV EDX,0x5
LEA RSI,[0x110ef0]
JMP 0x00109f7b
(translation_unit "void FUN_00109740(byte *param_1)\n\n{\n  int *piVar1;\n  uint uVar2;\n  int iVar3;\n  int iVar4;\n  uint uVar5;\n  size_t sVar6;\n  ulong uVar7;\n  FILE *__stream;\n  char *pcVar8;\n  ulong *puVar9;\n  ulong uVar10;\n  long lVar11;\n  undefined8 uVar12;\n  byte *pbVar13;\n  byte *pbVar14;\n  bool bVar15;\n  bool bVar16;\n  byte bVar17;\n  uint local_a8;\n  uint local_a4;\n  undefined1 local_96 [2];\n  int local_94;\n  undefined8 local_90;\n  undefined8 local_88;\n  uint local_80;\n  undefined4 uStack_7c;\n  byte local_78 [4];\n  undefined1 local_74 [28];\n  byte local_58;\n  undefined7 uStack_57;\n  ulong local_50;\n  uint local_48 [6];\n  \n  bVar17 = 0;\n  lVar11 = 2;\n  bVar15 = &stack0xffffffffffffffd0 < (undefined1 *)0x78;\n  bVar16 = &stack0x00000000 == (undefined1 *)0xa8;\n  pbVar13 = param_1;\n  pbVar14 = &DAT_001110e7;\n  do {\n    if (lVar11 == 0) break;\n    lVar11 = lVar11 + -1;\n    bVar15 = *pbVar13 < *pbVar14;\n    bVar16 = *pbVar13 == *pbVar14;\n    pbVar13 = pbVar13 + 1;\n    pbVar14 = pbVar14 + 1;\n  } while (bVar16);\n  __stream = stdin;\n  if (((!bVar15 && !bVar16) != bVar15) &&\n     (__stream = fopen((char *)param_1,"r"), __stream == (FILE *)0x0)) goto LAB_00109ba3;\n  sVar6 = fread(local_78,0x14,1,__stream);\n  uVar12 = DAT_00119b10;\n  uVar5 = DAT_001195c0;\n  if (sVar6 != 1) goto LAB_00109f6f;\n  bVar15 = DAT_001195c0 == 0;\n  bVar16 = DAT_001195c0 == 1;\n  if (bVar16) {\n    lVar11 = 4;\n    pbVar13 = local_78;\n    pbVar14 = &DAT_001110e9;\n    do {\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar15 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar17 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar17 * -2 + 1;\n    } while (bVar16);\n    if ((!bVar15 && !bVar16) == bVar15) {\nLAB_001099fe:\n      uVar5 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x38))(local_74);\n      uVar12 = DAT_00119b10;\n      DAT_001195b4 = uVar5;\n      if (1 < uVar5) {\n        pcVar8 = (char *)dcgettext("gprof","%s: file `%s\' has unsupported version %d\n",5);\n        uVar7 = (ulong)uVar5;\nLAB_00109f08:\n        fprintf(stderr,pcVar8,uVar12,param_1,uVar7);\n                    /* WARNING: Subroutine does not return */\n        FUN_0010a4c0(1);\n      }\n      local_a8 = 0;\n      uVar5 = 0;\n      local_a4 = 0;\n      while (sVar6 = fread(&local_58,1,1,__stream), uVar12 = DAT_00119b10, sVar6 == 1) {\n        if (local_58 == 1) {\n          uVar5 = uVar5 + 1;\n          DAT_001195b8 = DAT_001195b8 | 2;\n          FUN_001041c0(__stream,param_1);\n        }\n        else if (local_58 == 0) {\n          local_a4 = local_a4 + 1;\n          DAT_001195b8 = DAT_001195b8 | 1;\n          FUN_0010b590(__stream,param_1);\n        }\n        else {\n          if (local_58 != 2) {\n            pcVar8 = (char *)dcgettext("gprof","%s: %s: found bad tag %d (file corrupted?)\n",5);\n            uVar7 = (ulong)local_58;\n            goto LAB_00109f08;\n          }\n          local_a8 = local_a8 + 1;\n          DAT_001195b8 = DAT_001195b8 | 4;\n          FUN_001034d0(__stream,param_1);\n        }\n      }\n      goto LAB_001099b1;\n    }\nLAB_00109cae:\n    pcVar8 = "%s: file `%s\' has bad magic cookie\n";\n    goto LAB_0010a006;\n  }\n  bVar15 = false;\n  bVar16 = DAT_001195c0 == 0;\n  if (bVar16) {\n    lVar11 = 4;\n    pbVar13 = local_78;\n    pbVar14 = &DAT_001110e9;\n    do {\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar15 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar17 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar17 * -2 + 1;\n    } while (bVar16);\n    if ((!bVar15 && !bVar16) == bVar15) goto LAB_001099fe;\n  }\n  else if (1 < DAT_001195c0 - 2) {\n    pcVar8 = (char *)dcgettext("gprof","%s: don\'t know how to deal with file format %d\n",5);\n    fprintf(stderr,pcVar8,uVar12,(ulong)uVar5);\n                    /* WARNING: Subroutine does not return */\n    FUN_0010a4c0(1);\n  }\n  DAT_001195b8 = 3;\n  iVar3 = fseek(__stream,0,0);\n  if (iVar3 < 0) goto LAB_00109ba3;\n  iVar3 = FUN_00109550(__stream,&local_58);\n  if ((((iVar3 == 0) && (iVar3 = FUN_00109550(__stream,&local_50), iVar3 == 0)) &&\n      (iVar3 = FUN_00109500(__stream,local_48), iVar3 == 0)) &&\n     (iVar3 = FUN_00109500(__stream,&local_94), iVar3 == 0)) {\n    if (local_94 == 0x51879) {\n      iVar3 = FUN_00109500(__stream,&local_80);\n      if (iVar3 != 0) goto LAB_00109f6f;\n      uVar7 = (ulong)local_80;\n      if ((DAT_00119b18 != (ulong *)0x0) &&\n         (uVar7 = DAT_001195e8, (long)(int)local_80 != DAT_001195e8)) {\n        pcVar8 = "%s: profiling rate incompatible with first gmon file\n";\n        goto LAB_00109f7b;\n      }\n      DAT_001195e8 = uVar7;\n      iVar3 = FUN_00109420();\n      if (iVar3 == 0) {\n        lVar11 = 0x20;\n        iVar3 = 0x20;\n      }\n      else {\n        lVar11 = 0x28;\n        if (iVar3 == 1) {\n          iVar3 = 0x28;\n        }\n        else {\n          lVar11 = 0;\n          iVar3 = 0;\n        }\n      }\n    }\n    else {\n      if (DAT_001195c0 == 3) goto LAB_00109cae;\n      iVar4 = FUN_00109420();\n      if (iVar4 == 0) {\n        lVar11 = 0xc;\n        iVar3 = 0xc;\n      }\n      else {\n        lVar11 = 0x14;\n        if (iVar4 != 1) {\n          lVar11 = 0;\n        }\n        iVar3 = 0x14;\n        if (iVar4 != 1) {\n          iVar3 = 0;\n        }\n      }\n    }\n    iVar4 = fseek(__stream,lVar11,0);\n    if (iVar4 < 0) {\nLAB_00109ba3:\n      perror((char *)param_1);\n                    /* WARNING: Subroutine does not return */\n      FUN_0010a4c0(1);\n    }\n    uVar5 = local_48[0] - iVar3;\n    uVar7 = (ulong)(long)(int)uVar5 >> 1;\n    iVar3 = (int)uVar7;\n    if (DAT_00119b18 == (ulong *)0x0) {\n      DAT_00119b20 = 1;\n      puVar9 = (ulong *)xmalloc(0x20);\n      DAT_00119b18 = puVar9;\n      *puVar9 = CONCAT71(uStack_57,local_58);\n      *(int *)(puVar9 + 2) = iVar3;\n      sVar6 = (uVar7 & 0xffffffff) << 2;\n      puVar9[1] = local_50;\n      DAT_00119b28 = (double)(local_50 - CONCAT71(uStack_57,local_58) >> 1) /\n                     (double)(uVar7 & 0xffffffff);\n      uVar10 = xmalloc(sVar6);\n      puVar9[3] = uVar10;\n      memset((void *)DAT_00119b18[3],0,sVar6);\n    }\n    else if (((CONCAT71(uStack_57,local_58) != *DAT_00119b18) || (local_50 != DAT_00119b18[1])) ||\n            ((int)DAT_00119b18[2] != iVar3)) {\n      pcVar8 = "%s: incompatible with first gmon file\n";\n      goto LAB_00109f7b;\n    }\n    if (((byte)DAT_001195e4 & 0x40) != 0) {\n      printf("[gmon_out_read] lowpc 0x%lx highpc 0x%lx ncnt %d\n",CONCAT71(uStack_57,local_58),\n             local_50,(ulong)local_48[0]);\n      printf("[gmon_out_read] samp_bytes %d hist_num_bins %d\n",(ulong)uVar5,uVar7 & 0xffffffff);\n    }\n    if ((-1 < (int)uVar5) && (*DAT_00119b18 <= DAT_00119b18[1])) {\n      local_a4 = (uint)(iVar3 != 0);\n      if (iVar3 != 0) {\n        uVar10 = 0;\n        do {\n          sVar6 = fread(local_96,2,1,__stream);\n          uVar12 = DAT_00119b10;\n          if (sVar6 != 1) {\n            pcVar8 = (char *)dcgettext("gprof","%s: unexpected EOF after reading %d/%d bins\n",5);\n            fprintf(stderr,pcVar8,uVar12,(ulong)((int)uVar10 - 1),uVar7 & 0xffffffff);\n                    /* WARNING: Subroutine does not return */\n            FUN_0010a4c0(1);\n          }\n          iVar4 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x50))(local_96);\n          piVar1 = (int *)(DAT_00119b18[3] + uVar10 * 4);\n          *piVar1 = *piVar1 + iVar4;\n          bVar15 = iVar3 - 1 != uVar10;\n          uVar10 = uVar10 + 1;\n        } while (bVar15);\n      }\n      uVar5 = 0;\n      while ((iVar3 = FUN_00109550(__stream,&local_90), iVar3 == 0 &&\n             (iVar3 = FUN_00109550(__stream,&local_88), iVar3 == 0))) {\n        iVar3 = FUN_00109420();\n        if (iVar3 == 0) {\n          iVar3 = FUN_00109500(__stream,&local_80);\n          if (iVar3 != 0) break;\n          uVar7 = (ulong)local_80;\n        }\n        else {\n          if ((iVar3 != 1) || (iVar3 = FUN_001093d0(__stream,&local_80), iVar3 != 0)) break;\n          uVar7 = CONCAT44(uStack_7c,local_80);\n        }\n        uVar5 = uVar5 + 1;\n        if (((byte)DAT_001195e4 & 0x40) != 0) {\n          printf("[gmon_out_read] frompc 0x%lx selfpc 0x%lx count %lu\n",local_90,local_88,uVar7);\n        }\n        FUN_001040b0(local_90,local_88,uVar7);\n      }\n      local_a8 = 0;\n      if (DAT_001195e8 == 0) {\n        iVar3 = FUN_0010a4d0();\n        DAT_001195e8 = (ulong)iVar3;\n        if (DAT_001195e8 == 0) {\n          DAT_001195e8 = 1;\n          pcVar8 = (char *)dcgettext("gprof","time is in ticks, not seconds\n",5);\n          fprintf(stderr,pcVar8);\n        }\n      }\nLAB_001099b1:\n      if (stdin != __stream) {\n        fclose(__stream);\n      }\n      uVar2 = DAT_001195b4;\n      if (((byte)DAT_001195e0 & 0x20) == 0) {\n        return;\n      }\n      pcVar8 = (char *)dcgettext("gprof","File `%s\' (version %d) contains:\n",5);\n      printf(pcVar8,param_1,(ulong)uVar2);\n      if (local_a4 == 1) {\n        pcVar8 = (char *)dcgettext("gprof","\t%d histogram record\n",5);\n      }\n      else {\n        pcVar8 = (char *)dcgettext("gprof","\t%d histogram records\n",5);\n      }\n      printf(pcVar8,(ulong)local_a4);\n      if (uVar5 == 1) {\n        pcVar8 = (char *)dcgettext("gprof","\t%d call-graph record\n",5);\n      }\n      else {\n        pcVar8 = (char *)dcgettext("gprof","\t%d call-graph records\n",5);\n      }\n      printf(pcVar8,(ulong)uVar5);\n      if (local_a8 == 1) {\n        pcVar8 = (char *)dcgettext("gprof","\t%d basic-block count record\n",5);\n      }\n      else {\n        pcVar8 = (char *)dcgettext("gprof","\t%d basic-block count records\n",5);\n      }\n      printf(pcVar8,(ulong)local_a8);\n      DAT_001182d8 = 0;\n      return;\n    }\n    pcVar8 = "%s: file \'%s\' does not appear to be in gmon.out format\n";\nLAB_0010a006:\n    uVar12 = DAT_00119b10;\n    pcVar8 = (char *)dcgettext("gprof",pcVar8,5);\n    fprintf(stderr,pcVar8,uVar12,param_1);\n                    /* WARNING: Subroutine does not return */\n    FUN_0010a4c0(1);\n  }\nLAB_00109f6f:\n  pcVar8 = "%s: file too short to be a gmon file\n";\nLAB_00109f7b:\n  pcVar8 = (char *)dcgettext("gprof",pcVar8,5);\n  fprintf(stderr,pcVar8,param_1);\n                    /* WARNING: Subroutine does not return */\n  FUN_0010a4c0(1);\n}\n\n" (function_definition "void FUN_00109740(byte *param_1)\n\n{\n  int *piVar1;\n  uint uVar2;\n  int iVar3;\n  int iVar4;\n  uint uVar5;\n  size_t sVar6;\n  ulong uVar7;\n  FILE *__stream;\n  char *pcVar8;\n  ulong *puVar9;\n  ulong uVar10;\n  long lVar11;\n  undefined8 uVar12;\n  byte *pbVar13;\n  byte *pbVar14;\n  bool bVar15;\n  bool bVar16;\n  byte bVar17;\n  uint local_a8;\n  uint local_a4;\n  undefined1 local_96 [2];\n  int local_94;\n  undefined8 local_90;\n  undefined8 local_88;\n  uint local_80;\n  undefined4 uStack_7c;\n  byte local_78 [4];\n  undefined1 local_74 [28];\n  byte local_58;\n  undefined7 uStack_57;\n  ulong local_50;\n  uint local_48 [6];\n  \n  bVar17 = 0;\n  lVar11 = 2;\n  bVar15 = &stack0xffffffffffffffd0 < (undefined1 *)0x78;\n  bVar16 = &stack0x00000000 == (undefined1 *)0xa8;\n  pbVar13 = param_1;\n  pbVar14 = &DAT_001110e7;\n  do {\n    if (lVar11 == 0) break;\n    lVar11 = lVar11 + -1;\n    bVar15 = *pbVar13 < *pbVar14;\n    bVar16 = *pbVar13 == *pbVar14;\n    pbVar13 = pbVar13 + 1;\n    pbVar14 = pbVar14 + 1;\n  } while (bVar16);\n  __stream = stdin;\n  if (((!bVar15 && !bVar16) != bVar15) &&\n     (__stream = fopen((char *)param_1,"r"), __stream == (FILE *)0x0)) goto LAB_00109ba3;\n  sVar6 = fread(local_78,0x14,1,__stream);\n  uVar12 = DAT_00119b10;\n  uVar5 = DAT_001195c0;\n  if (sVar6 != 1) goto LAB_00109f6f;\n  bVar15 = DAT_001195c0 == 0;\n  bVar16 = DAT_001195c0 == 1;\n  if (bVar16) {\n    lVar11 = 4;\n    pbVar13 = local_78;\n    pbVar14 = &DAT_001110e9;\n    do {\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar15 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar17 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar17 * -2 + 1;\n    } while (bVar16);\n    if ((!bVar15 && !bVar16) == bVar15) {\nLAB_001099fe:\n      uVar5 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x38))(local_74);\n      uVar12 = DAT_00119b10;\n      DAT_001195b4 = uVar5;\n      if (1 < uVar5) {\n        pcVar8 = (char *)dcgettext("gprof","%s: file `%s\' has unsupported version %d\n",5);\n        uVar7 = (ulong)uVar5;\nLAB_00109f08:\n        fprintf(stderr,pcVar8,uVar12,param_1,uVar7);\n                    /* WARNING: Subroutine does not return */\n        FUN_0010a4c0(1);\n      }\n      local_a8 = 0;\n      uVar5 = 0;\n      local_a4 = 0;\n      while (sVar6 = fread(&local_58,1,1,__stream), uVar12 = DAT_00119b10, sVar6 == 1) {\n        if (local_58 == 1) {\n          uVar5 = uVar5 + 1;\n          DAT_001195b8 = DAT_001195b8 | 2;\n          FUN_001041c0(__stream,param_1);\n        }\n        else if (local_58 == 0) {\n          local_a4 = local_a4 + 1;\n          DAT_001195b8 = DAT_001195b8 | 1;\n          FUN_0010b590(__stream,param_1);\n        }\n        else {\n          if (local_58 != 2) {\n            pcVar8 = (char *)dcgettext("gprof","%s: %s: found bad tag %d (file corrupted?)\n",5);\n            uVar7 = (ulong)local_58;\n            goto LAB_00109f08;\n          }\n          local_a8 = local_a8 + 1;\n          DAT_001195b8 = DAT_001195b8 | 4;\n          FUN_001034d0(__stream,param_1);\n        }\n      }\n      goto LAB_001099b1;\n    }\nLAB_00109cae:\n    pcVar8 = "%s: file `%s\' has bad magic cookie\n";\n    goto LAB_0010a006;\n  }\n  bVar15 = false;\n  bVar16 = DAT_001195c0 == 0;\n  if (bVar16) {\n    lVar11 = 4;\n    pbVar13 = local_78;\n    pbVar14 = &DAT_001110e9;\n    do {\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar15 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar17 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar17 * -2 + 1;\n    } while (bVar16);\n    if ((!bVar15 && !bVar16) == bVar15) goto LAB_001099fe;\n  }\n  else if (1 < DAT_001195c0 - 2) {\n    pcVar8 = (char *)dcgettext("gprof","%s: don\'t know how to deal with file format %d\n",5);\n    fprintf(stderr,pcVar8,uVar12,(ulong)uVar5);\n                    /* WARNING: Subroutine does not return */\n    FUN_0010a4c0(1);\n  }\n  DAT_001195b8 = 3;\n  iVar3 = fseek(__stream,0,0);\n  if (iVar3 < 0) goto LAB_00109ba3;\n  iVar3 = FUN_00109550(__stream,&local_58);\n  if ((((iVar3 == 0) && (iVar3 = FUN_00109550(__stream,&local_50), iVar3 == 0)) &&\n      (iVar3 = FUN_00109500(__stream,local_48), iVar3 == 0)) &&\n     (iVar3 = FUN_00109500(__stream,&local_94), iVar3 == 0)) {\n    if (local_94 == 0x51879) {\n      iVar3 = FUN_00109500(__stream,&local_80);\n      if (iVar3 != 0) goto LAB_00109f6f;\n      uVar7 = (ulong)local_80;\n      if ((DAT_00119b18 != (ulong *)0x0) &&\n         (uVar7 = DAT_001195e8, (long)(int)local_80 != DAT_001195e8)) {\n        pcVar8 = "%s: profiling rate incompatible with first gmon file\n";\n        goto LAB_00109f7b;\n      }\n      DAT_001195e8 = uVar7;\n      iVar3 = FUN_00109420();\n      if (iVar3 == 0) {\n        lVar11 = 0x20;\n        iVar3 = 0x20;\n      }\n      else {\n        lVar11 = 0x28;\n        if (iVar3 == 1) {\n          iVar3 = 0x28;\n        }\n        else {\n          lVar11 = 0;\n          iVar3 = 0;\n        }\n      }\n    }\n    else {\n      if (DAT_001195c0 == 3) goto LAB_00109cae;\n      iVar4 = FUN_00109420();\n      if (iVar4 == 0) {\n        lVar11 = 0xc;\n        iVar3 = 0xc;\n      }\n      else {\n        lVar11 = 0x14;\n        if (iVar4 != 1) {\n          lVar11 = 0;\n        }\n        iVar3 = 0x14;\n        if (iVar4 != 1) {\n          iVar3 = 0;\n        }\n      }\n    }\n    iVar4 = fseek(__stream,lVar11,0);\n    if (iVar4 < 0) {\nLAB_00109ba3:\n      perror((char *)param_1);\n                    /* WARNING: Subroutine does not return */\n      FUN_0010a4c0(1);\n    }\n    uVar5 = local_48[0] - iVar3;\n    uVar7 = (ulong)(long)(int)uVar5 >> 1;\n    iVar3 = (int)uVar7;\n    if (DAT_00119b18 == (ulong *)0x0) {\n      DAT_00119b20 = 1;\n      puVar9 = (ulong *)xmalloc(0x20);\n      DAT_00119b18 = puVar9;\n      *puVar9 = CONCAT71(uStack_57,local_58);\n      *(int *)(puVar9 + 2) = iVar3;\n      sVar6 = (uVar7 & 0xffffffff) << 2;\n      puVar9[1] = local_50;\n      DAT_00119b28 = (double)(local_50 - CONCAT71(uStack_57,local_58) >> 1) /\n                     (double)(uVar7 & 0xffffffff);\n      uVar10 = xmalloc(sVar6);\n      puVar9[3] = uVar10;\n      memset((void *)DAT_00119b18[3],0,sVar6);\n    }\n    else if (((CONCAT71(uStack_57,local_58) != *DAT_00119b18) || (local_50 != DAT_00119b18[1])) ||\n            ((int)DAT_00119b18[2] != iVar3)) {\n      pcVar8 = "%s: incompatible with first gmon file\n";\n      goto LAB_00109f7b;\n    }\n    if (((byte)DAT_001195e4 & 0x40) != 0) {\n      printf("[gmon_out_read] lowpc 0x%lx highpc 0x%lx ncnt %d\n",CONCAT71(uStack_57,local_58),\n             local_50,(ulong)local_48[0]);\n      printf("[gmon_out_read] samp_bytes %d hist_num_bins %d\n",(ulong)uVar5,uVar7 & 0xffffffff);\n    }\n    if ((-1 < (int)uVar5) && (*DAT_00119b18 <= DAT_00119b18[1])) {\n      local_a4 = (uint)(iVar3 != 0);\n      if (iVar3 != 0) {\n        uVar10 = 0;\n        do {\n          sVar6 = fread(local_96,2,1,__stream);\n          uVar12 = DAT_00119b10;\n          if (sVar6 != 1) {\n            pcVar8 = (char *)dcgettext("gprof","%s: unexpected EOF after reading %d/%d bins\n",5);\n            fprintf(stderr,pcVar8,uVar12,(ulong)((int)uVar10 - 1),uVar7 & 0xffffffff);\n                    /* WARNING: Subroutine does not return */\n            FUN_0010a4c0(1);\n          }\n          iVar4 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x50))(local_96);\n          piVar1 = (int *)(DAT_00119b18[3] + uVar10 * 4);\n          *piVar1 = *piVar1 + iVar4;\n          bVar15 = iVar3 - 1 != uVar10;\n          uVar10 = uVar10 + 1;\n        } while (bVar15);\n      }\n      uVar5 = 0;\n      while ((iVar3 = FUN_00109550(__stream,&local_90), iVar3 == 0 &&\n             (iVar3 = FUN_00109550(__stream,&local_88), iVar3 == 0))) {\n        iVar3 = FUN_00109420();\n        if (iVar3 == 0) {\n          iVar3 = FUN_00109500(__stream,&local_80);\n          if (iVar3 != 0) break;\n          uVar7 = (ulong)local_80;\n        }\n        else {\n          if ((iVar3 != 1) || (iVar3 = FUN_001093d0(__stream,&local_80), iVar3 != 0)) break;\n          uVar7 = CONCAT44(uStack_7c,local_80);\n        }\n        uVar5 = uVar5 + 1;\n        if (((byte)DAT_001195e4 & 0x40) != 0) {\n          printf("[gmon_out_read] frompc 0x%lx selfpc 0x%lx count %lu\n",local_90,local_88,uVar7);\n        }\n        FUN_001040b0(local_90,local_88,uVar7);\n      }\n      local_a8 = 0;\n      if (DAT_001195e8 == 0) {\n        iVar3 = FUN_0010a4d0();\n        DAT_001195e8 = (ulong)iVar3;\n        if (DAT_001195e8 == 0) {\n          DAT_001195e8 = 1;\n          pcVar8 = (char *)dcgettext("gprof","time is in ticks, not seconds\n",5);\n          fprintf(stderr,pcVar8);\n        }\n      }\nLAB_001099b1:\n      if (stdin != __stream) {\n        fclose(__stream);\n      }\n      uVar2 = DAT_001195b4;\n      if (((byte)DAT_001195e0 & 0x20) == 0) {\n        return;\n      }\n      pcVar8 = (char *)dcgettext("gprof","File `%s\' (version %d) contains:\n",5);\n      printf(pcVar8,param_1,(ulong)uVar2);\n      if (local_a4 == 1) {\n        pcVar8 = (char *)dcgettext("gprof","\t%d histogram record\n",5);\n      }\n      else {\n        pcVar8 = (char *)dcgettext("gprof","\t%d histogram records\n",5);\n      }\n      printf(pcVar8,(ulong)local_a4);\n      if (uVar5 == 1) {\n        pcVar8 = (char *)dcgettext("gprof","\t%d call-graph record\n",5);\n      }\n      else {\n        pcVar8 = (char *)dcgettext("gprof","\t%d call-graph records\n",5);\n      }\n      printf(pcVar8,(ulong)uVar5);\n      if (local_a8 == 1) {\n        pcVar8 = (char *)dcgettext("gprof","\t%d basic-block count record\n",5);\n      }\n      else {\n        pcVar8 = (char *)dcgettext("gprof","\t%d basic-block count records\n",5);\n      }\n      printf(pcVar8,(ulong)local_a8);\n      DAT_001182d8 = 0;\n      return;\n    }\n    pcVar8 = "%s: file \'%s\' does not appear to be in gmon.out format\n";\nLAB_0010a006:\n    uVar12 = DAT_00119b10;\n    pcVar8 = (char *)dcgettext("gprof",pcVar8,5);\n    fprintf(stderr,pcVar8,uVar12,param_1);\n                    /* WARNING: Subroutine does not return */\n    FUN_0010a4c0(1);\n  }\nLAB_00109f6f:\n  pcVar8 = "%s: file too short to be a gmon file\n";\nLAB_00109f7b:\n  pcVar8 = (char *)dcgettext("gprof",pcVar8,5);\n  fprintf(stderr,pcVar8,param_1);\n                    /* WARNING: Subroutine does not return */\n  FUN_0010a4c0(1);\n}" primitive_type (function_declarator "FUN_00109740(byte *param_1)" identifier (parameter_list "(byte *param_1)" ( (parameter_declaration "byte *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  int *piVar1;\n  uint uVar2;\n  int iVar3;\n  int iVar4;\n  uint uVar5;\n  size_t sVar6;\n  ulong uVar7;\n  FILE *__stream;\n  char *pcVar8;\n  ulong *puVar9;\n  ulong uVar10;\n  long lVar11;\n  undefined8 uVar12;\n  byte *pbVar13;\n  byte *pbVar14;\n  bool bVar15;\n  bool bVar16;\n  byte bVar17;\n  uint local_a8;\n  uint local_a4;\n  undefined1 local_96 [2];\n  int local_94;\n  undefined8 local_90;\n  undefined8 local_88;\n  uint local_80;\n  undefined4 uStack_7c;\n  byte local_78 [4];\n  undefined1 local_74 [28];\n  byte local_58;\n  undefined7 uStack_57;\n  ulong local_50;\n  uint local_48 [6];\n  \n  bVar17 = 0;\n  lVar11 = 2;\n  bVar15 = &stack0xffffffffffffffd0 < (undefined1 *)0x78;\n  bVar16 = &stack0x00000000 == (undefined1 *)0xa8;\n  pbVar13 = param_1;\n  pbVar14 = &DAT_001110e7;\n  do {\n    if (lVar11 == 0) break;\n    lVar11 = lVar11 + -1;\n    bVar15 = *pbVar13 < *pbVar14;\n    bVar16 = *pbVar13 == *pbVar14;\n    pbVar13 = pbVar13 + 1;\n    pbVar14 = pbVar14 + 1;\n  } while (bVar16);\n  __stream = stdin;\n  if (((!bVar15 && !bVar16) != bVar15) &&\n     (__stream = fopen((char *)param_1,"r"), __stream == (FILE *)0x0)) goto LAB_00109ba3;\n  sVar6 = fread(local_78,0x14,1,__stream);\n  uVar12 = DAT_00119b10;\n  uVar5 = DAT_001195c0;\n  if (sVar6 != 1) goto LAB_00109f6f;\n  bVar15 = DAT_001195c0 == 0;\n  bVar16 = DAT_001195c0 == 1;\n  if (bVar16) {\n    lVar11 = 4;\n    pbVar13 = local_78;\n    pbVar14 = &DAT_001110e9;\n    do {\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar15 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar17 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar17 * -2 + 1;\n    } while (bVar16);\n    if ((!bVar15 && !bVar16) == bVar15) {\nLAB_001099fe:\n      uVar5 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x38))(local_74);\n      uVar12 = DAT_00119b10;\n      DAT_001195b4 = uVar5;\n      if (1 < uVar5) {\n        pcVar8 = (char *)dcgettext("gprof","%s: file `%s\' has unsupported version %d\n",5);\n        uVar7 = (ulong)uVar5;\nLAB_00109f08:\n        fprintf(stderr,pcVar8,uVar12,param_1,uVar7);\n                    /* WARNING: Subroutine does not return */\n        FUN_0010a4c0(1);\n      }\n      local_a8 = 0;\n      uVar5 = 0;\n      local_a4 = 0;\n      while (sVar6 = fread(&local_58,1,1,__stream), uVar12 = DAT_00119b10, sVar6 == 1) {\n        if (local_58 == 1) {\n          uVar5 = uVar5 + 1;\n          DAT_001195b8 = DAT_001195b8 | 2;\n          FUN_001041c0(__stream,param_1);\n        }\n        else if (local_58 == 0) {\n          local_a4 = local_a4 + 1;\n          DAT_001195b8 = DAT_001195b8 | 1;\n          FUN_0010b590(__stream,param_1);\n        }\n        else {\n          if (local_58 != 2) {\n            pcVar8 = (char *)dcgettext("gprof","%s: %s: found bad tag %d (file corrupted?)\n",5);\n            uVar7 = (ulong)local_58;\n            goto LAB_00109f08;\n          }\n          local_a8 = local_a8 + 1;\n          DAT_001195b8 = DAT_001195b8 | 4;\n          FUN_001034d0(__stream,param_1);\n        }\n      }\n      goto LAB_001099b1;\n    }\nLAB_00109cae:\n    pcVar8 = "%s: file `%s\' has bad magic cookie\n";\n    goto LAB_0010a006;\n  }\n  bVar15 = false;\n  bVar16 = DAT_001195c0 == 0;\n  if (bVar16) {\n    lVar11 = 4;\n    pbVar13 = local_78;\n    pbVar14 = &DAT_001110e9;\n    do {\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar15 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar17 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar17 * -2 + 1;\n    } while (bVar16);\n    if ((!bVar15 && !bVar16) == bVar15) goto LAB_001099fe;\n  }\n  else if (1 < DAT_001195c0 - 2) {\n    pcVar8 = (char *)dcgettext("gprof","%s: don\'t know how to deal with file format %d\n",5);\n    fprintf(stderr,pcVar8,uVar12,(ulong)uVar5);\n                    /* WARNING: Subroutine does not return */\n    FUN_0010a4c0(1);\n  }\n  DAT_001195b8 = 3;\n  iVar3 = fseek(__stream,0,0);\n  if (iVar3 < 0) goto LAB_00109ba3;\n  iVar3 = FUN_00109550(__stream,&local_58);\n  if ((((iVar3 == 0) && (iVar3 = FUN_00109550(__stream,&local_50), iVar3 == 0)) &&\n      (iVar3 = FUN_00109500(__stream,local_48), iVar3 == 0)) &&\n     (iVar3 = FUN_00109500(__stream,&local_94), iVar3 == 0)) {\n    if (local_94 == 0x51879) {\n      iVar3 = FUN_00109500(__stream,&local_80);\n      if (iVar3 != 0) goto LAB_00109f6f;\n      uVar7 = (ulong)local_80;\n      if ((DAT_00119b18 != (ulong *)0x0) &&\n         (uVar7 = DAT_001195e8, (long)(int)local_80 != DAT_001195e8)) {\n        pcVar8 = "%s: profiling rate incompatible with first gmon file\n";\n        goto LAB_00109f7b;\n      }\n      DAT_001195e8 = uVar7;\n      iVar3 = FUN_00109420();\n      if (iVar3 == 0) {\n        lVar11 = 0x20;\n        iVar3 = 0x20;\n      }\n      else {\n        lVar11 = 0x28;\n        if (iVar3 == 1) {\n          iVar3 = 0x28;\n        }\n        else {\n          lVar11 = 0;\n          iVar3 = 0;\n        }\n      }\n    }\n    else {\n      if (DAT_001195c0 == 3) goto LAB_00109cae;\n      iVar4 = FUN_00109420();\n      if (iVar4 == 0) {\n        lVar11 = 0xc;\n        iVar3 = 0xc;\n      }\n      else {\n        lVar11 = 0x14;\n        if (iVar4 != 1) {\n          lVar11 = 0;\n        }\n        iVar3 = 0x14;\n        if (iVar4 != 1) {\n          iVar3 = 0;\n        }\n      }\n    }\n    iVar4 = fseek(__stream,lVar11,0);\n    if (iVar4 < 0) {\nLAB_00109ba3:\n      perror((char *)param_1);\n                    /* WARNING: Subroutine does not return */\n      FUN_0010a4c0(1);\n    }\n    uVar5 = local_48[0] - iVar3;\n    uVar7 = (ulong)(long)(int)uVar5 >> 1;\n    iVar3 = (int)uVar7;\n    if (DAT_00119b18 == (ulong *)0x0) {\n      DAT_00119b20 = 1;\n      puVar9 = (ulong *)xmalloc(0x20);\n      DAT_00119b18 = puVar9;\n      *puVar9 = CONCAT71(uStack_57,local_58);\n      *(int *)(puVar9 + 2) = iVar3;\n      sVar6 = (uVar7 & 0xffffffff) << 2;\n      puVar9[1] = local_50;\n      DAT_00119b28 = (double)(local_50 - CONCAT71(uStack_57,local_58) >> 1) /\n                     (double)(uVar7 & 0xffffffff);\n      uVar10 = xmalloc(sVar6);\n      puVar9[3] = uVar10;\n      memset((void *)DAT_00119b18[3],0,sVar6);\n    }\n    else if (((CONCAT71(uStack_57,local_58) != *DAT_00119b18) || (local_50 != DAT_00119b18[1])) ||\n            ((int)DAT_00119b18[2] != iVar3)) {\n      pcVar8 = "%s: incompatible with first gmon file\n";\n      goto LAB_00109f7b;\n    }\n    if (((byte)DAT_001195e4 & 0x40) != 0) {\n      printf("[gmon_out_read] lowpc 0x%lx highpc 0x%lx ncnt %d\n",CONCAT71(uStack_57,local_58),\n             local_50,(ulong)local_48[0]);\n      printf("[gmon_out_read] samp_bytes %d hist_num_bins %d\n",(ulong)uVar5,uVar7 & 0xffffffff);\n    }\n    if ((-1 < (int)uVar5) && (*DAT_00119b18 <= DAT_00119b18[1])) {\n      local_a4 = (uint)(iVar3 != 0);\n      if (iVar3 != 0) {\n        uVar10 = 0;\n        do {\n          sVar6 = fread(local_96,2,1,__stream);\n          uVar12 = DAT_00119b10;\n          if (sVar6 != 1) {\n            pcVar8 = (char *)dcgettext("gprof","%s: unexpected EOF after reading %d/%d bins\n",5);\n            fprintf(stderr,pcVar8,uVar12,(ulong)((int)uVar10 - 1),uVar7 & 0xffffffff);\n                    /* WARNING: Subroutine does not return */\n            FUN_0010a4c0(1);\n          }\n          iVar4 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x50))(local_96);\n          piVar1 = (int *)(DAT_00119b18[3] + uVar10 * 4);\n          *piVar1 = *piVar1 + iVar4;\n          bVar15 = iVar3 - 1 != uVar10;\n          uVar10 = uVar10 + 1;\n        } while (bVar15);\n      }\n      uVar5 = 0;\n      while ((iVar3 = FUN_00109550(__stream,&local_90), iVar3 == 0 &&\n             (iVar3 = FUN_00109550(__stream,&local_88), iVar3 == 0))) {\n        iVar3 = FUN_00109420();\n        if (iVar3 == 0) {\n          iVar3 = FUN_00109500(__stream,&local_80);\n          if (iVar3 != 0) break;\n          uVar7 = (ulong)local_80;\n        }\n        else {\n          if ((iVar3 != 1) || (iVar3 = FUN_001093d0(__stream,&local_80), iVar3 != 0)) break;\n          uVar7 = CONCAT44(uStack_7c,local_80);\n        }\n        uVar5 = uVar5 + 1;\n        if (((byte)DAT_001195e4 & 0x40) != 0) {\n          printf("[gmon_out_read] frompc 0x%lx selfpc 0x%lx count %lu\n",local_90,local_88,uVar7);\n        }\n        FUN_001040b0(local_90,local_88,uVar7);\n      }\n      local_a8 = 0;\n      if (DAT_001195e8 == 0) {\n        iVar3 = FUN_0010a4d0();\n        DAT_001195e8 = (ulong)iVar3;\n        if (DAT_001195e8 == 0) {\n          DAT_001195e8 = 1;\n          pcVar8 = (char *)dcgettext("gprof","time is in ticks, not seconds\n",5);\n          fprintf(stderr,pcVar8);\n        }\n      }\nLAB_001099b1:\n      if (stdin != __stream) {\n        fclose(__stream);\n      }\n      uVar2 = DAT_001195b4;\n      if (((byte)DAT_001195e0 & 0x20) == 0) {\n        return;\n      }\n      pcVar8 = (char *)dcgettext("gprof","File `%s\' (version %d) contains:\n",5);\n      printf(pcVar8,param_1,(ulong)uVar2);\n      if (local_a4 == 1) {\n        pcVar8 = (char *)dcgettext("gprof","\t%d histogram record\n",5);\n      }\n      else {\n        pcVar8 = (char *)dcgettext("gprof","\t%d histogram records\n",5);\n      }\n      printf(pcVar8,(ulong)local_a4);\n      if (uVar5 == 1) {\n        pcVar8 = (char *)dcgettext("gprof","\t%d call-graph record\n",5);\n      }\n      else {\n        pcVar8 = (char *)dcgettext("gprof","\t%d call-graph records\n",5);\n      }\n      printf(pcVar8,(ulong)uVar5);\n      if (local_a8 == 1) {\n        pcVar8 = (char *)dcgettext("gprof","\t%d basic-block count record\n",5);\n      }\n      else {\n        pcVar8 = (char *)dcgettext("gprof","\t%d basic-block count records\n",5);\n      }\n      printf(pcVar8,(ulong)local_a8);\n      DAT_001182d8 = 0;\n      return;\n    }\n    pcVar8 = "%s: file \'%s\' does not appear to be in gmon.out format\n";\nLAB_0010a006:\n    uVar12 = DAT_00119b10;\n    pcVar8 = (char *)dcgettext("gprof",pcVar8,5);\n    fprintf(stderr,pcVar8,uVar12,param_1);\n                    /* WARNING: Subroutine does not return */\n    FUN_0010a4c0(1);\n  }\nLAB_00109f6f:\n  pcVar8 = "%s: file too short to be a gmon file\n";\nLAB_00109f7b:\n  pcVar8 = (char *)dcgettext("gprof",pcVar8,5);\n  fprintf(stderr,pcVar8,param_1);\n                    /* WARNING: Subroutine does not return */\n  FUN_0010a4c0(1);\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "size_t sVar6;" primitive_type identifier ;) (declaration "ulong uVar7;" type_identifier identifier ;) (declaration "FILE *__stream;" type_identifier (pointer_declarator "*__stream" * identifier) ;) (declaration "char *pcVar8;" primitive_type (pointer_declarator "*pcVar8" * identifier) ;) (declaration "ulong *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "ulong uVar10;" type_identifier identifier ;) (declaration "long lVar11;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 uVar12;" type_identifier identifier ;) (declaration "byte *pbVar13;" type_identifier (pointer_declarator "*pbVar13" * identifier) ;) (declaration "byte *pbVar14;" type_identifier (pointer_declarator "*pbVar14" * identifier) ;) (declaration "bool bVar15;" primitive_type identifier ;) (declaration "bool bVar16;" primitive_type identifier ;) (declaration "byte bVar17;" type_identifier identifier ;) (declaration "uint local_a8;" type_identifier identifier ;) (declaration "uint local_a4;" type_identifier identifier ;) (declaration "undefined1 local_96 [2];" type_identifier (array_declarator "local_96 [2]" identifier [ number_literal ]) ;) (declaration "int local_94;" primitive_type identifier ;) (declaration "undefined8 local_90;" type_identifier identifier ;) (declaration "undefined8 local_88;" type_identifier identifier ;) (declaration "uint local_80;" type_identifier identifier ;) (declaration "undefined4 uStack_7c;" type_identifier identifier ;) (declaration "byte local_78 [4];" type_identifier (array_declarator "local_78 [4]" identifier [ number_literal ]) ;) (declaration "undefined1 local_74 [28];" type_identifier (array_declarator "local_74 [28]" identifier [ number_literal ]) ;) (declaration "byte local_58;" type_identifier identifier ;) (declaration "undefined7 uStack_57;" type_identifier identifier ;) (declaration "ulong local_50;" type_identifier identifier ;) (declaration "uint local_48 [6];" type_identifier (array_declarator "local_48 [6]" identifier [ number_literal ]) ;) (expression_statement "bVar17 = 0;" (assignment_expression "bVar17 = 0" identifier = number_literal) ;) (expression_statement "lVar11 = 2;" (assignment_expression "lVar11 = 2" identifier = number_literal) ;) (expression_statement "bVar15 = &stack0xffffffffffffffd0 < (undefined1 *)0x78;" (assignment_expression "bVar15 = &stack0xffffffffffffffd0 < (undefined1 *)0x78" identifier = (binary_expression "&stack0xffffffffffffffd0 < (undefined1 *)0x78" (pointer_expression "&stack0xffffffffffffffd0" & identifier) < (cast_expression "(undefined1 *)0x78" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "bVar16 = &stack0x00000000 == (undefined1 *)0xa8;" (assignment_expression "bVar16 = &stack0x00000000 == (undefined1 *)0xa8" identifier = (binary_expression "&stack0x00000000 == (undefined1 *)0xa8" (pointer_expression "&stack0x00000000" & identifier) == (cast_expression "(undefined1 *)0xa8" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "pbVar13 = param_1;" (assignment_expression "pbVar13 = param_1" identifier = identifier) ;) (expression_statement "pbVar14 = &DAT_001110e7;" (assignment_expression "pbVar14 = &DAT_001110e7" identifier = (pointer_expression "&DAT_001110e7" & identifier)) ;) (do_statement "do {\n    if (lVar11 == 0) break;\n    lVar11 = lVar11 + -1;\n    bVar15 = *pbVar13 < *pbVar14;\n    bVar16 = *pbVar13 == *pbVar14;\n    pbVar13 = pbVar13 + 1;\n    pbVar14 = pbVar14 + 1;\n  } while (bVar16);" do (compound_statement "{\n    if (lVar11 == 0) break;\n    lVar11 = lVar11 + -1;\n    bVar15 = *pbVar13 < *pbVar14;\n    bVar16 = *pbVar13 == *pbVar14;\n    pbVar13 = pbVar13 + 1;\n    pbVar14 = pbVar14 + 1;\n  }" { (if_statement "if (lVar11 == 0) break;" if (parenthesized_expression "(lVar11 == 0)" ( (binary_expression "lVar11 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar11 = lVar11 + -1;" (assignment_expression "lVar11 = lVar11 + -1" identifier = (binary_expression "lVar11 + -1" identifier + number_literal)) ;) (expression_statement "bVar15 = *pbVar13 < *pbVar14;" (assignment_expression "bVar15 = *pbVar13 < *pbVar14" identifier = (binary_expression "*pbVar13 < *pbVar14" (pointer_expression "*pbVar13" * identifier) < (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "bVar16 = *pbVar13 == *pbVar14;" (assignment_expression "bVar16 = *pbVar13 == *pbVar14" identifier = (binary_expression "*pbVar13 == *pbVar14" (pointer_expression "*pbVar13" * identifier) == (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "pbVar13 = pbVar13 + 1;" (assignment_expression "pbVar13 = pbVar13 + 1" identifier = (binary_expression "pbVar13 + 1" identifier + number_literal)) ;) (expression_statement "pbVar14 = pbVar14 + 1;" (assignment_expression "pbVar14 = pbVar14 + 1" identifier = (binary_expression "pbVar14 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar16)" ( identifier )) ;) (expression_statement "__stream = stdin;" (assignment_expression "__stream = stdin" identifier = identifier) ;) (if_statement "if (((!bVar15 && !bVar16) != bVar15) &&\n     (__stream = fopen((char *)param_1,"r"), __stream == (FILE *)0x0)) goto LAB_00109ba3;" if (parenthesized_expression "(((!bVar15 && !bVar16) != bVar15) &&\n     (__stream = fopen((char *)param_1,"r"), __stream == (FILE *)0x0))" ( (binary_expression "((!bVar15 && !bVar16) != bVar15) &&\n     (__stream = fopen((char *)param_1,"r"), __stream == (FILE *)0x0)" (parenthesized_expression "((!bVar15 && !bVar16) != bVar15)" ( (binary_expression "(!bVar15 && !bVar16) != bVar15" (parenthesized_expression "(!bVar15 && !bVar16)" ( (binary_expression "!bVar15 && !bVar16" (unary_expression "!bVar15" ! identifier) && (unary_expression "!bVar16" ! identifier)) )) != identifier) )) && (parenthesized_expression "(__stream = fopen((char *)param_1,"r"), __stream == (FILE *)0x0)" ( (comma_expression "__stream = fopen((char *)param_1,"r"), __stream == (FILE *)0x0" (assignment_expression "__stream = fopen((char *)param_1,"r")" identifier = (call_expression "fopen((char *)param_1,"r")" identifier (argument_list "((char *)param_1,"r")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""r"" " string_content ") )))) , (binary_expression "__stream == (FILE *)0x0" identifier == (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (goto_statement "goto LAB_00109ba3;" goto statement_identifier ;)) (expression_statement "sVar6 = fread(local_78,0x14,1,__stream);" (assignment_expression "sVar6 = fread(local_78,0x14,1,__stream)" identifier = (call_expression "fread(local_78,0x14,1,__stream)" identifier (argument_list "(local_78,0x14,1,__stream)" ( identifier , number_literal , number_literal , identifier )))) ;) (expression_statement "uVar12 = DAT_00119b10;" (assignment_expression "uVar12 = DAT_00119b10" identifier = identifier) ;) (expression_statement "uVar5 = DAT_001195c0;" (assignment_expression "uVar5 = DAT_001195c0" identifier = identifier) ;) (if_statement "if (sVar6 != 1) goto LAB_00109f6f;" if (parenthesized_expression "(sVar6 != 1)" ( (binary_expression "sVar6 != 1" identifier != number_literal) )) (goto_statement "goto LAB_00109f6f;" goto statement_identifier ;)) (expression_statement "bVar15 = DAT_001195c0 == 0;" (assignment_expression "bVar15 = DAT_001195c0 == 0" identifier = (binary_expression "DAT_001195c0 == 0" identifier == number_literal)) ;) (expression_statement "bVar16 = DAT_001195c0 == 1;" (assignment_expression "bVar16 = DAT_001195c0 == 1" identifier = (binary_expression "DAT_001195c0 == 1" identifier == number_literal)) ;) (if_statement "if (bVar16) {\n    lVar11 = 4;\n    pbVar13 = local_78;\n    pbVar14 = &DAT_001110e9;\n    do {\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar15 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar17 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar17 * -2 + 1;\n    } while (bVar16);\n    if ((!bVar15 && !bVar16) == bVar15) {\nLAB_001099fe:\n      uVar5 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x38))(local_74);\n      uVar12 = DAT_00119b10;\n      DAT_001195b4 = uVar5;\n      if (1 < uVar5) {\n        pcVar8 = (char *)dcgettext("gprof","%s: file `%s\' has unsupported version %d\n",5);\n        uVar7 = (ulong)uVar5;\nLAB_00109f08:\n        fprintf(stderr,pcVar8,uVar12,param_1,uVar7);\n                    /* WARNING: Subroutine does not return */\n        FUN_0010a4c0(1);\n      }\n      local_a8 = 0;\n      uVar5 = 0;\n      local_a4 = 0;\n      while (sVar6 = fread(&local_58,1,1,__stream), uVar12 = DAT_00119b10, sVar6 == 1) {\n        if (local_58 == 1) {\n          uVar5 = uVar5 + 1;\n          DAT_001195b8 = DAT_001195b8 | 2;\n          FUN_001041c0(__stream,param_1);\n        }\n        else if (local_58 == 0) {\n          local_a4 = local_a4 + 1;\n          DAT_001195b8 = DAT_001195b8 | 1;\n          FUN_0010b590(__stream,param_1);\n        }\n        else {\n          if (local_58 != 2) {\n            pcVar8 = (char *)dcgettext("gprof","%s: %s: found bad tag %d (file corrupted?)\n",5);\n            uVar7 = (ulong)local_58;\n            goto LAB_00109f08;\n          }\n          local_a8 = local_a8 + 1;\n          DAT_001195b8 = DAT_001195b8 | 4;\n          FUN_001034d0(__stream,param_1);\n        }\n      }\n      goto LAB_001099b1;\n    }\nLAB_00109cae:\n    pcVar8 = "%s: file `%s\' has bad magic cookie\n";\n    goto LAB_0010a006;\n  }" if (parenthesized_expression "(bVar16)" ( identifier )) (compound_statement "{\n    lVar11 = 4;\n    pbVar13 = local_78;\n    pbVar14 = &DAT_001110e9;\n    do {\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar15 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar17 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar17 * -2 + 1;\n    } while (bVar16);\n    if ((!bVar15 && !bVar16) == bVar15) {\nLAB_001099fe:\n      uVar5 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x38))(local_74);\n      uVar12 = DAT_00119b10;\n      DAT_001195b4 = uVar5;\n      if (1 < uVar5) {\n        pcVar8 = (char *)dcgettext("gprof","%s: file `%s\' has unsupported version %d\n",5);\n        uVar7 = (ulong)uVar5;\nLAB_00109f08:\n        fprintf(stderr,pcVar8,uVar12,param_1,uVar7);\n                    /* WARNING: Subroutine does not return */\n        FUN_0010a4c0(1);\n      }\n      local_a8 = 0;\n      uVar5 = 0;\n      local_a4 = 0;\n      while (sVar6 = fread(&local_58,1,1,__stream), uVar12 = DAT_00119b10, sVar6 == 1) {\n        if (local_58 == 1) {\n          uVar5 = uVar5 + 1;\n          DAT_001195b8 = DAT_001195b8 | 2;\n          FUN_001041c0(__stream,param_1);\n        }\n        else if (local_58 == 0) {\n          local_a4 = local_a4 + 1;\n          DAT_001195b8 = DAT_001195b8 | 1;\n          FUN_0010b590(__stream,param_1);\n        }\n        else {\n          if (local_58 != 2) {\n            pcVar8 = (char *)dcgettext("gprof","%s: %s: found bad tag %d (file corrupted?)\n",5);\n            uVar7 = (ulong)local_58;\n            goto LAB_00109f08;\n          }\n          local_a8 = local_a8 + 1;\n          DAT_001195b8 = DAT_001195b8 | 4;\n          FUN_001034d0(__stream,param_1);\n        }\n      }\n      goto LAB_001099b1;\n    }\nLAB_00109cae:\n    pcVar8 = "%s: file `%s\' has bad magic cookie\n";\n    goto LAB_0010a006;\n  }" { (expression_statement "lVar11 = 4;" (assignment_expression "lVar11 = 4" identifier = number_literal) ;) (expression_statement "pbVar13 = local_78;" (assignment_expression "pbVar13 = local_78" identifier = identifier) ;) (expression_statement "pbVar14 = &DAT_001110e9;" (assignment_expression "pbVar14 = &DAT_001110e9" identifier = (pointer_expression "&DAT_001110e9" & identifier)) ;) (do_statement "do {\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar15 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar17 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar17 * -2 + 1;\n    } while (bVar16);" do (compound_statement "{\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar15 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar17 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar17 * -2 + 1;\n    }" { (if_statement "if (lVar11 == 0) break;" if (parenthesized_expression "(lVar11 == 0)" ( (binary_expression "lVar11 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar11 = lVar11 + -1;" (assignment_expression "lVar11 = lVar11 + -1" identifier = (binary_expression "lVar11 + -1" identifier + number_literal)) ;) (expression_statement "bVar15 = *pbVar13 < *pbVar14;" (assignment_expression "bVar15 = *pbVar13 < *pbVar14" identifier = (binary_expression "*pbVar13 < *pbVar14" (pointer_expression "*pbVar13" * identifier) < (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "bVar16 = *pbVar13 == *pbVar14;" (assignment_expression "bVar16 = *pbVar13 == *pbVar14" identifier = (binary_expression "*pbVar13 == *pbVar14" (pointer_expression "*pbVar13" * identifier) == (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "pbVar13 = pbVar13 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (ulong)bVar17 * -2 + 1" identifier = (binary_expression "pbVar13 + (ulong)bVar17 * -2 + 1" (binary_expression "pbVar13 + (ulong)bVar17 * -2" identifier + (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar14 = pbVar14 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (ulong)bVar17 * -2 + 1" identifier = (binary_expression "pbVar14 + (ulong)bVar17 * -2 + 1" (binary_expression "pbVar14 + (ulong)bVar17 * -2" identifier + (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar16)" ( identifier )) ;) (if_statement "if ((!bVar15 && !bVar16) == bVar15) {\nLAB_001099fe:\n      uVar5 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x38))(local_74);\n      uVar12 = DAT_00119b10;\n      DAT_001195b4 = uVar5;\n      if (1 < uVar5) {\n        pcVar8 = (char *)dcgettext("gprof","%s: file `%s\' has unsupported version %d\n",5);\n        uVar7 = (ulong)uVar5;\nLAB_00109f08:\n        fprintf(stderr,pcVar8,uVar12,param_1,uVar7);\n                    /* WARNING: Subroutine does not return */\n        FUN_0010a4c0(1);\n      }\n      local_a8 = 0;\n      uVar5 = 0;\n      local_a4 = 0;\n      while (sVar6 = fread(&local_58,1,1,__stream), uVar12 = DAT_00119b10, sVar6 == 1) {\n        if (local_58 == 1) {\n          uVar5 = uVar5 + 1;\n          DAT_001195b8 = DAT_001195b8 | 2;\n          FUN_001041c0(__stream,param_1);\n        }\n        else if (local_58 == 0) {\n          local_a4 = local_a4 + 1;\n          DAT_001195b8 = DAT_001195b8 | 1;\n          FUN_0010b590(__stream,param_1);\n        }\n        else {\n          if (local_58 != 2) {\n            pcVar8 = (char *)dcgettext("gprof","%s: %s: found bad tag %d (file corrupted?)\n",5);\n            uVar7 = (ulong)local_58;\n            goto LAB_00109f08;\n          }\n          local_a8 = local_a8 + 1;\n          DAT_001195b8 = DAT_001195b8 | 4;\n          FUN_001034d0(__stream,param_1);\n        }\n      }\n      goto LAB_001099b1;\n    }" if (parenthesized_expression "((!bVar15 && !bVar16) == bVar15)" ( (binary_expression "(!bVar15 && !bVar16) == bVar15" (parenthesized_expression "(!bVar15 && !bVar16)" ( (binary_expression "!bVar15 && !bVar16" (unary_expression "!bVar15" ! identifier) && (unary_expression "!bVar16" ! identifier)) )) == identifier) )) (compound_statement "{\nLAB_001099fe:\n      uVar5 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x38))(local_74);\n      uVar12 = DAT_00119b10;\n      DAT_001195b4 = uVar5;\n      if (1 < uVar5) {\n        pcVar8 = (char *)dcgettext("gprof","%s: file `%s\' has unsupported version %d\n",5);\n        uVar7 = (ulong)uVar5;\nLAB_00109f08:\n        fprintf(stderr,pcVar8,uVar12,param_1,uVar7);\n                    /* WARNING: Subroutine does not return */\n        FUN_0010a4c0(1);\n      }\n      local_a8 = 0;\n      uVar5 = 0;\n      local_a4 = 0;\n      while (sVar6 = fread(&local_58,1,1,__stream), uVar12 = DAT_00119b10, sVar6 == 1) {\n        if (local_58 == 1) {\n          uVar5 = uVar5 + 1;\n          DAT_001195b8 = DAT_001195b8 | 2;\n          FUN_001041c0(__stream,param_1);\n        }\n        else if (local_58 == 0) {\n          local_a4 = local_a4 + 1;\n          DAT_001195b8 = DAT_001195b8 | 1;\n          FUN_0010b590(__stream,param_1);\n        }\n        else {\n          if (local_58 != 2) {\n            pcVar8 = (char *)dcgettext("gprof","%s: %s: found bad tag %d (file corrupted?)\n",5);\n            uVar7 = (ulong)local_58;\n            goto LAB_00109f08;\n          }\n          local_a8 = local_a8 + 1;\n          DAT_001195b8 = DAT_001195b8 | 4;\n          FUN_001034d0(__stream,param_1);\n        }\n      }\n      goto LAB_001099b1;\n    }" { (labeled_statement "LAB_001099fe:\n      uVar5 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x38))(local_74);" statement_identifier : (expression_statement "uVar5 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x38))(local_74);" (assignment_expression "uVar5 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x38))(local_74)" identifier = (call_expression "(**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x38))(local_74)" (parenthesized_expression "(**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x38))" ( (pointer_expression "**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x38)" * (pointer_expression "*(code **)(*(long *)(DAT_00119ad8 + 8) + 0x38)" * (cast_expression "(code **)(*(long *)(DAT_00119ad8 + 8) + 0x38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(DAT_00119ad8 + 8) + 0x38)" ( (binary_expression "*(long *)(DAT_00119ad8 + 8) + 0x38" (pointer_expression "*(long *)(DAT_00119ad8 + 8)" * (cast_expression "(long *)(DAT_00119ad8 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00119ad8 + 8)" ( (binary_expression "DAT_00119ad8 + 8" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(local_74)" ( identifier )))) ;)) (expression_statement "uVar12 = DAT_00119b10;" (assignment_expression "uVar12 = DAT_00119b10" identifier = identifier) ;) (expression_statement "DAT_001195b4 = uVar5;" (assignment_expression "DAT_001195b4 = uVar5" identifier = identifier) ;) (if_statement "if (1 < uVar5) {\n        pcVar8 = (char *)dcgettext("gprof","%s: file `%s\' has unsupported version %d\n",5);\n        uVar7 = (ulong)uVar5;\nLAB_00109f08:\n        fprintf(stderr,pcVar8,uVar12,param_1,uVar7);\n                    /* WARNING: Subroutine does not return */\n        FUN_0010a4c0(1);\n      }" if (parenthesized_expression "(1 < uVar5)" ( (binary_expression "1 < uVar5" number_literal < identifier) )) (compound_statement "{\n        pcVar8 = (char *)dcgettext("gprof","%s: file `%s\' has unsupported version %d\n",5);\n        uVar7 = (ulong)uVar5;\nLAB_00109f08:\n        fprintf(stderr,pcVar8,uVar12,param_1,uVar7);\n                    /* WARNING: Subroutine does not return */\n        FUN_0010a4c0(1);\n      }" { (expression_statement "pcVar8 = (char *)dcgettext("gprof","%s: file `%s\' has unsupported version %d\n",5);" (assignment_expression "pcVar8 = (char *)dcgettext("gprof","%s: file `%s\' has unsupported version %d\n",5)" identifier = (cast_expression "(char *)dcgettext("gprof","%s: file `%s\' has unsupported version %d\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext("gprof","%s: file `%s\' has unsupported version %d\n",5)" identifier (argument_list "("gprof","%s: file `%s\' has unsupported version %d\n",5)" ( (string_literal ""gprof"" " string_content ") , (string_literal ""%s: file `%s\' has unsupported version %d\n"" " string_content escape_sequence string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "uVar7 = (ulong)uVar5;" (assignment_expression "uVar7 = (ulong)uVar5" identifier = (cast_expression "(ulong)uVar5" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (labeled_statement "LAB_00109f08:\n        fprintf(stderr,pcVar8,uVar12,param_1,uVar7);" statement_identifier : (expression_statement "fprintf(stderr,pcVar8,uVar12,param_1,uVar7);" (call_expression "fprintf(stderr,pcVar8,uVar12,param_1,uVar7)" identifier (argument_list "(stderr,pcVar8,uVar12,param_1,uVar7)" ( identifier , identifier , identifier , identifier , identifier ))) ;)) comment (expression_statement "FUN_0010a4c0(1);" (call_expression "FUN_0010a4c0(1)" identifier (argument_list "(1)" ( number_literal ))) ;) })) (expression_statement "local_a8 = 0;" (assignment_expression "local_a8 = 0" identifier = number_literal) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (expression_statement "local_a4 = 0;" (assignment_expression "local_a4 = 0" identifier = number_literal) ;) (while_statement "while (sVar6 = fread(&local_58,1,1,__stream), uVar12 = DAT_00119b10, sVar6 == 1) {\n        if (local_58 == 1) {\n          uVar5 = uVar5 + 1;\n          DAT_001195b8 = DAT_001195b8 | 2;\n          FUN_001041c0(__stream,param_1);\n        }\n        else if (local_58 == 0) {\n          local_a4 = local_a4 + 1;\n          DAT_001195b8 = DAT_001195b8 | 1;\n          FUN_0010b590(__stream,param_1);\n        }\n        else {\n          if (local_58 != 2) {\n            pcVar8 = (char *)dcgettext("gprof","%s: %s: found bad tag %d (file corrupted?)\n",5);\n            uVar7 = (ulong)local_58;\n            goto LAB_00109f08;\n          }\n          local_a8 = local_a8 + 1;\n          DAT_001195b8 = DAT_001195b8 | 4;\n          FUN_001034d0(__stream,param_1);\n        }\n      }" while (parenthesized_expression "(sVar6 = fread(&local_58,1,1,__stream), uVar12 = DAT_00119b10, sVar6 == 1)" ( (comma_expression "sVar6 = fread(&local_58,1,1,__stream), uVar12 = DAT_00119b10, sVar6 == 1" (assignment_expression "sVar6 = fread(&local_58,1,1,__stream)" identifier = (call_expression "fread(&local_58,1,1,__stream)" identifier (argument_list "(&local_58,1,1,__stream)" ( (pointer_expression "&local_58" & identifier) , number_literal , number_literal , identifier )))) , (comma_expression "uVar12 = DAT_00119b10, sVar6 == 1" (assignment_expression "uVar12 = DAT_00119b10" identifier = identifier) , (binary_expression "sVar6 == 1" identifier == number_literal))) )) (compound_statement "{\n        if (local_58 == 1) {\n          uVar5 = uVar5 + 1;\n          DAT_001195b8 = DAT_001195b8 | 2;\n          FUN_001041c0(__stream,param_1);\n        }\n        else if (local_58 == 0) {\n          local_a4 = local_a4 + 1;\n          DAT_001195b8 = DAT_001195b8 | 1;\n          FUN_0010b590(__stream,param_1);\n        }\n        else {\n          if (local_58 != 2) {\n            pcVar8 = (char *)dcgettext("gprof","%s: %s: found bad tag %d (file corrupted?)\n",5);\n            uVar7 = (ulong)local_58;\n            goto LAB_00109f08;\n          }\n          local_a8 = local_a8 + 1;\n          DAT_001195b8 = DAT_001195b8 | 4;\n          FUN_001034d0(__stream,param_1);\n        }\n      }" { (if_statement "if (local_58 == 1) {\n          uVar5 = uVar5 + 1;\n          DAT_001195b8 = DAT_001195b8 | 2;\n          FUN_001041c0(__stream,param_1);\n        }\n        else if (local_58 == 0) {\n          local_a4 = local_a4 + 1;\n          DAT_001195b8 = DAT_001195b8 | 1;\n          FUN_0010b590(__stream,param_1);\n        }\n        else {\n          if (local_58 != 2) {\n            pcVar8 = (char *)dcgettext("gprof","%s: %s: found bad tag %d (file corrupted?)\n",5);\n            uVar7 = (ulong)local_58;\n            goto LAB_00109f08;\n          }\n          local_a8 = local_a8 + 1;\n          DAT_001195b8 = DAT_001195b8 | 4;\n          FUN_001034d0(__stream,param_1);\n        }" if (parenthesized_expression "(local_58 == 1)" ( (binary_expression "local_58 == 1" identifier == number_literal) )) (compound_statement "{\n          uVar5 = uVar5 + 1;\n          DAT_001195b8 = DAT_001195b8 | 2;\n          FUN_001041c0(__stream,param_1);\n        }" { (expression_statement "uVar5 = uVar5 + 1;" (assignment_expression "uVar5 = uVar5 + 1" identifier = (binary_expression "uVar5 + 1" identifier + number_literal)) ;) (expression_statement "DAT_001195b8 = DAT_001195b8 | 2;" (assignment_expression "DAT_001195b8 = DAT_001195b8 | 2" identifier = (binary_expression "DAT_001195b8 | 2" identifier | number_literal)) ;) (expression_statement "FUN_001041c0(__stream,param_1);" (call_expression "FUN_001041c0(__stream,param_1)" identifier (argument_list "(__stream,param_1)" ( identifier , identifier ))) ;) }) (else_clause "else if (local_58 == 0) {\n          local_a4 = local_a4 + 1;\n          DAT_001195b8 = DAT_001195b8 | 1;\n          FUN_0010b590(__stream,param_1);\n        }\n        else {\n          if (local_58 != 2) {\n            pcVar8 = (char *)dcgettext("gprof","%s: %s: found bad tag %d (file corrupted?)\n",5);\n            uVar7 = (ulong)local_58;\n            goto LAB_00109f08;\n          }\n          local_a8 = local_a8 + 1;\n          DAT_001195b8 = DAT_001195b8 | 4;\n          FUN_001034d0(__stream,param_1);\n        }" else (if_statement "if (local_58 == 0) {\n          local_a4 = local_a4 + 1;\n          DAT_001195b8 = DAT_001195b8 | 1;\n          FUN_0010b590(__stream,param_1);\n        }\n        else {\n          if (local_58 != 2) {\n            pcVar8 = (char *)dcgettext("gprof","%s: %s: found bad tag %d (file corrupted?)\n",5);\n            uVar7 = (ulong)local_58;\n            goto LAB_00109f08;\n          }\n          local_a8 = local_a8 + 1;\n          DAT_001195b8 = DAT_001195b8 | 4;\n          FUN_001034d0(__stream,param_1);\n        }" if (parenthesized_expression "(local_58 == 0)" ( (binary_expression "local_58 == 0" identifier == number_literal) )) (compound_statement "{\n          local_a4 = local_a4 + 1;\n          DAT_001195b8 = DAT_001195b8 | 1;\n          FUN_0010b590(__stream,param_1);\n        }" { (expression_statement "local_a4 = local_a4 + 1;" (assignment_expression "local_a4 = local_a4 + 1" identifier = (binary_expression "local_a4 + 1" identifier + number_literal)) ;) (expression_statement "DAT_001195b8 = DAT_001195b8 | 1;" (assignment_expression "DAT_001195b8 = DAT_001195b8 | 1" identifier = (binary_expression "DAT_001195b8 | 1" identifier | number_literal)) ;) (expression_statement "FUN_0010b590(__stream,param_1);" (call_expression "FUN_0010b590(__stream,param_1)" identifier (argument_list "(__stream,param_1)" ( identifier , identifier ))) ;) }) (else_clause "else {\n          if (local_58 != 2) {\n            pcVar8 = (char *)dcgettext("gprof","%s: %s: found bad tag %d (file corrupted?)\n",5);\n            uVar7 = (ulong)local_58;\n            goto LAB_00109f08;\n          }\n          local_a8 = local_a8 + 1;\n          DAT_001195b8 = DAT_001195b8 | 4;\n          FUN_001034d0(__stream,param_1);\n        }" else (compound_statement "{\n          if (local_58 != 2) {\n            pcVar8 = (char *)dcgettext("gprof","%s: %s: found bad tag %d (file corrupted?)\n",5);\n            uVar7 = (ulong)local_58;\n            goto LAB_00109f08;\n          }\n          local_a8 = local_a8 + 1;\n          DAT_001195b8 = DAT_001195b8 | 4;\n          FUN_001034d0(__stream,param_1);\n        }" { (if_statement "if (local_58 != 2) {\n            pcVar8 = (char *)dcgettext("gprof","%s: %s: found bad tag %d (file corrupted?)\n",5);\n            uVar7 = (ulong)local_58;\n            goto LAB_00109f08;\n          }" if (parenthesized_expression "(local_58 != 2)" ( (binary_expression "local_58 != 2" identifier != number_literal) )) (compound_statement "{\n            pcVar8 = (char *)dcgettext("gprof","%s: %s: found bad tag %d (file corrupted?)\n",5);\n            uVar7 = (ulong)local_58;\n            goto LAB_00109f08;\n          }" { (expression_statement "pcVar8 = (char *)dcgettext("gprof","%s: %s: found bad tag %d (file corrupted?)\n",5);" (assignment_expression "pcVar8 = (char *)dcgettext("gprof","%s: %s: found bad tag %d (file corrupted?)\n",5)" identifier = (cast_expression "(char *)dcgettext("gprof","%s: %s: found bad tag %d (file corrupted?)\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext("gprof","%s: %s: found bad tag %d (file corrupted?)\n",5)" identifier (argument_list "("gprof","%s: %s: found bad tag %d (file corrupted?)\n",5)" ( (string_literal ""gprof"" " string_content ") , (string_literal ""%s: %s: found bad tag %d (file corrupted?)\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "uVar7 = (ulong)local_58;" (assignment_expression "uVar7 = (ulong)local_58" identifier = (cast_expression "(ulong)local_58" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (goto_statement "goto LAB_00109f08;" goto statement_identifier ;) })) (expression_statement "local_a8 = local_a8 + 1;" (assignment_expression "local_a8 = local_a8 + 1" identifier = (binary_expression "local_a8 + 1" identifier + number_literal)) ;) (expression_statement "DAT_001195b8 = DAT_001195b8 | 4;" (assignment_expression "DAT_001195b8 = DAT_001195b8 | 4" identifier = (binary_expression "DAT_001195b8 | 4" identifier | number_literal)) ;) (expression_statement "FUN_001034d0(__stream,param_1);" (call_expression "FUN_001034d0(__stream,param_1)" identifier (argument_list "(__stream,param_1)" ( identifier , identifier ))) ;) }))))) })) (goto_statement "goto LAB_001099b1;" goto statement_identifier ;) })) (labeled_statement "LAB_00109cae:\n    pcVar8 = "%s: file `%s\' has bad magic cookie\n";" statement_identifier : (expression_statement "pcVar8 = "%s: file `%s\' has bad magic cookie\n";" (assignment_expression "pcVar8 = "%s: file `%s\' has bad magic cookie\n"" identifier = (string_literal ""%s: file `%s\' has bad magic cookie\n"" " string_content escape_sequence string_content escape_sequence ")) ;)) (goto_statement "goto LAB_0010a006;" goto statement_identifier ;) })) (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = false" identifier = false) ;) (expression_statement "bVar16 = DAT_001195c0 == 0;" (assignment_expression "bVar16 = DAT_001195c0 == 0" identifier = (binary_expression "DAT_001195c0 == 0" identifier == number_literal)) ;) (if_statement "if (bVar16) {\n    lVar11 = 4;\n    pbVar13 = local_78;\n    pbVar14 = &DAT_001110e9;\n    do {\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar15 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar17 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar17 * -2 + 1;\n    } while (bVar16);\n    if ((!bVar15 && !bVar16) == bVar15) goto LAB_001099fe;\n  }\n  else if (1 < DAT_001195c0 - 2) {\n    pcVar8 = (char *)dcgettext("gprof","%s: don\'t know how to deal with file format %d\n",5);\n    fprintf(stderr,pcVar8,uVar12,(ulong)uVar5);\n                    /* WARNING: Subroutine does not return */\n    FUN_0010a4c0(1);\n  }" if (parenthesized_expression "(bVar16)" ( identifier )) (compound_statement "{\n    lVar11 = 4;\n    pbVar13 = local_78;\n    pbVar14 = &DAT_001110e9;\n    do {\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar15 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar17 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar17 * -2 + 1;\n    } while (bVar16);\n    if ((!bVar15 && !bVar16) == bVar15) goto LAB_001099fe;\n  }" { (expression_statement "lVar11 = 4;" (assignment_expression "lVar11 = 4" identifier = number_literal) ;) (expression_statement "pbVar13 = local_78;" (assignment_expression "pbVar13 = local_78" identifier = identifier) ;) (expression_statement "pbVar14 = &DAT_001110e9;" (assignment_expression "pbVar14 = &DAT_001110e9" identifier = (pointer_expression "&DAT_001110e9" & identifier)) ;) (do_statement "do {\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar15 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar17 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar17 * -2 + 1;\n    } while (bVar16);" do (compound_statement "{\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar15 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar17 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar17 * -2 + 1;\n    }" { (if_statement "if (lVar11 == 0) break;" if (parenthesized_expression "(lVar11 == 0)" ( (binary_expression "lVar11 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar11 = lVar11 + -1;" (assignment_expression "lVar11 = lVar11 + -1" identifier = (binary_expression "lVar11 + -1" identifier + number_literal)) ;) (expression_statement "bVar15 = *pbVar13 < *pbVar14;" (assignment_expression "bVar15 = *pbVar13 < *pbVar14" identifier = (binary_expression "*pbVar13 < *pbVar14" (pointer_expression "*pbVar13" * identifier) < (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "bVar16 = *pbVar13 == *pbVar14;" (assignment_expression "bVar16 = *pbVar13 == *pbVar14" identifier = (binary_expression "*pbVar13 == *pbVar14" (pointer_expression "*pbVar13" * identifier) == (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "pbVar13 = pbVar13 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (ulong)bVar17 * -2 + 1" identifier = (binary_expression "pbVar13 + (ulong)bVar17 * -2 + 1" (binary_expression "pbVar13 + (ulong)bVar17 * -2" identifier + (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar14 = pbVar14 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (ulong)bVar17 * -2 + 1" identifier = (binary_expression "pbVar14 + (ulong)bVar17 * -2 + 1" (binary_expression "pbVar14 + (ulong)bVar17 * -2" identifier + (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar16)" ( identifier )) ;) (if_statement "if ((!bVar15 && !bVar16) == bVar15) goto LAB_001099fe;" if (parenthesized_expression "((!bVar15 && !bVar16) == bVar15)" ( (binary_expression "(!bVar15 && !bVar16) == bVar15" (parenthesized_expression "(!bVar15 && !bVar16)" ( (binary_expression "!bVar15 && !bVar16" (unary_expression "!bVar15" ! identifier) && (unary_expression "!bVar16" ! identifier)) )) == identifier) )) (goto_statement "goto LAB_001099fe;" goto statement_identifier ;)) }) (else_clause "else if (1 < DAT_001195c0 - 2) {\n    pcVar8 = (char *)dcgettext("gprof","%s: don\'t know how to deal with file format %d\n",5);\n    fprintf(stderr,pcVar8,uVar12,(ulong)uVar5);\n                    /* WARNING: Subroutine does not return */\n    FUN_0010a4c0(1);\n  }" else (if_statement "if (1 < DAT_001195c0 - 2) {\n    pcVar8 = (char *)dcgettext("gprof","%s: don\'t know how to deal with file format %d\n",5);\n    fprintf(stderr,pcVar8,uVar12,(ulong)uVar5);\n                    /* WARNING: Subroutine does not return */\n    FUN_0010a4c0(1);\n  }" if (parenthesized_expression "(1 < DAT_001195c0 - 2)" ( (binary_expression "1 < DAT_001195c0 - 2" number_literal < (binary_expression "DAT_001195c0 - 2" identifier - number_literal)) )) (compound_statement "{\n    pcVar8 = (char *)dcgettext("gprof","%s: don\'t know how to deal with file format %d\n",5);\n    fprintf(stderr,pcVar8,uVar12,(ulong)uVar5);\n                    /* WARNING: Subroutine does not return */\n    FUN_0010a4c0(1);\n  }" { (expression_statement "pcVar8 = (char *)dcgettext("gprof","%s: don\'t know how to deal with file format %d\n",5);" (assignment_expression "pcVar8 = (char *)dcgettext("gprof","%s: don\'t know how to deal with file format %d\n",5)" identifier = (cast_expression "(char *)dcgettext("gprof","%s: don\'t know how to deal with file format %d\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext("gprof","%s: don\'t know how to deal with file format %d\n",5)" identifier (argument_list "("gprof","%s: don\'t know how to deal with file format %d\n",5)" ( (string_literal ""gprof"" " string_content ") , (string_literal ""%s: don\'t know how to deal with file format %d\n"" " string_content escape_sequence string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "fprintf(stderr,pcVar8,uVar12,(ulong)uVar5);" (call_expression "fprintf(stderr,pcVar8,uVar12,(ulong)uVar5)" identifier (argument_list "(stderr,pcVar8,uVar12,(ulong)uVar5)" ( identifier , identifier , identifier , (cast_expression "(ulong)uVar5" ( (type_descriptor "ulong" type_identifier) ) identifier) ))) ;) comment (expression_statement "FUN_0010a4c0(1);" (call_expression "FUN_0010a4c0(1)" identifier (argument_list "(1)" ( number_literal ))) ;) })))) (expression_statement "DAT_001195b8 = 3;" (assignment_expression "DAT_001195b8 = 3" identifier = number_literal) ;) (expression_statement "iVar3 = fseek(__stream,0,0);" (assignment_expression "iVar3 = fseek(__stream,0,0)" identifier = (call_expression "fseek(__stream,0,0)" identifier (argument_list "(__stream,0,0)" ( identifier , number_literal , number_literal )))) ;) (if_statement "if (iVar3 < 0) goto LAB_00109ba3;" if (parenthesized_expression "(iVar3 < 0)" ( (binary_expression "iVar3 < 0" identifier < number_literal) )) (goto_statement "goto LAB_00109ba3;" goto statement_identifier ;)) (expression_statement "iVar3 = FUN_00109550(__stream,&local_58);" (assignment_expression "iVar3 = FUN_00109550(__stream,&local_58)" identifier = (call_expression "FUN_00109550(__stream,&local_58)" identifier (argument_list "(__stream,&local_58)" ( identifier , (pointer_expression "&local_58" & identifier) )))) ;) (if_statement "if ((((iVar3 == 0) && (iVar3 = FUN_00109550(__stream,&local_50), iVar3 == 0)) &&\n      (iVar3 = FUN_00109500(__stream,local_48), iVar3 == 0)) &&\n     (iVar3 = FUN_00109500(__stream,&local_94), iVar3 == 0)) {\n    if (local_94 == 0x51879) {\n      iVar3 = FUN_00109500(__stream,&local_80);\n      if (iVar3 != 0) goto LAB_00109f6f;\n      uVar7 = (ulong)local_80;\n      if ((DAT_00119b18 != (ulong *)0x0) &&\n         (uVar7 = DAT_001195e8, (long)(int)local_80 != DAT_001195e8)) {\n        pcVar8 = "%s: profiling rate incompatible with first gmon file\n";\n        goto LAB_00109f7b;\n      }\n      DAT_001195e8 = uVar7;\n      iVar3 = FUN_00109420();\n      if (iVar3 == 0) {\n        lVar11 = 0x20;\n        iVar3 = 0x20;\n      }\n      else {\n        lVar11 = 0x28;\n        if (iVar3 == 1) {\n          iVar3 = 0x28;\n        }\n        else {\n          lVar11 = 0;\n          iVar3 = 0;\n        }\n      }\n    }\n    else {\n      if (DAT_001195c0 == 3) goto LAB_00109cae;\n      iVar4 = FUN_00109420();\n      if (iVar4 == 0) {\n        lVar11 = 0xc;\n        iVar3 = 0xc;\n      }\n      else {\n        lVar11 = 0x14;\n        if (iVar4 != 1) {\n          lVar11 = 0;\n        }\n        iVar3 = 0x14;\n        if (iVar4 != 1) {\n          iVar3 = 0;\n        }\n      }\n    }\n    iVar4 = fseek(__stream,lVar11,0);\n    if (iVar4 < 0) {\nLAB_00109ba3:\n      perror((char *)param_1);\n                    /* WARNING: Subroutine does not return */\n      FUN_0010a4c0(1);\n    }\n    uVar5 = local_48[0] - iVar3;\n    uVar7 = (ulong)(long)(int)uVar5 >> 1;\n    iVar3 = (int)uVar7;\n    if (DAT_00119b18 == (ulong *)0x0) {\n      DAT_00119b20 = 1;\n      puVar9 = (ulong *)xmalloc(0x20);\n      DAT_00119b18 = puVar9;\n      *puVar9 = CONCAT71(uStack_57,local_58);\n      *(int *)(puVar9 + 2) = iVar3;\n      sVar6 = (uVar7 & 0xffffffff) << 2;\n      puVar9[1] = local_50;\n      DAT_00119b28 = (double)(local_50 - CONCAT71(uStack_57,local_58) >> 1) /\n                     (double)(uVar7 & 0xffffffff);\n      uVar10 = xmalloc(sVar6);\n      puVar9[3] = uVar10;\n      memset((void *)DAT_00119b18[3],0,sVar6);\n    }\n    else if (((CONCAT71(uStack_57,local_58) != *DAT_00119b18) || (local_50 != DAT_00119b18[1])) ||\n            ((int)DAT_00119b18[2] != iVar3)) {\n      pcVar8 = "%s: incompatible with first gmon file\n";\n      goto LAB_00109f7b;\n    }\n    if (((byte)DAT_001195e4 & 0x40) != 0) {\n      printf("[gmon_out_read] lowpc 0x%lx highpc 0x%lx ncnt %d\n",CONCAT71(uStack_57,local_58),\n             local_50,(ulong)local_48[0]);\n      printf("[gmon_out_read] samp_bytes %d hist_num_bins %d\n",(ulong)uVar5,uVar7 & 0xffffffff);\n    }\n    if ((-1 < (int)uVar5) && (*DAT_00119b18 <= DAT_00119b18[1])) {\n      local_a4 = (uint)(iVar3 != 0);\n      if (iVar3 != 0) {\n        uVar10 = 0;\n        do {\n          sVar6 = fread(local_96,2,1,__stream);\n          uVar12 = DAT_00119b10;\n          if (sVar6 != 1) {\n            pcVar8 = (char *)dcgettext("gprof","%s: unexpected EOF after reading %d/%d bins\n",5);\n            fprintf(stderr,pcVar8,uVar12,(ulong)((int)uVar10 - 1),uVar7 & 0xffffffff);\n                    /* WARNING: Subroutine does not return */\n            FUN_0010a4c0(1);\n          }\n          iVar4 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x50))(local_96);\n          piVar1 = (int *)(DAT_00119b18[3] + uVar10 * 4);\n          *piVar1 = *piVar1 + iVar4;\n          bVar15 = iVar3 - 1 != uVar10;\n          uVar10 = uVar10 + 1;\n        } while (bVar15);\n      }\n      uVar5 = 0;\n      while ((iVar3 = FUN_00109550(__stream,&local_90), iVar3 == 0 &&\n             (iVar3 = FUN_00109550(__stream,&local_88), iVar3 == 0))) {\n        iVar3 = FUN_00109420();\n        if (iVar3 == 0) {\n          iVar3 = FUN_00109500(__stream,&local_80);\n          if (iVar3 != 0) break;\n          uVar7 = (ulong)local_80;\n        }\n        else {\n          if ((iVar3 != 1) || (iVar3 = FUN_001093d0(__stream,&local_80), iVar3 != 0)) break;\n          uVar7 = CONCAT44(uStack_7c,local_80);\n        }\n        uVar5 = uVar5 + 1;\n        if (((byte)DAT_001195e4 & 0x40) != 0) {\n          printf("[gmon_out_read] frompc 0x%lx selfpc 0x%lx count %lu\n",local_90,local_88,uVar7);\n        }\n        FUN_001040b0(local_90,local_88,uVar7);\n      }\n      local_a8 = 0;\n      if (DAT_001195e8 == 0) {\n        iVar3 = FUN_0010a4d0();\n        DAT_001195e8 = (ulong)iVar3;\n        if (DAT_001195e8 == 0) {\n          DAT_001195e8 = 1;\n          pcVar8 = (char *)dcgettext("gprof","time is in ticks, not seconds\n",5);\n          fprintf(stderr,pcVar8);\n        }\n      }\nLAB_001099b1:\n      if (stdin != __stream) {\n        fclose(__stream);\n      }\n      uVar2 = DAT_001195b4;\n      if (((byte)DAT_001195e0 & 0x20) == 0) {\n        return;\n      }\n      pcVar8 = (char *)dcgettext("gprof","File `%s\' (version %d) contains:\n",5);\n      printf(pcVar8,param_1,(ulong)uVar2);\n      if (local_a4 == 1) {\n        pcVar8 = (char *)dcgettext("gprof","\t%d histogram record\n",5);\n      }\n      else {\n        pcVar8 = (char *)dcgettext("gprof","\t%d histogram records\n",5);\n      }\n      printf(pcVar8,(ulong)local_a4);\n      if (uVar5 == 1) {\n        pcVar8 = (char *)dcgettext("gprof","\t%d call-graph record\n",5);\n      }\n      else {\n        pcVar8 = (char *)dcgettext("gprof","\t%d call-graph records\n",5);\n      }\n      printf(pcVar8,(ulong)uVar5);\n      if (local_a8 == 1) {\n        pcVar8 = (char *)dcgettext("gprof","\t%d basic-block count record\n",5);\n      }\n      else {\n        pcVar8 = (char *)dcgettext("gprof","\t%d basic-block count records\n",5);\n      }\n      printf(pcVar8,(ulong)local_a8);\n      DAT_001182d8 = 0;\n      return;\n    }\n    pcVar8 = "%s: file \'%s\' does not appear to be in gmon.out format\n";\nLAB_0010a006:\n    uVar12 = DAT_00119b10;\n    pcVar8 = (char *)dcgettext("gprof",pcVar8,5);\n    fprintf(stderr,pcVar8,uVar12,param_1);\n                    /* WARNING: Subroutine does not return */\n    FUN_0010a4c0(1);\n  }" if (parenthesized_expression "((((iVar3 == 0) && (iVar3 = FUN_00109550(__stream,&local_50), iVar3 == 0)) &&\n      (iVar3 = FUN_00109500(__stream,local_48), iVar3 == 0)) &&\n     (iVar3 = FUN_00109500(__stream,&local_94), iVar3 == 0))" ( (binary_expression "(((iVar3 == 0) && (iVar3 = FUN_00109550(__stream,&local_50), iVar3 == 0)) &&\n      (iVar3 = FUN_00109500(__stream,local_48), iVar3 == 0)) &&\n     (iVar3 = FUN_00109500(__stream,&local_94), iVar3 == 0)" (parenthesized_expression "(((iVar3 == 0) && (iVar3 = FUN_00109550(__stream,&local_50), iVar3 == 0)) &&\n      (iVar3 = FUN_00109500(__stream,local_48), iVar3 == 0))" ( (binary_expression "((iVar3 == 0) && (iVar3 = FUN_00109550(__stream,&local_50), iVar3 == 0)) &&\n      (iVar3 = FUN_00109500(__stream,local_48), iVar3 == 0)" (parenthesized_expression "((iVar3 == 0) && (iVar3 = FUN_00109550(__stream,&local_50), iVar3 == 0))" ( (binary_expression "(iVar3 == 0) && (iVar3 = FUN_00109550(__stream,&local_50), iVar3 == 0)" (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) && (parenthesized_expression "(iVar3 = FUN_00109550(__stream,&local_50), iVar3 == 0)" ( (comma_expression "iVar3 = FUN_00109550(__stream,&local_50), iVar3 == 0" (assignment_expression "iVar3 = FUN_00109550(__stream,&local_50)" identifier = (call_expression "FUN_00109550(__stream,&local_50)" identifier (argument_list "(__stream,&local_50)" ( identifier , (pointer_expression "&local_50" & identifier) )))) , (binary_expression "iVar3 == 0" identifier == number_literal)) ))) )) && (parenthesized_expression "(iVar3 = FUN_00109500(__stream,local_48), iVar3 == 0)" ( (comma_expression "iVar3 = FUN_00109500(__stream,local_48), iVar3 == 0" (assignment_expression "iVar3 = FUN_00109500(__stream,local_48)" identifier = (call_expression "FUN_00109500(__stream,local_48)" identifier (argument_list "(__stream,local_48)" ( identifier , identifier )))) , (binary_expression "iVar3 == 0" identifier == number_literal)) ))) )) && (parenthesized_expression "(iVar3 = FUN_00109500(__stream,&local_94), iVar3 == 0)" ( (comma_expression "iVar3 = FUN_00109500(__stream,&local_94), iVar3 == 0" (assignment_expression "iVar3 = FUN_00109500(__stream,&local_94)" identifier = (call_expression "FUN_00109500(__stream,&local_94)" identifier (argument_list "(__stream,&local_94)" ( identifier , (pointer_expression "&local_94" & identifier) )))) , (binary_expression "iVar3 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n    if (local_94 == 0x51879) {\n      iVar3 = FUN_00109500(__stream,&local_80);\n      if (iVar3 != 0) goto LAB_00109f6f;\n      uVar7 = (ulong)local_80;\n      if ((DAT_00119b18 != (ulong *)0x0) &&\n         (uVar7 = DAT_001195e8, (long)(int)local_80 != DAT_001195e8)) {\n        pcVar8 = "%s: profiling rate incompatible with first gmon file\n";\n        goto LAB_00109f7b;\n      }\n      DAT_001195e8 = uVar7;\n      iVar3 = FUN_00109420();\n      if (iVar3 == 0) {\n        lVar11 = 0x20;\n        iVar3 = 0x20;\n      }\n      else {\n        lVar11 = 0x28;\n        if (iVar3 == 1) {\n          iVar3 = 0x28;\n        }\n        else {\n          lVar11 = 0;\n          iVar3 = 0;\n        }\n      }\n    }\n    else {\n      if (DAT_001195c0 == 3) goto LAB_00109cae;\n      iVar4 = FUN_00109420();\n      if (iVar4 == 0) {\n        lVar11 = 0xc;\n        iVar3 = 0xc;\n      }\n      else {\n        lVar11 = 0x14;\n        if (iVar4 != 1) {\n          lVar11 = 0;\n        }\n        iVar3 = 0x14;\n        if (iVar4 != 1) {\n          iVar3 = 0;\n        }\n      }\n    }\n    iVar4 = fseek(__stream,lVar11,0);\n    if (iVar4 < 0) {\nLAB_00109ba3:\n      perror((char *)param_1);\n                    /* WARNING: Subroutine does not return */\n      FUN_0010a4c0(1);\n    }\n    uVar5 = local_48[0] - iVar3;\n    uVar7 = (ulong)(long)(int)uVar5 >> 1;\n    iVar3 = (int)uVar7;\n    if (DAT_00119b18 == (ulong *)0x0) {\n      DAT_00119b20 = 1;\n      puVar9 = (ulong *)xmalloc(0x20);\n      DAT_00119b18 = puVar9;\n      *puVar9 = CONCAT71(uStack_57,local_58);\n      *(int *)(puVar9 + 2) = iVar3;\n      sVar6 = (uVar7 & 0xffffffff) << 2;\n      puVar9[1] = local_50;\n      DAT_00119b28 = (double)(local_50 - CONCAT71(uStack_57,local_58) >> 1) /\n                     (double)(uVar7 & 0xffffffff);\n      uVar10 = xmalloc(sVar6);\n      puVar9[3] = uVar10;\n      memset((void *)DAT_00119b18[3],0,sVar6);\n    }\n    else if (((CONCAT71(uStack_57,local_58) != *DAT_00119b18) || (local_50 != DAT_00119b18[1])) ||\n            ((int)DAT_00119b18[2] != iVar3)) {\n      pcVar8 = "%s: incompatible with first gmon file\n";\n      goto LAB_00109f7b;\n    }\n    if (((byte)DAT_001195e4 & 0x40) != 0) {\n      printf("[gmon_out_read] lowpc 0x%lx highpc 0x%lx ncnt %d\n",CONCAT71(uStack_57,local_58),\n             local_50,(ulong)local_48[0]);\n      printf("[gmon_out_read] samp_bytes %d hist_num_bins %d\n",(ulong)uVar5,uVar7 & 0xffffffff);\n    }\n    if ((-1 < (int)uVar5) && (*DAT_00119b18 <= DAT_00119b18[1])) {\n      local_a4 = (uint)(iVar3 != 0);\n      if (iVar3 != 0) {\n        uVar10 = 0;\n        do {\n          sVar6 = fread(local_96,2,1,__stream);\n          uVar12 = DAT_00119b10;\n          if (sVar6 != 1) {\n            pcVar8 = (char *)dcgettext("gprof","%s: unexpected EOF after reading %d/%d bins\n",5);\n            fprintf(stderr,pcVar8,uVar12,(ulong)((int)uVar10 - 1),uVar7 & 0xffffffff);\n                    /* WARNING: Subroutine does not return */\n            FUN_0010a4c0(1);\n          }\n          iVar4 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x50))(local_96);\n          piVar1 = (int *)(DAT_00119b18[3] + uVar10 * 4);\n          *piVar1 = *piVar1 + iVar4;\n          bVar15 = iVar3 - 1 != uVar10;\n          uVar10 = uVar10 + 1;\n        } while (bVar15);\n      }\n      uVar5 = 0;\n      while ((iVar3 = FUN_00109550(__stream,&local_90), iVar3 == 0 &&\n             (iVar3 = FUN_00109550(__stream,&local_88), iVar3 == 0))) {\n        iVar3 = FUN_00109420();\n        if (iVar3 == 0) {\n          iVar3 = FUN_00109500(__stream,&local_80);\n          if (iVar3 != 0) break;\n          uVar7 = (ulong)local_80;\n        }\n        else {\n          if ((iVar3 != 1) || (iVar3 = FUN_001093d0(__stream,&local_80), iVar3 != 0)) break;\n          uVar7 = CONCAT44(uStack_7c,local_80);\n        }\n        uVar5 = uVar5 + 1;\n        if (((byte)DAT_001195e4 & 0x40) != 0) {\n          printf("[gmon_out_read] frompc 0x%lx selfpc 0x%lx count %lu\n",local_90,local_88,uVar7);\n        }\n        FUN_001040b0(local_90,local_88,uVar7);\n      }\n      local_a8 = 0;\n      if (DAT_001195e8 == 0) {\n        iVar3 = FUN_0010a4d0();\n        DAT_001195e8 = (ulong)iVar3;\n        if (DAT_001195e8 == 0) {\n          DAT_001195e8 = 1;\n          pcVar8 = (char *)dcgettext("gprof","time is in ticks, not seconds\n",5);\n          fprintf(stderr,pcVar8);\n        }\n      }\nLAB_001099b1:\n      if (stdin != __stream) {\n        fclose(__stream);\n      }\n      uVar2 = DAT_001195b4;\n      if (((byte)DAT_001195e0 & 0x20) == 0) {\n        return;\n      }\n      pcVar8 = (char *)dcgettext("gprof","File `%s\' (version %d) contains:\n",5);\n      printf(pcVar8,param_1,(ulong)uVar2);\n      if (local_a4 == 1) {\n        pcVar8 = (char *)dcgettext("gprof","\t%d histogram record\n",5);\n      }\n      else {\n        pcVar8 = (char *)dcgettext("gprof","\t%d histogram records\n",5);\n      }\n      printf(pcVar8,(ulong)local_a4);\n      if (uVar5 == 1) {\n        pcVar8 = (char *)dcgettext("gprof","\t%d call-graph record\n",5);\n      }\n      else {\n        pcVar8 = (char *)dcgettext("gprof","\t%d call-graph records\n",5);\n      }\n      printf(pcVar8,(ulong)uVar5);\n      if (local_a8 == 1) {\n        pcVar8 = (char *)dcgettext("gprof","\t%d basic-block count record\n",5);\n      }\n      else {\n        pcVar8 = (char *)dcgettext("gprof","\t%d basic-block count records\n",5);\n      }\n      printf(pcVar8,(ulong)local_a8);\n      DAT_001182d8 = 0;\n      return;\n    }\n    pcVar8 = "%s: file \'%s\' does not appear to be in gmon.out format\n";\nLAB_0010a006:\n    uVar12 = DAT_00119b10;\n    pcVar8 = (char *)dcgettext("gprof",pcVar8,5);\n    fprintf(stderr,pcVar8,uVar12,param_1);\n                    /* WARNING: Subroutine does not return */\n    FUN_0010a4c0(1);\n  }" { (if_statement "if (local_94 == 0x51879) {\n      iVar3 = FUN_00109500(__stream,&local_80);\n      if (iVar3 != 0) goto LAB_00109f6f;\n      uVar7 = (ulong)local_80;\n      if ((DAT_00119b18 != (ulong *)0x0) &&\n         (uVar7 = DAT_001195e8, (long)(int)local_80 != DAT_001195e8)) {\n        pcVar8 = "%s: profiling rate incompatible with first gmon file\n";\n        goto LAB_00109f7b;\n      }\n      DAT_001195e8 = uVar7;\n      iVar3 = FUN_00109420();\n      if (iVar3 == 0) {\n        lVar11 = 0x20;\n        iVar3 = 0x20;\n      }\n      else {\n        lVar11 = 0x28;\n        if (iVar3 == 1) {\n          iVar3 = 0x28;\n        }\n        else {\n          lVar11 = 0;\n          iVar3 = 0;\n        }\n      }\n    }\n    else {\n      if (DAT_001195c0 == 3) goto LAB_00109cae;\n      iVar4 = FUN_00109420();\n      if (iVar4 == 0) {\n        lVar11 = 0xc;\n        iVar3 = 0xc;\n      }\n      else {\n        lVar11 = 0x14;\n        if (iVar4 != 1) {\n          lVar11 = 0;\n        }\n        iVar3 = 0x14;\n        if (iVar4 != 1) {\n          iVar3 = 0;\n        }\n      }\n    }" if (parenthesized_expression "(local_94 == 0x51879)" ( (binary_expression "local_94 == 0x51879" identifier == number_literal) )) (compound_statement "{\n      iVar3 = FUN_00109500(__stream,&local_80);\n      if (iVar3 != 0) goto LAB_00109f6f;\n      uVar7 = (ulong)local_80;\n      if ((DAT_00119b18 != (ulong *)0x0) &&\n         (uVar7 = DAT_001195e8, (long)(int)local_80 != DAT_001195e8)) {\n        pcVar8 = "%s: profiling rate incompatible with first gmon file\n";\n        goto LAB_00109f7b;\n      }\n      DAT_001195e8 = uVar7;\n      iVar3 = FUN_00109420();\n      if (iVar3 == 0) {\n        lVar11 = 0x20;\n        iVar3 = 0x20;\n      }\n      else {\n        lVar11 = 0x28;\n        if (iVar3 == 1) {\n          iVar3 = 0x28;\n        }\n        else {\n          lVar11 = 0;\n          iVar3 = 0;\n        }\n      }\n    }" { (expression_statement "iVar3 = FUN_00109500(__stream,&local_80);" (assignment_expression "iVar3 = FUN_00109500(__stream,&local_80)" identifier = (call_expression "FUN_00109500(__stream,&local_80)" identifier (argument_list "(__stream,&local_80)" ( identifier , (pointer_expression "&local_80" & identifier) )))) ;) (if_statement "if (iVar3 != 0) goto LAB_00109f6f;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00109f6f;" goto statement_identifier ;)) (expression_statement "uVar7 = (ulong)local_80;" (assignment_expression "uVar7 = (ulong)local_80" identifier = (cast_expression "(ulong)local_80" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (if_statement "if ((DAT_00119b18 != (ulong *)0x0) &&\n         (uVar7 = DAT_001195e8, (long)(int)local_80 != DAT_001195e8)) {\n        pcVar8 = "%s: profiling rate incompatible with first gmon file\n";\n        goto LAB_00109f7b;\n      }" if (parenthesized_expression "((DAT_00119b18 != (ulong *)0x0) &&\n         (uVar7 = DAT_001195e8, (long)(int)local_80 != DAT_001195e8))" ( (binary_expression "(DAT_00119b18 != (ulong *)0x0) &&\n         (uVar7 = DAT_001195e8, (long)(int)local_80 != DAT_001195e8)" (parenthesized_expression "(DAT_00119b18 != (ulong *)0x0)" ( (binary_expression "DAT_00119b18 != (ulong *)0x0" identifier != (cast_expression "(ulong *)0x0" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(uVar7 = DAT_001195e8, (long)(int)local_80 != DAT_001195e8)" ( (comma_expression "uVar7 = DAT_001195e8, (long)(int)local_80 != DAT_001195e8" (assignment_expression "uVar7 = DAT_001195e8" identifier = identifier) , (binary_expression "(long)(int)local_80 != DAT_001195e8" (cast_expression "(long)(int)local_80" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)local_80" ( (type_descriptor "int" primitive_type) ) identifier)) != identifier)) ))) )) (compound_statement "{\n        pcVar8 = "%s: profiling rate incompatible with first gmon file\n";\n        goto LAB_00109f7b;\n      }" { (expression_statement "pcVar8 = "%s: profiling rate incompatible with first gmon file\n";" (assignment_expression "pcVar8 = "%s: profiling rate incompatible with first gmon file\n"" identifier = (string_literal ""%s: profiling rate incompatible with first gmon file\n"" " string_content escape_sequence ")) ;) (goto_statement "goto LAB_00109f7b;" goto statement_identifier ;) })) (expression_statement "DAT_001195e8 = uVar7;" (assignment_expression "DAT_001195e8 = uVar7" identifier = identifier) ;) (expression_statement "iVar3 = FUN_00109420();" (assignment_expression "iVar3 = FUN_00109420()" identifier = (call_expression "FUN_00109420()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar3 == 0) {\n        lVar11 = 0x20;\n        iVar3 = 0x20;\n      }\n      else {\n        lVar11 = 0x28;\n        if (iVar3 == 1) {\n          iVar3 = 0x28;\n        }\n        else {\n          lVar11 = 0;\n          iVar3 = 0;\n        }\n      }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n        lVar11 = 0x20;\n        iVar3 = 0x20;\n      }" { (expression_statement "lVar11 = 0x20;" (assignment_expression "lVar11 = 0x20" identifier = number_literal) ;) (expression_statement "iVar3 = 0x20;" (assignment_expression "iVar3 = 0x20" identifier = number_literal) ;) }) (else_clause "else {\n        lVar11 = 0x28;\n        if (iVar3 == 1) {\n          iVar3 = 0x28;\n        }\n        else {\n          lVar11 = 0;\n          iVar3 = 0;\n        }\n      }" else (compound_statement "{\n        lVar11 = 0x28;\n        if (iVar3 == 1) {\n          iVar3 = 0x28;\n        }\n        else {\n          lVar11 = 0;\n          iVar3 = 0;\n        }\n      }" { (expression_statement "lVar11 = 0x28;" (assignment_expression "lVar11 = 0x28" identifier = number_literal) ;) (if_statement "if (iVar3 == 1) {\n          iVar3 = 0x28;\n        }\n        else {\n          lVar11 = 0;\n          iVar3 = 0;\n        }" if (parenthesized_expression "(iVar3 == 1)" ( (binary_expression "iVar3 == 1" identifier == number_literal) )) (compound_statement "{\n          iVar3 = 0x28;\n        }" { (expression_statement "iVar3 = 0x28;" (assignment_expression "iVar3 = 0x28" identifier = number_literal) ;) }) (else_clause "else {\n          lVar11 = 0;\n          iVar3 = 0;\n        }" else (compound_statement "{\n          lVar11 = 0;\n          iVar3 = 0;\n        }" { (expression_statement "lVar11 = 0;" (assignment_expression "lVar11 = 0" identifier = number_literal) ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) }))) }))) }) (else_clause "else {\n      if (DAT_001195c0 == 3) goto LAB_00109cae;\n      iVar4 = FUN_00109420();\n      if (iVar4 == 0) {\n        lVar11 = 0xc;\n        iVar3 = 0xc;\n      }\n      else {\n        lVar11 = 0x14;\n        if (iVar4 != 1) {\n          lVar11 = 0;\n        }\n        iVar3 = 0x14;\n        if (iVar4 != 1) {\n          iVar3 = 0;\n        }\n      }\n    }" else (compound_statement "{\n      if (DAT_001195c0 == 3) goto LAB_00109cae;\n      iVar4 = FUN_00109420();\n      if (iVar4 == 0) {\n        lVar11 = 0xc;\n        iVar3 = 0xc;\n      }\n      else {\n        lVar11 = 0x14;\n        if (iVar4 != 1) {\n          lVar11 = 0;\n        }\n        iVar3 = 0x14;\n        if (iVar4 != 1) {\n          iVar3 = 0;\n        }\n      }\n    }" { (if_statement "if (DAT_001195c0 == 3) goto LAB_00109cae;" if (parenthesized_expression "(DAT_001195c0 == 3)" ( (binary_expression "DAT_001195c0 == 3" identifier == number_literal) )) (goto_statement "goto LAB_00109cae;" goto statement_identifier ;)) (expression_statement "iVar4 = FUN_00109420();" (assignment_expression "iVar4 = FUN_00109420()" identifier = (call_expression "FUN_00109420()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar4 == 0) {\n        lVar11 = 0xc;\n        iVar3 = 0xc;\n      }\n      else {\n        lVar11 = 0x14;\n        if (iVar4 != 1) {\n          lVar11 = 0;\n        }\n        iVar3 = 0x14;\n        if (iVar4 != 1) {\n          iVar3 = 0;\n        }\n      }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n        lVar11 = 0xc;\n        iVar3 = 0xc;\n      }" { (expression_statement "lVar11 = 0xc;" (assignment_expression "lVar11 = 0xc" identifier = number_literal) ;) (expression_statement "iVar3 = 0xc;" (assignment_expression "iVar3 = 0xc" identifier = number_literal) ;) }) (else_clause "else {\n        lVar11 = 0x14;\n        if (iVar4 != 1) {\n          lVar11 = 0;\n        }\n        iVar3 = 0x14;\n        if (iVar4 != 1) {\n          iVar3 = 0;\n        }\n      }" else (compound_statement "{\n        lVar11 = 0x14;\n        if (iVar4 != 1) {\n          lVar11 = 0;\n        }\n        iVar3 = 0x14;\n        if (iVar4 != 1) {\n          iVar3 = 0;\n        }\n      }" { (expression_statement "lVar11 = 0x14;" (assignment_expression "lVar11 = 0x14" identifier = number_literal) ;) (if_statement "if (iVar4 != 1) {\n          lVar11 = 0;\n        }" if (parenthesized_expression "(iVar4 != 1)" ( (binary_expression "iVar4 != 1" identifier != number_literal) )) (compound_statement "{\n          lVar11 = 0;\n        }" { (expression_statement "lVar11 = 0;" (assignment_expression "lVar11 = 0" identifier = number_literal) ;) })) (expression_statement "iVar3 = 0x14;" (assignment_expression "iVar3 = 0x14" identifier = number_literal) ;) (if_statement "if (iVar4 != 1) {\n          iVar3 = 0;\n        }" if (parenthesized_expression "(iVar4 != 1)" ( (binary_expression "iVar4 != 1" identifier != number_literal) )) (compound_statement "{\n          iVar3 = 0;\n        }" { (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) })) }))) }))) (expression_statement "iVar4 = fseek(__stream,lVar11,0);" (assignment_expression "iVar4 = fseek(__stream,lVar11,0)" identifier = (call_expression "fseek(__stream,lVar11,0)" identifier (argument_list "(__stream,lVar11,0)" ( identifier , identifier , number_literal )))) ;) (if_statement "if (iVar4 < 0) {\nLAB_00109ba3:\n      perror((char *)param_1);\n                    /* WARNING: Subroutine does not return */\n      FUN_0010a4c0(1);\n    }" if (parenthesized_expression "(iVar4 < 0)" ( (binary_expression "iVar4 < 0" identifier < number_literal) )) (compound_statement "{\nLAB_00109ba3:\n      perror((char *)param_1);\n                    /* WARNING: Subroutine does not return */\n      FUN_0010a4c0(1);\n    }" { (labeled_statement "LAB_00109ba3:\n      perror((char *)param_1);" statement_identifier : (expression_statement "perror((char *)param_1);" (call_expression "perror((char *)param_1)" identifier (argument_list "((char *)param_1)" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ))) ;)) comment (expression_statement "FUN_0010a4c0(1);" (call_expression "FUN_0010a4c0(1)" identifier (argument_list "(1)" ( number_literal ))) ;) })) (expression_statement "uVar5 = local_48[0] - iVar3;" (assignment_expression "uVar5 = local_48[0] - iVar3" identifier = (binary_expression "local_48[0] - iVar3" (subscript_expression "local_48[0]" identifier [ number_literal ]) - identifier)) ;) (expression_statement "uVar7 = (ulong)(long)(int)uVar5 >> 1;" (assignment_expression "uVar7 = (ulong)(long)(int)uVar5 >> 1" identifier = (binary_expression "(ulong)(long)(int)uVar5 >> 1" (cast_expression "(ulong)(long)(int)uVar5" ( (type_descriptor "ulong" type_identifier) ) (cast_expression "(long)(int)uVar5" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)uVar5" ( (type_descriptor "int" primitive_type) ) identifier))) >> number_literal)) ;) (expression_statement "iVar3 = (int)uVar7;" (assignment_expression "iVar3 = (int)uVar7" identifier = (cast_expression "(int)uVar7" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (DAT_00119b18 == (ulong *)0x0) {\n      DAT_00119b20 = 1;\n      puVar9 = (ulong *)xmalloc(0x20);\n      DAT_00119b18 = puVar9;\n      *puVar9 = CONCAT71(uStack_57,local_58);\n      *(int *)(puVar9 + 2) = iVar3;\n      sVar6 = (uVar7 & 0xffffffff) << 2;\n      puVar9[1] = local_50;\n      DAT_00119b28 = (double)(local_50 - CONCAT71(uStack_57,local_58) >> 1) /\n                     (double)(uVar7 & 0xffffffff);\n      uVar10 = xmalloc(sVar6);\n      puVar9[3] = uVar10;\n      memset((void *)DAT_00119b18[3],0,sVar6);\n    }\n    else if (((CONCAT71(uStack_57,local_58) != *DAT_00119b18) || (local_50 != DAT_00119b18[1])) ||\n            ((int)DAT_00119b18[2] != iVar3)) {\n      pcVar8 = "%s: incompatible with first gmon file\n";\n      goto LAB_00109f7b;\n    }" if (parenthesized_expression "(DAT_00119b18 == (ulong *)0x0)" ( (binary_expression "DAT_00119b18 == (ulong *)0x0" identifier == (cast_expression "(ulong *)0x0" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      DAT_00119b20 = 1;\n      puVar9 = (ulong *)xmalloc(0x20);\n      DAT_00119b18 = puVar9;\n      *puVar9 = CONCAT71(uStack_57,local_58);\n      *(int *)(puVar9 + 2) = iVar3;\n      sVar6 = (uVar7 & 0xffffffff) << 2;\n      puVar9[1] = local_50;\n      DAT_00119b28 = (double)(local_50 - CONCAT71(uStack_57,local_58) >> 1) /\n                     (double)(uVar7 & 0xffffffff);\n      uVar10 = xmalloc(sVar6);\n      puVar9[3] = uVar10;\n      memset((void *)DAT_00119b18[3],0,sVar6);\n    }" { (expression_statement "DAT_00119b20 = 1;" (assignment_expression "DAT_00119b20 = 1" identifier = number_literal) ;) (expression_statement "puVar9 = (ulong *)xmalloc(0x20);" (assignment_expression "puVar9 = (ulong *)xmalloc(0x20)" identifier = (cast_expression "(ulong *)xmalloc(0x20)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(0x20)" identifier (argument_list "(0x20)" ( number_literal ))))) ;) (expression_statement "DAT_00119b18 = puVar9;" (assignment_expression "DAT_00119b18 = puVar9" identifier = identifier) ;) (expression_statement "*puVar9 = CONCAT71(uStack_57,local_58);" (assignment_expression "*puVar9 = CONCAT71(uStack_57,local_58)" (pointer_expression "*puVar9" * identifier) = (call_expression "CONCAT71(uStack_57,local_58)" identifier (argument_list "(uStack_57,local_58)" ( identifier , identifier )))) ;) (expression_statement "*(int *)(puVar9 + 2) = iVar3;" (assignment_expression "*(int *)(puVar9 + 2) = iVar3" (pointer_expression "*(int *)(puVar9 + 2)" * (cast_expression "(int *)(puVar9 + 2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + 2)" ( (binary_expression "puVar9 + 2" identifier + number_literal) )))) = identifier) ;) (expression_statement "sVar6 = (uVar7 & 0xffffffff) << 2;" (assignment_expression "sVar6 = (uVar7 & 0xffffffff) << 2" identifier = (binary_expression "(uVar7 & 0xffffffff) << 2" (parenthesized_expression "(uVar7 & 0xffffffff)" ( (binary_expression "uVar7 & 0xffffffff" identifier & number_literal) )) << number_literal)) ;) (expression_statement "puVar9[1] = local_50;" (assignment_expression "puVar9[1] = local_50" (subscript_expression "puVar9[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "DAT_00119b28 = (double)(local_50 - CONCAT71(uStack_57,local_58) >> 1) /\n                     (double)(uVar7 & 0xffffffff);" (assignment_expression "DAT_00119b28 = (double)(local_50 - CONCAT71(uStack_57,local_58) >> 1) /\n                     (double)(uVar7 & 0xffffffff)" identifier = (binary_expression "(double)(local_50 - CONCAT71(uStack_57,local_58) >> 1) /\n                     (double)(uVar7 & 0xffffffff)" (cast_expression "(double)(local_50 - CONCAT71(uStack_57,local_58) >> 1)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "(local_50 - CONCAT71(uStack_57,local_58) >> 1)" ( (binary_expression "local_50 - CONCAT71(uStack_57,local_58) >> 1" (binary_expression "local_50 - CONCAT71(uStack_57,local_58)" identifier - (call_expression "CONCAT71(uStack_57,local_58)" identifier (argument_list "(uStack_57,local_58)" ( identifier , identifier )))) >> number_literal) ))) / (cast_expression "(double)(uVar7 & 0xffffffff)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "(uVar7 & 0xffffffff)" ( (binary_expression "uVar7 & 0xffffffff" identifier & number_literal) ))))) ;) (expression_statement "uVar10 = xmalloc(sVar6);" (assignment_expression "uVar10 = xmalloc(sVar6)" identifier = (call_expression "xmalloc(sVar6)" identifier (argument_list "(sVar6)" ( identifier )))) ;) (expression_statement "puVar9[3] = uVar10;" (assignment_expression "puVar9[3] = uVar10" (subscript_expression "puVar9[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "memset((void *)DAT_00119b18[3],0,sVar6);" (call_expression "memset((void *)DAT_00119b18[3],0,sVar6)" identifier (argument_list "((void *)DAT_00119b18[3],0,sVar6)" ( (cast_expression "(void *)DAT_00119b18[3]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "DAT_00119b18[3]" identifier [ number_literal ])) , number_literal , identifier ))) ;) }) (else_clause "else if (((CONCAT71(uStack_57,local_58) != *DAT_00119b18) || (local_50 != DAT_00119b18[1])) ||\n            ((int)DAT_00119b18[2] != iVar3)) {\n      pcVar8 = "%s: incompatible with first gmon file\n";\n      goto LAB_00109f7b;\n    }" else (if_statement "if (((CONCAT71(uStack_57,local_58) != *DAT_00119b18) || (local_50 != DAT_00119b18[1])) ||\n            ((int)DAT_00119b18[2] != iVar3)) {\n      pcVar8 = "%s: incompatible with first gmon file\n";\n      goto LAB_00109f7b;\n    }" if (parenthesized_expression "(((CONCAT71(uStack_57,local_58) != *DAT_00119b18) || (local_50 != DAT_00119b18[1])) ||\n            ((int)DAT_00119b18[2] != iVar3))" ( (binary_expression "((CONCAT71(uStack_57,local_58) != *DAT_00119b18) || (local_50 != DAT_00119b18[1])) ||\n            ((int)DAT_00119b18[2] != iVar3)" (parenthesized_expression "((CONCAT71(uStack_57,local_58) != *DAT_00119b18) || (local_50 != DAT_00119b18[1]))" ( (binary_expression "(CONCAT71(uStack_57,local_58) != *DAT_00119b18) || (local_50 != DAT_00119b18[1])" (parenthesized_expression "(CONCAT71(uStack_57,local_58) != *DAT_00119b18)" ( (binary_expression "CONCAT71(uStack_57,local_58) != *DAT_00119b18" (call_expression "CONCAT71(uStack_57,local_58)" identifier (argument_list "(uStack_57,local_58)" ( identifier , identifier ))) != (pointer_expression "*DAT_00119b18" * identifier)) )) || (parenthesized_expression "(local_50 != DAT_00119b18[1])" ( (binary_expression "local_50 != DAT_00119b18[1]" identifier != (subscript_expression "DAT_00119b18[1]" identifier [ number_literal ])) ))) )) || (parenthesized_expression "((int)DAT_00119b18[2] != iVar3)" ( (binary_expression "(int)DAT_00119b18[2] != iVar3" (cast_expression "(int)DAT_00119b18[2]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "DAT_00119b18[2]" identifier [ number_literal ])) != identifier) ))) )) (compound_statement "{\n      pcVar8 = "%s: incompatible with first gmon file\n";\n      goto LAB_00109f7b;\n    }" { (expression_statement "pcVar8 = "%s: incompatible with first gmon file\n";" (assignment_expression "pcVar8 = "%s: incompatible with first gmon file\n"" identifier = (string_literal ""%s: incompatible with first gmon file\n"" " string_content escape_sequence ")) ;) (goto_statement "goto LAB_00109f7b;" goto statement_identifier ;) })))) (if_statement "if (((byte)DAT_001195e4 & 0x40) != 0) {\n      printf("[gmon_out_read] lowpc 0x%lx highpc 0x%lx ncnt %d\n",CONCAT71(uStack_57,local_58),\n             local_50,(ulong)local_48[0]);\n      printf("[gmon_out_read] samp_bytes %d hist_num_bins %d\n",(ulong)uVar5,uVar7 & 0xffffffff);\n    }" if (parenthesized_expression "(((byte)DAT_001195e4 & 0x40) != 0)" ( (binary_expression "((byte)DAT_001195e4 & 0x40) != 0" (parenthesized_expression "((byte)DAT_001195e4 & 0x40)" ( (binary_expression "(byte)DAT_001195e4 & 0x40" (cast_expression "(byte)DAT_001195e4" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n      printf("[gmon_out_read] lowpc 0x%lx highpc 0x%lx ncnt %d\n",CONCAT71(uStack_57,local_58),\n             local_50,(ulong)local_48[0]);\n      printf("[gmon_out_read] samp_bytes %d hist_num_bins %d\n",(ulong)uVar5,uVar7 & 0xffffffff);\n    }" { (expression_statement "printf("[gmon_out_read] lowpc 0x%lx highpc 0x%lx ncnt %d\n",CONCAT71(uStack_57,local_58),\n             local_50,(ulong)local_48[0]);" (call_expression "printf("[gmon_out_read] lowpc 0x%lx highpc 0x%lx ncnt %d\n",CONCAT71(uStack_57,local_58),\n             local_50,(ulong)local_48[0])" identifier (argument_list "("[gmon_out_read] lowpc 0x%lx highpc 0x%lx ncnt %d\n",CONCAT71(uStack_57,local_58),\n             local_50,(ulong)local_48[0])" ( (string_literal ""[gmon_out_read] lowpc 0x%lx highpc 0x%lx ncnt %d\n"" " string_content escape_sequence ") , (call_expression "CONCAT71(uStack_57,local_58)" identifier (argument_list "(uStack_57,local_58)" ( identifier , identifier ))) , identifier , (cast_expression "(ulong)local_48[0]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "local_48[0]" identifier [ number_literal ])) ))) ;) (expression_statement "printf("[gmon_out_read] samp_bytes %d hist_num_bins %d\n",(ulong)uVar5,uVar7 & 0xffffffff);" (call_expression "printf("[gmon_out_read] samp_bytes %d hist_num_bins %d\n",(ulong)uVar5,uVar7 & 0xffffffff)" identifier (argument_list "("[gmon_out_read] samp_bytes %d hist_num_bins %d\n",(ulong)uVar5,uVar7 & 0xffffffff)" ( (string_literal ""[gmon_out_read] samp_bytes %d hist_num_bins %d\n"" " string_content escape_sequence ") , (cast_expression "(ulong)uVar5" ( (type_descriptor "ulong" type_identifier) ) identifier) , (binary_expression "uVar7 & 0xffffffff" identifier & number_literal) ))) ;) })) (if_statement "if ((-1 < (int)uVar5) && (*DAT_00119b18 <= DAT_00119b18[1])) {\n      local_a4 = (uint)(iVar3 != 0);\n      if (iVar3 != 0) {\n        uVar10 = 0;\n        do {\n          sVar6 = fread(local_96,2,1,__stream);\n          uVar12 = DAT_00119b10;\n          if (sVar6 != 1) {\n            pcVar8 = (char *)dcgettext("gprof","%s: unexpected EOF after reading %d/%d bins\n",5);\n            fprintf(stderr,pcVar8,uVar12,(ulong)((int)uVar10 - 1),uVar7 & 0xffffffff);\n                    /* WARNING: Subroutine does not return */\n            FUN_0010a4c0(1);\n          }\n          iVar4 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x50))(local_96);\n          piVar1 = (int *)(DAT_00119b18[3] + uVar10 * 4);\n          *piVar1 = *piVar1 + iVar4;\n          bVar15 = iVar3 - 1 != uVar10;\n          uVar10 = uVar10 + 1;\n        } while (bVar15);\n      }\n      uVar5 = 0;\n      while ((iVar3 = FUN_00109550(__stream,&local_90), iVar3 == 0 &&\n             (iVar3 = FUN_00109550(__stream,&local_88), iVar3 == 0))) {\n        iVar3 = FUN_00109420();\n        if (iVar3 == 0) {\n          iVar3 = FUN_00109500(__stream,&local_80);\n          if (iVar3 != 0) break;\n          uVar7 = (ulong)local_80;\n        }\n        else {\n          if ((iVar3 != 1) || (iVar3 = FUN_001093d0(__stream,&local_80), iVar3 != 0)) break;\n          uVar7 = CONCAT44(uStack_7c,local_80);\n        }\n        uVar5 = uVar5 + 1;\n        if (((byte)DAT_001195e4 & 0x40) != 0) {\n          printf("[gmon_out_read] frompc 0x%lx selfpc 0x%lx count %lu\n",local_90,local_88,uVar7);\n        }\n        FUN_001040b0(local_90,local_88,uVar7);\n      }\n      local_a8 = 0;\n      if (DAT_001195e8 == 0) {\n        iVar3 = FUN_0010a4d0();\n        DAT_001195e8 = (ulong)iVar3;\n        if (DAT_001195e8 == 0) {\n          DAT_001195e8 = 1;\n          pcVar8 = (char *)dcgettext("gprof","time is in ticks, not seconds\n",5);\n          fprintf(stderr,pcVar8);\n        }\n      }\nLAB_001099b1:\n      if (stdin != __stream) {\n        fclose(__stream);\n      }\n      uVar2 = DAT_001195b4;\n      if (((byte)DAT_001195e0 & 0x20) == 0) {\n        return;\n      }\n      pcVar8 = (char *)dcgettext("gprof","File `%s\' (version %d) contains:\n",5);\n      printf(pcVar8,param_1,(ulong)uVar2);\n      if (local_a4 == 1) {\n        pcVar8 = (char *)dcgettext("gprof","\t%d histogram record\n",5);\n      }\n      else {\n        pcVar8 = (char *)dcgettext("gprof","\t%d histogram records\n",5);\n      }\n      printf(pcVar8,(ulong)local_a4);\n      if (uVar5 == 1) {\n        pcVar8 = (char *)dcgettext("gprof","\t%d call-graph record\n",5);\n      }\n      else {\n        pcVar8 = (char *)dcgettext("gprof","\t%d call-graph records\n",5);\n      }\n      printf(pcVar8,(ulong)uVar5);\n      if (local_a8 == 1) {\n        pcVar8 = (char *)dcgettext("gprof","\t%d basic-block count record\n",5);\n      }\n      else {\n        pcVar8 = (char *)dcgettext("gprof","\t%d basic-block count records\n",5);\n      }\n      printf(pcVar8,(ulong)local_a8);\n      DAT_001182d8 = 0;\n      return;\n    }" if (parenthesized_expression "((-1 < (int)uVar5) && (*DAT_00119b18 <= DAT_00119b18[1]))" ( (binary_expression "(-1 < (int)uVar5) && (*DAT_00119b18 <= DAT_00119b18[1])" (parenthesized_expression "(-1 < (int)uVar5)" ( (binary_expression "-1 < (int)uVar5" number_literal < (cast_expression "(int)uVar5" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "(*DAT_00119b18 <= DAT_00119b18[1])" ( (binary_expression "*DAT_00119b18 <= DAT_00119b18[1]" (pointer_expression "*DAT_00119b18" * identifier) <= (subscript_expression "DAT_00119b18[1]" identifier [ number_literal ])) ))) )) (compound_statement "{\n      local_a4 = (uint)(iVar3 != 0);\n      if (iVar3 != 0) {\n        uVar10 = 0;\n        do {\n          sVar6 = fread(local_96,2,1,__stream);\n          uVar12 = DAT_00119b10;\n          if (sVar6 != 1) {\n            pcVar8 = (char *)dcgettext("gprof","%s: unexpected EOF after reading %d/%d bins\n",5);\n            fprintf(stderr,pcVar8,uVar12,(ulong)((int)uVar10 - 1),uVar7 & 0xffffffff);\n                    /* WARNING: Subroutine does not return */\n            FUN_0010a4c0(1);\n          }\n          iVar4 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x50))(local_96);\n          piVar1 = (int *)(DAT_00119b18[3] + uVar10 * 4);\n          *piVar1 = *piVar1 + iVar4;\n          bVar15 = iVar3 - 1 != uVar10;\n          uVar10 = uVar10 + 1;\n        } while (bVar15);\n      }\n      uVar5 = 0;\n      while ((iVar3 = FUN_00109550(__stream,&local_90), iVar3 == 0 &&\n             (iVar3 = FUN_00109550(__stream,&local_88), iVar3 == 0))) {\n        iVar3 = FUN_00109420();\n        if (iVar3 == 0) {\n          iVar3 = FUN_00109500(__stream,&local_80);\n          if (iVar3 != 0) break;\n          uVar7 = (ulong)local_80;\n        }\n        else {\n          if ((iVar3 != 1) || (iVar3 = FUN_001093d0(__stream,&local_80), iVar3 != 0)) break;\n          uVar7 = CONCAT44(uStack_7c,local_80);\n        }\n        uVar5 = uVar5 + 1;\n        if (((byte)DAT_001195e4 & 0x40) != 0) {\n          printf("[gmon_out_read] frompc 0x%lx selfpc 0x%lx count %lu\n",local_90,local_88,uVar7);\n        }\n        FUN_001040b0(local_90,local_88,uVar7);\n      }\n      local_a8 = 0;\n      if (DAT_001195e8 == 0) {\n        iVar3 = FUN_0010a4d0();\n        DAT_001195e8 = (ulong)iVar3;\n        if (DAT_001195e8 == 0) {\n          DAT_001195e8 = 1;\n          pcVar8 = (char *)dcgettext("gprof","time is in ticks, not seconds\n",5);\n          fprintf(stderr,pcVar8);\n        }\n      }\nLAB_001099b1:\n      if (stdin != __stream) {\n        fclose(__stream);\n      }\n      uVar2 = DAT_001195b4;\n      if (((byte)DAT_001195e0 & 0x20) == 0) {\n        return;\n      }\n      pcVar8 = (char *)dcgettext("gprof","File `%s\' (version %d) contains:\n",5);\n      printf(pcVar8,param_1,(ulong)uVar2);\n      if (local_a4 == 1) {\n        pcVar8 = (char *)dcgettext("gprof","\t%d histogram record\n",5);\n      }\n      else {\n        pcVar8 = (char *)dcgettext("gprof","\t%d histogram records\n",5);\n      }\n      printf(pcVar8,(ulong)local_a4);\n      if (uVar5 == 1) {\n        pcVar8 = (char *)dcgettext("gprof","\t%d call-graph record\n",5);\n      }\n      else {\n        pcVar8 = (char *)dcgettext("gprof","\t%d call-graph records\n",5);\n      }\n      printf(pcVar8,(ulong)uVar5);\n      if (local_a8 == 1) {\n        pcVar8 = (char *)dcgettext("gprof","\t%d basic-block count record\n",5);\n      }\n      else {\n        pcVar8 = (char *)dcgettext("gprof","\t%d basic-block count records\n",5);\n      }\n      printf(pcVar8,(ulong)local_a8);\n      DAT_001182d8 = 0;\n      return;\n    }" { (expression_statement "local_a4 = (uint)(iVar3 != 0);" (assignment_expression "local_a4 = (uint)(iVar3 != 0)" identifier = (call_expression "(uint)(iVar3 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )))) ;) (if_statement "if (iVar3 != 0) {\n        uVar10 = 0;\n        do {\n          sVar6 = fread(local_96,2,1,__stream);\n          uVar12 = DAT_00119b10;\n          if (sVar6 != 1) {\n            pcVar8 = (char *)dcgettext("gprof","%s: unexpected EOF after reading %d/%d bins\n",5);\n            fprintf(stderr,pcVar8,uVar12,(ulong)((int)uVar10 - 1),uVar7 & 0xffffffff);\n                    /* WARNING: Subroutine does not return */\n            FUN_0010a4c0(1);\n          }\n          iVar4 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x50))(local_96);\n          piVar1 = (int *)(DAT_00119b18[3] + uVar10 * 4);\n          *piVar1 = *piVar1 + iVar4;\n          bVar15 = iVar3 - 1 != uVar10;\n          uVar10 = uVar10 + 1;\n        } while (bVar15);\n      }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n        uVar10 = 0;\n        do {\n          sVar6 = fread(local_96,2,1,__stream);\n          uVar12 = DAT_00119b10;\n          if (sVar6 != 1) {\n            pcVar8 = (char *)dcgettext("gprof","%s: unexpected EOF after reading %d/%d bins\n",5);\n            fprintf(stderr,pcVar8,uVar12,(ulong)((int)uVar10 - 1),uVar7 & 0xffffffff);\n                    /* WARNING: Subroutine does not return */\n            FUN_0010a4c0(1);\n          }\n          iVar4 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x50))(local_96);\n          piVar1 = (int *)(DAT_00119b18[3] + uVar10 * 4);\n          *piVar1 = *piVar1 + iVar4;\n          bVar15 = iVar3 - 1 != uVar10;\n          uVar10 = uVar10 + 1;\n        } while (bVar15);\n      }" { (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) (do_statement "do {\n          sVar6 = fread(local_96,2,1,__stream);\n          uVar12 = DAT_00119b10;\n          if (sVar6 != 1) {\n            pcVar8 = (char *)dcgettext("gprof","%s: unexpected EOF after reading %d/%d bins\n",5);\n            fprintf(stderr,pcVar8,uVar12,(ulong)((int)uVar10 - 1),uVar7 & 0xffffffff);\n                    /* WARNING: Subroutine does not return */\n            FUN_0010a4c0(1);\n          }\n          iVar4 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x50))(local_96);\n          piVar1 = (int *)(DAT_00119b18[3] + uVar10 * 4);\n          *piVar1 = *piVar1 + iVar4;\n          bVar15 = iVar3 - 1 != uVar10;\n          uVar10 = uVar10 + 1;\n        } while (bVar15);" do (compound_statement "{\n          sVar6 = fread(local_96,2,1,__stream);\n          uVar12 = DAT_00119b10;\n          if (sVar6 != 1) {\n            pcVar8 = (char *)dcgettext("gprof","%s: unexpected EOF after reading %d/%d bins\n",5);\n            fprintf(stderr,pcVar8,uVar12,(ulong)((int)uVar10 - 1),uVar7 & 0xffffffff);\n                    /* WARNING: Subroutine does not return */\n            FUN_0010a4c0(1);\n          }\n          iVar4 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x50))(local_96);\n          piVar1 = (int *)(DAT_00119b18[3] + uVar10 * 4);\n          *piVar1 = *piVar1 + iVar4;\n          bVar15 = iVar3 - 1 != uVar10;\n          uVar10 = uVar10 + 1;\n        }" { (expression_statement "sVar6 = fread(local_96,2,1,__stream);" (assignment_expression "sVar6 = fread(local_96,2,1,__stream)" identifier = (call_expression "fread(local_96,2,1,__stream)" identifier (argument_list "(local_96,2,1,__stream)" ( identifier , number_literal , number_literal , identifier )))) ;) (expression_statement "uVar12 = DAT_00119b10;" (assignment_expression "uVar12 = DAT_00119b10" identifier = identifier) ;) (if_statement "if (sVar6 != 1) {\n            pcVar8 = (char *)dcgettext("gprof","%s: unexpected EOF after reading %d/%d bins\n",5);\n            fprintf(stderr,pcVar8,uVar12,(ulong)((int)uVar10 - 1),uVar7 & 0xffffffff);\n                    /* WARNING: Subroutine does not return */\n            FUN_0010a4c0(1);\n          }" if (parenthesized_expression "(sVar6 != 1)" ( (binary_expression "sVar6 != 1" identifier != number_literal) )) (compound_statement "{\n            pcVar8 = (char *)dcgettext("gprof","%s: unexpected EOF after reading %d/%d bins\n",5);\n            fprintf(stderr,pcVar8,uVar12,(ulong)((int)uVar10 - 1),uVar7 & 0xffffffff);\n                    /* WARNING: Subroutine does not return */\n            FUN_0010a4c0(1);\n          }" { (expression_statement "pcVar8 = (char *)dcgettext("gprof","%s: unexpected EOF after reading %d/%d bins\n",5);" (assignment_expression "pcVar8 = (char *)dcgettext("gprof","%s: unexpected EOF after reading %d/%d bins\n",5)" identifier = (cast_expression "(char *)dcgettext("gprof","%s: unexpected EOF after reading %d/%d bins\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext("gprof","%s: unexpected EOF after reading %d/%d bins\n",5)" identifier (argument_list "("gprof","%s: unexpected EOF after reading %d/%d bins\n",5)" ( (string_literal ""gprof"" " string_content ") , (string_literal ""%s: unexpected EOF after reading %d/%d bins\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "fprintf(stderr,pcVar8,uVar12,(ulong)((int)uVar10 - 1),uVar7 & 0xffffffff);" (call_expression "fprintf(stderr,pcVar8,uVar12,(ulong)((int)uVar10 - 1),uVar7 & 0xffffffff)" identifier (argument_list "(stderr,pcVar8,uVar12,(ulong)((int)uVar10 - 1),uVar7 & 0xffffffff)" ( identifier , identifier , identifier , (call_expression "(ulong)((int)uVar10 - 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((int)uVar10 - 1)" ( (binary_expression "(int)uVar10 - 1" (cast_expression "(int)uVar10" ( (type_descriptor "int" primitive_type) ) identifier) - number_literal) ))) , (binary_expression "uVar7 & 0xffffffff" identifier & number_literal) ))) ;) comment (expression_statement "FUN_0010a4c0(1);" (call_expression "FUN_0010a4c0(1)" identifier (argument_list "(1)" ( number_literal ))) ;) })) (expression_statement "iVar4 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x50))(local_96);" (assignment_expression "iVar4 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x50))(local_96)" identifier = (call_expression "(**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x50))(local_96)" (parenthesized_expression "(**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x50))" ( (pointer_expression "**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x50)" * (pointer_expression "*(code **)(*(long *)(DAT_00119ad8 + 8) + 0x50)" * (cast_expression "(code **)(*(long *)(DAT_00119ad8 + 8) + 0x50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(DAT_00119ad8 + 8) + 0x50)" ( (binary_expression "*(long *)(DAT_00119ad8 + 8) + 0x50" (pointer_expression "*(long *)(DAT_00119ad8 + 8)" * (cast_expression "(long *)(DAT_00119ad8 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00119ad8 + 8)" ( (binary_expression "DAT_00119ad8 + 8" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(local_96)" ( identifier )))) ;) (expression_statement "piVar1 = (int *)(DAT_00119b18[3] + uVar10 * 4);" (assignment_expression "piVar1 = (int *)(DAT_00119b18[3] + uVar10 * 4)" identifier = (cast_expression "(int *)(DAT_00119b18[3] + uVar10 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00119b18[3] + uVar10 * 4)" ( (binary_expression "DAT_00119b18[3] + uVar10 * 4" (subscript_expression "DAT_00119b18[3]" identifier [ number_literal ]) + (binary_expression "uVar10 * 4" identifier * number_literal)) )))) ;) (expression_statement "*piVar1 = *piVar1 + iVar4;" (assignment_expression "*piVar1 = *piVar1 + iVar4" (pointer_expression "*piVar1" * identifier) = (binary_expression "*piVar1 + iVar4" (pointer_expression "*piVar1" * identifier) + identifier)) ;) (expression_statement "bVar15 = iVar3 - 1 != uVar10;" (assignment_expression "bVar15 = iVar3 - 1 != uVar10" identifier = (binary_expression "iVar3 - 1 != uVar10" (binary_expression "iVar3 - 1" identifier - number_literal) != identifier)) ;) (expression_statement "uVar10 = uVar10 + 1;" (assignment_expression "uVar10 = uVar10 + 1" identifier = (binary_expression "uVar10 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar15)" ( identifier )) ;) })) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (while_statement "while ((iVar3 = FUN_00109550(__stream,&local_90), iVar3 == 0 &&\n             (iVar3 = FUN_00109550(__stream,&local_88), iVar3 == 0))) {\n        iVar3 = FUN_00109420();\n        if (iVar3 == 0) {\n          iVar3 = FUN_00109500(__stream,&local_80);\n          if (iVar3 != 0) break;\n          uVar7 = (ulong)local_80;\n        }\n        else {\n          if ((iVar3 != 1) || (iVar3 = FUN_001093d0(__stream,&local_80), iVar3 != 0)) break;\n          uVar7 = CONCAT44(uStack_7c,local_80);\n        }\n        uVar5 = uVar5 + 1;\n        if (((byte)DAT_001195e4 & 0x40) != 0) {\n          printf("[gmon_out_read] frompc 0x%lx selfpc 0x%lx count %lu\n",local_90,local_88,uVar7);\n        }\n        FUN_001040b0(local_90,local_88,uVar7);\n      }" while (parenthesized_expression "((iVar3 = FUN_00109550(__stream,&local_90), iVar3 == 0 &&\n             (iVar3 = FUN_00109550(__stream,&local_88), iVar3 == 0)))" ( (parenthesized_expression "(iVar3 = FUN_00109550(__stream,&local_90), iVar3 == 0 &&\n             (iVar3 = FUN_00109550(__stream,&local_88), iVar3 == 0))" ( (comma_expression "iVar3 = FUN_00109550(__stream,&local_90), iVar3 == 0 &&\n             (iVar3 = FUN_00109550(__stream,&local_88), iVar3 == 0)" (assignment_expression "iVar3 = FUN_00109550(__stream,&local_90)" identifier = (call_expression "FUN_00109550(__stream,&local_90)" identifier (argument_list "(__stream,&local_90)" ( identifier , (pointer_expression "&local_90" & identifier) )))) , (binary_expression "iVar3 == 0 &&\n             (iVar3 = FUN_00109550(__stream,&local_88), iVar3 == 0)" (binary_expression "iVar3 == 0" identifier == number_literal) && (parenthesized_expression "(iVar3 = FUN_00109550(__stream,&local_88), iVar3 == 0)" ( (comma_expression "iVar3 = FUN_00109550(__stream,&local_88), iVar3 == 0" (assignment_expression "iVar3 = FUN_00109550(__stream,&local_88)" identifier = (call_expression "FUN_00109550(__stream,&local_88)" identifier (argument_list "(__stream,&local_88)" ( identifier , (pointer_expression "&local_88" & identifier) )))) , (binary_expression "iVar3 == 0" identifier == number_literal)) )))) )) )) (compound_statement "{\n        iVar3 = FUN_00109420();\n        if (iVar3 == 0) {\n          iVar3 = FUN_00109500(__stream,&local_80);\n          if (iVar3 != 0) break;\n          uVar7 = (ulong)local_80;\n        }\n        else {\n          if ((iVar3 != 1) || (iVar3 = FUN_001093d0(__stream,&local_80), iVar3 != 0)) break;\n          uVar7 = CONCAT44(uStack_7c,local_80);\n        }\n        uVar5 = uVar5 + 1;\n        if (((byte)DAT_001195e4 & 0x40) != 0) {\n          printf("[gmon_out_read] frompc 0x%lx selfpc 0x%lx count %lu\n",local_90,local_88,uVar7);\n        }\n        FUN_001040b0(local_90,local_88,uVar7);\n      }" { (expression_statement "iVar3 = FUN_00109420();" (assignment_expression "iVar3 = FUN_00109420()" identifier = (call_expression "FUN_00109420()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar3 == 0) {\n          iVar3 = FUN_00109500(__stream,&local_80);\n          if (iVar3 != 0) break;\n          uVar7 = (ulong)local_80;\n        }\n        else {\n          if ((iVar3 != 1) || (iVar3 = FUN_001093d0(__stream,&local_80), iVar3 != 0)) break;\n          uVar7 = CONCAT44(uStack_7c,local_80);\n        }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n          iVar3 = FUN_00109500(__stream,&local_80);\n          if (iVar3 != 0) break;\n          uVar7 = (ulong)local_80;\n        }" { (expression_statement "iVar3 = FUN_00109500(__stream,&local_80);" (assignment_expression "iVar3 = FUN_00109500(__stream,&local_80)" identifier = (call_expression "FUN_00109500(__stream,&local_80)" identifier (argument_list "(__stream,&local_80)" ( identifier , (pointer_expression "&local_80" & identifier) )))) ;) (if_statement "if (iVar3 != 0) break;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar7 = (ulong)local_80;" (assignment_expression "uVar7 = (ulong)local_80" identifier = (cast_expression "(ulong)local_80" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) }) (else_clause "else {\n          if ((iVar3 != 1) || (iVar3 = FUN_001093d0(__stream,&local_80), iVar3 != 0)) break;\n          uVar7 = CONCAT44(uStack_7c,local_80);\n        }" else (compound_statement "{\n          if ((iVar3 != 1) || (iVar3 = FUN_001093d0(__stream,&local_80), iVar3 != 0)) break;\n          uVar7 = CONCAT44(uStack_7c,local_80);\n        }" { (if_statement "if ((iVar3 != 1) || (iVar3 = FUN_001093d0(__stream,&local_80), iVar3 != 0)) break;" if (parenthesized_expression "((iVar3 != 1) || (iVar3 = FUN_001093d0(__stream,&local_80), iVar3 != 0))" ( (binary_expression "(iVar3 != 1) || (iVar3 = FUN_001093d0(__stream,&local_80), iVar3 != 0)" (parenthesized_expression "(iVar3 != 1)" ( (binary_expression "iVar3 != 1" identifier != number_literal) )) || (parenthesized_expression "(iVar3 = FUN_001093d0(__stream,&local_80), iVar3 != 0)" ( (comma_expression "iVar3 = FUN_001093d0(__stream,&local_80), iVar3 != 0" (assignment_expression "iVar3 = FUN_001093d0(__stream,&local_80)" identifier = (call_expression "FUN_001093d0(__stream,&local_80)" identifier (argument_list "(__stream,&local_80)" ( identifier , (pointer_expression "&local_80" & identifier) )))) , (binary_expression "iVar3 != 0" identifier != number_literal)) ))) )) (break_statement "break;" break ;)) (expression_statement "uVar7 = CONCAT44(uStack_7c,local_80);" (assignment_expression "uVar7 = CONCAT44(uStack_7c,local_80)" identifier = (call_expression "CONCAT44(uStack_7c,local_80)" identifier (argument_list "(uStack_7c,local_80)" ( identifier , identifier )))) ;) }))) (expression_statement "uVar5 = uVar5 + 1;" (assignment_expression "uVar5 = uVar5 + 1" identifier = (binary_expression "uVar5 + 1" identifier + number_literal)) ;) (if_statement "if (((byte)DAT_001195e4 & 0x40) != 0) {\n          printf("[gmon_out_read] frompc 0x%lx selfpc 0x%lx count %lu\n",local_90,local_88,uVar7);\n        }" if (parenthesized_expression "(((byte)DAT_001195e4 & 0x40) != 0)" ( (binary_expression "((byte)DAT_001195e4 & 0x40) != 0" (parenthesized_expression "((byte)DAT_001195e4 & 0x40)" ( (binary_expression "(byte)DAT_001195e4 & 0x40" (cast_expression "(byte)DAT_001195e4" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n          printf("[gmon_out_read] frompc 0x%lx selfpc 0x%lx count %lu\n",local_90,local_88,uVar7);\n        }" { (expression_statement "printf("[gmon_out_read] frompc 0x%lx selfpc 0x%lx count %lu\n",local_90,local_88,uVar7);" (call_expression "printf("[gmon_out_read] frompc 0x%lx selfpc 0x%lx count %lu\n",local_90,local_88,uVar7)" identifier (argument_list "("[gmon_out_read] frompc 0x%lx selfpc 0x%lx count %lu\n",local_90,local_88,uVar7)" ( (string_literal ""[gmon_out_read] frompc 0x%lx selfpc 0x%lx count %lu\n"" " string_content escape_sequence ") , identifier , identifier , identifier ))) ;) })) (expression_statement "FUN_001040b0(local_90,local_88,uVar7);" (call_expression "FUN_001040b0(local_90,local_88,uVar7)" identifier (argument_list "(local_90,local_88,uVar7)" ( identifier , identifier , identifier ))) ;) })) (expression_statement "local_a8 = 0;" (assignment_expression "local_a8 = 0" identifier = number_literal) ;) (if_statement "if (DAT_001195e8 == 0) {\n        iVar3 = FUN_0010a4d0();\n        DAT_001195e8 = (ulong)iVar3;\n        if (DAT_001195e8 == 0) {\n          DAT_001195e8 = 1;\n          pcVar8 = (char *)dcgettext("gprof","time is in ticks, not seconds\n",5);\n          fprintf(stderr,pcVar8);\n        }\n      }" if (parenthesized_expression "(DAT_001195e8 == 0)" ( (binary_expression "DAT_001195e8 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar3 = FUN_0010a4d0();\n        DAT_001195e8 = (ulong)iVar3;\n        if (DAT_001195e8 == 0) {\n          DAT_001195e8 = 1;\n          pcVar8 = (char *)dcgettext("gprof","time is in ticks, not seconds\n",5);\n          fprintf(stderr,pcVar8);\n        }\n      }" { (expression_statement "iVar3 = FUN_0010a4d0();" (assignment_expression "iVar3 = FUN_0010a4d0()" identifier = (call_expression "FUN_0010a4d0()" identifier (argument_list "()" ( )))) ;) (expression_statement "DAT_001195e8 = (ulong)iVar3;" (assignment_expression "DAT_001195e8 = (ulong)iVar3" identifier = (cast_expression "(ulong)iVar3" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (if_statement "if (DAT_001195e8 == 0) {\n          DAT_001195e8 = 1;\n          pcVar8 = (char *)dcgettext("gprof","time is in ticks, not seconds\n",5);\n          fprintf(stderr,pcVar8);\n        }" if (parenthesized_expression "(DAT_001195e8 == 0)" ( (binary_expression "DAT_001195e8 == 0" identifier == number_literal) )) (compound_statement "{\n          DAT_001195e8 = 1;\n          pcVar8 = (char *)dcgettext("gprof","time is in ticks, not seconds\n",5);\n          fprintf(stderr,pcVar8);\n        }" { (expression_statement "DAT_001195e8 = 1;" (assignment_expression "DAT_001195e8 = 1" identifier = number_literal) ;) (expression_statement "pcVar8 = (char *)dcgettext("gprof","time is in ticks, not seconds\n",5);" (assignment_expression "pcVar8 = (char *)dcgettext("gprof","time is in ticks, not seconds\n",5)" identifier = (cast_expression "(char *)dcgettext("gprof","time is in ticks, not seconds\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext("gprof","time is in ticks, not seconds\n",5)" identifier (argument_list "("gprof","time is in ticks, not seconds\n",5)" ( (string_literal ""gprof"" " string_content ") , (string_literal ""time is in ticks, not seconds\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "fprintf(stderr,pcVar8);" (call_expression "fprintf(stderr,pcVar8)" identifier (argument_list "(stderr,pcVar8)" ( identifier , identifier ))) ;) })) })) (labeled_statement "LAB_001099b1:\n      if (stdin != __stream) {\n        fclose(__stream);\n      }" statement_identifier : (if_statement "if (stdin != __stream) {\n        fclose(__stream);\n      }" if (parenthesized_expression "(stdin != __stream)" ( (binary_expression "stdin != __stream" identifier != identifier) )) (compound_statement "{\n        fclose(__stream);\n      }" { (expression_statement "fclose(__stream);" (call_expression "fclose(__stream)" identifier (argument_list "(__stream)" ( identifier ))) ;) }))) (expression_statement "uVar2 = DAT_001195b4;" (assignment_expression "uVar2 = DAT_001195b4" identifier = identifier) ;) (if_statement "if (((byte)DAT_001195e0 & 0x20) == 0) {\n        return;\n      }" if (parenthesized_expression "(((byte)DAT_001195e0 & 0x20) == 0)" ( (binary_expression "((byte)DAT_001195e0 & 0x20) == 0" (parenthesized_expression "((byte)DAT_001195e0 & 0x20)" ( (binary_expression "(byte)DAT_001195e0 & 0x20" (cast_expression "(byte)DAT_001195e0" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) (expression_statement "pcVar8 = (char *)dcgettext("gprof","File `%s\' (version %d) contains:\n",5);" (assignment_expression "pcVar8 = (char *)dcgettext("gprof","File `%s\' (version %d) contains:\n",5)" identifier = (cast_expression "(char *)dcgettext("gprof","File `%s\' (version %d) contains:\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext("gprof","File `%s\' (version %d) contains:\n",5)" identifier (argument_list "("gprof","File `%s\' (version %d) contains:\n",5)" ( (string_literal ""gprof"" " string_content ") , (string_literal ""File `%s\' (version %d) contains:\n"" " string_content escape_sequence string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "printf(pcVar8,param_1,(ulong)uVar2);" (call_expression "printf(pcVar8,param_1,(ulong)uVar2)" identifier (argument_list "(pcVar8,param_1,(ulong)uVar2)" ( identifier , identifier , (cast_expression "(ulong)uVar2" ( (type_descriptor "ulong" type_identifier) ) identifier) ))) ;) (if_statement "if (local_a4 == 1) {\n        pcVar8 = (char *)dcgettext("gprof","\t%d histogram record\n",5);\n      }\n      else {\n        pcVar8 = (char *)dcgettext("gprof","\t%d histogram records\n",5);\n      }" if (parenthesized_expression "(local_a4 == 1)" ( (binary_expression "local_a4 == 1" identifier == number_literal) )) (compound_statement "{\n        pcVar8 = (char *)dcgettext("gprof","\t%d histogram record\n",5);\n      }" { (expression_statement "pcVar8 = (char *)dcgettext("gprof","\t%d histogram record\n",5);" (assignment_expression "pcVar8 = (char *)dcgettext("gprof","\t%d histogram record\n",5)" identifier = (cast_expression "(char *)dcgettext("gprof","\t%d histogram record\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext("gprof","\t%d histogram record\n",5)" identifier (argument_list "("gprof","\t%d histogram record\n",5)" ( (string_literal ""gprof"" " string_content ") , (string_literal ""\t%d histogram record\n"" " escape_sequence string_content escape_sequence ") , number_literal ))))) ;) }) (else_clause "else {\n        pcVar8 = (char *)dcgettext("gprof","\t%d histogram records\n",5);\n      }" else (compound_statement "{\n        pcVar8 = (char *)dcgettext("gprof","\t%d histogram records\n",5);\n      }" { (expression_statement "pcVar8 = (char *)dcgettext("gprof","\t%d histogram records\n",5);" (assignment_expression "pcVar8 = (char *)dcgettext("gprof","\t%d histogram records\n",5)" identifier = (cast_expression "(char *)dcgettext("gprof","\t%d histogram records\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext("gprof","\t%d histogram records\n",5)" identifier (argument_list "("gprof","\t%d histogram records\n",5)" ( (string_literal ""gprof"" " string_content ") , (string_literal ""\t%d histogram records\n"" " escape_sequence string_content escape_sequence ") , number_literal ))))) ;) }))) (expression_statement "printf(pcVar8,(ulong)local_a4);" (call_expression "printf(pcVar8,(ulong)local_a4)" identifier (argument_list "(pcVar8,(ulong)local_a4)" ( identifier , (cast_expression "(ulong)local_a4" ( (type_descriptor "ulong" type_identifier) ) identifier) ))) ;) (if_statement "if (uVar5 == 1) {\n        pcVar8 = (char *)dcgettext("gprof","\t%d call-graph record\n",5);\n      }\n      else {\n        pcVar8 = (char *)dcgettext("gprof","\t%d call-graph records\n",5);\n      }" if (parenthesized_expression "(uVar5 == 1)" ( (binary_expression "uVar5 == 1" identifier == number_literal) )) (compound_statement "{\n        pcVar8 = (char *)dcgettext("gprof","\t%d call-graph record\n",5);\n      }" { (expression_statement "pcVar8 = (char *)dcgettext("gprof","\t%d call-graph record\n",5);" (assignment_expression "pcVar8 = (char *)dcgettext("gprof","\t%d call-graph record\n",5)" identifier = (cast_expression "(char *)dcgettext("gprof","\t%d call-graph record\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext("gprof","\t%d call-graph record\n",5)" identifier (argument_list "("gprof","\t%d call-graph record\n",5)" ( (string_literal ""gprof"" " string_content ") , (string_literal ""\t%d call-graph record\n"" " escape_sequence string_content escape_sequence ") , number_literal ))))) ;) }) (else_clause "else {\n        pcVar8 = (char *)dcgettext("gprof","\t%d call-graph records\n",5);\n      }" else (compound_statement "{\n        pcVar8 = (char *)dcgettext("gprof","\t%d call-graph records\n",5);\n      }" { (expression_statement "pcVar8 = (char *)dcgettext("gprof","\t%d call-graph records\n",5);" (assignment_expression "pcVar8 = (char *)dcgettext("gprof","\t%d call-graph records\n",5)" identifier = (cast_expression "(char *)dcgettext("gprof","\t%d call-graph records\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext("gprof","\t%d call-graph records\n",5)" identifier (argument_list "("gprof","\t%d call-graph records\n",5)" ( (string_literal ""gprof"" " string_content ") , (string_literal ""\t%d call-graph records\n"" " escape_sequence string_content escape_sequence ") , number_literal ))))) ;) }))) (expression_statement "printf(pcVar8,(ulong)uVar5);" (call_expression "printf(pcVar8,(ulong)uVar5)" identifier (argument_list "(pcVar8,(ulong)uVar5)" ( identifier , (cast_expression "(ulong)uVar5" ( (type_descriptor "ulong" type_identifier) ) identifier) ))) ;) (if_statement "if (local_a8 == 1) {\n        pcVar8 = (char *)dcgettext("gprof","\t%d basic-block count record\n",5);\n      }\n      else {\n        pcVar8 = (char *)dcgettext("gprof","\t%d basic-block count records\n",5);\n      }" if (parenthesized_expression "(local_a8 == 1)" ( (binary_expression "local_a8 == 1" identifier == number_literal) )) (compound_statement "{\n        pcVar8 = (char *)dcgettext("gprof","\t%d basic-block count record\n",5);\n      }" { (expression_statement "pcVar8 = (char *)dcgettext("gprof","\t%d basic-block count record\n",5);" (assignment_expression "pcVar8 = (char *)dcgettext("gprof","\t%d basic-block count record\n",5)" identifier = (cast_expression "(char *)dcgettext("gprof","\t%d basic-block count record\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext("gprof","\t%d basic-block count record\n",5)" identifier (argument_list "("gprof","\t%d basic-block count record\n",5)" ( (string_literal ""gprof"" " string_content ") , (string_literal ""\t%d basic-block count record\n"" " escape_sequence string_content escape_sequence ") , number_literal ))))) ;) }) (else_clause "else {\n        pcVar8 = (char *)dcgettext("gprof","\t%d basic-block count records\n",5);\n      }" else (compound_statement "{\n        pcVar8 = (char *)dcgettext("gprof","\t%d basic-block count records\n",5);\n      }" { (expression_statement "pcVar8 = (char *)dcgettext("gprof","\t%d basic-block count records\n",5);" (assignment_expression "pcVar8 = (char *)dcgettext("gprof","\t%d basic-block count records\n",5)" identifier = (cast_expression "(char *)dcgettext("gprof","\t%d basic-block count records\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext("gprof","\t%d basic-block count records\n",5)" identifier (argument_list "("gprof","\t%d basic-block count records\n",5)" ( (string_literal ""gprof"" " string_content ") , (string_literal ""\t%d basic-block count records\n"" " escape_sequence string_content escape_sequence ") , number_literal ))))) ;) }))) (expression_statement "printf(pcVar8,(ulong)local_a8);" (call_expression "printf(pcVar8,(ulong)local_a8)" identifier (argument_list "(pcVar8,(ulong)local_a8)" ( identifier , (cast_expression "(ulong)local_a8" ( (type_descriptor "ulong" type_identifier) ) identifier) ))) ;) (expression_statement "DAT_001182d8 = 0;" (assignment_expression "DAT_001182d8 = 0" identifier = number_literal) ;) (return_statement "return;" return ;) })) (expression_statement "pcVar8 = "%s: file \'%s\' does not appear to be in gmon.out format\n";" (assignment_expression "pcVar8 = "%s: file \'%s\' does not appear to be in gmon.out format\n"" identifier = (string_literal ""%s: file \'%s\' does not appear to be in gmon.out format\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ")) ;) (labeled_statement "LAB_0010a006:\n    uVar12 = DAT_00119b10;" statement_identifier : (expression_statement "uVar12 = DAT_00119b10;" (assignment_expression "uVar12 = DAT_00119b10" identifier = identifier) ;)) (expression_statement "pcVar8 = (char *)dcgettext("gprof",pcVar8,5);" (assignment_expression "pcVar8 = (char *)dcgettext("gprof",pcVar8,5)" identifier = (cast_expression "(char *)dcgettext("gprof",pcVar8,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext("gprof",pcVar8,5)" identifier (argument_list "("gprof",pcVar8,5)" ( (string_literal ""gprof"" " string_content ") , identifier , number_literal ))))) ;) (expression_statement "fprintf(stderr,pcVar8,uVar12,param_1);" (call_expression "fprintf(stderr,pcVar8,uVar12,param_1)" identifier (argument_list "(stderr,pcVar8,uVar12,param_1)" ( identifier , identifier , identifier , identifier ))) ;) comment (expression_statement "FUN_0010a4c0(1);" (call_expression "FUN_0010a4c0(1)" identifier (argument_list "(1)" ( number_literal ))) ;) })) (labeled_statement "LAB_00109f6f:\n  pcVar8 = "%s: file too short to be a gmon file\n";" statement_identifier : (expression_statement "pcVar8 = "%s: file too short to be a gmon file\n";" (assignment_expression "pcVar8 = "%s: file too short to be a gmon file\n"" identifier = (string_literal ""%s: file too short to be a gmon file\n"" " string_content escape_sequence ")) ;)) (labeled_statement "LAB_00109f7b:\n  pcVar8 = (char *)dcgettext("gprof",pcVar8,5);" statement_identifier : (expression_statement "pcVar8 = (char *)dcgettext("gprof",pcVar8,5);" (assignment_expression "pcVar8 = (char *)dcgettext("gprof",pcVar8,5)" identifier = (cast_expression "(char *)dcgettext("gprof",pcVar8,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext("gprof",pcVar8,5)" identifier (argument_list "("gprof",pcVar8,5)" ( (string_literal ""gprof"" " string_content ") , identifier , number_literal ))))) ;)) (expression_statement "fprintf(stderr,pcVar8,param_1);" (call_expression "fprintf(stderr,pcVar8,param_1)" identifier (argument_list "(stderr,pcVar8,param_1)" ( identifier , identifier , identifier ))) ;) comment (expression_statement "FUN_0010a4c0(1);" (call_expression "FUN_0010a4c0(1)" identifier (argument_list "(1)" ( number_literal ))) ;) })))
(translation_unit "void gmon_out_read(char *filename)\n\n{\n  File_Format FVar1;\n  int iVar2;\n  gmon_ptr_size gVar3;\n  int iVar4;\n  uint uVar5;\n  size_t sVar6;\n  ulong uVar7;\n  bfd_vma bVar8;\n  FILE *__stream;\n  char *pcVar9;\n  histogram *phVar10;\n  int *piVar11;\n  char *pcVar12;\n  uint uVar13;\n  long lVar14;\n  byte *pbVar15;\n  gmon_hdr *pgVar16;\n  byte *pbVar17;\n  ulong uVar18;\n  bool bVar19;\n  bool bVar20;\n  byte bVar21;\n  uint local_a8;\n  uint local_a4;\n  UNIT raw_bin_count;\n  uint version;\n  bfd_vma from_pc;\n  bfd_vma self_pc;\n  uint profrate;\n  undefined4 uStack_7c;\n  gmon_hdr ghdr;\n  uchar tag;\n  undefined7 uStack_57;\n  bfd_vma local_50;\n  uint local_48 [6];\n  \n  bVar21 = 0;\n  lVar14 = 2;\n  bVar19 = &stack0xffffffffffffffd0 < (undefined1 *)0x78;\n  bVar20 = &stack0x00000000 == (undefined1 *)0xa8;\n  pbVar15 = (byte *)filename;\n  pbVar17 = &DAT_001110e7;\n  do {\n    if (lVar14 == 0) break;\n    lVar14 = lVar14 + -1;\n    bVar19 = *pbVar15 < *pbVar17;\n    bVar20 = *pbVar15 == *pbVar17;\n    pbVar15 = pbVar15 + 1;\n    pbVar17 = pbVar17 + 1;\n  } while (bVar20);\n  __stream = stdin;\n  if (((!bVar19 && !bVar20) != bVar19) && (__stream = fopen(filename,"r"), __stream == (FILE *)0x0))\n  goto LAB_00109ba3;\n  sVar6 = fread(&ghdr,0x14,1,__stream);\n  pcVar9 = whoami;\n  FVar1 = file_format;\n  if (sVar6 != 1) goto LAB_00109f6f;\n  bVar19 = file_format == FF_AUTO;\n  bVar20 = file_format == FF_MAGIC;\n  if (bVar20) {\n    lVar14 = 4;\n    pgVar16 = &ghdr;\n    pbVar15 = &DAT_001110e9;\n    do {\n      if (lVar14 == 0) break;\n      lVar14 = lVar14 + -1;\n      bVar19 = (byte)pgVar16->cookie[0] < *pbVar15;\n      bVar20 = pgVar16->cookie[0] == *pbVar15;\n      pgVar16 = (gmon_hdr *)((long)pgVar16 + (ulong)bVar21 * -2 + 1);\n      pbVar15 = pbVar15 + (ulong)bVar21 * -2 + 1;\n    } while (bVar20);\n    if ((!bVar19 && !bVar20) == bVar19) {\nLAB_001099fe:\n      bVar8 = (*core_bfd->xvec->bfd_getx32)(ghdr.version);\n      pcVar9 = whoami;\n      gmon_file_version = (int)bVar8;\n      if (1 < (uint)gmon_file_version) {\n        pcVar12 = (char *)dcgettext("gprof","%s: file `%s\' has unsupported version %d\n",5);\n        uVar7 = bVar8 & 0xffffffff;\nLAB_00109f08:\n        fprintf(stderr,pcVar12,pcVar9,filename,uVar7);\n                    /* WARNING: Subroutine does not return */\n        done(1);\n      }\n      local_a8 = 0;\n      uVar5 = 0;\n      local_a4 = 0;\n      while (sVar6 = fread(&tag,1,1,__stream), pcVar9 = whoami, sVar6 == 1) {\n        if (tag == '\x01') {\n          uVar5 = uVar5 + 1;\n          gmon_input = gmon_input | 2;\n          cg_read_rec((FILE *)__stream,filename);\n        }\n        else if (tag == '\0') {\n          local_a4 = local_a4 + 1;\n          gmon_input = gmon_input | 1;\n          hist_read_rec((FILE *)__stream,filename);\n        }\n        else {\n          if (tag != '\x02') {\n            pcVar12 = (char *)dcgettext("gprof","%s: %s: found bad tag %d (file corrupted?)\n",5);\n            uVar7 = (ulong)tag;\n            goto LAB_00109f08;\n          }\n          local_a8 = local_a8 + 1;\n          gmon_input = gmon_input | 4;\n          bb_read_rec((FILE *)__stream,filename);\n        }\n      }\n      goto LAB_001099b1;\n    }\nLAB_00109cae:\n    pcVar9 = "%s: file `%s\' has bad magic cookie\n";\n    goto LAB_0010a006;\n  }\n  bVar19 = false;\n  bVar20 = file_format == FF_AUTO;\n  if (bVar20) {\n    lVar14 = 4;\n    pgVar16 = &ghdr;\n    pbVar15 = &DAT_001110e9;\n    do {\n      if (lVar14 == 0) break;\n      lVar14 = lVar14 + -1;\n      bVar19 = (byte)pgVar16->cookie[0] < *pbVar15;\n      bVar20 = pgVar16->cookie[0] == *pbVar15;\n      pgVar16 = (gmon_hdr *)((long)pgVar16 + (ulong)bVar21 * -2 + 1);\n      pbVar15 = pbVar15 + (ulong)bVar21 * -2 + 1;\n    } while (bVar20);\n    if ((!bVar19 && !bVar20) == bVar19) goto LAB_001099fe;\n  }\n  else if (1 < file_format - FF_BSD) {\n    pcVar12 = (char *)dcgettext("gprof","%s: don\'t know how to deal with file format %d\n",5);\n    fprintf(stderr,pcVar12,pcVar9,(ulong)FVar1);\n                    /* WARNING: Subroutine does not return */\n    done(1);\n  }\n  gmon_input = 3;\n  iVar2 = fseek(__stream,0,0);\n  if (iVar2 < 0) goto LAB_00109ba3;\n  iVar2 = gmon_io_read_vma((FILE *)__stream,(bfd_vma *)&tag);\n  if ((((iVar2 == 0) && (iVar2 = gmon_io_read_vma((FILE *)__stream,&local_50), iVar2 == 0)) &&\n      (iVar2 = gmon_io_read_32((FILE *)__stream,local_48), iVar2 == 0)) &&\n     (iVar2 = gmon_io_read_32((FILE *)__stream,&version), iVar2 == 0)) {\n    if (version == 0x51879) {\n      iVar2 = gmon_io_read_32((FILE *)__stream,&profrate);\n      if (iVar2 != 0) goto LAB_00109f6f;\n      uVar7 = (ulong)profrate;\n      if ((histograms != (histogram *)0x0) && (uVar7 = hz, (int)profrate != hz)) {\n        pcVar9 = "%s: profiling rate incompatible with first gmon file\n";\n        goto LAB_00109f7b;\n      }\n      hz = uVar7;\n      gVar3 = gmon_get_ptr_size();\n      if (gVar3 == ptr_32bit) {\n        lVar14 = 0x20;\n        iVar2 = 0x20;\n      }\n      else {\n        lVar14 = 0x28;\n        if (gVar3 == ptr_64bit) {\n          iVar2 = 0x28;\n        }\n        else {\n          lVar14 = 0;\n          iVar2 = 0;\n        }\n      }\n    }\n    else {\n      if (file_format == FF_BSD44) goto LAB_00109cae;\n      gVar3 = gmon_get_ptr_size();\n      if (gVar3 == ptr_32bit) {\n        lVar14 = 0xc;\n        iVar2 = 0xc;\n      }\n      else {\n        lVar14 = 0x14;\n        if (gVar3 != ptr_64bit) {\n          lVar14 = 0;\n        }\n        iVar2 = 0x14;\n        if (gVar3 != ptr_64bit) {\n          iVar2 = 0;\n        }\n      }\n    }\n    iVar4 = fseek(__stream,lVar14,0);\n    if (iVar4 < 0) {\nLAB_00109ba3:\n      perror(filename);\n                    /* WARNING: Subroutine does not return */\n      done(1);\n    }\n    uVar5 = local_48[0] - iVar2;\n    uVar7 = (ulong)(long)(int)uVar5 >> 1;\n    uVar13 = (uint)uVar7;\n    if (histograms == (histogram *)0x0) {\n      num_histograms = 1;\n      phVar10 = (histogram *)xmalloc(0x20);\n      histograms = phVar10;\n      phVar10->lowpc = CONCAT71(uStack_57,tag);\n      phVar10->num_bins = uVar13;\n      sVar6 = (uVar7 & 0xffffffff) << 2;\n      phVar10->highpc = local_50;\n      hist_scale = (double)(local_50 - CONCAT71(uStack_57,tag) >> 1) / (double)(uVar7 & 0xffffffff);\n      piVar11 = (int *)xmalloc(sVar6);\n      phVar10->sample = piVar11;\n      memset(histograms->sample,0,sVar6);\n    }\n    else if (((CONCAT71(uStack_57,tag) != histograms->lowpc) || (local_50 != histograms->highpc)) ||\n            (histograms->num_bins != uVar13)) {\n      pcVar9 = "%s: incompatible with first gmon file\n";\n      goto LAB_00109f7b;\n    }\n    if (((byte)debug_level & 0x40) != 0) {\n      printf("[gmon_out_read] lowpc 0x%lx highpc 0x%lx ncnt %d\n",CONCAT71(uStack_57,tag),local_50,\n             (ulong)local_48[0]);\n      printf("[gmon_out_read] samp_bytes %d hist_num_bins %d\n",(ulong)uVar5,uVar7 & 0xffffffff);\n    }\n    if ((-1 < (int)uVar5) && (histograms->lowpc <= histograms->highpc)) {\n      local_a4 = (uint)(uVar13 != 0);\n      if (uVar13 != 0) {\n        uVar18 = 0;\n        do {\n          sVar6 = fread(raw_bin_count,2,1,__stream);\n          pcVar9 = whoami;\n          if (sVar6 != 1) {\n            pcVar12 = (char *)dcgettext("gprof","%s: unexpected EOF after reading %d/%d bins\n",5);\n            fprintf(stderr,pcVar12,pcVar9,(ulong)((int)uVar18 - 1),uVar7 & 0xffffffff);\n                    /* WARNING: Subroutine does not return */\n            done(1);\n          }\n          bVar8 = (*core_bfd->xvec->bfd_getx16)(raw_bin_count);\n          histograms->sample[uVar18] = histograms->sample[uVar18] + (int)bVar8;\n          bVar19 = uVar13 - 1 != uVar18;\n          uVar18 = uVar18 + 1;\n        } while (bVar19);\n      }\n      uVar5 = 0;\n      while ((iVar2 = gmon_io_read_vma((FILE *)__stream,&from_pc), iVar2 == 0 &&\n             (iVar2 = gmon_io_read_vma((FILE *)__stream,&self_pc), iVar2 == 0))) {\n        gVar3 = gmon_get_ptr_size();\n        if (gVar3 == ptr_32bit) {\n          iVar2 = gmon_io_read_32((FILE *)__stream,&profrate);\n          if (iVar2 != 0) break;\n          uVar7 = (ulong)profrate;\n        }\n        else {\n          if ((gVar3 != ptr_64bit) ||\n             (iVar2 = gmon_io_read_64((FILE *)__stream,(ulong *)&profrate), iVar2 != 0)) break;\n          uVar7 = CONCAT44(uStack_7c,profrate);\n        }\n        uVar5 = uVar5 + 1;\n        if (((byte)debug_level & 0x40) != 0) {\n          printf("[gmon_out_read] frompc 0x%lx selfpc 0x%lx count %lu\n",from_pc,self_pc,uVar7);\n        }\n        cg_tally(from_pc,self_pc,uVar7);\n      }\n      local_a8 = 0;\n      if (hz == 0) {\n        iVar2 = hertz();\n        hz = (long)iVar2;\n        if (hz == 0) {\n          hz = 1;\n          pcVar9 = (char *)dcgettext("gprof","time is in ticks, not seconds\n",5);\n          fprintf(stderr,pcVar9);\n        }\n      }\nLAB_001099b1:\n      if (stdin != __stream) {\n        fclose(__stream);\n      }\n      iVar2 = gmon_file_version;\n      if (((byte)output_style & 0x20) == 0) {\n        return;\n      }\n      pcVar9 = (char *)dcgettext("gprof","File `%s\' (version %d) contains:\n",5);\n      printf(pcVar9,filename,(ulong)(uint)iVar2);\n      if (local_a4 == 1) {\n        pcVar9 = (char *)dcgettext("gprof","\t%d histogram record\n",5);\n      }\n      else {\n        pcVar9 = (char *)dcgettext("gprof","\t%d histogram records\n",5);\n      }\n      printf(pcVar9,(ulong)local_a4);\n      if (uVar5 == 1) {\n        pcVar9 = (char *)dcgettext("gprof","\t%d call-graph record\n",5);\n      }\n      else {\n        pcVar9 = (char *)dcgettext("gprof","\t%d call-graph records\n",5);\n      }\n      printf(pcVar9,(ulong)uVar5);\n      if (local_a8 == 1) {\n        pcVar9 = (char *)dcgettext("gprof","\t%d basic-block count record\n",5);\n      }\n      else {\n        pcVar9 = (char *)dcgettext("gprof","\t%d basic-block count records\n",5);\n      }\n      printf(pcVar9,(ulong)local_a8);\n      first_output = 0;\n      return;\n    }\n    pcVar9 = "%s: file \'%s\' does not appear to be in gmon.out format\n";\nLAB_0010a006:\n    pcVar12 = whoami;\n    pcVar9 = (char *)dcgettext("gprof",pcVar9,5);\n    fprintf(stderr,pcVar9,pcVar12,filename);\n                    /* WARNING: Subroutine does not return */\n    done(1);\n  }\nLAB_00109f6f:\n  pcVar9 = "%s: file too short to be a gmon file\n";\nLAB_00109f7b:\n  pcVar9 = (char *)dcgettext("gprof",pcVar9,5);\n  fprintf(stderr,pcVar9,filename);\n                    /* WARNING: Subroutine does not return */\n  done(1);\n}\n\n" (function_definition "void gmon_out_read(char *filename)\n\n{\n  File_Format FVar1;\n  int iVar2;\n  gmon_ptr_size gVar3;\n  int iVar4;\n  uint uVar5;\n  size_t sVar6;\n  ulong uVar7;\n  bfd_vma bVar8;\n  FILE *__stream;\n  char *pcVar9;\n  histogram *phVar10;\n  int *piVar11;\n  char *pcVar12;\n  uint uVar13;\n  long lVar14;\n  byte *pbVar15;\n  gmon_hdr *pgVar16;\n  byte *pbVar17;\n  ulong uVar18;\n  bool bVar19;\n  bool bVar20;\n  byte bVar21;\n  uint local_a8;\n  uint local_a4;\n  UNIT raw_bin_count;\n  uint version;\n  bfd_vma from_pc;\n  bfd_vma self_pc;\n  uint profrate;\n  undefined4 uStack_7c;\n  gmon_hdr ghdr;\n  uchar tag;\n  undefined7 uStack_57;\n  bfd_vma local_50;\n  uint local_48 [6];\n  \n  bVar21 = 0;\n  lVar14 = 2;\n  bVar19 = &stack0xffffffffffffffd0 < (undefined1 *)0x78;\n  bVar20 = &stack0x00000000 == (undefined1 *)0xa8;\n  pbVar15 = (byte *)filename;\n  pbVar17 = &DAT_001110e7;\n  do {\n    if (lVar14 == 0) break;\n    lVar14 = lVar14 + -1;\n    bVar19 = *pbVar15 < *pbVar17;\n    bVar20 = *pbVar15 == *pbVar17;\n    pbVar15 = pbVar15 + 1;\n    pbVar17 = pbVar17 + 1;\n  } while (bVar20);\n  __stream = stdin;\n  if (((!bVar19 && !bVar20) != bVar19) && (__stream = fopen(filename,"r"), __stream == (FILE *)0x0))\n  goto LAB_00109ba3;\n  sVar6 = fread(&ghdr,0x14,1,__stream);\n  pcVar9 = whoami;\n  FVar1 = file_format;\n  if (sVar6 != 1) goto LAB_00109f6f;\n  bVar19 = file_format == FF_AUTO;\n  bVar20 = file_format == FF_MAGIC;\n  if (bVar20) {\n    lVar14 = 4;\n    pgVar16 = &ghdr;\n    pbVar15 = &DAT_001110e9;\n    do {\n      if (lVar14 == 0) break;\n      lVar14 = lVar14 + -1;\n      bVar19 = (byte)pgVar16->cookie[0] < *pbVar15;\n      bVar20 = pgVar16->cookie[0] == *pbVar15;\n      pgVar16 = (gmon_hdr *)((long)pgVar16 + (ulong)bVar21 * -2 + 1);\n      pbVar15 = pbVar15 + (ulong)bVar21 * -2 + 1;\n    } while (bVar20);\n    if ((!bVar19 && !bVar20) == bVar19) {\nLAB_001099fe:\n      bVar8 = (*core_bfd->xvec->bfd_getx32)(ghdr.version);\n      pcVar9 = whoami;\n      gmon_file_version = (int)bVar8;\n      if (1 < (uint)gmon_file_version) {\n        pcVar12 = (char *)dcgettext("gprof","%s: file `%s\' has unsupported version %d\n",5);\n        uVar7 = bVar8 & 0xffffffff;\nLAB_00109f08:\n        fprintf(stderr,pcVar12,pcVar9,filename,uVar7);\n                    /* WARNING: Subroutine does not return */\n        done(1);\n      }\n      local_a8 = 0;\n      uVar5 = 0;\n      local_a4 = 0;\n      while (sVar6 = fread(&tag,1,1,__stream), pcVar9 = whoami, sVar6 == 1) {\n        if (tag == '\x01') {\n          uVar5 = uVar5 + 1;\n          gmon_input = gmon_input | 2;\n          cg_read_rec((FILE *)__stream,filename);\n        }\n        else if (tag == '\0') {\n          local_a4 = local_a4 + 1;\n          gmon_input = gmon_input | 1;\n          hist_read_rec((FILE *)__stream,filename);\n        }\n        else {\n          if (tag != '\x02') {\n            pcVar12 = (char *)dcgettext("gprof","%s: %s: found bad tag %d (file corrupted?)\n",5);\n            uVar7 = (ulong)tag;\n            goto LAB_00109f08;\n          }\n          local_a8 = local_a8 + 1;\n          gmon_input = gmon_input | 4;\n          bb_read_rec((FILE *)__stream,filename);\n        }\n      }\n      goto LAB_001099b1;\n    }\nLAB_00109cae:\n    pcVar9 = "%s: file `%s\' has bad magic cookie\n";\n    goto LAB_0010a006;\n  }\n  bVar19 = false;\n  bVar20 = file_format == FF_AUTO;\n  if (bVar20) {\n    lVar14 = 4;\n    pgVar16 = &ghdr;\n    pbVar15 = &DAT_001110e9;\n    do {\n      if (lVar14 == 0) break;\n      lVar14 = lVar14 + -1;\n      bVar19 = (byte)pgVar16->cookie[0] < *pbVar15;\n      bVar20 = pgVar16->cookie[0] == *pbVar15;\n      pgVar16 = (gmon_hdr *)((long)pgVar16 + (ulong)bVar21 * -2 + 1);\n      pbVar15 = pbVar15 + (ulong)bVar21 * -2 + 1;\n    } while (bVar20);\n    if ((!bVar19 && !bVar20) == bVar19) goto LAB_001099fe;\n  }\n  else if (1 < file_format - FF_BSD) {\n    pcVar12 = (char *)dcgettext("gprof","%s: don\'t know how to deal with file format %d\n",5);\n    fprintf(stderr,pcVar12,pcVar9,(ulong)FVar1);\n                    /* WARNING: Subroutine does not return */\n    done(1);\n  }\n  gmon_input = 3;\n  iVar2 = fseek(__stream,0,0);\n  if (iVar2 < 0) goto LAB_00109ba3;\n  iVar2 = gmon_io_read_vma((FILE *)__stream,(bfd_vma *)&tag);\n  if ((((iVar2 == 0) && (iVar2 = gmon_io_read_vma((FILE *)__stream,&local_50), iVar2 == 0)) &&\n      (iVar2 = gmon_io_read_32((FILE *)__stream,local_48), iVar2 == 0)) &&\n     (iVar2 = gmon_io_read_32((FILE *)__stream,&version), iVar2 == 0)) {\n    if (version == 0x51879) {\n      iVar2 = gmon_io_read_32((FILE *)__stream,&profrate);\n      if (iVar2 != 0) goto LAB_00109f6f;\n      uVar7 = (ulong)profrate;\n      if ((histograms != (histogram *)0x0) && (uVar7 = hz, (int)profrate != hz)) {\n        pcVar9 = "%s: profiling rate incompatible with first gmon file\n";\n        goto LAB_00109f7b;\n      }\n      hz = uVar7;\n      gVar3 = gmon_get_ptr_size();\n      if (gVar3 == ptr_32bit) {\n        lVar14 = 0x20;\n        iVar2 = 0x20;\n      }\n      else {\n        lVar14 = 0x28;\n        if (gVar3 == ptr_64bit) {\n          iVar2 = 0x28;\n        }\n        else {\n          lVar14 = 0;\n          iVar2 = 0;\n        }\n      }\n    }\n    else {\n      if (file_format == FF_BSD44) goto LAB_00109cae;\n      gVar3 = gmon_get_ptr_size();\n      if (gVar3 == ptr_32bit) {\n        lVar14 = 0xc;\n        iVar2 = 0xc;\n      }\n      else {\n        lVar14 = 0x14;\n        if (gVar3 != ptr_64bit) {\n          lVar14 = 0;\n        }\n        iVar2 = 0x14;\n        if (gVar3 != ptr_64bit) {\n          iVar2 = 0;\n        }\n      }\n    }\n    iVar4 = fseek(__stream,lVar14,0);\n    if (iVar4 < 0) {\nLAB_00109ba3:\n      perror(filename);\n                    /* WARNING: Subroutine does not return */\n      done(1);\n    }\n    uVar5 = local_48[0] - iVar2;\n    uVar7 = (ulong)(long)(int)uVar5 >> 1;\n    uVar13 = (uint)uVar7;\n    if (histograms == (histogram *)0x0) {\n      num_histograms = 1;\n      phVar10 = (histogram *)xmalloc(0x20);\n      histograms = phVar10;\n      phVar10->lowpc = CONCAT71(uStack_57,tag);\n      phVar10->num_bins = uVar13;\n      sVar6 = (uVar7 & 0xffffffff) << 2;\n      phVar10->highpc = local_50;\n      hist_scale = (double)(local_50 - CONCAT71(uStack_57,tag) >> 1) / (double)(uVar7 & 0xffffffff);\n      piVar11 = (int *)xmalloc(sVar6);\n      phVar10->sample = piVar11;\n      memset(histograms->sample,0,sVar6);\n    }\n    else if (((CONCAT71(uStack_57,tag) != histograms->lowpc) || (local_50 != histograms->highpc)) ||\n            (histograms->num_bins != uVar13)) {\n      pcVar9 = "%s: incompatible with first gmon file\n";\n      goto LAB_00109f7b;\n    }\n    if (((byte)debug_level & 0x40) != 0) {\n      printf("[gmon_out_read] lowpc 0x%lx highpc 0x%lx ncnt %d\n",CONCAT71(uStack_57,tag),local_50,\n             (ulong)local_48[0]);\n      printf("[gmon_out_read] samp_bytes %d hist_num_bins %d\n",(ulong)uVar5,uVar7 & 0xffffffff);\n    }\n    if ((-1 < (int)uVar5) && (histograms->lowpc <= histograms->highpc)) {\n      local_a4 = (uint)(uVar13 != 0);\n      if (uVar13 != 0) {\n        uVar18 = 0;\n        do {\n          sVar6 = fread(raw_bin_count,2,1,__stream);\n          pcVar9 = whoami;\n          if (sVar6 != 1) {\n            pcVar12 = (char *)dcgettext("gprof","%s: unexpected EOF after reading %d/%d bins\n",5);\n            fprintf(stderr,pcVar12,pcVar9,(ulong)((int)uVar18 - 1),uVar7 & 0xffffffff);\n                    /* WARNING: Subroutine does not return */\n            done(1);\n          }\n          bVar8 = (*core_bfd->xvec->bfd_getx16)(raw_bin_count);\n          histograms->sample[uVar18] = histograms->sample[uVar18] + (int)bVar8;\n          bVar19 = uVar13 - 1 != uVar18;\n          uVar18 = uVar18 + 1;\n        } while (bVar19);\n      }\n      uVar5 = 0;\n      while ((iVar2 = gmon_io_read_vma((FILE *)__stream,&from_pc), iVar2 == 0 &&\n             (iVar2 = gmon_io_read_vma((FILE *)__stream,&self_pc), iVar2 == 0))) {\n        gVar3 = gmon_get_ptr_size();\n        if (gVar3 == ptr_32bit) {\n          iVar2 = gmon_io_read_32((FILE *)__stream,&profrate);\n          if (iVar2 != 0) break;\n          uVar7 = (ulong)profrate;\n        }\n        else {\n          if ((gVar3 != ptr_64bit) ||\n             (iVar2 = gmon_io_read_64((FILE *)__stream,(ulong *)&profrate), iVar2 != 0)) break;\n          uVar7 = CONCAT44(uStack_7c,profrate);\n        }\n        uVar5 = uVar5 + 1;\n        if (((byte)debug_level & 0x40) != 0) {\n          printf("[gmon_out_read] frompc 0x%lx selfpc 0x%lx count %lu\n",from_pc,self_pc,uVar7);\n        }\n        cg_tally(from_pc,self_pc,uVar7);\n      }\n      local_a8 = 0;\n      if (hz == 0) {\n        iVar2 = hertz();\n        hz = (long)iVar2;\n        if (hz == 0) {\n          hz = 1;\n          pcVar9 = (char *)dcgettext("gprof","time is in ticks, not seconds\n",5);\n          fprintf(stderr,pcVar9);\n        }\n      }\nLAB_001099b1:\n      if (stdin != __stream) {\n        fclose(__stream);\n      }\n      iVar2 = gmon_file_version;\n      if (((byte)output_style & 0x20) == 0) {\n        return;\n      }\n      pcVar9 = (char *)dcgettext("gprof","File `%s\' (version %d) contains:\n",5);\n      printf(pcVar9,filename,(ulong)(uint)iVar2);\n      if (local_a4 == 1) {\n        pcVar9 = (char *)dcgettext("gprof","\t%d histogram record\n",5);\n      }\n      else {\n        pcVar9 = (char *)dcgettext("gprof","\t%d histogram records\n",5);\n      }\n      printf(pcVar9,(ulong)local_a4);\n      if (uVar5 == 1) {\n        pcVar9 = (char *)dcgettext("gprof","\t%d call-graph record\n",5);\n      }\n      else {\n        pcVar9 = (char *)dcgettext("gprof","\t%d call-graph records\n",5);\n      }\n      printf(pcVar9,(ulong)uVar5);\n      if (local_a8 == 1) {\n        pcVar9 = (char *)dcgettext("gprof","\t%d basic-block count record\n",5);\n      }\n      else {\n        pcVar9 = (char *)dcgettext("gprof","\t%d basic-block count records\n",5);\n      }\n      printf(pcVar9,(ulong)local_a8);\n      first_output = 0;\n      return;\n    }\n    pcVar9 = "%s: file \'%s\' does not appear to be in gmon.out format\n";\nLAB_0010a006:\n    pcVar12 = whoami;\n    pcVar9 = (char *)dcgettext("gprof",pcVar9,5);\n    fprintf(stderr,pcVar9,pcVar12,filename);\n                    /* WARNING: Subroutine does not return */\n    done(1);\n  }\nLAB_00109f6f:\n  pcVar9 = "%s: file too short to be a gmon file\n";\nLAB_00109f7b:\n  pcVar9 = (char *)dcgettext("gprof",pcVar9,5);\n  fprintf(stderr,pcVar9,filename);\n                    /* WARNING: Subroutine does not return */\n  done(1);\n}" primitive_type (function_declarator "gmon_out_read(char *filename)" identifier (parameter_list "(char *filename)" ( (parameter_declaration "char *filename" primitive_type (pointer_declarator "*filename" * identifier)) ))) (compound_statement "{\n  File_Format FVar1;\n  int iVar2;\n  gmon_ptr_size gVar3;\n  int iVar4;\n  uint uVar5;\n  size_t sVar6;\n  ulong uVar7;\n  bfd_vma bVar8;\n  FILE *__stream;\n  char *pcVar9;\n  histogram *phVar10;\n  int *piVar11;\n  char *pcVar12;\n  uint uVar13;\n  long lVar14;\n  byte *pbVar15;\n  gmon_hdr *pgVar16;\n  byte *pbVar17;\n  ulong uVar18;\n  bool bVar19;\n  bool bVar20;\n  byte bVar21;\n  uint local_a8;\n  uint local_a4;\n  UNIT raw_bin_count;\n  uint version;\n  bfd_vma from_pc;\n  bfd_vma self_pc;\n  uint profrate;\n  undefined4 uStack_7c;\n  gmon_hdr ghdr;\n  uchar tag;\n  undefined7 uStack_57;\n  bfd_vma local_50;\n  uint local_48 [6];\n  \n  bVar21 = 0;\n  lVar14 = 2;\n  bVar19 = &stack0xffffffffffffffd0 < (undefined1 *)0x78;\n  bVar20 = &stack0x00000000 == (undefined1 *)0xa8;\n  pbVar15 = (byte *)filename;\n  pbVar17 = &DAT_001110e7;\n  do {\n    if (lVar14 == 0) break;\n    lVar14 = lVar14 + -1;\n    bVar19 = *pbVar15 < *pbVar17;\n    bVar20 = *pbVar15 == *pbVar17;\n    pbVar15 = pbVar15 + 1;\n    pbVar17 = pbVar17 + 1;\n  } while (bVar20);\n  __stream = stdin;\n  if (((!bVar19 && !bVar20) != bVar19) && (__stream = fopen(filename,"r"), __stream == (FILE *)0x0))\n  goto LAB_00109ba3;\n  sVar6 = fread(&ghdr,0x14,1,__stream);\n  pcVar9 = whoami;\n  FVar1 = file_format;\n  if (sVar6 != 1) goto LAB_00109f6f;\n  bVar19 = file_format == FF_AUTO;\n  bVar20 = file_format == FF_MAGIC;\n  if (bVar20) {\n    lVar14 = 4;\n    pgVar16 = &ghdr;\n    pbVar15 = &DAT_001110e9;\n    do {\n      if (lVar14 == 0) break;\n      lVar14 = lVar14 + -1;\n      bVar19 = (byte)pgVar16->cookie[0] < *pbVar15;\n      bVar20 = pgVar16->cookie[0] == *pbVar15;\n      pgVar16 = (gmon_hdr *)((long)pgVar16 + (ulong)bVar21 * -2 + 1);\n      pbVar15 = pbVar15 + (ulong)bVar21 * -2 + 1;\n    } while (bVar20);\n    if ((!bVar19 && !bVar20) == bVar19) {\nLAB_001099fe:\n      bVar8 = (*core_bfd->xvec->bfd_getx32)(ghdr.version);\n      pcVar9 = whoami;\n      gmon_file_version = (int)bVar8;\n      if (1 < (uint)gmon_file_version) {\n        pcVar12 = (char *)dcgettext("gprof","%s: file `%s\' has unsupported version %d\n",5);\n        uVar7 = bVar8 & 0xffffffff;\nLAB_00109f08:\n        fprintf(stderr,pcVar12,pcVar9,filename,uVar7);\n                    /* WARNING: Subroutine does not return */\n        done(1);\n      }\n      local_a8 = 0;\n      uVar5 = 0;\n      local_a4 = 0;\n      while (sVar6 = fread(&tag,1,1,__stream), pcVar9 = whoami, sVar6 == 1) {\n        if (tag == '\x01') {\n          uVar5 = uVar5 + 1;\n          gmon_input = gmon_input | 2;\n          cg_read_rec((FILE *)__stream,filename);\n        }\n        else if (tag == '\0') {\n          local_a4 = local_a4 + 1;\n          gmon_input = gmon_input | 1;\n          hist_read_rec((FILE *)__stream,filename);\n        }\n        else {\n          if (tag != '\x02') {\n            pcVar12 = (char *)dcgettext("gprof","%s: %s: found bad tag %d (file corrupted?)\n",5);\n            uVar7 = (ulong)tag;\n            goto LAB_00109f08;\n          }\n          local_a8 = local_a8 + 1;\n          gmon_input = gmon_input | 4;\n          bb_read_rec((FILE *)__stream,filename);\n        }\n      }\n      goto LAB_001099b1;\n    }\nLAB_00109cae:\n    pcVar9 = "%s: file `%s\' has bad magic cookie\n";\n    goto LAB_0010a006;\n  }\n  bVar19 = false;\n  bVar20 = file_format == FF_AUTO;\n  if (bVar20) {\n    lVar14 = 4;\n    pgVar16 = &ghdr;\n    pbVar15 = &DAT_001110e9;\n    do {\n      if (lVar14 == 0) break;\n      lVar14 = lVar14 + -1;\n      bVar19 = (byte)pgVar16->cookie[0] < *pbVar15;\n      bVar20 = pgVar16->cookie[0] == *pbVar15;\n      pgVar16 = (gmon_hdr *)((long)pgVar16 + (ulong)bVar21 * -2 + 1);\n      pbVar15 = pbVar15 + (ulong)bVar21 * -2 + 1;\n    } while (bVar20);\n    if ((!bVar19 && !bVar20) == bVar19) goto LAB_001099fe;\n  }\n  else if (1 < file_format - FF_BSD) {\n    pcVar12 = (char *)dcgettext("gprof","%s: don\'t know how to deal with file format %d\n",5);\n    fprintf(stderr,pcVar12,pcVar9,(ulong)FVar1);\n                    /* WARNING: Subroutine does not return */\n    done(1);\n  }\n  gmon_input = 3;\n  iVar2 = fseek(__stream,0,0);\n  if (iVar2 < 0) goto LAB_00109ba3;\n  iVar2 = gmon_io_read_vma((FILE *)__stream,(bfd_vma *)&tag);\n  if ((((iVar2 == 0) && (iVar2 = gmon_io_read_vma((FILE *)__stream,&local_50), iVar2 == 0)) &&\n      (iVar2 = gmon_io_read_32((FILE *)__stream,local_48), iVar2 == 0)) &&\n     (iVar2 = gmon_io_read_32((FILE *)__stream,&version), iVar2 == 0)) {\n    if (version == 0x51879) {\n      iVar2 = gmon_io_read_32((FILE *)__stream,&profrate);\n      if (iVar2 != 0) goto LAB_00109f6f;\n      uVar7 = (ulong)profrate;\n      if ((histograms != (histogram *)0x0) && (uVar7 = hz, (int)profrate != hz)) {\n        pcVar9 = "%s: profiling rate incompatible with first gmon file\n";\n        goto LAB_00109f7b;\n      }\n      hz = uVar7;\n      gVar3 = gmon_get_ptr_size();\n      if (gVar3 == ptr_32bit) {\n        lVar14 = 0x20;\n        iVar2 = 0x20;\n      }\n      else {\n        lVar14 = 0x28;\n        if (gVar3 == ptr_64bit) {\n          iVar2 = 0x28;\n        }\n        else {\n          lVar14 = 0;\n          iVar2 = 0;\n        }\n      }\n    }\n    else {\n      if (file_format == FF_BSD44) goto LAB_00109cae;\n      gVar3 = gmon_get_ptr_size();\n      if (gVar3 == ptr_32bit) {\n        lVar14 = 0xc;\n        iVar2 = 0xc;\n      }\n      else {\n        lVar14 = 0x14;\n        if (gVar3 != ptr_64bit) {\n          lVar14 = 0;\n        }\n        iVar2 = 0x14;\n        if (gVar3 != ptr_64bit) {\n          iVar2 = 0;\n        }\n      }\n    }\n    iVar4 = fseek(__stream,lVar14,0);\n    if (iVar4 < 0) {\nLAB_00109ba3:\n      perror(filename);\n                    /* WARNING: Subroutine does not return */\n      done(1);\n    }\n    uVar5 = local_48[0] - iVar2;\n    uVar7 = (ulong)(long)(int)uVar5 >> 1;\n    uVar13 = (uint)uVar7;\n    if (histograms == (histogram *)0x0) {\n      num_histograms = 1;\n      phVar10 = (histogram *)xmalloc(0x20);\n      histograms = phVar10;\n      phVar10->lowpc = CONCAT71(uStack_57,tag);\n      phVar10->num_bins = uVar13;\n      sVar6 = (uVar7 & 0xffffffff) << 2;\n      phVar10->highpc = local_50;\n      hist_scale = (double)(local_50 - CONCAT71(uStack_57,tag) >> 1) / (double)(uVar7 & 0xffffffff);\n      piVar11 = (int *)xmalloc(sVar6);\n      phVar10->sample = piVar11;\n      memset(histograms->sample,0,sVar6);\n    }\n    else if (((CONCAT71(uStack_57,tag) != histograms->lowpc) || (local_50 != histograms->highpc)) ||\n            (histograms->num_bins != uVar13)) {\n      pcVar9 = "%s: incompatible with first gmon file\n";\n      goto LAB_00109f7b;\n    }\n    if (((byte)debug_level & 0x40) != 0) {\n      printf("[gmon_out_read] lowpc 0x%lx highpc 0x%lx ncnt %d\n",CONCAT71(uStack_57,tag),local_50,\n             (ulong)local_48[0]);\n      printf("[gmon_out_read] samp_bytes %d hist_num_bins %d\n",(ulong)uVar5,uVar7 & 0xffffffff);\n    }\n    if ((-1 < (int)uVar5) && (histograms->lowpc <= histograms->highpc)) {\n      local_a4 = (uint)(uVar13 != 0);\n      if (uVar13 != 0) {\n        uVar18 = 0;\n        do {\n          sVar6 = fread(raw_bin_count,2,1,__stream);\n          pcVar9 = whoami;\n          if (sVar6 != 1) {\n            pcVar12 = (char *)dcgettext("gprof","%s: unexpected EOF after reading %d/%d bins\n",5);\n            fprintf(stderr,pcVar12,pcVar9,(ulong)((int)uVar18 - 1),uVar7 & 0xffffffff);\n                    /* WARNING: Subroutine does not return */\n            done(1);\n          }\n          bVar8 = (*core_bfd->xvec->bfd_getx16)(raw_bin_count);\n          histograms->sample[uVar18] = histograms->sample[uVar18] + (int)bVar8;\n          bVar19 = uVar13 - 1 != uVar18;\n          uVar18 = uVar18 + 1;\n        } while (bVar19);\n      }\n      uVar5 = 0;\n      while ((iVar2 = gmon_io_read_vma((FILE *)__stream,&from_pc), iVar2 == 0 &&\n             (iVar2 = gmon_io_read_vma((FILE *)__stream,&self_pc), iVar2 == 0))) {\n        gVar3 = gmon_get_ptr_size();\n        if (gVar3 == ptr_32bit) {\n          iVar2 = gmon_io_read_32((FILE *)__stream,&profrate);\n          if (iVar2 != 0) break;\n          uVar7 = (ulong)profrate;\n        }\n        else {\n          if ((gVar3 != ptr_64bit) ||\n             (iVar2 = gmon_io_read_64((FILE *)__stream,(ulong *)&profrate), iVar2 != 0)) break;\n          uVar7 = CONCAT44(uStack_7c,profrate);\n        }\n        uVar5 = uVar5 + 1;\n        if (((byte)debug_level & 0x40) != 0) {\n          printf("[gmon_out_read] frompc 0x%lx selfpc 0x%lx count %lu\n",from_pc,self_pc,uVar7);\n        }\n        cg_tally(from_pc,self_pc,uVar7);\n      }\n      local_a8 = 0;\n      if (hz == 0) {\n        iVar2 = hertz();\n        hz = (long)iVar2;\n        if (hz == 0) {\n          hz = 1;\n          pcVar9 = (char *)dcgettext("gprof","time is in ticks, not seconds\n",5);\n          fprintf(stderr,pcVar9);\n        }\n      }\nLAB_001099b1:\n      if (stdin != __stream) {\n        fclose(__stream);\n      }\n      iVar2 = gmon_file_version;\n      if (((byte)output_style & 0x20) == 0) {\n        return;\n      }\n      pcVar9 = (char *)dcgettext("gprof","File `%s\' (version %d) contains:\n",5);\n      printf(pcVar9,filename,(ulong)(uint)iVar2);\n      if (local_a4 == 1) {\n        pcVar9 = (char *)dcgettext("gprof","\t%d histogram record\n",5);\n      }\n      else {\n        pcVar9 = (char *)dcgettext("gprof","\t%d histogram records\n",5);\n      }\n      printf(pcVar9,(ulong)local_a4);\n      if (uVar5 == 1) {\n        pcVar9 = (char *)dcgettext("gprof","\t%d call-graph record\n",5);\n      }\n      else {\n        pcVar9 = (char *)dcgettext("gprof","\t%d call-graph records\n",5);\n      }\n      printf(pcVar9,(ulong)uVar5);\n      if (local_a8 == 1) {\n        pcVar9 = (char *)dcgettext("gprof","\t%d basic-block count record\n",5);\n      }\n      else {\n        pcVar9 = (char *)dcgettext("gprof","\t%d basic-block count records\n",5);\n      }\n      printf(pcVar9,(ulong)local_a8);\n      first_output = 0;\n      return;\n    }\n    pcVar9 = "%s: file \'%s\' does not appear to be in gmon.out format\n";\nLAB_0010a006:\n    pcVar12 = whoami;\n    pcVar9 = (char *)dcgettext("gprof",pcVar9,5);\n    fprintf(stderr,pcVar9,pcVar12,filename);\n                    /* WARNING: Subroutine does not return */\n    done(1);\n  }\nLAB_00109f6f:\n  pcVar9 = "%s: file too short to be a gmon file\n";\nLAB_00109f7b:\n  pcVar9 = (char *)dcgettext("gprof",pcVar9,5);\n  fprintf(stderr,pcVar9,filename);\n                    /* WARNING: Subroutine does not return */\n  done(1);\n}" { (declaration "File_Format FVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "gmon_ptr_size gVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "size_t sVar6;" primitive_type identifier ;) (declaration "ulong uVar7;" type_identifier identifier ;) (declaration "bfd_vma bVar8;" type_identifier identifier ;) (declaration "FILE *__stream;" type_identifier (pointer_declarator "*__stream" * identifier) ;) (declaration "char *pcVar9;" primitive_type (pointer_declarator "*pcVar9" * identifier) ;) (declaration "histogram *phVar10;" type_identifier (pointer_declarator "*phVar10" * identifier) ;) (declaration "int *piVar11;" primitive_type (pointer_declarator "*piVar11" * identifier) ;) (declaration "char *pcVar12;" primitive_type (pointer_declarator "*pcVar12" * identifier) ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "long lVar14;" (sized_type_specifier "long" long) identifier ;) (declaration "byte *pbVar15;" type_identifier (pointer_declarator "*pbVar15" * identifier) ;) (declaration "gmon_hdr *pgVar16;" type_identifier (pointer_declarator "*pgVar16" * identifier) ;) (declaration "byte *pbVar17;" type_identifier (pointer_declarator "*pbVar17" * identifier) ;) (declaration "ulong uVar18;" type_identifier identifier ;) (declaration "bool bVar19;" primitive_type identifier ;) (declaration "bool bVar20;" primitive_type identifier ;) (declaration "byte bVar21;" type_identifier identifier ;) (declaration "uint local_a8;" type_identifier identifier ;) (declaration "uint local_a4;" type_identifier identifier ;) (declaration "UNIT raw_bin_count;" type_identifier identifier ;) (declaration "uint version;" type_identifier identifier ;) (declaration "bfd_vma from_pc;" type_identifier identifier ;) (declaration "bfd_vma self_pc;" type_identifier identifier ;) (declaration "uint profrate;" type_identifier identifier ;) (declaration "undefined4 uStack_7c;" type_identifier identifier ;) (declaration "gmon_hdr ghdr;" type_identifier identifier ;) (declaration "uchar tag;" type_identifier identifier ;) (declaration "undefined7 uStack_57;" type_identifier identifier ;) (declaration "bfd_vma local_50;" type_identifier identifier ;) (declaration "uint local_48 [6];" type_identifier (array_declarator "local_48 [6]" identifier [ number_literal ]) ;) (expression_statement "bVar21 = 0;" (assignment_expression "bVar21 = 0" identifier = number_literal) ;) (expression_statement "lVar14 = 2;" (assignment_expression "lVar14 = 2" identifier = number_literal) ;) (expression_statement "bVar19 = &stack0xffffffffffffffd0 < (undefined1 *)0x78;" (assignment_expression "bVar19 = &stack0xffffffffffffffd0 < (undefined1 *)0x78" identifier = (binary_expression "&stack0xffffffffffffffd0 < (undefined1 *)0x78" (pointer_expression "&stack0xffffffffffffffd0" & identifier) < (cast_expression "(undefined1 *)0x78" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "bVar20 = &stack0x00000000 == (undefined1 *)0xa8;" (assignment_expression "bVar20 = &stack0x00000000 == (undefined1 *)0xa8" identifier = (binary_expression "&stack0x00000000 == (undefined1 *)0xa8" (pointer_expression "&stack0x00000000" & identifier) == (cast_expression "(undefined1 *)0xa8" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "pbVar15 = (byte *)filename;" (assignment_expression "pbVar15 = (byte *)filename" identifier = (cast_expression "(byte *)filename" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pbVar17 = &DAT_001110e7;" (assignment_expression "pbVar17 = &DAT_001110e7" identifier = (pointer_expression "&DAT_001110e7" & identifier)) ;) (do_statement "do {\n    if (lVar14 == 0) break;\n    lVar14 = lVar14 + -1;\n    bVar19 = *pbVar15 < *pbVar17;\n    bVar20 = *pbVar15 == *pbVar17;\n    pbVar15 = pbVar15 + 1;\n    pbVar17 = pbVar17 + 1;\n  } while (bVar20);" do (compound_statement "{\n    if (lVar14 == 0) break;\n    lVar14 = lVar14 + -1;\n    bVar19 = *pbVar15 < *pbVar17;\n    bVar20 = *pbVar15 == *pbVar17;\n    pbVar15 = pbVar15 + 1;\n    pbVar17 = pbVar17 + 1;\n  }" { (if_statement "if (lVar14 == 0) break;" if (parenthesized_expression "(lVar14 == 0)" ( (binary_expression "lVar14 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar14 = lVar14 + -1;" (assignment_expression "lVar14 = lVar14 + -1" identifier = (binary_expression "lVar14 + -1" identifier + number_literal)) ;) (expression_statement "bVar19 = *pbVar15 < *pbVar17;" (assignment_expression "bVar19 = *pbVar15 < *pbVar17" identifier = (binary_expression "*pbVar15 < *pbVar17" (pointer_expression "*pbVar15" * identifier) < (pointer_expression "*pbVar17" * identifier))) ;) (expression_statement "bVar20 = *pbVar15 == *pbVar17;" (assignment_expression "bVar20 = *pbVar15 == *pbVar17" identifier = (binary_expression "*pbVar15 == *pbVar17" (pointer_expression "*pbVar15" * identifier) == (pointer_expression "*pbVar17" * identifier))) ;) (expression_statement "pbVar15 = pbVar15 + 1;" (assignment_expression "pbVar15 = pbVar15 + 1" identifier = (binary_expression "pbVar15 + 1" identifier + number_literal)) ;) (expression_statement "pbVar17 = pbVar17 + 1;" (assignment_expression "pbVar17 = pbVar17 + 1" identifier = (binary_expression "pbVar17 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar20)" ( identifier )) ;) (expression_statement "__stream = stdin;" (assignment_expression "__stream = stdin" identifier = identifier) ;) (if_statement "if (((!bVar19 && !bVar20) != bVar19) && (__stream = fopen(filename,"r"), __stream == (FILE *)0x0))\n  goto LAB_00109ba3;" if (parenthesized_expression "(((!bVar19 && !bVar20) != bVar19) && (__stream = fopen(filename,"r"), __stream == (FILE *)0x0))" ( (binary_expression "((!bVar19 && !bVar20) != bVar19) && (__stream = fopen(filename,"r"), __stream == (FILE *)0x0)" (parenthesized_expression "((!bVar19 && !bVar20) != bVar19)" ( (binary_expression "(!bVar19 && !bVar20) != bVar19" (parenthesized_expression "(!bVar19 && !bVar20)" ( (binary_expression "!bVar19 && !bVar20" (unary_expression "!bVar19" ! identifier) && (unary_expression "!bVar20" ! identifier)) )) != identifier) )) && (parenthesized_expression "(__stream = fopen(filename,"r"), __stream == (FILE *)0x0)" ( (comma_expression "__stream = fopen(filename,"r"), __stream == (FILE *)0x0" (assignment_expression "__stream = fopen(filename,"r")" identifier = (call_expression "fopen(filename,"r")" identifier (argument_list "(filename,"r")" ( identifier , (string_literal ""r"" " string_content ") )))) , (binary_expression "__stream == (FILE *)0x0" identifier == (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (goto_statement "goto LAB_00109ba3;" goto statement_identifier ;)) (expression_statement "sVar6 = fread(&ghdr,0x14,1,__stream);" (assignment_expression "sVar6 = fread(&ghdr,0x14,1,__stream)" identifier = (call_expression "fread(&ghdr,0x14,1,__stream)" identifier (argument_list "(&ghdr,0x14,1,__stream)" ( (pointer_expression "&ghdr" & identifier) , number_literal , number_literal , identifier )))) ;) (expression_statement "pcVar9 = whoami;" (assignment_expression "pcVar9 = whoami" identifier = identifier) ;) (expression_statement "FVar1 = file_format;" (assignment_expression "FVar1 = file_format" identifier = identifier) ;) (if_statement "if (sVar6 != 1) goto LAB_00109f6f;" if (parenthesized_expression "(sVar6 != 1)" ( (binary_expression "sVar6 != 1" identifier != number_literal) )) (goto_statement "goto LAB_00109f6f;" goto statement_identifier ;)) (expression_statement "bVar19 = file_format == FF_AUTO;" (assignment_expression "bVar19 = file_format == FF_AUTO" identifier = (binary_expression "file_format == FF_AUTO" identifier == identifier)) ;) (expression_statement "bVar20 = file_format == FF_MAGIC;" (assignment_expression "bVar20 = file_format == FF_MAGIC" identifier = (binary_expression "file_format == FF_MAGIC" identifier == identifier)) ;) (if_statement "if (bVar20) {\n    lVar14 = 4;\n    pgVar16 = &ghdr;\n    pbVar15 = &DAT_001110e9;\n    do {\n      if (lVar14 == 0) break;\n      lVar14 = lVar14 + -1;\n      bVar19 = (byte)pgVar16->cookie[0] < *pbVar15;\n      bVar20 = pgVar16->cookie[0] == *pbVar15;\n      pgVar16 = (gmon_hdr *)((long)pgVar16 + (ulong)bVar21 * -2 + 1);\n      pbVar15 = pbVar15 + (ulong)bVar21 * -2 + 1;\n    } while (bVar20);\n    if ((!bVar19 && !bVar20) == bVar19) {\nLAB_001099fe:\n      bVar8 = (*core_bfd->xvec->bfd_getx32)(ghdr.version);\n      pcVar9 = whoami;\n      gmon_file_version = (int)bVar8;\n      if (1 < (uint)gmon_file_version) {\n        pcVar12 = (char *)dcgettext("gprof","%s: file `%s\' has unsupported version %d\n",5);\n        uVar7 = bVar8 & 0xffffffff;\nLAB_00109f08:\n        fprintf(stderr,pcVar12,pcVar9,filename,uVar7);\n                    /* WARNING: Subroutine does not return */\n        done(1);\n      }\n      local_a8 = 0;\n      uVar5 = 0;\n      local_a4 = 0;\n      while (sVar6 = fread(&tag,1,1,__stream), pcVar9 = whoami, sVar6 == 1) {\n        if (tag == '\x01') {\n          uVar5 = uVar5 + 1;\n          gmon_input = gmon_input | 2;\n          cg_read_rec((FILE *)__stream,filename);\n        }\n        else if (tag == '\0') {\n          local_a4 = local_a4 + 1;\n          gmon_input = gmon_input | 1;\n          hist_read_rec((FILE *)__stream,filename);\n        }\n        else {\n          if (tag != '\x02') {\n            pcVar12 = (char *)dcgettext("gprof","%s: %s: found bad tag %d (file corrupted?)\n",5);\n            uVar7 = (ulong)tag;\n            goto LAB_00109f08;\n          }\n          local_a8 = local_a8 + 1;\n          gmon_input = gmon_input | 4;\n          bb_read_rec((FILE *)__stream,filename);\n        }\n      }\n      goto LAB_001099b1;\n    }\nLAB_00109cae:\n    pcVar9 = "%s: file `%s\' has bad magic cookie\n";\n    goto LAB_0010a006;\n  }" if (parenthesized_expression "(bVar20)" ( identifier )) (compound_statement "{\n    lVar14 = 4;\n    pgVar16 = &ghdr;\n    pbVar15 = &DAT_001110e9;\n    do {\n      if (lVar14 == 0) break;\n      lVar14 = lVar14 + -1;\n      bVar19 = (byte)pgVar16->cookie[0] < *pbVar15;\n      bVar20 = pgVar16->cookie[0] == *pbVar15;\n      pgVar16 = (gmon_hdr *)((long)pgVar16 + (ulong)bVar21 * -2 + 1);\n      pbVar15 = pbVar15 + (ulong)bVar21 * -2 + 1;\n    } while (bVar20);\n    if ((!bVar19 && !bVar20) == bVar19) {\nLAB_001099fe:\n      bVar8 = (*core_bfd->xvec->bfd_getx32)(ghdr.version);\n      pcVar9 = whoami;\n      gmon_file_version = (int)bVar8;\n      if (1 < (uint)gmon_file_version) {\n        pcVar12 = (char *)dcgettext("gprof","%s: file `%s\' has unsupported version %d\n",5);\n        uVar7 = bVar8 & 0xffffffff;\nLAB_00109f08:\n        fprintf(stderr,pcVar12,pcVar9,filename,uVar7);\n                    /* WARNING: Subroutine does not return */\n        done(1);\n      }\n      local_a8 = 0;\n      uVar5 = 0;\n      local_a4 = 0;\n      while (sVar6 = fread(&tag,1,1,__stream), pcVar9 = whoami, sVar6 == 1) {\n        if (tag == '\x01') {\n          uVar5 = uVar5 + 1;\n          gmon_input = gmon_input | 2;\n          cg_read_rec((FILE *)__stream,filename);\n        }\n        else if (tag == '\0') {\n          local_a4 = local_a4 + 1;\n          gmon_input = gmon_input | 1;\n          hist_read_rec((FILE *)__stream,filename);\n        }\n        else {\n          if (tag != '\x02') {\n            pcVar12 = (char *)dcgettext("gprof","%s: %s: found bad tag %d (file corrupted?)\n",5);\n            uVar7 = (ulong)tag;\n            goto LAB_00109f08;\n          }\n          local_a8 = local_a8 + 1;\n          gmon_input = gmon_input | 4;\n          bb_read_rec((FILE *)__stream,filename);\n        }\n      }\n      goto LAB_001099b1;\n    }\nLAB_00109cae:\n    pcVar9 = "%s: file `%s\' has bad magic cookie\n";\n    goto LAB_0010a006;\n  }" { (expression_statement "lVar14 = 4;" (assignment_expression "lVar14 = 4" identifier = number_literal) ;) (expression_statement "pgVar16 = &ghdr;" (assignment_expression "pgVar16 = &ghdr" identifier = (pointer_expression "&ghdr" & identifier)) ;) (expression_statement "pbVar15 = &DAT_001110e9;" (assignment_expression "pbVar15 = &DAT_001110e9" identifier = (pointer_expression "&DAT_001110e9" & identifier)) ;) (do_statement "do {\n      if (lVar14 == 0) break;\n      lVar14 = lVar14 + -1;\n      bVar19 = (byte)pgVar16->cookie[0] < *pbVar15;\n      bVar20 = pgVar16->cookie[0] == *pbVar15;\n      pgVar16 = (gmon_hdr *)((long)pgVar16 + (ulong)bVar21 * -2 + 1);\n      pbVar15 = pbVar15 + (ulong)bVar21 * -2 + 1;\n    } while (bVar20);" do (compound_statement "{\n      if (lVar14 == 0) break;\n      lVar14 = lVar14 + -1;\n      bVar19 = (byte)pgVar16->cookie[0] < *pbVar15;\n      bVar20 = pgVar16->cookie[0] == *pbVar15;\n      pgVar16 = (gmon_hdr *)((long)pgVar16 + (ulong)bVar21 * -2 + 1);\n      pbVar15 = pbVar15 + (ulong)bVar21 * -2 + 1;\n    }" { (if_statement "if (lVar14 == 0) break;" if (parenthesized_expression "(lVar14 == 0)" ( (binary_expression "lVar14 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar14 = lVar14 + -1;" (assignment_expression "lVar14 = lVar14 + -1" identifier = (binary_expression "lVar14 + -1" identifier + number_literal)) ;) (expression_statement "bVar19 = (byte)pgVar16->cookie[0] < *pbVar15;" (assignment_expression "bVar19 = (byte)pgVar16->cookie[0] < *pbVar15" identifier = (binary_expression "(byte)pgVar16->cookie[0] < *pbVar15" (cast_expression "(byte)pgVar16->cookie[0]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "pgVar16->cookie[0]" (field_expression "pgVar16->cookie" identifier -> field_identifier) [ number_literal ])) < (pointer_expression "*pbVar15" * identifier))) ;) (expression_statement "bVar20 = pgVar16->cookie[0] == *pbVar15;" (assignment_expression "bVar20 = pgVar16->cookie[0] == *pbVar15" identifier = (binary_expression "pgVar16->cookie[0] == *pbVar15" (subscript_expression "pgVar16->cookie[0]" (field_expression "pgVar16->cookie" identifier -> field_identifier) [ number_literal ]) == (pointer_expression "*pbVar15" * identifier))) ;) (expression_statement "pgVar16 = (gmon_hdr *)((long)pgVar16 + (ulong)bVar21 * -2 + 1);" (assignment_expression "pgVar16 = (gmon_hdr *)((long)pgVar16 + (ulong)bVar21 * -2 + 1)" identifier = (cast_expression "(gmon_hdr *)((long)pgVar16 + (ulong)bVar21 * -2 + 1)" ( (type_descriptor "gmon_hdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pgVar16 + (ulong)bVar21 * -2 + 1)" ( (binary_expression "(long)pgVar16 + (ulong)bVar21 * -2 + 1" (binary_expression "(long)pgVar16 + (ulong)bVar21 * -2" (cast_expression "(long)pgVar16" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (binary_expression "(ulong)bVar21 * -2" (cast_expression "(ulong)bVar21" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) (expression_statement "pbVar15 = pbVar15 + (ulong)bVar21 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (ulong)bVar21 * -2 + 1" identifier = (binary_expression "pbVar15 + (ulong)bVar21 * -2 + 1" (binary_expression "pbVar15 + (ulong)bVar21 * -2" identifier + (binary_expression "(ulong)bVar21 * -2" (cast_expression "(ulong)bVar21" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar20)" ( identifier )) ;) (if_statement "if ((!bVar19 && !bVar20) == bVar19) {\nLAB_001099fe:\n      bVar8 = (*core_bfd->xvec->bfd_getx32)(ghdr.version);\n      pcVar9 = whoami;\n      gmon_file_version = (int)bVar8;\n      if (1 < (uint)gmon_file_version) {\n        pcVar12 = (char *)dcgettext("gprof","%s: file `%s\' has unsupported version %d\n",5);\n        uVar7 = bVar8 & 0xffffffff;\nLAB_00109f08:\n        fprintf(stderr,pcVar12,pcVar9,filename,uVar7);\n                    /* WARNING: Subroutine does not return */\n        done(1);\n      }\n      local_a8 = 0;\n      uVar5 = 0;\n      local_a4 = 0;\n      while (sVar6 = fread(&tag,1,1,__stream), pcVar9 = whoami, sVar6 == 1) {\n        if (tag == '\x01') {\n          uVar5 = uVar5 + 1;\n          gmon_input = gmon_input | 2;\n          cg_read_rec((FILE *)__stream,filename);\n        }\n        else if (tag == '\0') {\n          local_a4 = local_a4 + 1;\n          gmon_input = gmon_input | 1;\n          hist_read_rec((FILE *)__stream,filename);\n        }\n        else {\n          if (tag != '\x02') {\n            pcVar12 = (char *)dcgettext("gprof","%s: %s: found bad tag %d (file corrupted?)\n",5);\n            uVar7 = (ulong)tag;\n            goto LAB_00109f08;\n          }\n          local_a8 = local_a8 + 1;\n          gmon_input = gmon_input | 4;\n          bb_read_rec((FILE *)__stream,filename);\n        }\n      }\n      goto LAB_001099b1;\n    }" if (parenthesized_expression "((!bVar19 && !bVar20) == bVar19)" ( (binary_expression "(!bVar19 && !bVar20) == bVar19" (parenthesized_expression "(!bVar19 && !bVar20)" ( (binary_expression "!bVar19 && !bVar20" (unary_expression "!bVar19" ! identifier) && (unary_expression "!bVar20" ! identifier)) )) == identifier) )) (compound_statement "{\nLAB_001099fe:\n      bVar8 = (*core_bfd->xvec->bfd_getx32)(ghdr.version);\n      pcVar9 = whoami;\n      gmon_file_version = (int)bVar8;\n      if (1 < (uint)gmon_file_version) {\n        pcVar12 = (char *)dcgettext("gprof","%s: file `%s\' has unsupported version %d\n",5);\n        uVar7 = bVar8 & 0xffffffff;\nLAB_00109f08:\n        fprintf(stderr,pcVar12,pcVar9,filename,uVar7);\n                    /* WARNING: Subroutine does not return */\n        done(1);\n      }\n      local_a8 = 0;\n      uVar5 = 0;\n      local_a4 = 0;\n      while (sVar6 = fread(&tag,1,1,__stream), pcVar9 = whoami, sVar6 == 1) {\n        if (tag == '\x01') {\n          uVar5 = uVar5 + 1;\n          gmon_input = gmon_input | 2;\n          cg_read_rec((FILE *)__stream,filename);\n        }\n        else if (tag == '\0') {\n          local_a4 = local_a4 + 1;\n          gmon_input = gmon_input | 1;\n          hist_read_rec((FILE *)__stream,filename);\n        }\n        else {\n          if (tag != '\x02') {\n            pcVar12 = (char *)dcgettext("gprof","%s: %s: found bad tag %d (file corrupted?)\n",5);\n            uVar7 = (ulong)tag;\n            goto LAB_00109f08;\n          }\n          local_a8 = local_a8 + 1;\n          gmon_input = gmon_input | 4;\n          bb_read_rec((FILE *)__stream,filename);\n        }\n      }\n      goto LAB_001099b1;\n    }" { (labeled_statement "LAB_001099fe:\n      bVar8 = (*core_bfd->xvec->bfd_getx32)(ghdr.version);" statement_identifier : (expression_statement "bVar8 = (*core_bfd->xvec->bfd_getx32)(ghdr.version);" (assignment_expression "bVar8 = (*core_bfd->xvec->bfd_getx32)(ghdr.version)" identifier = (call_expression "(*core_bfd->xvec->bfd_getx32)(ghdr.version)" (parenthesized_expression "(*core_bfd->xvec->bfd_getx32)" ( (pointer_expression "*core_bfd->xvec->bfd_getx32" * (field_expression "core_bfd->xvec->bfd_getx32" (field_expression "core_bfd->xvec" identifier -> field_identifier) -> field_identifier)) )) (argument_list "(ghdr.version)" ( (field_expression "ghdr.version" identifier . field_identifier) )))) ;)) (expression_statement "pcVar9 = whoami;" (assignment_expression "pcVar9 = whoami" identifier = identifier) ;) (expression_statement "gmon_file_version = (int)bVar8;" (assignment_expression "gmon_file_version = (int)bVar8" identifier = (cast_expression "(int)bVar8" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (1 < (uint)gmon_file_version) {\n        pcVar12 = (char *)dcgettext("gprof","%s: file `%s\' has unsupported version %d\n",5);\n        uVar7 = bVar8 & 0xffffffff;\nLAB_00109f08:\n        fprintf(stderr,pcVar12,pcVar9,filename,uVar7);\n                    /* WARNING: Subroutine does not return */\n        done(1);\n      }" if (parenthesized_expression "(1 < (uint)gmon_file_version)" ( (binary_expression "1 < (uint)gmon_file_version" number_literal < (cast_expression "(uint)gmon_file_version" ( (type_descriptor "uint" type_identifier) ) identifier)) )) (compound_statement "{\n        pcVar12 = (char *)dcgettext("gprof","%s: file `%s\' has unsupported version %d\n",5);\n        uVar7 = bVar8 & 0xffffffff;\nLAB_00109f08:\n        fprintf(stderr,pcVar12,pcVar9,filename,uVar7);\n                    /* WARNING: Subroutine does not return */\n        done(1);\n      }" { (expression_statement "pcVar12 = (char *)dcgettext("gprof","%s: file `%s\' has unsupported version %d\n",5);" (assignment_expression "pcVar12 = (char *)dcgettext("gprof","%s: file `%s\' has unsupported version %d\n",5)" identifier = (cast_expression "(char *)dcgettext("gprof","%s: file `%s\' has unsupported version %d\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext("gprof","%s: file `%s\' has unsupported version %d\n",5)" identifier (argument_list "("gprof","%s: file `%s\' has unsupported version %d\n",5)" ( (string_literal ""gprof"" " string_content ") , (string_literal ""%s: file `%s\' has unsupported version %d\n"" " string_content escape_sequence string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "uVar7 = bVar8 & 0xffffffff;" (assignment_expression "uVar7 = bVar8 & 0xffffffff" identifier = (binary_expression "bVar8 & 0xffffffff" identifier & number_literal)) ;) (labeled_statement "LAB_00109f08:\n        fprintf(stderr,pcVar12,pcVar9,filename,uVar7);" statement_identifier : (expression_statement "fprintf(stderr,pcVar12,pcVar9,filename,uVar7);" (call_expression "fprintf(stderr,pcVar12,pcVar9,filename,uVar7)" identifier (argument_list "(stderr,pcVar12,pcVar9,filename,uVar7)" ( identifier , identifier , identifier , identifier , identifier ))) ;)) comment (expression_statement "done(1);" (call_expression "done(1)" identifier (argument_list "(1)" ( number_literal ))) ;) })) (expression_statement "local_a8 = 0;" (assignment_expression "local_a8 = 0" identifier = number_literal) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (expression_statement "local_a4 = 0;" (assignment_expression "local_a4 = 0" identifier = number_literal) ;) (while_statement "while (sVar6 = fread(&tag,1,1,__stream), pcVar9 = whoami, sVar6 == 1) {\n        if (tag == '\x01') {\n          uVar5 = uVar5 + 1;\n          gmon_input = gmon_input | 2;\n          cg_read_rec((FILE *)__stream,filename);\n        }\n        else if (tag == '\0') {\n          local_a4 = local_a4 + 1;\n          gmon_input = gmon_input | 1;\n          hist_read_rec((FILE *)__stream,filename);\n        }\n        else {\n          if (tag != '\x02') {\n            pcVar12 = (char *)dcgettext("gprof","%s: %s: found bad tag %d (file corrupted?)\n",5);\n            uVar7 = (ulong)tag;\n            goto LAB_00109f08;\n          }\n          local_a8 = local_a8 + 1;\n          gmon_input = gmon_input | 4;\n          bb_read_rec((FILE *)__stream,filename);\n        }\n      }" while (parenthesized_expression "(sVar6 = fread(&tag,1,1,__stream), pcVar9 = whoami, sVar6 == 1)" ( (comma_expression "sVar6 = fread(&tag,1,1,__stream), pcVar9 = whoami, sVar6 == 1" (assignment_expression "sVar6 = fread(&tag,1,1,__stream)" identifier = (call_expression "fread(&tag,1,1,__stream)" identifier (argument_list "(&tag,1,1,__stream)" ( (pointer_expression "&tag" & identifier) , number_literal , number_literal , identifier )))) , (comma_expression "pcVar9 = whoami, sVar6 == 1" (assignment_expression "pcVar9 = whoami" identifier = identifier) , (binary_expression "sVar6 == 1" identifier == number_literal))) )) (compound_statement "{\n        if (tag == '\x01') {\n          uVar5 = uVar5 + 1;\n          gmon_input = gmon_input | 2;\n          cg_read_rec((FILE *)__stream,filename);\n        }\n        else if (tag == '\0') {\n          local_a4 = local_a4 + 1;\n          gmon_input = gmon_input | 1;\n          hist_read_rec((FILE *)__stream,filename);\n        }\n        else {\n          if (tag != '\x02') {\n            pcVar12 = (char *)dcgettext("gprof","%s: %s: found bad tag %d (file corrupted?)\n",5);\n            uVar7 = (ulong)tag;\n            goto LAB_00109f08;\n          }\n          local_a8 = local_a8 + 1;\n          gmon_input = gmon_input | 4;\n          bb_read_rec((FILE *)__stream,filename);\n        }\n      }" { (if_statement "if (tag == '\x01') {\n          uVar5 = uVar5 + 1;\n          gmon_input = gmon_input | 2;\n          cg_read_rec((FILE *)__stream,filename);\n        }\n        else if (tag == '\0') {\n          local_a4 = local_a4 + 1;\n          gmon_input = gmon_input | 1;\n          hist_read_rec((FILE *)__stream,filename);\n        }\n        else {\n          if (tag != '\x02') {\n            pcVar12 = (char *)dcgettext("gprof","%s: %s: found bad tag %d (file corrupted?)\n",5);\n            uVar7 = (ulong)tag;\n            goto LAB_00109f08;\n          }\n          local_a8 = local_a8 + 1;\n          gmon_input = gmon_input | 4;\n          bb_read_rec((FILE *)__stream,filename);\n        }" if (parenthesized_expression "(tag == '\x01')" ( (binary_expression "tag == '\x01'" identifier == (char_literal "'\x01'" ' escape_sequence ')) )) (compound_statement "{\n          uVar5 = uVar5 + 1;\n          gmon_input = gmon_input | 2;\n          cg_read_rec((FILE *)__stream,filename);\n        }" { (expression_statement "uVar5 = uVar5 + 1;" (assignment_expression "uVar5 = uVar5 + 1" identifier = (binary_expression "uVar5 + 1" identifier + number_literal)) ;) (expression_statement "gmon_input = gmon_input | 2;" (assignment_expression "gmon_input = gmon_input | 2" identifier = (binary_expression "gmon_input | 2" identifier | number_literal)) ;) (expression_statement "cg_read_rec((FILE *)__stream,filename);" (call_expression "cg_read_rec((FILE *)__stream,filename)" identifier (argument_list "((FILE *)__stream,filename)" ( (cast_expression "(FILE *)__stream" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier ))) ;) }) (else_clause "else if (tag == '\0') {\n          local_a4 = local_a4 + 1;\n          gmon_input = gmon_input | 1;\n          hist_read_rec((FILE *)__stream,filename);\n        }\n        else {\n          if (tag != '\x02') {\n            pcVar12 = (char *)dcgettext("gprof","%s: %s: found bad tag %d (file corrupted?)\n",5);\n            uVar7 = (ulong)tag;\n            goto LAB_00109f08;\n          }\n          local_a8 = local_a8 + 1;\n          gmon_input = gmon_input | 4;\n          bb_read_rec((FILE *)__stream,filename);\n        }" else (if_statement "if (tag == '\0') {\n          local_a4 = local_a4 + 1;\n          gmon_input = gmon_input | 1;\n          hist_read_rec((FILE *)__stream,filename);\n        }\n        else {\n          if (tag != '\x02') {\n            pcVar12 = (char *)dcgettext("gprof","%s: %s: found bad tag %d (file corrupted?)\n",5);\n            uVar7 = (ulong)tag;\n            goto LAB_00109f08;\n          }\n          local_a8 = local_a8 + 1;\n          gmon_input = gmon_input | 4;\n          bb_read_rec((FILE *)__stream,filename);\n        }" if (parenthesized_expression "(tag == '\0')" ( (binary_expression "tag == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          local_a4 = local_a4 + 1;\n          gmon_input = gmon_input | 1;\n          hist_read_rec((FILE *)__stream,filename);\n        }" { (expression_statement "local_a4 = local_a4 + 1;" (assignment_expression "local_a4 = local_a4 + 1" identifier = (binary_expression "local_a4 + 1" identifier + number_literal)) ;) (expression_statement "gmon_input = gmon_input | 1;" (assignment_expression "gmon_input = gmon_input | 1" identifier = (binary_expression "gmon_input | 1" identifier | number_literal)) ;) (expression_statement "hist_read_rec((FILE *)__stream,filename);" (call_expression "hist_read_rec((FILE *)__stream,filename)" identifier (argument_list "((FILE *)__stream,filename)" ( (cast_expression "(FILE *)__stream" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier ))) ;) }) (else_clause "else {\n          if (tag != '\x02') {\n            pcVar12 = (char *)dcgettext("gprof","%s: %s: found bad tag %d (file corrupted?)\n",5);\n            uVar7 = (ulong)tag;\n            goto LAB_00109f08;\n          }\n          local_a8 = local_a8 + 1;\n          gmon_input = gmon_input | 4;\n          bb_read_rec((FILE *)__stream,filename);\n        }" else (compound_statement "{\n          if (tag != '\x02') {\n            pcVar12 = (char *)dcgettext("gprof","%s: %s: found bad tag %d (file corrupted?)\n",5);\n            uVar7 = (ulong)tag;\n            goto LAB_00109f08;\n          }\n          local_a8 = local_a8 + 1;\n          gmon_input = gmon_input | 4;\n          bb_read_rec((FILE *)__stream,filename);\n        }" { (if_statement "if (tag != '\x02') {\n            pcVar12 = (char *)dcgettext("gprof","%s: %s: found bad tag %d (file corrupted?)\n",5);\n            uVar7 = (ulong)tag;\n            goto LAB_00109f08;\n          }" if (parenthesized_expression "(tag != '\x02')" ( (binary_expression "tag != '\x02'" identifier != (char_literal "'\x02'" ' escape_sequence ')) )) (compound_statement "{\n            pcVar12 = (char *)dcgettext("gprof","%s: %s: found bad tag %d (file corrupted?)\n",5);\n            uVar7 = (ulong)tag;\n            goto LAB_00109f08;\n          }" { (expression_statement "pcVar12 = (char *)dcgettext("gprof","%s: %s: found bad tag %d (file corrupted?)\n",5);" (assignment_expression "pcVar12 = (char *)dcgettext("gprof","%s: %s: found bad tag %d (file corrupted?)\n",5)" identifier = (cast_expression "(char *)dcgettext("gprof","%s: %s: found bad tag %d (file corrupted?)\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext("gprof","%s: %s: found bad tag %d (file corrupted?)\n",5)" identifier (argument_list "("gprof","%s: %s: found bad tag %d (file corrupted?)\n",5)" ( (string_literal ""gprof"" " string_content ") , (string_literal ""%s: %s: found bad tag %d (file corrupted?)\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "uVar7 = (ulong)tag;" (assignment_expression "uVar7 = (ulong)tag" identifier = (cast_expression "(ulong)tag" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (goto_statement "goto LAB_00109f08;" goto statement_identifier ;) })) (expression_statement "local_a8 = local_a8 + 1;" (assignment_expression "local_a8 = local_a8 + 1" identifier = (binary_expression "local_a8 + 1" identifier + number_literal)) ;) (expression_statement "gmon_input = gmon_input | 4;" (assignment_expression "gmon_input = gmon_input | 4" identifier = (binary_expression "gmon_input | 4" identifier | number_literal)) ;) (expression_statement "bb_read_rec((FILE *)__stream,filename);" (call_expression "bb_read_rec((FILE *)__stream,filename)" identifier (argument_list "((FILE *)__stream,filename)" ( (cast_expression "(FILE *)__stream" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier ))) ;) }))))) })) (goto_statement "goto LAB_001099b1;" goto statement_identifier ;) })) (labeled_statement "LAB_00109cae:\n    pcVar9 = "%s: file `%s\' has bad magic cookie\n";" statement_identifier : (expression_statement "pcVar9 = "%s: file `%s\' has bad magic cookie\n";" (assignment_expression "pcVar9 = "%s: file `%s\' has bad magic cookie\n"" identifier = (string_literal ""%s: file `%s\' has bad magic cookie\n"" " string_content escape_sequence string_content escape_sequence ")) ;)) (goto_statement "goto LAB_0010a006;" goto statement_identifier ;) })) (expression_statement "bVar19 = false;" (assignment_expression "bVar19 = false" identifier = false) ;) (expression_statement "bVar20 = file_format == FF_AUTO;" (assignment_expression "bVar20 = file_format == FF_AUTO" identifier = (binary_expression "file_format == FF_AUTO" identifier == identifier)) ;) (if_statement "if (bVar20) {\n    lVar14 = 4;\n    pgVar16 = &ghdr;\n    pbVar15 = &DAT_001110e9;\n    do {\n      if (lVar14 == 0) break;\n      lVar14 = lVar14 + -1;\n      bVar19 = (byte)pgVar16->cookie[0] < *pbVar15;\n      bVar20 = pgVar16->cookie[0] == *pbVar15;\n      pgVar16 = (gmon_hdr *)((long)pgVar16 + (ulong)bVar21 * -2 + 1);\n      pbVar15 = pbVar15 + (ulong)bVar21 * -2 + 1;\n    } while (bVar20);\n    if ((!bVar19 && !bVar20) == bVar19) goto LAB_001099fe;\n  }\n  else if (1 < file_format - FF_BSD) {\n    pcVar12 = (char *)dcgettext("gprof","%s: don\'t know how to deal with file format %d\n",5);\n    fprintf(stderr,pcVar12,pcVar9,(ulong)FVar1);\n                    /* WARNING: Subroutine does not return */\n    done(1);\n  }" if (parenthesized_expression "(bVar20)" ( identifier )) (compound_statement "{\n    lVar14 = 4;\n    pgVar16 = &ghdr;\n    pbVar15 = &DAT_001110e9;\n    do {\n      if (lVar14 == 0) break;\n      lVar14 = lVar14 + -1;\n      bVar19 = (byte)pgVar16->cookie[0] < *pbVar15;\n      bVar20 = pgVar16->cookie[0] == *pbVar15;\n      pgVar16 = (gmon_hdr *)((long)pgVar16 + (ulong)bVar21 * -2 + 1);\n      pbVar15 = pbVar15 + (ulong)bVar21 * -2 + 1;\n    } while (bVar20);\n    if ((!bVar19 && !bVar20) == bVar19) goto LAB_001099fe;\n  }" { (expression_statement "lVar14 = 4;" (assignment_expression "lVar14 = 4" identifier = number_literal) ;) (expression_statement "pgVar16 = &ghdr;" (assignment_expression "pgVar16 = &ghdr" identifier = (pointer_expression "&ghdr" & identifier)) ;) (expression_statement "pbVar15 = &DAT_001110e9;" (assignment_expression "pbVar15 = &DAT_001110e9" identifier = (pointer_expression "&DAT_001110e9" & identifier)) ;) (do_statement "do {\n      if (lVar14 == 0) break;\n      lVar14 = lVar14 + -1;\n      bVar19 = (byte)pgVar16->cookie[0] < *pbVar15;\n      bVar20 = pgVar16->cookie[0] == *pbVar15;\n      pgVar16 = (gmon_hdr *)((long)pgVar16 + (ulong)bVar21 * -2 + 1);\n      pbVar15 = pbVar15 + (ulong)bVar21 * -2 + 1;\n    } while (bVar20);" do (compound_statement "{\n      if (lVar14 == 0) break;\n      lVar14 = lVar14 + -1;\n      bVar19 = (byte)pgVar16->cookie[0] < *pbVar15;\n      bVar20 = pgVar16->cookie[0] == *pbVar15;\n      pgVar16 = (gmon_hdr *)((long)pgVar16 + (ulong)bVar21 * -2 + 1);\n      pbVar15 = pbVar15 + (ulong)bVar21 * -2 + 1;\n    }" { (if_statement "if (lVar14 == 0) break;" if (parenthesized_expression "(lVar14 == 0)" ( (binary_expression "lVar14 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar14 = lVar14 + -1;" (assignment_expression "lVar14 = lVar14 + -1" identifier = (binary_expression "lVar14 + -1" identifier + number_literal)) ;) (expression_statement "bVar19 = (byte)pgVar16->cookie[0] < *pbVar15;" (assignment_expression "bVar19 = (byte)pgVar16->cookie[0] < *pbVar15" identifier = (binary_expression "(byte)pgVar16->cookie[0] < *pbVar15" (cast_expression "(byte)pgVar16->cookie[0]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "pgVar16->cookie[0]" (field_expression "pgVar16->cookie" identifier -> field_identifier) [ number_literal ])) < (pointer_expression "*pbVar15" * identifier))) ;) (expression_statement "bVar20 = pgVar16->cookie[0] == *pbVar15;" (assignment_expression "bVar20 = pgVar16->cookie[0] == *pbVar15" identifier = (binary_expression "pgVar16->cookie[0] == *pbVar15" (subscript_expression "pgVar16->cookie[0]" (field_expression "pgVar16->cookie" identifier -> field_identifier) [ number_literal ]) == (pointer_expression "*pbVar15" * identifier))) ;) (expression_statement "pgVar16 = (gmon_hdr *)((long)pgVar16 + (ulong)bVar21 * -2 + 1);" (assignment_expression "pgVar16 = (gmon_hdr *)((long)pgVar16 + (ulong)bVar21 * -2 + 1)" identifier = (cast_expression "(gmon_hdr *)((long)pgVar16 + (ulong)bVar21 * -2 + 1)" ( (type_descriptor "gmon_hdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pgVar16 + (ulong)bVar21 * -2 + 1)" ( (binary_expression "(long)pgVar16 + (ulong)bVar21 * -2 + 1" (binary_expression "(long)pgVar16 + (ulong)bVar21 * -2" (cast_expression "(long)pgVar16" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (binary_expression "(ulong)bVar21 * -2" (cast_expression "(ulong)bVar21" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) (expression_statement "pbVar15 = pbVar15 + (ulong)bVar21 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (ulong)bVar21 * -2 + 1" identifier = (binary_expression "pbVar15 + (ulong)bVar21 * -2 + 1" (binary_expression "pbVar15 + (ulong)bVar21 * -2" identifier + (binary_expression "(ulong)bVar21 * -2" (cast_expression "(ulong)bVar21" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar20)" ( identifier )) ;) (if_statement "if ((!bVar19 && !bVar20) == bVar19) goto LAB_001099fe;" if (parenthesized_expression "((!bVar19 && !bVar20) == bVar19)" ( (binary_expression "(!bVar19 && !bVar20) == bVar19" (parenthesized_expression "(!bVar19 && !bVar20)" ( (binary_expression "!bVar19 && !bVar20" (unary_expression "!bVar19" ! identifier) && (unary_expression "!bVar20" ! identifier)) )) == identifier) )) (goto_statement "goto LAB_001099fe;" goto statement_identifier ;)) }) (else_clause "else if (1 < file_format - FF_BSD) {\n    pcVar12 = (char *)dcgettext("gprof","%s: don\'t know how to deal with file format %d\n",5);\n    fprintf(stderr,pcVar12,pcVar9,(ulong)FVar1);\n                    /* WARNING: Subroutine does not return */\n    done(1);\n  }" else (if_statement "if (1 < file_format - FF_BSD) {\n    pcVar12 = (char *)dcgettext("gprof","%s: don\'t know how to deal with file format %d\n",5);\n    fprintf(stderr,pcVar12,pcVar9,(ulong)FVar1);\n                    /* WARNING: Subroutine does not return */\n    done(1);\n  }" if (parenthesized_expression "(1 < file_format - FF_BSD)" ( (binary_expression "1 < file_format - FF_BSD" number_literal < (binary_expression "file_format - FF_BSD" identifier - identifier)) )) (compound_statement "{\n    pcVar12 = (char *)dcgettext("gprof","%s: don\'t know how to deal with file format %d\n",5);\n    fprintf(stderr,pcVar12,pcVar9,(ulong)FVar1);\n                    /* WARNING: Subroutine does not return */\n    done(1);\n  }" { (expression_statement "pcVar12 = (char *)dcgettext("gprof","%s: don\'t know how to deal with file format %d\n",5);" (assignment_expression "pcVar12 = (char *)dcgettext("gprof","%s: don\'t know how to deal with file format %d\n",5)" identifier = (cast_expression "(char *)dcgettext("gprof","%s: don\'t know how to deal with file format %d\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext("gprof","%s: don\'t know how to deal with file format %d\n",5)" identifier (argument_list "("gprof","%s: don\'t know how to deal with file format %d\n",5)" ( (string_literal ""gprof"" " string_content ") , (string_literal ""%s: don\'t know how to deal with file format %d\n"" " string_content escape_sequence string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "fprintf(stderr,pcVar12,pcVar9,(ulong)FVar1);" (call_expression "fprintf(stderr,pcVar12,pcVar9,(ulong)FVar1)" identifier (argument_list "(stderr,pcVar12,pcVar9,(ulong)FVar1)" ( identifier , identifier , identifier , (cast_expression "(ulong)FVar1" ( (type_descriptor "ulong" type_identifier) ) identifier) ))) ;) comment (expression_statement "done(1);" (call_expression "done(1)" identifier (argument_list "(1)" ( number_literal ))) ;) })))) (expression_statement "gmon_input = 3;" (assignment_expression "gmon_input = 3" identifier = number_literal) ;) (expression_statement "iVar2 = fseek(__stream,0,0);" (assignment_expression "iVar2 = fseek(__stream,0,0)" identifier = (call_expression "fseek(__stream,0,0)" identifier (argument_list "(__stream,0,0)" ( identifier , number_literal , number_literal )))) ;) (if_statement "if (iVar2 < 0) goto LAB_00109ba3;" if (parenthesized_expression "(iVar2 < 0)" ( (binary_expression "iVar2 < 0" identifier < number_literal) )) (goto_statement "goto LAB_00109ba3;" goto statement_identifier ;)) (expression_statement "iVar2 = gmon_io_read_vma((FILE *)__stream,(bfd_vma *)&tag);" (assignment_expression "iVar2 = gmon_io_read_vma((FILE *)__stream,(bfd_vma *)&tag)" identifier = (call_expression "gmon_io_read_vma((FILE *)__stream,(bfd_vma *)&tag)" identifier (argument_list "((FILE *)__stream,(bfd_vma *)&tag)" ( (cast_expression "(FILE *)__stream" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(bfd_vma *)&tag" ( (type_descriptor "bfd_vma *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&tag" & identifier)) )))) ;) (if_statement "if ((((iVar2 == 0) && (iVar2 = gmon_io_read_vma((FILE *)__stream,&local_50), iVar2 == 0)) &&\n      (iVar2 = gmon_io_read_32((FILE *)__stream,local_48), iVar2 == 0)) &&\n     (iVar2 = gmon_io_read_32((FILE *)__stream,&version), iVar2 == 0)) {\n    if (version == 0x51879) {\n      iVar2 = gmon_io_read_32((FILE *)__stream,&profrate);\n      if (iVar2 != 0) goto LAB_00109f6f;\n      uVar7 = (ulong)profrate;\n      if ((histograms != (histogram *)0x0) && (uVar7 = hz, (int)profrate != hz)) {\n        pcVar9 = "%s: profiling rate incompatible with first gmon file\n";\n        goto LAB_00109f7b;\n      }\n      hz = uVar7;\n      gVar3 = gmon_get_ptr_size();\n      if (gVar3 == ptr_32bit) {\n        lVar14 = 0x20;\n        iVar2 = 0x20;\n      }\n      else {\n        lVar14 = 0x28;\n        if (gVar3 == ptr_64bit) {\n          iVar2 = 0x28;\n        }\n        else {\n          lVar14 = 0;\n          iVar2 = 0;\n        }\n      }\n    }\n    else {\n      if (file_format == FF_BSD44) goto LAB_00109cae;\n      gVar3 = gmon_get_ptr_size();\n      if (gVar3 == ptr_32bit) {\n        lVar14 = 0xc;\n        iVar2 = 0xc;\n      }\n      else {\n        lVar14 = 0x14;\n        if (gVar3 != ptr_64bit) {\n          lVar14 = 0;\n        }\n        iVar2 = 0x14;\n        if (gVar3 != ptr_64bit) {\n          iVar2 = 0;\n        }\n      }\n    }\n    iVar4 = fseek(__stream,lVar14,0);\n    if (iVar4 < 0) {\nLAB_00109ba3:\n      perror(filename);\n                    /* WARNING: Subroutine does not return */\n      done(1);\n    }\n    uVar5 = local_48[0] - iVar2;\n    uVar7 = (ulong)(long)(int)uVar5 >> 1;\n    uVar13 = (uint)uVar7;\n    if (histograms == (histogram *)0x0) {\n      num_histograms = 1;\n      phVar10 = (histogram *)xmalloc(0x20);\n      histograms = phVar10;\n      phVar10->lowpc = CONCAT71(uStack_57,tag);\n      phVar10->num_bins = uVar13;\n      sVar6 = (uVar7 & 0xffffffff) << 2;\n      phVar10->highpc = local_50;\n      hist_scale = (double)(local_50 - CONCAT71(uStack_57,tag) >> 1) / (double)(uVar7 & 0xffffffff);\n      piVar11 = (int *)xmalloc(sVar6);\n      phVar10->sample = piVar11;\n      memset(histograms->sample,0,sVar6);\n    }\n    else if (((CONCAT71(uStack_57,tag) != histograms->lowpc) || (local_50 != histograms->highpc)) ||\n            (histograms->num_bins != uVar13)) {\n      pcVar9 = "%s: incompatible with first gmon file\n";\n      goto LAB_00109f7b;\n    }\n    if (((byte)debug_level & 0x40) != 0) {\n      printf("[gmon_out_read] lowpc 0x%lx highpc 0x%lx ncnt %d\n",CONCAT71(uStack_57,tag),local_50,\n             (ulong)local_48[0]);\n      printf("[gmon_out_read] samp_bytes %d hist_num_bins %d\n",(ulong)uVar5,uVar7 & 0xffffffff);\n    }\n    if ((-1 < (int)uVar5) && (histograms->lowpc <= histograms->highpc)) {\n      local_a4 = (uint)(uVar13 != 0);\n      if (uVar13 != 0) {\n        uVar18 = 0;\n        do {\n          sVar6 = fread(raw_bin_count,2,1,__stream);\n          pcVar9 = whoami;\n          if (sVar6 != 1) {\n            pcVar12 = (char *)dcgettext("gprof","%s: unexpected EOF after reading %d/%d bins\n",5);\n            fprintf(stderr,pcVar12,pcVar9,(ulong)((int)uVar18 - 1),uVar7 & 0xffffffff);\n                    /* WARNING: Subroutine does not return */\n            done(1);\n          }\n          bVar8 = (*core_bfd->xvec->bfd_getx16)(raw_bin_count);\n          histograms->sample[uVar18] = histograms->sample[uVar18] + (int)bVar8;\n          bVar19 = uVar13 - 1 != uVar18;\n          uVar18 = uVar18 + 1;\n        } while (bVar19);\n      }\n      uVar5 = 0;\n      while ((iVar2 = gmon_io_read_vma((FILE *)__stream,&from_pc), iVar2 == 0 &&\n             (iVar2 = gmon_io_read_vma((FILE *)__stream,&self_pc), iVar2 == 0))) {\n        gVar3 = gmon_get_ptr_size();\n        if (gVar3 == ptr_32bit) {\n          iVar2 = gmon_io_read_32((FILE *)__stream,&profrate);\n          if (iVar2 != 0) break;\n          uVar7 = (ulong)profrate;\n        }\n        else {\n          if ((gVar3 != ptr_64bit) ||\n             (iVar2 = gmon_io_read_64((FILE *)__stream,(ulong *)&profrate), iVar2 != 0)) break;\n          uVar7 = CONCAT44(uStack_7c,profrate);\n        }\n        uVar5 = uVar5 + 1;\n        if (((byte)debug_level & 0x40) != 0) {\n          printf("[gmon_out_read] frompc 0x%lx selfpc 0x%lx count %lu\n",from_pc,self_pc,uVar7);\n        }\n        cg_tally(from_pc,self_pc,uVar7);\n      }\n      local_a8 = 0;\n      if (hz == 0) {\n        iVar2 = hertz();\n        hz = (long)iVar2;\n        if (hz == 0) {\n          hz = 1;\n          pcVar9 = (char *)dcgettext("gprof","time is in ticks, not seconds\n",5);\n          fprintf(stderr,pcVar9);\n        }\n      }\nLAB_001099b1:\n      if (stdin != __stream) {\n        fclose(__stream);\n      }\n      iVar2 = gmon_file_version;\n      if (((byte)output_style & 0x20) == 0) {\n        return;\n      }\n      pcVar9 = (char *)dcgettext("gprof","File `%s\' (version %d) contains:\n",5);\n      printf(pcVar9,filename,(ulong)(uint)iVar2);\n      if (local_a4 == 1) {\n        pcVar9 = (char *)dcgettext("gprof","\t%d histogram record\n",5);\n      }\n      else {\n        pcVar9 = (char *)dcgettext("gprof","\t%d histogram records\n",5);\n      }\n      printf(pcVar9,(ulong)local_a4);\n      if (uVar5 == 1) {\n        pcVar9 = (char *)dcgettext("gprof","\t%d call-graph record\n",5);\n      }\n      else {\n        pcVar9 = (char *)dcgettext("gprof","\t%d call-graph records\n",5);\n      }\n      printf(pcVar9,(ulong)uVar5);\n      if (local_a8 == 1) {\n        pcVar9 = (char *)dcgettext("gprof","\t%d basic-block count record\n",5);\n      }\n      else {\n        pcVar9 = (char *)dcgettext("gprof","\t%d basic-block count records\n",5);\n      }\n      printf(pcVar9,(ulong)local_a8);\n      first_output = 0;\n      return;\n    }\n    pcVar9 = "%s: file \'%s\' does not appear to be in gmon.out format\n";\nLAB_0010a006:\n    pcVar12 = whoami;\n    pcVar9 = (char *)dcgettext("gprof",pcVar9,5);\n    fprintf(stderr,pcVar9,pcVar12,filename);\n                    /* WARNING: Subroutine does not return */\n    done(1);\n  }" if (parenthesized_expression "((((iVar2 == 0) && (iVar2 = gmon_io_read_vma((FILE *)__stream,&local_50), iVar2 == 0)) &&\n      (iVar2 = gmon_io_read_32((FILE *)__stream,local_48), iVar2 == 0)) &&\n     (iVar2 = gmon_io_read_32((FILE *)__stream,&version), iVar2 == 0))" ( (binary_expression "(((iVar2 == 0) && (iVar2 = gmon_io_read_vma((FILE *)__stream,&local_50), iVar2 == 0)) &&\n      (iVar2 = gmon_io_read_32((FILE *)__stream,local_48), iVar2 == 0)) &&\n     (iVar2 = gmon_io_read_32((FILE *)__stream,&version), iVar2 == 0)" (parenthesized_expression "(((iVar2 == 0) && (iVar2 = gmon_io_read_vma((FILE *)__stream,&local_50), iVar2 == 0)) &&\n      (iVar2 = gmon_io_read_32((FILE *)__stream,local_48), iVar2 == 0))" ( (binary_expression "((iVar2 == 0) && (iVar2 = gmon_io_read_vma((FILE *)__stream,&local_50), iVar2 == 0)) &&\n      (iVar2 = gmon_io_read_32((FILE *)__stream,local_48), iVar2 == 0)" (parenthesized_expression "((iVar2 == 0) && (iVar2 = gmon_io_read_vma((FILE *)__stream,&local_50), iVar2 == 0))" ( (binary_expression "(iVar2 == 0) && (iVar2 = gmon_io_read_vma((FILE *)__stream,&local_50), iVar2 == 0)" (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) && (parenthesized_expression "(iVar2 = gmon_io_read_vma((FILE *)__stream,&local_50), iVar2 == 0)" ( (comma_expression "iVar2 = gmon_io_read_vma((FILE *)__stream,&local_50), iVar2 == 0" (assignment_expression "iVar2 = gmon_io_read_vma((FILE *)__stream,&local_50)" identifier = (call_expression "gmon_io_read_vma((FILE *)__stream,&local_50)" identifier (argument_list "((FILE *)__stream,&local_50)" ( (cast_expression "(FILE *)__stream" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (pointer_expression "&local_50" & identifier) )))) , (binary_expression "iVar2 == 0" identifier == number_literal)) ))) )) && (parenthesized_expression "(iVar2 = gmon_io_read_32((FILE *)__stream,local_48), iVar2 == 0)" ( (comma_expression "iVar2 = gmon_io_read_32((FILE *)__stream,local_48), iVar2 == 0" (assignment_expression "iVar2 = gmon_io_read_32((FILE *)__stream,local_48)" identifier = (call_expression "gmon_io_read_32((FILE *)__stream,local_48)" identifier (argument_list "((FILE *)__stream,local_48)" ( (cast_expression "(FILE *)__stream" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier )))) , (binary_expression "iVar2 == 0" identifier == number_literal)) ))) )) && (parenthesized_expression "(iVar2 = gmon_io_read_32((FILE *)__stream,&version), iVar2 == 0)" ( (comma_expression "iVar2 = gmon_io_read_32((FILE *)__stream,&version), iVar2 == 0" (assignment_expression "iVar2 = gmon_io_read_32((FILE *)__stream,&version)" identifier = (call_expression "gmon_io_read_32((FILE *)__stream,&version)" identifier (argument_list "((FILE *)__stream,&version)" ( (cast_expression "(FILE *)__stream" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (pointer_expression "&version" & identifier) )))) , (binary_expression "iVar2 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n    if (version == 0x51879) {\n      iVar2 = gmon_io_read_32((FILE *)__stream,&profrate);\n      if (iVar2 != 0) goto LAB_00109f6f;\n      uVar7 = (ulong)profrate;\n      if ((histograms != (histogram *)0x0) && (uVar7 = hz, (int)profrate != hz)) {\n        pcVar9 = "%s: profiling rate incompatible with first gmon file\n";\n        goto LAB_00109f7b;\n      }\n      hz = uVar7;\n      gVar3 = gmon_get_ptr_size();\n      if (gVar3 == ptr_32bit) {\n        lVar14 = 0x20;\n        iVar2 = 0x20;\n      }\n      else {\n        lVar14 = 0x28;\n        if (gVar3 == ptr_64bit) {\n          iVar2 = 0x28;\n        }\n        else {\n          lVar14 = 0;\n          iVar2 = 0;\n        }\n      }\n    }\n    else {\n      if (file_format == FF_BSD44) goto LAB_00109cae;\n      gVar3 = gmon_get_ptr_size();\n      if (gVar3 == ptr_32bit) {\n        lVar14 = 0xc;\n        iVar2 = 0xc;\n      }\n      else {\n        lVar14 = 0x14;\n        if (gVar3 != ptr_64bit) {\n          lVar14 = 0;\n        }\n        iVar2 = 0x14;\n        if (gVar3 != ptr_64bit) {\n          iVar2 = 0;\n        }\n      }\n    }\n    iVar4 = fseek(__stream,lVar14,0);\n    if (iVar4 < 0) {\nLAB_00109ba3:\n      perror(filename);\n                    /* WARNING: Subroutine does not return */\n      done(1);\n    }\n    uVar5 = local_48[0] - iVar2;\n    uVar7 = (ulong)(long)(int)uVar5 >> 1;\n    uVar13 = (uint)uVar7;\n    if (histograms == (histogram *)0x0) {\n      num_histograms = 1;\n      phVar10 = (histogram *)xmalloc(0x20);\n      histograms = phVar10;\n      phVar10->lowpc = CONCAT71(uStack_57,tag);\n      phVar10->num_bins = uVar13;\n      sVar6 = (uVar7 & 0xffffffff) << 2;\n      phVar10->highpc = local_50;\n      hist_scale = (double)(local_50 - CONCAT71(uStack_57,tag) >> 1) / (double)(uVar7 & 0xffffffff);\n      piVar11 = (int *)xmalloc(sVar6);\n      phVar10->sample = piVar11;\n      memset(histograms->sample,0,sVar6);\n    }\n    else if (((CONCAT71(uStack_57,tag) != histograms->lowpc) || (local_50 != histograms->highpc)) ||\n            (histograms->num_bins != uVar13)) {\n      pcVar9 = "%s: incompatible with first gmon file\n";\n      goto LAB_00109f7b;\n    }\n    if (((byte)debug_level & 0x40) != 0) {\n      printf("[gmon_out_read] lowpc 0x%lx highpc 0x%lx ncnt %d\n",CONCAT71(uStack_57,tag),local_50,\n             (ulong)local_48[0]);\n      printf("[gmon_out_read] samp_bytes %d hist_num_bins %d\n",(ulong)uVar5,uVar7 & 0xffffffff);\n    }\n    if ((-1 < (int)uVar5) && (histograms->lowpc <= histograms->highpc)) {\n      local_a4 = (uint)(uVar13 != 0);\n      if (uVar13 != 0) {\n        uVar18 = 0;\n        do {\n          sVar6 = fread(raw_bin_count,2,1,__stream);\n          pcVar9 = whoami;\n          if (sVar6 != 1) {\n            pcVar12 = (char *)dcgettext("gprof","%s: unexpected EOF after reading %d/%d bins\n",5);\n            fprintf(stderr,pcVar12,pcVar9,(ulong)((int)uVar18 - 1),uVar7 & 0xffffffff);\n                    /* WARNING: Subroutine does not return */\n            done(1);\n          }\n          bVar8 = (*core_bfd->xvec->bfd_getx16)(raw_bin_count);\n          histograms->sample[uVar18] = histograms->sample[uVar18] + (int)bVar8;\n          bVar19 = uVar13 - 1 != uVar18;\n          uVar18 = uVar18 + 1;\n        } while (bVar19);\n      }\n      uVar5 = 0;\n      while ((iVar2 = gmon_io_read_vma((FILE *)__stream,&from_pc), iVar2 == 0 &&\n             (iVar2 = gmon_io_read_vma((FILE *)__stream,&self_pc), iVar2 == 0))) {\n        gVar3 = gmon_get_ptr_size();\n        if (gVar3 == ptr_32bit) {\n          iVar2 = gmon_io_read_32((FILE *)__stream,&profrate);\n          if (iVar2 != 0) break;\n          uVar7 = (ulong)profrate;\n        }\n        else {\n          if ((gVar3 != ptr_64bit) ||\n             (iVar2 = gmon_io_read_64((FILE *)__stream,(ulong *)&profrate), iVar2 != 0)) break;\n          uVar7 = CONCAT44(uStack_7c,profrate);\n        }\n        uVar5 = uVar5 + 1;\n        if (((byte)debug_level & 0x40) != 0) {\n          printf("[gmon_out_read] frompc 0x%lx selfpc 0x%lx count %lu\n",from_pc,self_pc,uVar7);\n        }\n        cg_tally(from_pc,self_pc,uVar7);\n      }\n      local_a8 = 0;\n      if (hz == 0) {\n        iVar2 = hertz();\n        hz = (long)iVar2;\n        if (hz == 0) {\n          hz = 1;\n          pcVar9 = (char *)dcgettext("gprof","time is in ticks, not seconds\n",5);\n          fprintf(stderr,pcVar9);\n        }\n      }\nLAB_001099b1:\n      if (stdin != __stream) {\n        fclose(__stream);\n      }\n      iVar2 = gmon_file_version;\n      if (((byte)output_style & 0x20) == 0) {\n        return;\n      }\n      pcVar9 = (char *)dcgettext("gprof","File `%s\' (version %d) contains:\n",5);\n      printf(pcVar9,filename,(ulong)(uint)iVar2);\n      if (local_a4 == 1) {\n        pcVar9 = (char *)dcgettext("gprof","\t%d histogram record\n",5);\n      }\n      else {\n        pcVar9 = (char *)dcgettext("gprof","\t%d histogram records\n",5);\n      }\n      printf(pcVar9,(ulong)local_a4);\n      if (uVar5 == 1) {\n        pcVar9 = (char *)dcgettext("gprof","\t%d call-graph record\n",5);\n      }\n      else {\n        pcVar9 = (char *)dcgettext("gprof","\t%d call-graph records\n",5);\n      }\n      printf(pcVar9,(ulong)uVar5);\n      if (local_a8 == 1) {\n        pcVar9 = (char *)dcgettext("gprof","\t%d basic-block count record\n",5);\n      }\n      else {\n        pcVar9 = (char *)dcgettext("gprof","\t%d basic-block count records\n",5);\n      }\n      printf(pcVar9,(ulong)local_a8);\n      first_output = 0;\n      return;\n    }\n    pcVar9 = "%s: file \'%s\' does not appear to be in gmon.out format\n";\nLAB_0010a006:\n    pcVar12 = whoami;\n    pcVar9 = (char *)dcgettext("gprof",pcVar9,5);\n    fprintf(stderr,pcVar9,pcVar12,filename);\n                    /* WARNING: Subroutine does not return */\n    done(1);\n  }" { (if_statement "if (version == 0x51879) {\n      iVar2 = gmon_io_read_32((FILE *)__stream,&profrate);\n      if (iVar2 != 0) goto LAB_00109f6f;\n      uVar7 = (ulong)profrate;\n      if ((histograms != (histogram *)0x0) && (uVar7 = hz, (int)profrate != hz)) {\n        pcVar9 = "%s: profiling rate incompatible with first gmon file\n";\n        goto LAB_00109f7b;\n      }\n      hz = uVar7;\n      gVar3 = gmon_get_ptr_size();\n      if (gVar3 == ptr_32bit) {\n        lVar14 = 0x20;\n        iVar2 = 0x20;\n      }\n      else {\n        lVar14 = 0x28;\n        if (gVar3 == ptr_64bit) {\n          iVar2 = 0x28;\n        }\n        else {\n          lVar14 = 0;\n          iVar2 = 0;\n        }\n      }\n    }\n    else {\n      if (file_format == FF_BSD44) goto LAB_00109cae;\n      gVar3 = gmon_get_ptr_size();\n      if (gVar3 == ptr_32bit) {\n        lVar14 = 0xc;\n        iVar2 = 0xc;\n      }\n      else {\n        lVar14 = 0x14;\n        if (gVar3 != ptr_64bit) {\n          lVar14 = 0;\n        }\n        iVar2 = 0x14;\n        if (gVar3 != ptr_64bit) {\n          iVar2 = 0;\n        }\n      }\n    }" if (parenthesized_expression "(version == 0x51879)" ( (binary_expression "version == 0x51879" identifier == number_literal) )) (compound_statement "{\n      iVar2 = gmon_io_read_32((FILE *)__stream,&profrate);\n      if (iVar2 != 0) goto LAB_00109f6f;\n      uVar7 = (ulong)profrate;\n      if ((histograms != (histogram *)0x0) && (uVar7 = hz, (int)profrate != hz)) {\n        pcVar9 = "%s: profiling rate incompatible with first gmon file\n";\n        goto LAB_00109f7b;\n      }\n      hz = uVar7;\n      gVar3 = gmon_get_ptr_size();\n      if (gVar3 == ptr_32bit) {\n        lVar14 = 0x20;\n        iVar2 = 0x20;\n      }\n      else {\n        lVar14 = 0x28;\n        if (gVar3 == ptr_64bit) {\n          iVar2 = 0x28;\n        }\n        else {\n          lVar14 = 0;\n          iVar2 = 0;\n        }\n      }\n    }" { (expression_statement "iVar2 = gmon_io_read_32((FILE *)__stream,&profrate);" (assignment_expression "iVar2 = gmon_io_read_32((FILE *)__stream,&profrate)" identifier = (call_expression "gmon_io_read_32((FILE *)__stream,&profrate)" identifier (argument_list "((FILE *)__stream,&profrate)" ( (cast_expression "(FILE *)__stream" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (pointer_expression "&profrate" & identifier) )))) ;) (if_statement "if (iVar2 != 0) goto LAB_00109f6f;" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00109f6f;" goto statement_identifier ;)) (expression_statement "uVar7 = (ulong)profrate;" (assignment_expression "uVar7 = (ulong)profrate" identifier = (cast_expression "(ulong)profrate" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (if_statement "if ((histograms != (histogram *)0x0) && (uVar7 = hz, (int)profrate != hz)) {\n        pcVar9 = "%s: profiling rate incompatible with first gmon file\n";\n        goto LAB_00109f7b;\n      }" if (parenthesized_expression "((histograms != (histogram *)0x0) && (uVar7 = hz, (int)profrate != hz))" ( (binary_expression "(histograms != (histogram *)0x0) && (uVar7 = hz, (int)profrate != hz)" (parenthesized_expression "(histograms != (histogram *)0x0)" ( (binary_expression "histograms != (histogram *)0x0" identifier != (cast_expression "(histogram *)0x0" ( (type_descriptor "histogram *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(uVar7 = hz, (int)profrate != hz)" ( (comma_expression "uVar7 = hz, (int)profrate != hz" (assignment_expression "uVar7 = hz" identifier = identifier) , (binary_expression "(int)profrate != hz" (cast_expression "(int)profrate" ( (type_descriptor "int" primitive_type) ) identifier) != identifier)) ))) )) (compound_statement "{\n        pcVar9 = "%s: profiling rate incompatible with first gmon file\n";\n        goto LAB_00109f7b;\n      }" { (expression_statement "pcVar9 = "%s: profiling rate incompatible with first gmon file\n";" (assignment_expression "pcVar9 = "%s: profiling rate incompatible with first gmon file\n"" identifier = (string_literal ""%s: profiling rate incompatible with first gmon file\n"" " string_content escape_sequence ")) ;) (goto_statement "goto LAB_00109f7b;" goto statement_identifier ;) })) (expression_statement "hz = uVar7;" (assignment_expression "hz = uVar7" identifier = identifier) ;) (expression_statement "gVar3 = gmon_get_ptr_size();" (assignment_expression "gVar3 = gmon_get_ptr_size()" identifier = (call_expression "gmon_get_ptr_size()" identifier (argument_list "()" ( )))) ;) (if_statement "if (gVar3 == ptr_32bit) {\n        lVar14 = 0x20;\n        iVar2 = 0x20;\n      }\n      else {\n        lVar14 = 0x28;\n        if (gVar3 == ptr_64bit) {\n          iVar2 = 0x28;\n        }\n        else {\n          lVar14 = 0;\n          iVar2 = 0;\n        }\n      }" if (parenthesized_expression "(gVar3 == ptr_32bit)" ( (binary_expression "gVar3 == ptr_32bit" identifier == identifier) )) (compound_statement "{\n        lVar14 = 0x20;\n        iVar2 = 0x20;\n      }" { (expression_statement "lVar14 = 0x20;" (assignment_expression "lVar14 = 0x20" identifier = number_literal) ;) (expression_statement "iVar2 = 0x20;" (assignment_expression "iVar2 = 0x20" identifier = number_literal) ;) }) (else_clause "else {\n        lVar14 = 0x28;\n        if (gVar3 == ptr_64bit) {\n          iVar2 = 0x28;\n        }\n        else {\n          lVar14 = 0;\n          iVar2 = 0;\n        }\n      }" else (compound_statement "{\n        lVar14 = 0x28;\n        if (gVar3 == ptr_64bit) {\n          iVar2 = 0x28;\n        }\n        else {\n          lVar14 = 0;\n          iVar2 = 0;\n        }\n      }" { (expression_statement "lVar14 = 0x28;" (assignment_expression "lVar14 = 0x28" identifier = number_literal) ;) (if_statement "if (gVar3 == ptr_64bit) {\n          iVar2 = 0x28;\n        }\n        else {\n          lVar14 = 0;\n          iVar2 = 0;\n        }" if (parenthesized_expression "(gVar3 == ptr_64bit)" ( (binary_expression "gVar3 == ptr_64bit" identifier == identifier) )) (compound_statement "{\n          iVar2 = 0x28;\n        }" { (expression_statement "iVar2 = 0x28;" (assignment_expression "iVar2 = 0x28" identifier = number_literal) ;) }) (else_clause "else {\n          lVar14 = 0;\n          iVar2 = 0;\n        }" else (compound_statement "{\n          lVar14 = 0;\n          iVar2 = 0;\n        }" { (expression_statement "lVar14 = 0;" (assignment_expression "lVar14 = 0" identifier = number_literal) ;) (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) }))) }))) }) (else_clause "else {\n      if (file_format == FF_BSD44) goto LAB_00109cae;\n      gVar3 = gmon_get_ptr_size();\n      if (gVar3 == ptr_32bit) {\n        lVar14 = 0xc;\n        iVar2 = 0xc;\n      }\n      else {\n        lVar14 = 0x14;\n        if (gVar3 != ptr_64bit) {\n          lVar14 = 0;\n        }\n        iVar2 = 0x14;\n        if (gVar3 != ptr_64bit) {\n          iVar2 = 0;\n        }\n      }\n    }" else (compound_statement "{\n      if (file_format == FF_BSD44) goto LAB_00109cae;\n      gVar3 = gmon_get_ptr_size();\n      if (gVar3 == ptr_32bit) {\n        lVar14 = 0xc;\n        iVar2 = 0xc;\n      }\n      else {\n        lVar14 = 0x14;\n        if (gVar3 != ptr_64bit) {\n          lVar14 = 0;\n        }\n        iVar2 = 0x14;\n        if (gVar3 != ptr_64bit) {\n          iVar2 = 0;\n        }\n      }\n    }" { (if_statement "if (file_format == FF_BSD44) goto LAB_00109cae;" if (parenthesized_expression "(file_format == FF_BSD44)" ( (binary_expression "file_format == FF_BSD44" identifier == identifier) )) (goto_statement "goto LAB_00109cae;" goto statement_identifier ;)) (expression_statement "gVar3 = gmon_get_ptr_size();" (assignment_expression "gVar3 = gmon_get_ptr_size()" identifier = (call_expression "gmon_get_ptr_size()" identifier (argument_list "()" ( )))) ;) (if_statement "if (gVar3 == ptr_32bit) {\n        lVar14 = 0xc;\n        iVar2 = 0xc;\n      }\n      else {\n        lVar14 = 0x14;\n        if (gVar3 != ptr_64bit) {\n          lVar14 = 0;\n        }\n        iVar2 = 0x14;\n        if (gVar3 != ptr_64bit) {\n          iVar2 = 0;\n        }\n      }" if (parenthesized_expression "(gVar3 == ptr_32bit)" ( (binary_expression "gVar3 == ptr_32bit" identifier == identifier) )) (compound_statement "{\n        lVar14 = 0xc;\n        iVar2 = 0xc;\n      }" { (expression_statement "lVar14 = 0xc;" (assignment_expression "lVar14 = 0xc" identifier = number_literal) ;) (expression_statement "iVar2 = 0xc;" (assignment_expression "iVar2 = 0xc" identifier = number_literal) ;) }) (else_clause "else {\n        lVar14 = 0x14;\n        if (gVar3 != ptr_64bit) {\n          lVar14 = 0;\n        }\n        iVar2 = 0x14;\n        if (gVar3 != ptr_64bit) {\n          iVar2 = 0;\n        }\n      }" else (compound_statement "{\n        lVar14 = 0x14;\n        if (gVar3 != ptr_64bit) {\n          lVar14 = 0;\n        }\n        iVar2 = 0x14;\n        if (gVar3 != ptr_64bit) {\n          iVar2 = 0;\n        }\n      }" { (expression_statement "lVar14 = 0x14;" (assignment_expression "lVar14 = 0x14" identifier = number_literal) ;) (if_statement "if (gVar3 != ptr_64bit) {\n          lVar14 = 0;\n        }" if (parenthesized_expression "(gVar3 != ptr_64bit)" ( (binary_expression "gVar3 != ptr_64bit" identifier != identifier) )) (compound_statement "{\n          lVar14 = 0;\n        }" { (expression_statement "lVar14 = 0;" (assignment_expression "lVar14 = 0" identifier = number_literal) ;) })) (expression_statement "iVar2 = 0x14;" (assignment_expression "iVar2 = 0x14" identifier = number_literal) ;) (if_statement "if (gVar3 != ptr_64bit) {\n          iVar2 = 0;\n        }" if (parenthesized_expression "(gVar3 != ptr_64bit)" ( (binary_expression "gVar3 != ptr_64bit" identifier != identifier) )) (compound_statement "{\n          iVar2 = 0;\n        }" { (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) })) }))) }))) (expression_statement "iVar4 = fseek(__stream,lVar14,0);" (assignment_expression "iVar4 = fseek(__stream,lVar14,0)" identifier = (call_expression "fseek(__stream,lVar14,0)" identifier (argument_list "(__stream,lVar14,0)" ( identifier , identifier , number_literal )))) ;) (if_statement "if (iVar4 < 0) {\nLAB_00109ba3:\n      perror(filename);\n                    /* WARNING: Subroutine does not return */\n      done(1);\n    }" if (parenthesized_expression "(iVar4 < 0)" ( (binary_expression "iVar4 < 0" identifier < number_literal) )) (compound_statement "{\nLAB_00109ba3:\n      perror(filename);\n                    /* WARNING: Subroutine does not return */\n      done(1);\n    }" { (labeled_statement "LAB_00109ba3:\n      perror(filename);" statement_identifier : (expression_statement "perror(filename);" (call_expression "perror(filename)" identifier (argument_list "(filename)" ( identifier ))) ;)) comment (expression_statement "done(1);" (call_expression "done(1)" identifier (argument_list "(1)" ( number_literal ))) ;) })) (expression_statement "uVar5 = local_48[0] - iVar2;" (assignment_expression "uVar5 = local_48[0] - iVar2" identifier = (binary_expression "local_48[0] - iVar2" (subscript_expression "local_48[0]" identifier [ number_literal ]) - identifier)) ;) (expression_statement "uVar7 = (ulong)(long)(int)uVar5 >> 1;" (assignment_expression "uVar7 = (ulong)(long)(int)uVar5 >> 1" identifier = (binary_expression "(ulong)(long)(int)uVar5 >> 1" (cast_expression "(ulong)(long)(int)uVar5" ( (type_descriptor "ulong" type_identifier) ) (cast_expression "(long)(int)uVar5" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)uVar5" ( (type_descriptor "int" primitive_type) ) identifier))) >> number_literal)) ;) (expression_statement "uVar13 = (uint)uVar7;" (assignment_expression "uVar13 = (uint)uVar7" identifier = (cast_expression "(uint)uVar7" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (histograms == (histogram *)0x0) {\n      num_histograms = 1;\n      phVar10 = (histogram *)xmalloc(0x20);\n      histograms = phVar10;\n      phVar10->lowpc = CONCAT71(uStack_57,tag);\n      phVar10->num_bins = uVar13;\n      sVar6 = (uVar7 & 0xffffffff) << 2;\n      phVar10->highpc = local_50;\n      hist_scale = (double)(local_50 - CONCAT71(uStack_57,tag) >> 1) / (double)(uVar7 & 0xffffffff);\n      piVar11 = (int *)xmalloc(sVar6);\n      phVar10->sample = piVar11;\n      memset(histograms->sample,0,sVar6);\n    }\n    else if (((CONCAT71(uStack_57,tag) != histograms->lowpc) || (local_50 != histograms->highpc)) ||\n            (histograms->num_bins != uVar13)) {\n      pcVar9 = "%s: incompatible with first gmon file\n";\n      goto LAB_00109f7b;\n    }" if (parenthesized_expression "(histograms == (histogram *)0x0)" ( (binary_expression "histograms == (histogram *)0x0" identifier == (cast_expression "(histogram *)0x0" ( (type_descriptor "histogram *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      num_histograms = 1;\n      phVar10 = (histogram *)xmalloc(0x20);\n      histograms = phVar10;\n      phVar10->lowpc = CONCAT71(uStack_57,tag);\n      phVar10->num_bins = uVar13;\n      sVar6 = (uVar7 & 0xffffffff) << 2;\n      phVar10->highpc = local_50;\n      hist_scale = (double)(local_50 - CONCAT71(uStack_57,tag) >> 1) / (double)(uVar7 & 0xffffffff);\n      piVar11 = (int *)xmalloc(sVar6);\n      phVar10->sample = piVar11;\n      memset(histograms->sample,0,sVar6);\n    }" { (expression_statement "num_histograms = 1;" (assignment_expression "num_histograms = 1" identifier = number_literal) ;) (expression_statement "phVar10 = (histogram *)xmalloc(0x20);" (assignment_expression "phVar10 = (histogram *)xmalloc(0x20)" identifier = (cast_expression "(histogram *)xmalloc(0x20)" ( (type_descriptor "histogram *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(0x20)" identifier (argument_list "(0x20)" ( number_literal ))))) ;) (expression_statement "histograms = phVar10;" (assignment_expression "histograms = phVar10" identifier = identifier) ;) (expression_statement "phVar10->lowpc = CONCAT71(uStack_57,tag);" (assignment_expression "phVar10->lowpc = CONCAT71(uStack_57,tag)" (field_expression "phVar10->lowpc" identifier -> field_identifier) = (call_expression "CONCAT71(uStack_57,tag)" identifier (argument_list "(uStack_57,tag)" ( identifier , identifier )))) ;) (expression_statement "phVar10->num_bins = uVar13;" (assignment_expression "phVar10->num_bins = uVar13" (field_expression "phVar10->num_bins" identifier -> field_identifier) = identifier) ;) (expression_statement "sVar6 = (uVar7 & 0xffffffff) << 2;" (assignment_expression "sVar6 = (uVar7 & 0xffffffff) << 2" identifier = (binary_expression "(uVar7 & 0xffffffff) << 2" (parenthesized_expression "(uVar7 & 0xffffffff)" ( (binary_expression "uVar7 & 0xffffffff" identifier & number_literal) )) << number_literal)) ;) (expression_statement "phVar10->highpc = local_50;" (assignment_expression "phVar10->highpc = local_50" (field_expression "phVar10->highpc" identifier -> field_identifier) = identifier) ;) (expression_statement "hist_scale = (double)(local_50 - CONCAT71(uStack_57,tag) >> 1) / (double)(uVar7 & 0xffffffff);" (assignment_expression "hist_scale = (double)(local_50 - CONCAT71(uStack_57,tag) >> 1) / (double)(uVar7 & 0xffffffff)" identifier = (binary_expression "(double)(local_50 - CONCAT71(uStack_57,tag) >> 1) / (double)(uVar7 & 0xffffffff)" (cast_expression "(double)(local_50 - CONCAT71(uStack_57,tag) >> 1)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "(local_50 - CONCAT71(uStack_57,tag) >> 1)" ( (binary_expression "local_50 - CONCAT71(uStack_57,tag) >> 1" (binary_expression "local_50 - CONCAT71(uStack_57,tag)" identifier - (call_expression "CONCAT71(uStack_57,tag)" identifier (argument_list "(uStack_57,tag)" ( identifier , identifier )))) >> number_literal) ))) / (cast_expression "(double)(uVar7 & 0xffffffff)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "(uVar7 & 0xffffffff)" ( (binary_expression "uVar7 & 0xffffffff" identifier & number_literal) ))))) ;) (expression_statement "piVar11 = (int *)xmalloc(sVar6);" (assignment_expression "piVar11 = (int *)xmalloc(sVar6)" identifier = (cast_expression "(int *)xmalloc(sVar6)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar6)" identifier (argument_list "(sVar6)" ( identifier ))))) ;) (expression_statement "phVar10->sample = piVar11;" (assignment_expression "phVar10->sample = piVar11" (field_expression "phVar10->sample" identifier -> field_identifier) = identifier) ;) (expression_statement "memset(histograms->sample,0,sVar6);" (call_expression "memset(histograms->sample,0,sVar6)" identifier (argument_list "(histograms->sample,0,sVar6)" ( (field_expression "histograms->sample" identifier -> field_identifier) , number_literal , identifier ))) ;) }) (else_clause "else if (((CONCAT71(uStack_57,tag) != histograms->lowpc) || (local_50 != histograms->highpc)) ||\n            (histograms->num_bins != uVar13)) {\n      pcVar9 = "%s: incompatible with first gmon file\n";\n      goto LAB_00109f7b;\n    }" else (if_statement "if (((CONCAT71(uStack_57,tag) != histograms->lowpc) || (local_50 != histograms->highpc)) ||\n            (histograms->num_bins != uVar13)) {\n      pcVar9 = "%s: incompatible with first gmon file\n";\n      goto LAB_00109f7b;\n    }" if (parenthesized_expression "(((CONCAT71(uStack_57,tag) != histograms->lowpc) || (local_50 != histograms->highpc)) ||\n            (histograms->num_bins != uVar13))" ( (binary_expression "((CONCAT71(uStack_57,tag) != histograms->lowpc) || (local_50 != histograms->highpc)) ||\n            (histograms->num_bins != uVar13)" (parenthesized_expression "((CONCAT71(uStack_57,tag) != histograms->lowpc) || (local_50 != histograms->highpc))" ( (binary_expression "(CONCAT71(uStack_57,tag) != histograms->lowpc) || (local_50 != histograms->highpc)" (parenthesized_expression "(CONCAT71(uStack_57,tag) != histograms->lowpc)" ( (binary_expression "CONCAT71(uStack_57,tag) != histograms->lowpc" (call_expression "CONCAT71(uStack_57,tag)" identifier (argument_list "(uStack_57,tag)" ( identifier , identifier ))) != (field_expression "histograms->lowpc" identifier -> field_identifier)) )) || (parenthesized_expression "(local_50 != histograms->highpc)" ( (binary_expression "local_50 != histograms->highpc" identifier != (field_expression "histograms->highpc" identifier -> field_identifier)) ))) )) || (parenthesized_expression "(histograms->num_bins != uVar13)" ( (binary_expression "histograms->num_bins != uVar13" (field_expression "histograms->num_bins" identifier -> field_identifier) != identifier) ))) )) (compound_statement "{\n      pcVar9 = "%s: incompatible with first gmon file\n";\n      goto LAB_00109f7b;\n    }" { (expression_statement "pcVar9 = "%s: incompatible with first gmon file\n";" (assignment_expression "pcVar9 = "%s: incompatible with first gmon file\n"" identifier = (string_literal ""%s: incompatible with first gmon file\n"" " string_content escape_sequence ")) ;) (goto_statement "goto LAB_00109f7b;" goto statement_identifier ;) })))) (if_statement "if (((byte)debug_level & 0x40) != 0) {\n      printf("[gmon_out_read] lowpc 0x%lx highpc 0x%lx ncnt %d\n",CONCAT71(uStack_57,tag),local_50,\n             (ulong)local_48[0]);\n      printf("[gmon_out_read] samp_bytes %d hist_num_bins %d\n",(ulong)uVar5,uVar7 & 0xffffffff);\n    }" if (parenthesized_expression "(((byte)debug_level & 0x40) != 0)" ( (binary_expression "((byte)debug_level & 0x40) != 0" (parenthesized_expression "((byte)debug_level & 0x40)" ( (binary_expression "(byte)debug_level & 0x40" (cast_expression "(byte)debug_level" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n      printf("[gmon_out_read] lowpc 0x%lx highpc 0x%lx ncnt %d\n",CONCAT71(uStack_57,tag),local_50,\n             (ulong)local_48[0]);\n      printf("[gmon_out_read] samp_bytes %d hist_num_bins %d\n",(ulong)uVar5,uVar7 & 0xffffffff);\n    }" { (expression_statement "printf("[gmon_out_read] lowpc 0x%lx highpc 0x%lx ncnt %d\n",CONCAT71(uStack_57,tag),local_50,\n             (ulong)local_48[0]);" (call_expression "printf("[gmon_out_read] lowpc 0x%lx highpc 0x%lx ncnt %d\n",CONCAT71(uStack_57,tag),local_50,\n             (ulong)local_48[0])" identifier (argument_list "("[gmon_out_read] lowpc 0x%lx highpc 0x%lx ncnt %d\n",CONCAT71(uStack_57,tag),local_50,\n             (ulong)local_48[0])" ( (string_literal ""[gmon_out_read] lowpc 0x%lx highpc 0x%lx ncnt %d\n"" " string_content escape_sequence ") , (call_expression "CONCAT71(uStack_57,tag)" identifier (argument_list "(uStack_57,tag)" ( identifier , identifier ))) , identifier , (cast_expression "(ulong)local_48[0]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "local_48[0]" identifier [ number_literal ])) ))) ;) (expression_statement "printf("[gmon_out_read] samp_bytes %d hist_num_bins %d\n",(ulong)uVar5,uVar7 & 0xffffffff);" (call_expression "printf("[gmon_out_read] samp_bytes %d hist_num_bins %d\n",(ulong)uVar5,uVar7 & 0xffffffff)" identifier (argument_list "("[gmon_out_read] samp_bytes %d hist_num_bins %d\n",(ulong)uVar5,uVar7 & 0xffffffff)" ( (string_literal ""[gmon_out_read] samp_bytes %d hist_num_bins %d\n"" " string_content escape_sequence ") , (cast_expression "(ulong)uVar5" ( (type_descriptor "ulong" type_identifier) ) identifier) , (binary_expression "uVar7 & 0xffffffff" identifier & number_literal) ))) ;) })) (if_statement "if ((-1 < (int)uVar5) && (histograms->lowpc <= histograms->highpc)) {\n      local_a4 = (uint)(uVar13 != 0);\n      if (uVar13 != 0) {\n        uVar18 = 0;\n        do {\n          sVar6 = fread(raw_bin_count,2,1,__stream);\n          pcVar9 = whoami;\n          if (sVar6 != 1) {\n            pcVar12 = (char *)dcgettext("gprof","%s: unexpected EOF after reading %d/%d bins\n",5);\n            fprintf(stderr,pcVar12,pcVar9,(ulong)((int)uVar18 - 1),uVar7 & 0xffffffff);\n                    /* WARNING: Subroutine does not return */\n            done(1);\n          }\n          bVar8 = (*core_bfd->xvec->bfd_getx16)(raw_bin_count);\n          histograms->sample[uVar18] = histograms->sample[uVar18] + (int)bVar8;\n          bVar19 = uVar13 - 1 != uVar18;\n          uVar18 = uVar18 + 1;\n        } while (bVar19);\n      }\n      uVar5 = 0;\n      while ((iVar2 = gmon_io_read_vma((FILE *)__stream,&from_pc), iVar2 == 0 &&\n             (iVar2 = gmon_io_read_vma((FILE *)__stream,&self_pc), iVar2 == 0))) {\n        gVar3 = gmon_get_ptr_size();\n        if (gVar3 == ptr_32bit) {\n          iVar2 = gmon_io_read_32((FILE *)__stream,&profrate);\n          if (iVar2 != 0) break;\n          uVar7 = (ulong)profrate;\n        }\n        else {\n          if ((gVar3 != ptr_64bit) ||\n             (iVar2 = gmon_io_read_64((FILE *)__stream,(ulong *)&profrate), iVar2 != 0)) break;\n          uVar7 = CONCAT44(uStack_7c,profrate);\n        }\n        uVar5 = uVar5 + 1;\n        if (((byte)debug_level & 0x40) != 0) {\n          printf("[gmon_out_read] frompc 0x%lx selfpc 0x%lx count %lu\n",from_pc,self_pc,uVar7);\n        }\n        cg_tally(from_pc,self_pc,uVar7);\n      }\n      local_a8 = 0;\n      if (hz == 0) {\n        iVar2 = hertz();\n        hz = (long)iVar2;\n        if (hz == 0) {\n          hz = 1;\n          pcVar9 = (char *)dcgettext("gprof","time is in ticks, not seconds\n",5);\n          fprintf(stderr,pcVar9);\n        }\n      }\nLAB_001099b1:\n      if (stdin != __stream) {\n        fclose(__stream);\n      }\n      iVar2 = gmon_file_version;\n      if (((byte)output_style & 0x20) == 0) {\n        return;\n      }\n      pcVar9 = (char *)dcgettext("gprof","File `%s\' (version %d) contains:\n",5);\n      printf(pcVar9,filename,(ulong)(uint)iVar2);\n      if (local_a4 == 1) {\n        pcVar9 = (char *)dcgettext("gprof","\t%d histogram record\n",5);\n      }\n      else {\n        pcVar9 = (char *)dcgettext("gprof","\t%d histogram records\n",5);\n      }\n      printf(pcVar9,(ulong)local_a4);\n      if (uVar5 == 1) {\n        pcVar9 = (char *)dcgettext("gprof","\t%d call-graph record\n",5);\n      }\n      else {\n        pcVar9 = (char *)dcgettext("gprof","\t%d call-graph records\n",5);\n      }\n      printf(pcVar9,(ulong)uVar5);\n      if (local_a8 == 1) {\n        pcVar9 = (char *)dcgettext("gprof","\t%d basic-block count record\n",5);\n      }\n      else {\n        pcVar9 = (char *)dcgettext("gprof","\t%d basic-block count records\n",5);\n      }\n      printf(pcVar9,(ulong)local_a8);\n      first_output = 0;\n      return;\n    }" if (parenthesized_expression "((-1 < (int)uVar5) && (histograms->lowpc <= histograms->highpc))" ( (binary_expression "(-1 < (int)uVar5) && (histograms->lowpc <= histograms->highpc)" (parenthesized_expression "(-1 < (int)uVar5)" ( (binary_expression "-1 < (int)uVar5" number_literal < (cast_expression "(int)uVar5" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "(histograms->lowpc <= histograms->highpc)" ( (binary_expression "histograms->lowpc <= histograms->highpc" (field_expression "histograms->lowpc" identifier -> field_identifier) <= (field_expression "histograms->highpc" identifier -> field_identifier)) ))) )) (compound_statement "{\n      local_a4 = (uint)(uVar13 != 0);\n      if (uVar13 != 0) {\n        uVar18 = 0;\n        do {\n          sVar6 = fread(raw_bin_count,2,1,__stream);\n          pcVar9 = whoami;\n          if (sVar6 != 1) {\n            pcVar12 = (char *)dcgettext("gprof","%s: unexpected EOF after reading %d/%d bins\n",5);\n            fprintf(stderr,pcVar12,pcVar9,(ulong)((int)uVar18 - 1),uVar7 & 0xffffffff);\n                    /* WARNING: Subroutine does not return */\n            done(1);\n          }\n          bVar8 = (*core_bfd->xvec->bfd_getx16)(raw_bin_count);\n          histograms->sample[uVar18] = histograms->sample[uVar18] + (int)bVar8;\n          bVar19 = uVar13 - 1 != uVar18;\n          uVar18 = uVar18 + 1;\n        } while (bVar19);\n      }\n      uVar5 = 0;\n      while ((iVar2 = gmon_io_read_vma((FILE *)__stream,&from_pc), iVar2 == 0 &&\n             (iVar2 = gmon_io_read_vma((FILE *)__stream,&self_pc), iVar2 == 0))) {\n        gVar3 = gmon_get_ptr_size();\n        if (gVar3 == ptr_32bit) {\n          iVar2 = gmon_io_read_32((FILE *)__stream,&profrate);\n          if (iVar2 != 0) break;\n          uVar7 = (ulong)profrate;\n        }\n        else {\n          if ((gVar3 != ptr_64bit) ||\n             (iVar2 = gmon_io_read_64((FILE *)__stream,(ulong *)&profrate), iVar2 != 0)) break;\n          uVar7 = CONCAT44(uStack_7c,profrate);\n        }\n        uVar5 = uVar5 + 1;\n        if (((byte)debug_level & 0x40) != 0) {\n          printf("[gmon_out_read] frompc 0x%lx selfpc 0x%lx count %lu\n",from_pc,self_pc,uVar7);\n        }\n        cg_tally(from_pc,self_pc,uVar7);\n      }\n      local_a8 = 0;\n      if (hz == 0) {\n        iVar2 = hertz();\n        hz = (long)iVar2;\n        if (hz == 0) {\n          hz = 1;\n          pcVar9 = (char *)dcgettext("gprof","time is in ticks, not seconds\n",5);\n          fprintf(stderr,pcVar9);\n        }\n      }\nLAB_001099b1:\n      if (stdin != __stream) {\n        fclose(__stream);\n      }\n      iVar2 = gmon_file_version;\n      if (((byte)output_style & 0x20) == 0) {\n        return;\n      }\n      pcVar9 = (char *)dcgettext("gprof","File `%s\' (version %d) contains:\n",5);\n      printf(pcVar9,filename,(ulong)(uint)iVar2);\n      if (local_a4 == 1) {\n        pcVar9 = (char *)dcgettext("gprof","\t%d histogram record\n",5);\n      }\n      else {\n        pcVar9 = (char *)dcgettext("gprof","\t%d histogram records\n",5);\n      }\n      printf(pcVar9,(ulong)local_a4);\n      if (uVar5 == 1) {\n        pcVar9 = (char *)dcgettext("gprof","\t%d call-graph record\n",5);\n      }\n      else {\n        pcVar9 = (char *)dcgettext("gprof","\t%d call-graph records\n",5);\n      }\n      printf(pcVar9,(ulong)uVar5);\n      if (local_a8 == 1) {\n        pcVar9 = (char *)dcgettext("gprof","\t%d basic-block count record\n",5);\n      }\n      else {\n        pcVar9 = (char *)dcgettext("gprof","\t%d basic-block count records\n",5);\n      }\n      printf(pcVar9,(ulong)local_a8);\n      first_output = 0;\n      return;\n    }" { (expression_statement "local_a4 = (uint)(uVar13 != 0);" (assignment_expression "local_a4 = (uint)(uVar13 != 0)" identifier = (call_expression "(uint)(uVar13 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar13 != 0)" ( (binary_expression "uVar13 != 0" identifier != number_literal) )))) ;) (if_statement "if (uVar13 != 0) {\n        uVar18 = 0;\n        do {\n          sVar6 = fread(raw_bin_count,2,1,__stream);\n          pcVar9 = whoami;\n          if (sVar6 != 1) {\n            pcVar12 = (char *)dcgettext("gprof","%s: unexpected EOF after reading %d/%d bins\n",5);\n            fprintf(stderr,pcVar12,pcVar9,(ulong)((int)uVar18 - 1),uVar7 & 0xffffffff);\n                    /* WARNING: Subroutine does not return */\n            done(1);\n          }\n          bVar8 = (*core_bfd->xvec->bfd_getx16)(raw_bin_count);\n          histograms->sample[uVar18] = histograms->sample[uVar18] + (int)bVar8;\n          bVar19 = uVar13 - 1 != uVar18;\n          uVar18 = uVar18 + 1;\n        } while (bVar19);\n      }" if (parenthesized_expression "(uVar13 != 0)" ( (binary_expression "uVar13 != 0" identifier != number_literal) )) (compound_statement "{\n        uVar18 = 0;\n        do {\n          sVar6 = fread(raw_bin_count,2,1,__stream);\n          pcVar9 = whoami;\n          if (sVar6 != 1) {\n            pcVar12 = (char *)dcgettext("gprof","%s: unexpected EOF after reading %d/%d bins\n",5);\n            fprintf(stderr,pcVar12,pcVar9,(ulong)((int)uVar18 - 1),uVar7 & 0xffffffff);\n                    /* WARNING: Subroutine does not return */\n            done(1);\n          }\n          bVar8 = (*core_bfd->xvec->bfd_getx16)(raw_bin_count);\n          histograms->sample[uVar18] = histograms->sample[uVar18] + (int)bVar8;\n          bVar19 = uVar13 - 1 != uVar18;\n          uVar18 = uVar18 + 1;\n        } while (bVar19);\n      }" { (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" identifier = number_literal) ;) (do_statement "do {\n          sVar6 = fread(raw_bin_count,2,1,__stream);\n          pcVar9 = whoami;\n          if (sVar6 != 1) {\n            pcVar12 = (char *)dcgettext("gprof","%s: unexpected EOF after reading %d/%d bins\n",5);\n            fprintf(stderr,pcVar12,pcVar9,(ulong)((int)uVar18 - 1),uVar7 & 0xffffffff);\n                    /* WARNING: Subroutine does not return */\n            done(1);\n          }\n          bVar8 = (*core_bfd->xvec->bfd_getx16)(raw_bin_count);\n          histograms->sample[uVar18] = histograms->sample[uVar18] + (int)bVar8;\n          bVar19 = uVar13 - 1 != uVar18;\n          uVar18 = uVar18 + 1;\n        } while (bVar19);" do (compound_statement "{\n          sVar6 = fread(raw_bin_count,2,1,__stream);\n          pcVar9 = whoami;\n          if (sVar6 != 1) {\n            pcVar12 = (char *)dcgettext("gprof","%s: unexpected EOF after reading %d/%d bins\n",5);\n            fprintf(stderr,pcVar12,pcVar9,(ulong)((int)uVar18 - 1),uVar7 & 0xffffffff);\n                    /* WARNING: Subroutine does not return */\n            done(1);\n          }\n          bVar8 = (*core_bfd->xvec->bfd_getx16)(raw_bin_count);\n          histograms->sample[uVar18] = histograms->sample[uVar18] + (int)bVar8;\n          bVar19 = uVar13 - 1 != uVar18;\n          uVar18 = uVar18 + 1;\n        }" { (expression_statement "sVar6 = fread(raw_bin_count,2,1,__stream);" (assignment_expression "sVar6 = fread(raw_bin_count,2,1,__stream)" identifier = (call_expression "fread(raw_bin_count,2,1,__stream)" identifier (argument_list "(raw_bin_count,2,1,__stream)" ( identifier , number_literal , number_literal , identifier )))) ;) (expression_statement "pcVar9 = whoami;" (assignment_expression "pcVar9 = whoami" identifier = identifier) ;) (if_statement "if (sVar6 != 1) {\n            pcVar12 = (char *)dcgettext("gprof","%s: unexpected EOF after reading %d/%d bins\n",5);\n            fprintf(stderr,pcVar12,pcVar9,(ulong)((int)uVar18 - 1),uVar7 & 0xffffffff);\n                    /* WARNING: Subroutine does not return */\n            done(1);\n          }" if (parenthesized_expression "(sVar6 != 1)" ( (binary_expression "sVar6 != 1" identifier != number_literal) )) (compound_statement "{\n            pcVar12 = (char *)dcgettext("gprof","%s: unexpected EOF after reading %d/%d bins\n",5);\n            fprintf(stderr,pcVar12,pcVar9,(ulong)((int)uVar18 - 1),uVar7 & 0xffffffff);\n                    /* WARNING: Subroutine does not return */\n            done(1);\n          }" { (expression_statement "pcVar12 = (char *)dcgettext("gprof","%s: unexpected EOF after reading %d/%d bins\n",5);" (assignment_expression "pcVar12 = (char *)dcgettext("gprof","%s: unexpected EOF after reading %d/%d bins\n",5)" identifier = (cast_expression "(char *)dcgettext("gprof","%s: unexpected EOF after reading %d/%d bins\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext("gprof","%s: unexpected EOF after reading %d/%d bins\n",5)" identifier (argument_list "("gprof","%s: unexpected EOF after reading %d/%d bins\n",5)" ( (string_literal ""gprof"" " string_content ") , (string_literal ""%s: unexpected EOF after reading %d/%d bins\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "fprintf(stderr,pcVar12,pcVar9,(ulong)((int)uVar18 - 1),uVar7 & 0xffffffff);" (call_expression "fprintf(stderr,pcVar12,pcVar9,(ulong)((int)uVar18 - 1),uVar7 & 0xffffffff)" identifier (argument_list "(stderr,pcVar12,pcVar9,(ulong)((int)uVar18 - 1),uVar7 & 0xffffffff)" ( identifier , identifier , identifier , (call_expression "(ulong)((int)uVar18 - 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((int)uVar18 - 1)" ( (binary_expression "(int)uVar18 - 1" (cast_expression "(int)uVar18" ( (type_descriptor "int" primitive_type) ) identifier) - number_literal) ))) , (binary_expression "uVar7 & 0xffffffff" identifier & number_literal) ))) ;) comment (expression_statement "done(1);" (call_expression "done(1)" identifier (argument_list "(1)" ( number_literal ))) ;) })) (expression_statement "bVar8 = (*core_bfd->xvec->bfd_getx16)(raw_bin_count);" (assignment_expression "bVar8 = (*core_bfd->xvec->bfd_getx16)(raw_bin_count)" identifier = (call_expression "(*core_bfd->xvec->bfd_getx16)(raw_bin_count)" (parenthesized_expression "(*core_bfd->xvec->bfd_getx16)" ( (pointer_expression "*core_bfd->xvec->bfd_getx16" * (field_expression "core_bfd->xvec->bfd_getx16" (field_expression "core_bfd->xvec" identifier -> field_identifier) -> field_identifier)) )) (argument_list "(raw_bin_count)" ( identifier )))) ;) (expression_statement "histograms->sample[uVar18] = histograms->sample[uVar18] + (int)bVar8;" (assignment_expression "histograms->sample[uVar18] = histograms->sample[uVar18] + (int)bVar8" (subscript_expression "histograms->sample[uVar18]" (field_expression "histograms->sample" identifier -> field_identifier) [ identifier ]) = (binary_expression "histograms->sample[uVar18] + (int)bVar8" (subscript_expression "histograms->sample[uVar18]" (field_expression "histograms->sample" identifier -> field_identifier) [ identifier ]) + (cast_expression "(int)bVar8" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "bVar19 = uVar13 - 1 != uVar18;" (assignment_expression "bVar19 = uVar13 - 1 != uVar18" identifier = (binary_expression "uVar13 - 1 != uVar18" (binary_expression "uVar13 - 1" identifier - number_literal) != identifier)) ;) (expression_statement "uVar18 = uVar18 + 1;" (assignment_expression "uVar18 = uVar18 + 1" identifier = (binary_expression "uVar18 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar19)" ( identifier )) ;) })) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (while_statement "while ((iVar2 = gmon_io_read_vma((FILE *)__stream,&from_pc), iVar2 == 0 &&\n             (iVar2 = gmon_io_read_vma((FILE *)__stream,&self_pc), iVar2 == 0))) {\n        gVar3 = gmon_get_ptr_size();\n        if (gVar3 == ptr_32bit) {\n          iVar2 = gmon_io_read_32((FILE *)__stream,&profrate);\n          if (iVar2 != 0) break;\n          uVar7 = (ulong)profrate;\n        }\n        else {\n          if ((gVar3 != ptr_64bit) ||\n             (iVar2 = gmon_io_read_64((FILE *)__stream,(ulong *)&profrate), iVar2 != 0)) break;\n          uVar7 = CONCAT44(uStack_7c,profrate);\n        }\n        uVar5 = uVar5 + 1;\n        if (((byte)debug_level & 0x40) != 0) {\n          printf("[gmon_out_read] frompc 0x%lx selfpc 0x%lx count %lu\n",from_pc,self_pc,uVar7);\n        }\n        cg_tally(from_pc,self_pc,uVar7);\n      }" while (parenthesized_expression "((iVar2 = gmon_io_read_vma((FILE *)__stream,&from_pc), iVar2 == 0 &&\n             (iVar2 = gmon_io_read_vma((FILE *)__stream,&self_pc), iVar2 == 0)))" ( (parenthesized_expression "(iVar2 = gmon_io_read_vma((FILE *)__stream,&from_pc), iVar2 == 0 &&\n             (iVar2 = gmon_io_read_vma((FILE *)__stream,&self_pc), iVar2 == 0))" ( (comma_expression "iVar2 = gmon_io_read_vma((FILE *)__stream,&from_pc), iVar2 == 0 &&\n             (iVar2 = gmon_io_read_vma((FILE *)__stream,&self_pc), iVar2 == 0)" (assignment_expression "iVar2 = gmon_io_read_vma((FILE *)__stream,&from_pc)" identifier = (call_expression "gmon_io_read_vma((FILE *)__stream,&from_pc)" identifier (argument_list "((FILE *)__stream,&from_pc)" ( (cast_expression "(FILE *)__stream" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (pointer_expression "&from_pc" & identifier) )))) , (binary_expression "iVar2 == 0 &&\n             (iVar2 = gmon_io_read_vma((FILE *)__stream,&self_pc), iVar2 == 0)" (binary_expression "iVar2 == 0" identifier == number_literal) && (parenthesized_expression "(iVar2 = gmon_io_read_vma((FILE *)__stream,&self_pc), iVar2 == 0)" ( (comma_expression "iVar2 = gmon_io_read_vma((FILE *)__stream,&self_pc), iVar2 == 0" (assignment_expression "iVar2 = gmon_io_read_vma((FILE *)__stream,&self_pc)" identifier = (call_expression "gmon_io_read_vma((FILE *)__stream,&self_pc)" identifier (argument_list "((FILE *)__stream,&self_pc)" ( (cast_expression "(FILE *)__stream" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (pointer_expression "&self_pc" & identifier) )))) , (binary_expression "iVar2 == 0" identifier == number_literal)) )))) )) )) (compound_statement "{\n        gVar3 = gmon_get_ptr_size();\n        if (gVar3 == ptr_32bit) {\n          iVar2 = gmon_io_read_32((FILE *)__stream,&profrate);\n          if (iVar2 != 0) break;\n          uVar7 = (ulong)profrate;\n        }\n        else {\n          if ((gVar3 != ptr_64bit) ||\n             (iVar2 = gmon_io_read_64((FILE *)__stream,(ulong *)&profrate), iVar2 != 0)) break;\n          uVar7 = CONCAT44(uStack_7c,profrate);\n        }\n        uVar5 = uVar5 + 1;\n        if (((byte)debug_level & 0x40) != 0) {\n          printf("[gmon_out_read] frompc 0x%lx selfpc 0x%lx count %lu\n",from_pc,self_pc,uVar7);\n        }\n        cg_tally(from_pc,self_pc,uVar7);\n      }" { (expression_statement "gVar3 = gmon_get_ptr_size();" (assignment_expression "gVar3 = gmon_get_ptr_size()" identifier = (call_expression "gmon_get_ptr_size()" identifier (argument_list "()" ( )))) ;) (if_statement "if (gVar3 == ptr_32bit) {\n          iVar2 = gmon_io_read_32((FILE *)__stream,&profrate);\n          if (iVar2 != 0) break;\n          uVar7 = (ulong)profrate;\n        }\n        else {\n          if ((gVar3 != ptr_64bit) ||\n             (iVar2 = gmon_io_read_64((FILE *)__stream,(ulong *)&profrate), iVar2 != 0)) break;\n          uVar7 = CONCAT44(uStack_7c,profrate);\n        }" if (parenthesized_expression "(gVar3 == ptr_32bit)" ( (binary_expression "gVar3 == ptr_32bit" identifier == identifier) )) (compound_statement "{\n          iVar2 = gmon_io_read_32((FILE *)__stream,&profrate);\n          if (iVar2 != 0) break;\n          uVar7 = (ulong)profrate;\n        }" { (expression_statement "iVar2 = gmon_io_read_32((FILE *)__stream,&profrate);" (assignment_expression "iVar2 = gmon_io_read_32((FILE *)__stream,&profrate)" identifier = (call_expression "gmon_io_read_32((FILE *)__stream,&profrate)" identifier (argument_list "((FILE *)__stream,&profrate)" ( (cast_expression "(FILE *)__stream" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (pointer_expression "&profrate" & identifier) )))) ;) (if_statement "if (iVar2 != 0) break;" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar7 = (ulong)profrate;" (assignment_expression "uVar7 = (ulong)profrate" identifier = (cast_expression "(ulong)profrate" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) }) (else_clause "else {\n          if ((gVar3 != ptr_64bit) ||\n             (iVar2 = gmon_io_read_64((FILE *)__stream,(ulong *)&profrate), iVar2 != 0)) break;\n          uVar7 = CONCAT44(uStack_7c,profrate);\n        }" else (compound_statement "{\n          if ((gVar3 != ptr_64bit) ||\n             (iVar2 = gmon_io_read_64((FILE *)__stream,(ulong *)&profrate), iVar2 != 0)) break;\n          uVar7 = CONCAT44(uStack_7c,profrate);\n        }" { (if_statement "if ((gVar3 != ptr_64bit) ||\n             (iVar2 = gmon_io_read_64((FILE *)__stream,(ulong *)&profrate), iVar2 != 0)) break;" if (parenthesized_expression "((gVar3 != ptr_64bit) ||\n             (iVar2 = gmon_io_read_64((FILE *)__stream,(ulong *)&profrate), iVar2 != 0))" ( (binary_expression "(gVar3 != ptr_64bit) ||\n             (iVar2 = gmon_io_read_64((FILE *)__stream,(ulong *)&profrate), iVar2 != 0)" (parenthesized_expression "(gVar3 != ptr_64bit)" ( (binary_expression "gVar3 != ptr_64bit" identifier != identifier) )) || (parenthesized_expression "(iVar2 = gmon_io_read_64((FILE *)__stream,(ulong *)&profrate), iVar2 != 0)" ( (comma_expression "iVar2 = gmon_io_read_64((FILE *)__stream,(ulong *)&profrate), iVar2 != 0" (assignment_expression "iVar2 = gmon_io_read_64((FILE *)__stream,(ulong *)&profrate)" identifier = (call_expression "gmon_io_read_64((FILE *)__stream,(ulong *)&profrate)" identifier (argument_list "((FILE *)__stream,(ulong *)&profrate)" ( (cast_expression "(FILE *)__stream" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(ulong *)&profrate" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&profrate" & identifier)) )))) , (binary_expression "iVar2 != 0" identifier != number_literal)) ))) )) (break_statement "break;" break ;)) (expression_statement "uVar7 = CONCAT44(uStack_7c,profrate);" (assignment_expression "uVar7 = CONCAT44(uStack_7c,profrate)" identifier = (call_expression "CONCAT44(uStack_7c,profrate)" identifier (argument_list "(uStack_7c,profrate)" ( identifier , identifier )))) ;) }))) (expression_statement "uVar5 = uVar5 + 1;" (assignment_expression "uVar5 = uVar5 + 1" identifier = (binary_expression "uVar5 + 1" identifier + number_literal)) ;) (if_statement "if (((byte)debug_level & 0x40) != 0) {\n          printf("[gmon_out_read] frompc 0x%lx selfpc 0x%lx count %lu\n",from_pc,self_pc,uVar7);\n        }" if (parenthesized_expression "(((byte)debug_level & 0x40) != 0)" ( (binary_expression "((byte)debug_level & 0x40) != 0" (parenthesized_expression "((byte)debug_level & 0x40)" ( (binary_expression "(byte)debug_level & 0x40" (cast_expression "(byte)debug_level" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n          printf("[gmon_out_read] frompc 0x%lx selfpc 0x%lx count %lu\n",from_pc,self_pc,uVar7);\n        }" { (expression_statement "printf("[gmon_out_read] frompc 0x%lx selfpc 0x%lx count %lu\n",from_pc,self_pc,uVar7);" (call_expression "printf("[gmon_out_read] frompc 0x%lx selfpc 0x%lx count %lu\n",from_pc,self_pc,uVar7)" identifier (argument_list "("[gmon_out_read] frompc 0x%lx selfpc 0x%lx count %lu\n",from_pc,self_pc,uVar7)" ( (string_literal ""[gmon_out_read] frompc 0x%lx selfpc 0x%lx count %lu\n"" " string_content escape_sequence ") , identifier , identifier , identifier ))) ;) })) (expression_statement "cg_tally(from_pc,self_pc,uVar7);" (call_expression "cg_tally(from_pc,self_pc,uVar7)" identifier (argument_list "(from_pc,self_pc,uVar7)" ( identifier , identifier , identifier ))) ;) })) (expression_statement "local_a8 = 0;" (assignment_expression "local_a8 = 0" identifier = number_literal) ;) (if_statement "if (hz == 0) {\n        iVar2 = hertz();\n        hz = (long)iVar2;\n        if (hz == 0) {\n          hz = 1;\n          pcVar9 = (char *)dcgettext("gprof","time is in ticks, not seconds\n",5);\n          fprintf(stderr,pcVar9);\n        }\n      }" if (parenthesized_expression "(hz == 0)" ( (binary_expression "hz == 0" identifier == number_literal) )) (compound_statement "{\n        iVar2 = hertz();\n        hz = (long)iVar2;\n        if (hz == 0) {\n          hz = 1;\n          pcVar9 = (char *)dcgettext("gprof","time is in ticks, not seconds\n",5);\n          fprintf(stderr,pcVar9);\n        }\n      }" { (expression_statement "iVar2 = hertz();" (assignment_expression "iVar2 = hertz()" identifier = (call_expression "hertz()" identifier (argument_list "()" ( )))) ;) (expression_statement "hz = (long)iVar2;" (assignment_expression "hz = (long)iVar2" identifier = (cast_expression "(long)iVar2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (if_statement "if (hz == 0) {\n          hz = 1;\n          pcVar9 = (char *)dcgettext("gprof","time is in ticks, not seconds\n",5);\n          fprintf(stderr,pcVar9);\n        }" if (parenthesized_expression "(hz == 0)" ( (binary_expression "hz == 0" identifier == number_literal) )) (compound_statement "{\n          hz = 1;\n          pcVar9 = (char *)dcgettext("gprof","time is in ticks, not seconds\n",5);\n          fprintf(stderr,pcVar9);\n        }" { (expression_statement "hz = 1;" (assignment_expression "hz = 1" identifier = number_literal) ;) (expression_statement "pcVar9 = (char *)dcgettext("gprof","time is in ticks, not seconds\n",5);" (assignment_expression "pcVar9 = (char *)dcgettext("gprof","time is in ticks, not seconds\n",5)" identifier = (cast_expression "(char *)dcgettext("gprof","time is in ticks, not seconds\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext("gprof","time is in ticks, not seconds\n",5)" identifier (argument_list "("gprof","time is in ticks, not seconds\n",5)" ( (string_literal ""gprof"" " string_content ") , (string_literal ""time is in ticks, not seconds\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "fprintf(stderr,pcVar9);" (call_expression "fprintf(stderr,pcVar9)" identifier (argument_list "(stderr,pcVar9)" ( identifier , identifier ))) ;) })) })) (labeled_statement "LAB_001099b1:\n      if (stdin != __stream) {\n        fclose(__stream);\n      }" statement_identifier : (if_statement "if (stdin != __stream) {\n        fclose(__stream);\n      }" if (parenthesized_expression "(stdin != __stream)" ( (binary_expression "stdin != __stream" identifier != identifier) )) (compound_statement "{\n        fclose(__stream);\n      }" { (expression_statement "fclose(__stream);" (call_expression "fclose(__stream)" identifier (argument_list "(__stream)" ( identifier ))) ;) }))) (expression_statement "iVar2 = gmon_file_version;" (assignment_expression "iVar2 = gmon_file_version" identifier = identifier) ;) (if_statement "if (((byte)output_style & 0x20) == 0) {\n        return;\n      }" if (parenthesized_expression "(((byte)output_style & 0x20) == 0)" ( (binary_expression "((byte)output_style & 0x20) == 0" (parenthesized_expression "((byte)output_style & 0x20)" ( (binary_expression "(byte)output_style & 0x20" (cast_expression "(byte)output_style" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) (expression_statement "pcVar9 = (char *)dcgettext("gprof","File `%s\' (version %d) contains:\n",5);" (assignment_expression "pcVar9 = (char *)dcgettext("gprof","File `%s\' (version %d) contains:\n",5)" identifier = (cast_expression "(char *)dcgettext("gprof","File `%s\' (version %d) contains:\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext("gprof","File `%s\' (version %d) contains:\n",5)" identifier (argument_list "("gprof","File `%s\' (version %d) contains:\n",5)" ( (string_literal ""gprof"" " string_content ") , (string_literal ""File `%s\' (version %d) contains:\n"" " string_content escape_sequence string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "printf(pcVar9,filename,(ulong)(uint)iVar2);" (call_expression "printf(pcVar9,filename,(ulong)(uint)iVar2)" identifier (argument_list "(pcVar9,filename,(ulong)(uint)iVar2)" ( identifier , identifier , (cast_expression "(ulong)(uint)iVar2" ( (type_descriptor "ulong" type_identifier) ) (cast_expression "(uint)iVar2" ( (type_descriptor "uint" type_identifier) ) identifier)) ))) ;) (if_statement "if (local_a4 == 1) {\n        pcVar9 = (char *)dcgettext("gprof","\t%d histogram record\n",5);\n      }\n      else {\n        pcVar9 = (char *)dcgettext("gprof","\t%d histogram records\n",5);\n      }" if (parenthesized_expression "(local_a4 == 1)" ( (binary_expression "local_a4 == 1" identifier == number_literal) )) (compound_statement "{\n        pcVar9 = (char *)dcgettext("gprof","\t%d histogram record\n",5);\n      }" { (expression_statement "pcVar9 = (char *)dcgettext("gprof","\t%d histogram record\n",5);" (assignment_expression "pcVar9 = (char *)dcgettext("gprof","\t%d histogram record\n",5)" identifier = (cast_expression "(char *)dcgettext("gprof","\t%d histogram record\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext("gprof","\t%d histogram record\n",5)" identifier (argument_list "("gprof","\t%d histogram record\n",5)" ( (string_literal ""gprof"" " string_content ") , (string_literal ""\t%d histogram record\n"" " escape_sequence string_content escape_sequence ") , number_literal ))))) ;) }) (else_clause "else {\n        pcVar9 = (char *)dcgettext("gprof","\t%d histogram records\n",5);\n      }" else (compound_statement "{\n        pcVar9 = (char *)dcgettext("gprof","\t%d histogram records\n",5);\n      }" { (expression_statement "pcVar9 = (char *)dcgettext("gprof","\t%d histogram records\n",5);" (assignment_expression "pcVar9 = (char *)dcgettext("gprof","\t%d histogram records\n",5)" identifier = (cast_expression "(char *)dcgettext("gprof","\t%d histogram records\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext("gprof","\t%d histogram records\n",5)" identifier (argument_list "("gprof","\t%d histogram records\n",5)" ( (string_literal ""gprof"" " string_content ") , (string_literal ""\t%d histogram records\n"" " escape_sequence string_content escape_sequence ") , number_literal ))))) ;) }))) (expression_statement "printf(pcVar9,(ulong)local_a4);" (call_expression "printf(pcVar9,(ulong)local_a4)" identifier (argument_list "(pcVar9,(ulong)local_a4)" ( identifier , (cast_expression "(ulong)local_a4" ( (type_descriptor "ulong" type_identifier) ) identifier) ))) ;) (if_statement "if (uVar5 == 1) {\n        pcVar9 = (char *)dcgettext("gprof","\t%d call-graph record\n",5);\n      }\n      else {\n        pcVar9 = (char *)dcgettext("gprof","\t%d call-graph records\n",5);\n      }" if (parenthesized_expression "(uVar5 == 1)" ( (binary_expression "uVar5 == 1" identifier == number_literal) )) (compound_statement "{\n        pcVar9 = (char *)dcgettext("gprof","\t%d call-graph record\n",5);\n      }" { (expression_statement "pcVar9 = (char *)dcgettext("gprof","\t%d call-graph record\n",5);" (assignment_expression "pcVar9 = (char *)dcgettext("gprof","\t%d call-graph record\n",5)" identifier = (cast_expression "(char *)dcgettext("gprof","\t%d call-graph record\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext("gprof","\t%d call-graph record\n",5)" identifier (argument_list "("gprof","\t%d call-graph record\n",5)" ( (string_literal ""gprof"" " string_content ") , (string_literal ""\t%d call-graph record\n"" " escape_sequence string_content escape_sequence ") , number_literal ))))) ;) }) (else_clause "else {\n        pcVar9 = (char *)dcgettext("gprof","\t%d call-graph records\n",5);\n      }" else (compound_statement "{\n        pcVar9 = (char *)dcgettext("gprof","\t%d call-graph records\n",5);\n      }" { (expression_statement "pcVar9 = (char *)dcgettext("gprof","\t%d call-graph records\n",5);" (assignment_expression "pcVar9 = (char *)dcgettext("gprof","\t%d call-graph records\n",5)" identifier = (cast_expression "(char *)dcgettext("gprof","\t%d call-graph records\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext("gprof","\t%d call-graph records\n",5)" identifier (argument_list "("gprof","\t%d call-graph records\n",5)" ( (string_literal ""gprof"" " string_content ") , (string_literal ""\t%d call-graph records\n"" " escape_sequence string_content escape_sequence ") , number_literal ))))) ;) }))) (expression_statement "printf(pcVar9,(ulong)uVar5);" (call_expression "printf(pcVar9,(ulong)uVar5)" identifier (argument_list "(pcVar9,(ulong)uVar5)" ( identifier , (cast_expression "(ulong)uVar5" ( (type_descriptor "ulong" type_identifier) ) identifier) ))) ;) (if_statement "if (local_a8 == 1) {\n        pcVar9 = (char *)dcgettext("gprof","\t%d basic-block count record\n",5);\n      }\n      else {\n        pcVar9 = (char *)dcgettext("gprof","\t%d basic-block count records\n",5);\n      }" if (parenthesized_expression "(local_a8 == 1)" ( (binary_expression "local_a8 == 1" identifier == number_literal) )) (compound_statement "{\n        pcVar9 = (char *)dcgettext("gprof","\t%d basic-block count record\n",5);\n      }" { (expression_statement "pcVar9 = (char *)dcgettext("gprof","\t%d basic-block count record\n",5);" (assignment_expression "pcVar9 = (char *)dcgettext("gprof","\t%d basic-block count record\n",5)" identifier = (cast_expression "(char *)dcgettext("gprof","\t%d basic-block count record\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext("gprof","\t%d basic-block count record\n",5)" identifier (argument_list "("gprof","\t%d basic-block count record\n",5)" ( (string_literal ""gprof"" " string_content ") , (string_literal ""\t%d basic-block count record\n"" " escape_sequence string_content escape_sequence ") , number_literal ))))) ;) }) (else_clause "else {\n        pcVar9 = (char *)dcgettext("gprof","\t%d basic-block count records\n",5);\n      }" else (compound_statement "{\n        pcVar9 = (char *)dcgettext("gprof","\t%d basic-block count records\n",5);\n      }" { (expression_statement "pcVar9 = (char *)dcgettext("gprof","\t%d basic-block count records\n",5);" (assignment_expression "pcVar9 = (char *)dcgettext("gprof","\t%d basic-block count records\n",5)" identifier = (cast_expression "(char *)dcgettext("gprof","\t%d basic-block count records\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext("gprof","\t%d basic-block count records\n",5)" identifier (argument_list "("gprof","\t%d basic-block count records\n",5)" ( (string_literal ""gprof"" " string_content ") , (string_literal ""\t%d basic-block count records\n"" " escape_sequence string_content escape_sequence ") , number_literal ))))) ;) }))) (expression_statement "printf(pcVar9,(ulong)local_a8);" (call_expression "printf(pcVar9,(ulong)local_a8)" identifier (argument_list "(pcVar9,(ulong)local_a8)" ( identifier , (cast_expression "(ulong)local_a8" ( (type_descriptor "ulong" type_identifier) ) identifier) ))) ;) (expression_statement "first_output = 0;" (assignment_expression "first_output = 0" identifier = number_literal) ;) (return_statement "return;" return ;) })) (expression_statement "pcVar9 = "%s: file \'%s\' does not appear to be in gmon.out format\n";" (assignment_expression "pcVar9 = "%s: file \'%s\' does not appear to be in gmon.out format\n"" identifier = (string_literal ""%s: file \'%s\' does not appear to be in gmon.out format\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ")) ;) (labeled_statement "LAB_0010a006:\n    pcVar12 = whoami;" statement_identifier : (expression_statement "pcVar12 = whoami;" (assignment_expression "pcVar12 = whoami" identifier = identifier) ;)) (expression_statement "pcVar9 = (char *)dcgettext("gprof",pcVar9,5);" (assignment_expression "pcVar9 = (char *)dcgettext("gprof",pcVar9,5)" identifier = (cast_expression "(char *)dcgettext("gprof",pcVar9,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext("gprof",pcVar9,5)" identifier (argument_list "("gprof",pcVar9,5)" ( (string_literal ""gprof"" " string_content ") , identifier , number_literal ))))) ;) (expression_statement "fprintf(stderr,pcVar9,pcVar12,filename);" (call_expression "fprintf(stderr,pcVar9,pcVar12,filename)" identifier (argument_list "(stderr,pcVar9,pcVar12,filename)" ( identifier , identifier , identifier , identifier ))) ;) comment (expression_statement "done(1);" (call_expression "done(1)" identifier (argument_list "(1)" ( number_literal ))) ;) })) (labeled_statement "LAB_00109f6f:\n  pcVar9 = "%s: file too short to be a gmon file\n";" statement_identifier : (expression_statement "pcVar9 = "%s: file too short to be a gmon file\n";" (assignment_expression "pcVar9 = "%s: file too short to be a gmon file\n"" identifier = (string_literal ""%s: file too short to be a gmon file\n"" " string_content escape_sequence ")) ;)) (labeled_statement "LAB_00109f7b:\n  pcVar9 = (char *)dcgettext("gprof",pcVar9,5);" statement_identifier : (expression_statement "pcVar9 = (char *)dcgettext("gprof",pcVar9,5);" (assignment_expression "pcVar9 = (char *)dcgettext("gprof",pcVar9,5)" identifier = (cast_expression "(char *)dcgettext("gprof",pcVar9,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext("gprof",pcVar9,5)" identifier (argument_list "("gprof",pcVar9,5)" ( (string_literal ""gprof"" " string_content ") , identifier , number_literal ))))) ;)) (expression_statement "fprintf(stderr,pcVar9,filename);" (call_expression "fprintf(stderr,pcVar9,filename)" identifier (argument_list "(stderr,pcVar9,filename)" ( identifier , identifier , identifier ))) ;) comment (expression_statement "done(1);" (call_expression "done(1)" identifier (argument_list "(1)" ( number_literal ))) ;) })))
(translation_unit "void FUN_00109740(byte *param_1)\n\n{\n  int *piVar1;\n  uint uVar2;\n  int iVar3;\n  int iVar4;\n  uint uVar5;\n  size_t sVar6;\n  ulong uVar7;\n  FILE *__stream;\n  char *pcVar8;\n  ulong *puVar9;\n  ulong uVar10;\n  long lVar11;\n  undefined8 uVar12;\n  byte *pbVar13;\n  byte *pbVar14;\n  bool bVar15;\n  bool bVar16;\n  byte bVar17;\n  uint local_a8;\n  uint local_a4;\n  undefined1 local_96 [2];\n  int local_94;\n  undefined8 local_90;\n  undefined8 local_88;\n  uint local_80;\n  undefined4 uStack_7c;\n  byte local_78 [4];\n  undefined1 local_74 [28];\n  byte local_58;\n  undefined7 uStack_57;\n  ulong local_50;\n  uint local_48 [6];\n  \n  bVar17 = 0;\n  lVar11 = 2;\n  bVar15 = &stack0xffffffffffffffd0 < (undefined1 *)0x78;\n  bVar16 = &stack0x00000000 == (undefined1 *)0xa8;\n  pbVar13 = param_1;\n  pbVar14 = &DAT_001110e7;\n  do {\n    if (lVar11 == 0) break;\n    lVar11 = lVar11 + -1;\n    bVar15 = *pbVar13 < *pbVar14;\n    bVar16 = *pbVar13 == *pbVar14;\n    pbVar13 = pbVar13 + 1;\n    pbVar14 = pbVar14 + 1;\n  } while (bVar16);\n  __stream = stdin;\n  if (((!bVar15 && !bVar16) != bVar15) &&\n     (__stream = fopen((char *)param_1,"r"), __stream == (FILE *)0x0)) goto LAB_00109ba3;\n  sVar6 = fread(local_78,0x14,1,__stream);\n  uVar12 = DAT_00119b10;\n  uVar5 = DAT_001195c0;\n  if (sVar6 != 1) goto LAB_00109f6f;\n  bVar15 = DAT_001195c0 == 0;\n  bVar16 = DAT_001195c0 == 1;\n  if (bVar16) {\n    lVar11 = 4;\n    pbVar13 = local_78;\n    pbVar14 = &DAT_001110e9;\n    do {\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar15 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar17 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar17 * -2 + 1;\n    } while (bVar16);\n    if ((!bVar15 && !bVar16) == bVar15) {\nLAB_001099fe:\n      uVar5 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x38))(local_74);\n      uVar12 = DAT_00119b10;\n      DAT_001195b4 = uVar5;\n      if (1 < uVar5) {\n        pcVar8 = (char *)dcgettext("gprof","%s: file `%s\' has unsupported version %d\n",5);\n        uVar7 = (ulong)uVar5;\nLAB_00109f08:\n        fprintf(stderr,pcVar8,uVar12,param_1,uVar7);\n                    \n        FUN_0010a4c0(1);\n      }\n      local_a8 = 0;\n      uVar5 = 0;\n      local_a4 = 0;\n      while (sVar6 = fread(&local_58,1,1,__stream), uVar12 = DAT_00119b10, sVar6 == 1) {\n        if (local_58 == 1) {\n          uVar5 = uVar5 + 1;\n          DAT_001195b8 = DAT_001195b8 | 2;\n          FUN_001041c0(__stream,param_1);\n        }\n        else if (local_58 == 0) {\n          local_a4 = local_a4 + 1;\n          DAT_001195b8 = DAT_001195b8 | 1;\n          FUN_0010b590(__stream,param_1);\n        }\n        else {\n          if (local_58 != 2) {\n            pcVar8 = (char *)dcgettext("gprof","%s: %s: found bad tag %d (file corrupted?)\n",5);\n            uVar7 = (ulong)local_58;\n            goto LAB_00109f08;\n          }\n          local_a8 = local_a8 + 1;\n          DAT_001195b8 = DAT_001195b8 | 4;\n          FUN_001034d0(__stream,param_1);\n        }\n      }\n      goto LAB_001099b1;\n    }\nLAB_00109cae:\n    pcVar8 = "%s: file `%s\' has bad magic cookie\n";\n    goto LAB_0010a006;\n  }\n  bVar15 = false;\n  bVar16 = DAT_001195c0 == 0;\n  if (bVar16) {\n    lVar11 = 4;\n    pbVar13 = local_78;\n    pbVar14 = &DAT_001110e9;\n    do {\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar15 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar17 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar17 * -2 + 1;\n    } while (bVar16);\n    if ((!bVar15 && !bVar16) == bVar15) goto LAB_001099fe;\n  }\n  else if (1 < DAT_001195c0 - 2) {\n    pcVar8 = (char *)dcgettext("gprof","%s: don\'t know how to deal with file format %d\n",5);\n    fprintf(stderr,pcVar8,uVar12,(ulong)uVar5);\n                    \n    FUN_0010a4c0(1);\n  }\n  DAT_001195b8 = 3;\n  iVar3 = fseek(__stream,0,0);\n  if (iVar3 < 0) goto LAB_00109ba3;\n  iVar3 = FUN_00109550(__stream,&local_58);\n  if ((((iVar3 == 0) && (iVar3 = FUN_00109550(__stream,&local_50), iVar3 == 0)) &&\n      (iVar3 = FUN_00109500(__stream,local_48), iVar3 == 0)) &&\n     (iVar3 = FUN_00109500(__stream,&local_94), iVar3 == 0)) {\n    if (local_94 == 0x51879) {\n      iVar3 = FUN_00109500(__stream,&local_80);\n      if (iVar3 != 0) goto LAB_00109f6f;\n      uVar7 = (ulong)local_80;\n      if ((DAT_00119b18 != (ulong *)0x0) &&\n         (uVar7 = DAT_001195e8, (long)(int)local_80 != DAT_001195e8)) {\n        pcVar8 = "%s: profiling rate incompatible with first gmon file\n";\n        goto LAB_00109f7b;\n      }\n      DAT_001195e8 = uVar7;\n      iVar3 = FUN_00109420();\n      if (iVar3 == 0) {\n        lVar11 = 0x20;\n        iVar3 = 0x20;\n      }\n      else {\n        lVar11 = 0x28;\n        if (iVar3 == 1) {\n          iVar3 = 0x28;\n        }\n        else {\n          lVar11 = 0;\n          iVar3 = 0;\n        }\n      }\n    }\n    else {\n      if (DAT_001195c0 == 3) goto LAB_00109cae;\n      iVar4 = FUN_00109420();\n      if (iVar4 == 0) {\n        lVar11 = 0xc;\n        iVar3 = 0xc;\n      }\n      else {\n        lVar11 = 0x14;\n        if (iVar4 != 1) {\n          lVar11 = 0;\n        }\n        iVar3 = 0x14;\n        if (iVar4 != 1) {\n          iVar3 = 0;\n        }\n      }\n    }\n    iVar4 = fseek(__stream,lVar11,0);\n    if (iVar4 < 0) {\nLAB_00109ba3:\n      perror((char *)param_1);\n                    \n      FUN_0010a4c0(1);\n    }\n    uVar5 = local_48[0] - iVar3;\n    uVar7 = (ulong)(long)(int)uVar5 >> 1;\n    iVar3 = (int)uVar7;\n    if (DAT_00119b18 == (ulong *)0x0) {\n      DAT_00119b20 = 1;\n      puVar9 = (ulong *)xmalloc(0x20);\n      DAT_00119b18 = puVar9;\n      *puVar9 = CONCAT71(uStack_57,local_58);\n      *(int *)(puVar9 + 2) = iVar3;\n      sVar6 = (uVar7 & 0xffffffff) << 2;\n      puVar9[1] = local_50;\n      DAT_00119b28 = (double)(local_50 - CONCAT71(uStack_57,local_58) >> 1) /\n                     (double)(uVar7 & 0xffffffff);\n      uVar10 = xmalloc(sVar6);\n      puVar9[3] = uVar10;\n      memset((void *)DAT_00119b18[3],0,sVar6);\n    }\n    else if (((CONCAT71(uStack_57,local_58) != *DAT_00119b18) || (local_50 != DAT_00119b18[1])) ||\n            ((int)DAT_00119b18[2] != iVar3)) {\n      pcVar8 = "%s: incompatible with first gmon file\n";\n      goto LAB_00109f7b;\n    }\n    if (((byte)DAT_001195e4 & 0x40) != 0) {\n      printf("[gmon_out_read] lowpc 0x%lx highpc 0x%lx ncnt %d\n",CONCAT71(uStack_57,local_58),\n             local_50,(ulong)local_48[0]);\n      printf("[gmon_out_read] samp_bytes %d hist_num_bins %d\n",(ulong)uVar5,uVar7 & 0xffffffff);\n    }\n    if ((-1 < (int)uVar5) && (*DAT_00119b18 <= DAT_00119b18[1])) {\n      local_a4 = (uint)(iVar3 != 0);\n      if (iVar3 != 0) {\n        uVar10 = 0;\n        do {\n          sVar6 = fread(local_96,2,1,__stream);\n          uVar12 = DAT_00119b10;\n          if (sVar6 != 1) {\n            pcVar8 = (char *)dcgettext("gprof","%s: unexpected EOF after reading %d/%d bins\n",5);\n            fprintf(stderr,pcVar8,uVar12,(ulong)((int)uVar10 - 1),uVar7 & 0xffffffff);\n                    \n            FUN_0010a4c0(1);\n          }\n          iVar4 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x50))(local_96);\n          piVar1 = (int *)(DAT_00119b18[3] + uVar10 * 4);\n          *piVar1 = *piVar1 + iVar4;\n          bVar15 = iVar3 - 1 != uVar10;\n          uVar10 = uVar10 + 1;\n        } while (bVar15);\n      }\n      uVar5 = 0;\n      while ((iVar3 = FUN_00109550(__stream,&local_90), iVar3 == 0 &&\n             (iVar3 = FUN_00109550(__stream,&local_88), iVar3 == 0))) {\n        iVar3 = FUN_00109420();\n        if (iVar3 == 0) {\n          iVar3 = FUN_00109500(__stream,&local_80);\n          if (iVar3 != 0) break;\n          uVar7 = (ulong)local_80;\n        }\n        else {\n          if ((iVar3 != 1) || (iVar3 = FUN_001093d0(__stream,&local_80), iVar3 != 0)) break;\n          uVar7 = CONCAT44(uStack_7c,local_80);\n        }\n        uVar5 = uVar5 + 1;\n        if (((byte)DAT_001195e4 & 0x40) != 0) {\n          printf("[gmon_out_read] frompc 0x%lx selfpc 0x%lx count %lu\n",local_90,local_88,uVar7);\n        }\n        FUN_001040b0(local_90,local_88,uVar7);\n      }\n      local_a8 = 0;\n      if (DAT_001195e8 == 0) {\n        iVar3 = FUN_0010a4d0();\n        DAT_001195e8 = (ulong)iVar3;\n        if (DAT_001195e8 == 0) {\n          DAT_001195e8 = 1;\n          pcVar8 = (char *)dcgettext("gprof","time is in ticks, not seconds\n",5);\n          fprintf(stderr,pcVar8);\n        }\n      }\nLAB_001099b1:\n      if (stdin != __stream) {\n        fclose(__stream);\n      }\n      uVar2 = DAT_001195b4;\n      if (((byte)DAT_001195e0 & 0x20) == 0) {\n        return;\n      }\n      pcVar8 = (char *)dcgettext("gprof","File `%s\' (version %d) contains:\n",5);\n      printf(pcVar8,param_1,(ulong)uVar2);\n      if (local_a4 == 1) {\n        pcVar8 = (char *)dcgettext("gprof","\t%d histogram record\n",5);\n      }\n      else {\n        pcVar8 = (char *)dcgettext("gprof","\t%d histogram records\n",5);\n      }\n      printf(pcVar8,(ulong)local_a4);\n      if (uVar5 == 1) {\n        pcVar8 = (char *)dcgettext("gprof","\t%d call-graph record\n",5);\n      }\n      else {\n        pcVar8 = (char *)dcgettext("gprof","\t%d call-graph records\n",5);\n      }\n      printf(pcVar8,(ulong)uVar5);\n      if (local_a8 == 1) {\n        pcVar8 = (char *)dcgettext("gprof","\t%d basic-block count record\n",5);\n      }\n      else {\n        pcVar8 = (char *)dcgettext("gprof","\t%d basic-block count records\n",5);\n      }\n      printf(pcVar8,(ulong)local_a8);\n      DAT_001182d8 = 0;\n      return;\n    }\n    pcVar8 = "%s: file \'%s\' does not appear to be in gmon.out format\n";\nLAB_0010a006:\n    uVar12 = DAT_00119b10;\n    pcVar8 = (char *)dcgettext("gprof",pcVar8,5);\n    fprintf(stderr,pcVar8,uVar12,param_1);\n                    \n    FUN_0010a4c0(1);\n  }\nLAB_00109f6f:\n  pcVar8 = "%s: file too short to be a gmon file\n";\nLAB_00109f7b:\n  pcVar8 = (char *)dcgettext("gprof",pcVar8,5);\n  fprintf(stderr,pcVar8,param_1);\n                    \n  FUN_0010a4c0(1);\n}\n\n" (function_definition "void FUN_00109740(byte *param_1)\n\n{\n  int *piVar1;\n  uint uVar2;\n  int iVar3;\n  int iVar4;\n  uint uVar5;\n  size_t sVar6;\n  ulong uVar7;\n  FILE *__stream;\n  char *pcVar8;\n  ulong *puVar9;\n  ulong uVar10;\n  long lVar11;\n  undefined8 uVar12;\n  byte *pbVar13;\n  byte *pbVar14;\n  bool bVar15;\n  bool bVar16;\n  byte bVar17;\n  uint local_a8;\n  uint local_a4;\n  undefined1 local_96 [2];\n  int local_94;\n  undefined8 local_90;\n  undefined8 local_88;\n  uint local_80;\n  undefined4 uStack_7c;\n  byte local_78 [4];\n  undefined1 local_74 [28];\n  byte local_58;\n  undefined7 uStack_57;\n  ulong local_50;\n  uint local_48 [6];\n  \n  bVar17 = 0;\n  lVar11 = 2;\n  bVar15 = &stack0xffffffffffffffd0 < (undefined1 *)0x78;\n  bVar16 = &stack0x00000000 == (undefined1 *)0xa8;\n  pbVar13 = param_1;\n  pbVar14 = &DAT_001110e7;\n  do {\n    if (lVar11 == 0) break;\n    lVar11 = lVar11 + -1;\n    bVar15 = *pbVar13 < *pbVar14;\n    bVar16 = *pbVar13 == *pbVar14;\n    pbVar13 = pbVar13 + 1;\n    pbVar14 = pbVar14 + 1;\n  } while (bVar16);\n  __stream = stdin;\n  if (((!bVar15 && !bVar16) != bVar15) &&\n     (__stream = fopen((char *)param_1,"r"), __stream == (FILE *)0x0)) goto LAB_00109ba3;\n  sVar6 = fread(local_78,0x14,1,__stream);\n  uVar12 = DAT_00119b10;\n  uVar5 = DAT_001195c0;\n  if (sVar6 != 1) goto LAB_00109f6f;\n  bVar15 = DAT_001195c0 == 0;\n  bVar16 = DAT_001195c0 == 1;\n  if (bVar16) {\n    lVar11 = 4;\n    pbVar13 = local_78;\n    pbVar14 = &DAT_001110e9;\n    do {\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar15 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar17 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar17 * -2 + 1;\n    } while (bVar16);\n    if ((!bVar15 && !bVar16) == bVar15) {\nLAB_001099fe:\n      uVar5 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x38))(local_74);\n      uVar12 = DAT_00119b10;\n      DAT_001195b4 = uVar5;\n      if (1 < uVar5) {\n        pcVar8 = (char *)dcgettext("gprof","%s: file `%s\' has unsupported version %d\n",5);\n        uVar7 = (ulong)uVar5;\nLAB_00109f08:\n        fprintf(stderr,pcVar8,uVar12,param_1,uVar7);\n                    \n        FUN_0010a4c0(1);\n      }\n      local_a8 = 0;\n      uVar5 = 0;\n      local_a4 = 0;\n      while (sVar6 = fread(&local_58,1,1,__stream), uVar12 = DAT_00119b10, sVar6 == 1) {\n        if (local_58 == 1) {\n          uVar5 = uVar5 + 1;\n          DAT_001195b8 = DAT_001195b8 | 2;\n          FUN_001041c0(__stream,param_1);\n        }\n        else if (local_58 == 0) {\n          local_a4 = local_a4 + 1;\n          DAT_001195b8 = DAT_001195b8 | 1;\n          FUN_0010b590(__stream,param_1);\n        }\n        else {\n          if (local_58 != 2) {\n            pcVar8 = (char *)dcgettext("gprof","%s: %s: found bad tag %d (file corrupted?)\n",5);\n            uVar7 = (ulong)local_58;\n            goto LAB_00109f08;\n          }\n          local_a8 = local_a8 + 1;\n          DAT_001195b8 = DAT_001195b8 | 4;\n          FUN_001034d0(__stream,param_1);\n        }\n      }\n      goto LAB_001099b1;\n    }\nLAB_00109cae:\n    pcVar8 = "%s: file `%s\' has bad magic cookie\n";\n    goto LAB_0010a006;\n  }\n  bVar15 = false;\n  bVar16 = DAT_001195c0 == 0;\n  if (bVar16) {\n    lVar11 = 4;\n    pbVar13 = local_78;\n    pbVar14 = &DAT_001110e9;\n    do {\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar15 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar17 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar17 * -2 + 1;\n    } while (bVar16);\n    if ((!bVar15 && !bVar16) == bVar15) goto LAB_001099fe;\n  }\n  else if (1 < DAT_001195c0 - 2) {\n    pcVar8 = (char *)dcgettext("gprof","%s: don\'t know how to deal with file format %d\n",5);\n    fprintf(stderr,pcVar8,uVar12,(ulong)uVar5);\n                    \n    FUN_0010a4c0(1);\n  }\n  DAT_001195b8 = 3;\n  iVar3 = fseek(__stream,0,0);\n  if (iVar3 < 0) goto LAB_00109ba3;\n  iVar3 = FUN_00109550(__stream,&local_58);\n  if ((((iVar3 == 0) && (iVar3 = FUN_00109550(__stream,&local_50), iVar3 == 0)) &&\n      (iVar3 = FUN_00109500(__stream,local_48), iVar3 == 0)) &&\n     (iVar3 = FUN_00109500(__stream,&local_94), iVar3 == 0)) {\n    if (local_94 == 0x51879) {\n      iVar3 = FUN_00109500(__stream,&local_80);\n      if (iVar3 != 0) goto LAB_00109f6f;\n      uVar7 = (ulong)local_80;\n      if ((DAT_00119b18 != (ulong *)0x0) &&\n         (uVar7 = DAT_001195e8, (long)(int)local_80 != DAT_001195e8)) {\n        pcVar8 = "%s: profiling rate incompatible with first gmon file\n";\n        goto LAB_00109f7b;\n      }\n      DAT_001195e8 = uVar7;\n      iVar3 = FUN_00109420();\n      if (iVar3 == 0) {\n        lVar11 = 0x20;\n        iVar3 = 0x20;\n      }\n      else {\n        lVar11 = 0x28;\n        if (iVar3 == 1) {\n          iVar3 = 0x28;\n        }\n        else {\n          lVar11 = 0;\n          iVar3 = 0;\n        }\n      }\n    }\n    else {\n      if (DAT_001195c0 == 3) goto LAB_00109cae;\n      iVar4 = FUN_00109420();\n      if (iVar4 == 0) {\n        lVar11 = 0xc;\n        iVar3 = 0xc;\n      }\n      else {\n        lVar11 = 0x14;\n        if (iVar4 != 1) {\n          lVar11 = 0;\n        }\n        iVar3 = 0x14;\n        if (iVar4 != 1) {\n          iVar3 = 0;\n        }\n      }\n    }\n    iVar4 = fseek(__stream,lVar11,0);\n    if (iVar4 < 0) {\nLAB_00109ba3:\n      perror((char *)param_1);\n                    \n      FUN_0010a4c0(1);\n    }\n    uVar5 = local_48[0] - iVar3;\n    uVar7 = (ulong)(long)(int)uVar5 >> 1;\n    iVar3 = (int)uVar7;\n    if (DAT_00119b18 == (ulong *)0x0) {\n      DAT_00119b20 = 1;\n      puVar9 = (ulong *)xmalloc(0x20);\n      DAT_00119b18 = puVar9;\n      *puVar9 = CONCAT71(uStack_57,local_58);\n      *(int *)(puVar9 + 2) = iVar3;\n      sVar6 = (uVar7 & 0xffffffff) << 2;\n      puVar9[1] = local_50;\n      DAT_00119b28 = (double)(local_50 - CONCAT71(uStack_57,local_58) >> 1) /\n                     (double)(uVar7 & 0xffffffff);\n      uVar10 = xmalloc(sVar6);\n      puVar9[3] = uVar10;\n      memset((void *)DAT_00119b18[3],0,sVar6);\n    }\n    else if (((CONCAT71(uStack_57,local_58) != *DAT_00119b18) || (local_50 != DAT_00119b18[1])) ||\n            ((int)DAT_00119b18[2] != iVar3)) {\n      pcVar8 = "%s: incompatible with first gmon file\n";\n      goto LAB_00109f7b;\n    }\n    if (((byte)DAT_001195e4 & 0x40) != 0) {\n      printf("[gmon_out_read] lowpc 0x%lx highpc 0x%lx ncnt %d\n",CONCAT71(uStack_57,local_58),\n             local_50,(ulong)local_48[0]);\n      printf("[gmon_out_read] samp_bytes %d hist_num_bins %d\n",(ulong)uVar5,uVar7 & 0xffffffff);\n    }\n    if ((-1 < (int)uVar5) && (*DAT_00119b18 <= DAT_00119b18[1])) {\n      local_a4 = (uint)(iVar3 != 0);\n      if (iVar3 != 0) {\n        uVar10 = 0;\n        do {\n          sVar6 = fread(local_96,2,1,__stream);\n          uVar12 = DAT_00119b10;\n          if (sVar6 != 1) {\n            pcVar8 = (char *)dcgettext("gprof","%s: unexpected EOF after reading %d/%d bins\n",5);\n            fprintf(stderr,pcVar8,uVar12,(ulong)((int)uVar10 - 1),uVar7 & 0xffffffff);\n                    \n            FUN_0010a4c0(1);\n          }\n          iVar4 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x50))(local_96);\n          piVar1 = (int *)(DAT_00119b18[3] + uVar10 * 4);\n          *piVar1 = *piVar1 + iVar4;\n          bVar15 = iVar3 - 1 != uVar10;\n          uVar10 = uVar10 + 1;\n        } while (bVar15);\n      }\n      uVar5 = 0;\n      while ((iVar3 = FUN_00109550(__stream,&local_90), iVar3 == 0 &&\n             (iVar3 = FUN_00109550(__stream,&local_88), iVar3 == 0))) {\n        iVar3 = FUN_00109420();\n        if (iVar3 == 0) {\n          iVar3 = FUN_00109500(__stream,&local_80);\n          if (iVar3 != 0) break;\n          uVar7 = (ulong)local_80;\n        }\n        else {\n          if ((iVar3 != 1) || (iVar3 = FUN_001093d0(__stream,&local_80), iVar3 != 0)) break;\n          uVar7 = CONCAT44(uStack_7c,local_80);\n        }\n        uVar5 = uVar5 + 1;\n        if (((byte)DAT_001195e4 & 0x40) != 0) {\n          printf("[gmon_out_read] frompc 0x%lx selfpc 0x%lx count %lu\n",local_90,local_88,uVar7);\n        }\n        FUN_001040b0(local_90,local_88,uVar7);\n      }\n      local_a8 = 0;\n      if (DAT_001195e8 == 0) {\n        iVar3 = FUN_0010a4d0();\n        DAT_001195e8 = (ulong)iVar3;\n        if (DAT_001195e8 == 0) {\n          DAT_001195e8 = 1;\n          pcVar8 = (char *)dcgettext("gprof","time is in ticks, not seconds\n",5);\n          fprintf(stderr,pcVar8);\n        }\n      }\nLAB_001099b1:\n      if (stdin != __stream) {\n        fclose(__stream);\n      }\n      uVar2 = DAT_001195b4;\n      if (((byte)DAT_001195e0 & 0x20) == 0) {\n        return;\n      }\n      pcVar8 = (char *)dcgettext("gprof","File `%s\' (version %d) contains:\n",5);\n      printf(pcVar8,param_1,(ulong)uVar2);\n      if (local_a4 == 1) {\n        pcVar8 = (char *)dcgettext("gprof","\t%d histogram record\n",5);\n      }\n      else {\n        pcVar8 = (char *)dcgettext("gprof","\t%d histogram records\n",5);\n      }\n      printf(pcVar8,(ulong)local_a4);\n      if (uVar5 == 1) {\n        pcVar8 = (char *)dcgettext("gprof","\t%d call-graph record\n",5);\n      }\n      else {\n        pcVar8 = (char *)dcgettext("gprof","\t%d call-graph records\n",5);\n      }\n      printf(pcVar8,(ulong)uVar5);\n      if (local_a8 == 1) {\n        pcVar8 = (char *)dcgettext("gprof","\t%d basic-block count record\n",5);\n      }\n      else {\n        pcVar8 = (char *)dcgettext("gprof","\t%d basic-block count records\n",5);\n      }\n      printf(pcVar8,(ulong)local_a8);\n      DAT_001182d8 = 0;\n      return;\n    }\n    pcVar8 = "%s: file \'%s\' does not appear to be in gmon.out format\n";\nLAB_0010a006:\n    uVar12 = DAT_00119b10;\n    pcVar8 = (char *)dcgettext("gprof",pcVar8,5);\n    fprintf(stderr,pcVar8,uVar12,param_1);\n                    \n    FUN_0010a4c0(1);\n  }\nLAB_00109f6f:\n  pcVar8 = "%s: file too short to be a gmon file\n";\nLAB_00109f7b:\n  pcVar8 = (char *)dcgettext("gprof",pcVar8,5);\n  fprintf(stderr,pcVar8,param_1);\n                    \n  FUN_0010a4c0(1);\n}" primitive_type (function_declarator "FUN_00109740(byte *param_1)" identifier (parameter_list "(byte *param_1)" ( (parameter_declaration "byte *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  int *piVar1;\n  uint uVar2;\n  int iVar3;\n  int iVar4;\n  uint uVar5;\n  size_t sVar6;\n  ulong uVar7;\n  FILE *__stream;\n  char *pcVar8;\n  ulong *puVar9;\n  ulong uVar10;\n  long lVar11;\n  undefined8 uVar12;\n  byte *pbVar13;\n  byte *pbVar14;\n  bool bVar15;\n  bool bVar16;\n  byte bVar17;\n  uint local_a8;\n  uint local_a4;\n  undefined1 local_96 [2];\n  int local_94;\n  undefined8 local_90;\n  undefined8 local_88;\n  uint local_80;\n  undefined4 uStack_7c;\n  byte local_78 [4];\n  undefined1 local_74 [28];\n  byte local_58;\n  undefined7 uStack_57;\n  ulong local_50;\n  uint local_48 [6];\n  \n  bVar17 = 0;\n  lVar11 = 2;\n  bVar15 = &stack0xffffffffffffffd0 < (undefined1 *)0x78;\n  bVar16 = &stack0x00000000 == (undefined1 *)0xa8;\n  pbVar13 = param_1;\n  pbVar14 = &DAT_001110e7;\n  do {\n    if (lVar11 == 0) break;\n    lVar11 = lVar11 + -1;\n    bVar15 = *pbVar13 < *pbVar14;\n    bVar16 = *pbVar13 == *pbVar14;\n    pbVar13 = pbVar13 + 1;\n    pbVar14 = pbVar14 + 1;\n  } while (bVar16);\n  __stream = stdin;\n  if (((!bVar15 && !bVar16) != bVar15) &&\n     (__stream = fopen((char *)param_1,"r"), __stream == (FILE *)0x0)) goto LAB_00109ba3;\n  sVar6 = fread(local_78,0x14,1,__stream);\n  uVar12 = DAT_00119b10;\n  uVar5 = DAT_001195c0;\n  if (sVar6 != 1) goto LAB_00109f6f;\n  bVar15 = DAT_001195c0 == 0;\n  bVar16 = DAT_001195c0 == 1;\n  if (bVar16) {\n    lVar11 = 4;\n    pbVar13 = local_78;\n    pbVar14 = &DAT_001110e9;\n    do {\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar15 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar17 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar17 * -2 + 1;\n    } while (bVar16);\n    if ((!bVar15 && !bVar16) == bVar15) {\nLAB_001099fe:\n      uVar5 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x38))(local_74);\n      uVar12 = DAT_00119b10;\n      DAT_001195b4 = uVar5;\n      if (1 < uVar5) {\n        pcVar8 = (char *)dcgettext("gprof","%s: file `%s\' has unsupported version %d\n",5);\n        uVar7 = (ulong)uVar5;\nLAB_00109f08:\n        fprintf(stderr,pcVar8,uVar12,param_1,uVar7);\n                    \n        FUN_0010a4c0(1);\n      }\n      local_a8 = 0;\n      uVar5 = 0;\n      local_a4 = 0;\n      while (sVar6 = fread(&local_58,1,1,__stream), uVar12 = DAT_00119b10, sVar6 == 1) {\n        if (local_58 == 1) {\n          uVar5 = uVar5 + 1;\n          DAT_001195b8 = DAT_001195b8 | 2;\n          FUN_001041c0(__stream,param_1);\n        }\n        else if (local_58 == 0) {\n          local_a4 = local_a4 + 1;\n          DAT_001195b8 = DAT_001195b8 | 1;\n          FUN_0010b590(__stream,param_1);\n        }\n        else {\n          if (local_58 != 2) {\n            pcVar8 = (char *)dcgettext("gprof","%s: %s: found bad tag %d (file corrupted?)\n",5);\n            uVar7 = (ulong)local_58;\n            goto LAB_00109f08;\n          }\n          local_a8 = local_a8 + 1;\n          DAT_001195b8 = DAT_001195b8 | 4;\n          FUN_001034d0(__stream,param_1);\n        }\n      }\n      goto LAB_001099b1;\n    }\nLAB_00109cae:\n    pcVar8 = "%s: file `%s\' has bad magic cookie\n";\n    goto LAB_0010a006;\n  }\n  bVar15 = false;\n  bVar16 = DAT_001195c0 == 0;\n  if (bVar16) {\n    lVar11 = 4;\n    pbVar13 = local_78;\n    pbVar14 = &DAT_001110e9;\n    do {\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar15 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar17 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar17 * -2 + 1;\n    } while (bVar16);\n    if ((!bVar15 && !bVar16) == bVar15) goto LAB_001099fe;\n  }\n  else if (1 < DAT_001195c0 - 2) {\n    pcVar8 = (char *)dcgettext("gprof","%s: don\'t know how to deal with file format %d\n",5);\n    fprintf(stderr,pcVar8,uVar12,(ulong)uVar5);\n                    \n    FUN_0010a4c0(1);\n  }\n  DAT_001195b8 = 3;\n  iVar3 = fseek(__stream,0,0);\n  if (iVar3 < 0) goto LAB_00109ba3;\n  iVar3 = FUN_00109550(__stream,&local_58);\n  if ((((iVar3 == 0) && (iVar3 = FUN_00109550(__stream,&local_50), iVar3 == 0)) &&\n      (iVar3 = FUN_00109500(__stream,local_48), iVar3 == 0)) &&\n     (iVar3 = FUN_00109500(__stream,&local_94), iVar3 == 0)) {\n    if (local_94 == 0x51879) {\n      iVar3 = FUN_00109500(__stream,&local_80);\n      if (iVar3 != 0) goto LAB_00109f6f;\n      uVar7 = (ulong)local_80;\n      if ((DAT_00119b18 != (ulong *)0x0) &&\n         (uVar7 = DAT_001195e8, (long)(int)local_80 != DAT_001195e8)) {\n        pcVar8 = "%s: profiling rate incompatible with first gmon file\n";\n        goto LAB_00109f7b;\n      }\n      DAT_001195e8 = uVar7;\n      iVar3 = FUN_00109420();\n      if (iVar3 == 0) {\n        lVar11 = 0x20;\n        iVar3 = 0x20;\n      }\n      else {\n        lVar11 = 0x28;\n        if (iVar3 == 1) {\n          iVar3 = 0x28;\n        }\n        else {\n          lVar11 = 0;\n          iVar3 = 0;\n        }\n      }\n    }\n    else {\n      if (DAT_001195c0 == 3) goto LAB_00109cae;\n      iVar4 = FUN_00109420();\n      if (iVar4 == 0) {\n        lVar11 = 0xc;\n        iVar3 = 0xc;\n      }\n      else {\n        lVar11 = 0x14;\n        if (iVar4 != 1) {\n          lVar11 = 0;\n        }\n        iVar3 = 0x14;\n        if (iVar4 != 1) {\n          iVar3 = 0;\n        }\n      }\n    }\n    iVar4 = fseek(__stream,lVar11,0);\n    if (iVar4 < 0) {\nLAB_00109ba3:\n      perror((char *)param_1);\n                    \n      FUN_0010a4c0(1);\n    }\n    uVar5 = local_48[0] - iVar3;\n    uVar7 = (ulong)(long)(int)uVar5 >> 1;\n    iVar3 = (int)uVar7;\n    if (DAT_00119b18 == (ulong *)0x0) {\n      DAT_00119b20 = 1;\n      puVar9 = (ulong *)xmalloc(0x20);\n      DAT_00119b18 = puVar9;\n      *puVar9 = CONCAT71(uStack_57,local_58);\n      *(int *)(puVar9 + 2) = iVar3;\n      sVar6 = (uVar7 & 0xffffffff) << 2;\n      puVar9[1] = local_50;\n      DAT_00119b28 = (double)(local_50 - CONCAT71(uStack_57,local_58) >> 1) /\n                     (double)(uVar7 & 0xffffffff);\n      uVar10 = xmalloc(sVar6);\n      puVar9[3] = uVar10;\n      memset((void *)DAT_00119b18[3],0,sVar6);\n    }\n    else if (((CONCAT71(uStack_57,local_58) != *DAT_00119b18) || (local_50 != DAT_00119b18[1])) ||\n            ((int)DAT_00119b18[2] != iVar3)) {\n      pcVar8 = "%s: incompatible with first gmon file\n";\n      goto LAB_00109f7b;\n    }\n    if (((byte)DAT_001195e4 & 0x40) != 0) {\n      printf("[gmon_out_read] lowpc 0x%lx highpc 0x%lx ncnt %d\n",CONCAT71(uStack_57,local_58),\n             local_50,(ulong)local_48[0]);\n      printf("[gmon_out_read] samp_bytes %d hist_num_bins %d\n",(ulong)uVar5,uVar7 & 0xffffffff);\n    }\n    if ((-1 < (int)uVar5) && (*DAT_00119b18 <= DAT_00119b18[1])) {\n      local_a4 = (uint)(iVar3 != 0);\n      if (iVar3 != 0) {\n        uVar10 = 0;\n        do {\n          sVar6 = fread(local_96,2,1,__stream);\n          uVar12 = DAT_00119b10;\n          if (sVar6 != 1) {\n            pcVar8 = (char *)dcgettext("gprof","%s: unexpected EOF after reading %d/%d bins\n",5);\n            fprintf(stderr,pcVar8,uVar12,(ulong)((int)uVar10 - 1),uVar7 & 0xffffffff);\n                    \n            FUN_0010a4c0(1);\n          }\n          iVar4 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x50))(local_96);\n          piVar1 = (int *)(DAT_00119b18[3] + uVar10 * 4);\n          *piVar1 = *piVar1 + iVar4;\n          bVar15 = iVar3 - 1 != uVar10;\n          uVar10 = uVar10 + 1;\n        } while (bVar15);\n      }\n      uVar5 = 0;\n      while ((iVar3 = FUN_00109550(__stream,&local_90), iVar3 == 0 &&\n             (iVar3 = FUN_00109550(__stream,&local_88), iVar3 == 0))) {\n        iVar3 = FUN_00109420();\n        if (iVar3 == 0) {\n          iVar3 = FUN_00109500(__stream,&local_80);\n          if (iVar3 != 0) break;\n          uVar7 = (ulong)local_80;\n        }\n        else {\n          if ((iVar3 != 1) || (iVar3 = FUN_001093d0(__stream,&local_80), iVar3 != 0)) break;\n          uVar7 = CONCAT44(uStack_7c,local_80);\n        }\n        uVar5 = uVar5 + 1;\n        if (((byte)DAT_001195e4 & 0x40) != 0) {\n          printf("[gmon_out_read] frompc 0x%lx selfpc 0x%lx count %lu\n",local_90,local_88,uVar7);\n        }\n        FUN_001040b0(local_90,local_88,uVar7);\n      }\n      local_a8 = 0;\n      if (DAT_001195e8 == 0) {\n        iVar3 = FUN_0010a4d0();\n        DAT_001195e8 = (ulong)iVar3;\n        if (DAT_001195e8 == 0) {\n          DAT_001195e8 = 1;\n          pcVar8 = (char *)dcgettext("gprof","time is in ticks, not seconds\n",5);\n          fprintf(stderr,pcVar8);\n        }\n      }\nLAB_001099b1:\n      if (stdin != __stream) {\n        fclose(__stream);\n      }\n      uVar2 = DAT_001195b4;\n      if (((byte)DAT_001195e0 & 0x20) == 0) {\n        return;\n      }\n      pcVar8 = (char *)dcgettext("gprof","File `%s\' (version %d) contains:\n",5);\n      printf(pcVar8,param_1,(ulong)uVar2);\n      if (local_a4 == 1) {\n        pcVar8 = (char *)dcgettext("gprof","\t%d histogram record\n",5);\n      }\n      else {\n        pcVar8 = (char *)dcgettext("gprof","\t%d histogram records\n",5);\n      }\n      printf(pcVar8,(ulong)local_a4);\n      if (uVar5 == 1) {\n        pcVar8 = (char *)dcgettext("gprof","\t%d call-graph record\n",5);\n      }\n      else {\n        pcVar8 = (char *)dcgettext("gprof","\t%d call-graph records\n",5);\n      }\n      printf(pcVar8,(ulong)uVar5);\n      if (local_a8 == 1) {\n        pcVar8 = (char *)dcgettext("gprof","\t%d basic-block count record\n",5);\n      }\n      else {\n        pcVar8 = (char *)dcgettext("gprof","\t%d basic-block count records\n",5);\n      }\n      printf(pcVar8,(ulong)local_a8);\n      DAT_001182d8 = 0;\n      return;\n    }\n    pcVar8 = "%s: file \'%s\' does not appear to be in gmon.out format\n";\nLAB_0010a006:\n    uVar12 = DAT_00119b10;\n    pcVar8 = (char *)dcgettext("gprof",pcVar8,5);\n    fprintf(stderr,pcVar8,uVar12,param_1);\n                    \n    FUN_0010a4c0(1);\n  }\nLAB_00109f6f:\n  pcVar8 = "%s: file too short to be a gmon file\n";\nLAB_00109f7b:\n  pcVar8 = (char *)dcgettext("gprof",pcVar8,5);\n  fprintf(stderr,pcVar8,param_1);\n                    \n  FUN_0010a4c0(1);\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "size_t sVar6;" primitive_type identifier ;) (declaration "ulong uVar7;" type_identifier identifier ;) (declaration "FILE *__stream;" type_identifier (pointer_declarator "*__stream" * identifier) ;) (declaration "char *pcVar8;" primitive_type (pointer_declarator "*pcVar8" * identifier) ;) (declaration "ulong *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "ulong uVar10;" type_identifier identifier ;) (declaration "long lVar11;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 uVar12;" type_identifier identifier ;) (declaration "byte *pbVar13;" type_identifier (pointer_declarator "*pbVar13" * identifier) ;) (declaration "byte *pbVar14;" type_identifier (pointer_declarator "*pbVar14" * identifier) ;) (declaration "bool bVar15;" primitive_type identifier ;) (declaration "bool bVar16;" primitive_type identifier ;) (declaration "byte bVar17;" type_identifier identifier ;) (declaration "uint local_a8;" type_identifier identifier ;) (declaration "uint local_a4;" type_identifier identifier ;) (declaration "undefined1 local_96 [2];" type_identifier (array_declarator "local_96 [2]" identifier [ number_literal ]) ;) (declaration "int local_94;" primitive_type identifier ;) (declaration "undefined8 local_90;" type_identifier identifier ;) (declaration "undefined8 local_88;" type_identifier identifier ;) (declaration "uint local_80;" type_identifier identifier ;) (declaration "undefined4 uStack_7c;" type_identifier identifier ;) (declaration "byte local_78 [4];" type_identifier (array_declarator "local_78 [4]" identifier [ number_literal ]) ;) (declaration "undefined1 local_74 [28];" type_identifier (array_declarator "local_74 [28]" identifier [ number_literal ]) ;) (declaration "byte local_58;" type_identifier identifier ;) (declaration "undefined7 uStack_57;" type_identifier identifier ;) (declaration "ulong local_50;" type_identifier identifier ;) (declaration "uint local_48 [6];" type_identifier (array_declarator "local_48 [6]" identifier [ number_literal ]) ;) (expression_statement "bVar17 = 0;" (assignment_expression "bVar17 = 0" identifier = number_literal) ;) (expression_statement "lVar11 = 2;" (assignment_expression "lVar11 = 2" identifier = number_literal) ;) (expression_statement "bVar15 = &stack0xffffffffffffffd0 < (undefined1 *)0x78;" (assignment_expression "bVar15 = &stack0xffffffffffffffd0 < (undefined1 *)0x78" identifier = (binary_expression "&stack0xffffffffffffffd0 < (undefined1 *)0x78" (pointer_expression "&stack0xffffffffffffffd0" & identifier) < (cast_expression "(undefined1 *)0x78" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "bVar16 = &stack0x00000000 == (undefined1 *)0xa8;" (assignment_expression "bVar16 = &stack0x00000000 == (undefined1 *)0xa8" identifier = (binary_expression "&stack0x00000000 == (undefined1 *)0xa8" (pointer_expression "&stack0x00000000" & identifier) == (cast_expression "(undefined1 *)0xa8" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "pbVar13 = param_1;" (assignment_expression "pbVar13 = param_1" identifier = identifier) ;) (expression_statement "pbVar14 = &DAT_001110e7;" (assignment_expression "pbVar14 = &DAT_001110e7" identifier = (pointer_expression "&DAT_001110e7" & identifier)) ;) (do_statement "do {\n    if (lVar11 == 0) break;\n    lVar11 = lVar11 + -1;\n    bVar15 = *pbVar13 < *pbVar14;\n    bVar16 = *pbVar13 == *pbVar14;\n    pbVar13 = pbVar13 + 1;\n    pbVar14 = pbVar14 + 1;\n  } while (bVar16);" do (compound_statement "{\n    if (lVar11 == 0) break;\n    lVar11 = lVar11 + -1;\n    bVar15 = *pbVar13 < *pbVar14;\n    bVar16 = *pbVar13 == *pbVar14;\n    pbVar13 = pbVar13 + 1;\n    pbVar14 = pbVar14 + 1;\n  }" { (if_statement "if (lVar11 == 0) break;" if (parenthesized_expression "(lVar11 == 0)" ( (binary_expression "lVar11 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar11 = lVar11 + -1;" (assignment_expression "lVar11 = lVar11 + -1" identifier = (binary_expression "lVar11 + -1" identifier + number_literal)) ;) (expression_statement "bVar15 = *pbVar13 < *pbVar14;" (assignment_expression "bVar15 = *pbVar13 < *pbVar14" identifier = (binary_expression "*pbVar13 < *pbVar14" (pointer_expression "*pbVar13" * identifier) < (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "bVar16 = *pbVar13 == *pbVar14;" (assignment_expression "bVar16 = *pbVar13 == *pbVar14" identifier = (binary_expression "*pbVar13 == *pbVar14" (pointer_expression "*pbVar13" * identifier) == (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "pbVar13 = pbVar13 + 1;" (assignment_expression "pbVar13 = pbVar13 + 1" identifier = (binary_expression "pbVar13 + 1" identifier + number_literal)) ;) (expression_statement "pbVar14 = pbVar14 + 1;" (assignment_expression "pbVar14 = pbVar14 + 1" identifier = (binary_expression "pbVar14 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar16)" ( identifier )) ;) (expression_statement "__stream = stdin;" (assignment_expression "__stream = stdin" identifier = identifier) ;) (if_statement "if (((!bVar15 && !bVar16) != bVar15) &&\n     (__stream = fopen((char *)param_1,"r"), __stream == (FILE *)0x0)) goto LAB_00109ba3;" if (parenthesized_expression "(((!bVar15 && !bVar16) != bVar15) &&\n     (__stream = fopen((char *)param_1,"r"), __stream == (FILE *)0x0))" ( (binary_expression "((!bVar15 && !bVar16) != bVar15) &&\n     (__stream = fopen((char *)param_1,"r"), __stream == (FILE *)0x0)" (parenthesized_expression "((!bVar15 && !bVar16) != bVar15)" ( (binary_expression "(!bVar15 && !bVar16) != bVar15" (parenthesized_expression "(!bVar15 && !bVar16)" ( (binary_expression "!bVar15 && !bVar16" (unary_expression "!bVar15" ! identifier) && (unary_expression "!bVar16" ! identifier)) )) != identifier) )) && (parenthesized_expression "(__stream = fopen((char *)param_1,"r"), __stream == (FILE *)0x0)" ( (comma_expression "__stream = fopen((char *)param_1,"r"), __stream == (FILE *)0x0" (assignment_expression "__stream = fopen((char *)param_1,"r")" identifier = (call_expression "fopen((char *)param_1,"r")" identifier (argument_list "((char *)param_1,"r")" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""r"" " string_content ") )))) , (binary_expression "__stream == (FILE *)0x0" identifier == (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (goto_statement "goto LAB_00109ba3;" goto statement_identifier ;)) (expression_statement "sVar6 = fread(local_78,0x14,1,__stream);" (assignment_expression "sVar6 = fread(local_78,0x14,1,__stream)" identifier = (call_expression "fread(local_78,0x14,1,__stream)" identifier (argument_list "(local_78,0x14,1,__stream)" ( identifier , number_literal , number_literal , identifier )))) ;) (expression_statement "uVar12 = DAT_00119b10;" (assignment_expression "uVar12 = DAT_00119b10" identifier = identifier) ;) (expression_statement "uVar5 = DAT_001195c0;" (assignment_expression "uVar5 = DAT_001195c0" identifier = identifier) ;) (if_statement "if (sVar6 != 1) goto LAB_00109f6f;" if (parenthesized_expression "(sVar6 != 1)" ( (binary_expression "sVar6 != 1" identifier != number_literal) )) (goto_statement "goto LAB_00109f6f;" goto statement_identifier ;)) (expression_statement "bVar15 = DAT_001195c0 == 0;" (assignment_expression "bVar15 = DAT_001195c0 == 0" identifier = (binary_expression "DAT_001195c0 == 0" identifier == number_literal)) ;) (expression_statement "bVar16 = DAT_001195c0 == 1;" (assignment_expression "bVar16 = DAT_001195c0 == 1" identifier = (binary_expression "DAT_001195c0 == 1" identifier == number_literal)) ;) (if_statement "if (bVar16) {\n    lVar11 = 4;\n    pbVar13 = local_78;\n    pbVar14 = &DAT_001110e9;\n    do {\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar15 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar17 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar17 * -2 + 1;\n    } while (bVar16);\n    if ((!bVar15 && !bVar16) == bVar15) {\nLAB_001099fe:\n      uVar5 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x38))(local_74);\n      uVar12 = DAT_00119b10;\n      DAT_001195b4 = uVar5;\n      if (1 < uVar5) {\n        pcVar8 = (char *)dcgettext("gprof","%s: file `%s\' has unsupported version %d\n",5);\n        uVar7 = (ulong)uVar5;\nLAB_00109f08:\n        fprintf(stderr,pcVar8,uVar12,param_1,uVar7);\n                    \n        FUN_0010a4c0(1);\n      }\n      local_a8 = 0;\n      uVar5 = 0;\n      local_a4 = 0;\n      while (sVar6 = fread(&local_58,1,1,__stream), uVar12 = DAT_00119b10, sVar6 == 1) {\n        if (local_58 == 1) {\n          uVar5 = uVar5 + 1;\n          DAT_001195b8 = DAT_001195b8 | 2;\n          FUN_001041c0(__stream,param_1);\n        }\n        else if (local_58 == 0) {\n          local_a4 = local_a4 + 1;\n          DAT_001195b8 = DAT_001195b8 | 1;\n          FUN_0010b590(__stream,param_1);\n        }\n        else {\n          if (local_58 != 2) {\n            pcVar8 = (char *)dcgettext("gprof","%s: %s: found bad tag %d (file corrupted?)\n",5);\n            uVar7 = (ulong)local_58;\n            goto LAB_00109f08;\n          }\n          local_a8 = local_a8 + 1;\n          DAT_001195b8 = DAT_001195b8 | 4;\n          FUN_001034d0(__stream,param_1);\n        }\n      }\n      goto LAB_001099b1;\n    }\nLAB_00109cae:\n    pcVar8 = "%s: file `%s\' has bad magic cookie\n";\n    goto LAB_0010a006;\n  }" if (parenthesized_expression "(bVar16)" ( identifier )) (compound_statement "{\n    lVar11 = 4;\n    pbVar13 = local_78;\n    pbVar14 = &DAT_001110e9;\n    do {\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar15 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar17 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar17 * -2 + 1;\n    } while (bVar16);\n    if ((!bVar15 && !bVar16) == bVar15) {\nLAB_001099fe:\n      uVar5 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x38))(local_74);\n      uVar12 = DAT_00119b10;\n      DAT_001195b4 = uVar5;\n      if (1 < uVar5) {\n        pcVar8 = (char *)dcgettext("gprof","%s: file `%s\' has unsupported version %d\n",5);\n        uVar7 = (ulong)uVar5;\nLAB_00109f08:\n        fprintf(stderr,pcVar8,uVar12,param_1,uVar7);\n                    \n        FUN_0010a4c0(1);\n      }\n      local_a8 = 0;\n      uVar5 = 0;\n      local_a4 = 0;\n      while (sVar6 = fread(&local_58,1,1,__stream), uVar12 = DAT_00119b10, sVar6 == 1) {\n        if (local_58 == 1) {\n          uVar5 = uVar5 + 1;\n          DAT_001195b8 = DAT_001195b8 | 2;\n          FUN_001041c0(__stream,param_1);\n        }\n        else if (local_58 == 0) {\n          local_a4 = local_a4 + 1;\n          DAT_001195b8 = DAT_001195b8 | 1;\n          FUN_0010b590(__stream,param_1);\n        }\n        else {\n          if (local_58 != 2) {\n            pcVar8 = (char *)dcgettext("gprof","%s: %s: found bad tag %d (file corrupted?)\n",5);\n            uVar7 = (ulong)local_58;\n            goto LAB_00109f08;\n          }\n          local_a8 = local_a8 + 1;\n          DAT_001195b8 = DAT_001195b8 | 4;\n          FUN_001034d0(__stream,param_1);\n        }\n      }\n      goto LAB_001099b1;\n    }\nLAB_00109cae:\n    pcVar8 = "%s: file `%s\' has bad magic cookie\n";\n    goto LAB_0010a006;\n  }" { (expression_statement "lVar11 = 4;" (assignment_expression "lVar11 = 4" identifier = number_literal) ;) (expression_statement "pbVar13 = local_78;" (assignment_expression "pbVar13 = local_78" identifier = identifier) ;) (expression_statement "pbVar14 = &DAT_001110e9;" (assignment_expression "pbVar14 = &DAT_001110e9" identifier = (pointer_expression "&DAT_001110e9" & identifier)) ;) (do_statement "do {\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar15 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar17 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar17 * -2 + 1;\n    } while (bVar16);" do (compound_statement "{\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar15 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar17 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar17 * -2 + 1;\n    }" { (if_statement "if (lVar11 == 0) break;" if (parenthesized_expression "(lVar11 == 0)" ( (binary_expression "lVar11 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar11 = lVar11 + -1;" (assignment_expression "lVar11 = lVar11 + -1" identifier = (binary_expression "lVar11 + -1" identifier + number_literal)) ;) (expression_statement "bVar15 = *pbVar13 < *pbVar14;" (assignment_expression "bVar15 = *pbVar13 < *pbVar14" identifier = (binary_expression "*pbVar13 < *pbVar14" (pointer_expression "*pbVar13" * identifier) < (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "bVar16 = *pbVar13 == *pbVar14;" (assignment_expression "bVar16 = *pbVar13 == *pbVar14" identifier = (binary_expression "*pbVar13 == *pbVar14" (pointer_expression "*pbVar13" * identifier) == (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "pbVar13 = pbVar13 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (ulong)bVar17 * -2 + 1" identifier = (binary_expression "pbVar13 + (ulong)bVar17 * -2 + 1" (binary_expression "pbVar13 + (ulong)bVar17 * -2" identifier + (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar14 = pbVar14 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (ulong)bVar17 * -2 + 1" identifier = (binary_expression "pbVar14 + (ulong)bVar17 * -2 + 1" (binary_expression "pbVar14 + (ulong)bVar17 * -2" identifier + (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar16)" ( identifier )) ;) (if_statement "if ((!bVar15 && !bVar16) == bVar15) {\nLAB_001099fe:\n      uVar5 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x38))(local_74);\n      uVar12 = DAT_00119b10;\n      DAT_001195b4 = uVar5;\n      if (1 < uVar5) {\n        pcVar8 = (char *)dcgettext("gprof","%s: file `%s\' has unsupported version %d\n",5);\n        uVar7 = (ulong)uVar5;\nLAB_00109f08:\n        fprintf(stderr,pcVar8,uVar12,param_1,uVar7);\n                    \n        FUN_0010a4c0(1);\n      }\n      local_a8 = 0;\n      uVar5 = 0;\n      local_a4 = 0;\n      while (sVar6 = fread(&local_58,1,1,__stream), uVar12 = DAT_00119b10, sVar6 == 1) {\n        if (local_58 == 1) {\n          uVar5 = uVar5 + 1;\n          DAT_001195b8 = DAT_001195b8 | 2;\n          FUN_001041c0(__stream,param_1);\n        }\n        else if (local_58 == 0) {\n          local_a4 = local_a4 + 1;\n          DAT_001195b8 = DAT_001195b8 | 1;\n          FUN_0010b590(__stream,param_1);\n        }\n        else {\n          if (local_58 != 2) {\n            pcVar8 = (char *)dcgettext("gprof","%s: %s: found bad tag %d (file corrupted?)\n",5);\n            uVar7 = (ulong)local_58;\n            goto LAB_00109f08;\n          }\n          local_a8 = local_a8 + 1;\n          DAT_001195b8 = DAT_001195b8 | 4;\n          FUN_001034d0(__stream,param_1);\n        }\n      }\n      goto LAB_001099b1;\n    }" if (parenthesized_expression "((!bVar15 && !bVar16) == bVar15)" ( (binary_expression "(!bVar15 && !bVar16) == bVar15" (parenthesized_expression "(!bVar15 && !bVar16)" ( (binary_expression "!bVar15 && !bVar16" (unary_expression "!bVar15" ! identifier) && (unary_expression "!bVar16" ! identifier)) )) == identifier) )) (compound_statement "{\nLAB_001099fe:\n      uVar5 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x38))(local_74);\n      uVar12 = DAT_00119b10;\n      DAT_001195b4 = uVar5;\n      if (1 < uVar5) {\n        pcVar8 = (char *)dcgettext("gprof","%s: file `%s\' has unsupported version %d\n",5);\n        uVar7 = (ulong)uVar5;\nLAB_00109f08:\n        fprintf(stderr,pcVar8,uVar12,param_1,uVar7);\n                    \n        FUN_0010a4c0(1);\n      }\n      local_a8 = 0;\n      uVar5 = 0;\n      local_a4 = 0;\n      while (sVar6 = fread(&local_58,1,1,__stream), uVar12 = DAT_00119b10, sVar6 == 1) {\n        if (local_58 == 1) {\n          uVar5 = uVar5 + 1;\n          DAT_001195b8 = DAT_001195b8 | 2;\n          FUN_001041c0(__stream,param_1);\n        }\n        else if (local_58 == 0) {\n          local_a4 = local_a4 + 1;\n          DAT_001195b8 = DAT_001195b8 | 1;\n          FUN_0010b590(__stream,param_1);\n        }\n        else {\n          if (local_58 != 2) {\n            pcVar8 = (char *)dcgettext("gprof","%s: %s: found bad tag %d (file corrupted?)\n",5);\n            uVar7 = (ulong)local_58;\n            goto LAB_00109f08;\n          }\n          local_a8 = local_a8 + 1;\n          DAT_001195b8 = DAT_001195b8 | 4;\n          FUN_001034d0(__stream,param_1);\n        }\n      }\n      goto LAB_001099b1;\n    }" { (labeled_statement "LAB_001099fe:\n      uVar5 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x38))(local_74);" statement_identifier : (expression_statement "uVar5 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x38))(local_74);" (assignment_expression "uVar5 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x38))(local_74)" identifier = (call_expression "(**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x38))(local_74)" (parenthesized_expression "(**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x38))" ( (pointer_expression "**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x38)" * (pointer_expression "*(code **)(*(long *)(DAT_00119ad8 + 8) + 0x38)" * (cast_expression "(code **)(*(long *)(DAT_00119ad8 + 8) + 0x38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(DAT_00119ad8 + 8) + 0x38)" ( (binary_expression "*(long *)(DAT_00119ad8 + 8) + 0x38" (pointer_expression "*(long *)(DAT_00119ad8 + 8)" * (cast_expression "(long *)(DAT_00119ad8 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00119ad8 + 8)" ( (binary_expression "DAT_00119ad8 + 8" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(local_74)" ( identifier )))) ;)) (expression_statement "uVar12 = DAT_00119b10;" (assignment_expression "uVar12 = DAT_00119b10" identifier = identifier) ;) (expression_statement "DAT_001195b4 = uVar5;" (assignment_expression "DAT_001195b4 = uVar5" identifier = identifier) ;) (if_statement "if (1 < uVar5) {\n        pcVar8 = (char *)dcgettext("gprof","%s: file `%s\' has unsupported version %d\n",5);\n        uVar7 = (ulong)uVar5;\nLAB_00109f08:\n        fprintf(stderr,pcVar8,uVar12,param_1,uVar7);\n                    \n        FUN_0010a4c0(1);\n      }" if (parenthesized_expression "(1 < uVar5)" ( (binary_expression "1 < uVar5" number_literal < identifier) )) (compound_statement "{\n        pcVar8 = (char *)dcgettext("gprof","%s: file `%s\' has unsupported version %d\n",5);\n        uVar7 = (ulong)uVar5;\nLAB_00109f08:\n        fprintf(stderr,pcVar8,uVar12,param_1,uVar7);\n                    \n        FUN_0010a4c0(1);\n      }" { (expression_statement "pcVar8 = (char *)dcgettext("gprof","%s: file `%s\' has unsupported version %d\n",5);" (assignment_expression "pcVar8 = (char *)dcgettext("gprof","%s: file `%s\' has unsupported version %d\n",5)" identifier = (cast_expression "(char *)dcgettext("gprof","%s: file `%s\' has unsupported version %d\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext("gprof","%s: file `%s\' has unsupported version %d\n",5)" identifier (argument_list "("gprof","%s: file `%s\' has unsupported version %d\n",5)" ( (string_literal ""gprof"" " string_content ") , (string_literal ""%s: file `%s\' has unsupported version %d\n"" " string_content escape_sequence string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "uVar7 = (ulong)uVar5;" (assignment_expression "uVar7 = (ulong)uVar5" identifier = (cast_expression "(ulong)uVar5" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (labeled_statement "LAB_00109f08:\n        fprintf(stderr,pcVar8,uVar12,param_1,uVar7);" statement_identifier : (expression_statement "fprintf(stderr,pcVar8,uVar12,param_1,uVar7);" (call_expression "fprintf(stderr,pcVar8,uVar12,param_1,uVar7)" identifier (argument_list "(stderr,pcVar8,uVar12,param_1,uVar7)" ( identifier , identifier , identifier , identifier , identifier ))) ;)) (expression_statement "FUN_0010a4c0(1);" (call_expression "FUN_0010a4c0(1)" identifier (argument_list "(1)" ( number_literal ))) ;) })) (expression_statement "local_a8 = 0;" (assignment_expression "local_a8 = 0" identifier = number_literal) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (expression_statement "local_a4 = 0;" (assignment_expression "local_a4 = 0" identifier = number_literal) ;) (while_statement "while (sVar6 = fread(&local_58,1,1,__stream), uVar12 = DAT_00119b10, sVar6 == 1) {\n        if (local_58 == 1) {\n          uVar5 = uVar5 + 1;\n          DAT_001195b8 = DAT_001195b8 | 2;\n          FUN_001041c0(__stream,param_1);\n        }\n        else if (local_58 == 0) {\n          local_a4 = local_a4 + 1;\n          DAT_001195b8 = DAT_001195b8 | 1;\n          FUN_0010b590(__stream,param_1);\n        }\n        else {\n          if (local_58 != 2) {\n            pcVar8 = (char *)dcgettext("gprof","%s: %s: found bad tag %d (file corrupted?)\n",5);\n            uVar7 = (ulong)local_58;\n            goto LAB_00109f08;\n          }\n          local_a8 = local_a8 + 1;\n          DAT_001195b8 = DAT_001195b8 | 4;\n          FUN_001034d0(__stream,param_1);\n        }\n      }" while (parenthesized_expression "(sVar6 = fread(&local_58,1,1,__stream), uVar12 = DAT_00119b10, sVar6 == 1)" ( (comma_expression "sVar6 = fread(&local_58,1,1,__stream), uVar12 = DAT_00119b10, sVar6 == 1" (assignment_expression "sVar6 = fread(&local_58,1,1,__stream)" identifier = (call_expression "fread(&local_58,1,1,__stream)" identifier (argument_list "(&local_58,1,1,__stream)" ( (pointer_expression "&local_58" & identifier) , number_literal , number_literal , identifier )))) , (comma_expression "uVar12 = DAT_00119b10, sVar6 == 1" (assignment_expression "uVar12 = DAT_00119b10" identifier = identifier) , (binary_expression "sVar6 == 1" identifier == number_literal))) )) (compound_statement "{\n        if (local_58 == 1) {\n          uVar5 = uVar5 + 1;\n          DAT_001195b8 = DAT_001195b8 | 2;\n          FUN_001041c0(__stream,param_1);\n        }\n        else if (local_58 == 0) {\n          local_a4 = local_a4 + 1;\n          DAT_001195b8 = DAT_001195b8 | 1;\n          FUN_0010b590(__stream,param_1);\n        }\n        else {\n          if (local_58 != 2) {\n            pcVar8 = (char *)dcgettext("gprof","%s: %s: found bad tag %d (file corrupted?)\n",5);\n            uVar7 = (ulong)local_58;\n            goto LAB_00109f08;\n          }\n          local_a8 = local_a8 + 1;\n          DAT_001195b8 = DAT_001195b8 | 4;\n          FUN_001034d0(__stream,param_1);\n        }\n      }" { (if_statement "if (local_58 == 1) {\n          uVar5 = uVar5 + 1;\n          DAT_001195b8 = DAT_001195b8 | 2;\n          FUN_001041c0(__stream,param_1);\n        }\n        else if (local_58 == 0) {\n          local_a4 = local_a4 + 1;\n          DAT_001195b8 = DAT_001195b8 | 1;\n          FUN_0010b590(__stream,param_1);\n        }\n        else {\n          if (local_58 != 2) {\n            pcVar8 = (char *)dcgettext("gprof","%s: %s: found bad tag %d (file corrupted?)\n",5);\n            uVar7 = (ulong)local_58;\n            goto LAB_00109f08;\n          }\n          local_a8 = local_a8 + 1;\n          DAT_001195b8 = DAT_001195b8 | 4;\n          FUN_001034d0(__stream,param_1);\n        }" if (parenthesized_expression "(local_58 == 1)" ( (binary_expression "local_58 == 1" identifier == number_literal) )) (compound_statement "{\n          uVar5 = uVar5 + 1;\n          DAT_001195b8 = DAT_001195b8 | 2;\n          FUN_001041c0(__stream,param_1);\n        }" { (expression_statement "uVar5 = uVar5 + 1;" (assignment_expression "uVar5 = uVar5 + 1" identifier = (binary_expression "uVar5 + 1" identifier + number_literal)) ;) (expression_statement "DAT_001195b8 = DAT_001195b8 | 2;" (assignment_expression "DAT_001195b8 = DAT_001195b8 | 2" identifier = (binary_expression "DAT_001195b8 | 2" identifier | number_literal)) ;) (expression_statement "FUN_001041c0(__stream,param_1);" (call_expression "FUN_001041c0(__stream,param_1)" identifier (argument_list "(__stream,param_1)" ( identifier , identifier ))) ;) }) (else_clause "else if (local_58 == 0) {\n          local_a4 = local_a4 + 1;\n          DAT_001195b8 = DAT_001195b8 | 1;\n          FUN_0010b590(__stream,param_1);\n        }\n        else {\n          if (local_58 != 2) {\n            pcVar8 = (char *)dcgettext("gprof","%s: %s: found bad tag %d (file corrupted?)\n",5);\n            uVar7 = (ulong)local_58;\n            goto LAB_00109f08;\n          }\n          local_a8 = local_a8 + 1;\n          DAT_001195b8 = DAT_001195b8 | 4;\n          FUN_001034d0(__stream,param_1);\n        }" else (if_statement "if (local_58 == 0) {\n          local_a4 = local_a4 + 1;\n          DAT_001195b8 = DAT_001195b8 | 1;\n          FUN_0010b590(__stream,param_1);\n        }\n        else {\n          if (local_58 != 2) {\n            pcVar8 = (char *)dcgettext("gprof","%s: %s: found bad tag %d (file corrupted?)\n",5);\n            uVar7 = (ulong)local_58;\n            goto LAB_00109f08;\n          }\n          local_a8 = local_a8 + 1;\n          DAT_001195b8 = DAT_001195b8 | 4;\n          FUN_001034d0(__stream,param_1);\n        }" if (parenthesized_expression "(local_58 == 0)" ( (binary_expression "local_58 == 0" identifier == number_literal) )) (compound_statement "{\n          local_a4 = local_a4 + 1;\n          DAT_001195b8 = DAT_001195b8 | 1;\n          FUN_0010b590(__stream,param_1);\n        }" { (expression_statement "local_a4 = local_a4 + 1;" (assignment_expression "local_a4 = local_a4 + 1" identifier = (binary_expression "local_a4 + 1" identifier + number_literal)) ;) (expression_statement "DAT_001195b8 = DAT_001195b8 | 1;" (assignment_expression "DAT_001195b8 = DAT_001195b8 | 1" identifier = (binary_expression "DAT_001195b8 | 1" identifier | number_literal)) ;) (expression_statement "FUN_0010b590(__stream,param_1);" (call_expression "FUN_0010b590(__stream,param_1)" identifier (argument_list "(__stream,param_1)" ( identifier , identifier ))) ;) }) (else_clause "else {\n          if (local_58 != 2) {\n            pcVar8 = (char *)dcgettext("gprof","%s: %s: found bad tag %d (file corrupted?)\n",5);\n            uVar7 = (ulong)local_58;\n            goto LAB_00109f08;\n          }\n          local_a8 = local_a8 + 1;\n          DAT_001195b8 = DAT_001195b8 | 4;\n          FUN_001034d0(__stream,param_1);\n        }" else (compound_statement "{\n          if (local_58 != 2) {\n            pcVar8 = (char *)dcgettext("gprof","%s: %s: found bad tag %d (file corrupted?)\n",5);\n            uVar7 = (ulong)local_58;\n            goto LAB_00109f08;\n          }\n          local_a8 = local_a8 + 1;\n          DAT_001195b8 = DAT_001195b8 | 4;\n          FUN_001034d0(__stream,param_1);\n        }" { (if_statement "if (local_58 != 2) {\n            pcVar8 = (char *)dcgettext("gprof","%s: %s: found bad tag %d (file corrupted?)\n",5);\n            uVar7 = (ulong)local_58;\n            goto LAB_00109f08;\n          }" if (parenthesized_expression "(local_58 != 2)" ( (binary_expression "local_58 != 2" identifier != number_literal) )) (compound_statement "{\n            pcVar8 = (char *)dcgettext("gprof","%s: %s: found bad tag %d (file corrupted?)\n",5);\n            uVar7 = (ulong)local_58;\n            goto LAB_00109f08;\n          }" { (expression_statement "pcVar8 = (char *)dcgettext("gprof","%s: %s: found bad tag %d (file corrupted?)\n",5);" (assignment_expression "pcVar8 = (char *)dcgettext("gprof","%s: %s: found bad tag %d (file corrupted?)\n",5)" identifier = (cast_expression "(char *)dcgettext("gprof","%s: %s: found bad tag %d (file corrupted?)\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext("gprof","%s: %s: found bad tag %d (file corrupted?)\n",5)" identifier (argument_list "("gprof","%s: %s: found bad tag %d (file corrupted?)\n",5)" ( (string_literal ""gprof"" " string_content ") , (string_literal ""%s: %s: found bad tag %d (file corrupted?)\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "uVar7 = (ulong)local_58;" (assignment_expression "uVar7 = (ulong)local_58" identifier = (cast_expression "(ulong)local_58" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (goto_statement "goto LAB_00109f08;" goto statement_identifier ;) })) (expression_statement "local_a8 = local_a8 + 1;" (assignment_expression "local_a8 = local_a8 + 1" identifier = (binary_expression "local_a8 + 1" identifier + number_literal)) ;) (expression_statement "DAT_001195b8 = DAT_001195b8 | 4;" (assignment_expression "DAT_001195b8 = DAT_001195b8 | 4" identifier = (binary_expression "DAT_001195b8 | 4" identifier | number_literal)) ;) (expression_statement "FUN_001034d0(__stream,param_1);" (call_expression "FUN_001034d0(__stream,param_1)" identifier (argument_list "(__stream,param_1)" ( identifier , identifier ))) ;) }))))) })) (goto_statement "goto LAB_001099b1;" goto statement_identifier ;) })) (labeled_statement "LAB_00109cae:\n    pcVar8 = "%s: file `%s\' has bad magic cookie\n";" statement_identifier : (expression_statement "pcVar8 = "%s: file `%s\' has bad magic cookie\n";" (assignment_expression "pcVar8 = "%s: file `%s\' has bad magic cookie\n"" identifier = (string_literal ""%s: file `%s\' has bad magic cookie\n"" " string_content escape_sequence string_content escape_sequence ")) ;)) (goto_statement "goto LAB_0010a006;" goto statement_identifier ;) })) (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = false" identifier = false) ;) (expression_statement "bVar16 = DAT_001195c0 == 0;" (assignment_expression "bVar16 = DAT_001195c0 == 0" identifier = (binary_expression "DAT_001195c0 == 0" identifier == number_literal)) ;) (if_statement "if (bVar16) {\n    lVar11 = 4;\n    pbVar13 = local_78;\n    pbVar14 = &DAT_001110e9;\n    do {\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar15 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar17 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar17 * -2 + 1;\n    } while (bVar16);\n    if ((!bVar15 && !bVar16) == bVar15) goto LAB_001099fe;\n  }\n  else if (1 < DAT_001195c0 - 2) {\n    pcVar8 = (char *)dcgettext("gprof","%s: don\'t know how to deal with file format %d\n",5);\n    fprintf(stderr,pcVar8,uVar12,(ulong)uVar5);\n                    \n    FUN_0010a4c0(1);\n  }" if (parenthesized_expression "(bVar16)" ( identifier )) (compound_statement "{\n    lVar11 = 4;\n    pbVar13 = local_78;\n    pbVar14 = &DAT_001110e9;\n    do {\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar15 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar17 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar17 * -2 + 1;\n    } while (bVar16);\n    if ((!bVar15 && !bVar16) == bVar15) goto LAB_001099fe;\n  }" { (expression_statement "lVar11 = 4;" (assignment_expression "lVar11 = 4" identifier = number_literal) ;) (expression_statement "pbVar13 = local_78;" (assignment_expression "pbVar13 = local_78" identifier = identifier) ;) (expression_statement "pbVar14 = &DAT_001110e9;" (assignment_expression "pbVar14 = &DAT_001110e9" identifier = (pointer_expression "&DAT_001110e9" & identifier)) ;) (do_statement "do {\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar15 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar17 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar17 * -2 + 1;\n    } while (bVar16);" do (compound_statement "{\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar15 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar17 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar17 * -2 + 1;\n    }" { (if_statement "if (lVar11 == 0) break;" if (parenthesized_expression "(lVar11 == 0)" ( (binary_expression "lVar11 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar11 = lVar11 + -1;" (assignment_expression "lVar11 = lVar11 + -1" identifier = (binary_expression "lVar11 + -1" identifier + number_literal)) ;) (expression_statement "bVar15 = *pbVar13 < *pbVar14;" (assignment_expression "bVar15 = *pbVar13 < *pbVar14" identifier = (binary_expression "*pbVar13 < *pbVar14" (pointer_expression "*pbVar13" * identifier) < (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "bVar16 = *pbVar13 == *pbVar14;" (assignment_expression "bVar16 = *pbVar13 == *pbVar14" identifier = (binary_expression "*pbVar13 == *pbVar14" (pointer_expression "*pbVar13" * identifier) == (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "pbVar13 = pbVar13 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (ulong)bVar17 * -2 + 1" identifier = (binary_expression "pbVar13 + (ulong)bVar17 * -2 + 1" (binary_expression "pbVar13 + (ulong)bVar17 * -2" identifier + (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar14 = pbVar14 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (ulong)bVar17 * -2 + 1" identifier = (binary_expression "pbVar14 + (ulong)bVar17 * -2 + 1" (binary_expression "pbVar14 + (ulong)bVar17 * -2" identifier + (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar16)" ( identifier )) ;) (if_statement "if ((!bVar15 && !bVar16) == bVar15) goto LAB_001099fe;" if (parenthesized_expression "((!bVar15 && !bVar16) == bVar15)" ( (binary_expression "(!bVar15 && !bVar16) == bVar15" (parenthesized_expression "(!bVar15 && !bVar16)" ( (binary_expression "!bVar15 && !bVar16" (unary_expression "!bVar15" ! identifier) && (unary_expression "!bVar16" ! identifier)) )) == identifier) )) (goto_statement "goto LAB_001099fe;" goto statement_identifier ;)) }) (else_clause "else if (1 < DAT_001195c0 - 2) {\n    pcVar8 = (char *)dcgettext("gprof","%s: don\'t know how to deal with file format %d\n",5);\n    fprintf(stderr,pcVar8,uVar12,(ulong)uVar5);\n                    \n    FUN_0010a4c0(1);\n  }" else (if_statement "if (1 < DAT_001195c0 - 2) {\n    pcVar8 = (char *)dcgettext("gprof","%s: don\'t know how to deal with file format %d\n",5);\n    fprintf(stderr,pcVar8,uVar12,(ulong)uVar5);\n                    \n    FUN_0010a4c0(1);\n  }" if (parenthesized_expression "(1 < DAT_001195c0 - 2)" ( (binary_expression "1 < DAT_001195c0 - 2" number_literal < (binary_expression "DAT_001195c0 - 2" identifier - number_literal)) )) (compound_statement "{\n    pcVar8 = (char *)dcgettext("gprof","%s: don\'t know how to deal with file format %d\n",5);\n    fprintf(stderr,pcVar8,uVar12,(ulong)uVar5);\n                    \n    FUN_0010a4c0(1);\n  }" { (expression_statement "pcVar8 = (char *)dcgettext("gprof","%s: don\'t know how to deal with file format %d\n",5);" (assignment_expression "pcVar8 = (char *)dcgettext("gprof","%s: don\'t know how to deal with file format %d\n",5)" identifier = (cast_expression "(char *)dcgettext("gprof","%s: don\'t know how to deal with file format %d\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext("gprof","%s: don\'t know how to deal with file format %d\n",5)" identifier (argument_list "("gprof","%s: don\'t know how to deal with file format %d\n",5)" ( (string_literal ""gprof"" " string_content ") , (string_literal ""%s: don\'t know how to deal with file format %d\n"" " string_content escape_sequence string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "fprintf(stderr,pcVar8,uVar12,(ulong)uVar5);" (call_expression "fprintf(stderr,pcVar8,uVar12,(ulong)uVar5)" identifier (argument_list "(stderr,pcVar8,uVar12,(ulong)uVar5)" ( identifier , identifier , identifier , (cast_expression "(ulong)uVar5" ( (type_descriptor "ulong" type_identifier) ) identifier) ))) ;) (expression_statement "FUN_0010a4c0(1);" (call_expression "FUN_0010a4c0(1)" identifier (argument_list "(1)" ( number_literal ))) ;) })))) (expression_statement "DAT_001195b8 = 3;" (assignment_expression "DAT_001195b8 = 3" identifier = number_literal) ;) (expression_statement "iVar3 = fseek(__stream,0,0);" (assignment_expression "iVar3 = fseek(__stream,0,0)" identifier = (call_expression "fseek(__stream,0,0)" identifier (argument_list "(__stream,0,0)" ( identifier , number_literal , number_literal )))) ;) (if_statement "if (iVar3 < 0) goto LAB_00109ba3;" if (parenthesized_expression "(iVar3 < 0)" ( (binary_expression "iVar3 < 0" identifier < number_literal) )) (goto_statement "goto LAB_00109ba3;" goto statement_identifier ;)) (expression_statement "iVar3 = FUN_00109550(__stream,&local_58);" (assignment_expression "iVar3 = FUN_00109550(__stream,&local_58)" identifier = (call_expression "FUN_00109550(__stream,&local_58)" identifier (argument_list "(__stream,&local_58)" ( identifier , (pointer_expression "&local_58" & identifier) )))) ;) (if_statement "if ((((iVar3 == 0) && (iVar3 = FUN_00109550(__stream,&local_50), iVar3 == 0)) &&\n      (iVar3 = FUN_00109500(__stream,local_48), iVar3 == 0)) &&\n     (iVar3 = FUN_00109500(__stream,&local_94), iVar3 == 0)) {\n    if (local_94 == 0x51879) {\n      iVar3 = FUN_00109500(__stream,&local_80);\n      if (iVar3 != 0) goto LAB_00109f6f;\n      uVar7 = (ulong)local_80;\n      if ((DAT_00119b18 != (ulong *)0x0) &&\n         (uVar7 = DAT_001195e8, (long)(int)local_80 != DAT_001195e8)) {\n        pcVar8 = "%s: profiling rate incompatible with first gmon file\n";\n        goto LAB_00109f7b;\n      }\n      DAT_001195e8 = uVar7;\n      iVar3 = FUN_00109420();\n      if (iVar3 == 0) {\n        lVar11 = 0x20;\n        iVar3 = 0x20;\n      }\n      else {\n        lVar11 = 0x28;\n        if (iVar3 == 1) {\n          iVar3 = 0x28;\n        }\n        else {\n          lVar11 = 0;\n          iVar3 = 0;\n        }\n      }\n    }\n    else {\n      if (DAT_001195c0 == 3) goto LAB_00109cae;\n      iVar4 = FUN_00109420();\n      if (iVar4 == 0) {\n        lVar11 = 0xc;\n        iVar3 = 0xc;\n      }\n      else {\n        lVar11 = 0x14;\n        if (iVar4 != 1) {\n          lVar11 = 0;\n        }\n        iVar3 = 0x14;\n        if (iVar4 != 1) {\n          iVar3 = 0;\n        }\n      }\n    }\n    iVar4 = fseek(__stream,lVar11,0);\n    if (iVar4 < 0) {\nLAB_00109ba3:\n      perror((char *)param_1);\n                    \n      FUN_0010a4c0(1);\n    }\n    uVar5 = local_48[0] - iVar3;\n    uVar7 = (ulong)(long)(int)uVar5 >> 1;\n    iVar3 = (int)uVar7;\n    if (DAT_00119b18 == (ulong *)0x0) {\n      DAT_00119b20 = 1;\n      puVar9 = (ulong *)xmalloc(0x20);\n      DAT_00119b18 = puVar9;\n      *puVar9 = CONCAT71(uStack_57,local_58);\n      *(int *)(puVar9 + 2) = iVar3;\n      sVar6 = (uVar7 & 0xffffffff) << 2;\n      puVar9[1] = local_50;\n      DAT_00119b28 = (double)(local_50 - CONCAT71(uStack_57,local_58) >> 1) /\n                     (double)(uVar7 & 0xffffffff);\n      uVar10 = xmalloc(sVar6);\n      puVar9[3] = uVar10;\n      memset((void *)DAT_00119b18[3],0,sVar6);\n    }\n    else if (((CONCAT71(uStack_57,local_58) != *DAT_00119b18) || (local_50 != DAT_00119b18[1])) ||\n            ((int)DAT_00119b18[2] != iVar3)) {\n      pcVar8 = "%s: incompatible with first gmon file\n";\n      goto LAB_00109f7b;\n    }\n    if (((byte)DAT_001195e4 & 0x40) != 0) {\n      printf("[gmon_out_read] lowpc 0x%lx highpc 0x%lx ncnt %d\n",CONCAT71(uStack_57,local_58),\n             local_50,(ulong)local_48[0]);\n      printf("[gmon_out_read] samp_bytes %d hist_num_bins %d\n",(ulong)uVar5,uVar7 & 0xffffffff);\n    }\n    if ((-1 < (int)uVar5) && (*DAT_00119b18 <= DAT_00119b18[1])) {\n      local_a4 = (uint)(iVar3 != 0);\n      if (iVar3 != 0) {\n        uVar10 = 0;\n        do {\n          sVar6 = fread(local_96,2,1,__stream);\n          uVar12 = DAT_00119b10;\n          if (sVar6 != 1) {\n            pcVar8 = (char *)dcgettext("gprof","%s: unexpected EOF after reading %d/%d bins\n",5);\n            fprintf(stderr,pcVar8,uVar12,(ulong)((int)uVar10 - 1),uVar7 & 0xffffffff);\n                    \n            FUN_0010a4c0(1);\n          }\n          iVar4 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x50))(local_96);\n          piVar1 = (int *)(DAT_00119b18[3] + uVar10 * 4);\n          *piVar1 = *piVar1 + iVar4;\n          bVar15 = iVar3 - 1 != uVar10;\n          uVar10 = uVar10 + 1;\n        } while (bVar15);\n      }\n      uVar5 = 0;\n      while ((iVar3 = FUN_00109550(__stream,&local_90), iVar3 == 0 &&\n             (iVar3 = FUN_00109550(__stream,&local_88), iVar3 == 0))) {\n        iVar3 = FUN_00109420();\n        if (iVar3 == 0) {\n          iVar3 = FUN_00109500(__stream,&local_80);\n          if (iVar3 != 0) break;\n          uVar7 = (ulong)local_80;\n        }\n        else {\n          if ((iVar3 != 1) || (iVar3 = FUN_001093d0(__stream,&local_80), iVar3 != 0)) break;\n          uVar7 = CONCAT44(uStack_7c,local_80);\n        }\n        uVar5 = uVar5 + 1;\n        if (((byte)DAT_001195e4 & 0x40) != 0) {\n          printf("[gmon_out_read] frompc 0x%lx selfpc 0x%lx count %lu\n",local_90,local_88,uVar7);\n        }\n        FUN_001040b0(local_90,local_88,uVar7);\n      }\n      local_a8 = 0;\n      if (DAT_001195e8 == 0) {\n        iVar3 = FUN_0010a4d0();\n        DAT_001195e8 = (ulong)iVar3;\n        if (DAT_001195e8 == 0) {\n          DAT_001195e8 = 1;\n          pcVar8 = (char *)dcgettext("gprof","time is in ticks, not seconds\n",5);\n          fprintf(stderr,pcVar8);\n        }\n      }\nLAB_001099b1:\n      if (stdin != __stream) {\n        fclose(__stream);\n      }\n      uVar2 = DAT_001195b4;\n      if (((byte)DAT_001195e0 & 0x20) == 0) {\n        return;\n      }\n      pcVar8 = (char *)dcgettext("gprof","File `%s\' (version %d) contains:\n",5);\n      printf(pcVar8,param_1,(ulong)uVar2);\n      if (local_a4 == 1) {\n        pcVar8 = (char *)dcgettext("gprof","\t%d histogram record\n",5);\n      }\n      else {\n        pcVar8 = (char *)dcgettext("gprof","\t%d histogram records\n",5);\n      }\n      printf(pcVar8,(ulong)local_a4);\n      if (uVar5 == 1) {\n        pcVar8 = (char *)dcgettext("gprof","\t%d call-graph record\n",5);\n      }\n      else {\n        pcVar8 = (char *)dcgettext("gprof","\t%d call-graph records\n",5);\n      }\n      printf(pcVar8,(ulong)uVar5);\n      if (local_a8 == 1) {\n        pcVar8 = (char *)dcgettext("gprof","\t%d basic-block count record\n",5);\n      }\n      else {\n        pcVar8 = (char *)dcgettext("gprof","\t%d basic-block count records\n",5);\n      }\n      printf(pcVar8,(ulong)local_a8);\n      DAT_001182d8 = 0;\n      return;\n    }\n    pcVar8 = "%s: file \'%s\' does not appear to be in gmon.out format\n";\nLAB_0010a006:\n    uVar12 = DAT_00119b10;\n    pcVar8 = (char *)dcgettext("gprof",pcVar8,5);\n    fprintf(stderr,pcVar8,uVar12,param_1);\n                    \n    FUN_0010a4c0(1);\n  }" if (parenthesized_expression "((((iVar3 == 0) && (iVar3 = FUN_00109550(__stream,&local_50), iVar3 == 0)) &&\n      (iVar3 = FUN_00109500(__stream,local_48), iVar3 == 0)) &&\n     (iVar3 = FUN_00109500(__stream,&local_94), iVar3 == 0))" ( (binary_expression "(((iVar3 == 0) && (iVar3 = FUN_00109550(__stream,&local_50), iVar3 == 0)) &&\n      (iVar3 = FUN_00109500(__stream,local_48), iVar3 == 0)) &&\n     (iVar3 = FUN_00109500(__stream,&local_94), iVar3 == 0)" (parenthesized_expression "(((iVar3 == 0) && (iVar3 = FUN_00109550(__stream,&local_50), iVar3 == 0)) &&\n      (iVar3 = FUN_00109500(__stream,local_48), iVar3 == 0))" ( (binary_expression "((iVar3 == 0) && (iVar3 = FUN_00109550(__stream,&local_50), iVar3 == 0)) &&\n      (iVar3 = FUN_00109500(__stream,local_48), iVar3 == 0)" (parenthesized_expression "((iVar3 == 0) && (iVar3 = FUN_00109550(__stream,&local_50), iVar3 == 0))" ( (binary_expression "(iVar3 == 0) && (iVar3 = FUN_00109550(__stream,&local_50), iVar3 == 0)" (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) && (parenthesized_expression "(iVar3 = FUN_00109550(__stream,&local_50), iVar3 == 0)" ( (comma_expression "iVar3 = FUN_00109550(__stream,&local_50), iVar3 == 0" (assignment_expression "iVar3 = FUN_00109550(__stream,&local_50)" identifier = (call_expression "FUN_00109550(__stream,&local_50)" identifier (argument_list "(__stream,&local_50)" ( identifier , (pointer_expression "&local_50" & identifier) )))) , (binary_expression "iVar3 == 0" identifier == number_literal)) ))) )) && (parenthesized_expression "(iVar3 = FUN_00109500(__stream,local_48), iVar3 == 0)" ( (comma_expression "iVar3 = FUN_00109500(__stream,local_48), iVar3 == 0" (assignment_expression "iVar3 = FUN_00109500(__stream,local_48)" identifier = (call_expression "FUN_00109500(__stream,local_48)" identifier (argument_list "(__stream,local_48)" ( identifier , identifier )))) , (binary_expression "iVar3 == 0" identifier == number_literal)) ))) )) && (parenthesized_expression "(iVar3 = FUN_00109500(__stream,&local_94), iVar3 == 0)" ( (comma_expression "iVar3 = FUN_00109500(__stream,&local_94), iVar3 == 0" (assignment_expression "iVar3 = FUN_00109500(__stream,&local_94)" identifier = (call_expression "FUN_00109500(__stream,&local_94)" identifier (argument_list "(__stream,&local_94)" ( identifier , (pointer_expression "&local_94" & identifier) )))) , (binary_expression "iVar3 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n    if (local_94 == 0x51879) {\n      iVar3 = FUN_00109500(__stream,&local_80);\n      if (iVar3 != 0) goto LAB_00109f6f;\n      uVar7 = (ulong)local_80;\n      if ((DAT_00119b18 != (ulong *)0x0) &&\n         (uVar7 = DAT_001195e8, (long)(int)local_80 != DAT_001195e8)) {\n        pcVar8 = "%s: profiling rate incompatible with first gmon file\n";\n        goto LAB_00109f7b;\n      }\n      DAT_001195e8 = uVar7;\n      iVar3 = FUN_00109420();\n      if (iVar3 == 0) {\n        lVar11 = 0x20;\n        iVar3 = 0x20;\n      }\n      else {\n        lVar11 = 0x28;\n        if (iVar3 == 1) {\n          iVar3 = 0x28;\n        }\n        else {\n          lVar11 = 0;\n          iVar3 = 0;\n        }\n      }\n    }\n    else {\n      if (DAT_001195c0 == 3) goto LAB_00109cae;\n      iVar4 = FUN_00109420();\n      if (iVar4 == 0) {\n        lVar11 = 0xc;\n        iVar3 = 0xc;\n      }\n      else {\n        lVar11 = 0x14;\n        if (iVar4 != 1) {\n          lVar11 = 0;\n        }\n        iVar3 = 0x14;\n        if (iVar4 != 1) {\n          iVar3 = 0;\n        }\n      }\n    }\n    iVar4 = fseek(__stream,lVar11,0);\n    if (iVar4 < 0) {\nLAB_00109ba3:\n      perror((char *)param_1);\n                    \n      FUN_0010a4c0(1);\n    }\n    uVar5 = local_48[0] - iVar3;\n    uVar7 = (ulong)(long)(int)uVar5 >> 1;\n    iVar3 = (int)uVar7;\n    if (DAT_00119b18 == (ulong *)0x0) {\n      DAT_00119b20 = 1;\n      puVar9 = (ulong *)xmalloc(0x20);\n      DAT_00119b18 = puVar9;\n      *puVar9 = CONCAT71(uStack_57,local_58);\n      *(int *)(puVar9 + 2) = iVar3;\n      sVar6 = (uVar7 & 0xffffffff) << 2;\n      puVar9[1] = local_50;\n      DAT_00119b28 = (double)(local_50 - CONCAT71(uStack_57,local_58) >> 1) /\n                     (double)(uVar7 & 0xffffffff);\n      uVar10 = xmalloc(sVar6);\n      puVar9[3] = uVar10;\n      memset((void *)DAT_00119b18[3],0,sVar6);\n    }\n    else if (((CONCAT71(uStack_57,local_58) != *DAT_00119b18) || (local_50 != DAT_00119b18[1])) ||\n            ((int)DAT_00119b18[2] != iVar3)) {\n      pcVar8 = "%s: incompatible with first gmon file\n";\n      goto LAB_00109f7b;\n    }\n    if (((byte)DAT_001195e4 & 0x40) != 0) {\n      printf("[gmon_out_read] lowpc 0x%lx highpc 0x%lx ncnt %d\n",CONCAT71(uStack_57,local_58),\n             local_50,(ulong)local_48[0]);\n      printf("[gmon_out_read] samp_bytes %d hist_num_bins %d\n",(ulong)uVar5,uVar7 & 0xffffffff);\n    }\n    if ((-1 < (int)uVar5) && (*DAT_00119b18 <= DAT_00119b18[1])) {\n      local_a4 = (uint)(iVar3 != 0);\n      if (iVar3 != 0) {\n        uVar10 = 0;\n        do {\n          sVar6 = fread(local_96,2,1,__stream);\n          uVar12 = DAT_00119b10;\n          if (sVar6 != 1) {\n            pcVar8 = (char *)dcgettext("gprof","%s: unexpected EOF after reading %d/%d bins\n",5);\n            fprintf(stderr,pcVar8,uVar12,(ulong)((int)uVar10 - 1),uVar7 & 0xffffffff);\n                    \n            FUN_0010a4c0(1);\n          }\n          iVar4 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x50))(local_96);\n          piVar1 = (int *)(DAT_00119b18[3] + uVar10 * 4);\n          *piVar1 = *piVar1 + iVar4;\n          bVar15 = iVar3 - 1 != uVar10;\n          uVar10 = uVar10 + 1;\n        } while (bVar15);\n      }\n      uVar5 = 0;\n      while ((iVar3 = FUN_00109550(__stream,&local_90), iVar3 == 0 &&\n             (iVar3 = FUN_00109550(__stream,&local_88), iVar3 == 0))) {\n        iVar3 = FUN_00109420();\n        if (iVar3 == 0) {\n          iVar3 = FUN_00109500(__stream,&local_80);\n          if (iVar3 != 0) break;\n          uVar7 = (ulong)local_80;\n        }\n        else {\n          if ((iVar3 != 1) || (iVar3 = FUN_001093d0(__stream,&local_80), iVar3 != 0)) break;\n          uVar7 = CONCAT44(uStack_7c,local_80);\n        }\n        uVar5 = uVar5 + 1;\n        if (((byte)DAT_001195e4 & 0x40) != 0) {\n          printf("[gmon_out_read] frompc 0x%lx selfpc 0x%lx count %lu\n",local_90,local_88,uVar7);\n        }\n        FUN_001040b0(local_90,local_88,uVar7);\n      }\n      local_a8 = 0;\n      if (DAT_001195e8 == 0) {\n        iVar3 = FUN_0010a4d0();\n        DAT_001195e8 = (ulong)iVar3;\n        if (DAT_001195e8 == 0) {\n          DAT_001195e8 = 1;\n          pcVar8 = (char *)dcgettext("gprof","time is in ticks, not seconds\n",5);\n          fprintf(stderr,pcVar8);\n        }\n      }\nLAB_001099b1:\n      if (stdin != __stream) {\n        fclose(__stream);\n      }\n      uVar2 = DAT_001195b4;\n      if (((byte)DAT_001195e0 & 0x20) == 0) {\n        return;\n      }\n      pcVar8 = (char *)dcgettext("gprof","File `%s\' (version %d) contains:\n",5);\n      printf(pcVar8,param_1,(ulong)uVar2);\n      if (local_a4 == 1) {\n        pcVar8 = (char *)dcgettext("gprof","\t%d histogram record\n",5);\n      }\n      else {\n        pcVar8 = (char *)dcgettext("gprof","\t%d histogram records\n",5);\n      }\n      printf(pcVar8,(ulong)local_a4);\n      if (uVar5 == 1) {\n        pcVar8 = (char *)dcgettext("gprof","\t%d call-graph record\n",5);\n      }\n      else {\n        pcVar8 = (char *)dcgettext("gprof","\t%d call-graph records\n",5);\n      }\n      printf(pcVar8,(ulong)uVar5);\n      if (local_a8 == 1) {\n        pcVar8 = (char *)dcgettext("gprof","\t%d basic-block count record\n",5);\n      }\n      else {\n        pcVar8 = (char *)dcgettext("gprof","\t%d basic-block count records\n",5);\n      }\n      printf(pcVar8,(ulong)local_a8);\n      DAT_001182d8 = 0;\n      return;\n    }\n    pcVar8 = "%s: file \'%s\' does not appear to be in gmon.out format\n";\nLAB_0010a006:\n    uVar12 = DAT_00119b10;\n    pcVar8 = (char *)dcgettext("gprof",pcVar8,5);\n    fprintf(stderr,pcVar8,uVar12,param_1);\n                    \n    FUN_0010a4c0(1);\n  }" { (if_statement "if (local_94 == 0x51879) {\n      iVar3 = FUN_00109500(__stream,&local_80);\n      if (iVar3 != 0) goto LAB_00109f6f;\n      uVar7 = (ulong)local_80;\n      if ((DAT_00119b18 != (ulong *)0x0) &&\n         (uVar7 = DAT_001195e8, (long)(int)local_80 != DAT_001195e8)) {\n        pcVar8 = "%s: profiling rate incompatible with first gmon file\n";\n        goto LAB_00109f7b;\n      }\n      DAT_001195e8 = uVar7;\n      iVar3 = FUN_00109420();\n      if (iVar3 == 0) {\n        lVar11 = 0x20;\n        iVar3 = 0x20;\n      }\n      else {\n        lVar11 = 0x28;\n        if (iVar3 == 1) {\n          iVar3 = 0x28;\n        }\n        else {\n          lVar11 = 0;\n          iVar3 = 0;\n        }\n      }\n    }\n    else {\n      if (DAT_001195c0 == 3) goto LAB_00109cae;\n      iVar4 = FUN_00109420();\n      if (iVar4 == 0) {\n        lVar11 = 0xc;\n        iVar3 = 0xc;\n      }\n      else {\n        lVar11 = 0x14;\n        if (iVar4 != 1) {\n          lVar11 = 0;\n        }\n        iVar3 = 0x14;\n        if (iVar4 != 1) {\n          iVar3 = 0;\n        }\n      }\n    }" if (parenthesized_expression "(local_94 == 0x51879)" ( (binary_expression "local_94 == 0x51879" identifier == number_literal) )) (compound_statement "{\n      iVar3 = FUN_00109500(__stream,&local_80);\n      if (iVar3 != 0) goto LAB_00109f6f;\n      uVar7 = (ulong)local_80;\n      if ((DAT_00119b18 != (ulong *)0x0) &&\n         (uVar7 = DAT_001195e8, (long)(int)local_80 != DAT_001195e8)) {\n        pcVar8 = "%s: profiling rate incompatible with first gmon file\n";\n        goto LAB_00109f7b;\n      }\n      DAT_001195e8 = uVar7;\n      iVar3 = FUN_00109420();\n      if (iVar3 == 0) {\n        lVar11 = 0x20;\n        iVar3 = 0x20;\n      }\n      else {\n        lVar11 = 0x28;\n        if (iVar3 == 1) {\n          iVar3 = 0x28;\n        }\n        else {\n          lVar11 = 0;\n          iVar3 = 0;\n        }\n      }\n    }" { (expression_statement "iVar3 = FUN_00109500(__stream,&local_80);" (assignment_expression "iVar3 = FUN_00109500(__stream,&local_80)" identifier = (call_expression "FUN_00109500(__stream,&local_80)" identifier (argument_list "(__stream,&local_80)" ( identifier , (pointer_expression "&local_80" & identifier) )))) ;) (if_statement "if (iVar3 != 0) goto LAB_00109f6f;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00109f6f;" goto statement_identifier ;)) (expression_statement "uVar7 = (ulong)local_80;" (assignment_expression "uVar7 = (ulong)local_80" identifier = (cast_expression "(ulong)local_80" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (if_statement "if ((DAT_00119b18 != (ulong *)0x0) &&\n         (uVar7 = DAT_001195e8, (long)(int)local_80 != DAT_001195e8)) {\n        pcVar8 = "%s: profiling rate incompatible with first gmon file\n";\n        goto LAB_00109f7b;\n      }" if (parenthesized_expression "((DAT_00119b18 != (ulong *)0x0) &&\n         (uVar7 = DAT_001195e8, (long)(int)local_80 != DAT_001195e8))" ( (binary_expression "(DAT_00119b18 != (ulong *)0x0) &&\n         (uVar7 = DAT_001195e8, (long)(int)local_80 != DAT_001195e8)" (parenthesized_expression "(DAT_00119b18 != (ulong *)0x0)" ( (binary_expression "DAT_00119b18 != (ulong *)0x0" identifier != (cast_expression "(ulong *)0x0" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(uVar7 = DAT_001195e8, (long)(int)local_80 != DAT_001195e8)" ( (comma_expression "uVar7 = DAT_001195e8, (long)(int)local_80 != DAT_001195e8" (assignment_expression "uVar7 = DAT_001195e8" identifier = identifier) , (binary_expression "(long)(int)local_80 != DAT_001195e8" (cast_expression "(long)(int)local_80" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)local_80" ( (type_descriptor "int" primitive_type) ) identifier)) != identifier)) ))) )) (compound_statement "{\n        pcVar8 = "%s: profiling rate incompatible with first gmon file\n";\n        goto LAB_00109f7b;\n      }" { (expression_statement "pcVar8 = "%s: profiling rate incompatible with first gmon file\n";" (assignment_expression "pcVar8 = "%s: profiling rate incompatible with first gmon file\n"" identifier = (string_literal ""%s: profiling rate incompatible with first gmon file\n"" " string_content escape_sequence ")) ;) (goto_statement "goto LAB_00109f7b;" goto statement_identifier ;) })) (expression_statement "DAT_001195e8 = uVar7;" (assignment_expression "DAT_001195e8 = uVar7" identifier = identifier) ;) (expression_statement "iVar3 = FUN_00109420();" (assignment_expression "iVar3 = FUN_00109420()" identifier = (call_expression "FUN_00109420()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar3 == 0) {\n        lVar11 = 0x20;\n        iVar3 = 0x20;\n      }\n      else {\n        lVar11 = 0x28;\n        if (iVar3 == 1) {\n          iVar3 = 0x28;\n        }\n        else {\n          lVar11 = 0;\n          iVar3 = 0;\n        }\n      }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n        lVar11 = 0x20;\n        iVar3 = 0x20;\n      }" { (expression_statement "lVar11 = 0x20;" (assignment_expression "lVar11 = 0x20" identifier = number_literal) ;) (expression_statement "iVar3 = 0x20;" (assignment_expression "iVar3 = 0x20" identifier = number_literal) ;) }) (else_clause "else {\n        lVar11 = 0x28;\n        if (iVar3 == 1) {\n          iVar3 = 0x28;\n        }\n        else {\n          lVar11 = 0;\n          iVar3 = 0;\n        }\n      }" else (compound_statement "{\n        lVar11 = 0x28;\n        if (iVar3 == 1) {\n          iVar3 = 0x28;\n        }\n        else {\n          lVar11 = 0;\n          iVar3 = 0;\n        }\n      }" { (expression_statement "lVar11 = 0x28;" (assignment_expression "lVar11 = 0x28" identifier = number_literal) ;) (if_statement "if (iVar3 == 1) {\n          iVar3 = 0x28;\n        }\n        else {\n          lVar11 = 0;\n          iVar3 = 0;\n        }" if (parenthesized_expression "(iVar3 == 1)" ( (binary_expression "iVar3 == 1" identifier == number_literal) )) (compound_statement "{\n          iVar3 = 0x28;\n        }" { (expression_statement "iVar3 = 0x28;" (assignment_expression "iVar3 = 0x28" identifier = number_literal) ;) }) (else_clause "else {\n          lVar11 = 0;\n          iVar3 = 0;\n        }" else (compound_statement "{\n          lVar11 = 0;\n          iVar3 = 0;\n        }" { (expression_statement "lVar11 = 0;" (assignment_expression "lVar11 = 0" identifier = number_literal) ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) }))) }))) }) (else_clause "else {\n      if (DAT_001195c0 == 3) goto LAB_00109cae;\n      iVar4 = FUN_00109420();\n      if (iVar4 == 0) {\n        lVar11 = 0xc;\n        iVar3 = 0xc;\n      }\n      else {\n        lVar11 = 0x14;\n        if (iVar4 != 1) {\n          lVar11 = 0;\n        }\n        iVar3 = 0x14;\n        if (iVar4 != 1) {\n          iVar3 = 0;\n        }\n      }\n    }" else (compound_statement "{\n      if (DAT_001195c0 == 3) goto LAB_00109cae;\n      iVar4 = FUN_00109420();\n      if (iVar4 == 0) {\n        lVar11 = 0xc;\n        iVar3 = 0xc;\n      }\n      else {\n        lVar11 = 0x14;\n        if (iVar4 != 1) {\n          lVar11 = 0;\n        }\n        iVar3 = 0x14;\n        if (iVar4 != 1) {\n          iVar3 = 0;\n        }\n      }\n    }" { (if_statement "if (DAT_001195c0 == 3) goto LAB_00109cae;" if (parenthesized_expression "(DAT_001195c0 == 3)" ( (binary_expression "DAT_001195c0 == 3" identifier == number_literal) )) (goto_statement "goto LAB_00109cae;" goto statement_identifier ;)) (expression_statement "iVar4 = FUN_00109420();" (assignment_expression "iVar4 = FUN_00109420()" identifier = (call_expression "FUN_00109420()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar4 == 0) {\n        lVar11 = 0xc;\n        iVar3 = 0xc;\n      }\n      else {\n        lVar11 = 0x14;\n        if (iVar4 != 1) {\n          lVar11 = 0;\n        }\n        iVar3 = 0x14;\n        if (iVar4 != 1) {\n          iVar3 = 0;\n        }\n      }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n        lVar11 = 0xc;\n        iVar3 = 0xc;\n      }" { (expression_statement "lVar11 = 0xc;" (assignment_expression "lVar11 = 0xc" identifier = number_literal) ;) (expression_statement "iVar3 = 0xc;" (assignment_expression "iVar3 = 0xc" identifier = number_literal) ;) }) (else_clause "else {\n        lVar11 = 0x14;\n        if (iVar4 != 1) {\n          lVar11 = 0;\n        }\n        iVar3 = 0x14;\n        if (iVar4 != 1) {\n          iVar3 = 0;\n        }\n      }" else (compound_statement "{\n        lVar11 = 0x14;\n        if (iVar4 != 1) {\n          lVar11 = 0;\n        }\n        iVar3 = 0x14;\n        if (iVar4 != 1) {\n          iVar3 = 0;\n        }\n      }" { (expression_statement "lVar11 = 0x14;" (assignment_expression "lVar11 = 0x14" identifier = number_literal) ;) (if_statement "if (iVar4 != 1) {\n          lVar11 = 0;\n        }" if (parenthesized_expression "(iVar4 != 1)" ( (binary_expression "iVar4 != 1" identifier != number_literal) )) (compound_statement "{\n          lVar11 = 0;\n        }" { (expression_statement "lVar11 = 0;" (assignment_expression "lVar11 = 0" identifier = number_literal) ;) })) (expression_statement "iVar3 = 0x14;" (assignment_expression "iVar3 = 0x14" identifier = number_literal) ;) (if_statement "if (iVar4 != 1) {\n          iVar3 = 0;\n        }" if (parenthesized_expression "(iVar4 != 1)" ( (binary_expression "iVar4 != 1" identifier != number_literal) )) (compound_statement "{\n          iVar3 = 0;\n        }" { (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) })) }))) }))) (expression_statement "iVar4 = fseek(__stream,lVar11,0);" (assignment_expression "iVar4 = fseek(__stream,lVar11,0)" identifier = (call_expression "fseek(__stream,lVar11,0)" identifier (argument_list "(__stream,lVar11,0)" ( identifier , identifier , number_literal )))) ;) (if_statement "if (iVar4 < 0) {\nLAB_00109ba3:\n      perror((char *)param_1);\n                    \n      FUN_0010a4c0(1);\n    }" if (parenthesized_expression "(iVar4 < 0)" ( (binary_expression "iVar4 < 0" identifier < number_literal) )) (compound_statement "{\nLAB_00109ba3:\n      perror((char *)param_1);\n                    \n      FUN_0010a4c0(1);\n    }" { (labeled_statement "LAB_00109ba3:\n      perror((char *)param_1);" statement_identifier : (expression_statement "perror((char *)param_1);" (call_expression "perror((char *)param_1)" identifier (argument_list "((char *)param_1)" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ))) ;)) (expression_statement "FUN_0010a4c0(1);" (call_expression "FUN_0010a4c0(1)" identifier (argument_list "(1)" ( number_literal ))) ;) })) (expression_statement "uVar5 = local_48[0] - iVar3;" (assignment_expression "uVar5 = local_48[0] - iVar3" identifier = (binary_expression "local_48[0] - iVar3" (subscript_expression "local_48[0]" identifier [ number_literal ]) - identifier)) ;) (expression_statement "uVar7 = (ulong)(long)(int)uVar5 >> 1;" (assignment_expression "uVar7 = (ulong)(long)(int)uVar5 >> 1" identifier = (binary_expression "(ulong)(long)(int)uVar5 >> 1" (cast_expression "(ulong)(long)(int)uVar5" ( (type_descriptor "ulong" type_identifier) ) (cast_expression "(long)(int)uVar5" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)uVar5" ( (type_descriptor "int" primitive_type) ) identifier))) >> number_literal)) ;) (expression_statement "iVar3 = (int)uVar7;" (assignment_expression "iVar3 = (int)uVar7" identifier = (cast_expression "(int)uVar7" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (DAT_00119b18 == (ulong *)0x0) {\n      DAT_00119b20 = 1;\n      puVar9 = (ulong *)xmalloc(0x20);\n      DAT_00119b18 = puVar9;\n      *puVar9 = CONCAT71(uStack_57,local_58);\n      *(int *)(puVar9 + 2) = iVar3;\n      sVar6 = (uVar7 & 0xffffffff) << 2;\n      puVar9[1] = local_50;\n      DAT_00119b28 = (double)(local_50 - CONCAT71(uStack_57,local_58) >> 1) /\n                     (double)(uVar7 & 0xffffffff);\n      uVar10 = xmalloc(sVar6);\n      puVar9[3] = uVar10;\n      memset((void *)DAT_00119b18[3],0,sVar6);\n    }\n    else if (((CONCAT71(uStack_57,local_58) != *DAT_00119b18) || (local_50 != DAT_00119b18[1])) ||\n            ((int)DAT_00119b18[2] != iVar3)) {\n      pcVar8 = "%s: incompatible with first gmon file\n";\n      goto LAB_00109f7b;\n    }" if (parenthesized_expression "(DAT_00119b18 == (ulong *)0x0)" ( (binary_expression "DAT_00119b18 == (ulong *)0x0" identifier == (cast_expression "(ulong *)0x0" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      DAT_00119b20 = 1;\n      puVar9 = (ulong *)xmalloc(0x20);\n      DAT_00119b18 = puVar9;\n      *puVar9 = CONCAT71(uStack_57,local_58);\n      *(int *)(puVar9 + 2) = iVar3;\n      sVar6 = (uVar7 & 0xffffffff) << 2;\n      puVar9[1] = local_50;\n      DAT_00119b28 = (double)(local_50 - CONCAT71(uStack_57,local_58) >> 1) /\n                     (double)(uVar7 & 0xffffffff);\n      uVar10 = xmalloc(sVar6);\n      puVar9[3] = uVar10;\n      memset((void *)DAT_00119b18[3],0,sVar6);\n    }" { (expression_statement "DAT_00119b20 = 1;" (assignment_expression "DAT_00119b20 = 1" identifier = number_literal) ;) (expression_statement "puVar9 = (ulong *)xmalloc(0x20);" (assignment_expression "puVar9 = (ulong *)xmalloc(0x20)" identifier = (cast_expression "(ulong *)xmalloc(0x20)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(0x20)" identifier (argument_list "(0x20)" ( number_literal ))))) ;) (expression_statement "DAT_00119b18 = puVar9;" (assignment_expression "DAT_00119b18 = puVar9" identifier = identifier) ;) (expression_statement "*puVar9 = CONCAT71(uStack_57,local_58);" (assignment_expression "*puVar9 = CONCAT71(uStack_57,local_58)" (pointer_expression "*puVar9" * identifier) = (call_expression "CONCAT71(uStack_57,local_58)" identifier (argument_list "(uStack_57,local_58)" ( identifier , identifier )))) ;) (expression_statement "*(int *)(puVar9 + 2) = iVar3;" (assignment_expression "*(int *)(puVar9 + 2) = iVar3" (pointer_expression "*(int *)(puVar9 + 2)" * (cast_expression "(int *)(puVar9 + 2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + 2)" ( (binary_expression "puVar9 + 2" identifier + number_literal) )))) = identifier) ;) (expression_statement "sVar6 = (uVar7 & 0xffffffff) << 2;" (assignment_expression "sVar6 = (uVar7 & 0xffffffff) << 2" identifier = (binary_expression "(uVar7 & 0xffffffff) << 2" (parenthesized_expression "(uVar7 & 0xffffffff)" ( (binary_expression "uVar7 & 0xffffffff" identifier & number_literal) )) << number_literal)) ;) (expression_statement "puVar9[1] = local_50;" (assignment_expression "puVar9[1] = local_50" (subscript_expression "puVar9[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "DAT_00119b28 = (double)(local_50 - CONCAT71(uStack_57,local_58) >> 1) /\n                     (double)(uVar7 & 0xffffffff);" (assignment_expression "DAT_00119b28 = (double)(local_50 - CONCAT71(uStack_57,local_58) >> 1) /\n                     (double)(uVar7 & 0xffffffff)" identifier = (binary_expression "(double)(local_50 - CONCAT71(uStack_57,local_58) >> 1) /\n                     (double)(uVar7 & 0xffffffff)" (cast_expression "(double)(local_50 - CONCAT71(uStack_57,local_58) >> 1)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "(local_50 - CONCAT71(uStack_57,local_58) >> 1)" ( (binary_expression "local_50 - CONCAT71(uStack_57,local_58) >> 1" (binary_expression "local_50 - CONCAT71(uStack_57,local_58)" identifier - (call_expression "CONCAT71(uStack_57,local_58)" identifier (argument_list "(uStack_57,local_58)" ( identifier , identifier )))) >> number_literal) ))) / (cast_expression "(double)(uVar7 & 0xffffffff)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "(uVar7 & 0xffffffff)" ( (binary_expression "uVar7 & 0xffffffff" identifier & number_literal) ))))) ;) (expression_statement "uVar10 = xmalloc(sVar6);" (assignment_expression "uVar10 = xmalloc(sVar6)" identifier = (call_expression "xmalloc(sVar6)" identifier (argument_list "(sVar6)" ( identifier )))) ;) (expression_statement "puVar9[3] = uVar10;" (assignment_expression "puVar9[3] = uVar10" (subscript_expression "puVar9[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "memset((void *)DAT_00119b18[3],0,sVar6);" (call_expression "memset((void *)DAT_00119b18[3],0,sVar6)" identifier (argument_list "((void *)DAT_00119b18[3],0,sVar6)" ( (cast_expression "(void *)DAT_00119b18[3]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "DAT_00119b18[3]" identifier [ number_literal ])) , number_literal , identifier ))) ;) }) (else_clause "else if (((CONCAT71(uStack_57,local_58) != *DAT_00119b18) || (local_50 != DAT_00119b18[1])) ||\n            ((int)DAT_00119b18[2] != iVar3)) {\n      pcVar8 = "%s: incompatible with first gmon file\n";\n      goto LAB_00109f7b;\n    }" else (if_statement "if (((CONCAT71(uStack_57,local_58) != *DAT_00119b18) || (local_50 != DAT_00119b18[1])) ||\n            ((int)DAT_00119b18[2] != iVar3)) {\n      pcVar8 = "%s: incompatible with first gmon file\n";\n      goto LAB_00109f7b;\n    }" if (parenthesized_expression "(((CONCAT71(uStack_57,local_58) != *DAT_00119b18) || (local_50 != DAT_00119b18[1])) ||\n            ((int)DAT_00119b18[2] != iVar3))" ( (binary_expression "((CONCAT71(uStack_57,local_58) != *DAT_00119b18) || (local_50 != DAT_00119b18[1])) ||\n            ((int)DAT_00119b18[2] != iVar3)" (parenthesized_expression "((CONCAT71(uStack_57,local_58) != *DAT_00119b18) || (local_50 != DAT_00119b18[1]))" ( (binary_expression "(CONCAT71(uStack_57,local_58) != *DAT_00119b18) || (local_50 != DAT_00119b18[1])" (parenthesized_expression "(CONCAT71(uStack_57,local_58) != *DAT_00119b18)" ( (binary_expression "CONCAT71(uStack_57,local_58) != *DAT_00119b18" (call_expression "CONCAT71(uStack_57,local_58)" identifier (argument_list "(uStack_57,local_58)" ( identifier , identifier ))) != (pointer_expression "*DAT_00119b18" * identifier)) )) || (parenthesized_expression "(local_50 != DAT_00119b18[1])" ( (binary_expression "local_50 != DAT_00119b18[1]" identifier != (subscript_expression "DAT_00119b18[1]" identifier [ number_literal ])) ))) )) || (parenthesized_expression "((int)DAT_00119b18[2] != iVar3)" ( (binary_expression "(int)DAT_00119b18[2] != iVar3" (cast_expression "(int)DAT_00119b18[2]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "DAT_00119b18[2]" identifier [ number_literal ])) != identifier) ))) )) (compound_statement "{\n      pcVar8 = "%s: incompatible with first gmon file\n";\n      goto LAB_00109f7b;\n    }" { (expression_statement "pcVar8 = "%s: incompatible with first gmon file\n";" (assignment_expression "pcVar8 = "%s: incompatible with first gmon file\n"" identifier = (string_literal ""%s: incompatible with first gmon file\n"" " string_content escape_sequence ")) ;) (goto_statement "goto LAB_00109f7b;" goto statement_identifier ;) })))) (if_statement "if (((byte)DAT_001195e4 & 0x40) != 0) {\n      printf("[gmon_out_read] lowpc 0x%lx highpc 0x%lx ncnt %d\n",CONCAT71(uStack_57,local_58),\n             local_50,(ulong)local_48[0]);\n      printf("[gmon_out_read] samp_bytes %d hist_num_bins %d\n",(ulong)uVar5,uVar7 & 0xffffffff);\n    }" if (parenthesized_expression "(((byte)DAT_001195e4 & 0x40) != 0)" ( (binary_expression "((byte)DAT_001195e4 & 0x40) != 0" (parenthesized_expression "((byte)DAT_001195e4 & 0x40)" ( (binary_expression "(byte)DAT_001195e4 & 0x40" (cast_expression "(byte)DAT_001195e4" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n      printf("[gmon_out_read] lowpc 0x%lx highpc 0x%lx ncnt %d\n",CONCAT71(uStack_57,local_58),\n             local_50,(ulong)local_48[0]);\n      printf("[gmon_out_read] samp_bytes %d hist_num_bins %d\n",(ulong)uVar5,uVar7 & 0xffffffff);\n    }" { (expression_statement "printf("[gmon_out_read] lowpc 0x%lx highpc 0x%lx ncnt %d\n",CONCAT71(uStack_57,local_58),\n             local_50,(ulong)local_48[0]);" (call_expression "printf("[gmon_out_read] lowpc 0x%lx highpc 0x%lx ncnt %d\n",CONCAT71(uStack_57,local_58),\n             local_50,(ulong)local_48[0])" identifier (argument_list "("[gmon_out_read] lowpc 0x%lx highpc 0x%lx ncnt %d\n",CONCAT71(uStack_57,local_58),\n             local_50,(ulong)local_48[0])" ( (string_literal ""[gmon_out_read] lowpc 0x%lx highpc 0x%lx ncnt %d\n"" " string_content escape_sequence ") , (call_expression "CONCAT71(uStack_57,local_58)" identifier (argument_list "(uStack_57,local_58)" ( identifier , identifier ))) , identifier , (cast_expression "(ulong)local_48[0]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "local_48[0]" identifier [ number_literal ])) ))) ;) (expression_statement "printf("[gmon_out_read] samp_bytes %d hist_num_bins %d\n",(ulong)uVar5,uVar7 & 0xffffffff);" (call_expression "printf("[gmon_out_read] samp_bytes %d hist_num_bins %d\n",(ulong)uVar5,uVar7 & 0xffffffff)" identifier (argument_list "("[gmon_out_read] samp_bytes %d hist_num_bins %d\n",(ulong)uVar5,uVar7 & 0xffffffff)" ( (string_literal ""[gmon_out_read] samp_bytes %d hist_num_bins %d\n"" " string_content escape_sequence ") , (cast_expression "(ulong)uVar5" ( (type_descriptor "ulong" type_identifier) ) identifier) , (binary_expression "uVar7 & 0xffffffff" identifier & number_literal) ))) ;) })) (if_statement "if ((-1 < (int)uVar5) && (*DAT_00119b18 <= DAT_00119b18[1])) {\n      local_a4 = (uint)(iVar3 != 0);\n      if (iVar3 != 0) {\n        uVar10 = 0;\n        do {\n          sVar6 = fread(local_96,2,1,__stream);\n          uVar12 = DAT_00119b10;\n          if (sVar6 != 1) {\n            pcVar8 = (char *)dcgettext("gprof","%s: unexpected EOF after reading %d/%d bins\n",5);\n            fprintf(stderr,pcVar8,uVar12,(ulong)((int)uVar10 - 1),uVar7 & 0xffffffff);\n                    \n            FUN_0010a4c0(1);\n          }\n          iVar4 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x50))(local_96);\n          piVar1 = (int *)(DAT_00119b18[3] + uVar10 * 4);\n          *piVar1 = *piVar1 + iVar4;\n          bVar15 = iVar3 - 1 != uVar10;\n          uVar10 = uVar10 + 1;\n        } while (bVar15);\n      }\n      uVar5 = 0;\n      while ((iVar3 = FUN_00109550(__stream,&local_90), iVar3 == 0 &&\n             (iVar3 = FUN_00109550(__stream,&local_88), iVar3 == 0))) {\n        iVar3 = FUN_00109420();\n        if (iVar3 == 0) {\n          iVar3 = FUN_00109500(__stream,&local_80);\n          if (iVar3 != 0) break;\n          uVar7 = (ulong)local_80;\n        }\n        else {\n          if ((iVar3 != 1) || (iVar3 = FUN_001093d0(__stream,&local_80), iVar3 != 0)) break;\n          uVar7 = CONCAT44(uStack_7c,local_80);\n        }\n        uVar5 = uVar5 + 1;\n        if (((byte)DAT_001195e4 & 0x40) != 0) {\n          printf("[gmon_out_read] frompc 0x%lx selfpc 0x%lx count %lu\n",local_90,local_88,uVar7);\n        }\n        FUN_001040b0(local_90,local_88,uVar7);\n      }\n      local_a8 = 0;\n      if (DAT_001195e8 == 0) {\n        iVar3 = FUN_0010a4d0();\n        DAT_001195e8 = (ulong)iVar3;\n        if (DAT_001195e8 == 0) {\n          DAT_001195e8 = 1;\n          pcVar8 = (char *)dcgettext("gprof","time is in ticks, not seconds\n",5);\n          fprintf(stderr,pcVar8);\n        }\n      }\nLAB_001099b1:\n      if (stdin != __stream) {\n        fclose(__stream);\n      }\n      uVar2 = DAT_001195b4;\n      if (((byte)DAT_001195e0 & 0x20) == 0) {\n        return;\n      }\n      pcVar8 = (char *)dcgettext("gprof","File `%s\' (version %d) contains:\n",5);\n      printf(pcVar8,param_1,(ulong)uVar2);\n      if (local_a4 == 1) {\n        pcVar8 = (char *)dcgettext("gprof","\t%d histogram record\n",5);\n      }\n      else {\n        pcVar8 = (char *)dcgettext("gprof","\t%d histogram records\n",5);\n      }\n      printf(pcVar8,(ulong)local_a4);\n      if (uVar5 == 1) {\n        pcVar8 = (char *)dcgettext("gprof","\t%d call-graph record\n",5);\n      }\n      else {\n        pcVar8 = (char *)dcgettext("gprof","\t%d call-graph records\n",5);\n      }\n      printf(pcVar8,(ulong)uVar5);\n      if (local_a8 == 1) {\n        pcVar8 = (char *)dcgettext("gprof","\t%d basic-block count record\n",5);\n      }\n      else {\n        pcVar8 = (char *)dcgettext("gprof","\t%d basic-block count records\n",5);\n      }\n      printf(pcVar8,(ulong)local_a8);\n      DAT_001182d8 = 0;\n      return;\n    }" if (parenthesized_expression "((-1 < (int)uVar5) && (*DAT_00119b18 <= DAT_00119b18[1]))" ( (binary_expression "(-1 < (int)uVar5) && (*DAT_00119b18 <= DAT_00119b18[1])" (parenthesized_expression "(-1 < (int)uVar5)" ( (binary_expression "-1 < (int)uVar5" number_literal < (cast_expression "(int)uVar5" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "(*DAT_00119b18 <= DAT_00119b18[1])" ( (binary_expression "*DAT_00119b18 <= DAT_00119b18[1]" (pointer_expression "*DAT_00119b18" * identifier) <= (subscript_expression "DAT_00119b18[1]" identifier [ number_literal ])) ))) )) (compound_statement "{\n      local_a4 = (uint)(iVar3 != 0);\n      if (iVar3 != 0) {\n        uVar10 = 0;\n        do {\n          sVar6 = fread(local_96,2,1,__stream);\n          uVar12 = DAT_00119b10;\n          if (sVar6 != 1) {\n            pcVar8 = (char *)dcgettext("gprof","%s: unexpected EOF after reading %d/%d bins\n",5);\n            fprintf(stderr,pcVar8,uVar12,(ulong)((int)uVar10 - 1),uVar7 & 0xffffffff);\n                    \n            FUN_0010a4c0(1);\n          }\n          iVar4 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x50))(local_96);\n          piVar1 = (int *)(DAT_00119b18[3] + uVar10 * 4);\n          *piVar1 = *piVar1 + iVar4;\n          bVar15 = iVar3 - 1 != uVar10;\n          uVar10 = uVar10 + 1;\n        } while (bVar15);\n      }\n      uVar5 = 0;\n      while ((iVar3 = FUN_00109550(__stream,&local_90), iVar3 == 0 &&\n             (iVar3 = FUN_00109550(__stream,&local_88), iVar3 == 0))) {\n        iVar3 = FUN_00109420();\n        if (iVar3 == 0) {\n          iVar3 = FUN_00109500(__stream,&local_80);\n          if (iVar3 != 0) break;\n          uVar7 = (ulong)local_80;\n        }\n        else {\n          if ((iVar3 != 1) || (iVar3 = FUN_001093d0(__stream,&local_80), iVar3 != 0)) break;\n          uVar7 = CONCAT44(uStack_7c,local_80);\n        }\n        uVar5 = uVar5 + 1;\n        if (((byte)DAT_001195e4 & 0x40) != 0) {\n          printf("[gmon_out_read] frompc 0x%lx selfpc 0x%lx count %lu\n",local_90,local_88,uVar7);\n        }\n        FUN_001040b0(local_90,local_88,uVar7);\n      }\n      local_a8 = 0;\n      if (DAT_001195e8 == 0) {\n        iVar3 = FUN_0010a4d0();\n        DAT_001195e8 = (ulong)iVar3;\n        if (DAT_001195e8 == 0) {\n          DAT_001195e8 = 1;\n          pcVar8 = (char *)dcgettext("gprof","time is in ticks, not seconds\n",5);\n          fprintf(stderr,pcVar8);\n        }\n      }\nLAB_001099b1:\n      if (stdin != __stream) {\n        fclose(__stream);\n      }\n      uVar2 = DAT_001195b4;\n      if (((byte)DAT_001195e0 & 0x20) == 0) {\n        return;\n      }\n      pcVar8 = (char *)dcgettext("gprof","File `%s\' (version %d) contains:\n",5);\n      printf(pcVar8,param_1,(ulong)uVar2);\n      if (local_a4 == 1) {\n        pcVar8 = (char *)dcgettext("gprof","\t%d histogram record\n",5);\n      }\n      else {\n        pcVar8 = (char *)dcgettext("gprof","\t%d histogram records\n",5);\n      }\n      printf(pcVar8,(ulong)local_a4);\n      if (uVar5 == 1) {\n        pcVar8 = (char *)dcgettext("gprof","\t%d call-graph record\n",5);\n      }\n      else {\n        pcVar8 = (char *)dcgettext("gprof","\t%d call-graph records\n",5);\n      }\n      printf(pcVar8,(ulong)uVar5);\n      if (local_a8 == 1) {\n        pcVar8 = (char *)dcgettext("gprof","\t%d basic-block count record\n",5);\n      }\n      else {\n        pcVar8 = (char *)dcgettext("gprof","\t%d basic-block count records\n",5);\n      }\n      printf(pcVar8,(ulong)local_a8);\n      DAT_001182d8 = 0;\n      return;\n    }" { (expression_statement "local_a4 = (uint)(iVar3 != 0);" (assignment_expression "local_a4 = (uint)(iVar3 != 0)" identifier = (call_expression "(uint)(iVar3 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )))) ;) (if_statement "if (iVar3 != 0) {\n        uVar10 = 0;\n        do {\n          sVar6 = fread(local_96,2,1,__stream);\n          uVar12 = DAT_00119b10;\n          if (sVar6 != 1) {\n            pcVar8 = (char *)dcgettext("gprof","%s: unexpected EOF after reading %d/%d bins\n",5);\n            fprintf(stderr,pcVar8,uVar12,(ulong)((int)uVar10 - 1),uVar7 & 0xffffffff);\n                    \n            FUN_0010a4c0(1);\n          }\n          iVar4 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x50))(local_96);\n          piVar1 = (int *)(DAT_00119b18[3] + uVar10 * 4);\n          *piVar1 = *piVar1 + iVar4;\n          bVar15 = iVar3 - 1 != uVar10;\n          uVar10 = uVar10 + 1;\n        } while (bVar15);\n      }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n        uVar10 = 0;\n        do {\n          sVar6 = fread(local_96,2,1,__stream);\n          uVar12 = DAT_00119b10;\n          if (sVar6 != 1) {\n            pcVar8 = (char *)dcgettext("gprof","%s: unexpected EOF after reading %d/%d bins\n",5);\n            fprintf(stderr,pcVar8,uVar12,(ulong)((int)uVar10 - 1),uVar7 & 0xffffffff);\n                    \n            FUN_0010a4c0(1);\n          }\n          iVar4 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x50))(local_96);\n          piVar1 = (int *)(DAT_00119b18[3] + uVar10 * 4);\n          *piVar1 = *piVar1 + iVar4;\n          bVar15 = iVar3 - 1 != uVar10;\n          uVar10 = uVar10 + 1;\n        } while (bVar15);\n      }" { (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) (do_statement "do {\n          sVar6 = fread(local_96,2,1,__stream);\n          uVar12 = DAT_00119b10;\n          if (sVar6 != 1) {\n            pcVar8 = (char *)dcgettext("gprof","%s: unexpected EOF after reading %d/%d bins\n",5);\n            fprintf(stderr,pcVar8,uVar12,(ulong)((int)uVar10 - 1),uVar7 & 0xffffffff);\n                    \n            FUN_0010a4c0(1);\n          }\n          iVar4 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x50))(local_96);\n          piVar1 = (int *)(DAT_00119b18[3] + uVar10 * 4);\n          *piVar1 = *piVar1 + iVar4;\n          bVar15 = iVar3 - 1 != uVar10;\n          uVar10 = uVar10 + 1;\n        } while (bVar15);" do (compound_statement "{\n          sVar6 = fread(local_96,2,1,__stream);\n          uVar12 = DAT_00119b10;\n          if (sVar6 != 1) {\n            pcVar8 = (char *)dcgettext("gprof","%s: unexpected EOF after reading %d/%d bins\n",5);\n            fprintf(stderr,pcVar8,uVar12,(ulong)((int)uVar10 - 1),uVar7 & 0xffffffff);\n                    \n            FUN_0010a4c0(1);\n          }\n          iVar4 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x50))(local_96);\n          piVar1 = (int *)(DAT_00119b18[3] + uVar10 * 4);\n          *piVar1 = *piVar1 + iVar4;\n          bVar15 = iVar3 - 1 != uVar10;\n          uVar10 = uVar10 + 1;\n        }" { (expression_statement "sVar6 = fread(local_96,2,1,__stream);" (assignment_expression "sVar6 = fread(local_96,2,1,__stream)" identifier = (call_expression "fread(local_96,2,1,__stream)" identifier (argument_list "(local_96,2,1,__stream)" ( identifier , number_literal , number_literal , identifier )))) ;) (expression_statement "uVar12 = DAT_00119b10;" (assignment_expression "uVar12 = DAT_00119b10" identifier = identifier) ;) (if_statement "if (sVar6 != 1) {\n            pcVar8 = (char *)dcgettext("gprof","%s: unexpected EOF after reading %d/%d bins\n",5);\n            fprintf(stderr,pcVar8,uVar12,(ulong)((int)uVar10 - 1),uVar7 & 0xffffffff);\n                    \n            FUN_0010a4c0(1);\n          }" if (parenthesized_expression "(sVar6 != 1)" ( (binary_expression "sVar6 != 1" identifier != number_literal) )) (compound_statement "{\n            pcVar8 = (char *)dcgettext("gprof","%s: unexpected EOF after reading %d/%d bins\n",5);\n            fprintf(stderr,pcVar8,uVar12,(ulong)((int)uVar10 - 1),uVar7 & 0xffffffff);\n                    \n            FUN_0010a4c0(1);\n          }" { (expression_statement "pcVar8 = (char *)dcgettext("gprof","%s: unexpected EOF after reading %d/%d bins\n",5);" (assignment_expression "pcVar8 = (char *)dcgettext("gprof","%s: unexpected EOF after reading %d/%d bins\n",5)" identifier = (cast_expression "(char *)dcgettext("gprof","%s: unexpected EOF after reading %d/%d bins\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext("gprof","%s: unexpected EOF after reading %d/%d bins\n",5)" identifier (argument_list "("gprof","%s: unexpected EOF after reading %d/%d bins\n",5)" ( (string_literal ""gprof"" " string_content ") , (string_literal ""%s: unexpected EOF after reading %d/%d bins\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "fprintf(stderr,pcVar8,uVar12,(ulong)((int)uVar10 - 1),uVar7 & 0xffffffff);" (call_expression "fprintf(stderr,pcVar8,uVar12,(ulong)((int)uVar10 - 1),uVar7 & 0xffffffff)" identifier (argument_list "(stderr,pcVar8,uVar12,(ulong)((int)uVar10 - 1),uVar7 & 0xffffffff)" ( identifier , identifier , identifier , (call_expression "(ulong)((int)uVar10 - 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((int)uVar10 - 1)" ( (binary_expression "(int)uVar10 - 1" (cast_expression "(int)uVar10" ( (type_descriptor "int" primitive_type) ) identifier) - number_literal) ))) , (binary_expression "uVar7 & 0xffffffff" identifier & number_literal) ))) ;) (expression_statement "FUN_0010a4c0(1);" (call_expression "FUN_0010a4c0(1)" identifier (argument_list "(1)" ( number_literal ))) ;) })) (expression_statement "iVar4 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x50))(local_96);" (assignment_expression "iVar4 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x50))(local_96)" identifier = (call_expression "(**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x50))(local_96)" (parenthesized_expression "(**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x50))" ( (pointer_expression "**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x50)" * (pointer_expression "*(code **)(*(long *)(DAT_00119ad8 + 8) + 0x50)" * (cast_expression "(code **)(*(long *)(DAT_00119ad8 + 8) + 0x50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(DAT_00119ad8 + 8) + 0x50)" ( (binary_expression "*(long *)(DAT_00119ad8 + 8) + 0x50" (pointer_expression "*(long *)(DAT_00119ad8 + 8)" * (cast_expression "(long *)(DAT_00119ad8 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00119ad8 + 8)" ( (binary_expression "DAT_00119ad8 + 8" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(local_96)" ( identifier )))) ;) (expression_statement "piVar1 = (int *)(DAT_00119b18[3] + uVar10 * 4);" (assignment_expression "piVar1 = (int *)(DAT_00119b18[3] + uVar10 * 4)" identifier = (cast_expression "(int *)(DAT_00119b18[3] + uVar10 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00119b18[3] + uVar10 * 4)" ( (binary_expression "DAT_00119b18[3] + uVar10 * 4" (subscript_expression "DAT_00119b18[3]" identifier [ number_literal ]) + (binary_expression "uVar10 * 4" identifier * number_literal)) )))) ;) (expression_statement "*piVar1 = *piVar1 + iVar4;" (assignment_expression "*piVar1 = *piVar1 + iVar4" (pointer_expression "*piVar1" * identifier) = (binary_expression "*piVar1 + iVar4" (pointer_expression "*piVar1" * identifier) + identifier)) ;) (expression_statement "bVar15 = iVar3 - 1 != uVar10;" (assignment_expression "bVar15 = iVar3 - 1 != uVar10" identifier = (binary_expression "iVar3 - 1 != uVar10" (binary_expression "iVar3 - 1" identifier - number_literal) != identifier)) ;) (expression_statement "uVar10 = uVar10 + 1;" (assignment_expression "uVar10 = uVar10 + 1" identifier = (binary_expression "uVar10 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar15)" ( identifier )) ;) })) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (while_statement "while ((iVar3 = FUN_00109550(__stream,&local_90), iVar3 == 0 &&\n             (iVar3 = FUN_00109550(__stream,&local_88), iVar3 == 0))) {\n        iVar3 = FUN_00109420();\n        if (iVar3 == 0) {\n          iVar3 = FUN_00109500(__stream,&local_80);\n          if (iVar3 != 0) break;\n          uVar7 = (ulong)local_80;\n        }\n        else {\n          if ((iVar3 != 1) || (iVar3 = FUN_001093d0(__stream,&local_80), iVar3 != 0)) break;\n          uVar7 = CONCAT44(uStack_7c,local_80);\n        }\n        uVar5 = uVar5 + 1;\n        if (((byte)DAT_001195e4 & 0x40) != 0) {\n          printf("[gmon_out_read] frompc 0x%lx selfpc 0x%lx count %lu\n",local_90,local_88,uVar7);\n        }\n        FUN_001040b0(local_90,local_88,uVar7);\n      }" while (parenthesized_expression "((iVar3 = FUN_00109550(__stream,&local_90), iVar3 == 0 &&\n             (iVar3 = FUN_00109550(__stream,&local_88), iVar3 == 0)))" ( (parenthesized_expression "(iVar3 = FUN_00109550(__stream,&local_90), iVar3 == 0 &&\n             (iVar3 = FUN_00109550(__stream,&local_88), iVar3 == 0))" ( (comma_expression "iVar3 = FUN_00109550(__stream,&local_90), iVar3 == 0 &&\n             (iVar3 = FUN_00109550(__stream,&local_88), iVar3 == 0)" (assignment_expression "iVar3 = FUN_00109550(__stream,&local_90)" identifier = (call_expression "FUN_00109550(__stream,&local_90)" identifier (argument_list "(__stream,&local_90)" ( identifier , (pointer_expression "&local_90" & identifier) )))) , (binary_expression "iVar3 == 0 &&\n             (iVar3 = FUN_00109550(__stream,&local_88), iVar3 == 0)" (binary_expression "iVar3 == 0" identifier == number_literal) && (parenthesized_expression "(iVar3 = FUN_00109550(__stream,&local_88), iVar3 == 0)" ( (comma_expression "iVar3 = FUN_00109550(__stream,&local_88), iVar3 == 0" (assignment_expression "iVar3 = FUN_00109550(__stream,&local_88)" identifier = (call_expression "FUN_00109550(__stream,&local_88)" identifier (argument_list "(__stream,&local_88)" ( identifier , (pointer_expression "&local_88" & identifier) )))) , (binary_expression "iVar3 == 0" identifier == number_literal)) )))) )) )) (compound_statement "{\n        iVar3 = FUN_00109420();\n        if (iVar3 == 0) {\n          iVar3 = FUN_00109500(__stream,&local_80);\n          if (iVar3 != 0) break;\n          uVar7 = (ulong)local_80;\n        }\n        else {\n          if ((iVar3 != 1) || (iVar3 = FUN_001093d0(__stream,&local_80), iVar3 != 0)) break;\n          uVar7 = CONCAT44(uStack_7c,local_80);\n        }\n        uVar5 = uVar5 + 1;\n        if (((byte)DAT_001195e4 & 0x40) != 0) {\n          printf("[gmon_out_read] frompc 0x%lx selfpc 0x%lx count %lu\n",local_90,local_88,uVar7);\n        }\n        FUN_001040b0(local_90,local_88,uVar7);\n      }" { (expression_statement "iVar3 = FUN_00109420();" (assignment_expression "iVar3 = FUN_00109420()" identifier = (call_expression "FUN_00109420()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar3 == 0) {\n          iVar3 = FUN_00109500(__stream,&local_80);\n          if (iVar3 != 0) break;\n          uVar7 = (ulong)local_80;\n        }\n        else {\n          if ((iVar3 != 1) || (iVar3 = FUN_001093d0(__stream,&local_80), iVar3 != 0)) break;\n          uVar7 = CONCAT44(uStack_7c,local_80);\n        }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n          iVar3 = FUN_00109500(__stream,&local_80);\n          if (iVar3 != 0) break;\n          uVar7 = (ulong)local_80;\n        }" { (expression_statement "iVar3 = FUN_00109500(__stream,&local_80);" (assignment_expression "iVar3 = FUN_00109500(__stream,&local_80)" identifier = (call_expression "FUN_00109500(__stream,&local_80)" identifier (argument_list "(__stream,&local_80)" ( identifier , (pointer_expression "&local_80" & identifier) )))) ;) (if_statement "if (iVar3 != 0) break;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar7 = (ulong)local_80;" (assignment_expression "uVar7 = (ulong)local_80" identifier = (cast_expression "(ulong)local_80" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) }) (else_clause "else {\n          if ((iVar3 != 1) || (iVar3 = FUN_001093d0(__stream,&local_80), iVar3 != 0)) break;\n          uVar7 = CONCAT44(uStack_7c,local_80);\n        }" else (compound_statement "{\n          if ((iVar3 != 1) || (iVar3 = FUN_001093d0(__stream,&local_80), iVar3 != 0)) break;\n          uVar7 = CONCAT44(uStack_7c,local_80);\n        }" { (if_statement "if ((iVar3 != 1) || (iVar3 = FUN_001093d0(__stream,&local_80), iVar3 != 0)) break;" if (parenthesized_expression "((iVar3 != 1) || (iVar3 = FUN_001093d0(__stream,&local_80), iVar3 != 0))" ( (binary_expression "(iVar3 != 1) || (iVar3 = FUN_001093d0(__stream,&local_80), iVar3 != 0)" (parenthesized_expression "(iVar3 != 1)" ( (binary_expression "iVar3 != 1" identifier != number_literal) )) || (parenthesized_expression "(iVar3 = FUN_001093d0(__stream,&local_80), iVar3 != 0)" ( (comma_expression "iVar3 = FUN_001093d0(__stream,&local_80), iVar3 != 0" (assignment_expression "iVar3 = FUN_001093d0(__stream,&local_80)" identifier = (call_expression "FUN_001093d0(__stream,&local_80)" identifier (argument_list "(__stream,&local_80)" ( identifier , (pointer_expression "&local_80" & identifier) )))) , (binary_expression "iVar3 != 0" identifier != number_literal)) ))) )) (break_statement "break;" break ;)) (expression_statement "uVar7 = CONCAT44(uStack_7c,local_80);" (assignment_expression "uVar7 = CONCAT44(uStack_7c,local_80)" identifier = (call_expression "CONCAT44(uStack_7c,local_80)" identifier (argument_list "(uStack_7c,local_80)" ( identifier , identifier )))) ;) }))) (expression_statement "uVar5 = uVar5 + 1;" (assignment_expression "uVar5 = uVar5 + 1" identifier = (binary_expression "uVar5 + 1" identifier + number_literal)) ;) (if_statement "if (((byte)DAT_001195e4 & 0x40) != 0) {\n          printf("[gmon_out_read] frompc 0x%lx selfpc 0x%lx count %lu\n",local_90,local_88,uVar7);\n        }" if (parenthesized_expression "(((byte)DAT_001195e4 & 0x40) != 0)" ( (binary_expression "((byte)DAT_001195e4 & 0x40) != 0" (parenthesized_expression "((byte)DAT_001195e4 & 0x40)" ( (binary_expression "(byte)DAT_001195e4 & 0x40" (cast_expression "(byte)DAT_001195e4" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n          printf("[gmon_out_read] frompc 0x%lx selfpc 0x%lx count %lu\n",local_90,local_88,uVar7);\n        }" { (expression_statement "printf("[gmon_out_read] frompc 0x%lx selfpc 0x%lx count %lu\n",local_90,local_88,uVar7);" (call_expression "printf("[gmon_out_read] frompc 0x%lx selfpc 0x%lx count %lu\n",local_90,local_88,uVar7)" identifier (argument_list "("[gmon_out_read] frompc 0x%lx selfpc 0x%lx count %lu\n",local_90,local_88,uVar7)" ( (string_literal ""[gmon_out_read] frompc 0x%lx selfpc 0x%lx count %lu\n"" " string_content escape_sequence ") , identifier , identifier , identifier ))) ;) })) (expression_statement "FUN_001040b0(local_90,local_88,uVar7);" (call_expression "FUN_001040b0(local_90,local_88,uVar7)" identifier (argument_list "(local_90,local_88,uVar7)" ( identifier , identifier , identifier ))) ;) })) (expression_statement "local_a8 = 0;" (assignment_expression "local_a8 = 0" identifier = number_literal) ;) (if_statement "if (DAT_001195e8 == 0) {\n        iVar3 = FUN_0010a4d0();\n        DAT_001195e8 = (ulong)iVar3;\n        if (DAT_001195e8 == 0) {\n          DAT_001195e8 = 1;\n          pcVar8 = (char *)dcgettext("gprof","time is in ticks, not seconds\n",5);\n          fprintf(stderr,pcVar8);\n        }\n      }" if (parenthesized_expression "(DAT_001195e8 == 0)" ( (binary_expression "DAT_001195e8 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar3 = FUN_0010a4d0();\n        DAT_001195e8 = (ulong)iVar3;\n        if (DAT_001195e8 == 0) {\n          DAT_001195e8 = 1;\n          pcVar8 = (char *)dcgettext("gprof","time is in ticks, not seconds\n",5);\n          fprintf(stderr,pcVar8);\n        }\n      }" { (expression_statement "iVar3 = FUN_0010a4d0();" (assignment_expression "iVar3 = FUN_0010a4d0()" identifier = (call_expression "FUN_0010a4d0()" identifier (argument_list "()" ( )))) ;) (expression_statement "DAT_001195e8 = (ulong)iVar3;" (assignment_expression "DAT_001195e8 = (ulong)iVar3" identifier = (cast_expression "(ulong)iVar3" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (if_statement "if (DAT_001195e8 == 0) {\n          DAT_001195e8 = 1;\n          pcVar8 = (char *)dcgettext("gprof","time is in ticks, not seconds\n",5);\n          fprintf(stderr,pcVar8);\n        }" if (parenthesized_expression "(DAT_001195e8 == 0)" ( (binary_expression "DAT_001195e8 == 0" identifier == number_literal) )) (compound_statement "{\n          DAT_001195e8 = 1;\n          pcVar8 = (char *)dcgettext("gprof","time is in ticks, not seconds\n",5);\n          fprintf(stderr,pcVar8);\n        }" { (expression_statement "DAT_001195e8 = 1;" (assignment_expression "DAT_001195e8 = 1" identifier = number_literal) ;) (expression_statement "pcVar8 = (char *)dcgettext("gprof","time is in ticks, not seconds\n",5);" (assignment_expression "pcVar8 = (char *)dcgettext("gprof","time is in ticks, not seconds\n",5)" identifier = (cast_expression "(char *)dcgettext("gprof","time is in ticks, not seconds\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext("gprof","time is in ticks, not seconds\n",5)" identifier (argument_list "("gprof","time is in ticks, not seconds\n",5)" ( (string_literal ""gprof"" " string_content ") , (string_literal ""time is in ticks, not seconds\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "fprintf(stderr,pcVar8);" (call_expression "fprintf(stderr,pcVar8)" identifier (argument_list "(stderr,pcVar8)" ( identifier , identifier ))) ;) })) })) (labeled_statement "LAB_001099b1:\n      if (stdin != __stream) {\n        fclose(__stream);\n      }" statement_identifier : (if_statement "if (stdin != __stream) {\n        fclose(__stream);\n      }" if (parenthesized_expression "(stdin != __stream)" ( (binary_expression "stdin != __stream" identifier != identifier) )) (compound_statement "{\n        fclose(__stream);\n      }" { (expression_statement "fclose(__stream);" (call_expression "fclose(__stream)" identifier (argument_list "(__stream)" ( identifier ))) ;) }))) (expression_statement "uVar2 = DAT_001195b4;" (assignment_expression "uVar2 = DAT_001195b4" identifier = identifier) ;) (if_statement "if (((byte)DAT_001195e0 & 0x20) == 0) {\n        return;\n      }" if (parenthesized_expression "(((byte)DAT_001195e0 & 0x20) == 0)" ( (binary_expression "((byte)DAT_001195e0 & 0x20) == 0" (parenthesized_expression "((byte)DAT_001195e0 & 0x20)" ( (binary_expression "(byte)DAT_001195e0 & 0x20" (cast_expression "(byte)DAT_001195e0" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) (expression_statement "pcVar8 = (char *)dcgettext("gprof","File `%s\' (version %d) contains:\n",5);" (assignment_expression "pcVar8 = (char *)dcgettext("gprof","File `%s\' (version %d) contains:\n",5)" identifier = (cast_expression "(char *)dcgettext("gprof","File `%s\' (version %d) contains:\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext("gprof","File `%s\' (version %d) contains:\n",5)" identifier (argument_list "("gprof","File `%s\' (version %d) contains:\n",5)" ( (string_literal ""gprof"" " string_content ") , (string_literal ""File `%s\' (version %d) contains:\n"" " string_content escape_sequence string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "printf(pcVar8,param_1,(ulong)uVar2);" (call_expression "printf(pcVar8,param_1,(ulong)uVar2)" identifier (argument_list "(pcVar8,param_1,(ulong)uVar2)" ( identifier , identifier , (cast_expression "(ulong)uVar2" ( (type_descriptor "ulong" type_identifier) ) identifier) ))) ;) (if_statement "if (local_a4 == 1) {\n        pcVar8 = (char *)dcgettext("gprof","\t%d histogram record\n",5);\n      }\n      else {\n        pcVar8 = (char *)dcgettext("gprof","\t%d histogram records\n",5);\n      }" if (parenthesized_expression "(local_a4 == 1)" ( (binary_expression "local_a4 == 1" identifier == number_literal) )) (compound_statement "{\n        pcVar8 = (char *)dcgettext("gprof","\t%d histogram record\n",5);\n      }" { (expression_statement "pcVar8 = (char *)dcgettext("gprof","\t%d histogram record\n",5);" (assignment_expression "pcVar8 = (char *)dcgettext("gprof","\t%d histogram record\n",5)" identifier = (cast_expression "(char *)dcgettext("gprof","\t%d histogram record\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext("gprof","\t%d histogram record\n",5)" identifier (argument_list "("gprof","\t%d histogram record\n",5)" ( (string_literal ""gprof"" " string_content ") , (string_literal ""\t%d histogram record\n"" " escape_sequence string_content escape_sequence ") , number_literal ))))) ;) }) (else_clause "else {\n        pcVar8 = (char *)dcgettext("gprof","\t%d histogram records\n",5);\n      }" else (compound_statement "{\n        pcVar8 = (char *)dcgettext("gprof","\t%d histogram records\n",5);\n      }" { (expression_statement "pcVar8 = (char *)dcgettext("gprof","\t%d histogram records\n",5);" (assignment_expression "pcVar8 = (char *)dcgettext("gprof","\t%d histogram records\n",5)" identifier = (cast_expression "(char *)dcgettext("gprof","\t%d histogram records\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext("gprof","\t%d histogram records\n",5)" identifier (argument_list "("gprof","\t%d histogram records\n",5)" ( (string_literal ""gprof"" " string_content ") , (string_literal ""\t%d histogram records\n"" " escape_sequence string_content escape_sequence ") , number_literal ))))) ;) }))) (expression_statement "printf(pcVar8,(ulong)local_a4);" (call_expression "printf(pcVar8,(ulong)local_a4)" identifier (argument_list "(pcVar8,(ulong)local_a4)" ( identifier , (cast_expression "(ulong)local_a4" ( (type_descriptor "ulong" type_identifier) ) identifier) ))) ;) (if_statement "if (uVar5 == 1) {\n        pcVar8 = (char *)dcgettext("gprof","\t%d call-graph record\n",5);\n      }\n      else {\n        pcVar8 = (char *)dcgettext("gprof","\t%d call-graph records\n",5);\n      }" if (parenthesized_expression "(uVar5 == 1)" ( (binary_expression "uVar5 == 1" identifier == number_literal) )) (compound_statement "{\n        pcVar8 = (char *)dcgettext("gprof","\t%d call-graph record\n",5);\n      }" { (expression_statement "pcVar8 = (char *)dcgettext("gprof","\t%d call-graph record\n",5);" (assignment_expression "pcVar8 = (char *)dcgettext("gprof","\t%d call-graph record\n",5)" identifier = (cast_expression "(char *)dcgettext("gprof","\t%d call-graph record\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext("gprof","\t%d call-graph record\n",5)" identifier (argument_list "("gprof","\t%d call-graph record\n",5)" ( (string_literal ""gprof"" " string_content ") , (string_literal ""\t%d call-graph record\n"" " escape_sequence string_content escape_sequence ") , number_literal ))))) ;) }) (else_clause "else {\n        pcVar8 = (char *)dcgettext("gprof","\t%d call-graph records\n",5);\n      }" else (compound_statement "{\n        pcVar8 = (char *)dcgettext("gprof","\t%d call-graph records\n",5);\n      }" { (expression_statement "pcVar8 = (char *)dcgettext("gprof","\t%d call-graph records\n",5);" (assignment_expression "pcVar8 = (char *)dcgettext("gprof","\t%d call-graph records\n",5)" identifier = (cast_expression "(char *)dcgettext("gprof","\t%d call-graph records\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext("gprof","\t%d call-graph records\n",5)" identifier (argument_list "("gprof","\t%d call-graph records\n",5)" ( (string_literal ""gprof"" " string_content ") , (string_literal ""\t%d call-graph records\n"" " escape_sequence string_content escape_sequence ") , number_literal ))))) ;) }))) (expression_statement "printf(pcVar8,(ulong)uVar5);" (call_expression "printf(pcVar8,(ulong)uVar5)" identifier (argument_list "(pcVar8,(ulong)uVar5)" ( identifier , (cast_expression "(ulong)uVar5" ( (type_descriptor "ulong" type_identifier) ) identifier) ))) ;) (if_statement "if (local_a8 == 1) {\n        pcVar8 = (char *)dcgettext("gprof","\t%d basic-block count record\n",5);\n      }\n      else {\n        pcVar8 = (char *)dcgettext("gprof","\t%d basic-block count records\n",5);\n      }" if (parenthesized_expression "(local_a8 == 1)" ( (binary_expression "local_a8 == 1" identifier == number_literal) )) (compound_statement "{\n        pcVar8 = (char *)dcgettext("gprof","\t%d basic-block count record\n",5);\n      }" { (expression_statement "pcVar8 = (char *)dcgettext("gprof","\t%d basic-block count record\n",5);" (assignment_expression "pcVar8 = (char *)dcgettext("gprof","\t%d basic-block count record\n",5)" identifier = (cast_expression "(char *)dcgettext("gprof","\t%d basic-block count record\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext("gprof","\t%d basic-block count record\n",5)" identifier (argument_list "("gprof","\t%d basic-block count record\n",5)" ( (string_literal ""gprof"" " string_content ") , (string_literal ""\t%d basic-block count record\n"" " escape_sequence string_content escape_sequence ") , number_literal ))))) ;) }) (else_clause "else {\n        pcVar8 = (char *)dcgettext("gprof","\t%d basic-block count records\n",5);\n      }" else (compound_statement "{\n        pcVar8 = (char *)dcgettext("gprof","\t%d basic-block count records\n",5);\n      }" { (expression_statement "pcVar8 = (char *)dcgettext("gprof","\t%d basic-block count records\n",5);" (assignment_expression "pcVar8 = (char *)dcgettext("gprof","\t%d basic-block count records\n",5)" identifier = (cast_expression "(char *)dcgettext("gprof","\t%d basic-block count records\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext("gprof","\t%d basic-block count records\n",5)" identifier (argument_list "("gprof","\t%d basic-block count records\n",5)" ( (string_literal ""gprof"" " string_content ") , (string_literal ""\t%d basic-block count records\n"" " escape_sequence string_content escape_sequence ") , number_literal ))))) ;) }))) (expression_statement "printf(pcVar8,(ulong)local_a8);" (call_expression "printf(pcVar8,(ulong)local_a8)" identifier (argument_list "(pcVar8,(ulong)local_a8)" ( identifier , (cast_expression "(ulong)local_a8" ( (type_descriptor "ulong" type_identifier) ) identifier) ))) ;) (expression_statement "DAT_001182d8 = 0;" (assignment_expression "DAT_001182d8 = 0" identifier = number_literal) ;) (return_statement "return;" return ;) })) (expression_statement "pcVar8 = "%s: file \'%s\' does not appear to be in gmon.out format\n";" (assignment_expression "pcVar8 = "%s: file \'%s\' does not appear to be in gmon.out format\n"" identifier = (string_literal ""%s: file \'%s\' does not appear to be in gmon.out format\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ")) ;) (labeled_statement "LAB_0010a006:\n    uVar12 = DAT_00119b10;" statement_identifier : (expression_statement "uVar12 = DAT_00119b10;" (assignment_expression "uVar12 = DAT_00119b10" identifier = identifier) ;)) (expression_statement "pcVar8 = (char *)dcgettext("gprof",pcVar8,5);" (assignment_expression "pcVar8 = (char *)dcgettext("gprof",pcVar8,5)" identifier = (cast_expression "(char *)dcgettext("gprof",pcVar8,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext("gprof",pcVar8,5)" identifier (argument_list "("gprof",pcVar8,5)" ( (string_literal ""gprof"" " string_content ") , identifier , number_literal ))))) ;) (expression_statement "fprintf(stderr,pcVar8,uVar12,param_1);" (call_expression "fprintf(stderr,pcVar8,uVar12,param_1)" identifier (argument_list "(stderr,pcVar8,uVar12,param_1)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "FUN_0010a4c0(1);" (call_expression "FUN_0010a4c0(1)" identifier (argument_list "(1)" ( number_literal ))) ;) })) (labeled_statement "LAB_00109f6f:\n  pcVar8 = "%s: file too short to be a gmon file\n";" statement_identifier : (expression_statement "pcVar8 = "%s: file too short to be a gmon file\n";" (assignment_expression "pcVar8 = "%s: file too short to be a gmon file\n"" identifier = (string_literal ""%s: file too short to be a gmon file\n"" " string_content escape_sequence ")) ;)) (labeled_statement "LAB_00109f7b:\n  pcVar8 = (char *)dcgettext("gprof",pcVar8,5);" statement_identifier : (expression_statement "pcVar8 = (char *)dcgettext("gprof",pcVar8,5);" (assignment_expression "pcVar8 = (char *)dcgettext("gprof",pcVar8,5)" identifier = (cast_expression "(char *)dcgettext("gprof",pcVar8,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext("gprof",pcVar8,5)" identifier (argument_list "("gprof",pcVar8,5)" ( (string_literal ""gprof"" " string_content ") , identifier , number_literal ))))) ;)) (expression_statement "fprintf(stderr,pcVar8,param_1);" (call_expression "fprintf(stderr,pcVar8,param_1)" identifier (argument_list "(stderr,pcVar8,param_1)" ( identifier , identifier , identifier ))) ;) (expression_statement "FUN_0010a4c0(1);" (call_expression "FUN_0010a4c0(1)" identifier (argument_list "(1)" ( number_literal ))) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression & IDENT) < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression & IDENT) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) != IDENT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (string_literal " string_content ") )))) , (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , LIT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) )) (argument_list ( IDENT )))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content escape_sequence string_content escape_sequence ") , LIT ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT ))) ;)) (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , LIT , LIT , IDENT )))) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT == LIT))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content escape_sequence ") , LIT ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) }))))) })) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence string_content escape_sequence ")) ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression LIT < (binary_expression IDENT - LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content escape_sequence string_content escape_sequence ") , LIT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , (cast_expression ( (type_descriptor TYPE) ) IDENT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })))) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) )))) , (binary_expression IDENT == LIT)) ))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) , (binary_expression IDENT == LIT)) ))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) )))) , (binary_expression IDENT == LIT)) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (cast_expression ( (type_descriptor TYPE) ) IDENT)) != IDENT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence ")) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) }))) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) }))) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) ))) ;)) (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) - IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) >> LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT - (call_expression IDENT (argument_list ( IDENT , IDENT )))) >> LIT) ))) / (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT & LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) , LIT , IDENT ))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (call_expression IDENT (argument_list ( IDENT , IDENT ))) != (pointer_expression * IDENT)) )) || (parenthesized_expression ( (binary_expression IDENT != (subscript_expression IDENT [ LIT ])) ))) )) || (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) != IDENT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence ")) ;) (goto_statement goto statement_identifier ;) })))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") , (call_expression IDENT (argument_list ( IDENT , IDENT ))) , IDENT , (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) ))) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") , (cast_expression ( (type_descriptor TYPE) ) IDENT) , (binary_expression IDENT & LIT) ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) && (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) <= (subscript_expression IDENT [ LIT ])) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT != LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , LIT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content escape_sequence ") , LIT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - LIT) ))) , (binary_expression IDENT & LIT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression IDENT * LIT)) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT - LIT) != IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (while_statement while (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) )))) , (binary_expression (binary_expression IDENT == LIT) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) )))) , (binary_expression IDENT == LIT)) )))) )) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) )))) , (binary_expression IDENT != LIT)) ))) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") , IDENT , IDENT , IDENT ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content escape_sequence ") , LIT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) })) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) == LIT) )) (compound_statement { (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content escape_sequence string_content escape_sequence ") , LIT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (cast_expression ( (type_descriptor TYPE) ) IDENT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " escape_sequence string_content escape_sequence ") , LIT ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " escape_sequence string_content escape_sequence ") , LIT ))))) ;) }))) (expression_statement (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE) ) IDENT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " escape_sequence string_content escape_sequence ") , LIT ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " escape_sequence string_content escape_sequence ") , LIT ))))) ;) }))) (expression_statement (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE) ) IDENT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " escape_sequence string_content escape_sequence ") , LIT ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " escape_sequence string_content escape_sequence ") , LIT ))))) ;) }))) (expression_statement (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE) ) IDENT) ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence string_content escape_sequence string_content escape_sequence ")) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (string_literal " string_content ") , IDENT , LIT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence ")) ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (string_literal " string_content ") , IDENT , LIT ))))) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })))
(function_definition "void FUN_00109740(byte *param_1)\n\n{\n  int *piVar1;\n  uint uVar2;\n  int iVar3;\n  int iVar4;\n  uint uVar5;\n  size_t sVar6;\n  ulong uVar7;\n  FILE *__stream;\n  char *pcVar8;\n  ulong *puVar9;\n  ulong uVar10;\n  long lVar11;\n  undefined8 uVar12;\n  byte *pbVar13;\n  byte *pbVar14;\n  bool bVar15;\n  bool bVar16;\n  byte bVar17;\n  uint local_a8;\n  uint local_a4;\n  undefined1 local_96 [2];\n  int local_94;\n  undefined8 local_90;\n  undefined8 local_88;\n  uint local_80;\n  undefined4 uStack_7c;\n  byte local_78 [4];\n  undefined1 local_74 [28];\n  byte local_58;\n  undefined7 uStack_57;\n  ulong local_50;\n  uint local_48 [6];\n  \n  bVar17 = 0;\n  lVar11 = 2;\n  bVar15 = &stack0xffffffffffffffd0 < (undefined1 *)0x78;\n  bVar16 = &stack0x00000000 == (undefined1 *)0xa8;\n  pbVar13 = param_1;\n  pbVar14 = &DAT_001110e7;\n  do {\n    if (lVar11 == 0) break;\n    lVar11 = lVar11 + -1;\n    bVar15 = *pbVar13 < *pbVar14;\n    bVar16 = *pbVar13 == *pbVar14;\n    pbVar13 = pbVar13 + 1;\n    pbVar14 = pbVar14 + 1;\n  } while (bVar16);\n  __stream = stdin;\n  if (((!bVar15 && !bVar16) != bVar15) &&\n     (__stream = fopen((char *)param_1,"r"), __stream == (FILE *)0x0)) goto LAB_00109ba3;\n  sVar6 = fread(local_78,0x14,1,__stream);\n  uVar12 = DAT_00119b10;\n  uVar5 = DAT_001195c0;\n  if (sVar6 != 1) goto LAB_00109f6f;\n  bVar15 = DAT_001195c0 == 0;\n  bVar16 = DAT_001195c0 == 1;\n  if (bVar16) {\n    lVar11 = 4;\n    pbVar13 = local_78;\n    pbVar14 = &DAT_001110e9;\n    do {\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar15 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar17 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar17 * -2 + 1;\n    } while (bVar16);\n    if ((!bVar15 && !bVar16) == bVar15) {\nLAB_001099fe:\n      uVar5 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x38))(local_74);\n      uVar12 = DAT_00119b10;\n      DAT_001195b4 = uVar5;\n      if (1 < uVar5) {\n        pcVar8 = (char *)dcgettext("gprof","%s: file `%s\' has unsupported version %d\n",5);\n        uVar7 = (ulong)uVar5;\nLAB_00109f08:\n        fprintf(stderr,pcVar8,uVar12,param_1,uVar7);\n                    \n        FUN_0010a4c0(1);\n      }\n      local_a8 = 0;\n      uVar5 = 0;\n      local_a4 = 0;\n      while (sVar6 = fread(&local_58,1,1,__stream), uVar12 = DAT_00119b10, sVar6 == 1) {\n        if (local_58 == 1) {\n          uVar5 = uVar5 + 1;\n          DAT_001195b8 = DAT_001195b8 | 2;\n          FUN_001041c0(__stream,param_1);\n        }\n        else if (local_58 == 0) {\n          local_a4 = local_a4 + 1;\n          DAT_001195b8 = DAT_001195b8 | 1;\n          FUN_0010b590(__stream,param_1);\n        }\n        else {\n          if (local_58 != 2) {\n            pcVar8 = (char *)dcgettext("gprof","%s: %s: found bad tag %d (file corrupted?)\n",5);\n            uVar7 = (ulong)local_58;\n            goto LAB_00109f08;\n          }\n          local_a8 = local_a8 + 1;\n          DAT_001195b8 = DAT_001195b8 | 4;\n          FUN_001034d0(__stream,param_1);\n        }\n      }\n      goto LAB_001099b1;\n    }\nLAB_00109cae:\n    pcVar8 = "%s: file `%s\' has bad magic cookie\n";\n    goto LAB_0010a006;\n  }\n  bVar15 = false;\n  bVar16 = DAT_001195c0 == 0;\n  if (bVar16) {\n    lVar11 = 4;\n    pbVar13 = local_78;\n    pbVar14 = &DAT_001110e9;\n    do {\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar15 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar17 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar17 * -2 + 1;\n    } while (bVar16);\n    if ((!bVar15 && !bVar16) == bVar15) goto LAB_001099fe;\n  }\n  else if (1 < DAT_001195c0 - 2) {\n    pcVar8 = (char *)dcgettext("gprof","%s: don\'t know how to deal with file format %d\n",5);\n    fprintf(stderr,pcVar8,uVar12,(ulong)uVar5);\n                    \n    FUN_0010a4c0(1);\n  }\n  DAT_001195b8 = 3;\n  iVar3 = fseek(__stream,0,0);\n  if (iVar3 < 0) goto LAB_00109ba3;\n  iVar3 = FUN_00109550(__stream,&local_58);\n  if ((((iVar3 == 0) && (iVar3 = FUN_00109550(__stream,&local_50), iVar3 == 0)) &&\n      (iVar3 = FUN_00109500(__stream,local_48), iVar3 == 0)) &&\n     (iVar3 = FUN_00109500(__stream,&local_94), iVar3 == 0)) {\n    if (local_94 == 0x51879) {\n      iVar3 = FUN_00109500(__stream,&local_80);\n      if (iVar3 != 0) goto LAB_00109f6f;\n      uVar7 = (ulong)local_80;\n      if ((DAT_00119b18 != (ulong *)0x0) &&\n         (uVar7 = DAT_001195e8, (long)(int)local_80 != DAT_001195e8)) {\n        pcVar8 = "%s: profiling rate incompatible with first gmon file\n";\n        goto LAB_00109f7b;\n      }\n      DAT_001195e8 = uVar7;\n      iVar3 = FUN_00109420();\n      if (iVar3 == 0) {\n        lVar11 = 0x20;\n        iVar3 = 0x20;\n      }\n      else {\n        lVar11 = 0x28;\n        if (iVar3 == 1) {\n          iVar3 = 0x28;\n        }\n        else {\n          lVar11 = 0;\n          iVar3 = 0;\n        }\n      }\n    }\n    else {\n      if (DAT_001195c0 == 3) goto LAB_00109cae;\n      iVar4 = FUN_00109420();\n      if (iVar4 == 0) {\n        lVar11 = 0xc;\n        iVar3 = 0xc;\n      }\n      else {\n        lVar11 = 0x14;\n        if (iVar4 != 1) {\n          lVar11 = 0;\n        }\n        iVar3 = 0x14;\n        if (iVar4 != 1) {\n          iVar3 = 0;\n        }\n      }\n    }\n    iVar4 = fseek(__stream,lVar11,0);\n    if (iVar4 < 0) {\nLAB_00109ba3:\n      perror((char *)param_1);\n                    \n      FUN_0010a4c0(1);\n    }\n    uVar5 = local_48[0] - iVar3;\n    uVar7 = (ulong)(long)(int)uVar5 >> 1;\n    iVar3 = (int)uVar7;\n    if (DAT_00119b18 == (ulong *)0x0) {\n      DAT_00119b20 = 1;\n      puVar9 = (ulong *)xmalloc(0x20);\n      DAT_00119b18 = puVar9;\n      *puVar9 = CONCAT71(uStack_57,local_58);\n      *(int *)(puVar9 + 2) = iVar3;\n      sVar6 = (uVar7 & 0xffffffff) << 2;\n      puVar9[1] = local_50;\n      DAT_00119b28 = (double)(local_50 - CONCAT71(uStack_57,local_58) >> 1) /\n                     (double)(uVar7 & 0xffffffff);\n      uVar10 = xmalloc(sVar6);\n      puVar9[3] = uVar10;\n      memset((void *)DAT_00119b18[3],0,sVar6);\n    }\n    else if (((CONCAT71(uStack_57,local_58) != *DAT_00119b18) || (local_50 != DAT_00119b18[1])) ||\n            ((int)DAT_00119b18[2] != iVar3)) {\n      pcVar8 = "%s: incompatible with first gmon file\n";\n      goto LAB_00109f7b;\n    }\n    if (((byte)DAT_001195e4 & 0x40) != 0) {\n      printf("[gmon_out_read] lowpc 0x%lx highpc 0x%lx ncnt %d\n",CONCAT71(uStack_57,local_58),\n             local_50,(ulong)local_48[0]);\n      printf("[gmon_out_read] samp_bytes %d hist_num_bins %d\n",(ulong)uVar5,uVar7 & 0xffffffff);\n    }\n    if ((-1 < (int)uVar5) && (*DAT_00119b18 <= DAT_00119b18[1])) {\n      local_a4 = (uint)(iVar3 != 0);\n      if (iVar3 != 0) {\n        uVar10 = 0;\n        do {\n          sVar6 = fread(local_96,2,1,__stream);\n          uVar12 = DAT_00119b10;\n          if (sVar6 != 1) {\n            pcVar8 = (char *)dcgettext("gprof","%s: unexpected EOF after reading %d/%d bins\n",5);\n            fprintf(stderr,pcVar8,uVar12,(ulong)((int)uVar10 - 1),uVar7 & 0xffffffff);\n                    \n            FUN_0010a4c0(1);\n          }\n          iVar4 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x50))(local_96);\n          piVar1 = (int *)(DAT_00119b18[3] + uVar10 * 4);\n          *piVar1 = *piVar1 + iVar4;\n          bVar15 = iVar3 - 1 != uVar10;\n          uVar10 = uVar10 + 1;\n        } while (bVar15);\n      }\n      uVar5 = 0;\n      while ((iVar3 = FUN_00109550(__stream,&local_90), iVar3 == 0 &&\n             (iVar3 = FUN_00109550(__stream,&local_88), iVar3 == 0))) {\n        iVar3 = FUN_00109420();\n        if (iVar3 == 0) {\n          iVar3 = FUN_00109500(__stream,&local_80);\n          if (iVar3 != 0) break;\n          uVar7 = (ulong)local_80;\n        }\n        else {\n          if ((iVar3 != 1) || (iVar3 = FUN_001093d0(__stream,&local_80), iVar3 != 0)) break;\n          uVar7 = CONCAT44(uStack_7c,local_80);\n        }\n        uVar5 = uVar5 + 1;\n        if (((byte)DAT_001195e4 & 0x40) != 0) {\n          printf("[gmon_out_read] frompc 0x%lx selfpc 0x%lx count %lu\n",local_90,local_88,uVar7);\n        }\n        FUN_001040b0(local_90,local_88,uVar7);\n      }\n      local_a8 = 0;\n      if (DAT_001195e8 == 0) {\n        iVar3 = FUN_0010a4d0();\n        DAT_001195e8 = (ulong)iVar3;\n        if (DAT_001195e8 == 0) {\n          DAT_001195e8 = 1;\n          pcVar8 = (char *)dcgettext("gprof","time is in ticks, not seconds\n",5);\n          fprintf(stderr,pcVar8);\n        }\n      }\nLAB_001099b1:\n      if (stdin != __stream) {\n        fclose(__stream);\n      }\n      uVar2 = DAT_001195b4;\n      if (((byte)DAT_001195e0 & 0x20) == 0) {\n        return;\n      }\n      pcVar8 = (char *)dcgettext("gprof","File `%s\' (version %d) contains:\n",5);\n      printf(pcVar8,param_1,(ulong)uVar2);\n      if (local_a4 == 1) {\n        pcVar8 = (char *)dcgettext("gprof","\t%d histogram record\n",5);\n      }\n      else {\n        pcVar8 = (char *)dcgettext("gprof","\t%d histogram records\n",5);\n      }\n      printf(pcVar8,(ulong)local_a4);\n      if (uVar5 == 1) {\n        pcVar8 = (char *)dcgettext("gprof","\t%d call-graph record\n",5);\n      }\n      else {\n        pcVar8 = (char *)dcgettext("gprof","\t%d call-graph records\n",5);\n      }\n      printf(pcVar8,(ulong)uVar5);\n      if (local_a8 == 1) {\n        pcVar8 = (char *)dcgettext("gprof","\t%d basic-block count record\n",5);\n      }\n      else {\n        pcVar8 = (char *)dcgettext("gprof","\t%d basic-block count records\n",5);\n      }\n      printf(pcVar8,(ulong)local_a8);\n      DAT_001182d8 = 0;\n      return;\n    }\n    pcVar8 = "%s: file \'%s\' does not appear to be in gmon.out format\n";\nLAB_0010a006:\n    uVar12 = DAT_00119b10;\n    pcVar8 = (char *)dcgettext("gprof",pcVar8,5);\n    fprintf(stderr,pcVar8,uVar12,param_1);\n                    \n    FUN_0010a4c0(1);\n  }\nLAB_00109f6f:\n  pcVar8 = "%s: file too short to be a gmon file\n";\nLAB_00109f7b:\n  pcVar8 = (char *)dcgettext("gprof",pcVar8,5);\n  fprintf(stderr,pcVar8,param_1);\n                    \n  FUN_0010a4c0(1);\n}" (primitive_type "void") (function_declarator "FUN_00109740(byte *param_1)" (identifier "FUN_00109740") (parameter_list "(byte *param_1)" (( "(") (parameter_declaration "byte *param_1" (type_identifier "byte") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) () ")"))) (compound_statement "{\n  int *piVar1;\n  uint uVar2;\n  int iVar3;\n  int iVar4;\n  uint uVar5;\n  size_t sVar6;\n  ulong uVar7;\n  FILE *__stream;\n  char *pcVar8;\n  ulong *puVar9;\n  ulong uVar10;\n  long lVar11;\n  undefined8 uVar12;\n  byte *pbVar13;\n  byte *pbVar14;\n  bool bVar15;\n  bool bVar16;\n  byte bVar17;\n  uint local_a8;\n  uint local_a4;\n  undefined1 local_96 [2];\n  int local_94;\n  undefined8 local_90;\n  undefined8 local_88;\n  uint local_80;\n  undefined4 uStack_7c;\n  byte local_78 [4];\n  undefined1 local_74 [28];\n  byte local_58;\n  undefined7 uStack_57;\n  ulong local_50;\n  uint local_48 [6];\n  \n  bVar17 = 0;\n  lVar11 = 2;\n  bVar15 = &stack0xffffffffffffffd0 < (undefined1 *)0x78;\n  bVar16 = &stack0x00000000 == (undefined1 *)0xa8;\n  pbVar13 = param_1;\n  pbVar14 = &DAT_001110e7;\n  do {\n    if (lVar11 == 0) break;\n    lVar11 = lVar11 + -1;\n    bVar15 = *pbVar13 < *pbVar14;\n    bVar16 = *pbVar13 == *pbVar14;\n    pbVar13 = pbVar13 + 1;\n    pbVar14 = pbVar14 + 1;\n  } while (bVar16);\n  __stream = stdin;\n  if (((!bVar15 && !bVar16) != bVar15) &&\n     (__stream = fopen((char *)param_1,"r"), __stream == (FILE *)0x0)) goto LAB_00109ba3;\n  sVar6 = fread(local_78,0x14,1,__stream);\n  uVar12 = DAT_00119b10;\n  uVar5 = DAT_001195c0;\n  if (sVar6 != 1) goto LAB_00109f6f;\n  bVar15 = DAT_001195c0 == 0;\n  bVar16 = DAT_001195c0 == 1;\n  if (bVar16) {\n    lVar11 = 4;\n    pbVar13 = local_78;\n    pbVar14 = &DAT_001110e9;\n    do {\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar15 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar17 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar17 * -2 + 1;\n    } while (bVar16);\n    if ((!bVar15 && !bVar16) == bVar15) {\nLAB_001099fe:\n      uVar5 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x38))(local_74);\n      uVar12 = DAT_00119b10;\n      DAT_001195b4 = uVar5;\n      if (1 < uVar5) {\n        pcVar8 = (char *)dcgettext("gprof","%s: file `%s\' has unsupported version %d\n",5);\n        uVar7 = (ulong)uVar5;\nLAB_00109f08:\n        fprintf(stderr,pcVar8,uVar12,param_1,uVar7);\n                    \n        FUN_0010a4c0(1);\n      }\n      local_a8 = 0;\n      uVar5 = 0;\n      local_a4 = 0;\n      while (sVar6 = fread(&local_58,1,1,__stream), uVar12 = DAT_00119b10, sVar6 == 1) {\n        if (local_58 == 1) {\n          uVar5 = uVar5 + 1;\n          DAT_001195b8 = DAT_001195b8 | 2;\n          FUN_001041c0(__stream,param_1);\n        }\n        else if (local_58 == 0) {\n          local_a4 = local_a4 + 1;\n          DAT_001195b8 = DAT_001195b8 | 1;\n          FUN_0010b590(__stream,param_1);\n        }\n        else {\n          if (local_58 != 2) {\n            pcVar8 = (char *)dcgettext("gprof","%s: %s: found bad tag %d (file corrupted?)\n",5);\n            uVar7 = (ulong)local_58;\n            goto LAB_00109f08;\n          }\n          local_a8 = local_a8 + 1;\n          DAT_001195b8 = DAT_001195b8 | 4;\n          FUN_001034d0(__stream,param_1);\n        }\n      }\n      goto LAB_001099b1;\n    }\nLAB_00109cae:\n    pcVar8 = "%s: file `%s\' has bad magic cookie\n";\n    goto LAB_0010a006;\n  }\n  bVar15 = false;\n  bVar16 = DAT_001195c0 == 0;\n  if (bVar16) {\n    lVar11 = 4;\n    pbVar13 = local_78;\n    pbVar14 = &DAT_001110e9;\n    do {\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar15 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar17 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar17 * -2 + 1;\n    } while (bVar16);\n    if ((!bVar15 && !bVar16) == bVar15) goto LAB_001099fe;\n  }\n  else if (1 < DAT_001195c0 - 2) {\n    pcVar8 = (char *)dcgettext("gprof","%s: don\'t know how to deal with file format %d\n",5);\n    fprintf(stderr,pcVar8,uVar12,(ulong)uVar5);\n                    \n    FUN_0010a4c0(1);\n  }\n  DAT_001195b8 = 3;\n  iVar3 = fseek(__stream,0,0);\n  if (iVar3 < 0) goto LAB_00109ba3;\n  iVar3 = FUN_00109550(__stream,&local_58);\n  if ((((iVar3 == 0) && (iVar3 = FUN_00109550(__stream,&local_50), iVar3 == 0)) &&\n      (iVar3 = FUN_00109500(__stream,local_48), iVar3 == 0)) &&\n     (iVar3 = FUN_00109500(__stream,&local_94), iVar3 == 0)) {\n    if (local_94 == 0x51879) {\n      iVar3 = FUN_00109500(__stream,&local_80);\n      if (iVar3 != 0) goto LAB_00109f6f;\n      uVar7 = (ulong)local_80;\n      if ((DAT_00119b18 != (ulong *)0x0) &&\n         (uVar7 = DAT_001195e8, (long)(int)local_80 != DAT_001195e8)) {\n        pcVar8 = "%s: profiling rate incompatible with first gmon file\n";\n        goto LAB_00109f7b;\n      }\n      DAT_001195e8 = uVar7;\n      iVar3 = FUN_00109420();\n      if (iVar3 == 0) {\n        lVar11 = 0x20;\n        iVar3 = 0x20;\n      }\n      else {\n        lVar11 = 0x28;\n        if (iVar3 == 1) {\n          iVar3 = 0x28;\n        }\n        else {\n          lVar11 = 0;\n          iVar3 = 0;\n        }\n      }\n    }\n    else {\n      if (DAT_001195c0 == 3) goto LAB_00109cae;\n      iVar4 = FUN_00109420();\n      if (iVar4 == 0) {\n        lVar11 = 0xc;\n        iVar3 = 0xc;\n      }\n      else {\n        lVar11 = 0x14;\n        if (iVar4 != 1) {\n          lVar11 = 0;\n        }\n        iVar3 = 0x14;\n        if (iVar4 != 1) {\n          iVar3 = 0;\n        }\n      }\n    }\n    iVar4 = fseek(__stream,lVar11,0);\n    if (iVar4 < 0) {\nLAB_00109ba3:\n      perror((char *)param_1);\n                    \n      FUN_0010a4c0(1);\n    }\n    uVar5 = local_48[0] - iVar3;\n    uVar7 = (ulong)(long)(int)uVar5 >> 1;\n    iVar3 = (int)uVar7;\n    if (DAT_00119b18 == (ulong *)0x0) {\n      DAT_00119b20 = 1;\n      puVar9 = (ulong *)xmalloc(0x20);\n      DAT_00119b18 = puVar9;\n      *puVar9 = CONCAT71(uStack_57,local_58);\n      *(int *)(puVar9 + 2) = iVar3;\n      sVar6 = (uVar7 & 0xffffffff) << 2;\n      puVar9[1] = local_50;\n      DAT_00119b28 = (double)(local_50 - CONCAT71(uStack_57,local_58) >> 1) /\n                     (double)(uVar7 & 0xffffffff);\n      uVar10 = xmalloc(sVar6);\n      puVar9[3] = uVar10;\n      memset((void *)DAT_00119b18[3],0,sVar6);\n    }\n    else if (((CONCAT71(uStack_57,local_58) != *DAT_00119b18) || (local_50 != DAT_00119b18[1])) ||\n            ((int)DAT_00119b18[2] != iVar3)) {\n      pcVar8 = "%s: incompatible with first gmon file\n";\n      goto LAB_00109f7b;\n    }\n    if (((byte)DAT_001195e4 & 0x40) != 0) {\n      printf("[gmon_out_read] lowpc 0x%lx highpc 0x%lx ncnt %d\n",CONCAT71(uStack_57,local_58),\n             local_50,(ulong)local_48[0]);\n      printf("[gmon_out_read] samp_bytes %d hist_num_bins %d\n",(ulong)uVar5,uVar7 & 0xffffffff);\n    }\n    if ((-1 < (int)uVar5) && (*DAT_00119b18 <= DAT_00119b18[1])) {\n      local_a4 = (uint)(iVar3 != 0);\n      if (iVar3 != 0) {\n        uVar10 = 0;\n        do {\n          sVar6 = fread(local_96,2,1,__stream);\n          uVar12 = DAT_00119b10;\n          if (sVar6 != 1) {\n            pcVar8 = (char *)dcgettext("gprof","%s: unexpected EOF after reading %d/%d bins\n",5);\n            fprintf(stderr,pcVar8,uVar12,(ulong)((int)uVar10 - 1),uVar7 & 0xffffffff);\n                    \n            FUN_0010a4c0(1);\n          }\n          iVar4 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x50))(local_96);\n          piVar1 = (int *)(DAT_00119b18[3] + uVar10 * 4);\n          *piVar1 = *piVar1 + iVar4;\n          bVar15 = iVar3 - 1 != uVar10;\n          uVar10 = uVar10 + 1;\n        } while (bVar15);\n      }\n      uVar5 = 0;\n      while ((iVar3 = FUN_00109550(__stream,&local_90), iVar3 == 0 &&\n             (iVar3 = FUN_00109550(__stream,&local_88), iVar3 == 0))) {\n        iVar3 = FUN_00109420();\n        if (iVar3 == 0) {\n          iVar3 = FUN_00109500(__stream,&local_80);\n          if (iVar3 != 0) break;\n          uVar7 = (ulong)local_80;\n        }\n        else {\n          if ((iVar3 != 1) || (iVar3 = FUN_001093d0(__stream,&local_80), iVar3 != 0)) break;\n          uVar7 = CONCAT44(uStack_7c,local_80);\n        }\n        uVar5 = uVar5 + 1;\n        if (((byte)DAT_001195e4 & 0x40) != 0) {\n          printf("[gmon_out_read] frompc 0x%lx selfpc 0x%lx count %lu\n",local_90,local_88,uVar7);\n        }\n        FUN_001040b0(local_90,local_88,uVar7);\n      }\n      local_a8 = 0;\n      if (DAT_001195e8 == 0) {\n        iVar3 = FUN_0010a4d0();\n        DAT_001195e8 = (ulong)iVar3;\n        if (DAT_001195e8 == 0) {\n          DAT_001195e8 = 1;\n          pcVar8 = (char *)dcgettext("gprof","time is in ticks, not seconds\n",5);\n          fprintf(stderr,pcVar8);\n        }\n      }\nLAB_001099b1:\n      if (stdin != __stream) {\n        fclose(__stream);\n      }\n      uVar2 = DAT_001195b4;\n      if (((byte)DAT_001195e0 & 0x20) == 0) {\n        return;\n      }\n      pcVar8 = (char *)dcgettext("gprof","File `%s\' (version %d) contains:\n",5);\n      printf(pcVar8,param_1,(ulong)uVar2);\n      if (local_a4 == 1) {\n        pcVar8 = (char *)dcgettext("gprof","\t%d histogram record\n",5);\n      }\n      else {\n        pcVar8 = (char *)dcgettext("gprof","\t%d histogram records\n",5);\n      }\n      printf(pcVar8,(ulong)local_a4);\n      if (uVar5 == 1) {\n        pcVar8 = (char *)dcgettext("gprof","\t%d call-graph record\n",5);\n      }\n      else {\n        pcVar8 = (char *)dcgettext("gprof","\t%d call-graph records\n",5);\n      }\n      printf(pcVar8,(ulong)uVar5);\n      if (local_a8 == 1) {\n        pcVar8 = (char *)dcgettext("gprof","\t%d basic-block count record\n",5);\n      }\n      else {\n        pcVar8 = (char *)dcgettext("gprof","\t%d basic-block count records\n",5);\n      }\n      printf(pcVar8,(ulong)local_a8);\n      DAT_001182d8 = 0;\n      return;\n    }\n    pcVar8 = "%s: file \'%s\' does not appear to be in gmon.out format\n";\nLAB_0010a006:\n    uVar12 = DAT_00119b10;\n    pcVar8 = (char *)dcgettext("gprof",pcVar8,5);\n    fprintf(stderr,pcVar8,uVar12,param_1);\n                    \n    FUN_0010a4c0(1);\n  }\nLAB_00109f6f:\n  pcVar8 = "%s: file too short to be a gmon file\n";\nLAB_00109f7b:\n  pcVar8 = (char *)dcgettext("gprof",pcVar8,5);\n  fprintf(stderr,pcVar8,param_1);\n                    \n  FUN_0010a4c0(1);\n}" ({ "{") (declaration "int *piVar1;" (primitive_type "int") (pointer_declarator "*piVar1" (* "*") (identifier "piVar1")) (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "uint uVar5;" (type_identifier "uint") (identifier "uVar5") (; ";")) (declaration "size_t sVar6;" (primitive_type "size_t") (identifier "sVar6") (; ";")) (declaration "ulong uVar7;" (type_identifier "ulong") (identifier "uVar7") (; ";")) (declaration "FILE *__stream;" (type_identifier "FILE") (pointer_declarator "*__stream" (* "*") (identifier "__stream")) (; ";")) (declaration "char *pcVar8;" (primitive_type "char") (pointer_declarator "*pcVar8" (* "*") (identifier "pcVar8")) (; ";")) (declaration "ulong *puVar9;" (type_identifier "ulong") (pointer_declarator "*puVar9" (* "*") (identifier "puVar9")) (; ";")) (declaration "ulong uVar10;" (type_identifier "ulong") (identifier "uVar10") (; ";")) (declaration "long lVar11;" (sized_type_specifier "long" (long "long")) (identifier "lVar11") (; ";")) (declaration "undefined8 uVar12;" (type_identifier "undefined8") (identifier "uVar12") (; ";")) (declaration "byte *pbVar13;" (type_identifier "byte") (pointer_declarator "*pbVar13" (* "*") (identifier "pbVar13")) (; ";")) (declaration "byte *pbVar14;" (type_identifier "byte") (pointer_declarator "*pbVar14" (* "*") (identifier "pbVar14")) (; ";")) (declaration "bool bVar15;" (primitive_type "bool") (identifier "bVar15") (; ";")) (declaration "bool bVar16;" (primitive_type "bool") (identifier "bVar16") (; ";")) (declaration "byte bVar17;" (type_identifier "byte") (identifier "bVar17") (; ";")) (declaration "uint local_a8;" (type_identifier "uint") (identifier "local_a8") (; ";")) (declaration "uint local_a4;" (type_identifier "uint") (identifier "local_a4") (; ";")) (declaration "undefined1 local_96 [2];" (type_identifier "undefined1") (array_declarator "local_96 [2]" (identifier "local_96") ([ "[") (number_literal "2") (] "]")) (; ";")) (declaration "int local_94;" (primitive_type "int") (identifier "local_94") (; ";")) (declaration "undefined8 local_90;" (type_identifier "undefined8") (identifier "local_90") (; ";")) (declaration "undefined8 local_88;" (type_identifier "undefined8") (identifier "local_88") (; ";")) (declaration "uint local_80;" (type_identifier "uint") (identifier "local_80") (; ";")) (declaration "undefined4 uStack_7c;" (type_identifier "undefined4") (identifier "uStack_7c") (; ";")) (declaration "byte local_78 [4];" (type_identifier "byte") (array_declarator "local_78 [4]" (identifier "local_78") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "undefined1 local_74 [28];" (type_identifier "undefined1") (array_declarator "local_74 [28]" (identifier "local_74") ([ "[") (number_literal "28") (] "]")) (; ";")) (declaration "byte local_58;" (type_identifier "byte") (identifier "local_58") (; ";")) (declaration "undefined7 uStack_57;" (type_identifier "undefined7") (identifier "uStack_57") (; ";")) (declaration "ulong local_50;" (type_identifier "ulong") (identifier "local_50") (; ";")) (declaration "uint local_48 [6];" (type_identifier "uint") (array_declarator "local_48 [6]" (identifier "local_48") ([ "[") (number_literal "6") (] "]")) (; ";")) (expression_statement "bVar17 = 0;" (assignment_expression "bVar17 = 0" (identifier "bVar17") (= "=") (number_literal "0")) (; ";")) (expression_statement "lVar11 = 2;" (assignment_expression "lVar11 = 2" (identifier "lVar11") (= "=") (number_literal "2")) (; ";")) (expression_statement "bVar15 = &stack0xffffffffffffffd0 < (undefined1 *)0x78;" (assignment_expression "bVar15 = &stack0xffffffffffffffd0 < (undefined1 *)0x78" (identifier "bVar15") (= "=") (binary_expression "&stack0xffffffffffffffd0 < (undefined1 *)0x78" (pointer_expression "&stack0xffffffffffffffd0" (& "&") (identifier "stack0xffffffffffffffd0")) (< "<") (cast_expression "(undefined1 *)0x78" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x78")))) (; ";")) (expression_statement "bVar16 = &stack0x00000000 == (undefined1 *)0xa8;" (assignment_expression "bVar16 = &stack0x00000000 == (undefined1 *)0xa8" (identifier "bVar16") (= "=") (binary_expression "&stack0x00000000 == (undefined1 *)0xa8" (pointer_expression "&stack0x00000000" (& "&") (identifier "stack0x00000000")) (== "==") (cast_expression "(undefined1 *)0xa8" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xa8")))) (; ";")) (expression_statement "pbVar13 = param_1;" (assignment_expression "pbVar13 = param_1" (identifier "pbVar13") (= "=") (identifier "param_1")) (; ";")) (expression_statement "pbVar14 = &DAT_001110e7;" (assignment_expression "pbVar14 = &DAT_001110e7" (identifier "pbVar14") (= "=") (pointer_expression "&DAT_001110e7" (& "&") (identifier "DAT_001110e7"))) (; ";")) (do_statement "do {\n    if (lVar11 == 0) break;\n    lVar11 = lVar11 + -1;\n    bVar15 = *pbVar13 < *pbVar14;\n    bVar16 = *pbVar13 == *pbVar14;\n    pbVar13 = pbVar13 + 1;\n    pbVar14 = pbVar14 + 1;\n  } while (bVar16);" (do "do") (compound_statement "{\n    if (lVar11 == 0) break;\n    lVar11 = lVar11 + -1;\n    bVar15 = *pbVar13 < *pbVar14;\n    bVar16 = *pbVar13 == *pbVar14;\n    pbVar13 = pbVar13 + 1;\n    pbVar14 = pbVar14 + 1;\n  }" ({ "{") (if_statement "if (lVar11 == 0) break;" (if "if") (parenthesized_expression "(lVar11 == 0)" (( "(") (binary_expression "lVar11 == 0" (identifier "lVar11") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar11 = lVar11 + -1;" (assignment_expression "lVar11 = lVar11 + -1" (identifier "lVar11") (= "=") (binary_expression "lVar11 + -1" (identifier "lVar11") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar15 = *pbVar13 < *pbVar14;" (assignment_expression "bVar15 = *pbVar13 < *pbVar14" (identifier "bVar15") (= "=") (binary_expression "*pbVar13 < *pbVar14" (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13")) (< "<") (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")))) (; ";")) (expression_statement "bVar16 = *pbVar13 == *pbVar14;" (assignment_expression "bVar16 = *pbVar13 == *pbVar14" (identifier "bVar16") (= "=") (binary_expression "*pbVar13 == *pbVar14" (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13")) (== "==") (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")))) (; ";")) (expression_statement "pbVar13 = pbVar13 + 1;" (assignment_expression "pbVar13 = pbVar13 + 1" (identifier "pbVar13") (= "=") (binary_expression "pbVar13 + 1" (identifier "pbVar13") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar14 = pbVar14 + 1;" (assignment_expression "pbVar14 = pbVar14 + 1" (identifier "pbVar14") (= "=") (binary_expression "pbVar14 + 1" (identifier "pbVar14") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar16)" (( "(") (identifier "bVar16") () ")")) (; ";")) (expression_statement "__stream = stdin;" (assignment_expression "__stream = stdin" (identifier "__stream") (= "=") (identifier "stdin")) (; ";")) (if_statement "if (((!bVar15 && !bVar16) != bVar15) &&\n     (__stream = fopen((char *)param_1,"r"), __stream == (FILE *)0x0)) goto LAB_00109ba3;" (if "if") (parenthesized_expression "(((!bVar15 && !bVar16) != bVar15) &&\n     (__stream = fopen((char *)param_1,"r"), __stream == (FILE *)0x0))" (( "(") (binary_expression "((!bVar15 && !bVar16) != bVar15) &&\n     (__stream = fopen((char *)param_1,"r"), __stream == (FILE *)0x0)" (parenthesized_expression "((!bVar15 && !bVar16) != bVar15)" (( "(") (binary_expression "(!bVar15 && !bVar16) != bVar15" (parenthesized_expression "(!bVar15 && !bVar16)" (( "(") (binary_expression "!bVar15 && !bVar16" (unary_expression "!bVar15" (! "!") (identifier "bVar15")) (&& "&&") (unary_expression "!bVar16" (! "!") (identifier "bVar16"))) () ")")) (!= "!=") (identifier "bVar15")) () ")")) (&& "&&") (parenthesized_expression "(__stream = fopen((char *)param_1,"r"), __stream == (FILE *)0x0)" (( "(") (comma_expression "__stream = fopen((char *)param_1,"r"), __stream == (FILE *)0x0" (assignment_expression "__stream = fopen((char *)param_1,"r")" (identifier "__stream") (= "=") (call_expression "fopen((char *)param_1,"r")" (identifier "fopen") (argument_list "((char *)param_1,"r")" (( "(") (cast_expression "(char *)param_1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1")) (, ",") (string_literal ""r"" (" """) (string_content "r") (" """)) () ")")))) (, ",") (binary_expression "__stream == (FILE *)0x0" (identifier "__stream") (== "==") (cast_expression "(FILE *)0x0" (( "(") (type_descriptor "FILE *" (type_identifier "FILE") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (goto_statement "goto LAB_00109ba3;" (goto "goto") (statement_identifier "LAB_00109ba3") (; ";"))) (expression_statement "sVar6 = fread(local_78,0x14,1,__stream);" (assignment_expression "sVar6 = fread(local_78,0x14,1,__stream)" (identifier "sVar6") (= "=") (call_expression "fread(local_78,0x14,1,__stream)" (identifier "fread") (argument_list "(local_78,0x14,1,__stream)" (( "(") (identifier "local_78") (, ",") (number_literal "0x14") (, ",") (number_literal "1") (, ",") (identifier "__stream") () ")")))) (; ";")) (expression_statement "uVar12 = DAT_00119b10;" (assignment_expression "uVar12 = DAT_00119b10" (identifier "uVar12") (= "=") (identifier "DAT_00119b10")) (; ";")) (expression_statement "uVar5 = DAT_001195c0;" (assignment_expression "uVar5 = DAT_001195c0" (identifier "uVar5") (= "=") (identifier "DAT_001195c0")) (; ";")) (if_statement "if (sVar6 != 1) goto LAB_00109f6f;" (if "if") (parenthesized_expression "(sVar6 != 1)" (( "(") (binary_expression "sVar6 != 1" (identifier "sVar6") (!= "!=") (number_literal "1")) () ")")) (goto_statement "goto LAB_00109f6f;" (goto "goto") (statement_identifier "LAB_00109f6f") (; ";"))) (expression_statement "bVar15 = DAT_001195c0 == 0;" (assignment_expression "bVar15 = DAT_001195c0 == 0" (identifier "bVar15") (= "=") (binary_expression "DAT_001195c0 == 0" (identifier "DAT_001195c0") (== "==") (number_literal "0"))) (; ";")) (expression_statement "bVar16 = DAT_001195c0 == 1;" (assignment_expression "bVar16 = DAT_001195c0 == 1" (identifier "bVar16") (= "=") (binary_expression "DAT_001195c0 == 1" (identifier "DAT_001195c0") (== "==") (number_literal "1"))) (; ";")) (if_statement "if (bVar16) {\n    lVar11 = 4;\n    pbVar13 = local_78;\n    pbVar14 = &DAT_001110e9;\n    do {\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar15 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar17 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar17 * -2 + 1;\n    } while (bVar16);\n    if ((!bVar15 && !bVar16) == bVar15) {\nLAB_001099fe:\n      uVar5 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x38))(local_74);\n      uVar12 = DAT_00119b10;\n      DAT_001195b4 = uVar5;\n      if (1 < uVar5) {\n        pcVar8 = (char *)dcgettext("gprof","%s: file `%s\' has unsupported version %d\n",5);\n        uVar7 = (ulong)uVar5;\nLAB_00109f08:\n        fprintf(stderr,pcVar8,uVar12,param_1,uVar7);\n                    \n        FUN_0010a4c0(1);\n      }\n      local_a8 = 0;\n      uVar5 = 0;\n      local_a4 = 0;\n      while (sVar6 = fread(&local_58,1,1,__stream), uVar12 = DAT_00119b10, sVar6 == 1) {\n        if (local_58 == 1) {\n          uVar5 = uVar5 + 1;\n          DAT_001195b8 = DAT_001195b8 | 2;\n          FUN_001041c0(__stream,param_1);\n        }\n        else if (local_58 == 0) {\n          local_a4 = local_a4 + 1;\n          DAT_001195b8 = DAT_001195b8 | 1;\n          FUN_0010b590(__stream,param_1);\n        }\n        else {\n          if (local_58 != 2) {\n            pcVar8 = (char *)dcgettext("gprof","%s: %s: found bad tag %d (file corrupted?)\n",5);\n            uVar7 = (ulong)local_58;\n            goto LAB_00109f08;\n          }\n          local_a8 = local_a8 + 1;\n          DAT_001195b8 = DAT_001195b8 | 4;\n          FUN_001034d0(__stream,param_1);\n        }\n      }\n      goto LAB_001099b1;\n    }\nLAB_00109cae:\n    pcVar8 = "%s: file `%s\' has bad magic cookie\n";\n    goto LAB_0010a006;\n  }" (if "if") (parenthesized_expression "(bVar16)" (( "(") (identifier "bVar16") () ")")) (compound_statement "{\n    lVar11 = 4;\n    pbVar13 = local_78;\n    pbVar14 = &DAT_001110e9;\n    do {\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar15 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar17 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar17 * -2 + 1;\n    } while (bVar16);\n    if ((!bVar15 && !bVar16) == bVar15) {\nLAB_001099fe:\n      uVar5 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x38))(local_74);\n      uVar12 = DAT_00119b10;\n      DAT_001195b4 = uVar5;\n      if (1 < uVar5) {\n        pcVar8 = (char *)dcgettext("gprof","%s: file `%s\' has unsupported version %d\n",5);\n        uVar7 = (ulong)uVar5;\nLAB_00109f08:\n        fprintf(stderr,pcVar8,uVar12,param_1,uVar7);\n                    \n        FUN_0010a4c0(1);\n      }\n      local_a8 = 0;\n      uVar5 = 0;\n      local_a4 = 0;\n      while (sVar6 = fread(&local_58,1,1,__stream), uVar12 = DAT_00119b10, sVar6 == 1) {\n        if (local_58 == 1) {\n          uVar5 = uVar5 + 1;\n          DAT_001195b8 = DAT_001195b8 | 2;\n          FUN_001041c0(__stream,param_1);\n        }\n        else if (local_58 == 0) {\n          local_a4 = local_a4 + 1;\n          DAT_001195b8 = DAT_001195b8 | 1;\n          FUN_0010b590(__stream,param_1);\n        }\n        else {\n          if (local_58 != 2) {\n            pcVar8 = (char *)dcgettext("gprof","%s: %s: found bad tag %d (file corrupted?)\n",5);\n            uVar7 = (ulong)local_58;\n            goto LAB_00109f08;\n          }\n          local_a8 = local_a8 + 1;\n          DAT_001195b8 = DAT_001195b8 | 4;\n          FUN_001034d0(__stream,param_1);\n        }\n      }\n      goto LAB_001099b1;\n    }\nLAB_00109cae:\n    pcVar8 = "%s: file `%s\' has bad magic cookie\n";\n    goto LAB_0010a006;\n  }" ({ "{") (expression_statement "lVar11 = 4;" (assignment_expression "lVar11 = 4" (identifier "lVar11") (= "=") (number_literal "4")) (; ";")) (expression_statement "pbVar13 = local_78;" (assignment_expression "pbVar13 = local_78" (identifier "pbVar13") (= "=") (identifier "local_78")) (; ";")) (expression_statement "pbVar14 = &DAT_001110e9;" (assignment_expression "pbVar14 = &DAT_001110e9" (identifier "pbVar14") (= "=") (pointer_expression "&DAT_001110e9" (& "&") (identifier "DAT_001110e9"))) (; ";")) (do_statement "do {\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar15 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar17 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar17 * -2 + 1;\n    } while (bVar16);" (do "do") (compound_statement "{\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar15 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar17 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar17 * -2 + 1;\n    }" ({ "{") (if_statement "if (lVar11 == 0) break;" (if "if") (parenthesized_expression "(lVar11 == 0)" (( "(") (binary_expression "lVar11 == 0" (identifier "lVar11") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar11 = lVar11 + -1;" (assignment_expression "lVar11 = lVar11 + -1" (identifier "lVar11") (= "=") (binary_expression "lVar11 + -1" (identifier "lVar11") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar15 = *pbVar13 < *pbVar14;" (assignment_expression "bVar15 = *pbVar13 < *pbVar14" (identifier "bVar15") (= "=") (binary_expression "*pbVar13 < *pbVar14" (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13")) (< "<") (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")))) (; ";")) (expression_statement "bVar16 = *pbVar13 == *pbVar14;" (assignment_expression "bVar16 = *pbVar13 == *pbVar14" (identifier "bVar16") (= "=") (binary_expression "*pbVar13 == *pbVar14" (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13")) (== "==") (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")))) (; ";")) (expression_statement "pbVar13 = pbVar13 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (ulong)bVar17 * -2 + 1" (identifier "pbVar13") (= "=") (binary_expression "pbVar13 + (ulong)bVar17 * -2 + 1" (binary_expression "pbVar13 + (ulong)bVar17 * -2" (identifier "pbVar13") (+ "+") (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar17")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar14 = pbVar14 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (ulong)bVar17 * -2 + 1" (identifier "pbVar14") (= "=") (binary_expression "pbVar14 + (ulong)bVar17 * -2 + 1" (binary_expression "pbVar14 + (ulong)bVar17 * -2" (identifier "pbVar14") (+ "+") (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar17")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar16)" (( "(") (identifier "bVar16") () ")")) (; ";")) (if_statement "if ((!bVar15 && !bVar16) == bVar15) {\nLAB_001099fe:\n      uVar5 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x38))(local_74);\n      uVar12 = DAT_00119b10;\n      DAT_001195b4 = uVar5;\n      if (1 < uVar5) {\n        pcVar8 = (char *)dcgettext("gprof","%s: file `%s\' has unsupported version %d\n",5);\n        uVar7 = (ulong)uVar5;\nLAB_00109f08:\n        fprintf(stderr,pcVar8,uVar12,param_1,uVar7);\n                    \n        FUN_0010a4c0(1);\n      }\n      local_a8 = 0;\n      uVar5 = 0;\n      local_a4 = 0;\n      while (sVar6 = fread(&local_58,1,1,__stream), uVar12 = DAT_00119b10, sVar6 == 1) {\n        if (local_58 == 1) {\n          uVar5 = uVar5 + 1;\n          DAT_001195b8 = DAT_001195b8 | 2;\n          FUN_001041c0(__stream,param_1);\n        }\n        else if (local_58 == 0) {\n          local_a4 = local_a4 + 1;\n          DAT_001195b8 = DAT_001195b8 | 1;\n          FUN_0010b590(__stream,param_1);\n        }\n        else {\n          if (local_58 != 2) {\n            pcVar8 = (char *)dcgettext("gprof","%s: %s: found bad tag %d (file corrupted?)\n",5);\n            uVar7 = (ulong)local_58;\n            goto LAB_00109f08;\n          }\n          local_a8 = local_a8 + 1;\n          DAT_001195b8 = DAT_001195b8 | 4;\n          FUN_001034d0(__stream,param_1);\n        }\n      }\n      goto LAB_001099b1;\n    }" (if "if") (parenthesized_expression "((!bVar15 && !bVar16) == bVar15)" (( "(") (binary_expression "(!bVar15 && !bVar16) == bVar15" (parenthesized_expression "(!bVar15 && !bVar16)" (( "(") (binary_expression "!bVar15 && !bVar16" (unary_expression "!bVar15" (! "!") (identifier "bVar15")) (&& "&&") (unary_expression "!bVar16" (! "!") (identifier "bVar16"))) () ")")) (== "==") (identifier "bVar15")) () ")")) (compound_statement "{\nLAB_001099fe:\n      uVar5 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x38))(local_74);\n      uVar12 = DAT_00119b10;\n      DAT_001195b4 = uVar5;\n      if (1 < uVar5) {\n        pcVar8 = (char *)dcgettext("gprof","%s: file `%s\' has unsupported version %d\n",5);\n        uVar7 = (ulong)uVar5;\nLAB_00109f08:\n        fprintf(stderr,pcVar8,uVar12,param_1,uVar7);\n                    \n        FUN_0010a4c0(1);\n      }\n      local_a8 = 0;\n      uVar5 = 0;\n      local_a4 = 0;\n      while (sVar6 = fread(&local_58,1,1,__stream), uVar12 = DAT_00119b10, sVar6 == 1) {\n        if (local_58 == 1) {\n          uVar5 = uVar5 + 1;\n          DAT_001195b8 = DAT_001195b8 | 2;\n          FUN_001041c0(__stream,param_1);\n        }\n        else if (local_58 == 0) {\n          local_a4 = local_a4 + 1;\n          DAT_001195b8 = DAT_001195b8 | 1;\n          FUN_0010b590(__stream,param_1);\n        }\n        else {\n          if (local_58 != 2) {\n            pcVar8 = (char *)dcgettext("gprof","%s: %s: found bad tag %d (file corrupted?)\n",5);\n            uVar7 = (ulong)local_58;\n            goto LAB_00109f08;\n          }\n          local_a8 = local_a8 + 1;\n          DAT_001195b8 = DAT_001195b8 | 4;\n          FUN_001034d0(__stream,param_1);\n        }\n      }\n      goto LAB_001099b1;\n    }" ({ "{") (labeled_statement "LAB_001099fe:\n      uVar5 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x38))(local_74);" (statement_identifier "LAB_001099fe") (: ":") (expression_statement "uVar5 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x38))(local_74);" (assignment_expression "uVar5 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x38))(local_74)" (identifier "uVar5") (= "=") (call_expression "(**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x38))(local_74)" (parenthesized_expression "(**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x38))" (( "(") (pointer_expression "**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x38)" (* "*") (pointer_expression "*(code **)(*(long *)(DAT_00119ad8 + 8) + 0x38)" (* "*") (cast_expression "(code **)(*(long *)(DAT_00119ad8 + 8) + 0x38)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(long *)(DAT_00119ad8 + 8) + 0x38)" (( "(") (binary_expression "*(long *)(DAT_00119ad8 + 8) + 0x38" (pointer_expression "*(long *)(DAT_00119ad8 + 8)" (* "*") (cast_expression "(long *)(DAT_00119ad8 + 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_00119ad8 + 8)" (( "(") (binary_expression "DAT_00119ad8 + 8" (identifier "DAT_00119ad8") (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x38")) () ")"))))) () ")")) (argument_list "(local_74)" (( "(") (identifier "local_74") () ")")))) (; ";"))) (expression_statement "uVar12 = DAT_00119b10;" (assignment_expression "uVar12 = DAT_00119b10" (identifier "uVar12") (= "=") (identifier "DAT_00119b10")) (; ";")) (expression_statement "DAT_001195b4 = uVar5;" (assignment_expression "DAT_001195b4 = uVar5" (identifier "DAT_001195b4") (= "=") (identifier "uVar5")) (; ";")) (if_statement "if (1 < uVar5) {\n        pcVar8 = (char *)dcgettext("gprof","%s: file `%s\' has unsupported version %d\n",5);\n        uVar7 = (ulong)uVar5;\nLAB_00109f08:\n        fprintf(stderr,pcVar8,uVar12,param_1,uVar7);\n                    \n        FUN_0010a4c0(1);\n      }" (if "if") (parenthesized_expression "(1 < uVar5)" (( "(") (binary_expression "1 < uVar5" (number_literal "1") (< "<") (identifier "uVar5")) () ")")) (compound_statement "{\n        pcVar8 = (char *)dcgettext("gprof","%s: file `%s\' has unsupported version %d\n",5);\n        uVar7 = (ulong)uVar5;\nLAB_00109f08:\n        fprintf(stderr,pcVar8,uVar12,param_1,uVar7);\n                    \n        FUN_0010a4c0(1);\n      }" ({ "{") (expression_statement "pcVar8 = (char *)dcgettext("gprof","%s: file `%s\' has unsupported version %d\n",5);" (assignment_expression "pcVar8 = (char *)dcgettext("gprof","%s: file `%s\' has unsupported version %d\n",5)" (identifier "pcVar8") (= "=") (cast_expression "(char *)dcgettext("gprof","%s: file `%s\' has unsupported version %d\n",5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext("gprof","%s: file `%s\' has unsupported version %d\n",5)" (identifier "dcgettext") (argument_list "("gprof","%s: file `%s\' has unsupported version %d\n",5)" (( "(") (string_literal ""gprof"" (" """) (string_content "gprof") (" """)) (, ",") (string_literal ""%s: file `%s\' has unsupported version %d\n"" (" """) (string_content "%s: file `%s") (escape_sequence "\'") (string_content " has unsupported version %d") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")"))))) (; ";")) (expression_statement "uVar7 = (ulong)uVar5;" (assignment_expression "uVar7 = (ulong)uVar5" (identifier "uVar7") (= "=") (cast_expression "(ulong)uVar5" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar5"))) (; ";")) (labeled_statement "LAB_00109f08:\n        fprintf(stderr,pcVar8,uVar12,param_1,uVar7);" (statement_identifier "LAB_00109f08") (: ":") (expression_statement "fprintf(stderr,pcVar8,uVar12,param_1,uVar7);" (call_expression "fprintf(stderr,pcVar8,uVar12,param_1,uVar7)" (identifier "fprintf") (argument_list "(stderr,pcVar8,uVar12,param_1,uVar7)" (( "(") (identifier "stderr") (, ",") (identifier "pcVar8") (, ",") (identifier "uVar12") (, ",") (identifier "param_1") (, ",") (identifier "uVar7") () ")"))) (; ";"))) (expression_statement "FUN_0010a4c0(1);" (call_expression "FUN_0010a4c0(1)" (identifier "FUN_0010a4c0") (argument_list "(1)" (( "(") (number_literal "1") () ")"))) (; ";")) (} "}"))) (expression_statement "local_a8 = 0;" (assignment_expression "local_a8 = 0" (identifier "local_a8") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" (identifier "uVar5") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_a4 = 0;" (assignment_expression "local_a4 = 0" (identifier "local_a4") (= "=") (number_literal "0")) (; ";")) (while_statement "while (sVar6 = fread(&local_58,1,1,__stream), uVar12 = DAT_00119b10, sVar6 == 1) {\n        if (local_58 == 1) {\n          uVar5 = uVar5 + 1;\n          DAT_001195b8 = DAT_001195b8 | 2;\n          FUN_001041c0(__stream,param_1);\n        }\n        else if (local_58 == 0) {\n          local_a4 = local_a4 + 1;\n          DAT_001195b8 = DAT_001195b8 | 1;\n          FUN_0010b590(__stream,param_1);\n        }\n        else {\n          if (local_58 != 2) {\n            pcVar8 = (char *)dcgettext("gprof","%s: %s: found bad tag %d (file corrupted?)\n",5);\n            uVar7 = (ulong)local_58;\n            goto LAB_00109f08;\n          }\n          local_a8 = local_a8 + 1;\n          DAT_001195b8 = DAT_001195b8 | 4;\n          FUN_001034d0(__stream,param_1);\n        }\n      }" (while "while") (parenthesized_expression "(sVar6 = fread(&local_58,1,1,__stream), uVar12 = DAT_00119b10, sVar6 == 1)" (( "(") (comma_expression "sVar6 = fread(&local_58,1,1,__stream), uVar12 = DAT_00119b10, sVar6 == 1" (assignment_expression "sVar6 = fread(&local_58,1,1,__stream)" (identifier "sVar6") (= "=") (call_expression "fread(&local_58,1,1,__stream)" (identifier "fread") (argument_list "(&local_58,1,1,__stream)" (( "(") (pointer_expression "&local_58" (& "&") (identifier "local_58")) (, ",") (number_literal "1") (, ",") (number_literal "1") (, ",") (identifier "__stream") () ")")))) (, ",") (comma_expression "uVar12 = DAT_00119b10, sVar6 == 1" (assignment_expression "uVar12 = DAT_00119b10" (identifier "uVar12") (= "=") (identifier "DAT_00119b10")) (, ",") (binary_expression "sVar6 == 1" (identifier "sVar6") (== "==") (number_literal "1")))) () ")")) (compound_statement "{\n        if (local_58 == 1) {\n          uVar5 = uVar5 + 1;\n          DAT_001195b8 = DAT_001195b8 | 2;\n          FUN_001041c0(__stream,param_1);\n        }\n        else if (local_58 == 0) {\n          local_a4 = local_a4 + 1;\n          DAT_001195b8 = DAT_001195b8 | 1;\n          FUN_0010b590(__stream,param_1);\n        }\n        else {\n          if (local_58 != 2) {\n            pcVar8 = (char *)dcgettext("gprof","%s: %s: found bad tag %d (file corrupted?)\n",5);\n            uVar7 = (ulong)local_58;\n            goto LAB_00109f08;\n          }\n          local_a8 = local_a8 + 1;\n          DAT_001195b8 = DAT_001195b8 | 4;\n          FUN_001034d0(__stream,param_1);\n        }\n      }" ({ "{") (if_statement "if (local_58 == 1) {\n          uVar5 = uVar5 + 1;\n          DAT_001195b8 = DAT_001195b8 | 2;\n          FUN_001041c0(__stream,param_1);\n        }\n        else if (local_58 == 0) {\n          local_a4 = local_a4 + 1;\n          DAT_001195b8 = DAT_001195b8 | 1;\n          FUN_0010b590(__stream,param_1);\n        }\n        else {\n          if (local_58 != 2) {\n            pcVar8 = (char *)dcgettext("gprof","%s: %s: found bad tag %d (file corrupted?)\n",5);\n            uVar7 = (ulong)local_58;\n            goto LAB_00109f08;\n          }\n          local_a8 = local_a8 + 1;\n          DAT_001195b8 = DAT_001195b8 | 4;\n          FUN_001034d0(__stream,param_1);\n        }" (if "if") (parenthesized_expression "(local_58 == 1)" (( "(") (binary_expression "local_58 == 1" (identifier "local_58") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n          uVar5 = uVar5 + 1;\n          DAT_001195b8 = DAT_001195b8 | 2;\n          FUN_001041c0(__stream,param_1);\n        }" ({ "{") (expression_statement "uVar5 = uVar5 + 1;" (assignment_expression "uVar5 = uVar5 + 1" (identifier "uVar5") (= "=") (binary_expression "uVar5 + 1" (identifier "uVar5") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "DAT_001195b8 = DAT_001195b8 | 2;" (assignment_expression "DAT_001195b8 = DAT_001195b8 | 2" (identifier "DAT_001195b8") (= "=") (binary_expression "DAT_001195b8 | 2" (identifier "DAT_001195b8") (| "|") (number_literal "2"))) (; ";")) (expression_statement "FUN_001041c0(__stream,param_1);" (call_expression "FUN_001041c0(__stream,param_1)" (identifier "FUN_001041c0") (argument_list "(__stream,param_1)" (( "(") (identifier "__stream") (, ",") (identifier "param_1") () ")"))) (; ";")) (} "}")) (else_clause "else if (local_58 == 0) {\n          local_a4 = local_a4 + 1;\n          DAT_001195b8 = DAT_001195b8 | 1;\n          FUN_0010b590(__stream,param_1);\n        }\n        else {\n          if (local_58 != 2) {\n            pcVar8 = (char *)dcgettext("gprof","%s: %s: found bad tag %d (file corrupted?)\n",5);\n            uVar7 = (ulong)local_58;\n            goto LAB_00109f08;\n          }\n          local_a8 = local_a8 + 1;\n          DAT_001195b8 = DAT_001195b8 | 4;\n          FUN_001034d0(__stream,param_1);\n        }" (else "else") (if_statement "if (local_58 == 0) {\n          local_a4 = local_a4 + 1;\n          DAT_001195b8 = DAT_001195b8 | 1;\n          FUN_0010b590(__stream,param_1);\n        }\n        else {\n          if (local_58 != 2) {\n            pcVar8 = (char *)dcgettext("gprof","%s: %s: found bad tag %d (file corrupted?)\n",5);\n            uVar7 = (ulong)local_58;\n            goto LAB_00109f08;\n          }\n          local_a8 = local_a8 + 1;\n          DAT_001195b8 = DAT_001195b8 | 4;\n          FUN_001034d0(__stream,param_1);\n        }" (if "if") (parenthesized_expression "(local_58 == 0)" (( "(") (binary_expression "local_58 == 0" (identifier "local_58") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          local_a4 = local_a4 + 1;\n          DAT_001195b8 = DAT_001195b8 | 1;\n          FUN_0010b590(__stream,param_1);\n        }" ({ "{") (expression_statement "local_a4 = local_a4 + 1;" (assignment_expression "local_a4 = local_a4 + 1" (identifier "local_a4") (= "=") (binary_expression "local_a4 + 1" (identifier "local_a4") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "DAT_001195b8 = DAT_001195b8 | 1;" (assignment_expression "DAT_001195b8 = DAT_001195b8 | 1" (identifier "DAT_001195b8") (= "=") (binary_expression "DAT_001195b8 | 1" (identifier "DAT_001195b8") (| "|") (number_literal "1"))) (; ";")) (expression_statement "FUN_0010b590(__stream,param_1);" (call_expression "FUN_0010b590(__stream,param_1)" (identifier "FUN_0010b590") (argument_list "(__stream,param_1)" (( "(") (identifier "__stream") (, ",") (identifier "param_1") () ")"))) (; ";")) (} "}")) (else_clause "else {\n          if (local_58 != 2) {\n            pcVar8 = (char *)dcgettext("gprof","%s: %s: found bad tag %d (file corrupted?)\n",5);\n            uVar7 = (ulong)local_58;\n            goto LAB_00109f08;\n          }\n          local_a8 = local_a8 + 1;\n          DAT_001195b8 = DAT_001195b8 | 4;\n          FUN_001034d0(__stream,param_1);\n        }" (else "else") (compound_statement "{\n          if (local_58 != 2) {\n            pcVar8 = (char *)dcgettext("gprof","%s: %s: found bad tag %d (file corrupted?)\n",5);\n            uVar7 = (ulong)local_58;\n            goto LAB_00109f08;\n          }\n          local_a8 = local_a8 + 1;\n          DAT_001195b8 = DAT_001195b8 | 4;\n          FUN_001034d0(__stream,param_1);\n        }" ({ "{") (if_statement "if (local_58 != 2) {\n            pcVar8 = (char *)dcgettext("gprof","%s: %s: found bad tag %d (file corrupted?)\n",5);\n            uVar7 = (ulong)local_58;\n            goto LAB_00109f08;\n          }" (if "if") (parenthesized_expression "(local_58 != 2)" (( "(") (binary_expression "local_58 != 2" (identifier "local_58") (!= "!=") (number_literal "2")) () ")")) (compound_statement "{\n            pcVar8 = (char *)dcgettext("gprof","%s: %s: found bad tag %d (file corrupted?)\n",5);\n            uVar7 = (ulong)local_58;\n            goto LAB_00109f08;\n          }" ({ "{") (expression_statement "pcVar8 = (char *)dcgettext("gprof","%s: %s: found bad tag %d (file corrupted?)\n",5);" (assignment_expression "pcVar8 = (char *)dcgettext("gprof","%s: %s: found bad tag %d (file corrupted?)\n",5)" (identifier "pcVar8") (= "=") (cast_expression "(char *)dcgettext("gprof","%s: %s: found bad tag %d (file corrupted?)\n",5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext("gprof","%s: %s: found bad tag %d (file corrupted?)\n",5)" (identifier "dcgettext") (argument_list "("gprof","%s: %s: found bad tag %d (file corrupted?)\n",5)" (( "(") (string_literal ""gprof"" (" """) (string_content "gprof") (" """)) (, ",") (string_literal ""%s: %s: found bad tag %d (file corrupted?)\n"" (" """) (string_content "%s: %s: found bad tag %d (file corrupted?)") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")"))))) (; ";")) (expression_statement "uVar7 = (ulong)local_58;" (assignment_expression "uVar7 = (ulong)local_58" (identifier "uVar7") (= "=") (cast_expression "(ulong)local_58" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "local_58"))) (; ";")) (goto_statement "goto LAB_00109f08;" (goto "goto") (statement_identifier "LAB_00109f08") (; ";")) (} "}"))) (expression_statement "local_a8 = local_a8 + 1;" (assignment_expression "local_a8 = local_a8 + 1" (identifier "local_a8") (= "=") (binary_expression "local_a8 + 1" (identifier "local_a8") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "DAT_001195b8 = DAT_001195b8 | 4;" (assignment_expression "DAT_001195b8 = DAT_001195b8 | 4" (identifier "DAT_001195b8") (= "=") (binary_expression "DAT_001195b8 | 4" (identifier "DAT_001195b8") (| "|") (number_literal "4"))) (; ";")) (expression_statement "FUN_001034d0(__stream,param_1);" (call_expression "FUN_001034d0(__stream,param_1)" (identifier "FUN_001034d0") (argument_list "(__stream,param_1)" (( "(") (identifier "__stream") (, ",") (identifier "param_1") () ")"))) (; ";")) (} "}")))))) (} "}"))) (goto_statement "goto LAB_001099b1;" (goto "goto") (statement_identifier "LAB_001099b1") (; ";")) (} "}"))) (labeled_statement "LAB_00109cae:\n    pcVar8 = "%s: file `%s\' has bad magic cookie\n";" (statement_identifier "LAB_00109cae") (: ":") (expression_statement "pcVar8 = "%s: file `%s\' has bad magic cookie\n";" (assignment_expression "pcVar8 = "%s: file `%s\' has bad magic cookie\n"" (identifier "pcVar8") (= "=") (string_literal ""%s: file `%s\' has bad magic cookie\n"" (" """) (string_content "%s: file `%s") (escape_sequence "\'") (string_content " has bad magic cookie") (escape_sequence "\n") (" """))) (; ";"))) (goto_statement "goto LAB_0010a006;" (goto "goto") (statement_identifier "LAB_0010a006") (; ";")) (} "}"))) (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = false" (identifier "bVar15") (= "=") (false "false")) (; ";")) (expression_statement "bVar16 = DAT_001195c0 == 0;" (assignment_expression "bVar16 = DAT_001195c0 == 0" (identifier "bVar16") (= "=") (binary_expression "DAT_001195c0 == 0" (identifier "DAT_001195c0") (== "==") (number_literal "0"))) (; ";")) (if_statement "if (bVar16) {\n    lVar11 = 4;\n    pbVar13 = local_78;\n    pbVar14 = &DAT_001110e9;\n    do {\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar15 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar17 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar17 * -2 + 1;\n    } while (bVar16);\n    if ((!bVar15 && !bVar16) == bVar15) goto LAB_001099fe;\n  }\n  else if (1 < DAT_001195c0 - 2) {\n    pcVar8 = (char *)dcgettext("gprof","%s: don\'t know how to deal with file format %d\n",5);\n    fprintf(stderr,pcVar8,uVar12,(ulong)uVar5);\n                    \n    FUN_0010a4c0(1);\n  }" (if "if") (parenthesized_expression "(bVar16)" (( "(") (identifier "bVar16") () ")")) (compound_statement "{\n    lVar11 = 4;\n    pbVar13 = local_78;\n    pbVar14 = &DAT_001110e9;\n    do {\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar15 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar17 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar17 * -2 + 1;\n    } while (bVar16);\n    if ((!bVar15 && !bVar16) == bVar15) goto LAB_001099fe;\n  }" ({ "{") (expression_statement "lVar11 = 4;" (assignment_expression "lVar11 = 4" (identifier "lVar11") (= "=") (number_literal "4")) (; ";")) (expression_statement "pbVar13 = local_78;" (assignment_expression "pbVar13 = local_78" (identifier "pbVar13") (= "=") (identifier "local_78")) (; ";")) (expression_statement "pbVar14 = &DAT_001110e9;" (assignment_expression "pbVar14 = &DAT_001110e9" (identifier "pbVar14") (= "=") (pointer_expression "&DAT_001110e9" (& "&") (identifier "DAT_001110e9"))) (; ";")) (do_statement "do {\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar15 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar17 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar17 * -2 + 1;\n    } while (bVar16);" (do "do") (compound_statement "{\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar15 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar17 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar17 * -2 + 1;\n    }" ({ "{") (if_statement "if (lVar11 == 0) break;" (if "if") (parenthesized_expression "(lVar11 == 0)" (( "(") (binary_expression "lVar11 == 0" (identifier "lVar11") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar11 = lVar11 + -1;" (assignment_expression "lVar11 = lVar11 + -1" (identifier "lVar11") (= "=") (binary_expression "lVar11 + -1" (identifier "lVar11") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar15 = *pbVar13 < *pbVar14;" (assignment_expression "bVar15 = *pbVar13 < *pbVar14" (identifier "bVar15") (= "=") (binary_expression "*pbVar13 < *pbVar14" (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13")) (< "<") (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")))) (; ";")) (expression_statement "bVar16 = *pbVar13 == *pbVar14;" (assignment_expression "bVar16 = *pbVar13 == *pbVar14" (identifier "bVar16") (= "=") (binary_expression "*pbVar13 == *pbVar14" (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13")) (== "==") (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")))) (; ";")) (expression_statement "pbVar13 = pbVar13 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (ulong)bVar17 * -2 + 1" (identifier "pbVar13") (= "=") (binary_expression "pbVar13 + (ulong)bVar17 * -2 + 1" (binary_expression "pbVar13 + (ulong)bVar17 * -2" (identifier "pbVar13") (+ "+") (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar17")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar14 = pbVar14 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (ulong)bVar17 * -2 + 1" (identifier "pbVar14") (= "=") (binary_expression "pbVar14 + (ulong)bVar17 * -2 + 1" (binary_expression "pbVar14 + (ulong)bVar17 * -2" (identifier "pbVar14") (+ "+") (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar17")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar16)" (( "(") (identifier "bVar16") () ")")) (; ";")) (if_statement "if ((!bVar15 && !bVar16) == bVar15) goto LAB_001099fe;" (if "if") (parenthesized_expression "((!bVar15 && !bVar16) == bVar15)" (( "(") (binary_expression "(!bVar15 && !bVar16) == bVar15" (parenthesized_expression "(!bVar15 && !bVar16)" (( "(") (binary_expression "!bVar15 && !bVar16" (unary_expression "!bVar15" (! "!") (identifier "bVar15")) (&& "&&") (unary_expression "!bVar16" (! "!") (identifier "bVar16"))) () ")")) (== "==") (identifier "bVar15")) () ")")) (goto_statement "goto LAB_001099fe;" (goto "goto") (statement_identifier "LAB_001099fe") (; ";"))) (} "}")) (else_clause "else if (1 < DAT_001195c0 - 2) {\n    pcVar8 = (char *)dcgettext("gprof","%s: don\'t know how to deal with file format %d\n",5);\n    fprintf(stderr,pcVar8,uVar12,(ulong)uVar5);\n                    \n    FUN_0010a4c0(1);\n  }" (else "else") (if_statement "if (1 < DAT_001195c0 - 2) {\n    pcVar8 = (char *)dcgettext("gprof","%s: don\'t know how to deal with file format %d\n",5);\n    fprintf(stderr,pcVar8,uVar12,(ulong)uVar5);\n                    \n    FUN_0010a4c0(1);\n  }" (if "if") (parenthesized_expression "(1 < DAT_001195c0 - 2)" (( "(") (binary_expression "1 < DAT_001195c0 - 2" (number_literal "1") (< "<") (binary_expression "DAT_001195c0 - 2" (identifier "DAT_001195c0") (- "-") (number_literal "2"))) () ")")) (compound_statement "{\n    pcVar8 = (char *)dcgettext("gprof","%s: don\'t know how to deal with file format %d\n",5);\n    fprintf(stderr,pcVar8,uVar12,(ulong)uVar5);\n                    \n    FUN_0010a4c0(1);\n  }" ({ "{") (expression_statement "pcVar8 = (char *)dcgettext("gprof","%s: don\'t know how to deal with file format %d\n",5);" (assignment_expression "pcVar8 = (char *)dcgettext("gprof","%s: don\'t know how to deal with file format %d\n",5)" (identifier "pcVar8") (= "=") (cast_expression "(char *)dcgettext("gprof","%s: don\'t know how to deal with file format %d\n",5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext("gprof","%s: don\'t know how to deal with file format %d\n",5)" (identifier "dcgettext") (argument_list "("gprof","%s: don\'t know how to deal with file format %d\n",5)" (( "(") (string_literal ""gprof"" (" """) (string_content "gprof") (" """)) (, ",") (string_literal ""%s: don\'t know how to deal with file format %d\n"" (" """) (string_content "%s: don") (escape_sequence "\'") (string_content "t know how to deal with file format %d") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")"))))) (; ";")) (expression_statement "fprintf(stderr,pcVar8,uVar12,(ulong)uVar5);" (call_expression "fprintf(stderr,pcVar8,uVar12,(ulong)uVar5)" (identifier "fprintf") (argument_list "(stderr,pcVar8,uVar12,(ulong)uVar5)" (( "(") (identifier "stderr") (, ",") (identifier "pcVar8") (, ",") (identifier "uVar12") (, ",") (cast_expression "(ulong)uVar5" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar5")) () ")"))) (; ";")) (expression_statement "FUN_0010a4c0(1);" (call_expression "FUN_0010a4c0(1)" (identifier "FUN_0010a4c0") (argument_list "(1)" (( "(") (number_literal "1") () ")"))) (; ";")) (} "}"))))) (expression_statement "DAT_001195b8 = 3;" (assignment_expression "DAT_001195b8 = 3" (identifier "DAT_001195b8") (= "=") (number_literal "3")) (; ";")) (expression_statement "iVar3 = fseek(__stream,0,0);" (assignment_expression "iVar3 = fseek(__stream,0,0)" (identifier "iVar3") (= "=") (call_expression "fseek(__stream,0,0)" (identifier "fseek") (argument_list "(__stream,0,0)" (( "(") (identifier "__stream") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar3 < 0) goto LAB_00109ba3;" (if "if") (parenthesized_expression "(iVar3 < 0)" (( "(") (binary_expression "iVar3 < 0" (identifier "iVar3") (< "<") (number_literal "0")) () ")")) (goto_statement "goto LAB_00109ba3;" (goto "goto") (statement_identifier "LAB_00109ba3") (; ";"))) (expression_statement "iVar3 = FUN_00109550(__stream,&local_58);" (assignment_expression "iVar3 = FUN_00109550(__stream,&local_58)" (identifier "iVar3") (= "=") (call_expression "FUN_00109550(__stream,&local_58)" (identifier "FUN_00109550") (argument_list "(__stream,&local_58)" (( "(") (identifier "__stream") (, ",") (pointer_expression "&local_58" (& "&") (identifier "local_58")) () ")")))) (; ";")) (if_statement "if ((((iVar3 == 0) && (iVar3 = FUN_00109550(__stream,&local_50), iVar3 == 0)) &&\n      (iVar3 = FUN_00109500(__stream,local_48), iVar3 == 0)) &&\n     (iVar3 = FUN_00109500(__stream,&local_94), iVar3 == 0)) {\n    if (local_94 == 0x51879) {\n      iVar3 = FUN_00109500(__stream,&local_80);\n      if (iVar3 != 0) goto LAB_00109f6f;\n      uVar7 = (ulong)local_80;\n      if ((DAT_00119b18 != (ulong *)0x0) &&\n         (uVar7 = DAT_001195e8, (long)(int)local_80 != DAT_001195e8)) {\n        pcVar8 = "%s: profiling rate incompatible with first gmon file\n";\n        goto LAB_00109f7b;\n      }\n      DAT_001195e8 = uVar7;\n      iVar3 = FUN_00109420();\n      if (iVar3 == 0) {\n        lVar11 = 0x20;\n        iVar3 = 0x20;\n      }\n      else {\n        lVar11 = 0x28;\n        if (iVar3 == 1) {\n          iVar3 = 0x28;\n        }\n        else {\n          lVar11 = 0;\n          iVar3 = 0;\n        }\n      }\n    }\n    else {\n      if (DAT_001195c0 == 3) goto LAB_00109cae;\n      iVar4 = FUN_00109420();\n      if (iVar4 == 0) {\n        lVar11 = 0xc;\n        iVar3 = 0xc;\n      }\n      else {\n        lVar11 = 0x14;\n        if (iVar4 != 1) {\n          lVar11 = 0;\n        }\n        iVar3 = 0x14;\n        if (iVar4 != 1) {\n          iVar3 = 0;\n        }\n      }\n    }\n    iVar4 = fseek(__stream,lVar11,0);\n    if (iVar4 < 0) {\nLAB_00109ba3:\n      perror((char *)param_1);\n                    \n      FUN_0010a4c0(1);\n    }\n    uVar5 = local_48[0] - iVar3;\n    uVar7 = (ulong)(long)(int)uVar5 >> 1;\n    iVar3 = (int)uVar7;\n    if (DAT_00119b18 == (ulong *)0x0) {\n      DAT_00119b20 = 1;\n      puVar9 = (ulong *)xmalloc(0x20);\n      DAT_00119b18 = puVar9;\n      *puVar9 = CONCAT71(uStack_57,local_58);\n      *(int *)(puVar9 + 2) = iVar3;\n      sVar6 = (uVar7 & 0xffffffff) << 2;\n      puVar9[1] = local_50;\n      DAT_00119b28 = (double)(local_50 - CONCAT71(uStack_57,local_58) >> 1) /\n                     (double)(uVar7 & 0xffffffff);\n      uVar10 = xmalloc(sVar6);\n      puVar9[3] = uVar10;\n      memset((void *)DAT_00119b18[3],0,sVar6);\n    }\n    else if (((CONCAT71(uStack_57,local_58) != *DAT_00119b18) || (local_50 != DAT_00119b18[1])) ||\n            ((int)DAT_00119b18[2] != iVar3)) {\n      pcVar8 = "%s: incompatible with first gmon file\n";\n      goto LAB_00109f7b;\n    }\n    if (((byte)DAT_001195e4 & 0x40) != 0) {\n      printf("[gmon_out_read] lowpc 0x%lx highpc 0x%lx ncnt %d\n",CONCAT71(uStack_57,local_58),\n             local_50,(ulong)local_48[0]);\n      printf("[gmon_out_read] samp_bytes %d hist_num_bins %d\n",(ulong)uVar5,uVar7 & 0xffffffff);\n    }\n    if ((-1 < (int)uVar5) && (*DAT_00119b18 <= DAT_00119b18[1])) {\n      local_a4 = (uint)(iVar3 != 0);\n      if (iVar3 != 0) {\n        uVar10 = 0;\n        do {\n          sVar6 = fread(local_96,2,1,__stream);\n          uVar12 = DAT_00119b10;\n          if (sVar6 != 1) {\n            pcVar8 = (char *)dcgettext("gprof","%s: unexpected EOF after reading %d/%d bins\n",5);\n            fprintf(stderr,pcVar8,uVar12,(ulong)((int)uVar10 - 1),uVar7 & 0xffffffff);\n                    \n            FUN_0010a4c0(1);\n          }\n          iVar4 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x50))(local_96);\n          piVar1 = (int *)(DAT_00119b18[3] + uVar10 * 4);\n          *piVar1 = *piVar1 + iVar4;\n          bVar15 = iVar3 - 1 != uVar10;\n          uVar10 = uVar10 + 1;\n        } while (bVar15);\n      }\n      uVar5 = 0;\n      while ((iVar3 = FUN_00109550(__stream,&local_90), iVar3 == 0 &&\n             (iVar3 = FUN_00109550(__stream,&local_88), iVar3 == 0))) {\n        iVar3 = FUN_00109420();\n        if (iVar3 == 0) {\n          iVar3 = FUN_00109500(__stream,&local_80);\n          if (iVar3 != 0) break;\n          uVar7 = (ulong)local_80;\n        }\n        else {\n          if ((iVar3 != 1) || (iVar3 = FUN_001093d0(__stream,&local_80), iVar3 != 0)) break;\n          uVar7 = CONCAT44(uStack_7c,local_80);\n        }\n        uVar5 = uVar5 + 1;\n        if (((byte)DAT_001195e4 & 0x40) != 0) {\n          printf("[gmon_out_read] frompc 0x%lx selfpc 0x%lx count %lu\n",local_90,local_88,uVar7);\n        }\n        FUN_001040b0(local_90,local_88,uVar7);\n      }\n      local_a8 = 0;\n      if (DAT_001195e8 == 0) {\n        iVar3 = FUN_0010a4d0();\n        DAT_001195e8 = (ulong)iVar3;\n        if (DAT_001195e8 == 0) {\n          DAT_001195e8 = 1;\n          pcVar8 = (char *)dcgettext("gprof","time is in ticks, not seconds\n",5);\n          fprintf(stderr,pcVar8);\n        }\n      }\nLAB_001099b1:\n      if (stdin != __stream) {\n        fclose(__stream);\n      }\n      uVar2 = DAT_001195b4;\n      if (((byte)DAT_001195e0 & 0x20) == 0) {\n        return;\n      }\n      pcVar8 = (char *)dcgettext("gprof","File `%s\' (version %d) contains:\n",5);\n      printf(pcVar8,param_1,(ulong)uVar2);\n      if (local_a4 == 1) {\n        pcVar8 = (char *)dcgettext("gprof","\t%d histogram record\n",5);\n      }\n      else {\n        pcVar8 = (char *)dcgettext("gprof","\t%d histogram records\n",5);\n      }\n      printf(pcVar8,(ulong)local_a4);\n      if (uVar5 == 1) {\n        pcVar8 = (char *)dcgettext("gprof","\t%d call-graph record\n",5);\n      }\n      else {\n        pcVar8 = (char *)dcgettext("gprof","\t%d call-graph records\n",5);\n      }\n      printf(pcVar8,(ulong)uVar5);\n      if (local_a8 == 1) {\n        pcVar8 = (char *)dcgettext("gprof","\t%d basic-block count record\n",5);\n      }\n      else {\n        pcVar8 = (char *)dcgettext("gprof","\t%d basic-block count records\n",5);\n      }\n      printf(pcVar8,(ulong)local_a8);\n      DAT_001182d8 = 0;\n      return;\n    }\n    pcVar8 = "%s: file \'%s\' does not appear to be in gmon.out format\n";\nLAB_0010a006:\n    uVar12 = DAT_00119b10;\n    pcVar8 = (char *)dcgettext("gprof",pcVar8,5);\n    fprintf(stderr,pcVar8,uVar12,param_1);\n                    \n    FUN_0010a4c0(1);\n  }" (if "if") (parenthesized_expression "((((iVar3 == 0) && (iVar3 = FUN_00109550(__stream,&local_50), iVar3 == 0)) &&\n      (iVar3 = FUN_00109500(__stream,local_48), iVar3 == 0)) &&\n     (iVar3 = FUN_00109500(__stream,&local_94), iVar3 == 0))" (( "(") (binary_expression "(((iVar3 == 0) && (iVar3 = FUN_00109550(__stream,&local_50), iVar3 == 0)) &&\n      (iVar3 = FUN_00109500(__stream,local_48), iVar3 == 0)) &&\n     (iVar3 = FUN_00109500(__stream,&local_94), iVar3 == 0)" (parenthesized_expression "(((iVar3 == 0) && (iVar3 = FUN_00109550(__stream,&local_50), iVar3 == 0)) &&\n      (iVar3 = FUN_00109500(__stream,local_48), iVar3 == 0))" (( "(") (binary_expression "((iVar3 == 0) && (iVar3 = FUN_00109550(__stream,&local_50), iVar3 == 0)) &&\n      (iVar3 = FUN_00109500(__stream,local_48), iVar3 == 0)" (parenthesized_expression "((iVar3 == 0) && (iVar3 = FUN_00109550(__stream,&local_50), iVar3 == 0))" (( "(") (binary_expression "(iVar3 == 0) && (iVar3 = FUN_00109550(__stream,&local_50), iVar3 == 0)" (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar3 = FUN_00109550(__stream,&local_50), iVar3 == 0)" (( "(") (comma_expression "iVar3 = FUN_00109550(__stream,&local_50), iVar3 == 0" (assignment_expression "iVar3 = FUN_00109550(__stream,&local_50)" (identifier "iVar3") (= "=") (call_expression "FUN_00109550(__stream,&local_50)" (identifier "FUN_00109550") (argument_list "(__stream,&local_50)" (( "(") (identifier "__stream") (, ",") (pointer_expression "&local_50" (& "&") (identifier "local_50")) () ")")))) (, ",") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(iVar3 = FUN_00109500(__stream,local_48), iVar3 == 0)" (( "(") (comma_expression "iVar3 = FUN_00109500(__stream,local_48), iVar3 == 0" (assignment_expression "iVar3 = FUN_00109500(__stream,local_48)" (identifier "iVar3") (= "=") (call_expression "FUN_00109500(__stream,local_48)" (identifier "FUN_00109500") (argument_list "(__stream,local_48)" (( "(") (identifier "__stream") (, ",") (identifier "local_48") () ")")))) (, ",") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(iVar3 = FUN_00109500(__stream,&local_94), iVar3 == 0)" (( "(") (comma_expression "iVar3 = FUN_00109500(__stream,&local_94), iVar3 == 0" (assignment_expression "iVar3 = FUN_00109500(__stream,&local_94)" (identifier "iVar3") (= "=") (call_expression "FUN_00109500(__stream,&local_94)" (identifier "FUN_00109500") (argument_list "(__stream,&local_94)" (( "(") (identifier "__stream") (, ",") (pointer_expression "&local_94" (& "&") (identifier "local_94")) () ")")))) (, ",") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n    if (local_94 == 0x51879) {\n      iVar3 = FUN_00109500(__stream,&local_80);\n      if (iVar3 != 0) goto LAB_00109f6f;\n      uVar7 = (ulong)local_80;\n      if ((DAT_00119b18 != (ulong *)0x0) &&\n         (uVar7 = DAT_001195e8, (long)(int)local_80 != DAT_001195e8)) {\n        pcVar8 = "%s: profiling rate incompatible with first gmon file\n";\n        goto LAB_00109f7b;\n      }\n      DAT_001195e8 = uVar7;\n      iVar3 = FUN_00109420();\n      if (iVar3 == 0) {\n        lVar11 = 0x20;\n        iVar3 = 0x20;\n      }\n      else {\n        lVar11 = 0x28;\n        if (iVar3 == 1) {\n          iVar3 = 0x28;\n        }\n        else {\n          lVar11 = 0;\n          iVar3 = 0;\n        }\n      }\n    }\n    else {\n      if (DAT_001195c0 == 3) goto LAB_00109cae;\n      iVar4 = FUN_00109420();\n      if (iVar4 == 0) {\n        lVar11 = 0xc;\n        iVar3 = 0xc;\n      }\n      else {\n        lVar11 = 0x14;\n        if (iVar4 != 1) {\n          lVar11 = 0;\n        }\n        iVar3 = 0x14;\n        if (iVar4 != 1) {\n          iVar3 = 0;\n        }\n      }\n    }\n    iVar4 = fseek(__stream,lVar11,0);\n    if (iVar4 < 0) {\nLAB_00109ba3:\n      perror((char *)param_1);\n                    \n      FUN_0010a4c0(1);\n    }\n    uVar5 = local_48[0] - iVar3;\n    uVar7 = (ulong)(long)(int)uVar5 >> 1;\n    iVar3 = (int)uVar7;\n    if (DAT_00119b18 == (ulong *)0x0) {\n      DAT_00119b20 = 1;\n      puVar9 = (ulong *)xmalloc(0x20);\n      DAT_00119b18 = puVar9;\n      *puVar9 = CONCAT71(uStack_57,local_58);\n      *(int *)(puVar9 + 2) = iVar3;\n      sVar6 = (uVar7 & 0xffffffff) << 2;\n      puVar9[1] = local_50;\n      DAT_00119b28 = (double)(local_50 - CONCAT71(uStack_57,local_58) >> 1) /\n                     (double)(uVar7 & 0xffffffff);\n      uVar10 = xmalloc(sVar6);\n      puVar9[3] = uVar10;\n      memset((void *)DAT_00119b18[3],0,sVar6);\n    }\n    else if (((CONCAT71(uStack_57,local_58) != *DAT_00119b18) || (local_50 != DAT_00119b18[1])) ||\n            ((int)DAT_00119b18[2] != iVar3)) {\n      pcVar8 = "%s: incompatible with first gmon file\n";\n      goto LAB_00109f7b;\n    }\n    if (((byte)DAT_001195e4 & 0x40) != 0) {\n      printf("[gmon_out_read] lowpc 0x%lx highpc 0x%lx ncnt %d\n",CONCAT71(uStack_57,local_58),\n             local_50,(ulong)local_48[0]);\n      printf("[gmon_out_read] samp_bytes %d hist_num_bins %d\n",(ulong)uVar5,uVar7 & 0xffffffff);\n    }\n    if ((-1 < (int)uVar5) && (*DAT_00119b18 <= DAT_00119b18[1])) {\n      local_a4 = (uint)(iVar3 != 0);\n      if (iVar3 != 0) {\n        uVar10 = 0;\n        do {\n          sVar6 = fread(local_96,2,1,__stream);\n          uVar12 = DAT_00119b10;\n          if (sVar6 != 1) {\n            pcVar8 = (char *)dcgettext("gprof","%s: unexpected EOF after reading %d/%d bins\n",5);\n            fprintf(stderr,pcVar8,uVar12,(ulong)((int)uVar10 - 1),uVar7 & 0xffffffff);\n                    \n            FUN_0010a4c0(1);\n          }\n          iVar4 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x50))(local_96);\n          piVar1 = (int *)(DAT_00119b18[3] + uVar10 * 4);\n          *piVar1 = *piVar1 + iVar4;\n          bVar15 = iVar3 - 1 != uVar10;\n          uVar10 = uVar10 + 1;\n        } while (bVar15);\n      }\n      uVar5 = 0;\n      while ((iVar3 = FUN_00109550(__stream,&local_90), iVar3 == 0 &&\n             (iVar3 = FUN_00109550(__stream,&local_88), iVar3 == 0))) {\n        iVar3 = FUN_00109420();\n        if (iVar3 == 0) {\n          iVar3 = FUN_00109500(__stream,&local_80);\n          if (iVar3 != 0) break;\n          uVar7 = (ulong)local_80;\n        }\n        else {\n          if ((iVar3 != 1) || (iVar3 = FUN_001093d0(__stream,&local_80), iVar3 != 0)) break;\n          uVar7 = CONCAT44(uStack_7c,local_80);\n        }\n        uVar5 = uVar5 + 1;\n        if (((byte)DAT_001195e4 & 0x40) != 0) {\n          printf("[gmon_out_read] frompc 0x%lx selfpc 0x%lx count %lu\n",local_90,local_88,uVar7);\n        }\n        FUN_001040b0(local_90,local_88,uVar7);\n      }\n      local_a8 = 0;\n      if (DAT_001195e8 == 0) {\n        iVar3 = FUN_0010a4d0();\n        DAT_001195e8 = (ulong)iVar3;\n        if (DAT_001195e8 == 0) {\n          DAT_001195e8 = 1;\n          pcVar8 = (char *)dcgettext("gprof","time is in ticks, not seconds\n",5);\n          fprintf(stderr,pcVar8);\n        }\n      }\nLAB_001099b1:\n      if (stdin != __stream) {\n        fclose(__stream);\n      }\n      uVar2 = DAT_001195b4;\n      if (((byte)DAT_001195e0 & 0x20) == 0) {\n        return;\n      }\n      pcVar8 = (char *)dcgettext("gprof","File `%s\' (version %d) contains:\n",5);\n      printf(pcVar8,param_1,(ulong)uVar2);\n      if (local_a4 == 1) {\n        pcVar8 = (char *)dcgettext("gprof","\t%d histogram record\n",5);\n      }\n      else {\n        pcVar8 = (char *)dcgettext("gprof","\t%d histogram records\n",5);\n      }\n      printf(pcVar8,(ulong)local_a4);\n      if (uVar5 == 1) {\n        pcVar8 = (char *)dcgettext("gprof","\t%d call-graph record\n",5);\n      }\n      else {\n        pcVar8 = (char *)dcgettext("gprof","\t%d call-graph records\n",5);\n      }\n      printf(pcVar8,(ulong)uVar5);\n      if (local_a8 == 1) {\n        pcVar8 = (char *)dcgettext("gprof","\t%d basic-block count record\n",5);\n      }\n      else {\n        pcVar8 = (char *)dcgettext("gprof","\t%d basic-block count records\n",5);\n      }\n      printf(pcVar8,(ulong)local_a8);\n      DAT_001182d8 = 0;\n      return;\n    }\n    pcVar8 = "%s: file \'%s\' does not appear to be in gmon.out format\n";\nLAB_0010a006:\n    uVar12 = DAT_00119b10;\n    pcVar8 = (char *)dcgettext("gprof",pcVar8,5);\n    fprintf(stderr,pcVar8,uVar12,param_1);\n                    \n    FUN_0010a4c0(1);\n  }" ({ "{") (if_statement "if (local_94 == 0x51879) {\n      iVar3 = FUN_00109500(__stream,&local_80);\n      if (iVar3 != 0) goto LAB_00109f6f;\n      uVar7 = (ulong)local_80;\n      if ((DAT_00119b18 != (ulong *)0x0) &&\n         (uVar7 = DAT_001195e8, (long)(int)local_80 != DAT_001195e8)) {\n        pcVar8 = "%s: profiling rate incompatible with first gmon file\n";\n        goto LAB_00109f7b;\n      }\n      DAT_001195e8 = uVar7;\n      iVar3 = FUN_00109420();\n      if (iVar3 == 0) {\n        lVar11 = 0x20;\n        iVar3 = 0x20;\n      }\n      else {\n        lVar11 = 0x28;\n        if (iVar3 == 1) {\n          iVar3 = 0x28;\n        }\n        else {\n          lVar11 = 0;\n          iVar3 = 0;\n        }\n      }\n    }\n    else {\n      if (DAT_001195c0 == 3) goto LAB_00109cae;\n      iVar4 = FUN_00109420();\n      if (iVar4 == 0) {\n        lVar11 = 0xc;\n        iVar3 = 0xc;\n      }\n      else {\n        lVar11 = 0x14;\n        if (iVar4 != 1) {\n          lVar11 = 0;\n        }\n        iVar3 = 0x14;\n        if (iVar4 != 1) {\n          iVar3 = 0;\n        }\n      }\n    }" (if "if") (parenthesized_expression "(local_94 == 0x51879)" (( "(") (binary_expression "local_94 == 0x51879" (identifier "local_94") (== "==") (number_literal "0x51879")) () ")")) (compound_statement "{\n      iVar3 = FUN_00109500(__stream,&local_80);\n      if (iVar3 != 0) goto LAB_00109f6f;\n      uVar7 = (ulong)local_80;\n      if ((DAT_00119b18 != (ulong *)0x0) &&\n         (uVar7 = DAT_001195e8, (long)(int)local_80 != DAT_001195e8)) {\n        pcVar8 = "%s: profiling rate incompatible with first gmon file\n";\n        goto LAB_00109f7b;\n      }\n      DAT_001195e8 = uVar7;\n      iVar3 = FUN_00109420();\n      if (iVar3 == 0) {\n        lVar11 = 0x20;\n        iVar3 = 0x20;\n      }\n      else {\n        lVar11 = 0x28;\n        if (iVar3 == 1) {\n          iVar3 = 0x28;\n        }\n        else {\n          lVar11 = 0;\n          iVar3 = 0;\n        }\n      }\n    }" ({ "{") (expression_statement "iVar3 = FUN_00109500(__stream,&local_80);" (assignment_expression "iVar3 = FUN_00109500(__stream,&local_80)" (identifier "iVar3") (= "=") (call_expression "FUN_00109500(__stream,&local_80)" (identifier "FUN_00109500") (argument_list "(__stream,&local_80)" (( "(") (identifier "__stream") (, ",") (pointer_expression "&local_80" (& "&") (identifier "local_80")) () ")")))) (; ";")) (if_statement "if (iVar3 != 0) goto LAB_00109f6f;" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00109f6f;" (goto "goto") (statement_identifier "LAB_00109f6f") (; ";"))) (expression_statement "uVar7 = (ulong)local_80;" (assignment_expression "uVar7 = (ulong)local_80" (identifier "uVar7") (= "=") (cast_expression "(ulong)local_80" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "local_80"))) (; ";")) (if_statement "if ((DAT_00119b18 != (ulong *)0x0) &&\n         (uVar7 = DAT_001195e8, (long)(int)local_80 != DAT_001195e8)) {\n        pcVar8 = "%s: profiling rate incompatible with first gmon file\n";\n        goto LAB_00109f7b;\n      }" (if "if") (parenthesized_expression "((DAT_00119b18 != (ulong *)0x0) &&\n         (uVar7 = DAT_001195e8, (long)(int)local_80 != DAT_001195e8))" (( "(") (binary_expression "(DAT_00119b18 != (ulong *)0x0) &&\n         (uVar7 = DAT_001195e8, (long)(int)local_80 != DAT_001195e8)" (parenthesized_expression "(DAT_00119b18 != (ulong *)0x0)" (( "(") (binary_expression "DAT_00119b18 != (ulong *)0x0" (identifier "DAT_00119b18") (!= "!=") (cast_expression "(ulong *)0x0" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(uVar7 = DAT_001195e8, (long)(int)local_80 != DAT_001195e8)" (( "(") (comma_expression "uVar7 = DAT_001195e8, (long)(int)local_80 != DAT_001195e8" (assignment_expression "uVar7 = DAT_001195e8" (identifier "uVar7") (= "=") (identifier "DAT_001195e8")) (, ",") (binary_expression "(long)(int)local_80 != DAT_001195e8" (cast_expression "(long)(int)local_80" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (cast_expression "(int)local_80" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_80"))) (!= "!=") (identifier "DAT_001195e8"))) () ")"))) () ")")) (compound_statement "{\n        pcVar8 = "%s: profiling rate incompatible with first gmon file\n";\n        goto LAB_00109f7b;\n      }" ({ "{") (expression_statement "pcVar8 = "%s: profiling rate incompatible with first gmon file\n";" (assignment_expression "pcVar8 = "%s: profiling rate incompatible with first gmon file\n"" (identifier "pcVar8") (= "=") (string_literal ""%s: profiling rate incompatible with first gmon file\n"" (" """) (string_content "%s: profiling rate incompatible with first gmon file") (escape_sequence "\n") (" """))) (; ";")) (goto_statement "goto LAB_00109f7b;" (goto "goto") (statement_identifier "LAB_00109f7b") (; ";")) (} "}"))) (expression_statement "DAT_001195e8 = uVar7;" (assignment_expression "DAT_001195e8 = uVar7" (identifier "DAT_001195e8") (= "=") (identifier "uVar7")) (; ";")) (expression_statement "iVar3 = FUN_00109420();" (assignment_expression "iVar3 = FUN_00109420()" (identifier "iVar3") (= "=") (call_expression "FUN_00109420()" (identifier "FUN_00109420") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\n        lVar11 = 0x20;\n        iVar3 = 0x20;\n      }\n      else {\n        lVar11 = 0x28;\n        if (iVar3 == 1) {\n          iVar3 = 0x28;\n        }\n        else {\n          lVar11 = 0;\n          iVar3 = 0;\n        }\n      }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        lVar11 = 0x20;\n        iVar3 = 0x20;\n      }" ({ "{") (expression_statement "lVar11 = 0x20;" (assignment_expression "lVar11 = 0x20" (identifier "lVar11") (= "=") (number_literal "0x20")) (; ";")) (expression_statement "iVar3 = 0x20;" (assignment_expression "iVar3 = 0x20" (identifier "iVar3") (= "=") (number_literal "0x20")) (; ";")) (} "}")) (else_clause "else {\n        lVar11 = 0x28;\n        if (iVar3 == 1) {\n          iVar3 = 0x28;\n        }\n        else {\n          lVar11 = 0;\n          iVar3 = 0;\n        }\n      }" (else "else") (compound_statement "{\n        lVar11 = 0x28;\n        if (iVar3 == 1) {\n          iVar3 = 0x28;\n        }\n        else {\n          lVar11 = 0;\n          iVar3 = 0;\n        }\n      }" ({ "{") (expression_statement "lVar11 = 0x28;" (assignment_expression "lVar11 = 0x28" (identifier "lVar11") (= "=") (number_literal "0x28")) (; ";")) (if_statement "if (iVar3 == 1) {\n          iVar3 = 0x28;\n        }\n        else {\n          lVar11 = 0;\n          iVar3 = 0;\n        }" (if "if") (parenthesized_expression "(iVar3 == 1)" (( "(") (binary_expression "iVar3 == 1" (identifier "iVar3") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n          iVar3 = 0x28;\n        }" ({ "{") (expression_statement "iVar3 = 0x28;" (assignment_expression "iVar3 = 0x28" (identifier "iVar3") (= "=") (number_literal "0x28")) (; ";")) (} "}")) (else_clause "else {\n          lVar11 = 0;\n          iVar3 = 0;\n        }" (else "else") (compound_statement "{\n          lVar11 = 0;\n          iVar3 = 0;\n        }" ({ "{") (expression_statement "lVar11 = 0;" (assignment_expression "lVar11 = 0" (identifier "lVar11") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" (identifier "iVar3") (= "=") (number_literal "0")) (; ";")) (} "}")))) (} "}")))) (} "}")) (else_clause "else {\n      if (DAT_001195c0 == 3) goto LAB_00109cae;\n      iVar4 = FUN_00109420();\n      if (iVar4 == 0) {\n        lVar11 = 0xc;\n        iVar3 = 0xc;\n      }\n      else {\n        lVar11 = 0x14;\n        if (iVar4 != 1) {\n          lVar11 = 0;\n        }\n        iVar3 = 0x14;\n        if (iVar4 != 1) {\n          iVar3 = 0;\n        }\n      }\n    }" (else "else") (compound_statement "{\n      if (DAT_001195c0 == 3) goto LAB_00109cae;\n      iVar4 = FUN_00109420();\n      if (iVar4 == 0) {\n        lVar11 = 0xc;\n        iVar3 = 0xc;\n      }\n      else {\n        lVar11 = 0x14;\n        if (iVar4 != 1) {\n          lVar11 = 0;\n        }\n        iVar3 = 0x14;\n        if (iVar4 != 1) {\n          iVar3 = 0;\n        }\n      }\n    }" ({ "{") (if_statement "if (DAT_001195c0 == 3) goto LAB_00109cae;" (if "if") (parenthesized_expression "(DAT_001195c0 == 3)" (( "(") (binary_expression "DAT_001195c0 == 3" (identifier "DAT_001195c0") (== "==") (number_literal "3")) () ")")) (goto_statement "goto LAB_00109cae;" (goto "goto") (statement_identifier "LAB_00109cae") (; ";"))) (expression_statement "iVar4 = FUN_00109420();" (assignment_expression "iVar4 = FUN_00109420()" (identifier "iVar4") (= "=") (call_expression "FUN_00109420()" (identifier "FUN_00109420") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar4 == 0) {\n        lVar11 = 0xc;\n        iVar3 = 0xc;\n      }\n      else {\n        lVar11 = 0x14;\n        if (iVar4 != 1) {\n          lVar11 = 0;\n        }\n        iVar3 = 0x14;\n        if (iVar4 != 1) {\n          iVar3 = 0;\n        }\n      }" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        lVar11 = 0xc;\n        iVar3 = 0xc;\n      }" ({ "{") (expression_statement "lVar11 = 0xc;" (assignment_expression "lVar11 = 0xc" (identifier "lVar11") (= "=") (number_literal "0xc")) (; ";")) (expression_statement "iVar3 = 0xc;" (assignment_expression "iVar3 = 0xc" (identifier "iVar3") (= "=") (number_literal "0xc")) (; ";")) (} "}")) (else_clause "else {\n        lVar11 = 0x14;\n        if (iVar4 != 1) {\n          lVar11 = 0;\n        }\n        iVar3 = 0x14;\n        if (iVar4 != 1) {\n          iVar3 = 0;\n        }\n      }" (else "else") (compound_statement "{\n        lVar11 = 0x14;\n        if (iVar4 != 1) {\n          lVar11 = 0;\n        }\n        iVar3 = 0x14;\n        if (iVar4 != 1) {\n          iVar3 = 0;\n        }\n      }" ({ "{") (expression_statement "lVar11 = 0x14;" (assignment_expression "lVar11 = 0x14" (identifier "lVar11") (= "=") (number_literal "0x14")) (; ";")) (if_statement "if (iVar4 != 1) {\n          lVar11 = 0;\n        }" (if "if") (parenthesized_expression "(iVar4 != 1)" (( "(") (binary_expression "iVar4 != 1" (identifier "iVar4") (!= "!=") (number_literal "1")) () ")")) (compound_statement "{\n          lVar11 = 0;\n        }" ({ "{") (expression_statement "lVar11 = 0;" (assignment_expression "lVar11 = 0" (identifier "lVar11") (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "iVar3 = 0x14;" (assignment_expression "iVar3 = 0x14" (identifier "iVar3") (= "=") (number_literal "0x14")) (; ";")) (if_statement "if (iVar4 != 1) {\n          iVar3 = 0;\n        }" (if "if") (parenthesized_expression "(iVar4 != 1)" (( "(") (binary_expression "iVar4 != 1" (identifier "iVar4") (!= "!=") (number_literal "1")) () ")")) (compound_statement "{\n          iVar3 = 0;\n        }" ({ "{") (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" (identifier "iVar3") (= "=") (number_literal "0")) (; ";")) (} "}"))) (} "}")))) (} "}")))) (expression_statement "iVar4 = fseek(__stream,lVar11,0);" (assignment_expression "iVar4 = fseek(__stream,lVar11,0)" (identifier "iVar4") (= "=") (call_expression "fseek(__stream,lVar11,0)" (identifier "fseek") (argument_list "(__stream,lVar11,0)" (( "(") (identifier "__stream") (, ",") (identifier "lVar11") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar4 < 0) {\nLAB_00109ba3:\n      perror((char *)param_1);\n                    \n      FUN_0010a4c0(1);\n    }" (if "if") (parenthesized_expression "(iVar4 < 0)" (( "(") (binary_expression "iVar4 < 0" (identifier "iVar4") (< "<") (number_literal "0")) () ")")) (compound_statement "{\nLAB_00109ba3:\n      perror((char *)param_1);\n                    \n      FUN_0010a4c0(1);\n    }" ({ "{") (labeled_statement "LAB_00109ba3:\n      perror((char *)param_1);" (statement_identifier "LAB_00109ba3") (: ":") (expression_statement "perror((char *)param_1);" (call_expression "perror((char *)param_1)" (identifier "perror") (argument_list "((char *)param_1)" (( "(") (cast_expression "(char *)param_1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1")) () ")"))) (; ";"))) (expression_statement "FUN_0010a4c0(1);" (call_expression "FUN_0010a4c0(1)" (identifier "FUN_0010a4c0") (argument_list "(1)" (( "(") (number_literal "1") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar5 = local_48[0] - iVar3;" (assignment_expression "uVar5 = local_48[0] - iVar3" (identifier "uVar5") (= "=") (binary_expression "local_48[0] - iVar3" (subscript_expression "local_48[0]" (identifier "local_48") ([ "[") (number_literal "0") (] "]")) (- "-") (identifier "iVar3"))) (; ";")) (expression_statement "uVar7 = (ulong)(long)(int)uVar5 >> 1;" (assignment_expression "uVar7 = (ulong)(long)(int)uVar5 >> 1" (identifier "uVar7") (= "=") (binary_expression "(ulong)(long)(int)uVar5 >> 1" (cast_expression "(ulong)(long)(int)uVar5" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (cast_expression "(long)(int)uVar5" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (cast_expression "(int)uVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar5")))) (>> ">>") (number_literal "1"))) (; ";")) (expression_statement "iVar3 = (int)uVar7;" (assignment_expression "iVar3 = (int)uVar7" (identifier "iVar3") (= "=") (cast_expression "(int)uVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar7"))) (; ";")) (if_statement "if (DAT_00119b18 == (ulong *)0x0) {\n      DAT_00119b20 = 1;\n      puVar9 = (ulong *)xmalloc(0x20);\n      DAT_00119b18 = puVar9;\n      *puVar9 = CONCAT71(uStack_57,local_58);\n      *(int *)(puVar9 + 2) = iVar3;\n      sVar6 = (uVar7 & 0xffffffff) << 2;\n      puVar9[1] = local_50;\n      DAT_00119b28 = (double)(local_50 - CONCAT71(uStack_57,local_58) >> 1) /\n                     (double)(uVar7 & 0xffffffff);\n      uVar10 = xmalloc(sVar6);\n      puVar9[3] = uVar10;\n      memset((void *)DAT_00119b18[3],0,sVar6);\n    }\n    else if (((CONCAT71(uStack_57,local_58) != *DAT_00119b18) || (local_50 != DAT_00119b18[1])) ||\n            ((int)DAT_00119b18[2] != iVar3)) {\n      pcVar8 = "%s: incompatible with first gmon file\n";\n      goto LAB_00109f7b;\n    }" (if "if") (parenthesized_expression "(DAT_00119b18 == (ulong *)0x0)" (( "(") (binary_expression "DAT_00119b18 == (ulong *)0x0" (identifier "DAT_00119b18") (== "==") (cast_expression "(ulong *)0x0" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      DAT_00119b20 = 1;\n      puVar9 = (ulong *)xmalloc(0x20);\n      DAT_00119b18 = puVar9;\n      *puVar9 = CONCAT71(uStack_57,local_58);\n      *(int *)(puVar9 + 2) = iVar3;\n      sVar6 = (uVar7 & 0xffffffff) << 2;\n      puVar9[1] = local_50;\n      DAT_00119b28 = (double)(local_50 - CONCAT71(uStack_57,local_58) >> 1) /\n                     (double)(uVar7 & 0xffffffff);\n      uVar10 = xmalloc(sVar6);\n      puVar9[3] = uVar10;\n      memset((void *)DAT_00119b18[3],0,sVar6);\n    }" ({ "{") (expression_statement "DAT_00119b20 = 1;" (assignment_expression "DAT_00119b20 = 1" (identifier "DAT_00119b20") (= "=") (number_literal "1")) (; ";")) (expression_statement "puVar9 = (ulong *)xmalloc(0x20);" (assignment_expression "puVar9 = (ulong *)xmalloc(0x20)" (identifier "puVar9") (= "=") (cast_expression "(ulong *)xmalloc(0x20)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(0x20)" (identifier "xmalloc") (argument_list "(0x20)" (( "(") (number_literal "0x20") () ")"))))) (; ";")) (expression_statement "DAT_00119b18 = puVar9;" (assignment_expression "DAT_00119b18 = puVar9" (identifier "DAT_00119b18") (= "=") (identifier "puVar9")) (; ";")) (expression_statement "*puVar9 = CONCAT71(uStack_57,local_58);" (assignment_expression "*puVar9 = CONCAT71(uStack_57,local_58)" (pointer_expression "*puVar9" (* "*") (identifier "puVar9")) (= "=") (call_expression "CONCAT71(uStack_57,local_58)" (identifier "CONCAT71") (argument_list "(uStack_57,local_58)" (( "(") (identifier "uStack_57") (, ",") (identifier "local_58") () ")")))) (; ";")) (expression_statement "*(int *)(puVar9 + 2) = iVar3;" (assignment_expression "*(int *)(puVar9 + 2) = iVar3" (pointer_expression "*(int *)(puVar9 + 2)" (* "*") (cast_expression "(int *)(puVar9 + 2)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + 2)" (( "(") (binary_expression "puVar9 + 2" (identifier "puVar9") (+ "+") (number_literal "2")) () ")")))) (= "=") (identifier "iVar3")) (; ";")) (expression_statement "sVar6 = (uVar7 & 0xffffffff) << 2;" (assignment_expression "sVar6 = (uVar7 & 0xffffffff) << 2" (identifier "sVar6") (= "=") (binary_expression "(uVar7 & 0xffffffff) << 2" (parenthesized_expression "(uVar7 & 0xffffffff)" (( "(") (binary_expression "uVar7 & 0xffffffff" (identifier "uVar7") (& "&") (number_literal "0xffffffff")) () ")")) (<< "<<") (number_literal "2"))) (; ";")) (expression_statement "puVar9[1] = local_50;" (assignment_expression "puVar9[1] = local_50" (subscript_expression "puVar9[1]" (identifier "puVar9") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "local_50")) (; ";")) (expression_statement "DAT_00119b28 = (double)(local_50 - CONCAT71(uStack_57,local_58) >> 1) /\n                     (double)(uVar7 & 0xffffffff);" (assignment_expression "DAT_00119b28 = (double)(local_50 - CONCAT71(uStack_57,local_58) >> 1) /\n                     (double)(uVar7 & 0xffffffff)" (identifier "DAT_00119b28") (= "=") (binary_expression "(double)(local_50 - CONCAT71(uStack_57,local_58) >> 1) /\n                     (double)(uVar7 & 0xffffffff)" (cast_expression "(double)(local_50 - CONCAT71(uStack_57,local_58) >> 1)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (parenthesized_expression "(local_50 - CONCAT71(uStack_57,local_58) >> 1)" (( "(") (binary_expression "local_50 - CONCAT71(uStack_57,local_58) >> 1" (binary_expression "local_50 - CONCAT71(uStack_57,local_58)" (identifier "local_50") (- "-") (call_expression "CONCAT71(uStack_57,local_58)" (identifier "CONCAT71") (argument_list "(uStack_57,local_58)" (( "(") (identifier "uStack_57") (, ",") (identifier "local_58") () ")")))) (>> ">>") (number_literal "1")) () ")"))) (/ "/") (cast_expression "(double)(uVar7 & 0xffffffff)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (parenthesized_expression "(uVar7 & 0xffffffff)" (( "(") (binary_expression "uVar7 & 0xffffffff" (identifier "uVar7") (& "&") (number_literal "0xffffffff")) () ")"))))) (; ";")) (expression_statement "uVar10 = xmalloc(sVar6);" (assignment_expression "uVar10 = xmalloc(sVar6)" (identifier "uVar10") (= "=") (call_expression "xmalloc(sVar6)" (identifier "xmalloc") (argument_list "(sVar6)" (( "(") (identifier "sVar6") () ")")))) (; ";")) (expression_statement "puVar9[3] = uVar10;" (assignment_expression "puVar9[3] = uVar10" (subscript_expression "puVar9[3]" (identifier "puVar9") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar10")) (; ";")) (expression_statement "memset((void *)DAT_00119b18[3],0,sVar6);" (call_expression "memset((void *)DAT_00119b18[3],0,sVar6)" (identifier "memset") (argument_list "((void *)DAT_00119b18[3],0,sVar6)" (( "(") (cast_expression "(void *)DAT_00119b18[3]" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "DAT_00119b18[3]" (identifier "DAT_00119b18") ([ "[") (number_literal "3") (] "]"))) (, ",") (number_literal "0") (, ",") (identifier "sVar6") () ")"))) (; ";")) (} "}")) (else_clause "else if (((CONCAT71(uStack_57,local_58) != *DAT_00119b18) || (local_50 != DAT_00119b18[1])) ||\n            ((int)DAT_00119b18[2] != iVar3)) {\n      pcVar8 = "%s: incompatible with first gmon file\n";\n      goto LAB_00109f7b;\n    }" (else "else") (if_statement "if (((CONCAT71(uStack_57,local_58) != *DAT_00119b18) || (local_50 != DAT_00119b18[1])) ||\n            ((int)DAT_00119b18[2] != iVar3)) {\n      pcVar8 = "%s: incompatible with first gmon file\n";\n      goto LAB_00109f7b;\n    }" (if "if") (parenthesized_expression "(((CONCAT71(uStack_57,local_58) != *DAT_00119b18) || (local_50 != DAT_00119b18[1])) ||\n            ((int)DAT_00119b18[2] != iVar3))" (( "(") (binary_expression "((CONCAT71(uStack_57,local_58) != *DAT_00119b18) || (local_50 != DAT_00119b18[1])) ||\n            ((int)DAT_00119b18[2] != iVar3)" (parenthesized_expression "((CONCAT71(uStack_57,local_58) != *DAT_00119b18) || (local_50 != DAT_00119b18[1]))" (( "(") (binary_expression "(CONCAT71(uStack_57,local_58) != *DAT_00119b18) || (local_50 != DAT_00119b18[1])" (parenthesized_expression "(CONCAT71(uStack_57,local_58) != *DAT_00119b18)" (( "(") (binary_expression "CONCAT71(uStack_57,local_58) != *DAT_00119b18" (call_expression "CONCAT71(uStack_57,local_58)" (identifier "CONCAT71") (argument_list "(uStack_57,local_58)" (( "(") (identifier "uStack_57") (, ",") (identifier "local_58") () ")"))) (!= "!=") (pointer_expression "*DAT_00119b18" (* "*") (identifier "DAT_00119b18"))) () ")")) (|| "||") (parenthesized_expression "(local_50 != DAT_00119b18[1])" (( "(") (binary_expression "local_50 != DAT_00119b18[1]" (identifier "local_50") (!= "!=") (subscript_expression "DAT_00119b18[1]" (identifier "DAT_00119b18") ([ "[") (number_literal "1") (] "]"))) () ")"))) () ")")) (|| "||") (parenthesized_expression "((int)DAT_00119b18[2] != iVar3)" (( "(") (binary_expression "(int)DAT_00119b18[2] != iVar3" (cast_expression "(int)DAT_00119b18[2]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "DAT_00119b18[2]" (identifier "DAT_00119b18") ([ "[") (number_literal "2") (] "]"))) (!= "!=") (identifier "iVar3")) () ")"))) () ")")) (compound_statement "{\n      pcVar8 = "%s: incompatible with first gmon file\n";\n      goto LAB_00109f7b;\n    }" ({ "{") (expression_statement "pcVar8 = "%s: incompatible with first gmon file\n";" (assignment_expression "pcVar8 = "%s: incompatible with first gmon file\n"" (identifier "pcVar8") (= "=") (string_literal ""%s: incompatible with first gmon file\n"" (" """) (string_content "%s: incompatible with first gmon file") (escape_sequence "\n") (" """))) (; ";")) (goto_statement "goto LAB_00109f7b;" (goto "goto") (statement_identifier "LAB_00109f7b") (; ";")) (} "}"))))) (if_statement "if (((byte)DAT_001195e4 & 0x40) != 0) {\n      printf("[gmon_out_read] lowpc 0x%lx highpc 0x%lx ncnt %d\n",CONCAT71(uStack_57,local_58),\n             local_50,(ulong)local_48[0]);\n      printf("[gmon_out_read] samp_bytes %d hist_num_bins %d\n",(ulong)uVar5,uVar7 & 0xffffffff);\n    }" (if "if") (parenthesized_expression "(((byte)DAT_001195e4 & 0x40) != 0)" (( "(") (binary_expression "((byte)DAT_001195e4 & 0x40) != 0" (parenthesized_expression "((byte)DAT_001195e4 & 0x40)" (( "(") (binary_expression "(byte)DAT_001195e4 & 0x40" (cast_expression "(byte)DAT_001195e4" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "DAT_001195e4")) (& "&") (number_literal "0x40")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      printf("[gmon_out_read] lowpc 0x%lx highpc 0x%lx ncnt %d\n",CONCAT71(uStack_57,local_58),\n             local_50,(ulong)local_48[0]);\n      printf("[gmon_out_read] samp_bytes %d hist_num_bins %d\n",(ulong)uVar5,uVar7 & 0xffffffff);\n    }" ({ "{") (expression_statement "printf("[gmon_out_read] lowpc 0x%lx highpc 0x%lx ncnt %d\n",CONCAT71(uStack_57,local_58),\n             local_50,(ulong)local_48[0]);" (call_expression "printf("[gmon_out_read] lowpc 0x%lx highpc 0x%lx ncnt %d\n",CONCAT71(uStack_57,local_58),\n             local_50,(ulong)local_48[0])" (identifier "printf") (argument_list "("[gmon_out_read] lowpc 0x%lx highpc 0x%lx ncnt %d\n",CONCAT71(uStack_57,local_58),\n             local_50,(ulong)local_48[0])" (( "(") (string_literal ""[gmon_out_read] lowpc 0x%lx highpc 0x%lx ncnt %d\n"" (" """) (string_content "[gmon_out_read] lowpc 0x%lx highpc 0x%lx ncnt %d") (escape_sequence "\n") (" """)) (, ",") (call_expression "CONCAT71(uStack_57,local_58)" (identifier "CONCAT71") (argument_list "(uStack_57,local_58)" (( "(") (identifier "uStack_57") (, ",") (identifier "local_58") () ")"))) (, ",") (identifier "local_50") (, ",") (cast_expression "(ulong)local_48[0]" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (subscript_expression "local_48[0]" (identifier "local_48") ([ "[") (number_literal "0") (] "]"))) () ")"))) (; ";")) (expression_statement "printf("[gmon_out_read] samp_bytes %d hist_num_bins %d\n",(ulong)uVar5,uVar7 & 0xffffffff);" (call_expression "printf("[gmon_out_read] samp_bytes %d hist_num_bins %d\n",(ulong)uVar5,uVar7 & 0xffffffff)" (identifier "printf") (argument_list "("[gmon_out_read] samp_bytes %d hist_num_bins %d\n",(ulong)uVar5,uVar7 & 0xffffffff)" (( "(") (string_literal ""[gmon_out_read] samp_bytes %d hist_num_bins %d\n"" (" """) (string_content "[gmon_out_read] samp_bytes %d hist_num_bins %d") (escape_sequence "\n") (" """)) (, ",") (cast_expression "(ulong)uVar5" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar5")) (, ",") (binary_expression "uVar7 & 0xffffffff" (identifier "uVar7") (& "&") (number_literal "0xffffffff")) () ")"))) (; ";")) (} "}"))) (if_statement "if ((-1 < (int)uVar5) && (*DAT_00119b18 <= DAT_00119b18[1])) {\n      local_a4 = (uint)(iVar3 != 0);\n      if (iVar3 != 0) {\n        uVar10 = 0;\n        do {\n          sVar6 = fread(local_96,2,1,__stream);\n          uVar12 = DAT_00119b10;\n          if (sVar6 != 1) {\n            pcVar8 = (char *)dcgettext("gprof","%s: unexpected EOF after reading %d/%d bins\n",5);\n            fprintf(stderr,pcVar8,uVar12,(ulong)((int)uVar10 - 1),uVar7 & 0xffffffff);\n                    \n            FUN_0010a4c0(1);\n          }\n          iVar4 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x50))(local_96);\n          piVar1 = (int *)(DAT_00119b18[3] + uVar10 * 4);\n          *piVar1 = *piVar1 + iVar4;\n          bVar15 = iVar3 - 1 != uVar10;\n          uVar10 = uVar10 + 1;\n        } while (bVar15);\n      }\n      uVar5 = 0;\n      while ((iVar3 = FUN_00109550(__stream,&local_90), iVar3 == 0 &&\n             (iVar3 = FUN_00109550(__stream,&local_88), iVar3 == 0))) {\n        iVar3 = FUN_00109420();\n        if (iVar3 == 0) {\n          iVar3 = FUN_00109500(__stream,&local_80);\n          if (iVar3 != 0) break;\n          uVar7 = (ulong)local_80;\n        }\n        else {\n          if ((iVar3 != 1) || (iVar3 = FUN_001093d0(__stream,&local_80), iVar3 != 0)) break;\n          uVar7 = CONCAT44(uStack_7c,local_80);\n        }\n        uVar5 = uVar5 + 1;\n        if (((byte)DAT_001195e4 & 0x40) != 0) {\n          printf("[gmon_out_read] frompc 0x%lx selfpc 0x%lx count %lu\n",local_90,local_88,uVar7);\n        }\n        FUN_001040b0(local_90,local_88,uVar7);\n      }\n      local_a8 = 0;\n      if (DAT_001195e8 == 0) {\n        iVar3 = FUN_0010a4d0();\n        DAT_001195e8 = (ulong)iVar3;\n        if (DAT_001195e8 == 0) {\n          DAT_001195e8 = 1;\n          pcVar8 = (char *)dcgettext("gprof","time is in ticks, not seconds\n",5);\n          fprintf(stderr,pcVar8);\n        }\n      }\nLAB_001099b1:\n      if (stdin != __stream) {\n        fclose(__stream);\n      }\n      uVar2 = DAT_001195b4;\n      if (((byte)DAT_001195e0 & 0x20) == 0) {\n        return;\n      }\n      pcVar8 = (char *)dcgettext("gprof","File `%s\' (version %d) contains:\n",5);\n      printf(pcVar8,param_1,(ulong)uVar2);\n      if (local_a4 == 1) {\n        pcVar8 = (char *)dcgettext("gprof","\t%d histogram record\n",5);\n      }\n      else {\n        pcVar8 = (char *)dcgettext("gprof","\t%d histogram records\n",5);\n      }\n      printf(pcVar8,(ulong)local_a4);\n      if (uVar5 == 1) {\n        pcVar8 = (char *)dcgettext("gprof","\t%d call-graph record\n",5);\n      }\n      else {\n        pcVar8 = (char *)dcgettext("gprof","\t%d call-graph records\n",5);\n      }\n      printf(pcVar8,(ulong)uVar5);\n      if (local_a8 == 1) {\n        pcVar8 = (char *)dcgettext("gprof","\t%d basic-block count record\n",5);\n      }\n      else {\n        pcVar8 = (char *)dcgettext("gprof","\t%d basic-block count records\n",5);\n      }\n      printf(pcVar8,(ulong)local_a8);\n      DAT_001182d8 = 0;\n      return;\n    }" (if "if") (parenthesized_expression "((-1 < (int)uVar5) && (*DAT_00119b18 <= DAT_00119b18[1]))" (( "(") (binary_expression "(-1 < (int)uVar5) && (*DAT_00119b18 <= DAT_00119b18[1])" (parenthesized_expression "(-1 < (int)uVar5)" (( "(") (binary_expression "-1 < (int)uVar5" (number_literal "-1") (< "<") (cast_expression "(int)uVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar5"))) () ")")) (&& "&&") (parenthesized_expression "(*DAT_00119b18 <= DAT_00119b18[1])" (( "(") (binary_expression "*DAT_00119b18 <= DAT_00119b18[1]" (pointer_expression "*DAT_00119b18" (* "*") (identifier "DAT_00119b18")) (<= "<=") (subscript_expression "DAT_00119b18[1]" (identifier "DAT_00119b18") ([ "[") (number_literal "1") (] "]"))) () ")"))) () ")")) (compound_statement "{\n      local_a4 = (uint)(iVar3 != 0);\n      if (iVar3 != 0) {\n        uVar10 = 0;\n        do {\n          sVar6 = fread(local_96,2,1,__stream);\n          uVar12 = DAT_00119b10;\n          if (sVar6 != 1) {\n            pcVar8 = (char *)dcgettext("gprof","%s: unexpected EOF after reading %d/%d bins\n",5);\n            fprintf(stderr,pcVar8,uVar12,(ulong)((int)uVar10 - 1),uVar7 & 0xffffffff);\n                    \n            FUN_0010a4c0(1);\n          }\n          iVar4 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x50))(local_96);\n          piVar1 = (int *)(DAT_00119b18[3] + uVar10 * 4);\n          *piVar1 = *piVar1 + iVar4;\n          bVar15 = iVar3 - 1 != uVar10;\n          uVar10 = uVar10 + 1;\n        } while (bVar15);\n      }\n      uVar5 = 0;\n      while ((iVar3 = FUN_00109550(__stream,&local_90), iVar3 == 0 &&\n             (iVar3 = FUN_00109550(__stream,&local_88), iVar3 == 0))) {\n        iVar3 = FUN_00109420();\n        if (iVar3 == 0) {\n          iVar3 = FUN_00109500(__stream,&local_80);\n          if (iVar3 != 0) break;\n          uVar7 = (ulong)local_80;\n        }\n        else {\n          if ((iVar3 != 1) || (iVar3 = FUN_001093d0(__stream,&local_80), iVar3 != 0)) break;\n          uVar7 = CONCAT44(uStack_7c,local_80);\n        }\n        uVar5 = uVar5 + 1;\n        if (((byte)DAT_001195e4 & 0x40) != 0) {\n          printf("[gmon_out_read] frompc 0x%lx selfpc 0x%lx count %lu\n",local_90,local_88,uVar7);\n        }\n        FUN_001040b0(local_90,local_88,uVar7);\n      }\n      local_a8 = 0;\n      if (DAT_001195e8 == 0) {\n        iVar3 = FUN_0010a4d0();\n        DAT_001195e8 = (ulong)iVar3;\n        if (DAT_001195e8 == 0) {\n          DAT_001195e8 = 1;\n          pcVar8 = (char *)dcgettext("gprof","time is in ticks, not seconds\n",5);\n          fprintf(stderr,pcVar8);\n        }\n      }\nLAB_001099b1:\n      if (stdin != __stream) {\n        fclose(__stream);\n      }\n      uVar2 = DAT_001195b4;\n      if (((byte)DAT_001195e0 & 0x20) == 0) {\n        return;\n      }\n      pcVar8 = (char *)dcgettext("gprof","File `%s\' (version %d) contains:\n",5);\n      printf(pcVar8,param_1,(ulong)uVar2);\n      if (local_a4 == 1) {\n        pcVar8 = (char *)dcgettext("gprof","\t%d histogram record\n",5);\n      }\n      else {\n        pcVar8 = (char *)dcgettext("gprof","\t%d histogram records\n",5);\n      }\n      printf(pcVar8,(ulong)local_a4);\n      if (uVar5 == 1) {\n        pcVar8 = (char *)dcgettext("gprof","\t%d call-graph record\n",5);\n      }\n      else {\n        pcVar8 = (char *)dcgettext("gprof","\t%d call-graph records\n",5);\n      }\n      printf(pcVar8,(ulong)uVar5);\n      if (local_a8 == 1) {\n        pcVar8 = (char *)dcgettext("gprof","\t%d basic-block count record\n",5);\n      }\n      else {\n        pcVar8 = (char *)dcgettext("gprof","\t%d basic-block count records\n",5);\n      }\n      printf(pcVar8,(ulong)local_a8);\n      DAT_001182d8 = 0;\n      return;\n    }" ({ "{") (expression_statement "local_a4 = (uint)(iVar3 != 0);" (assignment_expression "local_a4 = (uint)(iVar3 != 0)" (identifier "local_a4") (= "=") (call_expression "(uint)(iVar3 != 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")))) (; ";")) (if_statement "if (iVar3 != 0) {\n        uVar10 = 0;\n        do {\n          sVar6 = fread(local_96,2,1,__stream);\n          uVar12 = DAT_00119b10;\n          if (sVar6 != 1) {\n            pcVar8 = (char *)dcgettext("gprof","%s: unexpected EOF after reading %d/%d bins\n",5);\n            fprintf(stderr,pcVar8,uVar12,(ulong)((int)uVar10 - 1),uVar7 & 0xffffffff);\n                    \n            FUN_0010a4c0(1);\n          }\n          iVar4 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x50))(local_96);\n          piVar1 = (int *)(DAT_00119b18[3] + uVar10 * 4);\n          *piVar1 = *piVar1 + iVar4;\n          bVar15 = iVar3 - 1 != uVar10;\n          uVar10 = uVar10 + 1;\n        } while (bVar15);\n      }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        uVar10 = 0;\n        do {\n          sVar6 = fread(local_96,2,1,__stream);\n          uVar12 = DAT_00119b10;\n          if (sVar6 != 1) {\n            pcVar8 = (char *)dcgettext("gprof","%s: unexpected EOF after reading %d/%d bins\n",5);\n            fprintf(stderr,pcVar8,uVar12,(ulong)((int)uVar10 - 1),uVar7 & 0xffffffff);\n                    \n            FUN_0010a4c0(1);\n          }\n          iVar4 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x50))(local_96);\n          piVar1 = (int *)(DAT_00119b18[3] + uVar10 * 4);\n          *piVar1 = *piVar1 + iVar4;\n          bVar15 = iVar3 - 1 != uVar10;\n          uVar10 = uVar10 + 1;\n        } while (bVar15);\n      }" ({ "{") (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" (identifier "uVar10") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n          sVar6 = fread(local_96,2,1,__stream);\n          uVar12 = DAT_00119b10;\n          if (sVar6 != 1) {\n            pcVar8 = (char *)dcgettext("gprof","%s: unexpected EOF after reading %d/%d bins\n",5);\n            fprintf(stderr,pcVar8,uVar12,(ulong)((int)uVar10 - 1),uVar7 & 0xffffffff);\n                    \n            FUN_0010a4c0(1);\n          }\n          iVar4 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x50))(local_96);\n          piVar1 = (int *)(DAT_00119b18[3] + uVar10 * 4);\n          *piVar1 = *piVar1 + iVar4;\n          bVar15 = iVar3 - 1 != uVar10;\n          uVar10 = uVar10 + 1;\n        } while (bVar15);" (do "do") (compound_statement "{\n          sVar6 = fread(local_96,2,1,__stream);\n          uVar12 = DAT_00119b10;\n          if (sVar6 != 1) {\n            pcVar8 = (char *)dcgettext("gprof","%s: unexpected EOF after reading %d/%d bins\n",5);\n            fprintf(stderr,pcVar8,uVar12,(ulong)((int)uVar10 - 1),uVar7 & 0xffffffff);\n                    \n            FUN_0010a4c0(1);\n          }\n          iVar4 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x50))(local_96);\n          piVar1 = (int *)(DAT_00119b18[3] + uVar10 * 4);\n          *piVar1 = *piVar1 + iVar4;\n          bVar15 = iVar3 - 1 != uVar10;\n          uVar10 = uVar10 + 1;\n        }" ({ "{") (expression_statement "sVar6 = fread(local_96,2,1,__stream);" (assignment_expression "sVar6 = fread(local_96,2,1,__stream)" (identifier "sVar6") (= "=") (call_expression "fread(local_96,2,1,__stream)" (identifier "fread") (argument_list "(local_96,2,1,__stream)" (( "(") (identifier "local_96") (, ",") (number_literal "2") (, ",") (number_literal "1") (, ",") (identifier "__stream") () ")")))) (; ";")) (expression_statement "uVar12 = DAT_00119b10;" (assignment_expression "uVar12 = DAT_00119b10" (identifier "uVar12") (= "=") (identifier "DAT_00119b10")) (; ";")) (if_statement "if (sVar6 != 1) {\n            pcVar8 = (char *)dcgettext("gprof","%s: unexpected EOF after reading %d/%d bins\n",5);\n            fprintf(stderr,pcVar8,uVar12,(ulong)((int)uVar10 - 1),uVar7 & 0xffffffff);\n                    \n            FUN_0010a4c0(1);\n          }" (if "if") (parenthesized_expression "(sVar6 != 1)" (( "(") (binary_expression "sVar6 != 1" (identifier "sVar6") (!= "!=") (number_literal "1")) () ")")) (compound_statement "{\n            pcVar8 = (char *)dcgettext("gprof","%s: unexpected EOF after reading %d/%d bins\n",5);\n            fprintf(stderr,pcVar8,uVar12,(ulong)((int)uVar10 - 1),uVar7 & 0xffffffff);\n                    \n            FUN_0010a4c0(1);\n          }" ({ "{") (expression_statement "pcVar8 = (char *)dcgettext("gprof","%s: unexpected EOF after reading %d/%d bins\n",5);" (assignment_expression "pcVar8 = (char *)dcgettext("gprof","%s: unexpected EOF after reading %d/%d bins\n",5)" (identifier "pcVar8") (= "=") (cast_expression "(char *)dcgettext("gprof","%s: unexpected EOF after reading %d/%d bins\n",5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext("gprof","%s: unexpected EOF after reading %d/%d bins\n",5)" (identifier "dcgettext") (argument_list "("gprof","%s: unexpected EOF after reading %d/%d bins\n",5)" (( "(") (string_literal ""gprof"" (" """) (string_content "gprof") (" """)) (, ",") (string_literal ""%s: unexpected EOF after reading %d/%d bins\n"" (" """) (string_content "%s: unexpected EOF after reading %d/%d bins") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")"))))) (; ";")) (expression_statement "fprintf(stderr,pcVar8,uVar12,(ulong)((int)uVar10 - 1),uVar7 & 0xffffffff);" (call_expression "fprintf(stderr,pcVar8,uVar12,(ulong)((int)uVar10 - 1),uVar7 & 0xffffffff)" (identifier "fprintf") (argument_list "(stderr,pcVar8,uVar12,(ulong)((int)uVar10 - 1),uVar7 & 0xffffffff)" (( "(") (identifier "stderr") (, ",") (identifier "pcVar8") (, ",") (identifier "uVar12") (, ",") (call_expression "(ulong)((int)uVar10 - 1)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "((int)uVar10 - 1)" (( "(") (binary_expression "(int)uVar10 - 1" (cast_expression "(int)uVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar10")) (- "-") (number_literal "1")) () ")"))) (, ",") (binary_expression "uVar7 & 0xffffffff" (identifier "uVar7") (& "&") (number_literal "0xffffffff")) () ")"))) (; ";")) (expression_statement "FUN_0010a4c0(1);" (call_expression "FUN_0010a4c0(1)" (identifier "FUN_0010a4c0") (argument_list "(1)" (( "(") (number_literal "1") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar4 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x50))(local_96);" (assignment_expression "iVar4 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x50))(local_96)" (identifier "iVar4") (= "=") (call_expression "(**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x50))(local_96)" (parenthesized_expression "(**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x50))" (( "(") (pointer_expression "**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x50)" (* "*") (pointer_expression "*(code **)(*(long *)(DAT_00119ad8 + 8) + 0x50)" (* "*") (cast_expression "(code **)(*(long *)(DAT_00119ad8 + 8) + 0x50)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(long *)(DAT_00119ad8 + 8) + 0x50)" (( "(") (binary_expression "*(long *)(DAT_00119ad8 + 8) + 0x50" (pointer_expression "*(long *)(DAT_00119ad8 + 8)" (* "*") (cast_expression "(long *)(DAT_00119ad8 + 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_00119ad8 + 8)" (( "(") (binary_expression "DAT_00119ad8 + 8" (identifier "DAT_00119ad8") (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x50")) () ")"))))) () ")")) (argument_list "(local_96)" (( "(") (identifier "local_96") () ")")))) (; ";")) (expression_statement "piVar1 = (int *)(DAT_00119b18[3] + uVar10 * 4);" (assignment_expression "piVar1 = (int *)(DAT_00119b18[3] + uVar10 * 4)" (identifier "piVar1") (= "=") (cast_expression "(int *)(DAT_00119b18[3] + uVar10 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_00119b18[3] + uVar10 * 4)" (( "(") (binary_expression "DAT_00119b18[3] + uVar10 * 4" (subscript_expression "DAT_00119b18[3]" (identifier "DAT_00119b18") ([ "[") (number_literal "3") (] "]")) (+ "+") (binary_expression "uVar10 * 4" (identifier "uVar10") (* "*") (number_literal "4"))) () ")")))) (; ";")) (expression_statement "*piVar1 = *piVar1 + iVar4;" (assignment_expression "*piVar1 = *piVar1 + iVar4" (pointer_expression "*piVar1" (* "*") (identifier "piVar1")) (= "=") (binary_expression "*piVar1 + iVar4" (pointer_expression "*piVar1" (* "*") (identifier "piVar1")) (+ "+") (identifier "iVar4"))) (; ";")) (expression_statement "bVar15 = iVar3 - 1 != uVar10;" (assignment_expression "bVar15 = iVar3 - 1 != uVar10" (identifier "bVar15") (= "=") (binary_expression "iVar3 - 1 != uVar10" (binary_expression "iVar3 - 1" (identifier "iVar3") (- "-") (number_literal "1")) (!= "!=") (identifier "uVar10"))) (; ";")) (expression_statement "uVar10 = uVar10 + 1;" (assignment_expression "uVar10 = uVar10 + 1" (identifier "uVar10") (= "=") (binary_expression "uVar10 + 1" (identifier "uVar10") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar15)" (( "(") (identifier "bVar15") () ")")) (; ";")) (} "}"))) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" (identifier "uVar5") (= "=") (number_literal "0")) (; ";")) (while_statement "while ((iVar3 = FUN_00109550(__stream,&local_90), iVar3 == 0 &&\n             (iVar3 = FUN_00109550(__stream,&local_88), iVar3 == 0))) {\n        iVar3 = FUN_00109420();\n        if (iVar3 == 0) {\n          iVar3 = FUN_00109500(__stream,&local_80);\n          if (iVar3 != 0) break;\n          uVar7 = (ulong)local_80;\n        }\n        else {\n          if ((iVar3 != 1) || (iVar3 = FUN_001093d0(__stream,&local_80), iVar3 != 0)) break;\n          uVar7 = CONCAT44(uStack_7c,local_80);\n        }\n        uVar5 = uVar5 + 1;\n        if (((byte)DAT_001195e4 & 0x40) != 0) {\n          printf("[gmon_out_read] frompc 0x%lx selfpc 0x%lx count %lu\n",local_90,local_88,uVar7);\n        }\n        FUN_001040b0(local_90,local_88,uVar7);\n      }" (while "while") (parenthesized_expression "((iVar3 = FUN_00109550(__stream,&local_90), iVar3 == 0 &&\n             (iVar3 = FUN_00109550(__stream,&local_88), iVar3 == 0)))" (( "(") (parenthesized_expression "(iVar3 = FUN_00109550(__stream,&local_90), iVar3 == 0 &&\n             (iVar3 = FUN_00109550(__stream,&local_88), iVar3 == 0))" (( "(") (comma_expression "iVar3 = FUN_00109550(__stream,&local_90), iVar3 == 0 &&\n             (iVar3 = FUN_00109550(__stream,&local_88), iVar3 == 0)" (assignment_expression "iVar3 = FUN_00109550(__stream,&local_90)" (identifier "iVar3") (= "=") (call_expression "FUN_00109550(__stream,&local_90)" (identifier "FUN_00109550") (argument_list "(__stream,&local_90)" (( "(") (identifier "__stream") (, ",") (pointer_expression "&local_90" (& "&") (identifier "local_90")) () ")")))) (, ",") (binary_expression "iVar3 == 0 &&\n             (iVar3 = FUN_00109550(__stream,&local_88), iVar3 == 0)" (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) (&& "&&") (parenthesized_expression "(iVar3 = FUN_00109550(__stream,&local_88), iVar3 == 0)" (( "(") (comma_expression "iVar3 = FUN_00109550(__stream,&local_88), iVar3 == 0" (assignment_expression "iVar3 = FUN_00109550(__stream,&local_88)" (identifier "iVar3") (= "=") (call_expression "FUN_00109550(__stream,&local_88)" (identifier "FUN_00109550") (argument_list "(__stream,&local_88)" (( "(") (identifier "__stream") (, ",") (pointer_expression "&local_88" (& "&") (identifier "local_88")) () ")")))) (, ",") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0"))) () ")")))) () ")")) () ")")) (compound_statement "{\n        iVar3 = FUN_00109420();\n        if (iVar3 == 0) {\n          iVar3 = FUN_00109500(__stream,&local_80);\n          if (iVar3 != 0) break;\n          uVar7 = (ulong)local_80;\n        }\n        else {\n          if ((iVar3 != 1) || (iVar3 = FUN_001093d0(__stream,&local_80), iVar3 != 0)) break;\n          uVar7 = CONCAT44(uStack_7c,local_80);\n        }\n        uVar5 = uVar5 + 1;\n        if (((byte)DAT_001195e4 & 0x40) != 0) {\n          printf("[gmon_out_read] frompc 0x%lx selfpc 0x%lx count %lu\n",local_90,local_88,uVar7);\n        }\n        FUN_001040b0(local_90,local_88,uVar7);\n      }" ({ "{") (expression_statement "iVar3 = FUN_00109420();" (assignment_expression "iVar3 = FUN_00109420()" (identifier "iVar3") (= "=") (call_expression "FUN_00109420()" (identifier "FUN_00109420") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\n          iVar3 = FUN_00109500(__stream,&local_80);\n          if (iVar3 != 0) break;\n          uVar7 = (ulong)local_80;\n        }\n        else {\n          if ((iVar3 != 1) || (iVar3 = FUN_001093d0(__stream,&local_80), iVar3 != 0)) break;\n          uVar7 = CONCAT44(uStack_7c,local_80);\n        }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          iVar3 = FUN_00109500(__stream,&local_80);\n          if (iVar3 != 0) break;\n          uVar7 = (ulong)local_80;\n        }" ({ "{") (expression_statement "iVar3 = FUN_00109500(__stream,&local_80);" (assignment_expression "iVar3 = FUN_00109500(__stream,&local_80)" (identifier "iVar3") (= "=") (call_expression "FUN_00109500(__stream,&local_80)" (identifier "FUN_00109500") (argument_list "(__stream,&local_80)" (( "(") (identifier "__stream") (, ",") (pointer_expression "&local_80" (& "&") (identifier "local_80")) () ")")))) (; ";")) (if_statement "if (iVar3 != 0) break;" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar7 = (ulong)local_80;" (assignment_expression "uVar7 = (ulong)local_80" (identifier "uVar7") (= "=") (cast_expression "(ulong)local_80" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "local_80"))) (; ";")) (} "}")) (else_clause "else {\n          if ((iVar3 != 1) || (iVar3 = FUN_001093d0(__stream,&local_80), iVar3 != 0)) break;\n          uVar7 = CONCAT44(uStack_7c,local_80);\n        }" (else "else") (compound_statement "{\n          if ((iVar3 != 1) || (iVar3 = FUN_001093d0(__stream,&local_80), iVar3 != 0)) break;\n          uVar7 = CONCAT44(uStack_7c,local_80);\n        }" ({ "{") (if_statement "if ((iVar3 != 1) || (iVar3 = FUN_001093d0(__stream,&local_80), iVar3 != 0)) break;" (if "if") (parenthesized_expression "((iVar3 != 1) || (iVar3 = FUN_001093d0(__stream,&local_80), iVar3 != 0))" (( "(") (binary_expression "(iVar3 != 1) || (iVar3 = FUN_001093d0(__stream,&local_80), iVar3 != 0)" (parenthesized_expression "(iVar3 != 1)" (( "(") (binary_expression "iVar3 != 1" (identifier "iVar3") (!= "!=") (number_literal "1")) () ")")) (|| "||") (parenthesized_expression "(iVar3 = FUN_001093d0(__stream,&local_80), iVar3 != 0)" (( "(") (comma_expression "iVar3 = FUN_001093d0(__stream,&local_80), iVar3 != 0" (assignment_expression "iVar3 = FUN_001093d0(__stream,&local_80)" (identifier "iVar3") (= "=") (call_expression "FUN_001093d0(__stream,&local_80)" (identifier "FUN_001093d0") (argument_list "(__stream,&local_80)" (( "(") (identifier "__stream") (, ",") (pointer_expression "&local_80" (& "&") (identifier "local_80")) () ")")))) (, ",") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar7 = CONCAT44(uStack_7c,local_80);" (assignment_expression "uVar7 = CONCAT44(uStack_7c,local_80)" (identifier "uVar7") (= "=") (call_expression "CONCAT44(uStack_7c,local_80)" (identifier "CONCAT44") (argument_list "(uStack_7c,local_80)" (( "(") (identifier "uStack_7c") (, ",") (identifier "local_80") () ")")))) (; ";")) (} "}")))) (expression_statement "uVar5 = uVar5 + 1;" (assignment_expression "uVar5 = uVar5 + 1" (identifier "uVar5") (= "=") (binary_expression "uVar5 + 1" (identifier "uVar5") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (((byte)DAT_001195e4 & 0x40) != 0) {\n          printf("[gmon_out_read] frompc 0x%lx selfpc 0x%lx count %lu\n",local_90,local_88,uVar7);\n        }" (if "if") (parenthesized_expression "(((byte)DAT_001195e4 & 0x40) != 0)" (( "(") (binary_expression "((byte)DAT_001195e4 & 0x40) != 0" (parenthesized_expression "((byte)DAT_001195e4 & 0x40)" (( "(") (binary_expression "(byte)DAT_001195e4 & 0x40" (cast_expression "(byte)DAT_001195e4" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "DAT_001195e4")) (& "&") (number_literal "0x40")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          printf("[gmon_out_read] frompc 0x%lx selfpc 0x%lx count %lu\n",local_90,local_88,uVar7);\n        }" ({ "{") (expression_statement "printf("[gmon_out_read] frompc 0x%lx selfpc 0x%lx count %lu\n",local_90,local_88,uVar7);" (call_expression "printf("[gmon_out_read] frompc 0x%lx selfpc 0x%lx count %lu\n",local_90,local_88,uVar7)" (identifier "printf") (argument_list "("[gmon_out_read] frompc 0x%lx selfpc 0x%lx count %lu\n",local_90,local_88,uVar7)" (( "(") (string_literal ""[gmon_out_read] frompc 0x%lx selfpc 0x%lx count %lu\n"" (" """) (string_content "[gmon_out_read] frompc 0x%lx selfpc 0x%lx count %lu") (escape_sequence "\n") (" """)) (, ",") (identifier "local_90") (, ",") (identifier "local_88") (, ",") (identifier "uVar7") () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_001040b0(local_90,local_88,uVar7);" (call_expression "FUN_001040b0(local_90,local_88,uVar7)" (identifier "FUN_001040b0") (argument_list "(local_90,local_88,uVar7)" (( "(") (identifier "local_90") (, ",") (identifier "local_88") (, ",") (identifier "uVar7") () ")"))) (; ";")) (} "}"))) (expression_statement "local_a8 = 0;" (assignment_expression "local_a8 = 0" (identifier "local_a8") (= "=") (number_literal "0")) (; ";")) (if_statement "if (DAT_001195e8 == 0) {\n        iVar3 = FUN_0010a4d0();\n        DAT_001195e8 = (ulong)iVar3;\n        if (DAT_001195e8 == 0) {\n          DAT_001195e8 = 1;\n          pcVar8 = (char *)dcgettext("gprof","time is in ticks, not seconds\n",5);\n          fprintf(stderr,pcVar8);\n        }\n      }" (if "if") (parenthesized_expression "(DAT_001195e8 == 0)" (( "(") (binary_expression "DAT_001195e8 == 0" (identifier "DAT_001195e8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        iVar3 = FUN_0010a4d0();\n        DAT_001195e8 = (ulong)iVar3;\n        if (DAT_001195e8 == 0) {\n          DAT_001195e8 = 1;\n          pcVar8 = (char *)dcgettext("gprof","time is in ticks, not seconds\n",5);\n          fprintf(stderr,pcVar8);\n        }\n      }" ({ "{") (expression_statement "iVar3 = FUN_0010a4d0();" (assignment_expression "iVar3 = FUN_0010a4d0()" (identifier "iVar3") (= "=") (call_expression "FUN_0010a4d0()" (identifier "FUN_0010a4d0") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "DAT_001195e8 = (ulong)iVar3;" (assignment_expression "DAT_001195e8 = (ulong)iVar3" (identifier "DAT_001195e8") (= "=") (cast_expression "(ulong)iVar3" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "iVar3"))) (; ";")) (if_statement "if (DAT_001195e8 == 0) {\n          DAT_001195e8 = 1;\n          pcVar8 = (char *)dcgettext("gprof","time is in ticks, not seconds\n",5);\n          fprintf(stderr,pcVar8);\n        }" (if "if") (parenthesized_expression "(DAT_001195e8 == 0)" (( "(") (binary_expression "DAT_001195e8 == 0" (identifier "DAT_001195e8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          DAT_001195e8 = 1;\n          pcVar8 = (char *)dcgettext("gprof","time is in ticks, not seconds\n",5);\n          fprintf(stderr,pcVar8);\n        }" ({ "{") (expression_statement "DAT_001195e8 = 1;" (assignment_expression "DAT_001195e8 = 1" (identifier "DAT_001195e8") (= "=") (number_literal "1")) (; ";")) (expression_statement "pcVar8 = (char *)dcgettext("gprof","time is in ticks, not seconds\n",5);" (assignment_expression "pcVar8 = (char *)dcgettext("gprof","time is in ticks, not seconds\n",5)" (identifier "pcVar8") (= "=") (cast_expression "(char *)dcgettext("gprof","time is in ticks, not seconds\n",5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext("gprof","time is in ticks, not seconds\n",5)" (identifier "dcgettext") (argument_list "("gprof","time is in ticks, not seconds\n",5)" (( "(") (string_literal ""gprof"" (" """) (string_content "gprof") (" """)) (, ",") (string_literal ""time is in ticks, not seconds\n"" (" """) (string_content "time is in ticks, not seconds") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")"))))) (; ";")) (expression_statement "fprintf(stderr,pcVar8);" (call_expression "fprintf(stderr,pcVar8)" (identifier "fprintf") (argument_list "(stderr,pcVar8)" (( "(") (identifier "stderr") (, ",") (identifier "pcVar8") () ")"))) (; ";")) (} "}"))) (} "}"))) (labeled_statement "LAB_001099b1:\n      if (stdin != __stream) {\n        fclose(__stream);\n      }" (statement_identifier "LAB_001099b1") (: ":") (if_statement "if (stdin != __stream) {\n        fclose(__stream);\n      }" (if "if") (parenthesized_expression "(stdin != __stream)" (( "(") (binary_expression "stdin != __stream" (identifier "stdin") (!= "!=") (identifier "__stream")) () ")")) (compound_statement "{\n        fclose(__stream);\n      }" ({ "{") (expression_statement "fclose(__stream);" (call_expression "fclose(__stream)" (identifier "fclose") (argument_list "(__stream)" (( "(") (identifier "__stream") () ")"))) (; ";")) (} "}")))) (expression_statement "uVar2 = DAT_001195b4;" (assignment_expression "uVar2 = DAT_001195b4" (identifier "uVar2") (= "=") (identifier "DAT_001195b4")) (; ";")) (if_statement "if (((byte)DAT_001195e0 & 0x20) == 0) {\n        return;\n      }" (if "if") (parenthesized_expression "(((byte)DAT_001195e0 & 0x20) == 0)" (( "(") (binary_expression "((byte)DAT_001195e0 & 0x20) == 0" (parenthesized_expression "((byte)DAT_001195e0 & 0x20)" (( "(") (binary_expression "(byte)DAT_001195e0 & 0x20" (cast_expression "(byte)DAT_001195e0" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "DAT_001195e0")) (& "&") (number_literal "0x20")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        return;\n      }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "pcVar8 = (char *)dcgettext("gprof","File `%s\' (version %d) contains:\n",5);" (assignment_expression "pcVar8 = (char *)dcgettext("gprof","File `%s\' (version %d) contains:\n",5)" (identifier "pcVar8") (= "=") (cast_expression "(char *)dcgettext("gprof","File `%s\' (version %d) contains:\n",5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext("gprof","File `%s\' (version %d) contains:\n",5)" (identifier "dcgettext") (argument_list "("gprof","File `%s\' (version %d) contains:\n",5)" (( "(") (string_literal ""gprof"" (" """) (string_content "gprof") (" """)) (, ",") (string_literal ""File `%s\' (version %d) contains:\n"" (" """) (string_content "File `%s") (escape_sequence "\'") (string_content " (version %d) contains:") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")"))))) (; ";")) (expression_statement "printf(pcVar8,param_1,(ulong)uVar2);" (call_expression "printf(pcVar8,param_1,(ulong)uVar2)" (identifier "printf") (argument_list "(pcVar8,param_1,(ulong)uVar2)" (( "(") (identifier "pcVar8") (, ",") (identifier "param_1") (, ",") (cast_expression "(ulong)uVar2" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar2")) () ")"))) (; ";")) (if_statement "if (local_a4 == 1) {\n        pcVar8 = (char *)dcgettext("gprof","\t%d histogram record\n",5);\n      }\n      else {\n        pcVar8 = (char *)dcgettext("gprof","\t%d histogram records\n",5);\n      }" (if "if") (parenthesized_expression "(local_a4 == 1)" (( "(") (binary_expression "local_a4 == 1" (identifier "local_a4") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n        pcVar8 = (char *)dcgettext("gprof","\t%d histogram record\n",5);\n      }" ({ "{") (expression_statement "pcVar8 = (char *)dcgettext("gprof","\t%d histogram record\n",5);" (assignment_expression "pcVar8 = (char *)dcgettext("gprof","\t%d histogram record\n",5)" (identifier "pcVar8") (= "=") (cast_expression "(char *)dcgettext("gprof","\t%d histogram record\n",5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext("gprof","\t%d histogram record\n",5)" (identifier "dcgettext") (argument_list "("gprof","\t%d histogram record\n",5)" (( "(") (string_literal ""gprof"" (" """) (string_content "gprof") (" """)) (, ",") (string_literal ""\t%d histogram record\n"" (" """) (escape_sequence "\t") (string_content "%d histogram record") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")"))))) (; ";")) (} "}")) (else_clause "else {\n        pcVar8 = (char *)dcgettext("gprof","\t%d histogram records\n",5);\n      }" (else "else") (compound_statement "{\n        pcVar8 = (char *)dcgettext("gprof","\t%d histogram records\n",5);\n      }" ({ "{") (expression_statement "pcVar8 = (char *)dcgettext("gprof","\t%d histogram records\n",5);" (assignment_expression "pcVar8 = (char *)dcgettext("gprof","\t%d histogram records\n",5)" (identifier "pcVar8") (= "=") (cast_expression "(char *)dcgettext("gprof","\t%d histogram records\n",5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext("gprof","\t%d histogram records\n",5)" (identifier "dcgettext") (argument_list "("gprof","\t%d histogram records\n",5)" (( "(") (string_literal ""gprof"" (" """) (string_content "gprof") (" """)) (, ",") (string_literal ""\t%d histogram records\n"" (" """) (escape_sequence "\t") (string_content "%d histogram records") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")"))))) (; ";")) (} "}")))) (expression_statement "printf(pcVar8,(ulong)local_a4);" (call_expression "printf(pcVar8,(ulong)local_a4)" (identifier "printf") (argument_list "(pcVar8,(ulong)local_a4)" (( "(") (identifier "pcVar8") (, ",") (cast_expression "(ulong)local_a4" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "local_a4")) () ")"))) (; ";")) (if_statement "if (uVar5 == 1) {\n        pcVar8 = (char *)dcgettext("gprof","\t%d call-graph record\n",5);\n      }\n      else {\n        pcVar8 = (char *)dcgettext("gprof","\t%d call-graph records\n",5);\n      }" (if "if") (parenthesized_expression "(uVar5 == 1)" (( "(") (binary_expression "uVar5 == 1" (identifier "uVar5") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n        pcVar8 = (char *)dcgettext("gprof","\t%d call-graph record\n",5);\n      }" ({ "{") (expression_statement "pcVar8 = (char *)dcgettext("gprof","\t%d call-graph record\n",5);" (assignment_expression "pcVar8 = (char *)dcgettext("gprof","\t%d call-graph record\n",5)" (identifier "pcVar8") (= "=") (cast_expression "(char *)dcgettext("gprof","\t%d call-graph record\n",5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext("gprof","\t%d call-graph record\n",5)" (identifier "dcgettext") (argument_list "("gprof","\t%d call-graph record\n",5)" (( "(") (string_literal ""gprof"" (" """) (string_content "gprof") (" """)) (, ",") (string_literal ""\t%d call-graph record\n"" (" """) (escape_sequence "\t") (string_content "%d call-graph record") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")"))))) (; ";")) (} "}")) (else_clause "else {\n        pcVar8 = (char *)dcgettext("gprof","\t%d call-graph records\n",5);\n      }" (else "else") (compound_statement "{\n        pcVar8 = (char *)dcgettext("gprof","\t%d call-graph records\n",5);\n      }" ({ "{") (expression_statement "pcVar8 = (char *)dcgettext("gprof","\t%d call-graph records\n",5);" (assignment_expression "pcVar8 = (char *)dcgettext("gprof","\t%d call-graph records\n",5)" (identifier "pcVar8") (= "=") (cast_expression "(char *)dcgettext("gprof","\t%d call-graph records\n",5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext("gprof","\t%d call-graph records\n",5)" (identifier "dcgettext") (argument_list "("gprof","\t%d call-graph records\n",5)" (( "(") (string_literal ""gprof"" (" """) (string_content "gprof") (" """)) (, ",") (string_literal ""\t%d call-graph records\n"" (" """) (escape_sequence "\t") (string_content "%d call-graph records") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")"))))) (; ";")) (} "}")))) (expression_statement "printf(pcVar8,(ulong)uVar5);" (call_expression "printf(pcVar8,(ulong)uVar5)" (identifier "printf") (argument_list "(pcVar8,(ulong)uVar5)" (( "(") (identifier "pcVar8") (, ",") (cast_expression "(ulong)uVar5" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar5")) () ")"))) (; ";")) (if_statement "if (local_a8 == 1) {\n        pcVar8 = (char *)dcgettext("gprof","\t%d basic-block count record\n",5);\n      }\n      else {\n        pcVar8 = (char *)dcgettext("gprof","\t%d basic-block count records\n",5);\n      }" (if "if") (parenthesized_expression "(local_a8 == 1)" (( "(") (binary_expression "local_a8 == 1" (identifier "local_a8") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n        pcVar8 = (char *)dcgettext("gprof","\t%d basic-block count record\n",5);\n      }" ({ "{") (expression_statement "pcVar8 = (char *)dcgettext("gprof","\t%d basic-block count record\n",5);" (assignment_expression "pcVar8 = (char *)dcgettext("gprof","\t%d basic-block count record\n",5)" (identifier "pcVar8") (= "=") (cast_expression "(char *)dcgettext("gprof","\t%d basic-block count record\n",5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext("gprof","\t%d basic-block count record\n",5)" (identifier "dcgettext") (argument_list "("gprof","\t%d basic-block count record\n",5)" (( "(") (string_literal ""gprof"" (" """) (string_content "gprof") (" """)) (, ",") (string_literal ""\t%d basic-block count record\n"" (" """) (escape_sequence "\t") (string_content "%d basic-block count record") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")"))))) (; ";")) (} "}")) (else_clause "else {\n        pcVar8 = (char *)dcgettext("gprof","\t%d basic-block count records\n",5);\n      }" (else "else") (compound_statement "{\n        pcVar8 = (char *)dcgettext("gprof","\t%d basic-block count records\n",5);\n      }" ({ "{") (expression_statement "pcVar8 = (char *)dcgettext("gprof","\t%d basic-block count records\n",5);" (assignment_expression "pcVar8 = (char *)dcgettext("gprof","\t%d basic-block count records\n",5)" (identifier "pcVar8") (= "=") (cast_expression "(char *)dcgettext("gprof","\t%d basic-block count records\n",5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext("gprof","\t%d basic-block count records\n",5)" (identifier "dcgettext") (argument_list "("gprof","\t%d basic-block count records\n",5)" (( "(") (string_literal ""gprof"" (" """) (string_content "gprof") (" """)) (, ",") (string_literal ""\t%d basic-block count records\n"" (" """) (escape_sequence "\t") (string_content "%d basic-block count records") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")"))))) (; ";")) (} "}")))) (expression_statement "printf(pcVar8,(ulong)local_a8);" (call_expression "printf(pcVar8,(ulong)local_a8)" (identifier "printf") (argument_list "(pcVar8,(ulong)local_a8)" (( "(") (identifier "pcVar8") (, ",") (cast_expression "(ulong)local_a8" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "local_a8")) () ")"))) (; ";")) (expression_statement "DAT_001182d8 = 0;" (assignment_expression "DAT_001182d8 = 0" (identifier "DAT_001182d8") (= "=") (number_literal "0")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "pcVar8 = "%s: file \'%s\' does not appear to be in gmon.out format\n";" (assignment_expression "pcVar8 = "%s: file \'%s\' does not appear to be in gmon.out format\n"" (identifier "pcVar8") (= "=") (string_literal ""%s: file \'%s\' does not appear to be in gmon.out format\n"" (" """) (string_content "%s: file ") (escape_sequence "\'") (string_content "%s") (escape_sequence "\'") (string_content " does not appear to be in gmon.out format") (escape_sequence "\n") (" """))) (; ";")) (labeled_statement "LAB_0010a006:\n    uVar12 = DAT_00119b10;" (statement_identifier "LAB_0010a006") (: ":") (expression_statement "uVar12 = DAT_00119b10;" (assignment_expression "uVar12 = DAT_00119b10" (identifier "uVar12") (= "=") (identifier "DAT_00119b10")) (; ";"))) (expression_statement "pcVar8 = (char *)dcgettext("gprof",pcVar8,5);" (assignment_expression "pcVar8 = (char *)dcgettext("gprof",pcVar8,5)" (identifier "pcVar8") (= "=") (cast_expression "(char *)dcgettext("gprof",pcVar8,5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext("gprof",pcVar8,5)" (identifier "dcgettext") (argument_list "("gprof",pcVar8,5)" (( "(") (string_literal ""gprof"" (" """) (string_content "gprof") (" """)) (, ",") (identifier "pcVar8") (, ",") (number_literal "5") () ")"))))) (; ";")) (expression_statement "fprintf(stderr,pcVar8,uVar12,param_1);" (call_expression "fprintf(stderr,pcVar8,uVar12,param_1)" (identifier "fprintf") (argument_list "(stderr,pcVar8,uVar12,param_1)" (( "(") (identifier "stderr") (, ",") (identifier "pcVar8") (, ",") (identifier "uVar12") (, ",") (identifier "param_1") () ")"))) (; ";")) (expression_statement "FUN_0010a4c0(1);" (call_expression "FUN_0010a4c0(1)" (identifier "FUN_0010a4c0") (argument_list "(1)" (( "(") (number_literal "1") () ")"))) (; ";")) (} "}"))) (labeled_statement "LAB_00109f6f:\n  pcVar8 = "%s: file too short to be a gmon file\n";" (statement_identifier "LAB_00109f6f") (: ":") (expression_statement "pcVar8 = "%s: file too short to be a gmon file\n";" (assignment_expression "pcVar8 = "%s: file too short to be a gmon file\n"" (identifier "pcVar8") (= "=") (string_literal ""%s: file too short to be a gmon file\n"" (" """) (string_content "%s: file too short to be a gmon file") (escape_sequence "\n") (" """))) (; ";"))) (labeled_statement "LAB_00109f7b:\n  pcVar8 = (char *)dcgettext("gprof",pcVar8,5);" (statement_identifier "LAB_00109f7b") (: ":") (expression_statement "pcVar8 = (char *)dcgettext("gprof",pcVar8,5);" (assignment_expression "pcVar8 = (char *)dcgettext("gprof",pcVar8,5)" (identifier "pcVar8") (= "=") (cast_expression "(char *)dcgettext("gprof",pcVar8,5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext("gprof",pcVar8,5)" (identifier "dcgettext") (argument_list "("gprof",pcVar8,5)" (( "(") (string_literal ""gprof"" (" """) (string_content "gprof") (" """)) (, ",") (identifier "pcVar8") (, ",") (number_literal "5") () ")"))))) (; ";"))) (expression_statement "fprintf(stderr,pcVar8,param_1);" (call_expression "fprintf(stderr,pcVar8,param_1)" (identifier "fprintf") (argument_list "(stderr,pcVar8,param_1)" (( "(") (identifier "stderr") (, ",") (identifier "pcVar8") (, ",") (identifier "param_1") () ")"))) (; ";")) (expression_statement "FUN_0010a4c0(1);" (call_expression "FUN_0010a4c0(1)" (identifier "FUN_0010a4c0") (argument_list "(1)" (( "(") (number_literal "1") () ")"))) (; ";")) (} "}")))

void function_1(char *filename)

{
  type_1 FVar1;
  int var_26;
  type_2 var_33;
  int var_37;
  type_3 var_17;
  size_t var_8;
  type_4 var_41;
  type_5 var_13;
  type_6 *var_6;
  char *pcVar9;
  type_7 *phVar10;
  int *piVar11;
  char *pcVar12;
  type_3 var_44;
  long var_1;
  type_8 *var_2;
  type_9 *pgVar16;
  type_8 *var_3;
  type_4 var_46;
  bool var_4;
  bool bVar20;
  type_8 bVar21;
  type_3 var_22;
  type_3 var_20;
  type_10 raw_bin_count;
  type_3 var_29;
  type_5 from_pc;
  type_5 self_pc;
  type_3 profrate;
  type_11 uStack_7c;
  type_9 ghdr;
  type_12 var_16;
  type_13 uStack_57;
  type_5 var_42;
  type_3 local_48 [6];
  
  bVar21 = 0;
  var_1 = 2;
  var_4 = &stack0xffffffffffffffd0 < (type_14 *)0x78;
  bVar20 = &stack0x00000000 == (type_14 *)0xa8;
  var_2 = (type_8 *)filename;
  var_3 = &DAT_001110e7;
  do {
    if (var_1 == 0) break;
    var_1 = var_1 + -1;
    var_4 = *var_2 < *var_3;
    bVar20 = *var_2 == *var_3;
    var_2 = var_2 + 1;
    var_3 = var_3 + 1;
  } while (bVar20);
  var_6 = var_51;
  if (((!var_4 && !bVar20) != var_4) && (var_6 = var_5(filename,"r"), var_6 == (type_6 *)0x0))
  goto LAB_00109ba3;
  var_8 = var_7(&ghdr,0x14,1,var_6);
  pcVar9 = whoami;
  FVar1 = var_9;
  if (var_8 != 1) goto LAB_00109f6f;
  var_4 = var_9 == var_10;
  bVar20 = var_9 == var_11;
  if (bVar20) {
    var_1 = 4;
    pgVar16 = &ghdr;
    var_2 = &DAT_001110e9;
    do {
      if (var_1 == 0) break;
      var_1 = var_1 + -1;
      var_4 = (type_8)pgVar16->cookie[0] < *var_2;
      bVar20 = pgVar16->cookie[0] == *var_2;
      pgVar16 = (type_9 *)((long)pgVar16 + (type_4)bVar21 * -2 + 1);
      var_2 = var_2 + (type_4)bVar21 * -2 + 1;
    } while (bVar20);
    if ((!var_4 && !bVar20) == var_4) {
LAB_001099fe:
      var_13 = (*core_bfd->xvec->bfd_getx32)(ghdr.var_29);
      pcVar9 = whoami;
      gmon_file_version = (int)var_13;
      if (1 < (type_3)gmon_file_version) {
        pcVar12 = (char *)var_12("gprof","%s: file `%s\' has unsupported version %d\n",5);
        var_41 = var_13 & 0xffffffff;
LAB_00109f08:
        var_14(stderr,pcVar12,pcVar9,filename,var_41);
                    /* WARNING: Subroutine does not return */
        var_15(1);
      }
      var_22 = 0;
      var_17 = 0;
      var_20 = 0;
      while (var_8 = var_7(&var_16,1,1,var_6), pcVar9 = whoami, var_8 == 1) {
        if (var_16 == '\x01') {
          var_17 = var_17 + 1;
          var_18 = var_18 | 2;
          var_19((type_6 *)var_6,filename);
        }
        else if (var_16 == '\0') {
          var_20 = var_20 + 1;
          var_18 = var_18 | 1;
          var_21((type_6 *)var_6,filename);
        }
        else {
          if (var_16 != '\x02') {
            pcVar12 = (char *)var_12("gprof","%s: %s: found bad tag %d (file corrupted?)\n",5);
            var_41 = (type_4)var_16;
            goto LAB_00109f08;
          }
          var_22 = var_22 + 1;
          var_18 = var_18 | 4;
          var_23((type_6 *)var_6,filename);
        }
      }
      goto LAB_001099b1;
    }
LAB_00109cae:
    pcVar9 = "%s: file `%s\' has bad magic cookie\n";
    goto LAB_0010a006;
  }
  var_4 = false;
  bVar20 = var_9 == var_10;
  if (bVar20) {
    var_1 = 4;
    pgVar16 = &ghdr;
    var_2 = &DAT_001110e9;
    do {
      if (var_1 == 0) break;
      var_1 = var_1 + -1;
      var_4 = (type_8)pgVar16->cookie[0] < *var_2;
      bVar20 = pgVar16->cookie[0] == *var_2;
      pgVar16 = (type_9 *)((long)pgVar16 + (type_4)bVar21 * -2 + 1);
      var_2 = var_2 + (type_4)bVar21 * -2 + 1;
    } while (bVar20);
    if ((!var_4 && !bVar20) == var_4) goto LAB_001099fe;
  }
  else if (1 < var_9 - var_24) {
    pcVar12 = (char *)var_12("gprof","%s: don\'t know how to deal with file format %d\n",5);
    var_14(stderr,pcVar12,pcVar9,(type_4)FVar1);
                    /* WARNING: Subroutine does not return */
    var_15(1);
  }
  var_18 = 3;
  var_26 = var_25(var_6,0,0);
  if (var_26 < 0) goto LAB_00109ba3;
  var_26 = var_27((type_6 *)var_6,(type_5 *)&var_16);
  if ((((var_26 == 0) && (var_26 = var_27((type_6 *)var_6,&var_42), var_26 == 0)) &&
      (var_26 = var_28((type_6 *)var_6,local_48), var_26 == 0)) &&
     (var_26 = var_28((type_6 *)var_6,&var_29), var_26 == 0)) {
    if (var_29 == 0x51879) {
      var_26 = var_28((type_6 *)var_6,&profrate);
      if (var_26 != 0) goto LAB_00109f6f;
      var_41 = (type_4)profrate;
      if ((var_30 != (type_7 *)0x0) && (var_41 = var_31, (int)profrate != var_31)) {
        pcVar9 = "%s: profiling rate incompatible with first gmon file\n";
        goto LAB_00109f7b;
      }
      var_31 = var_41;
      var_33 = var_32();
      if (var_33 == var_34) {
        var_1 = 0x20;
        var_26 = 0x20;
      }
      else {
        var_1 = 0x28;
        if (var_33 == var_35) {
          var_26 = 0x28;
        }
        else {
          var_1 = 0;
          var_26 = 0;
        }
      }
    }
    else {
      if (var_9 == var_36) goto LAB_00109cae;
      var_33 = var_32();
      if (var_33 == var_34) {
        var_1 = 0xc;
        var_26 = 0xc;
      }
      else {
        var_1 = 0x14;
        if (var_33 != var_35) {
          var_1 = 0;
        }
        var_26 = 0x14;
        if (var_33 != var_35) {
          var_26 = 0;
        }
      }
    }
    var_37 = var_25(var_6,var_1,0);
    if (var_37 < 0) {
LAB_00109ba3:
      var_38(filename);
                    /* WARNING: Subroutine does not return */
      var_15(1);
    }
    var_17 = local_48[0] - var_26;
    var_41 = (type_4)(long)(int)var_17 >> 1;
    var_44 = (type_3)var_41;
    if (var_30 == (type_7 *)0x0) {
      num_histograms = 1;
      phVar10 = (type_7 *)var_39(0x20);
      var_30 = phVar10;
      phVar10->lowpc = var_40(uStack_57,var_16);
      phVar10->num_bins = var_44;
      var_8 = (var_41 & 0xffffffff) << 2;
      phVar10->highpc = var_42;
      hist_scale = (double)(var_42 - var_40(uStack_57,var_16) >> 1) / (double)(var_41 & 0xffffffff);
      piVar11 = (int *)var_39(var_8);
      phVar10->sample = piVar11;
      var_43(var_30->sample,0,var_8);
    }
    else if (((var_40(uStack_57,var_16) != var_30->lowpc) || (var_42 != var_30->highpc)) ||
            (var_30->num_bins != var_44)) {
      pcVar9 = "%s: incompatible with first gmon file\n";
      goto LAB_00109f7b;
    }
    if (((type_8)debug_level & 0x40) != 0) {
      var_45("[gmon_out_read] lowpc 0x%lx highpc 0x%lx ncnt %d\n",var_40(uStack_57,var_16),var_42,
             (type_4)local_48[0]);
      var_45("[gmon_out_read] samp_bytes %d hist_num_bins %d\n",(type_4)var_17,var_41 & 0xffffffff);
    }
    if ((-1 < (int)var_17) && (var_30->lowpc <= var_30->highpc)) {
      var_20 = (type_3)(var_44 != 0);
      if (var_44 != 0) {
        var_46 = 0;
        do {
          var_8 = var_7(raw_bin_count,2,1,var_6);
          pcVar9 = whoami;
          if (var_8 != 1) {
            pcVar12 = (char *)var_12("gprof","%s: unexpected EOF after reading %d/%d bins\n",5);
            var_14(stderr,pcVar12,pcVar9,(type_4)((int)var_46 - 1),var_41 & 0xffffffff);
                    /* WARNING: Subroutine does not return */
            var_15(1);
          }
          var_13 = (*core_bfd->xvec->bfd_getx16)(raw_bin_count);
          var_30->sample[var_46] = var_30->sample[var_46] + (int)var_13;
          var_4 = var_44 - 1 != var_46;
          var_46 = var_46 + 1;
        } while (var_4);
      }
      var_17 = 0;
      while ((var_26 = var_27((type_6 *)var_6,&from_pc), var_26 == 0 &&
             (var_26 = var_27((type_6 *)var_6,&self_pc), var_26 == 0))) {
        var_33 = var_32();
        if (var_33 == var_34) {
          var_26 = var_28((type_6 *)var_6,&profrate);
          if (var_26 != 0) break;
          var_41 = (type_4)profrate;
        }
        else {
          if ((var_33 != var_35) ||
             (var_26 = var_47((type_6 *)var_6,(type_4 *)&profrate), var_26 != 0)) break;
          var_41 = var_48(uStack_7c,profrate);
        }
        var_17 = var_17 + 1;
        if (((type_8)debug_level & 0x40) != 0) {
          var_45("[gmon_out_read] frompc 0x%lx selfpc 0x%lx count %lu\n",from_pc,self_pc,var_41);
        }
        var_49(from_pc,self_pc,var_41);
      }
      var_22 = 0;
      if (var_31 == 0) {
        var_26 = var_50();
        var_31 = (long)var_26;
        if (var_31 == 0) {
          var_31 = 1;
          pcVar9 = (char *)var_12("gprof","time is in ticks, not seconds\n",5);
          var_14(stderr,pcVar9);
        }
      }
LAB_001099b1:
      if (var_51 != var_6) {
        var_52(var_6);
      }
      var_26 = gmon_file_version;
      if (((type_8)output_style & 0x20) == 0) {
        return;
      }
      pcVar9 = (char *)var_12("gprof","File `%s\' (version %d) contains:\n",5);
      var_45(pcVar9,filename,(type_4)(type_3)var_26);
      if (var_20 == 1) {
        pcVar9 = (char *)var_12("gprof","\t%d histogram record\n",5);
      }
      else {
        pcVar9 = (char *)var_12("gprof","\t%d histogram records\n",5);
      }
      var_45(pcVar9,(type_4)var_20);
      if (var_17 == 1) {
        pcVar9 = (char *)var_12("gprof","\t%d call-graph record\n",5);
      }
      else {
        pcVar9 = (char *)var_12("gprof","\t%d call-graph records\n",5);
      }
      var_45(pcVar9,(type_4)var_17);
      if (var_22 == 1) {
        pcVar9 = (char *)var_12("gprof","\t%d basic-block count record\n",5);
      }
      else {
        pcVar9 = (char *)var_12("gprof","\t%d basic-block count records\n",5);
      }
      var_45(pcVar9,(type_4)var_22);
      first_output = 0;
      return;
    }
    pcVar9 = "%s: file \'%s\' does not appear to be in gmon.out format\n";
LAB_0010a006:
    pcVar12 = whoami;
    pcVar9 = (char *)var_12("gprof",pcVar9,5);
    var_14(stderr,pcVar9,pcVar12,filename);
                    /* WARNING: Subroutine does not return */
    var_15(1);
  }
LAB_00109f6f:
  pcVar9 = "%s: file too short to be a gmon file\n";
LAB_00109f7b:
  pcVar9 = (char *)var_12("gprof",pcVar9,5);
  var_14(stderr,pcVar9,filename);
                    /* WARNING: Subroutine does not return */
  var_15(1);
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))))) body: (compound_statement (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (unary_expression argument: (identifier)) right: (unary_expression argument: (identifier)))) right: (identifier))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)) (string_literal (string_content))))) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (number_literal) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (identifier)) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal))))) condition: (parenthesized_expression (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (unary_expression argument: (identifier)) right: (unary_expression argument: (identifier)))) right: (identifier))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (string_literal (string_content) (escape_sequence) (string_content) (escape_sequence)) (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (identifier) (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (while_statement condition: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (number_literal) (number_literal) (identifier)))) right: (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (number_literal))))) body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (string_literal (string_content) (escape_sequence)) (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))))))))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content) (escape_sequence) (string_content) (escape_sequence))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (false))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (identifier)) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal))))) condition: (parenthesized_expression (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (unary_expression argument: (identifier)) right: (unary_expression argument: (identifier)))) right: (identifier))) consequence: (goto_statement label: (statement_identifier)))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (binary_expression left: (identifier) right: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (string_literal (string_content) (escape_sequence) (string_content) (escape_sequence)) (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier))))) right: (binary_expression left: (identifier) right: (number_literal)))))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) right: (binary_expression left: (identifier) right: (number_literal)))))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier))))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (identifier)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content) (escape_sequence)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) right: (number_literal)))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))) (number_literal) (identifier))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))) right: (pointer_expression argument: (identifier)))) right: (parenthesized_expression (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))))) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (identifier))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content) (escape_sequence)))) (goto_statement label: (statement_identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content) (escape_sequence)) (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))) (identifier) (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content) (escape_sequence)) (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (subscript_expression argument: (identifier) index: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (number_literal) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (string_literal (string_content) (escape_sequence)) (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (while_statement condition: (parenthesized_expression (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier))))) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier))))) right: (binary_expression left: (identifier) right: (number_literal)))))))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier))))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content) (escape_sequence)) (identifier) (identifier) (identifier)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (string_literal (string_content) (escape_sequence)) (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (return_statement))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (string_literal (string_content) (escape_sequence) (string_content) (escape_sequence)) (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (string_literal (escape_sequence) (string_content) (escape_sequence)) (number_literal))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (string_literal (escape_sequence) (string_content) (escape_sequence)) (number_literal))))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (string_literal (escape_sequence) (string_content) (escape_sequence)) (number_literal))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (string_literal (escape_sequence) (string_content) (escape_sequence)) (number_literal))))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (string_literal (escape_sequence) (string_content) (escape_sequence)) (number_literal))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (string_literal (escape_sequence) (string_content) (escape_sequence)) (number_literal))))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (return_statement))) (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content) (escape_sequence) (string_content) (escape_sequence) (string_content) (escape_sequence)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (identifier) (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal)))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content) (escape_sequence))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (identifier) (number_literal))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal)))))))

void MASKED(byte *param_1)

{
  int *piVar1;
  uint uVar2;
  int iVar3;
  int iVar4;
  uint uVar5;
  size_t sVar6;
  ulong uVar7;
  FILE *__stream;
  char *pcVar8;
  ulong *puVar9;
  ulong uVar10;
  long lVar11;
  undefined8 uVar12;
  byte *pbVar13;
  byte *pbVar14;
  bool bVar15;
  bool bVar16;
  byte bVar17;
  uint local_a8;
  uint local_a4;
  undefined1 local_96 [2];
  int local_94;
  undefined8 local_90;
  undefined8 local_88;
  uint local_80;
  undefined4 uStack_7c;
  byte local_78 [4];
  undefined1 local_74 [28];
  byte local_58;
  undefined7 uStack_57;
  ulong local_50;
  uint local_48 [6];
  
  bVar17 = 0;
  lVar11 = 2;
  bVar15 = &stack0xffffffffffffffd0 < (undefined1 *)0x78;
  bVar16 = &stack0x00000000 == (undefined1 *)0xa8;
  pbVar13 = param_1;
  pbVar14 = &DAT_001110e7;
  do {
    if (lVar11 == 0) break;
    lVar11 = lVar11 + -1;
    bVar15 = *pbVar13 < *pbVar14;
    bVar16 = *pbVar13 == *pbVar14;
    pbVar13 = pbVar13 + 1;
    pbVar14 = pbVar14 + 1;
  } while (bVar16);
  __stream = stdin;
  if (((!bVar15 && !bVar16) != bVar15) &&
     (__stream = fopen((char *)param_1,"r"), __stream == (FILE *)0x0)) goto LAB_00109ba3;
  sVar6 = fread(local_78,0x14,1,__stream);
  uVar12 = DAT_00119b10;
  uVar5 = DAT_001195c0;
  if (sVar6 != 1) goto LAB_00109f6f;
  bVar15 = DAT_001195c0 == 0;
  bVar16 = DAT_001195c0 == 1;
  if (bVar16) {
    lVar11 = 4;
    pbVar13 = local_78;
    pbVar14 = &DAT_001110e9;
    do {
      if (lVar11 == 0) break;
      lVar11 = lVar11 + -1;
      bVar15 = *pbVar13 < *pbVar14;
      bVar16 = *pbVar13 == *pbVar14;
      pbVar13 = pbVar13 + (ulong)bVar17 * -2 + 1;
      pbVar14 = pbVar14 + (ulong)bVar17 * -2 + 1;
    } while (bVar16);
    if ((!bVar15 && !bVar16) == bVar15) {
LAB_001099fe:
      uVar5 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x38))(local_74);
      uVar12 = DAT_00119b10;
      DAT_001195b4 = uVar5;
      if (1 < uVar5) {
        pcVar8 = (char *)dcgettext("gprof","%s: file `%s\' has unsupported version %d\n",5);
        uVar7 = (ulong)uVar5;
LAB_00109f08:
        fprintf(stderr,pcVar8,uVar12,param_1,uVar7);
                    /* WARNING: Subroutine does not return */
        FUN_0010a4c0(1);
      }
      local_a8 = 0;
      uVar5 = 0;
      local_a4 = 0;
      while (sVar6 = fread(&local_58,1,1,__stream), uVar12 = DAT_00119b10, sVar6 == 1) {
        if (local_58 == 1) {
          uVar5 = uVar5 + 1;
          DAT_001195b8 = DAT_001195b8 | 2;
          FUN_001041c0(__stream,param_1);
        }
        else if (local_58 == 0) {
          local_a4 = local_a4 + 1;
          DAT_001195b8 = DAT_001195b8 | 1;
          FUN_0010b590(__stream,param_1);
        }
        else {
          if (local_58 != 2) {
            pcVar8 = (char *)dcgettext("gprof","%s: %s: found bad tag %d (file corrupted?)\n",5);
            uVar7 = (ulong)local_58;
            goto LAB_00109f08;
          }
          local_a8 = local_a8 + 1;
          DAT_001195b8 = DAT_001195b8 | 4;
          FUN_001034d0(__stream,param_1);
        }
      }
      goto LAB_001099b1;
    }
LAB_00109cae:
    pcVar8 = "%s: file `%s\' has bad magic cookie\n";
    goto LAB_0010a006;
  }
  bVar15 = false;
  bVar16 = DAT_001195c0 == 0;
  if (bVar16) {
    lVar11 = 4;
    pbVar13 = local_78;
    pbVar14 = &DAT_001110e9;
    do {
      if (lVar11 == 0) break;
      lVar11 = lVar11 + -1;
      bVar15 = *pbVar13 < *pbVar14;
      bVar16 = *pbVar13 == *pbVar14;
      pbVar13 = pbVar13 + (ulong)bVar17 * -2 + 1;
      pbVar14 = pbVar14 + (ulong)bVar17 * -2 + 1;
    } while (bVar16);
    if ((!bVar15 && !bVar16) == bVar15) goto LAB_001099fe;
  }
  else if (1 < DAT_001195c0 - 2) {
    pcVar8 = (char *)dcgettext("gprof","%s: don\'t know how to deal with file format %d\n",5);
    fprintf(stderr,pcVar8,uVar12,(ulong)uVar5);
                    /* WARNING: Subroutine does not return */
    FUN_0010a4c0(1);
  }
  DAT_001195b8 = 3;
  iVar3 = fseek(__stream,0,0);
  if (iVar3 < 0) goto LAB_00109ba3;
  iVar3 = FUN_00109550(__stream,&local_58);
  if ((((iVar3 == 0) && (iVar3 = FUN_00109550(__stream,&local_50), iVar3 == 0)) &&
      (iVar3 = FUN_00109500(__stream,local_48), iVar3 == 0)) &&
     (iVar3 = FUN_00109500(__stream,&local_94), iVar3 == 0)) {
    if (local_94 == 0x51879) {
      iVar3 = FUN_00109500(__stream,&local_80);
      if (iVar3 != 0) goto LAB_00109f6f;
      uVar7 = (ulong)local_80;
      if ((DAT_00119b18 != (ulong *)0x0) &&
         (uVar7 = DAT_001195e8, (long)(int)local_80 != DAT_001195e8)) {
        pcVar8 = "%s: profiling rate incompatible with first gmon file\n";
        goto LAB_00109f7b;
      }
      DAT_001195e8 = uVar7;
      iVar3 = FUN_00109420();
      if (iVar3 == 0) {
        lVar11 = 0x20;
        iVar3 = 0x20;
      }
      else {
        lVar11 = 0x28;
        if (iVar3 == 1) {
          iVar3 = 0x28;
        }
        else {
          lVar11 = 0;
          iVar3 = 0;
        }
      }
    }
    else {
      if (DAT_001195c0 == 3) goto LAB_00109cae;
      iVar4 = FUN_00109420();
      if (iVar4 == 0) {
        lVar11 = 0xc;
        iVar3 = 0xc;
      }
      else {
        lVar11 = 0x14;
        if (iVar4 != 1) {
          lVar11 = 0;
        }
        iVar3 = 0x14;
        if (iVar4 != 1) {
          iVar3 = 0;
        }
      }
    }
    iVar4 = fseek(__stream,lVar11,0);
    if (iVar4 < 0) {
LAB_00109ba3:
      perror((char *)param_1);
                    /* WARNING: Subroutine does not return */
      FUN_0010a4c0(1);
    }
    uVar5 = local_48[0] - iVar3;
    uVar7 = (ulong)(long)(int)uVar5 >> 1;
    iVar3 = (int)uVar7;
    if (DAT_00119b18 == (ulong *)0x0) {
      DAT_00119b20 = 1;
      puVar9 = (ulong *)xmalloc(0x20);
      DAT_00119b18 = puVar9;
      *puVar9 = CONCAT71(uStack_57,local_58);
      *(int *)(puVar9 + 2) = iVar3;
      sVar6 = (uVar7 & 0xffffffff) << 2;
      puVar9[1] = local_50;
      DAT_00119b28 = (double)(local_50 - CONCAT71(uStack_57,local_58) >> 1) /
                     (double)(uVar7 & 0xffffffff);
      uVar10 = xmalloc(sVar6);
      puVar9[3] = uVar10;
      memset((void *)DAT_00119b18[3],0,sVar6);
    }
    else if (((CONCAT71(uStack_57,local_58) != *DAT_00119b18) || (local_50 != DAT_00119b18[1])) ||
            ((int)DAT_00119b18[2] != iVar3)) {
      pcVar8 = "%s: incompatible with first gmon file\n";
      goto LAB_00109f7b;
    }
    if (((byte)DAT_001195e4 & 0x40) != 0) {
      printf("[gmon_out_read] lowpc 0x%lx highpc 0x%lx ncnt %d\n",CONCAT71(uStack_57,local_58),
             local_50,(ulong)local_48[0]);
      printf("[gmon_out_read] samp_bytes %d hist_num_bins %d\n",(ulong)uVar5,uVar7 & 0xffffffff);
    }
    if ((-1 < (int)uVar5) && (*DAT_00119b18 <= DAT_00119b18[1])) {
      local_a4 = (uint)(iVar3 != 0);
      if (iVar3 != 0) {
        uVar10 = 0;
        do {
          sVar6 = fread(local_96,2,1,__stream);
          uVar12 = DAT_00119b10;
          if (sVar6 != 1) {
            pcVar8 = (char *)dcgettext("gprof","%s: unexpected EOF after reading %d/%d bins\n",5);
            fprintf(stderr,pcVar8,uVar12,(ulong)((int)uVar10 - 1),uVar7 & 0xffffffff);
                    /* WARNING: Subroutine does not return */
            FUN_0010a4c0(1);
          }
          iVar4 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x50))(local_96);
          piVar1 = (int *)(DAT_00119b18[3] + uVar10 * 4);
          *piVar1 = *piVar1 + iVar4;
          bVar15 = iVar3 - 1 != uVar10;
          uVar10 = uVar10 + 1;
        } while (bVar15);
      }
      uVar5 = 0;
      while ((iVar3 = FUN_00109550(__stream,&local_90), iVar3 == 0 &&
             (iVar3 = FUN_00109550(__stream,&local_88), iVar3 == 0))) {
        iVar3 = FUN_00109420();
        if (iVar3 == 0) {
          iVar3 = FUN_00109500(__stream,&local_80);
          if (iVar3 != 0) break;
          uVar7 = (ulong)local_80;
        }
        else {
          if ((iVar3 != 1) || (iVar3 = FUN_001093d0(__stream,&local_80), iVar3 != 0)) break;
          uVar7 = CONCAT44(uStack_7c,local_80);
        }
        uVar5 = uVar5 + 1;
        if (((byte)DAT_001195e4 & 0x40) != 0) {
          printf("[gmon_out_read] frompc 0x%lx selfpc 0x%lx count %lu\n",local_90,local_88,uVar7);
        }
        FUN_001040b0(local_90,local_88,uVar7);
      }
      local_a8 = 0;
      if (DAT_001195e8 == 0) {
        iVar3 = FUN_0010a4d0();
        DAT_001195e8 = (ulong)iVar3;
        if (DAT_001195e8 == 0) {
          DAT_001195e8 = 1;
          pcVar8 = (char *)dcgettext("gprof","time is in ticks, not seconds\n",5);
          fprintf(stderr,pcVar8);
        }
      }
LAB_001099b1:
      if (stdin != __stream) {
        fclose(__stream);
      }
      uVar2 = DAT_001195b4;
      if (((byte)DAT_001195e0 & 0x20) == 0) {
        return;
      }
      pcVar8 = (char *)dcgettext("gprof","File `%s\' (version %d) contains:\n",5);
      printf(pcVar8,param_1,(ulong)uVar2);
      if (local_a4 == 1) {
        pcVar8 = (char *)dcgettext("gprof","\t%d histogram record\n",5);
      }
      else {
        pcVar8 = (char *)dcgettext("gprof","\t%d histogram records\n",5);
      }
      printf(pcVar8,(ulong)local_a4);
      if (uVar5 == 1) {
        pcVar8 = (char *)dcgettext("gprof","\t%d call-graph record\n",5);
      }
      else {
        pcVar8 = (char *)dcgettext("gprof","\t%d call-graph records\n",5);
      }
      printf(pcVar8,(ulong)uVar5);
      if (local_a8 == 1) {
        pcVar8 = (char *)dcgettext("gprof","\t%d basic-block count record\n",5);
      }
      else {
        pcVar8 = (char *)dcgettext("gprof","\t%d basic-block count records\n",5);
      }
      printf(pcVar8,(ulong)local_a8);
      DAT_001182d8 = 0;
      return;
    }
    pcVar8 = "%s: file \'%s\' does not appear to be in gmon.out format\n";
LAB_0010a006:
    uVar12 = DAT_00119b10;
    pcVar8 = (char *)dcgettext("gprof",pcVar8,5);
    fprintf(stderr,pcVar8,uVar12,param_1);
                    /* WARNING: Subroutine does not return */
    FUN_0010a4c0(1);
  }
LAB_00109f6f:
  pcVar8 = "%s: file too short to be a gmon file\n";
LAB_00109f7b:
  pcVar8 = (char *)dcgettext("gprof",pcVar8,5);
  fprintf(stderr,pcVar8,param_1);
                    /* WARNING: Subroutine does not return */
  FUN_0010a4c0(1);
}

