
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
/* WARNING: Unknown calling convention -- yet parameter storage is locked */

void hist_print(void)

{
  double dVar1;
  double dVar2;
  uint uVar3;
  float fVar4;
  double dVar5;
  double dVar6;
  bfd_vma address;
  int *__base;
  int *piVar7;
  double *pdVar8;
  char *pcVar9;
  undefined4 uVar10;
  undefined4 uVar11;
  undefined4 uVar12;
  undefined4 uVar13;
  Sym *pSVar14;
  int *piVar15;
  int iVar16;
  int iVar17;
  uint uVar18;
  ulonglong local_a4;
  uint local_84;
  char unit [64];
  
  if (first_output == 0) {
    puts("\f");
  }
  else {
    first_output = 0;
  }
  accum_time = 0.0;
  if (bsd_style_output == 0) {
    pcVar9 = (char *)dcgettext("gprof","Flat profile:\n",5);
    printf(pcVar9);
  }
  else if (print_descriptions != 0) {
    pcVar9 = (char *)dcgettext("gprof","\n\n\nflat profile:\n",5);
    printf(pcVar9);
    flat_blurb(*(FILE **)PTR_stdout_0002cfec);
  }
  __base = (int *)xmalloc(symtab.len << 2);
  uVar18 = symtab.len;
  if (symtab.len != 0) {
    piVar15 = __base + symtab.len;
    piVar7 = __base;
    pSVar14 = symtab.base;
    do {
      *piVar7 = (int)pSVar14;
      piVar7 = piVar7 + 1;
      pSVar14 = pSVar14 + 1;
    } while (piVar15 != piVar7);
  }
  qsort(__base,uVar18,4,cmp_time);
  if (bsd_style_output != 0) {
    local_84 = 5;
    iVar16 = 0x6d;
    goto LAB_0001ba65;
  }
  local_84 = symtab.len;
  if (symtab.len == 0) {
LAB_0001beb2:
    iVar16 = 0x54;
  }
  else {
    iVar16 = 0;
    dVar1 = 0.0;
    piVar15 = __base;
    do {
      iVar17 = *piVar15;
      if (*(uint *)(iVar17 + 0x20) != 0) {
        local_a4 = (ulonglong)*(uint *)(iVar17 + 0x20);
        dVar2 = (*(double *)(iVar17 + 0xa8) + *(double *)(iVar17 + 0xbc)) / (double)local_a4;
        if (dVar1 < dVar2) {
          dVar1 = dVar2;
          iVar16 = iVar17;
        }
      }
      piVar15 = piVar15 + 1;
    } while (__base + symtab.len != piVar15);
    if (iVar16 != 0) {
      if (*(int *)(iVar16 + 0x20) == 0) {
        local_84 = 0;
        goto LAB_0001beb2;
      }
      if (0.0 < dVar1) {
        local_84 = 0;
        pdVar8 = &SItab[1].scale;
        dVar2 = DAT_00023e30;
        while( true ) {
          dVar2 = dVar2 * (dVar1 / (double)hz);
          if ((1.0 <= dVar2) && (dVar2 < (double)DAT_00023e2c)) {
            iVar16 = (int)SItab[local_84].prefix;
            goto LAB_0001ba65;
          }
          local_84 = local_84 + 1;
          if (local_84 == 0xb) break;
          dVar2 = *pdVar8;
          pdVar8 = (double *)((int)pdVar8 + 0xc);
        }
        iVar16 = 0;
        goto LAB_0001ba65;
      }
    }
    iVar16 = 0x54;
    local_84 = 0;
  }
LAB_0001ba65:
  iVar17 = (int)hist_dimension_abbrev;
  pcVar9 = (char *)dcgettext("gprof","%c%c/call",5);
  sprintf(unit,pcVar9,iVar16,iVar17);
  if (bsd_style_output == 0) {
    fVar4 = DAT_00023e28 / (float)hz;
    pcVar9 = (char *)dcgettext("gprof","\nEach sample counts as %g %s.\n",5);
    printf(pcVar9,SUB84((double)fVar4,0),(int)((ulonglong)(double)fVar4 >> 0x20),hist_dimension);
  }
  else {
    dVar1 = ROUND(hist_scale);
    pcVar9 = (char *)dcgettext("gprof","\ngranularity: each sample hit covers %ld byte(s)",5);
    printf(pcVar9,(int)dVar1 * 2);
    dVar1 = total_time;
    if (0.0 < total_time) {
      dVar2 = total_time / (double)hz;
      pcVar9 = (char *)dcgettext("gprof"," for %.2f%% of %.2f %s\n\n",5);
      printf(pcVar9,SUB84((double)_DAT_000221d8 / dVar1,0),
             (int)((ulonglong)((double)_DAT_000221d8 / dVar1) >> 0x20),SUB84(dVar2,0),
             (int)((ulonglong)dVar2 >> 0x20),hist_dimension);
    }
  }
  if (total_time <= 0.0) {
    pcVar9 = (char *)dcgettext("gprof"," no time accumulated\n\n",5);
    printf(pcVar9);
    total_time = 1.0;
  }
  uVar10 = dcgettext("gprof","total ",5);
  uVar11 = dcgettext("gprof","self  ",5);
  uVar12 = dcgettext("gprof","self  ",5);
  uVar13 = dcgettext("gprof","cumulative",5);
  printf("%5.5s %10.10s %8.8s %8.8s %8.8s %8.8s  %-8.8s\n",&DAT_00023d2f,uVar13,uVar12,"",uVar11,
         uVar10,"");
  uVar10 = dcgettext("gprof",&DAT_000229c1,5);
  uVar11 = dcgettext("gprof","calls",5);
  uVar12 = dcgettext("gprof",&DAT_000229d8,5);
  uVar18 = 0;
  printf("%5.5s %9.9s  %8.8s %8.8s %8.8s %8.8s  %-8.8s\n",uVar12,hist_dimension,hist_dimension,
         uVar11,unit,unit,uVar10);
  if (symtab.len != 0) {
    do {
      while( true ) {
        address = *(bfd_vma *)__base[uVar18];
        pSVar14 = sym_lookup(syms + 4,*(bfd_vma *)__base[uVar18]);
        if (pSVar14 == (Sym *)0x0) break;
LAB_0001bc00:
        dVar1 = SItab[local_84].scale;
        pSVar14 = (Sym *)__base[uVar18];
        dVar2 = (pSVar14->hist).time;
        if (((ignore_zeros == 0) || (pSVar14->ncalls != 0)) || (dVar2 != 0.0)) {
          accum_time = accum_time + dVar2;
          dVar5 = dVar2 / (double)hz;
          dVar6 = accum_time / (double)hz;
          uVar12 = SUB84(dVar5,0);
          uVar13 = (undefined4)((ulonglong)dVar5 >> 0x20);
          uVar10 = SUB84(dVar6,0);
          uVar11 = (undefined4)((ulonglong)dVar6 >> 0x20);
          if (bsd_style_output == 0) {
            if (total_time <= 0.0) {
              dVar2 = 0.0;
            }
            else {
              dVar2 = (dVar2 * (double)_DAT_000221d8) / total_time;
            }
            printf("%6.2f %9.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11,
                   uVar12,uVar13);
          }
          else {
            if (total_time <= 0.0) {
              dVar2 = 0.0;
            }
            else {
              dVar2 = (dVar2 * (double)_DAT_000221d8) / total_time;
            }
            printf("%5.1f %10.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11
                   ,uVar12,uVar13);
          }
          uVar3 = pSVar14->ncalls;
          if (uVar3 == 0) {
            printf(" %8.8s %8.8s %8.8s  ","","","");
          }
          else {
            dVar2 = (pSVar14->hist).time;
            dVar5 = ((((pSVar14->cg).child_time + dVar2) * dVar1) / (double)hz) / (double)uVar3;
            dVar1 = ((dVar1 * dVar2) / (double)hz) / (double)uVar3;
            printf(" %8lu %8.2f %8.2f  ",uVar3,SUB84(dVar1,0),(int)((ulonglong)dVar1 >> 0x20),
                   SUB84(dVar5,0),(int)((ulonglong)dVar5 >> 0x20),uVar13);
          }
          if (bsd_style_output == 0) {
            print_name_only(pSVar14);
          }
          else {
            print_name(pSVar14);
          }
          putchar(10);
        }
LAB_0001bd38:
        uVar18 = uVar18 + 1;
        if (symtab.len <= uVar18) goto LAB_0001bda0;
      }
      if (syms[4].len != 0) goto LAB_0001bd38;
      pSVar14 = sym_lookup(syms + 5,address);
      if (pSVar14 == (Sym *)0x0) goto LAB_0001bc00;
      uVar18 = uVar18 + 1;
    } while (uVar18 < symtab.len);
  }
LAB_0001bda0:
  free(__base);
  if ((print_descriptions != 0) && (bsd_style_output == 0)) {
    flat_blurb(*(FILE **)PTR_stdout_0002cfec);
    return;
  }
  return;
}



/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

void FUN_0001b8a0(void)

{
  double dVar1;
  double dVar2;
  uint uVar3;
  float fVar4;
  double dVar5;
  double dVar6;
  size_t __nmemb;
  int *__base;
  int *piVar7;
  double *pdVar8;
  char *pcVar9;
  undefined4 uVar10;
  undefined4 uVar11;
  undefined4 uVar12;
  undefined4 uVar13;
  int iVar14;
  int *piVar15;
  int iVar16;
  uint uVar17;
  ulonglong local_a4;
  size_t local_84;
  char local_5c [72];
  undefined4 uStack_14;
  
  uStack_14 = 0x1b8a9;
  if (DAT_0002d1b8 == 0) {
    puts("\f");
  }
  else {
    DAT_0002d1b8 = 0;
  }
  DAT_0002e170 = 0.0;
  if (DAT_0002e150 == 0) {
    pcVar9 = (char *)dcgettext("gprof","Flat profile:\n",5);
    printf(pcVar9);
  }
  else if (DAT_0002d1bc != 0) {
    pcVar9 = (char *)dcgettext("gprof","\n\n\nflat profile:\n",5);
    printf(pcVar9);
    FUN_0001f820(*(undefined4 *)PTR_stdout_0002cfec);
  }
  __base = (int *)xmalloc(DAT_0002e520 << 2);
  __nmemb = DAT_0002e520;
  if (DAT_0002e520 != 0) {
    piVar15 = __base + DAT_0002e520;
    piVar7 = __base;
    iVar14 = DAT_0002e524;
    do {
      *piVar7 = iVar14;
      piVar7 = piVar7 + 1;
      iVar14 = iVar14 + 0xfc;
    } while (piVar15 != piVar7);
  }
  qsort(__base,__nmemb,4,FUN_0001ae50);
  if (DAT_0002e150 != 0) {
    local_84 = 5;
    iVar14 = 0x6d;
    goto LAB_0001ba65;
  }
  local_84 = DAT_0002e520;
  if (DAT_0002e520 == 0) {
LAB_0001beb2:
    iVar14 = 0x54;
  }
  else {
    iVar14 = 0;
    dVar1 = 0.0;
    piVar15 = __base;
    do {
      iVar16 = *piVar15;
      if (*(uint *)(iVar16 + 0x20) != 0) {
        local_a4 = (ulonglong)*(uint *)(iVar16 + 0x20);
        dVar2 = (*(double *)(iVar16 + 0xa8) + *(double *)(iVar16 + 0xbc)) / (double)local_a4;
        if (dVar1 < dVar2) {
          dVar1 = dVar2;
          iVar14 = iVar16;
        }
      }
      piVar15 = piVar15 + 1;
    } while (__base + DAT_0002e520 != piVar15);
    if (iVar14 != 0) {
      if (*(int *)(iVar14 + 0x20) == 0) {
        local_84 = 0;
        goto LAB_0001beb2;
      }
      if (0.0 < dVar1) {
        local_84 = 0;
        pdVar8 = (double *)&DAT_00023db0;
        dVar2 = DAT_00023e30;
        while( true ) {
          dVar2 = dVar2 * (dVar1 / (double)DAT_0002e15c);
          if ((1.0 <= dVar2) && (dVar2 < (double)DAT_00023e2c)) {
            iVar14 = (int)(char)(&DAT_00023da0)[local_84 * 0xc];
            goto LAB_0001ba65;
          }
          local_84 = local_84 + 1;
          if (local_84 == 0xb) break;
          dVar2 = *pdVar8;
          pdVar8 = (double *)((int)pdVar8 + 0xc);
        }
        iVar14 = 0;
        goto LAB_0001ba65;
      }
    }
    iVar14 = 0x54;
    local_84 = 0;
  }
LAB_0001ba65:
  iVar16 = (int)DAT_0002d4a4;
  pcVar9 = (char *)dcgettext("gprof","%c%c/call",5);
  sprintf(local_5c,pcVar9,iVar14,iVar16);
  if (DAT_0002e150 == 0) {
    fVar4 = DAT_00023e28 / (float)DAT_0002e15c;
    pcVar9 = (char *)dcgettext("gprof","\nEach sample counts as %g %s.\n",5);
    printf(pcVar9,SUB84((double)fVar4,0),(int)((ulonglong)(double)fVar4 >> 0x20),s_seconds_0002d4a8)
    ;
  }
  else {
    dVar1 = ROUND(DAT_0002e518);
    pcVar9 = (char *)dcgettext("gprof","\ngranularity: each sample hit covers %ld byte(s)",5);
    printf(pcVar9,(int)dVar1 * 2);
    dVar1 = DAT_0002e168;
    if (0.0 < DAT_0002e168) {
      dVar2 = DAT_0002e168 / (double)DAT_0002e15c;
      pcVar9 = (char *)dcgettext("gprof"," for %.2f%% of %.2f %s\n\n",5);
      printf(pcVar9,SUB84((double)_DAT_000221d8 / dVar1,0),
             (int)((ulonglong)((double)_DAT_000221d8 / dVar1) >> 0x20),SUB84(dVar2,0),
             (int)((ulonglong)dVar2 >> 0x20),s_seconds_0002d4a8);
    }
  }
  if (DAT_0002e168 <= 0.0) {
    pcVar9 = (char *)dcgettext("gprof"," no time accumulated\n\n",5);
    printf(pcVar9);
    DAT_0002e168 = 1.0;
  }
  uVar10 = dcgettext("gprof","total ",5);
  uVar11 = dcgettext("gprof","self  ",5);
  uVar12 = dcgettext("gprof","self  ",5);
  uVar13 = dcgettext("gprof","cumulative",5);
  printf("%5.5s %10.10s %8.8s %8.8s %8.8s %8.8s  %-8.8s\n",&DAT_00023d2f,uVar13,uVar12,"",uVar11,
         uVar10,"");
  uVar10 = dcgettext("gprof",&DAT_000229c1,5);
  uVar11 = dcgettext("gprof","calls",5);
  uVar12 = dcgettext("gprof",&DAT_000229d8,5);
  uVar17 = 0;
  printf("%5.5s %9.9s  %8.8s %8.8s %8.8s %8.8s  %-8.8s\n",uVar12,s_seconds_0002d4a8,
         s_seconds_0002d4a8,uVar11,local_5c,local_5c,uVar10);
  if (DAT_0002e520 != 0) {
    do {
      while( true ) {
        uVar10 = *(undefined4 *)__base[uVar17];
        uVar11 = ((undefined4 *)__base[uVar17])[1];
        iVar14 = FUN_0001d480(&DAT_0002e570,uVar10,uVar11);
        if (iVar14 == 0) break;
LAB_0001bc00:
        dVar1 = *(double *)(&UNK_00023da4 + local_84 * 0xc);
        iVar14 = __base[uVar17];
        dVar2 = *(double *)(iVar14 + 0xa8);
        if (((DAT_0002d1c0 == 0) || (*(int *)(iVar14 + 0x20) != 0)) || (dVar2 != 0.0)) {
          DAT_0002e170 = DAT_0002e170 + dVar2;
          dVar5 = dVar2 / (double)DAT_0002e15c;
          dVar6 = DAT_0002e170 / (double)DAT_0002e15c;
          uVar12 = SUB84(dVar5,0);
          uVar13 = (undefined4)((ulonglong)dVar5 >> 0x20);
          uVar10 = SUB84(dVar6,0);
          uVar11 = (undefined4)((ulonglong)dVar6 >> 0x20);
          if (DAT_0002e150 == 0) {
            if (DAT_0002e168 <= 0.0) {
              dVar2 = 0.0;
            }
            else {
              dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;
            }
            printf("%6.2f %9.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11,
                   uVar12,uVar13);
          }
          else {
            if (DAT_0002e168 <= 0.0) {
              dVar2 = 0.0;
            }
            else {
              dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;
            }
            printf("%5.1f %10.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11
                   ,uVar12,uVar13);
          }
          uVar3 = *(uint *)(iVar14 + 0x20);
          if (uVar3 == 0) {
            printf(" %8.8s %8.8s %8.8s  ","","","");
          }
          else {
            dVar2 = (((*(double *)(iVar14 + 0xbc) + *(double *)(iVar14 + 0xa8)) * dVar1) /
                    (double)DAT_0002e15c) / (double)uVar3;
            dVar1 = ((dVar1 * *(double *)(iVar14 + 0xa8)) / (double)DAT_0002e15c) / (double)uVar3;
            printf(" %8lu %8.2f %8.2f  ",uVar3,SUB84(dVar1,0),(int)((ulonglong)dVar1 >> 0x20),
                   SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar13);
          }
          if (DAT_0002e150 == 0) {
            FUN_0001df00(iVar14);
          }
          else {
            FUN_0001e170(iVar14);
          }
          putchar(10);
        }
LAB_0001bd38:
        uVar17 = uVar17 + 1;
        if (DAT_0002e520 <= uVar17) goto LAB_0001bda0;
      }
      if (DAT_0002e570 != 0) goto LAB_0001bd38;
      iVar14 = FUN_0001d480(&DAT_0002e57c,uVar10,uVar11);
      if (iVar14 == 0) goto LAB_0001bc00;
      uVar17 = uVar17 + 1;
    } while (uVar17 < DAT_0002e520);
  }
LAB_0001bda0:
  free(__base);
  if ((DAT_0002d1bc != 0) && (DAT_0002e150 == 0)) {
    FUN_0001f820(*(undefined4 *)PTR_stdout_0002cfec);
    return;
  }
  return;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00013030
ADD EBX,0x11757
SUB ESP,0x9c
LEA EAX,[EBX + 0x1b8]
MOV EDX,dword ptr [EAX]
TEST EDX,EDX
JZ 0x0001bfa8
MOV dword ptr [EAX],0x0
LEA EAX,[EBX + 0x1150]
FLDZ
FSTP qword ptr [EBX + 0x1170]
MOV dword ptr [ESP + 0x10],EAX
MOV EAX,dword ptr [EAX]
TEST EAX,EAX
JZ 0x0001bf70
LEA EAX,[EBX + 0x1bc]
LEA EDI,[EBX + 0xffff500c]
MOV dword ptr [ESP + 0x3c],EAX
MOV EAX,dword ptr [EAX]
TEST EAX,EAX
JNZ 0x0001be78
LEA ESI,[EBX + 0x1520]
SUB ESP,0xc
MOV EAX,dword ptr [ESI]
MOV dword ptr [ESP + 0x20],ESI
MOV dword ptr [ESP + 0x10],EAX
SHL EAX,0x2
PUSH EAX
CALL 0x000121d0
MOV ECX,ESI
MOV ESI,dword ptr [ESI]
MOV dword ptr [ESP + 0x14],EAX
ADD ESP,0x10
TEST ESI,ESI
JZ 0x0001b947
MOV EDX,dword ptr [ECX + 0x4]
LEA ECX,[EAX + ESI*0x4]
LEA ESI,[ESI]
MOV dword ptr [EAX],EDX
ADD EAX,0x4
ADD EDX,0xfc
CMP ECX,EAX
JNZ 0x0001b938
LEA EAX,[EBX + 0xfffede50]
PUSH EAX
PUSH 0x4
PUSH ESI
MOV ESI,dword ptr [ESP + 0x10]
PUSH ESI
CALL 0x00012420
MOV EAX,dword ptr [ESP + 0x20]
ADD ESP,0x10
MOV EBP,dword ptr [EAX]
TEST EBP,EBP
JNZ 0x0001ba58
MOV EAX,dword ptr [ESP + 0x14]
MOV EAX,dword ptr [EAX]
MOV dword ptr [ESP + 0x28],EAX
TEST EAX,EAX
JZ 0x0001beb2
MOV dword ptr [ESP + 0x18],0x0
MOV EDX,ESI
FLDZ
LEA ESI,[ESI + EAX*0x4]
LEA ESI,[ESI]
MOV ECX,dword ptr [EDX]
MOV EAX,dword ptr [ECX + 0x20]
TEST EAX,EAX
JZ 0x0001b9ca
FLD qword ptr [ECX + 0xa8]
FADD qword ptr [ECX + 0xbc]
MOV dword ptr [ESP + 0x8],EAX
MOV dword ptr [ESP + 0xc],0x0
FILD qword ptr [ESP + 0x8]
FDIVP
FCOMI ST0,ST1
JBE 0x0001b9c8
FSTP ST1
MOV dword ptr [ESP + 0x18],ECX
JMP 0x0001b9ca
FSTP ST0
ADD EDX,0x4
CMP ESI,EDX
JNZ 0x0001b990
MOV EAX,dword ptr [ESP + 0x18]
TEST EAX,EAX
JZ 0x0001c03e
MOV EAX,dword ptr [EAX + 0x20]
MOV dword ptr [ESP + 0x28],EAX
TEST EAX,EAX
JZ 0x0001beb0
FLDZ
FXCH
FCOMI ST0,ST1
FSTP ST1
JBE 0x0001c042
LEA EAX,[EBX + 0x115c]
XOR EDX,EDX
FILD dword ptr [EAX]
LEA EAX,[EBX + 0xffff6db0]
FDIVP
FLD qword ptr [EBX + 0xffff6e30]
JMP 0x0001ba1d
FLD qword ptr [EAX]
ADD EAX,0xc
FMUL ST1
FLD1
FXCH
FCOMI ST0,ST1
FSTP ST1
JC 0x0001ba40
FLD dword ptr [EBX + 0xffff6e2c]
FCOMIP ST0,ST1
FSTP ST0
JA 0x0001c056
JMP 0x0001ba42
FSTP ST0
ADD EDX,0x1
CMP EDX,0xb
JNZ 0x0001ba18
FSTP ST0
MOV dword ptr [ESP + 0x28],EDX
JMP 0x0001ba65
MOV dword ptr [ESP + 0x28],0x5
MOV EBP,0x6d
SUB ESP,0x4
LEA EAX,[EBX + 0xffff6cdc]
MOVSX ESI,byte ptr [EBX + 0x4a4]
PUSH 0x5
PUSH EAX
PUSH EDI
CALL 0x00012120
PUSH ESI
PUSH EBP
PUSH EAX
LEA EBP,[ESP + 0x6c]
PUSH EBP
CALL 0x00012400
ADD ESP,0x20
MOV EAX,dword ptr [ESP + 0x10]
MOV ESI,dword ptr [EAX]
TEST ESI,ESI
JNZ 0x0001bdd8
LEA EAX,[EBX + 0x115c]
SUB ESP,0x4
FILD dword ptr [EAX]
FDIVR dword ptr [EBX + 0xffff6e28]
LEA EAX,[EBX + 0xffff6a98]
FSTP qword ptr [ESP + 0xc]
PUSH 0x5
PUSH EAX
PUSH EDI
CALL 0x00012120
LEA EDX,[EBX + 0x4a8]
MOV dword ptr [ESP + 0x30],EDX
PUSH EDX
FLD qword ptr [ESP + 0x1c]
SUB ESP,0x8
FSTP qword ptr [ESP]
PUSH EAX
CALL 0x00012070
FLD qword ptr [EBX + 0x1168]
ADD ESP,0x20
FLDZ
FCOMIP ST0,ST1
FSTP ST0
JNC 0x0001be49
SUB ESP,0x4
LEA EAX,[EBX + 0xffff6d16]
LEA ESI,[EBX + 0xffff6d1d]
PUSH 0x5
PUSH EAX
PUSH EDI
CALL 0x00012120
MOV dword ptr [ESP + 0x28],EAX
ADD ESP,0xc
PUSH 0x5
PUSH ESI
PUSH EDI
CALL 0x00012120
MOV dword ptr [ESP + 0x18],EAX
ADD ESP,0xc
PUSH 0x5
PUSH ESI
PUSH EDI
CALL 0x00012120
ADD ESP,0xc
MOV ESI,EAX
LEA EAX,[EBX + 0xffff6d24]
PUSH 0x5
PUSH EAX
PUSH EDI
CALL 0x00012120
LEA ECX,[EBX + 0xffff5452]
MOV dword ptr [ESP + 0x48],ECX
PUSH ECX
MOV ECX,dword ptr [ESP + 0x2c]
PUSH ECX
MOV EDX,dword ptr [ESP + 0x20]
PUSH EDX
PUSH dword ptr [ESP + 0x54]
PUSH ESI
PUSH EAX
LEA EAX,[EBX + 0xffff6d2f]
PUSH EAX
LEA EAX,[EBX + 0xffff6ab8]
PUSH EAX
CALL 0x00012070
ADD ESP,0x2c
LEA EAX,[EBX + 0xffff59c1]
PUSH 0x5
PUSH EAX
PUSH EDI
CALL 0x00012120
MOV dword ptr [ESP + 0x18],EAX
ADD ESP,0xc
LEA EAX,[EBX + 0xffff73d3]
PUSH 0x5
PUSH EAX
PUSH EDI
CALL 0x00012120
ADD ESP,0xc
MOV ESI,EAX
LEA EAX,[EBX + 0xffff59d8]
PUSH 0x5
PUSH EAX
PUSH EDI
CALL 0x00012120
MOV EDX,dword ptr [ESP + 0x18]
PUSH EDX
PUSH EBP
PUSH EBP
PUSH ESI
MOV EDX,dword ptr [ESP + 0x40]
XOR ESI,ESI
PUSH EDX
PUSH EDX
PUSH EAX
LEA EAX,[EBX + 0xffff6ae8]
PUSH EAX
CALL 0x00012070
LEA EAX,[EBX + 0x1540]
ADD ESP,0x30
MOV dword ptr [ESP + 0x8],EAX
MOV EAX,dword ptr [ESP + 0x14]
MOV EAX,dword ptr [EAX]
TEST EAX,EAX
JZ 0x0001bda0
LEA EAX,[EBX + 0x1c0]
MOV dword ptr [ESP + 0x2c],EAX
LEA EAX,[EBX + 0x115c]
MOV dword ptr [ESP + 0x18],EAX
JMP 0x0001bd43
MOV EAX,dword ptr [ESP + 0x28]
LEA EAX,[EAX + EAX*0x2]
FLD qword ptr [EBX + EAX*0x4 + 0xffff6da4]
MOV EAX,dword ptr [ESP + 0x4]
MOV EDI,dword ptr [EAX + ESI*0x4]
MOV EAX,dword ptr [ESP + 0x2c]
FSTP qword ptr [ESP + 0x20]
MOV EAX,dword ptr [EAX]
FLD qword ptr [EDI + 0xa8]
TEST EAX,EAX
JZ 0x0001bc40
MOV EBP,dword ptr [EDI + 0x20]
TEST EBP,EBP
JNZ 0x0001bc40
FLDZ
FXCH
FUCOMI ST0,ST1
FSTP ST1
JNP 0x0001bf60
NOP
FLD qword ptr [EBX + 0x1170]
MOV EAX,dword ptr [ESP + 0x18]
FADD ST0,ST1
FST qword ptr [EBX + 0x1170]
FILD dword ptr [EAX]
MOV EAX,dword ptr [ESP + 0x10]
MOV ECX,dword ptr [EAX]
FLD ST2
FDIV ST0,ST1
FXCH
FDIVP ST2,ST0
FLD qword ptr [EBX + 0x1168]
FLDZ
TEST ECX,ECX
JZ 0x0001bef8
FXCH
FCOMI ST0,ST1
FSTP ST1
JBE 0x0001bf30
FXCH ST3
FMUL dword ptr [EBX + 0xffff51d8]
FDIVRP ST3,ST0
SUB ESP,0x1c
LEA EAX,[EBX + 0xffff6d33]
FSTP qword ptr [ESP + 0x10]
FSTP qword ptr [ESP + 0x8]
FSTP qword ptr [ESP]
PUSH EAX
CALL 0x00012070
ADD ESP,0x20
MOV EAX,dword ptr [EDI + 0x20]
TEST EAX,EAX
JZ 0x0001bed8
MOV ECX,dword ptr [ESP + 0x18]
MOV dword ptr [ESP + 0x30],EAX
SUB ESP,0x18
MOV dword ptr [ESP + 0x4c],0x0
FLD qword ptr [EDI + 0xa8]
FILD dword ptr [ECX]
FILD qword ptr [ESP + 0x48]
FLD qword ptr [EDI + 0xbc]
FADD ST0,ST3
FLD qword ptr [ESP + 0x38]
FMUL ST1
FXCH
FDIV ST0,ST3
FDIV ST0,ST2
FSTP qword ptr [ESP + 0x8]
FMULP ST3
FXCH ST2
FDIVRP
FDIVRP
FSTP qword ptr [ESP]
PUSH EAX
LEA EAX,[EBX + 0xffff6d58]
PUSH EAX
CALL 0x00012070
ADD ESP,0x20
MOV EAX,dword ptr [ESP + 0x10]
MOV EDX,dword ptr [EAX]
TEST EDX,EDX
JZ 0x0001bec0
SUB ESP,0xc
PUSH EDI
CALL 0x0001e170
ADD ESP,0x10
SUB ESP,0xc
PUSH 0xa
CALL 0x00012340
ADD ESP,0x10
JMP 0x0001bd38
FSTP ST0
LEA ESI,[ESI]
MOV EAX,dword ptr [ESP + 0x14]
ADD ESI,0x1
CMP dword ptr [EAX],ESI
JBE 0x0001bda0
MOV EAX,dword ptr [ESP + 0x4]
SUB ESP,0x4
MOV EAX,dword ptr [EAX + ESI*0x4]
MOV EDI,dword ptr [EAX]
MOV EBP,dword ptr [EAX + 0x4]
PUSH EBP
PUSH EDI
MOV EAX,dword ptr [ESP + 0x14]
ADD EAX,0x30
PUSH EAX
CALL 0x0001d480
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x0001bc00
MOV EAX,dword ptr [ESP + 0x8]
MOV EAX,dword ptr [EAX + 0x30]
TEST EAX,EAX
JNZ 0x0001bd38
SUB ESP,0x4
PUSH EBP
PUSH EDI
MOV EAX,dword ptr [ESP + 0x14]
ADD EAX,0x3c
PUSH EAX
CALL 0x0001d480
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0001bc00
MOV EAX,dword ptr [ESP + 0x14]
ADD ESI,0x1
CMP dword ptr [EAX],ESI
JA 0x0001bd43
NOP
SUB ESP,0xc
PUSH dword ptr [ESP + 0x10]
CALL 0x00012090
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x3c]
MOV EAX,dword ptr [EAX]
TEST EAX,EAX
JZ 0x0001bdc7
MOV EAX,dword ptr [ESP + 0x10]
MOV EAX,dword ptr [EAX]
TEST EAX,EAX
JZ 0x0001c020
ADD ESP,0x9c
POP EBX
POP ESI
POP EDI
POP EBP
RET
LEA EAX,[EBX + 0x1518]
FLD qword ptr [EAX]
FNSTCW word ptr [ESP + 0x46]
MOVZX EAX,word ptr [ESP + 0x46]
OR AH,0xc
MOV word ptr [ESP + 0x44],AX
LEA EAX,[EBX + 0xffff56f8]
FLDCW word ptr [ESP + 0x44]
FISTP dword ptr [ESP + 0x40]
FLDCW word ptr [ESP + 0x46]
SUB ESP,0x4
MOV ESI,dword ptr [ESP + 0x44]
PUSH 0x5
PUSH EAX
PUSH EDI
ADD ESI,ESI
CALL 0x00012120
POP EDX
POP ECX
PUSH ESI
PUSH EAX
CALL 0x00012070
FLDZ
FLD qword ptr [EBX + 0x1168]
ADD ESP,0x10
FCOMI ST0,ST1
FSTP ST1
JA 0x0001bfc0
FLDZ
LEA EAX,[EBX + 0x4a8]
FCOMIP ST0,ST1
FSTP ST0
MOV dword ptr [ESP + 0x20],EAX
JC 0x0001baf0
SUB ESP,0x4
LEA EAX,[EBX + 0xffff6cff]
PUSH 0x5
PUSH EAX
PUSH EDI
CALL 0x00012120
MOV dword ptr [ESP],EAX
CALL 0x00012070
ADD ESP,0x10
FLD1
FSTP qword ptr [EBX + 0x1168]
JMP 0x0001baf0
SUB ESP,0x4
LEA EAX,[EBX + 0xffff6cbb]
PUSH 0x5
PUSH EAX
PUSH EDI
CALL 0x00012120
MOV dword ptr [ESP],EAX
CALL 0x00012070
MOV EAX,dword ptr [EBX + 0xffffffec]
POP EBP
PUSH dword ptr [EAX]
CALL 0x0001f820
ADD ESP,0x10
JMP 0x0001b901
FSTP ST0
MOV EBP,0x54
JMP 0x0001ba65
SUB ESP,0xc
PUSH EDI
CALL 0x0001df00
ADD ESP,0x10
JMP 0x0001bd1c
MOV EAX,dword ptr [ESP + 0x38]
PUSH EAX
PUSH EAX
PUSH EAX
LEA EAX,[EBX + 0xffff6d6c]
PUSH EAX
CALL 0x00012070
ADD ESP,0x10
JMP 0x0001bd02
FXCH
FCOMI ST0,ST1
FSTP ST1
JBE 0x0001bf48
FXCH ST3
FMUL dword ptr [EBX + 0xffff51d8]
FDIVRP ST3,ST0
SUB ESP,0x1c
LEA EAX,[EBX + 0xffff6d46]
FSTP qword ptr [ESP + 0x10]
FSTP qword ptr [ESP + 0x8]
FSTP qword ptr [ESP]
PUSH EAX
CALL 0x00012070
ADD ESP,0x20
JMP 0x0001bca5
FSTP ST0
FSTP ST2
FXCH
FLDZ
FXCH ST2
FXCH
JMP 0x0001bc88
FSTP ST0
FSTP ST2
FXCH
FLDZ
FXCH ST2
FXCH
JMP 0x0001bf0a
JZ 0x0001bd30
JMP 0x0001bc40
SUB ESP,0x4
LEA EAX,[EBX + 0xffff6ccd]
LEA EDI,[EBX + 0xffff500c]
PUSH 0x5
PUSH EAX
PUSH EDI
CALL 0x00012120
MOV dword ptr [ESP],EAX
CALL 0x00012070
LEA EAX,[EBX + 0x1bc]
ADD ESP,0x10
MOV dword ptr [ESP + 0x3c],EAX
JMP 0x0001b901
SUB ESP,0xc
LEA EAX,[EBX + 0xffff5012]
PUSH EAX
CALL 0x00012270
ADD ESP,0x10
JMP 0x0001b8cb
LEA EAX,[EBX + 0x115c]
SUB ESP,0x4
FILD dword ptr [EAX]
LEA EAX,[EBX + 0xffff6ce6]
FDIVR ST0,ST1
FXCH
FSTP qword ptr [ESP + 0x1c]
FSTP qword ptr [ESP + 0xc]
PUSH 0x5
PUSH EAX
PUSH EDI
CALL 0x00012120
POP EDX
LEA EDX,[EBX + 0x4a8]
POP ECX
MOV dword ptr [ESP + 0x28],EDX
PUSH EDX
FLD qword ptr [ESP + 0x14]
SUB ESP,0x10
FSTP qword ptr [ESP + 0x8]
FLD qword ptr [ESP + 0x34]
FDIVR dword ptr [EBX + 0xffff51d8]
FSTP qword ptr [ESP]
PUSH EAX
CALL 0x00012070
ADD ESP,0x20
FLD qword ptr [EBX + 0x1168]
JMP 0x0001bae4
MOV EAX,dword ptr [EBX + 0xffffffec]
SUB ESP,0xc
PUSH dword ptr [EAX]
CALL 0x0001f820
ADD ESP,0x10
ADD ESP,0x9c
POP EBX
POP ESI
POP EDI
POP EBP
RET
FSTP ST0
JMP 0x0001c044
FSTP ST0
MOV EBP,0x54
MOV dword ptr [ESP + 0x28],0x0
JMP 0x0001ba65
FSTP ST0
LEA EAX,[EDX + EDX*0x2]
MOV dword ptr [ESP + 0x28],EDX
MOVSX EBP,byte ptr [EBX + EAX*0x4 + 0xffff6da0]
JMP 0x0001ba65
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */\n\nvoid FUN_0001b8a0(void)\n\n{\n  double dVar1;\n  double dVar2;\n  uint uVar3;\n  float fVar4;\n  double dVar5;\n  double dVar6;\n  size_t __nmemb;\n  int *__base;\n  int *piVar7;\n  double *pdVar8;\n  char *pcVar9;\n  undefined4 uVar10;\n  undefined4 uVar11;\n  undefined4 uVar12;\n  undefined4 uVar13;\n  int iVar14;\n  int *piVar15;\n  int iVar16;\n  uint uVar17;\n  ulonglong local_a4;\n  size_t local_84;\n  char local_5c [72];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1b8a9;\n  if (DAT_0002d1b8 == 0) {\n    puts("\f");\n  }\n  else {\n    DAT_0002d1b8 = 0;\n  }\n  DAT_0002e170 = 0.0;\n  if (DAT_0002e150 == 0) {\n    pcVar9 = (char *)dcgettext("gprof","Flat profile:\n",5);\n    printf(pcVar9);\n  }\n  else if (DAT_0002d1bc != 0) {\n    pcVar9 = (char *)dcgettext("gprof","\n\n\nflat profile:\n",5);\n    printf(pcVar9);\n    FUN_0001f820(*(undefined4 *)PTR_stdout_0002cfec);\n  }\n  __base = (int *)xmalloc(DAT_0002e520 << 2);\n  __nmemb = DAT_0002e520;\n  if (DAT_0002e520 != 0) {\n    piVar15 = __base + DAT_0002e520;\n    piVar7 = __base;\n    iVar14 = DAT_0002e524;\n    do {\n      *piVar7 = iVar14;\n      piVar7 = piVar7 + 1;\n      iVar14 = iVar14 + 0xfc;\n    } while (piVar15 != piVar7);\n  }\n  qsort(__base,__nmemb,4,FUN_0001ae50);\n  if (DAT_0002e150 != 0) {\n    local_84 = 5;\n    iVar14 = 0x6d;\n    goto LAB_0001ba65;\n  }\n  local_84 = DAT_0002e520;\n  if (DAT_0002e520 == 0) {\nLAB_0001beb2:\n    iVar14 = 0x54;\n  }\n  else {\n    iVar14 = 0;\n    dVar1 = 0.0;\n    piVar15 = __base;\n    do {\n      iVar16 = *piVar15;\n      if (*(uint *)(iVar16 + 0x20) != 0) {\n        local_a4 = (ulonglong)*(uint *)(iVar16 + 0x20);\n        dVar2 = (*(double *)(iVar16 + 0xa8) + *(double *)(iVar16 + 0xbc)) / (double)local_a4;\n        if (dVar1 < dVar2) {\n          dVar1 = dVar2;\n          iVar14 = iVar16;\n        }\n      }\n      piVar15 = piVar15 + 1;\n    } while (__base + DAT_0002e520 != piVar15);\n    if (iVar14 != 0) {\n      if (*(int *)(iVar14 + 0x20) == 0) {\n        local_84 = 0;\n        goto LAB_0001beb2;\n      }\n      if (0.0 < dVar1) {\n        local_84 = 0;\n        pdVar8 = (double *)&DAT_00023db0;\n        dVar2 = DAT_00023e30;\n        while( true ) {\n          dVar2 = dVar2 * (dVar1 / (double)DAT_0002e15c);\n          if ((1.0 <= dVar2) && (dVar2 < (double)DAT_00023e2c)) {\n            iVar14 = (int)(char)(&DAT_00023da0)[local_84 * 0xc];\n            goto LAB_0001ba65;\n          }\n          local_84 = local_84 + 1;\n          if (local_84 == 0xb) break;\n          dVar2 = *pdVar8;\n          pdVar8 = (double *)((int)pdVar8 + 0xc);\n        }\n        iVar14 = 0;\n        goto LAB_0001ba65;\n      }\n    }\n    iVar14 = 0x54;\n    local_84 = 0;\n  }\nLAB_0001ba65:\n  iVar16 = (int)DAT_0002d4a4;\n  pcVar9 = (char *)dcgettext("gprof","%c%c/call",5);\n  sprintf(local_5c,pcVar9,iVar14,iVar16);\n  if (DAT_0002e150 == 0) {\n    fVar4 = DAT_00023e28 / (float)DAT_0002e15c;\n    pcVar9 = (char *)dcgettext("gprof","\nEach sample counts as %g %s.\n",5);\n    printf(pcVar9,SUB84((double)fVar4,0),(int)((ulonglong)(double)fVar4 >> 0x20),s_seconds_0002d4a8)\n    ;\n  }\n  else {\n    dVar1 = ROUND(DAT_0002e518);\n    pcVar9 = (char *)dcgettext("gprof","\ngranularity: each sample hit covers %ld byte(s)",5);\n    printf(pcVar9,(int)dVar1 * 2);\n    dVar1 = DAT_0002e168;\n    if (0.0 < DAT_0002e168) {\n      dVar2 = DAT_0002e168 / (double)DAT_0002e15c;\n      pcVar9 = (char *)dcgettext("gprof"," for %.2f%% of %.2f %s\n\n",5);\n      printf(pcVar9,SUB84((double)_DAT_000221d8 / dVar1,0),\n             (int)((ulonglong)((double)_DAT_000221d8 / dVar1) >> 0x20),SUB84(dVar2,0),\n             (int)((ulonglong)dVar2 >> 0x20),s_seconds_0002d4a8);\n    }\n  }\n  if (DAT_0002e168 <= 0.0) {\n    pcVar9 = (char *)dcgettext("gprof"," no time accumulated\n\n",5);\n    printf(pcVar9);\n    DAT_0002e168 = 1.0;\n  }\n  uVar10 = dcgettext("gprof","total ",5);\n  uVar11 = dcgettext("gprof","self  ",5);\n  uVar12 = dcgettext("gprof","self  ",5);\n  uVar13 = dcgettext("gprof","cumulative",5);\n  printf("%5.5s %10.10s %8.8s %8.8s %8.8s %8.8s  %-8.8s\n",&DAT_00023d2f,uVar13,uVar12,"",uVar11,\n         uVar10,"");\n  uVar10 = dcgettext("gprof",&DAT_000229c1,5);\n  uVar11 = dcgettext("gprof","calls",5);\n  uVar12 = dcgettext("gprof",&DAT_000229d8,5);\n  uVar17 = 0;\n  printf("%5.5s %9.9s  %8.8s %8.8s %8.8s %8.8s  %-8.8s\n",uVar12,s_seconds_0002d4a8,\n         s_seconds_0002d4a8,uVar11,local_5c,local_5c,uVar10);\n  if (DAT_0002e520 != 0) {\n    do {\n      while( true ) {\n        uVar10 = *(undefined4 *)__base[uVar17];\n        uVar11 = ((undefined4 *)__base[uVar17])[1];\n        iVar14 = FUN_0001d480(&DAT_0002e570,uVar10,uVar11);\n        if (iVar14 == 0) break;\nLAB_0001bc00:\n        dVar1 = *(double *)(&UNK_00023da4 + local_84 * 0xc);\n        iVar14 = __base[uVar17];\n        dVar2 = *(double *)(iVar14 + 0xa8);\n        if (((DAT_0002d1c0 == 0) || (*(int *)(iVar14 + 0x20) != 0)) || (dVar2 != 0.0)) {\n          DAT_0002e170 = DAT_0002e170 + dVar2;\n          dVar5 = dVar2 / (double)DAT_0002e15c;\n          dVar6 = DAT_0002e170 / (double)DAT_0002e15c;\n          uVar12 = SUB84(dVar5,0);\n          uVar13 = (undefined4)((ulonglong)dVar5 >> 0x20);\n          uVar10 = SUB84(dVar6,0);\n          uVar11 = (undefined4)((ulonglong)dVar6 >> 0x20);\n          if (DAT_0002e150 == 0) {\n            if (DAT_0002e168 <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;\n            }\n            printf("%6.2f %9.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11,\n                   uVar12,uVar13);\n          }\n          else {\n            if (DAT_0002e168 <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;\n            }\n            printf("%5.1f %10.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11\n                   ,uVar12,uVar13);\n          }\n          uVar3 = *(uint *)(iVar14 + 0x20);\n          if (uVar3 == 0) {\n            printf(" %8.8s %8.8s %8.8s  ","","","");\n          }\n          else {\n            dVar2 = (((*(double *)(iVar14 + 0xbc) + *(double *)(iVar14 + 0xa8)) * dVar1) /\n                    (double)DAT_0002e15c) / (double)uVar3;\n            dVar1 = ((dVar1 * *(double *)(iVar14 + 0xa8)) / (double)DAT_0002e15c) / (double)uVar3;\n            printf(" %8lu %8.2f %8.2f  ",uVar3,SUB84(dVar1,0),(int)((ulonglong)dVar1 >> 0x20),\n                   SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar13);\n          }\n          if (DAT_0002e150 == 0) {\n            FUN_0001df00(iVar14);\n          }\n          else {\n            FUN_0001e170(iVar14);\n          }\n          putchar(10);\n        }\nLAB_0001bd38:\n        uVar17 = uVar17 + 1;\n        if (DAT_0002e520 <= uVar17) goto LAB_0001bda0;\n      }\n      if (DAT_0002e570 != 0) goto LAB_0001bd38;\n      iVar14 = FUN_0001d480(&DAT_0002e57c,uVar10,uVar11);\n      if (iVar14 == 0) goto LAB_0001bc00;\n      uVar17 = uVar17 + 1;\n    } while (uVar17 < DAT_0002e520);\n  }\nLAB_0001bda0:\n  free(__base);\n  if ((DAT_0002d1bc != 0) && (DAT_0002e150 == 0)) {\n    FUN_0001f820(*(undefined4 *)PTR_stdout_0002cfec);\n    return;\n  }\n  return;\n}\n\n" comment comment (function_definition "void FUN_0001b8a0(void)\n\n{\n  double dVar1;\n  double dVar2;\n  uint uVar3;\n  float fVar4;\n  double dVar5;\n  double dVar6;\n  size_t __nmemb;\n  int *__base;\n  int *piVar7;\n  double *pdVar8;\n  char *pcVar9;\n  undefined4 uVar10;\n  undefined4 uVar11;\n  undefined4 uVar12;\n  undefined4 uVar13;\n  int iVar14;\n  int *piVar15;\n  int iVar16;\n  uint uVar17;\n  ulonglong local_a4;\n  size_t local_84;\n  char local_5c [72];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1b8a9;\n  if (DAT_0002d1b8 == 0) {\n    puts("\f");\n  }\n  else {\n    DAT_0002d1b8 = 0;\n  }\n  DAT_0002e170 = 0.0;\n  if (DAT_0002e150 == 0) {\n    pcVar9 = (char *)dcgettext("gprof","Flat profile:\n",5);\n    printf(pcVar9);\n  }\n  else if (DAT_0002d1bc != 0) {\n    pcVar9 = (char *)dcgettext("gprof","\n\n\nflat profile:\n",5);\n    printf(pcVar9);\n    FUN_0001f820(*(undefined4 *)PTR_stdout_0002cfec);\n  }\n  __base = (int *)xmalloc(DAT_0002e520 << 2);\n  __nmemb = DAT_0002e520;\n  if (DAT_0002e520 != 0) {\n    piVar15 = __base + DAT_0002e520;\n    piVar7 = __base;\n    iVar14 = DAT_0002e524;\n    do {\n      *piVar7 = iVar14;\n      piVar7 = piVar7 + 1;\n      iVar14 = iVar14 + 0xfc;\n    } while (piVar15 != piVar7);\n  }\n  qsort(__base,__nmemb,4,FUN_0001ae50);\n  if (DAT_0002e150 != 0) {\n    local_84 = 5;\n    iVar14 = 0x6d;\n    goto LAB_0001ba65;\n  }\n  local_84 = DAT_0002e520;\n  if (DAT_0002e520 == 0) {\nLAB_0001beb2:\n    iVar14 = 0x54;\n  }\n  else {\n    iVar14 = 0;\n    dVar1 = 0.0;\n    piVar15 = __base;\n    do {\n      iVar16 = *piVar15;\n      if (*(uint *)(iVar16 + 0x20) != 0) {\n        local_a4 = (ulonglong)*(uint *)(iVar16 + 0x20);\n        dVar2 = (*(double *)(iVar16 + 0xa8) + *(double *)(iVar16 + 0xbc)) / (double)local_a4;\n        if (dVar1 < dVar2) {\n          dVar1 = dVar2;\n          iVar14 = iVar16;\n        }\n      }\n      piVar15 = piVar15 + 1;\n    } while (__base + DAT_0002e520 != piVar15);\n    if (iVar14 != 0) {\n      if (*(int *)(iVar14 + 0x20) == 0) {\n        local_84 = 0;\n        goto LAB_0001beb2;\n      }\n      if (0.0 < dVar1) {\n        local_84 = 0;\n        pdVar8 = (double *)&DAT_00023db0;\n        dVar2 = DAT_00023e30;\n        while( true ) {\n          dVar2 = dVar2 * (dVar1 / (double)DAT_0002e15c);\n          if ((1.0 <= dVar2) && (dVar2 < (double)DAT_00023e2c)) {\n            iVar14 = (int)(char)(&DAT_00023da0)[local_84 * 0xc];\n            goto LAB_0001ba65;\n          }\n          local_84 = local_84 + 1;\n          if (local_84 == 0xb) break;\n          dVar2 = *pdVar8;\n          pdVar8 = (double *)((int)pdVar8 + 0xc);\n        }\n        iVar14 = 0;\n        goto LAB_0001ba65;\n      }\n    }\n    iVar14 = 0x54;\n    local_84 = 0;\n  }\nLAB_0001ba65:\n  iVar16 = (int)DAT_0002d4a4;\n  pcVar9 = (char *)dcgettext("gprof","%c%c/call",5);\n  sprintf(local_5c,pcVar9,iVar14,iVar16);\n  if (DAT_0002e150 == 0) {\n    fVar4 = DAT_00023e28 / (float)DAT_0002e15c;\n    pcVar9 = (char *)dcgettext("gprof","\nEach sample counts as %g %s.\n",5);\n    printf(pcVar9,SUB84((double)fVar4,0),(int)((ulonglong)(double)fVar4 >> 0x20),s_seconds_0002d4a8)\n    ;\n  }\n  else {\n    dVar1 = ROUND(DAT_0002e518);\n    pcVar9 = (char *)dcgettext("gprof","\ngranularity: each sample hit covers %ld byte(s)",5);\n    printf(pcVar9,(int)dVar1 * 2);\n    dVar1 = DAT_0002e168;\n    if (0.0 < DAT_0002e168) {\n      dVar2 = DAT_0002e168 / (double)DAT_0002e15c;\n      pcVar9 = (char *)dcgettext("gprof"," for %.2f%% of %.2f %s\n\n",5);\n      printf(pcVar9,SUB84((double)_DAT_000221d8 / dVar1,0),\n             (int)((ulonglong)((double)_DAT_000221d8 / dVar1) >> 0x20),SUB84(dVar2,0),\n             (int)((ulonglong)dVar2 >> 0x20),s_seconds_0002d4a8);\n    }\n  }\n  if (DAT_0002e168 <= 0.0) {\n    pcVar9 = (char *)dcgettext("gprof"," no time accumulated\n\n",5);\n    printf(pcVar9);\n    DAT_0002e168 = 1.0;\n  }\n  uVar10 = dcgettext("gprof","total ",5);\n  uVar11 = dcgettext("gprof","self  ",5);\n  uVar12 = dcgettext("gprof","self  ",5);\n  uVar13 = dcgettext("gprof","cumulative",5);\n  printf("%5.5s %10.10s %8.8s %8.8s %8.8s %8.8s  %-8.8s\n",&DAT_00023d2f,uVar13,uVar12,"",uVar11,\n         uVar10,"");\n  uVar10 = dcgettext("gprof",&DAT_000229c1,5);\n  uVar11 = dcgettext("gprof","calls",5);\n  uVar12 = dcgettext("gprof",&DAT_000229d8,5);\n  uVar17 = 0;\n  printf("%5.5s %9.9s  %8.8s %8.8s %8.8s %8.8s  %-8.8s\n",uVar12,s_seconds_0002d4a8,\n         s_seconds_0002d4a8,uVar11,local_5c,local_5c,uVar10);\n  if (DAT_0002e520 != 0) {\n    do {\n      while( true ) {\n        uVar10 = *(undefined4 *)__base[uVar17];\n        uVar11 = ((undefined4 *)__base[uVar17])[1];\n        iVar14 = FUN_0001d480(&DAT_0002e570,uVar10,uVar11);\n        if (iVar14 == 0) break;\nLAB_0001bc00:\n        dVar1 = *(double *)(&UNK_00023da4 + local_84 * 0xc);\n        iVar14 = __base[uVar17];\n        dVar2 = *(double *)(iVar14 + 0xa8);\n        if (((DAT_0002d1c0 == 0) || (*(int *)(iVar14 + 0x20) != 0)) || (dVar2 != 0.0)) {\n          DAT_0002e170 = DAT_0002e170 + dVar2;\n          dVar5 = dVar2 / (double)DAT_0002e15c;\n          dVar6 = DAT_0002e170 / (double)DAT_0002e15c;\n          uVar12 = SUB84(dVar5,0);\n          uVar13 = (undefined4)((ulonglong)dVar5 >> 0x20);\n          uVar10 = SUB84(dVar6,0);\n          uVar11 = (undefined4)((ulonglong)dVar6 >> 0x20);\n          if (DAT_0002e150 == 0) {\n            if (DAT_0002e168 <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;\n            }\n            printf("%6.2f %9.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11,\n                   uVar12,uVar13);\n          }\n          else {\n            if (DAT_0002e168 <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;\n            }\n            printf("%5.1f %10.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11\n                   ,uVar12,uVar13);\n          }\n          uVar3 = *(uint *)(iVar14 + 0x20);\n          if (uVar3 == 0) {\n            printf(" %8.8s %8.8s %8.8s  ","","","");\n          }\n          else {\n            dVar2 = (((*(double *)(iVar14 + 0xbc) + *(double *)(iVar14 + 0xa8)) * dVar1) /\n                    (double)DAT_0002e15c) / (double)uVar3;\n            dVar1 = ((dVar1 * *(double *)(iVar14 + 0xa8)) / (double)DAT_0002e15c) / (double)uVar3;\n            printf(" %8lu %8.2f %8.2f  ",uVar3,SUB84(dVar1,0),(int)((ulonglong)dVar1 >> 0x20),\n                   SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar13);\n          }\n          if (DAT_0002e150 == 0) {\n            FUN_0001df00(iVar14);\n          }\n          else {\n            FUN_0001e170(iVar14);\n          }\n          putchar(10);\n        }\nLAB_0001bd38:\n        uVar17 = uVar17 + 1;\n        if (DAT_0002e520 <= uVar17) goto LAB_0001bda0;\n      }\n      if (DAT_0002e570 != 0) goto LAB_0001bd38;\n      iVar14 = FUN_0001d480(&DAT_0002e57c,uVar10,uVar11);\n      if (iVar14 == 0) goto LAB_0001bc00;\n      uVar17 = uVar17 + 1;\n    } while (uVar17 < DAT_0002e520);\n  }\nLAB_0001bda0:\n  free(__base);\n  if ((DAT_0002d1bc != 0) && (DAT_0002e150 == 0)) {\n    FUN_0001f820(*(undefined4 *)PTR_stdout_0002cfec);\n    return;\n  }\n  return;\n}" primitive_type (function_declarator "FUN_0001b8a0(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  double dVar1;\n  double dVar2;\n  uint uVar3;\n  float fVar4;\n  double dVar5;\n  double dVar6;\n  size_t __nmemb;\n  int *__base;\n  int *piVar7;\n  double *pdVar8;\n  char *pcVar9;\n  undefined4 uVar10;\n  undefined4 uVar11;\n  undefined4 uVar12;\n  undefined4 uVar13;\n  int iVar14;\n  int *piVar15;\n  int iVar16;\n  uint uVar17;\n  ulonglong local_a4;\n  size_t local_84;\n  char local_5c [72];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1b8a9;\n  if (DAT_0002d1b8 == 0) {\n    puts("\f");\n  }\n  else {\n    DAT_0002d1b8 = 0;\n  }\n  DAT_0002e170 = 0.0;\n  if (DAT_0002e150 == 0) {\n    pcVar9 = (char *)dcgettext("gprof","Flat profile:\n",5);\n    printf(pcVar9);\n  }\n  else if (DAT_0002d1bc != 0) {\n    pcVar9 = (char *)dcgettext("gprof","\n\n\nflat profile:\n",5);\n    printf(pcVar9);\n    FUN_0001f820(*(undefined4 *)PTR_stdout_0002cfec);\n  }\n  __base = (int *)xmalloc(DAT_0002e520 << 2);\n  __nmemb = DAT_0002e520;\n  if (DAT_0002e520 != 0) {\n    piVar15 = __base + DAT_0002e520;\n    piVar7 = __base;\n    iVar14 = DAT_0002e524;\n    do {\n      *piVar7 = iVar14;\n      piVar7 = piVar7 + 1;\n      iVar14 = iVar14 + 0xfc;\n    } while (piVar15 != piVar7);\n  }\n  qsort(__base,__nmemb,4,FUN_0001ae50);\n  if (DAT_0002e150 != 0) {\n    local_84 = 5;\n    iVar14 = 0x6d;\n    goto LAB_0001ba65;\n  }\n  local_84 = DAT_0002e520;\n  if (DAT_0002e520 == 0) {\nLAB_0001beb2:\n    iVar14 = 0x54;\n  }\n  else {\n    iVar14 = 0;\n    dVar1 = 0.0;\n    piVar15 = __base;\n    do {\n      iVar16 = *piVar15;\n      if (*(uint *)(iVar16 + 0x20) != 0) {\n        local_a4 = (ulonglong)*(uint *)(iVar16 + 0x20);\n        dVar2 = (*(double *)(iVar16 + 0xa8) + *(double *)(iVar16 + 0xbc)) / (double)local_a4;\n        if (dVar1 < dVar2) {\n          dVar1 = dVar2;\n          iVar14 = iVar16;\n        }\n      }\n      piVar15 = piVar15 + 1;\n    } while (__base + DAT_0002e520 != piVar15);\n    if (iVar14 != 0) {\n      if (*(int *)(iVar14 + 0x20) == 0) {\n        local_84 = 0;\n        goto LAB_0001beb2;\n      }\n      if (0.0 < dVar1) {\n        local_84 = 0;\n        pdVar8 = (double *)&DAT_00023db0;\n        dVar2 = DAT_00023e30;\n        while( true ) {\n          dVar2 = dVar2 * (dVar1 / (double)DAT_0002e15c);\n          if ((1.0 <= dVar2) && (dVar2 < (double)DAT_00023e2c)) {\n            iVar14 = (int)(char)(&DAT_00023da0)[local_84 * 0xc];\n            goto LAB_0001ba65;\n          }\n          local_84 = local_84 + 1;\n          if (local_84 == 0xb) break;\n          dVar2 = *pdVar8;\n          pdVar8 = (double *)((int)pdVar8 + 0xc);\n        }\n        iVar14 = 0;\n        goto LAB_0001ba65;\n      }\n    }\n    iVar14 = 0x54;\n    local_84 = 0;\n  }\nLAB_0001ba65:\n  iVar16 = (int)DAT_0002d4a4;\n  pcVar9 = (char *)dcgettext("gprof","%c%c/call",5);\n  sprintf(local_5c,pcVar9,iVar14,iVar16);\n  if (DAT_0002e150 == 0) {\n    fVar4 = DAT_00023e28 / (float)DAT_0002e15c;\n    pcVar9 = (char *)dcgettext("gprof","\nEach sample counts as %g %s.\n",5);\n    printf(pcVar9,SUB84((double)fVar4,0),(int)((ulonglong)(double)fVar4 >> 0x20),s_seconds_0002d4a8)\n    ;\n  }\n  else {\n    dVar1 = ROUND(DAT_0002e518);\n    pcVar9 = (char *)dcgettext("gprof","\ngranularity: each sample hit covers %ld byte(s)",5);\n    printf(pcVar9,(int)dVar1 * 2);\n    dVar1 = DAT_0002e168;\n    if (0.0 < DAT_0002e168) {\n      dVar2 = DAT_0002e168 / (double)DAT_0002e15c;\n      pcVar9 = (char *)dcgettext("gprof"," for %.2f%% of %.2f %s\n\n",5);\n      printf(pcVar9,SUB84((double)_DAT_000221d8 / dVar1,0),\n             (int)((ulonglong)((double)_DAT_000221d8 / dVar1) >> 0x20),SUB84(dVar2,0),\n             (int)((ulonglong)dVar2 >> 0x20),s_seconds_0002d4a8);\n    }\n  }\n  if (DAT_0002e168 <= 0.0) {\n    pcVar9 = (char *)dcgettext("gprof"," no time accumulated\n\n",5);\n    printf(pcVar9);\n    DAT_0002e168 = 1.0;\n  }\n  uVar10 = dcgettext("gprof","total ",5);\n  uVar11 = dcgettext("gprof","self  ",5);\n  uVar12 = dcgettext("gprof","self  ",5);\n  uVar13 = dcgettext("gprof","cumulative",5);\n  printf("%5.5s %10.10s %8.8s %8.8s %8.8s %8.8s  %-8.8s\n",&DAT_00023d2f,uVar13,uVar12,"",uVar11,\n         uVar10,"");\n  uVar10 = dcgettext("gprof",&DAT_000229c1,5);\n  uVar11 = dcgettext("gprof","calls",5);\n  uVar12 = dcgettext("gprof",&DAT_000229d8,5);\n  uVar17 = 0;\n  printf("%5.5s %9.9s  %8.8s %8.8s %8.8s %8.8s  %-8.8s\n",uVar12,s_seconds_0002d4a8,\n         s_seconds_0002d4a8,uVar11,local_5c,local_5c,uVar10);\n  if (DAT_0002e520 != 0) {\n    do {\n      while( true ) {\n        uVar10 = *(undefined4 *)__base[uVar17];\n        uVar11 = ((undefined4 *)__base[uVar17])[1];\n        iVar14 = FUN_0001d480(&DAT_0002e570,uVar10,uVar11);\n        if (iVar14 == 0) break;\nLAB_0001bc00:\n        dVar1 = *(double *)(&UNK_00023da4 + local_84 * 0xc);\n        iVar14 = __base[uVar17];\n        dVar2 = *(double *)(iVar14 + 0xa8);\n        if (((DAT_0002d1c0 == 0) || (*(int *)(iVar14 + 0x20) != 0)) || (dVar2 != 0.0)) {\n          DAT_0002e170 = DAT_0002e170 + dVar2;\n          dVar5 = dVar2 / (double)DAT_0002e15c;\n          dVar6 = DAT_0002e170 / (double)DAT_0002e15c;\n          uVar12 = SUB84(dVar5,0);\n          uVar13 = (undefined4)((ulonglong)dVar5 >> 0x20);\n          uVar10 = SUB84(dVar6,0);\n          uVar11 = (undefined4)((ulonglong)dVar6 >> 0x20);\n          if (DAT_0002e150 == 0) {\n            if (DAT_0002e168 <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;\n            }\n            printf("%6.2f %9.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11,\n                   uVar12,uVar13);\n          }\n          else {\n            if (DAT_0002e168 <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;\n            }\n            printf("%5.1f %10.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11\n                   ,uVar12,uVar13);\n          }\n          uVar3 = *(uint *)(iVar14 + 0x20);\n          if (uVar3 == 0) {\n            printf(" %8.8s %8.8s %8.8s  ","","","");\n          }\n          else {\n            dVar2 = (((*(double *)(iVar14 + 0xbc) + *(double *)(iVar14 + 0xa8)) * dVar1) /\n                    (double)DAT_0002e15c) / (double)uVar3;\n            dVar1 = ((dVar1 * *(double *)(iVar14 + 0xa8)) / (double)DAT_0002e15c) / (double)uVar3;\n            printf(" %8lu %8.2f %8.2f  ",uVar3,SUB84(dVar1,0),(int)((ulonglong)dVar1 >> 0x20),\n                   SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar13);\n          }\n          if (DAT_0002e150 == 0) {\n            FUN_0001df00(iVar14);\n          }\n          else {\n            FUN_0001e170(iVar14);\n          }\n          putchar(10);\n        }\nLAB_0001bd38:\n        uVar17 = uVar17 + 1;\n        if (DAT_0002e520 <= uVar17) goto LAB_0001bda0;\n      }\n      if (DAT_0002e570 != 0) goto LAB_0001bd38;\n      iVar14 = FUN_0001d480(&DAT_0002e57c,uVar10,uVar11);\n      if (iVar14 == 0) goto LAB_0001bc00;\n      uVar17 = uVar17 + 1;\n    } while (uVar17 < DAT_0002e520);\n  }\nLAB_0001bda0:\n  free(__base);\n  if ((DAT_0002d1bc != 0) && (DAT_0002e150 == 0)) {\n    FUN_0001f820(*(undefined4 *)PTR_stdout_0002cfec);\n    return;\n  }\n  return;\n}" { (declaration "double dVar1;" primitive_type identifier ;) (declaration "double dVar2;" primitive_type identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "float fVar4;" primitive_type identifier ;) (declaration "double dVar5;" primitive_type identifier ;) (declaration "double dVar6;" primitive_type identifier ;) (declaration "size_t __nmemb;" primitive_type identifier ;) (declaration "int *__base;" primitive_type (pointer_declarator "*__base" * identifier) ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "double *pdVar8;" primitive_type (pointer_declarator "*pdVar8" * identifier) ;) (declaration "char *pcVar9;" primitive_type (pointer_declarator "*pcVar9" * identifier) ;) (declaration "undefined4 uVar10;" type_identifier identifier ;) (declaration "undefined4 uVar11;" type_identifier identifier ;) (declaration "undefined4 uVar12;" type_identifier identifier ;) (declaration "undefined4 uVar13;" type_identifier identifier ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "int *piVar15;" primitive_type (pointer_declarator "*piVar15" * identifier) ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "ulonglong local_a4;" type_identifier identifier ;) (declaration "size_t local_84;" primitive_type identifier ;) (declaration "char local_5c [72];" primitive_type (array_declarator "local_5c [72]" identifier [ number_literal ]) ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x1b8a9;" (assignment_expression "uStack_14 = 0x1b8a9" identifier = number_literal) ;) (if_statement "if (DAT_0002d1b8 == 0) {\n    puts("\f");\n  }\n  else {\n    DAT_0002d1b8 = 0;\n  }" if (parenthesized_expression "(DAT_0002d1b8 == 0)" ( (binary_expression "DAT_0002d1b8 == 0" identifier == number_literal) )) (compound_statement "{\n    puts("\f");\n  }" { (expression_statement "puts("\f");" (call_expression "puts("\f")" identifier (argument_list "("\f")" ( (string_literal ""\f"" " escape_sequence ") ))) ;) }) (else_clause "else {\n    DAT_0002d1b8 = 0;\n  }" else (compound_statement "{\n    DAT_0002d1b8 = 0;\n  }" { (expression_statement "DAT_0002d1b8 = 0;" (assignment_expression "DAT_0002d1b8 = 0" identifier = number_literal) ;) }))) (expression_statement "DAT_0002e170 = 0.0;" (assignment_expression "DAT_0002e170 = 0.0" identifier = number_literal) ;) (if_statement "if (DAT_0002e150 == 0) {\n    pcVar9 = (char *)dcgettext("gprof","Flat profile:\n",5);\n    printf(pcVar9);\n  }\n  else if (DAT_0002d1bc != 0) {\n    pcVar9 = (char *)dcgettext("gprof","\n\n\nflat profile:\n",5);\n    printf(pcVar9);\n    FUN_0001f820(*(undefined4 *)PTR_stdout_0002cfec);\n  }" if (parenthesized_expression "(DAT_0002e150 == 0)" ( (binary_expression "DAT_0002e150 == 0" identifier == number_literal) )) (compound_statement "{\n    pcVar9 = (char *)dcgettext("gprof","Flat profile:\n",5);\n    printf(pcVar9);\n  }" { (expression_statement "pcVar9 = (char *)dcgettext("gprof","Flat profile:\n",5);" (assignment_expression "pcVar9 = (char *)dcgettext("gprof","Flat profile:\n",5)" identifier = (cast_expression "(char *)dcgettext("gprof","Flat profile:\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext("gprof","Flat profile:\n",5)" identifier (argument_list "("gprof","Flat profile:\n",5)" ( (string_literal ""gprof"" " string_content ") , (string_literal ""Flat profile:\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "printf(pcVar9);" (call_expression "printf(pcVar9)" identifier (argument_list "(pcVar9)" ( identifier ))) ;) }) (else_clause "else if (DAT_0002d1bc != 0) {\n    pcVar9 = (char *)dcgettext("gprof","\n\n\nflat profile:\n",5);\n    printf(pcVar9);\n    FUN_0001f820(*(undefined4 *)PTR_stdout_0002cfec);\n  }" else (if_statement "if (DAT_0002d1bc != 0) {\n    pcVar9 = (char *)dcgettext("gprof","\n\n\nflat profile:\n",5);\n    printf(pcVar9);\n    FUN_0001f820(*(undefined4 *)PTR_stdout_0002cfec);\n  }" if (parenthesized_expression "(DAT_0002d1bc != 0)" ( (binary_expression "DAT_0002d1bc != 0" identifier != number_literal) )) (compound_statement "{\n    pcVar9 = (char *)dcgettext("gprof","\n\n\nflat profile:\n",5);\n    printf(pcVar9);\n    FUN_0001f820(*(undefined4 *)PTR_stdout_0002cfec);\n  }" { (expression_statement "pcVar9 = (char *)dcgettext("gprof","\n\n\nflat profile:\n",5);" (assignment_expression "pcVar9 = (char *)dcgettext("gprof","\n\n\nflat profile:\n",5)" identifier = (cast_expression "(char *)dcgettext("gprof","\n\n\nflat profile:\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext("gprof","\n\n\nflat profile:\n",5)" identifier (argument_list "("gprof","\n\n\nflat profile:\n",5)" ( (string_literal ""gprof"" " string_content ") , (string_literal ""\n\n\nflat profile:\n"" " escape_sequence escape_sequence escape_sequence string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "printf(pcVar9);" (call_expression "printf(pcVar9)" identifier (argument_list "(pcVar9)" ( identifier ))) ;) (expression_statement "FUN_0001f820(*(undefined4 *)PTR_stdout_0002cfec);" (call_expression "FUN_0001f820(*(undefined4 *)PTR_stdout_0002cfec)" identifier (argument_list "(*(undefined4 *)PTR_stdout_0002cfec)" ( (pointer_expression "*(undefined4 *)PTR_stdout_0002cfec" * (cast_expression "(undefined4 *)PTR_stdout_0002cfec" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))) ;) })))) (expression_statement "__base = (int *)xmalloc(DAT_0002e520 << 2);" (assignment_expression "__base = (int *)xmalloc(DAT_0002e520 << 2)" identifier = (cast_expression "(int *)xmalloc(DAT_0002e520 << 2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(DAT_0002e520 << 2)" identifier (argument_list "(DAT_0002e520 << 2)" ( (binary_expression "DAT_0002e520 << 2" identifier << number_literal) ))))) ;) (expression_statement "__nmemb = DAT_0002e520;" (assignment_expression "__nmemb = DAT_0002e520" identifier = identifier) ;) (if_statement "if (DAT_0002e520 != 0) {\n    piVar15 = __base + DAT_0002e520;\n    piVar7 = __base;\n    iVar14 = DAT_0002e524;\n    do {\n      *piVar7 = iVar14;\n      piVar7 = piVar7 + 1;\n      iVar14 = iVar14 + 0xfc;\n    } while (piVar15 != piVar7);\n  }" if (parenthesized_expression "(DAT_0002e520 != 0)" ( (binary_expression "DAT_0002e520 != 0" identifier != number_literal) )) (compound_statement "{\n    piVar15 = __base + DAT_0002e520;\n    piVar7 = __base;\n    iVar14 = DAT_0002e524;\n    do {\n      *piVar7 = iVar14;\n      piVar7 = piVar7 + 1;\n      iVar14 = iVar14 + 0xfc;\n    } while (piVar15 != piVar7);\n  }" { (expression_statement "piVar15 = __base + DAT_0002e520;" (assignment_expression "piVar15 = __base + DAT_0002e520" identifier = (binary_expression "__base + DAT_0002e520" identifier + identifier)) ;) (expression_statement "piVar7 = __base;" (assignment_expression "piVar7 = __base" identifier = identifier) ;) (expression_statement "iVar14 = DAT_0002e524;" (assignment_expression "iVar14 = DAT_0002e524" identifier = identifier) ;) (do_statement "do {\n      *piVar7 = iVar14;\n      piVar7 = piVar7 + 1;\n      iVar14 = iVar14 + 0xfc;\n    } while (piVar15 != piVar7);" do (compound_statement "{\n      *piVar7 = iVar14;\n      piVar7 = piVar7 + 1;\n      iVar14 = iVar14 + 0xfc;\n    }" { (expression_statement "*piVar7 = iVar14;" (assignment_expression "*piVar7 = iVar14" (pointer_expression "*piVar7" * identifier) = identifier) ;) (expression_statement "piVar7 = piVar7 + 1;" (assignment_expression "piVar7 = piVar7 + 1" identifier = (binary_expression "piVar7 + 1" identifier + number_literal)) ;) (expression_statement "iVar14 = iVar14 + 0xfc;" (assignment_expression "iVar14 = iVar14 + 0xfc" identifier = (binary_expression "iVar14 + 0xfc" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar15 != piVar7)" ( (binary_expression "piVar15 != piVar7" identifier != identifier) )) ;) })) (expression_statement "qsort(__base,__nmemb,4,FUN_0001ae50);" (call_expression "qsort(__base,__nmemb,4,FUN_0001ae50)" identifier (argument_list "(__base,__nmemb,4,FUN_0001ae50)" ( identifier , identifier , number_literal , identifier ))) ;) (if_statement "if (DAT_0002e150 != 0) {\n    local_84 = 5;\n    iVar14 = 0x6d;\n    goto LAB_0001ba65;\n  }" if (parenthesized_expression "(DAT_0002e150 != 0)" ( (binary_expression "DAT_0002e150 != 0" identifier != number_literal) )) (compound_statement "{\n    local_84 = 5;\n    iVar14 = 0x6d;\n    goto LAB_0001ba65;\n  }" { (expression_statement "local_84 = 5;" (assignment_expression "local_84 = 5" identifier = number_literal) ;) (expression_statement "iVar14 = 0x6d;" (assignment_expression "iVar14 = 0x6d" identifier = number_literal) ;) (goto_statement "goto LAB_0001ba65;" goto statement_identifier ;) })) (expression_statement "local_84 = DAT_0002e520;" (assignment_expression "local_84 = DAT_0002e520" identifier = identifier) ;) (if_statement "if (DAT_0002e520 == 0) {\nLAB_0001beb2:\n    iVar14 = 0x54;\n  }\n  else {\n    iVar14 = 0;\n    dVar1 = 0.0;\n    piVar15 = __base;\n    do {\n      iVar16 = *piVar15;\n      if (*(uint *)(iVar16 + 0x20) != 0) {\n        local_a4 = (ulonglong)*(uint *)(iVar16 + 0x20);\n        dVar2 = (*(double *)(iVar16 + 0xa8) + *(double *)(iVar16 + 0xbc)) / (double)local_a4;\n        if (dVar1 < dVar2) {\n          dVar1 = dVar2;\n          iVar14 = iVar16;\n        }\n      }\n      piVar15 = piVar15 + 1;\n    } while (__base + DAT_0002e520 != piVar15);\n    if (iVar14 != 0) {\n      if (*(int *)(iVar14 + 0x20) == 0) {\n        local_84 = 0;\n        goto LAB_0001beb2;\n      }\n      if (0.0 < dVar1) {\n        local_84 = 0;\n        pdVar8 = (double *)&DAT_00023db0;\n        dVar2 = DAT_00023e30;\n        while( true ) {\n          dVar2 = dVar2 * (dVar1 / (double)DAT_0002e15c);\n          if ((1.0 <= dVar2) && (dVar2 < (double)DAT_00023e2c)) {\n            iVar14 = (int)(char)(&DAT_00023da0)[local_84 * 0xc];\n            goto LAB_0001ba65;\n          }\n          local_84 = local_84 + 1;\n          if (local_84 == 0xb) break;\n          dVar2 = *pdVar8;\n          pdVar8 = (double *)((int)pdVar8 + 0xc);\n        }\n        iVar14 = 0;\n        goto LAB_0001ba65;\n      }\n    }\n    iVar14 = 0x54;\n    local_84 = 0;\n  }" if (parenthesized_expression "(DAT_0002e520 == 0)" ( (binary_expression "DAT_0002e520 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0001beb2:\n    iVar14 = 0x54;\n  }" { (labeled_statement "LAB_0001beb2:\n    iVar14 = 0x54;" statement_identifier : (expression_statement "iVar14 = 0x54;" (assignment_expression "iVar14 = 0x54" identifier = number_literal) ;)) }) (else_clause "else {\n    iVar14 = 0;\n    dVar1 = 0.0;\n    piVar15 = __base;\n    do {\n      iVar16 = *piVar15;\n      if (*(uint *)(iVar16 + 0x20) != 0) {\n        local_a4 = (ulonglong)*(uint *)(iVar16 + 0x20);\n        dVar2 = (*(double *)(iVar16 + 0xa8) + *(double *)(iVar16 + 0xbc)) / (double)local_a4;\n        if (dVar1 < dVar2) {\n          dVar1 = dVar2;\n          iVar14 = iVar16;\n        }\n      }\n      piVar15 = piVar15 + 1;\n    } while (__base + DAT_0002e520 != piVar15);\n    if (iVar14 != 0) {\n      if (*(int *)(iVar14 + 0x20) == 0) {\n        local_84 = 0;\n        goto LAB_0001beb2;\n      }\n      if (0.0 < dVar1) {\n        local_84 = 0;\n        pdVar8 = (double *)&DAT_00023db0;\n        dVar2 = DAT_00023e30;\n        while( true ) {\n          dVar2 = dVar2 * (dVar1 / (double)DAT_0002e15c);\n          if ((1.0 <= dVar2) && (dVar2 < (double)DAT_00023e2c)) {\n            iVar14 = (int)(char)(&DAT_00023da0)[local_84 * 0xc];\n            goto LAB_0001ba65;\n          }\n          local_84 = local_84 + 1;\n          if (local_84 == 0xb) break;\n          dVar2 = *pdVar8;\n          pdVar8 = (double *)((int)pdVar8 + 0xc);\n        }\n        iVar14 = 0;\n        goto LAB_0001ba65;\n      }\n    }\n    iVar14 = 0x54;\n    local_84 = 0;\n  }" else (compound_statement "{\n    iVar14 = 0;\n    dVar1 = 0.0;\n    piVar15 = __base;\n    do {\n      iVar16 = *piVar15;\n      if (*(uint *)(iVar16 + 0x20) != 0) {\n        local_a4 = (ulonglong)*(uint *)(iVar16 + 0x20);\n        dVar2 = (*(double *)(iVar16 + 0xa8) + *(double *)(iVar16 + 0xbc)) / (double)local_a4;\n        if (dVar1 < dVar2) {\n          dVar1 = dVar2;\n          iVar14 = iVar16;\n        }\n      }\n      piVar15 = piVar15 + 1;\n    } while (__base + DAT_0002e520 != piVar15);\n    if (iVar14 != 0) {\n      if (*(int *)(iVar14 + 0x20) == 0) {\n        local_84 = 0;\n        goto LAB_0001beb2;\n      }\n      if (0.0 < dVar1) {\n        local_84 = 0;\n        pdVar8 = (double *)&DAT_00023db0;\n        dVar2 = DAT_00023e30;\n        while( true ) {\n          dVar2 = dVar2 * (dVar1 / (double)DAT_0002e15c);\n          if ((1.0 <= dVar2) && (dVar2 < (double)DAT_00023e2c)) {\n            iVar14 = (int)(char)(&DAT_00023da0)[local_84 * 0xc];\n            goto LAB_0001ba65;\n          }\n          local_84 = local_84 + 1;\n          if (local_84 == 0xb) break;\n          dVar2 = *pdVar8;\n          pdVar8 = (double *)((int)pdVar8 + 0xc);\n        }\n        iVar14 = 0;\n        goto LAB_0001ba65;\n      }\n    }\n    iVar14 = 0x54;\n    local_84 = 0;\n  }" { (expression_statement "iVar14 = 0;" (assignment_expression "iVar14 = 0" identifier = number_literal) ;) (expression_statement "dVar1 = 0.0;" (assignment_expression "dVar1 = 0.0" identifier = number_literal) ;) (expression_statement "piVar15 = __base;" (assignment_expression "piVar15 = __base" identifier = identifier) ;) (do_statement "do {\n      iVar16 = *piVar15;\n      if (*(uint *)(iVar16 + 0x20) != 0) {\n        local_a4 = (ulonglong)*(uint *)(iVar16 + 0x20);\n        dVar2 = (*(double *)(iVar16 + 0xa8) + *(double *)(iVar16 + 0xbc)) / (double)local_a4;\n        if (dVar1 < dVar2) {\n          dVar1 = dVar2;\n          iVar14 = iVar16;\n        }\n      }\n      piVar15 = piVar15 + 1;\n    } while (__base + DAT_0002e520 != piVar15);" do (compound_statement "{\n      iVar16 = *piVar15;\n      if (*(uint *)(iVar16 + 0x20) != 0) {\n        local_a4 = (ulonglong)*(uint *)(iVar16 + 0x20);\n        dVar2 = (*(double *)(iVar16 + 0xa8) + *(double *)(iVar16 + 0xbc)) / (double)local_a4;\n        if (dVar1 < dVar2) {\n          dVar1 = dVar2;\n          iVar14 = iVar16;\n        }\n      }\n      piVar15 = piVar15 + 1;\n    }" { (expression_statement "iVar16 = *piVar15;" (assignment_expression "iVar16 = *piVar15" identifier = (pointer_expression "*piVar15" * identifier)) ;) (if_statement "if (*(uint *)(iVar16 + 0x20) != 0) {\n        local_a4 = (ulonglong)*(uint *)(iVar16 + 0x20);\n        dVar2 = (*(double *)(iVar16 + 0xa8) + *(double *)(iVar16 + 0xbc)) / (double)local_a4;\n        if (dVar1 < dVar2) {\n          dVar1 = dVar2;\n          iVar14 = iVar16;\n        }\n      }" if (parenthesized_expression "(*(uint *)(iVar16 + 0x20) != 0)" ( (binary_expression "*(uint *)(iVar16 + 0x20) != 0" (pointer_expression "*(uint *)(iVar16 + 0x20)" * (cast_expression "(uint *)(iVar16 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x20)" ( (binary_expression "iVar16 + 0x20" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n        local_a4 = (ulonglong)*(uint *)(iVar16 + 0x20);\n        dVar2 = (*(double *)(iVar16 + 0xa8) + *(double *)(iVar16 + 0xbc)) / (double)local_a4;\n        if (dVar1 < dVar2) {\n          dVar1 = dVar2;\n          iVar14 = iVar16;\n        }\n      }" { (expression_statement "local_a4 = (ulonglong)*(uint *)(iVar16 + 0x20);" (assignment_expression "local_a4 = (ulonglong)*(uint *)(iVar16 + 0x20)" identifier = (binary_expression "(ulonglong)*(uint *)(iVar16 + 0x20)" (parenthesized_expression "(ulonglong)" ( identifier )) * (cast_expression "(uint *)(iVar16 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x20)" ( (binary_expression "iVar16 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "dVar2 = (*(double *)(iVar16 + 0xa8) + *(double *)(iVar16 + 0xbc)) / (double)local_a4;" (assignment_expression "dVar2 = (*(double *)(iVar16 + 0xa8) + *(double *)(iVar16 + 0xbc)) / (double)local_a4" identifier = (binary_expression "(*(double *)(iVar16 + 0xa8) + *(double *)(iVar16 + 0xbc)) / (double)local_a4" (parenthesized_expression "(*(double *)(iVar16 + 0xa8) + *(double *)(iVar16 + 0xbc))" ( (binary_expression "*(double *)(iVar16 + 0xa8) + *(double *)(iVar16 + 0xbc)" (pointer_expression "*(double *)(iVar16 + 0xa8)" * (cast_expression "(double *)(iVar16 + 0xa8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0xa8)" ( (binary_expression "iVar16 + 0xa8" identifier + number_literal) )))) + (pointer_expression "*(double *)(iVar16 + 0xbc)" * (cast_expression "(double *)(iVar16 + 0xbc)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0xbc)" ( (binary_expression "iVar16 + 0xbc" identifier + number_literal) ))))) )) / (cast_expression "(double)local_a4" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if (dVar1 < dVar2) {\n          dVar1 = dVar2;\n          iVar14 = iVar16;\n        }" if (parenthesized_expression "(dVar1 < dVar2)" ( (binary_expression "dVar1 < dVar2" identifier < identifier) )) (compound_statement "{\n          dVar1 = dVar2;\n          iVar14 = iVar16;\n        }" { (expression_statement "dVar1 = dVar2;" (assignment_expression "dVar1 = dVar2" identifier = identifier) ;) (expression_statement "iVar14 = iVar16;" (assignment_expression "iVar14 = iVar16" identifier = identifier) ;) })) })) (expression_statement "piVar15 = piVar15 + 1;" (assignment_expression "piVar15 = piVar15 + 1" identifier = (binary_expression "piVar15 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(__base + DAT_0002e520 != piVar15)" ( (binary_expression "__base + DAT_0002e520 != piVar15" (binary_expression "__base + DAT_0002e520" identifier + identifier) != identifier) )) ;) (if_statement "if (iVar14 != 0) {\n      if (*(int *)(iVar14 + 0x20) == 0) {\n        local_84 = 0;\n        goto LAB_0001beb2;\n      }\n      if (0.0 < dVar1) {\n        local_84 = 0;\n        pdVar8 = (double *)&DAT_00023db0;\n        dVar2 = DAT_00023e30;\n        while( true ) {\n          dVar2 = dVar2 * (dVar1 / (double)DAT_0002e15c);\n          if ((1.0 <= dVar2) && (dVar2 < (double)DAT_00023e2c)) {\n            iVar14 = (int)(char)(&DAT_00023da0)[local_84 * 0xc];\n            goto LAB_0001ba65;\n          }\n          local_84 = local_84 + 1;\n          if (local_84 == 0xb) break;\n          dVar2 = *pdVar8;\n          pdVar8 = (double *)((int)pdVar8 + 0xc);\n        }\n        iVar14 = 0;\n        goto LAB_0001ba65;\n      }\n    }" if (parenthesized_expression "(iVar14 != 0)" ( (binary_expression "iVar14 != 0" identifier != number_literal) )) (compound_statement "{\n      if (*(int *)(iVar14 + 0x20) == 0) {\n        local_84 = 0;\n        goto LAB_0001beb2;\n      }\n      if (0.0 < dVar1) {\n        local_84 = 0;\n        pdVar8 = (double *)&DAT_00023db0;\n        dVar2 = DAT_00023e30;\n        while( true ) {\n          dVar2 = dVar2 * (dVar1 / (double)DAT_0002e15c);\n          if ((1.0 <= dVar2) && (dVar2 < (double)DAT_00023e2c)) {\n            iVar14 = (int)(char)(&DAT_00023da0)[local_84 * 0xc];\n            goto LAB_0001ba65;\n          }\n          local_84 = local_84 + 1;\n          if (local_84 == 0xb) break;\n          dVar2 = *pdVar8;\n          pdVar8 = (double *)((int)pdVar8 + 0xc);\n        }\n        iVar14 = 0;\n        goto LAB_0001ba65;\n      }\n    }" { (if_statement "if (*(int *)(iVar14 + 0x20) == 0) {\n        local_84 = 0;\n        goto LAB_0001beb2;\n      }" if (parenthesized_expression "(*(int *)(iVar14 + 0x20) == 0)" ( (binary_expression "*(int *)(iVar14 + 0x20) == 0" (pointer_expression "*(int *)(iVar14 + 0x20)" * (cast_expression "(int *)(iVar14 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x20)" ( (binary_expression "iVar14 + 0x20" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        local_84 = 0;\n        goto LAB_0001beb2;\n      }" { (expression_statement "local_84 = 0;" (assignment_expression "local_84 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0001beb2;" goto statement_identifier ;) })) (if_statement "if (0.0 < dVar1) {\n        local_84 = 0;\n        pdVar8 = (double *)&DAT_00023db0;\n        dVar2 = DAT_00023e30;\n        while( true ) {\n          dVar2 = dVar2 * (dVar1 / (double)DAT_0002e15c);\n          if ((1.0 <= dVar2) && (dVar2 < (double)DAT_00023e2c)) {\n            iVar14 = (int)(char)(&DAT_00023da0)[local_84 * 0xc];\n            goto LAB_0001ba65;\n          }\n          local_84 = local_84 + 1;\n          if (local_84 == 0xb) break;\n          dVar2 = *pdVar8;\n          pdVar8 = (double *)((int)pdVar8 + 0xc);\n        }\n        iVar14 = 0;\n        goto LAB_0001ba65;\n      }" if (parenthesized_expression "(0.0 < dVar1)" ( (binary_expression "0.0 < dVar1" number_literal < identifier) )) (compound_statement "{\n        local_84 = 0;\n        pdVar8 = (double *)&DAT_00023db0;\n        dVar2 = DAT_00023e30;\n        while( true ) {\n          dVar2 = dVar2 * (dVar1 / (double)DAT_0002e15c);\n          if ((1.0 <= dVar2) && (dVar2 < (double)DAT_00023e2c)) {\n            iVar14 = (int)(char)(&DAT_00023da0)[local_84 * 0xc];\n            goto LAB_0001ba65;\n          }\n          local_84 = local_84 + 1;\n          if (local_84 == 0xb) break;\n          dVar2 = *pdVar8;\n          pdVar8 = (double *)((int)pdVar8 + 0xc);\n        }\n        iVar14 = 0;\n        goto LAB_0001ba65;\n      }" { (expression_statement "local_84 = 0;" (assignment_expression "local_84 = 0" identifier = number_literal) ;) (expression_statement "pdVar8 = (double *)&DAT_00023db0;" (assignment_expression "pdVar8 = (double *)&DAT_00023db0" identifier = (cast_expression "(double *)&DAT_00023db0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00023db0" & identifier))) ;) (expression_statement "dVar2 = DAT_00023e30;" (assignment_expression "dVar2 = DAT_00023e30" identifier = identifier) ;) (while_statement "while( true ) {\n          dVar2 = dVar2 * (dVar1 / (double)DAT_0002e15c);\n          if ((1.0 <= dVar2) && (dVar2 < (double)DAT_00023e2c)) {\n            iVar14 = (int)(char)(&DAT_00023da0)[local_84 * 0xc];\n            goto LAB_0001ba65;\n          }\n          local_84 = local_84 + 1;\n          if (local_84 == 0xb) break;\n          dVar2 = *pdVar8;\n          pdVar8 = (double *)((int)pdVar8 + 0xc);\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          dVar2 = dVar2 * (dVar1 / (double)DAT_0002e15c);\n          if ((1.0 <= dVar2) && (dVar2 < (double)DAT_00023e2c)) {\n            iVar14 = (int)(char)(&DAT_00023da0)[local_84 * 0xc];\n            goto LAB_0001ba65;\n          }\n          local_84 = local_84 + 1;\n          if (local_84 == 0xb) break;\n          dVar2 = *pdVar8;\n          pdVar8 = (double *)((int)pdVar8 + 0xc);\n        }" { (expression_statement "dVar2 = dVar2 * (dVar1 / (double)DAT_0002e15c);" (assignment_expression "dVar2 = dVar2 * (dVar1 / (double)DAT_0002e15c)" identifier = (binary_expression "dVar2 * (dVar1 / (double)DAT_0002e15c)" identifier * (parenthesized_expression "(dVar1 / (double)DAT_0002e15c)" ( (binary_expression "dVar1 / (double)DAT_0002e15c" identifier / (cast_expression "(double)DAT_0002e15c" ( (type_descriptor "double" primitive_type) ) identifier)) )))) ;) (if_statement "if ((1.0 <= dVar2) && (dVar2 < (double)DAT_00023e2c)) {\n            iVar14 = (int)(char)(&DAT_00023da0)[local_84 * 0xc];\n            goto LAB_0001ba65;\n          }" if (parenthesized_expression "((1.0 <= dVar2) && (dVar2 < (double)DAT_00023e2c))" ( (binary_expression "(1.0 <= dVar2) && (dVar2 < (double)DAT_00023e2c)" (parenthesized_expression "(1.0 <= dVar2)" ( (binary_expression "1.0 <= dVar2" number_literal <= identifier) )) && (parenthesized_expression "(dVar2 < (double)DAT_00023e2c)" ( (binary_expression "dVar2 < (double)DAT_00023e2c" identifier < (cast_expression "(double)DAT_00023e2c" ( (type_descriptor "double" primitive_type) ) identifier)) ))) )) (compound_statement "{\n            iVar14 = (int)(char)(&DAT_00023da0)[local_84 * 0xc];\n            goto LAB_0001ba65;\n          }" { (expression_statement "iVar14 = (int)(char)(&DAT_00023da0)[local_84 * 0xc];" (assignment_expression "iVar14 = (int)(char)(&DAT_00023da0)[local_84 * 0xc]" identifier = (cast_expression "(int)(char)(&DAT_00023da0)[local_84 * 0xc]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)(&DAT_00023da0)[local_84 * 0xc]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "(&DAT_00023da0)[local_84 * 0xc]" (parenthesized_expression "(&DAT_00023da0)" ( (pointer_expression "&DAT_00023da0" & identifier) )) [ (binary_expression "local_84 * 0xc" identifier * number_literal) ])))) ;) (goto_statement "goto LAB_0001ba65;" goto statement_identifier ;) })) (expression_statement "local_84 = local_84 + 1;" (assignment_expression "local_84 = local_84 + 1" identifier = (binary_expression "local_84 + 1" identifier + number_literal)) ;) (if_statement "if (local_84 == 0xb) break;" if (parenthesized_expression "(local_84 == 0xb)" ( (binary_expression "local_84 == 0xb" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "dVar2 = *pdVar8;" (assignment_expression "dVar2 = *pdVar8" identifier = (pointer_expression "*pdVar8" * identifier)) ;) (expression_statement "pdVar8 = (double *)((int)pdVar8 + 0xc);" (assignment_expression "pdVar8 = (double *)((int)pdVar8 + 0xc)" identifier = (cast_expression "(double *)((int)pdVar8 + 0xc)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar8 + 0xc)" ( (binary_expression "(int)pdVar8 + 0xc" (cast_expression "(int)pdVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) })) (expression_statement "iVar14 = 0;" (assignment_expression "iVar14 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0001ba65;" goto statement_identifier ;) })) })) (expression_statement "iVar14 = 0x54;" (assignment_expression "iVar14 = 0x54" identifier = number_literal) ;) (expression_statement "local_84 = 0;" (assignment_expression "local_84 = 0" identifier = number_literal) ;) }))) (labeled_statement "LAB_0001ba65:\n  iVar16 = (int)DAT_0002d4a4;" statement_identifier : (expression_statement "iVar16 = (int)DAT_0002d4a4;" (assignment_expression "iVar16 = (int)DAT_0002d4a4" identifier = (cast_expression "(int)DAT_0002d4a4" ( (type_descriptor "int" primitive_type) ) identifier)) ;)) (expression_statement "pcVar9 = (char *)dcgettext("gprof","%c%c/call",5);" (assignment_expression "pcVar9 = (char *)dcgettext("gprof","%c%c/call",5)" identifier = (cast_expression "(char *)dcgettext("gprof","%c%c/call",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext("gprof","%c%c/call",5)" identifier (argument_list "("gprof","%c%c/call",5)" ( (string_literal ""gprof"" " string_content ") , (string_literal ""%c%c/call"" " string_content ") , number_literal ))))) ;) (expression_statement "sprintf(local_5c,pcVar9,iVar14,iVar16);" (call_expression "sprintf(local_5c,pcVar9,iVar14,iVar16)" identifier (argument_list "(local_5c,pcVar9,iVar14,iVar16)" ( identifier , identifier , identifier , identifier ))) ;) (if_statement "if (DAT_0002e150 == 0) {\n    fVar4 = DAT_00023e28 / (float)DAT_0002e15c;\n    pcVar9 = (char *)dcgettext("gprof","\nEach sample counts as %g %s.\n",5);\n    printf(pcVar9,SUB84((double)fVar4,0),(int)((ulonglong)(double)fVar4 >> 0x20),s_seconds_0002d4a8)\n    ;\n  }\n  else {\n    dVar1 = ROUND(DAT_0002e518);\n    pcVar9 = (char *)dcgettext("gprof","\ngranularity: each sample hit covers %ld byte(s)",5);\n    printf(pcVar9,(int)dVar1 * 2);\n    dVar1 = DAT_0002e168;\n    if (0.0 < DAT_0002e168) {\n      dVar2 = DAT_0002e168 / (double)DAT_0002e15c;\n      pcVar9 = (char *)dcgettext("gprof"," for %.2f%% of %.2f %s\n\n",5);\n      printf(pcVar9,SUB84((double)_DAT_000221d8 / dVar1,0),\n             (int)((ulonglong)((double)_DAT_000221d8 / dVar1) >> 0x20),SUB84(dVar2,0),\n             (int)((ulonglong)dVar2 >> 0x20),s_seconds_0002d4a8);\n    }\n  }" if (parenthesized_expression "(DAT_0002e150 == 0)" ( (binary_expression "DAT_0002e150 == 0" identifier == number_literal) )) (compound_statement "{\n    fVar4 = DAT_00023e28 / (float)DAT_0002e15c;\n    pcVar9 = (char *)dcgettext("gprof","\nEach sample counts as %g %s.\n",5);\n    printf(pcVar9,SUB84((double)fVar4,0),(int)((ulonglong)(double)fVar4 >> 0x20),s_seconds_0002d4a8)\n    ;\n  }" { (expression_statement "fVar4 = DAT_00023e28 / (float)DAT_0002e15c;" (assignment_expression "fVar4 = DAT_00023e28 / (float)DAT_0002e15c" identifier = (binary_expression "DAT_00023e28 / (float)DAT_0002e15c" identifier / (cast_expression "(float)DAT_0002e15c" ( (type_descriptor "float" primitive_type) ) identifier))) ;) (expression_statement "pcVar9 = (char *)dcgettext("gprof","\nEach sample counts as %g %s.\n",5);" (assignment_expression "pcVar9 = (char *)dcgettext("gprof","\nEach sample counts as %g %s.\n",5)" identifier = (cast_expression "(char *)dcgettext("gprof","\nEach sample counts as %g %s.\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext("gprof","\nEach sample counts as %g %s.\n",5)" identifier (argument_list "("gprof","\nEach sample counts as %g %s.\n",5)" ( (string_literal ""gprof"" " string_content ") , (string_literal ""\nEach sample counts as %g %s.\n"" " escape_sequence string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "printf(pcVar9,SUB84((double)fVar4,0),(int)((ulonglong)(double)fVar4 >> 0x20),s_seconds_0002d4a8)\n    ;" (call_expression "printf(pcVar9,SUB84((double)fVar4,0),(int)((ulonglong)(double)fVar4 >> 0x20),s_seconds_0002d4a8)" identifier (argument_list "(pcVar9,SUB84((double)fVar4,0),(int)((ulonglong)(double)fVar4 >> 0x20),s_seconds_0002d4a8)" ( identifier , (call_expression "SUB84((double)fVar4,0)" identifier (argument_list "((double)fVar4,0)" ( (cast_expression "(double)fVar4" ( (type_descriptor "double" primitive_type) ) identifier) , number_literal ))) , (cast_expression "(int)((ulonglong)(double)fVar4 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)(double)fVar4 >> 0x20)" ( (binary_expression "(ulonglong)(double)fVar4 >> 0x20" (cast_expression "(ulonglong)(double)fVar4" ( (type_descriptor "ulonglong" type_identifier) ) (cast_expression "(double)fVar4" ( (type_descriptor "double" primitive_type) ) identifier)) >> number_literal) ))) , identifier ))) ;) }) (else_clause "else {\n    dVar1 = ROUND(DAT_0002e518);\n    pcVar9 = (char *)dcgettext("gprof","\ngranularity: each sample hit covers %ld byte(s)",5);\n    printf(pcVar9,(int)dVar1 * 2);\n    dVar1 = DAT_0002e168;\n    if (0.0 < DAT_0002e168) {\n      dVar2 = DAT_0002e168 / (double)DAT_0002e15c;\n      pcVar9 = (char *)dcgettext("gprof"," for %.2f%% of %.2f %s\n\n",5);\n      printf(pcVar9,SUB84((double)_DAT_000221d8 / dVar1,0),\n             (int)((ulonglong)((double)_DAT_000221d8 / dVar1) >> 0x20),SUB84(dVar2,0),\n             (int)((ulonglong)dVar2 >> 0x20),s_seconds_0002d4a8);\n    }\n  }" else (compound_statement "{\n    dVar1 = ROUND(DAT_0002e518);\n    pcVar9 = (char *)dcgettext("gprof","\ngranularity: each sample hit covers %ld byte(s)",5);\n    printf(pcVar9,(int)dVar1 * 2);\n    dVar1 = DAT_0002e168;\n    if (0.0 < DAT_0002e168) {\n      dVar2 = DAT_0002e168 / (double)DAT_0002e15c;\n      pcVar9 = (char *)dcgettext("gprof"," for %.2f%% of %.2f %s\n\n",5);\n      printf(pcVar9,SUB84((double)_DAT_000221d8 / dVar1,0),\n             (int)((ulonglong)((double)_DAT_000221d8 / dVar1) >> 0x20),SUB84(dVar2,0),\n             (int)((ulonglong)dVar2 >> 0x20),s_seconds_0002d4a8);\n    }\n  }" { (expression_statement "dVar1 = ROUND(DAT_0002e518);" (assignment_expression "dVar1 = ROUND(DAT_0002e518)" identifier = (call_expression "ROUND(DAT_0002e518)" identifier (argument_list "(DAT_0002e518)" ( identifier )))) ;) (expression_statement "pcVar9 = (char *)dcgettext("gprof","\ngranularity: each sample hit covers %ld byte(s)",5);" (assignment_expression "pcVar9 = (char *)dcgettext("gprof","\ngranularity: each sample hit covers %ld byte(s)",5)" identifier = (cast_expression "(char *)dcgettext("gprof","\ngranularity: each sample hit covers %ld byte(s)",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext("gprof","\ngranularity: each sample hit covers %ld byte(s)",5)" identifier (argument_list "("gprof","\ngranularity: each sample hit covers %ld byte(s)",5)" ( (string_literal ""gprof"" " string_content ") , (string_literal ""\ngranularity: each sample hit covers %ld byte(s)"" " escape_sequence string_content ") , number_literal ))))) ;) (expression_statement "printf(pcVar9,(int)dVar1 * 2);" (call_expression "printf(pcVar9,(int)dVar1 * 2)" identifier (argument_list "(pcVar9,(int)dVar1 * 2)" ( identifier , (binary_expression "(int)dVar1 * 2" (cast_expression "(int)dVar1" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) ))) ;) (expression_statement "dVar1 = DAT_0002e168;" (assignment_expression "dVar1 = DAT_0002e168" identifier = identifier) ;) (if_statement "if (0.0 < DAT_0002e168) {\n      dVar2 = DAT_0002e168 / (double)DAT_0002e15c;\n      pcVar9 = (char *)dcgettext("gprof"," for %.2f%% of %.2f %s\n\n",5);\n      printf(pcVar9,SUB84((double)_DAT_000221d8 / dVar1,0),\n             (int)((ulonglong)((double)_DAT_000221d8 / dVar1) >> 0x20),SUB84(dVar2,0),\n             (int)((ulonglong)dVar2 >> 0x20),s_seconds_0002d4a8);\n    }" if (parenthesized_expression "(0.0 < DAT_0002e168)" ( (binary_expression "0.0 < DAT_0002e168" number_literal < identifier) )) (compound_statement "{\n      dVar2 = DAT_0002e168 / (double)DAT_0002e15c;\n      pcVar9 = (char *)dcgettext("gprof"," for %.2f%% of %.2f %s\n\n",5);\n      printf(pcVar9,SUB84((double)_DAT_000221d8 / dVar1,0),\n             (int)((ulonglong)((double)_DAT_000221d8 / dVar1) >> 0x20),SUB84(dVar2,0),\n             (int)((ulonglong)dVar2 >> 0x20),s_seconds_0002d4a8);\n    }" { (expression_statement "dVar2 = DAT_0002e168 / (double)DAT_0002e15c;" (assignment_expression "dVar2 = DAT_0002e168 / (double)DAT_0002e15c" identifier = (binary_expression "DAT_0002e168 / (double)DAT_0002e15c" identifier / (cast_expression "(double)DAT_0002e15c" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (expression_statement "pcVar9 = (char *)dcgettext("gprof"," for %.2f%% of %.2f %s\n\n",5);" (assignment_expression "pcVar9 = (char *)dcgettext("gprof"," for %.2f%% of %.2f %s\n\n",5)" identifier = (cast_expression "(char *)dcgettext("gprof"," for %.2f%% of %.2f %s\n\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext("gprof"," for %.2f%% of %.2f %s\n\n",5)" identifier (argument_list "("gprof"," for %.2f%% of %.2f %s\n\n",5)" ( (string_literal ""gprof"" " string_content ") , (string_literal "" for %.2f%% of %.2f %s\n\n"" " string_content escape_sequence escape_sequence ") , number_literal ))))) ;) (expression_statement "printf(pcVar9,SUB84((double)_DAT_000221d8 / dVar1,0),\n             (int)((ulonglong)((double)_DAT_000221d8 / dVar1) >> 0x20),SUB84(dVar2,0),\n             (int)((ulonglong)dVar2 >> 0x20),s_seconds_0002d4a8);" (call_expression "printf(pcVar9,SUB84((double)_DAT_000221d8 / dVar1,0),\n             (int)((ulonglong)((double)_DAT_000221d8 / dVar1) >> 0x20),SUB84(dVar2,0),\n             (int)((ulonglong)dVar2 >> 0x20),s_seconds_0002d4a8)" identifier (argument_list "(pcVar9,SUB84((double)_DAT_000221d8 / dVar1,0),\n             (int)((ulonglong)((double)_DAT_000221d8 / dVar1) >> 0x20),SUB84(dVar2,0),\n             (int)((ulonglong)dVar2 >> 0x20),s_seconds_0002d4a8)" ( identifier , (call_expression "SUB84((double)_DAT_000221d8 / dVar1,0)" identifier (argument_list "((double)_DAT_000221d8 / dVar1,0)" ( (binary_expression "(double)_DAT_000221d8 / dVar1" (cast_expression "(double)_DAT_000221d8" ( (type_descriptor "double" primitive_type) ) identifier) / identifier) , number_literal ))) , (cast_expression "(int)((ulonglong)((double)_DAT_000221d8 / dVar1) >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)((double)_DAT_000221d8 / dVar1) >> 0x20)" ( (binary_expression "(ulonglong)((double)_DAT_000221d8 / dVar1) >> 0x20" (call_expression "(ulonglong)((double)_DAT_000221d8 / dVar1)" (parenthesized_expression "(ulonglong)" ( identifier )) (argument_list "((double)_DAT_000221d8 / dVar1)" ( (binary_expression "(double)_DAT_000221d8 / dVar1" (cast_expression "(double)_DAT_000221d8" ( (type_descriptor "double" primitive_type) ) identifier) / identifier) ))) >> number_literal) ))) , (call_expression "SUB84(dVar2,0)" identifier (argument_list "(dVar2,0)" ( identifier , number_literal ))) , (cast_expression "(int)((ulonglong)dVar2 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar2 >> 0x20)" ( (binary_expression "(ulonglong)dVar2 >> 0x20" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , identifier ))) ;) })) }))) (if_statement "if (DAT_0002e168 <= 0.0) {\n    pcVar9 = (char *)dcgettext("gprof"," no time accumulated\n\n",5);\n    printf(pcVar9);\n    DAT_0002e168 = 1.0;\n  }" if (parenthesized_expression "(DAT_0002e168 <= 0.0)" ( (binary_expression "DAT_0002e168 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n    pcVar9 = (char *)dcgettext("gprof"," no time accumulated\n\n",5);\n    printf(pcVar9);\n    DAT_0002e168 = 1.0;\n  }" { (expression_statement "pcVar9 = (char *)dcgettext("gprof"," no time accumulated\n\n",5);" (assignment_expression "pcVar9 = (char *)dcgettext("gprof"," no time accumulated\n\n",5)" identifier = (cast_expression "(char *)dcgettext("gprof"," no time accumulated\n\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext("gprof"," no time accumulated\n\n",5)" identifier (argument_list "("gprof"," no time accumulated\n\n",5)" ( (string_literal ""gprof"" " string_content ") , (string_literal "" no time accumulated\n\n"" " string_content escape_sequence escape_sequence ") , number_literal ))))) ;) (expression_statement "printf(pcVar9);" (call_expression "printf(pcVar9)" identifier (argument_list "(pcVar9)" ( identifier ))) ;) (expression_statement "DAT_0002e168 = 1.0;" (assignment_expression "DAT_0002e168 = 1.0" identifier = number_literal) ;) })) (expression_statement "uVar10 = dcgettext("gprof","total ",5);" (assignment_expression "uVar10 = dcgettext("gprof","total ",5)" identifier = (call_expression "dcgettext("gprof","total ",5)" identifier (argument_list "("gprof","total ",5)" ( (string_literal ""gprof"" " string_content ") , (string_literal ""total "" " string_content ") , number_literal )))) ;) (expression_statement "uVar11 = dcgettext("gprof","self  ",5);" (assignment_expression "uVar11 = dcgettext("gprof","self  ",5)" identifier = (call_expression "dcgettext("gprof","self  ",5)" identifier (argument_list "("gprof","self  ",5)" ( (string_literal ""gprof"" " string_content ") , (string_literal ""self  "" " string_content ") , number_literal )))) ;) (expression_statement "uVar12 = dcgettext("gprof","self  ",5);" (assignment_expression "uVar12 = dcgettext("gprof","self  ",5)" identifier = (call_expression "dcgettext("gprof","self  ",5)" identifier (argument_list "("gprof","self  ",5)" ( (string_literal ""gprof"" " string_content ") , (string_literal ""self  "" " string_content ") , number_literal )))) ;) (expression_statement "uVar13 = dcgettext("gprof","cumulative",5);" (assignment_expression "uVar13 = dcgettext("gprof","cumulative",5)" identifier = (call_expression "dcgettext("gprof","cumulative",5)" identifier (argument_list "("gprof","cumulative",5)" ( (string_literal ""gprof"" " string_content ") , (string_literal ""cumulative"" " string_content ") , number_literal )))) ;) (expression_statement "printf("%5.5s %10.10s %8.8s %8.8s %8.8s %8.8s  %-8.8s\n",&DAT_00023d2f,uVar13,uVar12,"",uVar11,\n         uVar10,"");" (call_expression "printf("%5.5s %10.10s %8.8s %8.8s %8.8s %8.8s  %-8.8s\n",&DAT_00023d2f,uVar13,uVar12,"",uVar11,\n         uVar10,"")" identifier (argument_list "("%5.5s %10.10s %8.8s %8.8s %8.8s %8.8s  %-8.8s\n",&DAT_00023d2f,uVar13,uVar12,"",uVar11,\n         uVar10,"")" ( (string_literal ""%5.5s %10.10s %8.8s %8.8s %8.8s %8.8s  %-8.8s\n"" " string_content escape_sequence ") , (pointer_expression "&DAT_00023d2f" & identifier) , identifier , identifier , (string_literal """" " ") , identifier , identifier , (string_literal """" " ") ))) ;) (expression_statement "uVar10 = dcgettext("gprof",&DAT_000229c1,5);" (assignment_expression "uVar10 = dcgettext("gprof",&DAT_000229c1,5)" identifier = (call_expression "dcgettext("gprof",&DAT_000229c1,5)" identifier (argument_list "("gprof",&DAT_000229c1,5)" ( (string_literal ""gprof"" " string_content ") , (pointer_expression "&DAT_000229c1" & identifier) , number_literal )))) ;) (expression_statement "uVar11 = dcgettext("gprof","calls",5);" (assignment_expression "uVar11 = dcgettext("gprof","calls",5)" identifier = (call_expression "dcgettext("gprof","calls",5)" identifier (argument_list "("gprof","calls",5)" ( (string_literal ""gprof"" " string_content ") , (string_literal ""calls"" " string_content ") , number_literal )))) ;) (expression_statement "uVar12 = dcgettext("gprof",&DAT_000229d8,5);" (assignment_expression "uVar12 = dcgettext("gprof",&DAT_000229d8,5)" identifier = (call_expression "dcgettext("gprof",&DAT_000229d8,5)" identifier (argument_list "("gprof",&DAT_000229d8,5)" ( (string_literal ""gprof"" " string_content ") , (pointer_expression "&DAT_000229d8" & identifier) , number_literal )))) ;) (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;) (expression_statement "printf("%5.5s %9.9s  %8.8s %8.8s %8.8s %8.8s  %-8.8s\n",uVar12,s_seconds_0002d4a8,\n         s_seconds_0002d4a8,uVar11,local_5c,local_5c,uVar10);" (call_expression "printf("%5.5s %9.9s  %8.8s %8.8s %8.8s %8.8s  %-8.8s\n",uVar12,s_seconds_0002d4a8,\n         s_seconds_0002d4a8,uVar11,local_5c,local_5c,uVar10)" identifier (argument_list "("%5.5s %9.9s  %8.8s %8.8s %8.8s %8.8s  %-8.8s\n",uVar12,s_seconds_0002d4a8,\n         s_seconds_0002d4a8,uVar11,local_5c,local_5c,uVar10)" ( (string_literal ""%5.5s %9.9s  %8.8s %8.8s %8.8s %8.8s  %-8.8s\n"" " string_content escape_sequence ") , identifier , identifier , identifier , identifier , identifier , identifier , identifier ))) ;) (if_statement "if (DAT_0002e520 != 0) {\n    do {\n      while( true ) {\n        uVar10 = *(undefined4 *)__base[uVar17];\n        uVar11 = ((undefined4 *)__base[uVar17])[1];\n        iVar14 = FUN_0001d480(&DAT_0002e570,uVar10,uVar11);\n        if (iVar14 == 0) break;\nLAB_0001bc00:\n        dVar1 = *(double *)(&UNK_00023da4 + local_84 * 0xc);\n        iVar14 = __base[uVar17];\n        dVar2 = *(double *)(iVar14 + 0xa8);\n        if (((DAT_0002d1c0 == 0) || (*(int *)(iVar14 + 0x20) != 0)) || (dVar2 != 0.0)) {\n          DAT_0002e170 = DAT_0002e170 + dVar2;\n          dVar5 = dVar2 / (double)DAT_0002e15c;\n          dVar6 = DAT_0002e170 / (double)DAT_0002e15c;\n          uVar12 = SUB84(dVar5,0);\n          uVar13 = (undefined4)((ulonglong)dVar5 >> 0x20);\n          uVar10 = SUB84(dVar6,0);\n          uVar11 = (undefined4)((ulonglong)dVar6 >> 0x20);\n          if (DAT_0002e150 == 0) {\n            if (DAT_0002e168 <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;\n            }\n            printf("%6.2f %9.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11,\n                   uVar12,uVar13);\n          }\n          else {\n            if (DAT_0002e168 <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;\n            }\n            printf("%5.1f %10.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11\n                   ,uVar12,uVar13);\n          }\n          uVar3 = *(uint *)(iVar14 + 0x20);\n          if (uVar3 == 0) {\n            printf(" %8.8s %8.8s %8.8s  ","","","");\n          }\n          else {\n            dVar2 = (((*(double *)(iVar14 + 0xbc) + *(double *)(iVar14 + 0xa8)) * dVar1) /\n                    (double)DAT_0002e15c) / (double)uVar3;\n            dVar1 = ((dVar1 * *(double *)(iVar14 + 0xa8)) / (double)DAT_0002e15c) / (double)uVar3;\n            printf(" %8lu %8.2f %8.2f  ",uVar3,SUB84(dVar1,0),(int)((ulonglong)dVar1 >> 0x20),\n                   SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar13);\n          }\n          if (DAT_0002e150 == 0) {\n            FUN_0001df00(iVar14);\n          }\n          else {\n            FUN_0001e170(iVar14);\n          }\n          putchar(10);\n        }\nLAB_0001bd38:\n        uVar17 = uVar17 + 1;\n        if (DAT_0002e520 <= uVar17) goto LAB_0001bda0;\n      }\n      if (DAT_0002e570 != 0) goto LAB_0001bd38;\n      iVar14 = FUN_0001d480(&DAT_0002e57c,uVar10,uVar11);\n      if (iVar14 == 0) goto LAB_0001bc00;\n      uVar17 = uVar17 + 1;\n    } while (uVar17 < DAT_0002e520);\n  }" if (parenthesized_expression "(DAT_0002e520 != 0)" ( (binary_expression "DAT_0002e520 != 0" identifier != number_literal) )) (compound_statement "{\n    do {\n      while( true ) {\n        uVar10 = *(undefined4 *)__base[uVar17];\n        uVar11 = ((undefined4 *)__base[uVar17])[1];\n        iVar14 = FUN_0001d480(&DAT_0002e570,uVar10,uVar11);\n        if (iVar14 == 0) break;\nLAB_0001bc00:\n        dVar1 = *(double *)(&UNK_00023da4 + local_84 * 0xc);\n        iVar14 = __base[uVar17];\n        dVar2 = *(double *)(iVar14 + 0xa8);\n        if (((DAT_0002d1c0 == 0) || (*(int *)(iVar14 + 0x20) != 0)) || (dVar2 != 0.0)) {\n          DAT_0002e170 = DAT_0002e170 + dVar2;\n          dVar5 = dVar2 / (double)DAT_0002e15c;\n          dVar6 = DAT_0002e170 / (double)DAT_0002e15c;\n          uVar12 = SUB84(dVar5,0);\n          uVar13 = (undefined4)((ulonglong)dVar5 >> 0x20);\n          uVar10 = SUB84(dVar6,0);\n          uVar11 = (undefined4)((ulonglong)dVar6 >> 0x20);\n          if (DAT_0002e150 == 0) {\n            if (DAT_0002e168 <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;\n            }\n            printf("%6.2f %9.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11,\n                   uVar12,uVar13);\n          }\n          else {\n            if (DAT_0002e168 <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;\n            }\n            printf("%5.1f %10.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11\n                   ,uVar12,uVar13);\n          }\n          uVar3 = *(uint *)(iVar14 + 0x20);\n          if (uVar3 == 0) {\n            printf(" %8.8s %8.8s %8.8s  ","","","");\n          }\n          else {\n            dVar2 = (((*(double *)(iVar14 + 0xbc) + *(double *)(iVar14 + 0xa8)) * dVar1) /\n                    (double)DAT_0002e15c) / (double)uVar3;\n            dVar1 = ((dVar1 * *(double *)(iVar14 + 0xa8)) / (double)DAT_0002e15c) / (double)uVar3;\n            printf(" %8lu %8.2f %8.2f  ",uVar3,SUB84(dVar1,0),(int)((ulonglong)dVar1 >> 0x20),\n                   SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar13);\n          }\n          if (DAT_0002e150 == 0) {\n            FUN_0001df00(iVar14);\n          }\n          else {\n            FUN_0001e170(iVar14);\n          }\n          putchar(10);\n        }\nLAB_0001bd38:\n        uVar17 = uVar17 + 1;\n        if (DAT_0002e520 <= uVar17) goto LAB_0001bda0;\n      }\n      if (DAT_0002e570 != 0) goto LAB_0001bd38;\n      iVar14 = FUN_0001d480(&DAT_0002e57c,uVar10,uVar11);\n      if (iVar14 == 0) goto LAB_0001bc00;\n      uVar17 = uVar17 + 1;\n    } while (uVar17 < DAT_0002e520);\n  }" { (do_statement "do {\n      while( true ) {\n        uVar10 = *(undefined4 *)__base[uVar17];\n        uVar11 = ((undefined4 *)__base[uVar17])[1];\n        iVar14 = FUN_0001d480(&DAT_0002e570,uVar10,uVar11);\n        if (iVar14 == 0) break;\nLAB_0001bc00:\n        dVar1 = *(double *)(&UNK_00023da4 + local_84 * 0xc);\n        iVar14 = __base[uVar17];\n        dVar2 = *(double *)(iVar14 + 0xa8);\n        if (((DAT_0002d1c0 == 0) || (*(int *)(iVar14 + 0x20) != 0)) || (dVar2 != 0.0)) {\n          DAT_0002e170 = DAT_0002e170 + dVar2;\n          dVar5 = dVar2 / (double)DAT_0002e15c;\n          dVar6 = DAT_0002e170 / (double)DAT_0002e15c;\n          uVar12 = SUB84(dVar5,0);\n          uVar13 = (undefined4)((ulonglong)dVar5 >> 0x20);\n          uVar10 = SUB84(dVar6,0);\n          uVar11 = (undefined4)((ulonglong)dVar6 >> 0x20);\n          if (DAT_0002e150 == 0) {\n            if (DAT_0002e168 <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;\n            }\n            printf("%6.2f %9.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11,\n                   uVar12,uVar13);\n          }\n          else {\n            if (DAT_0002e168 <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;\n            }\n            printf("%5.1f %10.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11\n                   ,uVar12,uVar13);\n          }\n          uVar3 = *(uint *)(iVar14 + 0x20);\n          if (uVar3 == 0) {\n            printf(" %8.8s %8.8s %8.8s  ","","","");\n          }\n          else {\n            dVar2 = (((*(double *)(iVar14 + 0xbc) + *(double *)(iVar14 + 0xa8)) * dVar1) /\n                    (double)DAT_0002e15c) / (double)uVar3;\n            dVar1 = ((dVar1 * *(double *)(iVar14 + 0xa8)) / (double)DAT_0002e15c) / (double)uVar3;\n            printf(" %8lu %8.2f %8.2f  ",uVar3,SUB84(dVar1,0),(int)((ulonglong)dVar1 >> 0x20),\n                   SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar13);\n          }\n          if (DAT_0002e150 == 0) {\n            FUN_0001df00(iVar14);\n          }\n          else {\n            FUN_0001e170(iVar14);\n          }\n          putchar(10);\n        }\nLAB_0001bd38:\n        uVar17 = uVar17 + 1;\n        if (DAT_0002e520 <= uVar17) goto LAB_0001bda0;\n      }\n      if (DAT_0002e570 != 0) goto LAB_0001bd38;\n      iVar14 = FUN_0001d480(&DAT_0002e57c,uVar10,uVar11);\n      if (iVar14 == 0) goto LAB_0001bc00;\n      uVar17 = uVar17 + 1;\n    } while (uVar17 < DAT_0002e520);" do (compound_statement "{\n      while( true ) {\n        uVar10 = *(undefined4 *)__base[uVar17];\n        uVar11 = ((undefined4 *)__base[uVar17])[1];\n        iVar14 = FUN_0001d480(&DAT_0002e570,uVar10,uVar11);\n        if (iVar14 == 0) break;\nLAB_0001bc00:\n        dVar1 = *(double *)(&UNK_00023da4 + local_84 * 0xc);\n        iVar14 = __base[uVar17];\n        dVar2 = *(double *)(iVar14 + 0xa8);\n        if (((DAT_0002d1c0 == 0) || (*(int *)(iVar14 + 0x20) != 0)) || (dVar2 != 0.0)) {\n          DAT_0002e170 = DAT_0002e170 + dVar2;\n          dVar5 = dVar2 / (double)DAT_0002e15c;\n          dVar6 = DAT_0002e170 / (double)DAT_0002e15c;\n          uVar12 = SUB84(dVar5,0);\n          uVar13 = (undefined4)((ulonglong)dVar5 >> 0x20);\n          uVar10 = SUB84(dVar6,0);\n          uVar11 = (undefined4)((ulonglong)dVar6 >> 0x20);\n          if (DAT_0002e150 == 0) {\n            if (DAT_0002e168 <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;\n            }\n            printf("%6.2f %9.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11,\n                   uVar12,uVar13);\n          }\n          else {\n            if (DAT_0002e168 <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;\n            }\n            printf("%5.1f %10.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11\n                   ,uVar12,uVar13);\n          }\n          uVar3 = *(uint *)(iVar14 + 0x20);\n          if (uVar3 == 0) {\n            printf(" %8.8s %8.8s %8.8s  ","","","");\n          }\n          else {\n            dVar2 = (((*(double *)(iVar14 + 0xbc) + *(double *)(iVar14 + 0xa8)) * dVar1) /\n                    (double)DAT_0002e15c) / (double)uVar3;\n            dVar1 = ((dVar1 * *(double *)(iVar14 + 0xa8)) / (double)DAT_0002e15c) / (double)uVar3;\n            printf(" %8lu %8.2f %8.2f  ",uVar3,SUB84(dVar1,0),(int)((ulonglong)dVar1 >> 0x20),\n                   SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar13);\n          }\n          if (DAT_0002e150 == 0) {\n            FUN_0001df00(iVar14);\n          }\n          else {\n            FUN_0001e170(iVar14);\n          }\n          putchar(10);\n        }\nLAB_0001bd38:\n        uVar17 = uVar17 + 1;\n        if (DAT_0002e520 <= uVar17) goto LAB_0001bda0;\n      }\n      if (DAT_0002e570 != 0) goto LAB_0001bd38;\n      iVar14 = FUN_0001d480(&DAT_0002e57c,uVar10,uVar11);\n      if (iVar14 == 0) goto LAB_0001bc00;\n      uVar17 = uVar17 + 1;\n    }" { (while_statement "while( true ) {\n        uVar10 = *(undefined4 *)__base[uVar17];\n        uVar11 = ((undefined4 *)__base[uVar17])[1];\n        iVar14 = FUN_0001d480(&DAT_0002e570,uVar10,uVar11);\n        if (iVar14 == 0) break;\nLAB_0001bc00:\n        dVar1 = *(double *)(&UNK_00023da4 + local_84 * 0xc);\n        iVar14 = __base[uVar17];\n        dVar2 = *(double *)(iVar14 + 0xa8);\n        if (((DAT_0002d1c0 == 0) || (*(int *)(iVar14 + 0x20) != 0)) || (dVar2 != 0.0)) {\n          DAT_0002e170 = DAT_0002e170 + dVar2;\n          dVar5 = dVar2 / (double)DAT_0002e15c;\n          dVar6 = DAT_0002e170 / (double)DAT_0002e15c;\n          uVar12 = SUB84(dVar5,0);\n          uVar13 = (undefined4)((ulonglong)dVar5 >> 0x20);\n          uVar10 = SUB84(dVar6,0);\n          uVar11 = (undefined4)((ulonglong)dVar6 >> 0x20);\n          if (DAT_0002e150 == 0) {\n            if (DAT_0002e168 <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;\n            }\n            printf("%6.2f %9.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11,\n                   uVar12,uVar13);\n          }\n          else {\n            if (DAT_0002e168 <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;\n            }\n            printf("%5.1f %10.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11\n                   ,uVar12,uVar13);\n          }\n          uVar3 = *(uint *)(iVar14 + 0x20);\n          if (uVar3 == 0) {\n            printf(" %8.8s %8.8s %8.8s  ","","","");\n          }\n          else {\n            dVar2 = (((*(double *)(iVar14 + 0xbc) + *(double *)(iVar14 + 0xa8)) * dVar1) /\n                    (double)DAT_0002e15c) / (double)uVar3;\n            dVar1 = ((dVar1 * *(double *)(iVar14 + 0xa8)) / (double)DAT_0002e15c) / (double)uVar3;\n            printf(" %8lu %8.2f %8.2f  ",uVar3,SUB84(dVar1,0),(int)((ulonglong)dVar1 >> 0x20),\n                   SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar13);\n          }\n          if (DAT_0002e150 == 0) {\n            FUN_0001df00(iVar14);\n          }\n          else {\n            FUN_0001e170(iVar14);\n          }\n          putchar(10);\n        }\nLAB_0001bd38:\n        uVar17 = uVar17 + 1;\n        if (DAT_0002e520 <= uVar17) goto LAB_0001bda0;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        uVar10 = *(undefined4 *)__base[uVar17];\n        uVar11 = ((undefined4 *)__base[uVar17])[1];\n        iVar14 = FUN_0001d480(&DAT_0002e570,uVar10,uVar11);\n        if (iVar14 == 0) break;\nLAB_0001bc00:\n        dVar1 = *(double *)(&UNK_00023da4 + local_84 * 0xc);\n        iVar14 = __base[uVar17];\n        dVar2 = *(double *)(iVar14 + 0xa8);\n        if (((DAT_0002d1c0 == 0) || (*(int *)(iVar14 + 0x20) != 0)) || (dVar2 != 0.0)) {\n          DAT_0002e170 = DAT_0002e170 + dVar2;\n          dVar5 = dVar2 / (double)DAT_0002e15c;\n          dVar6 = DAT_0002e170 / (double)DAT_0002e15c;\n          uVar12 = SUB84(dVar5,0);\n          uVar13 = (undefined4)((ulonglong)dVar5 >> 0x20);\n          uVar10 = SUB84(dVar6,0);\n          uVar11 = (undefined4)((ulonglong)dVar6 >> 0x20);\n          if (DAT_0002e150 == 0) {\n            if (DAT_0002e168 <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;\n            }\n            printf("%6.2f %9.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11,\n                   uVar12,uVar13);\n          }\n          else {\n            if (DAT_0002e168 <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;\n            }\n            printf("%5.1f %10.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11\n                   ,uVar12,uVar13);\n          }\n          uVar3 = *(uint *)(iVar14 + 0x20);\n          if (uVar3 == 0) {\n            printf(" %8.8s %8.8s %8.8s  ","","","");\n          }\n          else {\n            dVar2 = (((*(double *)(iVar14 + 0xbc) + *(double *)(iVar14 + 0xa8)) * dVar1) /\n                    (double)DAT_0002e15c) / (double)uVar3;\n            dVar1 = ((dVar1 * *(double *)(iVar14 + 0xa8)) / (double)DAT_0002e15c) / (double)uVar3;\n            printf(" %8lu %8.2f %8.2f  ",uVar3,SUB84(dVar1,0),(int)((ulonglong)dVar1 >> 0x20),\n                   SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar13);\n          }\n          if (DAT_0002e150 == 0) {\n            FUN_0001df00(iVar14);\n          }\n          else {\n            FUN_0001e170(iVar14);\n          }\n          putchar(10);\n        }\nLAB_0001bd38:\n        uVar17 = uVar17 + 1;\n        if (DAT_0002e520 <= uVar17) goto LAB_0001bda0;\n      }" { (expression_statement "uVar10 = *(undefined4 *)__base[uVar17];" (assignment_expression "uVar10 = *(undefined4 *)__base[uVar17]" identifier = (pointer_expression "*(undefined4 *)__base[uVar17]" * (cast_expression "(undefined4 *)__base[uVar17]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "__base[uVar17]" identifier [ identifier ])))) ;) (expression_statement "uVar11 = ((undefined4 *)__base[uVar17])[1];" (assignment_expression "uVar11 = ((undefined4 *)__base[uVar17])[1]" identifier = (subscript_expression "((undefined4 *)__base[uVar17])[1]" (parenthesized_expression "((undefined4 *)__base[uVar17])" ( (cast_expression "(undefined4 *)__base[uVar17]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "__base[uVar17]" identifier [ identifier ])) )) [ number_literal ])) ;) (expression_statement "iVar14 = FUN_0001d480(&DAT_0002e570,uVar10,uVar11);" (assignment_expression "iVar14 = FUN_0001d480(&DAT_0002e570,uVar10,uVar11)" identifier = (call_expression "FUN_0001d480(&DAT_0002e570,uVar10,uVar11)" identifier (argument_list "(&DAT_0002e570,uVar10,uVar11)" ( (pointer_expression "&DAT_0002e570" & identifier) , identifier , identifier )))) ;) (if_statement "if (iVar14 == 0) break;" if (parenthesized_expression "(iVar14 == 0)" ( (binary_expression "iVar14 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (labeled_statement "LAB_0001bc00:\n        dVar1 = *(double *)(&UNK_00023da4 + local_84 * 0xc);" statement_identifier : (expression_statement "dVar1 = *(double *)(&UNK_00023da4 + local_84 * 0xc);" (assignment_expression "dVar1 = *(double *)(&UNK_00023da4 + local_84 * 0xc)" identifier = (pointer_expression "*(double *)(&UNK_00023da4 + local_84 * 0xc)" * (cast_expression "(double *)(&UNK_00023da4 + local_84 * 0xc)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&UNK_00023da4 + local_84 * 0xc)" ( (binary_expression "&UNK_00023da4 + local_84 * 0xc" (pointer_expression "&UNK_00023da4" & identifier) + (binary_expression "local_84 * 0xc" identifier * number_literal)) ))))) ;)) (expression_statement "iVar14 = __base[uVar17];" (assignment_expression "iVar14 = __base[uVar17]" identifier = (subscript_expression "__base[uVar17]" identifier [ identifier ])) ;) (expression_statement "dVar2 = *(double *)(iVar14 + 0xa8);" (assignment_expression "dVar2 = *(double *)(iVar14 + 0xa8)" identifier = (pointer_expression "*(double *)(iVar14 + 0xa8)" * (cast_expression "(double *)(iVar14 + 0xa8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xa8)" ( (binary_expression "iVar14 + 0xa8" identifier + number_literal) ))))) ;) (if_statement "if (((DAT_0002d1c0 == 0) || (*(int *)(iVar14 + 0x20) != 0)) || (dVar2 != 0.0)) {\n          DAT_0002e170 = DAT_0002e170 + dVar2;\n          dVar5 = dVar2 / (double)DAT_0002e15c;\n          dVar6 = DAT_0002e170 / (double)DAT_0002e15c;\n          uVar12 = SUB84(dVar5,0);\n          uVar13 = (undefined4)((ulonglong)dVar5 >> 0x20);\n          uVar10 = SUB84(dVar6,0);\n          uVar11 = (undefined4)((ulonglong)dVar6 >> 0x20);\n          if (DAT_0002e150 == 0) {\n            if (DAT_0002e168 <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;\n            }\n            printf("%6.2f %9.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11,\n                   uVar12,uVar13);\n          }\n          else {\n            if (DAT_0002e168 <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;\n            }\n            printf("%5.1f %10.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11\n                   ,uVar12,uVar13);\n          }\n          uVar3 = *(uint *)(iVar14 + 0x20);\n          if (uVar3 == 0) {\n            printf(" %8.8s %8.8s %8.8s  ","","","");\n          }\n          else {\n            dVar2 = (((*(double *)(iVar14 + 0xbc) + *(double *)(iVar14 + 0xa8)) * dVar1) /\n                    (double)DAT_0002e15c) / (double)uVar3;\n            dVar1 = ((dVar1 * *(double *)(iVar14 + 0xa8)) / (double)DAT_0002e15c) / (double)uVar3;\n            printf(" %8lu %8.2f %8.2f  ",uVar3,SUB84(dVar1,0),(int)((ulonglong)dVar1 >> 0x20),\n                   SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar13);\n          }\n          if (DAT_0002e150 == 0) {\n            FUN_0001df00(iVar14);\n          }\n          else {\n            FUN_0001e170(iVar14);\n          }\n          putchar(10);\n        }" if (parenthesized_expression "(((DAT_0002d1c0 == 0) || (*(int *)(iVar14 + 0x20) != 0)) || (dVar2 != 0.0))" ( (binary_expression "((DAT_0002d1c0 == 0) || (*(int *)(iVar14 + 0x20) != 0)) || (dVar2 != 0.0)" (parenthesized_expression "((DAT_0002d1c0 == 0) || (*(int *)(iVar14 + 0x20) != 0))" ( (binary_expression "(DAT_0002d1c0 == 0) || (*(int *)(iVar14 + 0x20) != 0)" (parenthesized_expression "(DAT_0002d1c0 == 0)" ( (binary_expression "DAT_0002d1c0 == 0" identifier == number_literal) )) || (parenthesized_expression "(*(int *)(iVar14 + 0x20) != 0)" ( (binary_expression "*(int *)(iVar14 + 0x20) != 0" (pointer_expression "*(int *)(iVar14 + 0x20)" * (cast_expression "(int *)(iVar14 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x20)" ( (binary_expression "iVar14 + 0x20" identifier + number_literal) )))) != number_literal) ))) )) || (parenthesized_expression "(dVar2 != 0.0)" ( (binary_expression "dVar2 != 0.0" identifier != number_literal) ))) )) (compound_statement "{\n          DAT_0002e170 = DAT_0002e170 + dVar2;\n          dVar5 = dVar2 / (double)DAT_0002e15c;\n          dVar6 = DAT_0002e170 / (double)DAT_0002e15c;\n          uVar12 = SUB84(dVar5,0);\n          uVar13 = (undefined4)((ulonglong)dVar5 >> 0x20);\n          uVar10 = SUB84(dVar6,0);\n          uVar11 = (undefined4)((ulonglong)dVar6 >> 0x20);\n          if (DAT_0002e150 == 0) {\n            if (DAT_0002e168 <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;\n            }\n            printf("%6.2f %9.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11,\n                   uVar12,uVar13);\n          }\n          else {\n            if (DAT_0002e168 <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;\n            }\n            printf("%5.1f %10.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11\n                   ,uVar12,uVar13);\n          }\n          uVar3 = *(uint *)(iVar14 + 0x20);\n          if (uVar3 == 0) {\n            printf(" %8.8s %8.8s %8.8s  ","","","");\n          }\n          else {\n            dVar2 = (((*(double *)(iVar14 + 0xbc) + *(double *)(iVar14 + 0xa8)) * dVar1) /\n                    (double)DAT_0002e15c) / (double)uVar3;\n            dVar1 = ((dVar1 * *(double *)(iVar14 + 0xa8)) / (double)DAT_0002e15c) / (double)uVar3;\n            printf(" %8lu %8.2f %8.2f  ",uVar3,SUB84(dVar1,0),(int)((ulonglong)dVar1 >> 0x20),\n                   SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar13);\n          }\n          if (DAT_0002e150 == 0) {\n            FUN_0001df00(iVar14);\n          }\n          else {\n            FUN_0001e170(iVar14);\n          }\n          putchar(10);\n        }" { (expression_statement "DAT_0002e170 = DAT_0002e170 + dVar2;" (assignment_expression "DAT_0002e170 = DAT_0002e170 + dVar2" identifier = (binary_expression "DAT_0002e170 + dVar2" identifier + identifier)) ;) (expression_statement "dVar5 = dVar2 / (double)DAT_0002e15c;" (assignment_expression "dVar5 = dVar2 / (double)DAT_0002e15c" identifier = (binary_expression "dVar2 / (double)DAT_0002e15c" identifier / (cast_expression "(double)DAT_0002e15c" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (expression_statement "dVar6 = DAT_0002e170 / (double)DAT_0002e15c;" (assignment_expression "dVar6 = DAT_0002e170 / (double)DAT_0002e15c" identifier = (binary_expression "DAT_0002e170 / (double)DAT_0002e15c" identifier / (cast_expression "(double)DAT_0002e15c" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (expression_statement "uVar12 = SUB84(dVar5,0);" (assignment_expression "uVar12 = SUB84(dVar5,0)" identifier = (call_expression "SUB84(dVar5,0)" identifier (argument_list "(dVar5,0)" ( identifier , number_literal )))) ;) (expression_statement "uVar13 = (undefined4)((ulonglong)dVar5 >> 0x20);" (assignment_expression "uVar13 = (undefined4)((ulonglong)dVar5 >> 0x20)" identifier = (call_expression "(undefined4)((ulonglong)dVar5 >> 0x20)" (parenthesized_expression "(undefined4)" ( identifier )) (argument_list "((ulonglong)dVar5 >> 0x20)" ( (binary_expression "(ulonglong)dVar5 >> 0x20" (cast_expression "(ulonglong)dVar5" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar10 = SUB84(dVar6,0);" (assignment_expression "uVar10 = SUB84(dVar6,0)" identifier = (call_expression "SUB84(dVar6,0)" identifier (argument_list "(dVar6,0)" ( identifier , number_literal )))) ;) (expression_statement "uVar11 = (undefined4)((ulonglong)dVar6 >> 0x20);" (assignment_expression "uVar11 = (undefined4)((ulonglong)dVar6 >> 0x20)" identifier = (call_expression "(undefined4)((ulonglong)dVar6 >> 0x20)" (parenthesized_expression "(undefined4)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 0x20)" ( (binary_expression "(ulonglong)dVar6 >> 0x20" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (DAT_0002e150 == 0) {\n            if (DAT_0002e168 <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;\n            }\n            printf("%6.2f %9.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11,\n                   uVar12,uVar13);\n          }\n          else {\n            if (DAT_0002e168 <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;\n            }\n            printf("%5.1f %10.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11\n                   ,uVar12,uVar13);\n          }" if (parenthesized_expression "(DAT_0002e150 == 0)" ( (binary_expression "DAT_0002e150 == 0" identifier == number_literal) )) (compound_statement "{\n            if (DAT_0002e168 <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;\n            }\n            printf("%6.2f %9.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11,\n                   uVar12,uVar13);\n          }" { (if_statement "if (DAT_0002e168 <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;\n            }" if (parenthesized_expression "(DAT_0002e168 <= 0.0)" ( (binary_expression "DAT_0002e168 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n              dVar2 = 0.0;\n            }" { (expression_statement "dVar2 = 0.0;" (assignment_expression "dVar2 = 0.0" identifier = number_literal) ;) }) (else_clause "else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;\n            }" else (compound_statement "{\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;\n            }" { (expression_statement "dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;" (assignment_expression "dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168" identifier = (binary_expression "(dVar2 * (double)_DAT_000221d8) / DAT_0002e168" (parenthesized_expression "(dVar2 * (double)_DAT_000221d8)" ( (binary_expression "dVar2 * (double)_DAT_000221d8" identifier * (cast_expression "(double)_DAT_000221d8" ( (type_descriptor "double" primitive_type) ) identifier)) )) / identifier)) ;) }))) (expression_statement "printf("%6.2f %9.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11,\n                   uVar12,uVar13);" (call_expression "printf("%6.2f %9.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11,\n                   uVar12,uVar13)" identifier (argument_list "("%6.2f %9.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11,\n                   uVar12,uVar13)" ( (string_literal ""%6.2f %9.2f %8.2f"" " string_content ") , (call_expression "SUB84(dVar2,0)" identifier (argument_list "(dVar2,0)" ( identifier , number_literal ))) , (cast_expression "(int)((ulonglong)dVar2 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar2 >> 0x20)" ( (binary_expression "(ulonglong)dVar2 >> 0x20" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , identifier , identifier , identifier , identifier ))) ;) }) (else_clause "else {\n            if (DAT_0002e168 <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;\n            }\n            printf("%5.1f %10.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11\n                   ,uVar12,uVar13);\n          }" else (compound_statement "{\n            if (DAT_0002e168 <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;\n            }\n            printf("%5.1f %10.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11\n                   ,uVar12,uVar13);\n          }" { (if_statement "if (DAT_0002e168 <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;\n            }" if (parenthesized_expression "(DAT_0002e168 <= 0.0)" ( (binary_expression "DAT_0002e168 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n              dVar2 = 0.0;\n            }" { (expression_statement "dVar2 = 0.0;" (assignment_expression "dVar2 = 0.0" identifier = number_literal) ;) }) (else_clause "else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;\n            }" else (compound_statement "{\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;\n            }" { (expression_statement "dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;" (assignment_expression "dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168" identifier = (binary_expression "(dVar2 * (double)_DAT_000221d8) / DAT_0002e168" (parenthesized_expression "(dVar2 * (double)_DAT_000221d8)" ( (binary_expression "dVar2 * (double)_DAT_000221d8" identifier * (cast_expression "(double)_DAT_000221d8" ( (type_descriptor "double" primitive_type) ) identifier)) )) / identifier)) ;) }))) (expression_statement "printf("%5.1f %10.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11\n                   ,uVar12,uVar13);" (call_expression "printf("%5.1f %10.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11\n                   ,uVar12,uVar13)" identifier (argument_list "("%5.1f %10.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11\n                   ,uVar12,uVar13)" ( (string_literal ""%5.1f %10.2f %8.2f"" " string_content ") , (call_expression "SUB84(dVar2,0)" identifier (argument_list "(dVar2,0)" ( identifier , number_literal ))) , (cast_expression "(int)((ulonglong)dVar2 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar2 >> 0x20)" ( (binary_expression "(ulonglong)dVar2 >> 0x20" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , identifier , identifier , identifier , identifier ))) ;) }))) (expression_statement "uVar3 = *(uint *)(iVar14 + 0x20);" (assignment_expression "uVar3 = *(uint *)(iVar14 + 0x20)" identifier = (pointer_expression "*(uint *)(iVar14 + 0x20)" * (cast_expression "(uint *)(iVar14 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x20)" ( (binary_expression "iVar14 + 0x20" identifier + number_literal) ))))) ;) (if_statement "if (uVar3 == 0) {\n            printf(" %8.8s %8.8s %8.8s  ","","","");\n          }\n          else {\n            dVar2 = (((*(double *)(iVar14 + 0xbc) + *(double *)(iVar14 + 0xa8)) * dVar1) /\n                    (double)DAT_0002e15c) / (double)uVar3;\n            dVar1 = ((dVar1 * *(double *)(iVar14 + 0xa8)) / (double)DAT_0002e15c) / (double)uVar3;\n            printf(" %8lu %8.2f %8.2f  ",uVar3,SUB84(dVar1,0),(int)((ulonglong)dVar1 >> 0x20),\n                   SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar13);\n          }" if (parenthesized_expression "(uVar3 == 0)" ( (binary_expression "uVar3 == 0" identifier == number_literal) )) (compound_statement "{\n            printf(" %8.8s %8.8s %8.8s  ","","","");\n          }" { (expression_statement "printf(" %8.8s %8.8s %8.8s  ","","","");" (call_expression "printf(" %8.8s %8.8s %8.8s  ","","","")" identifier (argument_list "(" %8.8s %8.8s %8.8s  ","","","")" ( (string_literal "" %8.8s %8.8s %8.8s  "" " string_content ") , (string_literal """" " ") , (string_literal """" " ") , (string_literal """" " ") ))) ;) }) (else_clause "else {\n            dVar2 = (((*(double *)(iVar14 + 0xbc) + *(double *)(iVar14 + 0xa8)) * dVar1) /\n                    (double)DAT_0002e15c) / (double)uVar3;\n            dVar1 = ((dVar1 * *(double *)(iVar14 + 0xa8)) / (double)DAT_0002e15c) / (double)uVar3;\n            printf(" %8lu %8.2f %8.2f  ",uVar3,SUB84(dVar1,0),(int)((ulonglong)dVar1 >> 0x20),\n                   SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar13);\n          }" else (compound_statement "{\n            dVar2 = (((*(double *)(iVar14 + 0xbc) + *(double *)(iVar14 + 0xa8)) * dVar1) /\n                    (double)DAT_0002e15c) / (double)uVar3;\n            dVar1 = ((dVar1 * *(double *)(iVar14 + 0xa8)) / (double)DAT_0002e15c) / (double)uVar3;\n            printf(" %8lu %8.2f %8.2f  ",uVar3,SUB84(dVar1,0),(int)((ulonglong)dVar1 >> 0x20),\n                   SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar13);\n          }" { (expression_statement "dVar2 = (((*(double *)(iVar14 + 0xbc) + *(double *)(iVar14 + 0xa8)) * dVar1) /\n                    (double)DAT_0002e15c) / (double)uVar3;" (assignment_expression "dVar2 = (((*(double *)(iVar14 + 0xbc) + *(double *)(iVar14 + 0xa8)) * dVar1) /\n                    (double)DAT_0002e15c) / (double)uVar3" identifier = (binary_expression "(((*(double *)(iVar14 + 0xbc) + *(double *)(iVar14 + 0xa8)) * dVar1) /\n                    (double)DAT_0002e15c) / (double)uVar3" (parenthesized_expression "(((*(double *)(iVar14 + 0xbc) + *(double *)(iVar14 + 0xa8)) * dVar1) /\n                    (double)DAT_0002e15c)" ( (binary_expression "((*(double *)(iVar14 + 0xbc) + *(double *)(iVar14 + 0xa8)) * dVar1) /\n                    (double)DAT_0002e15c" (parenthesized_expression "((*(double *)(iVar14 + 0xbc) + *(double *)(iVar14 + 0xa8)) * dVar1)" ( (binary_expression "(*(double *)(iVar14 + 0xbc) + *(double *)(iVar14 + 0xa8)) * dVar1" (parenthesized_expression "(*(double *)(iVar14 + 0xbc) + *(double *)(iVar14 + 0xa8))" ( (binary_expression "*(double *)(iVar14 + 0xbc) + *(double *)(iVar14 + 0xa8)" (pointer_expression "*(double *)(iVar14 + 0xbc)" * (cast_expression "(double *)(iVar14 + 0xbc)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xbc)" ( (binary_expression "iVar14 + 0xbc" identifier + number_literal) )))) + (pointer_expression "*(double *)(iVar14 + 0xa8)" * (cast_expression "(double *)(iVar14 + 0xa8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xa8)" ( (binary_expression "iVar14 + 0xa8" identifier + number_literal) ))))) )) * identifier) )) / (cast_expression "(double)DAT_0002e15c" ( (type_descriptor "double" primitive_type) ) identifier)) )) / (cast_expression "(double)uVar3" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (expression_statement "dVar1 = ((dVar1 * *(double *)(iVar14 + 0xa8)) / (double)DAT_0002e15c) / (double)uVar3;" (assignment_expression "dVar1 = ((dVar1 * *(double *)(iVar14 + 0xa8)) / (double)DAT_0002e15c) / (double)uVar3" identifier = (binary_expression "((dVar1 * *(double *)(iVar14 + 0xa8)) / (double)DAT_0002e15c) / (double)uVar3" (parenthesized_expression "((dVar1 * *(double *)(iVar14 + 0xa8)) / (double)DAT_0002e15c)" ( (binary_expression "(dVar1 * *(double *)(iVar14 + 0xa8)) / (double)DAT_0002e15c" (parenthesized_expression "(dVar1 * *(double *)(iVar14 + 0xa8))" ( (binary_expression "dVar1 * *(double *)(iVar14 + 0xa8)" identifier * (pointer_expression "*(double *)(iVar14 + 0xa8)" * (cast_expression "(double *)(iVar14 + 0xa8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xa8)" ( (binary_expression "iVar14 + 0xa8" identifier + number_literal) ))))) )) / (cast_expression "(double)DAT_0002e15c" ( (type_descriptor "double" primitive_type) ) identifier)) )) / (cast_expression "(double)uVar3" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (expression_statement "printf(" %8lu %8.2f %8.2f  ",uVar3,SUB84(dVar1,0),(int)((ulonglong)dVar1 >> 0x20),\n                   SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar13);" (call_expression "printf(" %8lu %8.2f %8.2f  ",uVar3,SUB84(dVar1,0),(int)((ulonglong)dVar1 >> 0x20),\n                   SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar13)" identifier (argument_list "(" %8lu %8.2f %8.2f  ",uVar3,SUB84(dVar1,0),(int)((ulonglong)dVar1 >> 0x20),\n                   SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar13)" ( (string_literal "" %8lu %8.2f %8.2f  "" " string_content ") , identifier , (call_expression "SUB84(dVar1,0)" identifier (argument_list "(dVar1,0)" ( identifier , number_literal ))) , (cast_expression "(int)((ulonglong)dVar1 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar1 >> 0x20)" ( (binary_expression "(ulonglong)dVar1 >> 0x20" (cast_expression "(ulonglong)dVar1" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (call_expression "SUB84(dVar2,0)" identifier (argument_list "(dVar2,0)" ( identifier , number_literal ))) , (cast_expression "(int)((ulonglong)dVar2 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar2 >> 0x20)" ( (binary_expression "(ulonglong)dVar2 >> 0x20" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , identifier ))) ;) }))) (if_statement "if (DAT_0002e150 == 0) {\n            FUN_0001df00(iVar14);\n          }\n          else {\n            FUN_0001e170(iVar14);\n          }" if (parenthesized_expression "(DAT_0002e150 == 0)" ( (binary_expression "DAT_0002e150 == 0" identifier == number_literal) )) (compound_statement "{\n            FUN_0001df00(iVar14);\n          }" { (expression_statement "FUN_0001df00(iVar14);" (call_expression "FUN_0001df00(iVar14)" identifier (argument_list "(iVar14)" ( identifier ))) ;) }) (else_clause "else {\n            FUN_0001e170(iVar14);\n          }" else (compound_statement "{\n            FUN_0001e170(iVar14);\n          }" { (expression_statement "FUN_0001e170(iVar14);" (call_expression "FUN_0001e170(iVar14)" identifier (argument_list "(iVar14)" ( identifier ))) ;) }))) (expression_statement "putchar(10);" (call_expression "putchar(10)" identifier (argument_list "(10)" ( number_literal ))) ;) })) (labeled_statement "LAB_0001bd38:\n        uVar17 = uVar17 + 1;" statement_identifier : (expression_statement "uVar17 = uVar17 + 1;" (assignment_expression "uVar17 = uVar17 + 1" identifier = (binary_expression "uVar17 + 1" identifier + number_literal)) ;)) (if_statement "if (DAT_0002e520 <= uVar17) goto LAB_0001bda0;" if (parenthesized_expression "(DAT_0002e520 <= uVar17)" ( (binary_expression "DAT_0002e520 <= uVar17" identifier <= identifier) )) (goto_statement "goto LAB_0001bda0;" goto statement_identifier ;)) })) (if_statement "if (DAT_0002e570 != 0) goto LAB_0001bd38;" if (parenthesized_expression "(DAT_0002e570 != 0)" ( (binary_expression "DAT_0002e570 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0001bd38;" goto statement_identifier ;)) (expression_statement "iVar14 = FUN_0001d480(&DAT_0002e57c,uVar10,uVar11);" (assignment_expression "iVar14 = FUN_0001d480(&DAT_0002e57c,uVar10,uVar11)" identifier = (call_expression "FUN_0001d480(&DAT_0002e57c,uVar10,uVar11)" identifier (argument_list "(&DAT_0002e57c,uVar10,uVar11)" ( (pointer_expression "&DAT_0002e57c" & identifier) , identifier , identifier )))) ;) (if_statement "if (iVar14 == 0) goto LAB_0001bc00;" if (parenthesized_expression "(iVar14 == 0)" ( (binary_expression "iVar14 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001bc00;" goto statement_identifier ;)) (expression_statement "uVar17 = uVar17 + 1;" (assignment_expression "uVar17 = uVar17 + 1" identifier = (binary_expression "uVar17 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar17 < DAT_0002e520)" ( (binary_expression "uVar17 < DAT_0002e520" identifier < identifier) )) ;) })) (labeled_statement "LAB_0001bda0:\n  free(__base);" statement_identifier : (expression_statement "free(__base);" (call_expression "free(__base)" identifier (argument_list "(__base)" ( identifier ))) ;)) (if_statement "if ((DAT_0002d1bc != 0) && (DAT_0002e150 == 0)) {\n    FUN_0001f820(*(undefined4 *)PTR_stdout_0002cfec);\n    return;\n  }" if (parenthesized_expression "((DAT_0002d1bc != 0) && (DAT_0002e150 == 0))" ( (binary_expression "(DAT_0002d1bc != 0) && (DAT_0002e150 == 0)" (parenthesized_expression "(DAT_0002d1bc != 0)" ( (binary_expression "DAT_0002d1bc != 0" identifier != number_literal) )) && (parenthesized_expression "(DAT_0002e150 == 0)" ( (binary_expression "DAT_0002e150 == 0" identifier == number_literal) ))) )) (compound_statement "{\n    FUN_0001f820(*(undefined4 *)PTR_stdout_0002cfec);\n    return;\n  }" { (expression_statement "FUN_0001f820(*(undefined4 *)PTR_stdout_0002cfec);" (call_expression "FUN_0001f820(*(undefined4 *)PTR_stdout_0002cfec)" identifier (argument_list "(*(undefined4 *)PTR_stdout_0002cfec)" ( (pointer_expression "*(undefined4 *)PTR_stdout_0002cfec" * (cast_expression "(undefined4 *)PTR_stdout_0002cfec" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))) ;) (return_statement "return;" return ;) })) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */\n/* WARNING: Unknown calling convention -- yet parameter storage is locked */\n\nvoid hist_print(void)\n\n{\n  double dVar1;\n  double dVar2;\n  uint uVar3;\n  float fVar4;\n  double dVar5;\n  double dVar6;\n  bfd_vma address;\n  int *__base;\n  int *piVar7;\n  double *pdVar8;\n  char *pcVar9;\n  undefined4 uVar10;\n  undefined4 uVar11;\n  undefined4 uVar12;\n  undefined4 uVar13;\n  Sym *pSVar14;\n  int *piVar15;\n  int iVar16;\n  int iVar17;\n  uint uVar18;\n  ulonglong local_a4;\n  uint local_84;\n  char unit [64];\n  \n  if (first_output == 0) {\n    puts("\f");\n  }\n  else {\n    first_output = 0;\n  }\n  accum_time = 0.0;\n  if (bsd_style_output == 0) {\n    pcVar9 = (char *)dcgettext("gprof","Flat profile:\n",5);\n    printf(pcVar9);\n  }\n  else if (print_descriptions != 0) {\n    pcVar9 = (char *)dcgettext("gprof","\n\n\nflat profile:\n",5);\n    printf(pcVar9);\n    flat_blurb(*(FILE **)PTR_stdout_0002cfec);\n  }\n  __base = (int *)xmalloc(symtab.len << 2);\n  uVar18 = symtab.len;\n  if (symtab.len != 0) {\n    piVar15 = __base + symtab.len;\n    piVar7 = __base;\n    pSVar14 = symtab.base;\n    do {\n      *piVar7 = (int)pSVar14;\n      piVar7 = piVar7 + 1;\n      pSVar14 = pSVar14 + 1;\n    } while (piVar15 != piVar7);\n  }\n  qsort(__base,uVar18,4,cmp_time);\n  if (bsd_style_output != 0) {\n    local_84 = 5;\n    iVar16 = 0x6d;\n    goto LAB_0001ba65;\n  }\n  local_84 = symtab.len;\n  if (symtab.len == 0) {\nLAB_0001beb2:\n    iVar16 = 0x54;\n  }\n  else {\n    iVar16 = 0;\n    dVar1 = 0.0;\n    piVar15 = __base;\n    do {\n      iVar17 = *piVar15;\n      if (*(uint *)(iVar17 + 0x20) != 0) {\n        local_a4 = (ulonglong)*(uint *)(iVar17 + 0x20);\n        dVar2 = (*(double *)(iVar17 + 0xa8) + *(double *)(iVar17 + 0xbc)) / (double)local_a4;\n        if (dVar1 < dVar2) {\n          dVar1 = dVar2;\n          iVar16 = iVar17;\n        }\n      }\n      piVar15 = piVar15 + 1;\n    } while (__base + symtab.len != piVar15);\n    if (iVar16 != 0) {\n      if (*(int *)(iVar16 + 0x20) == 0) {\n        local_84 = 0;\n        goto LAB_0001beb2;\n      }\n      if (0.0 < dVar1) {\n        local_84 = 0;\n        pdVar8 = &SItab[1].scale;\n        dVar2 = DAT_00023e30;\n        while( true ) {\n          dVar2 = dVar2 * (dVar1 / (double)hz);\n          if ((1.0 <= dVar2) && (dVar2 < (double)DAT_00023e2c)) {\n            iVar16 = (int)SItab[local_84].prefix;\n            goto LAB_0001ba65;\n          }\n          local_84 = local_84 + 1;\n          if (local_84 == 0xb) break;\n          dVar2 = *pdVar8;\n          pdVar8 = (double *)((int)pdVar8 + 0xc);\n        }\n        iVar16 = 0;\n        goto LAB_0001ba65;\n      }\n    }\n    iVar16 = 0x54;\n    local_84 = 0;\n  }\nLAB_0001ba65:\n  iVar17 = (int)hist_dimension_abbrev;\n  pcVar9 = (char *)dcgettext("gprof","%c%c/call",5);\n  sprintf(unit,pcVar9,iVar16,iVar17);\n  if (bsd_style_output == 0) {\n    fVar4 = DAT_00023e28 / (float)hz;\n    pcVar9 = (char *)dcgettext("gprof","\nEach sample counts as %g %s.\n",5);\n    printf(pcVar9,SUB84((double)fVar4,0),(int)((ulonglong)(double)fVar4 >> 0x20),hist_dimension);\n  }\n  else {\n    dVar1 = ROUND(hist_scale);\n    pcVar9 = (char *)dcgettext("gprof","\ngranularity: each sample hit covers %ld byte(s)",5);\n    printf(pcVar9,(int)dVar1 * 2);\n    dVar1 = total_time;\n    if (0.0 < total_time) {\n      dVar2 = total_time / (double)hz;\n      pcVar9 = (char *)dcgettext("gprof"," for %.2f%% of %.2f %s\n\n",5);\n      printf(pcVar9,SUB84((double)_DAT_000221d8 / dVar1,0),\n             (int)((ulonglong)((double)_DAT_000221d8 / dVar1) >> 0x20),SUB84(dVar2,0),\n             (int)((ulonglong)dVar2 >> 0x20),hist_dimension);\n    }\n  }\n  if (total_time <= 0.0) {\n    pcVar9 = (char *)dcgettext("gprof"," no time accumulated\n\n",5);\n    printf(pcVar9);\n    total_time = 1.0;\n  }\n  uVar10 = dcgettext("gprof","total ",5);\n  uVar11 = dcgettext("gprof","self  ",5);\n  uVar12 = dcgettext("gprof","self  ",5);\n  uVar13 = dcgettext("gprof","cumulative",5);\n  printf("%5.5s %10.10s %8.8s %8.8s %8.8s %8.8s  %-8.8s\n",&DAT_00023d2f,uVar13,uVar12,"",uVar11,\n         uVar10,"");\n  uVar10 = dcgettext("gprof",&DAT_000229c1,5);\n  uVar11 = dcgettext("gprof","calls",5);\n  uVar12 = dcgettext("gprof",&DAT_000229d8,5);\n  uVar18 = 0;\n  printf("%5.5s %9.9s  %8.8s %8.8s %8.8s %8.8s  %-8.8s\n",uVar12,hist_dimension,hist_dimension,\n         uVar11,unit,unit,uVar10);\n  if (symtab.len != 0) {\n    do {\n      while( true ) {\n        address = *(bfd_vma *)__base[uVar18];\n        pSVar14 = sym_lookup(syms + 4,*(bfd_vma *)__base[uVar18]);\n        if (pSVar14 == (Sym *)0x0) break;\nLAB_0001bc00:\n        dVar1 = SItab[local_84].scale;\n        pSVar14 = (Sym *)__base[uVar18];\n        dVar2 = (pSVar14->hist).time;\n        if (((ignore_zeros == 0) || (pSVar14->ncalls != 0)) || (dVar2 != 0.0)) {\n          accum_time = accum_time + dVar2;\n          dVar5 = dVar2 / (double)hz;\n          dVar6 = accum_time / (double)hz;\n          uVar12 = SUB84(dVar5,0);\n          uVar13 = (undefined4)((ulonglong)dVar5 >> 0x20);\n          uVar10 = SUB84(dVar6,0);\n          uVar11 = (undefined4)((ulonglong)dVar6 >> 0x20);\n          if (bsd_style_output == 0) {\n            if (total_time <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / total_time;\n            }\n            printf("%6.2f %9.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11,\n                   uVar12,uVar13);\n          }\n          else {\n            if (total_time <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / total_time;\n            }\n            printf("%5.1f %10.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11\n                   ,uVar12,uVar13);\n          }\n          uVar3 = pSVar14->ncalls;\n          if (uVar3 == 0) {\n            printf(" %8.8s %8.8s %8.8s  ","","","");\n          }\n          else {\n            dVar2 = (pSVar14->hist).time;\n            dVar5 = ((((pSVar14->cg).child_time + dVar2) * dVar1) / (double)hz) / (double)uVar3;\n            dVar1 = ((dVar1 * dVar2) / (double)hz) / (double)uVar3;\n            printf(" %8lu %8.2f %8.2f  ",uVar3,SUB84(dVar1,0),(int)((ulonglong)dVar1 >> 0x20),\n                   SUB84(dVar5,0),(int)((ulonglong)dVar5 >> 0x20),uVar13);\n          }\n          if (bsd_style_output == 0) {\n            print_name_only(pSVar14);\n          }\n          else {\n            print_name(pSVar14);\n          }\n          putchar(10);\n        }\nLAB_0001bd38:\n        uVar18 = uVar18 + 1;\n        if (symtab.len <= uVar18) goto LAB_0001bda0;\n      }\n      if (syms[4].len != 0) goto LAB_0001bd38;\n      pSVar14 = sym_lookup(syms + 5,address);\n      if (pSVar14 == (Sym *)0x0) goto LAB_0001bc00;\n      uVar18 = uVar18 + 1;\n    } while (uVar18 < symtab.len);\n  }\nLAB_0001bda0:\n  free(__base);\n  if ((print_descriptions != 0) && (bsd_style_output == 0)) {\n    flat_blurb(*(FILE **)PTR_stdout_0002cfec);\n    return;\n  }\n  return;\n}\n\n" comment comment comment (function_definition "void hist_print(void)\n\n{\n  double dVar1;\n  double dVar2;\n  uint uVar3;\n  float fVar4;\n  double dVar5;\n  double dVar6;\n  bfd_vma address;\n  int *__base;\n  int *piVar7;\n  double *pdVar8;\n  char *pcVar9;\n  undefined4 uVar10;\n  undefined4 uVar11;\n  undefined4 uVar12;\n  undefined4 uVar13;\n  Sym *pSVar14;\n  int *piVar15;\n  int iVar16;\n  int iVar17;\n  uint uVar18;\n  ulonglong local_a4;\n  uint local_84;\n  char unit [64];\n  \n  if (first_output == 0) {\n    puts("\f");\n  }\n  else {\n    first_output = 0;\n  }\n  accum_time = 0.0;\n  if (bsd_style_output == 0) {\n    pcVar9 = (char *)dcgettext("gprof","Flat profile:\n",5);\n    printf(pcVar9);\n  }\n  else if (print_descriptions != 0) {\n    pcVar9 = (char *)dcgettext("gprof","\n\n\nflat profile:\n",5);\n    printf(pcVar9);\n    flat_blurb(*(FILE **)PTR_stdout_0002cfec);\n  }\n  __base = (int *)xmalloc(symtab.len << 2);\n  uVar18 = symtab.len;\n  if (symtab.len != 0) {\n    piVar15 = __base + symtab.len;\n    piVar7 = __base;\n    pSVar14 = symtab.base;\n    do {\n      *piVar7 = (int)pSVar14;\n      piVar7 = piVar7 + 1;\n      pSVar14 = pSVar14 + 1;\n    } while (piVar15 != piVar7);\n  }\n  qsort(__base,uVar18,4,cmp_time);\n  if (bsd_style_output != 0) {\n    local_84 = 5;\n    iVar16 = 0x6d;\n    goto LAB_0001ba65;\n  }\n  local_84 = symtab.len;\n  if (symtab.len == 0) {\nLAB_0001beb2:\n    iVar16 = 0x54;\n  }\n  else {\n    iVar16 = 0;\n    dVar1 = 0.0;\n    piVar15 = __base;\n    do {\n      iVar17 = *piVar15;\n      if (*(uint *)(iVar17 + 0x20) != 0) {\n        local_a4 = (ulonglong)*(uint *)(iVar17 + 0x20);\n        dVar2 = (*(double *)(iVar17 + 0xa8) + *(double *)(iVar17 + 0xbc)) / (double)local_a4;\n        if (dVar1 < dVar2) {\n          dVar1 = dVar2;\n          iVar16 = iVar17;\n        }\n      }\n      piVar15 = piVar15 + 1;\n    } while (__base + symtab.len != piVar15);\n    if (iVar16 != 0) {\n      if (*(int *)(iVar16 + 0x20) == 0) {\n        local_84 = 0;\n        goto LAB_0001beb2;\n      }\n      if (0.0 < dVar1) {\n        local_84 = 0;\n        pdVar8 = &SItab[1].scale;\n        dVar2 = DAT_00023e30;\n        while( true ) {\n          dVar2 = dVar2 * (dVar1 / (double)hz);\n          if ((1.0 <= dVar2) && (dVar2 < (double)DAT_00023e2c)) {\n            iVar16 = (int)SItab[local_84].prefix;\n            goto LAB_0001ba65;\n          }\n          local_84 = local_84 + 1;\n          if (local_84 == 0xb) break;\n          dVar2 = *pdVar8;\n          pdVar8 = (double *)((int)pdVar8 + 0xc);\n        }\n        iVar16 = 0;\n        goto LAB_0001ba65;\n      }\n    }\n    iVar16 = 0x54;\n    local_84 = 0;\n  }\nLAB_0001ba65:\n  iVar17 = (int)hist_dimension_abbrev;\n  pcVar9 = (char *)dcgettext("gprof","%c%c/call",5);\n  sprintf(unit,pcVar9,iVar16,iVar17);\n  if (bsd_style_output == 0) {\n    fVar4 = DAT_00023e28 / (float)hz;\n    pcVar9 = (char *)dcgettext("gprof","\nEach sample counts as %g %s.\n",5);\n    printf(pcVar9,SUB84((double)fVar4,0),(int)((ulonglong)(double)fVar4 >> 0x20),hist_dimension);\n  }\n  else {\n    dVar1 = ROUND(hist_scale);\n    pcVar9 = (char *)dcgettext("gprof","\ngranularity: each sample hit covers %ld byte(s)",5);\n    printf(pcVar9,(int)dVar1 * 2);\n    dVar1 = total_time;\n    if (0.0 < total_time) {\n      dVar2 = total_time / (double)hz;\n      pcVar9 = (char *)dcgettext("gprof"," for %.2f%% of %.2f %s\n\n",5);\n      printf(pcVar9,SUB84((double)_DAT_000221d8 / dVar1,0),\n             (int)((ulonglong)((double)_DAT_000221d8 / dVar1) >> 0x20),SUB84(dVar2,0),\n             (int)((ulonglong)dVar2 >> 0x20),hist_dimension);\n    }\n  }\n  if (total_time <= 0.0) {\n    pcVar9 = (char *)dcgettext("gprof"," no time accumulated\n\n",5);\n    printf(pcVar9);\n    total_time = 1.0;\n  }\n  uVar10 = dcgettext("gprof","total ",5);\n  uVar11 = dcgettext("gprof","self  ",5);\n  uVar12 = dcgettext("gprof","self  ",5);\n  uVar13 = dcgettext("gprof","cumulative",5);\n  printf("%5.5s %10.10s %8.8s %8.8s %8.8s %8.8s  %-8.8s\n",&DAT_00023d2f,uVar13,uVar12,"",uVar11,\n         uVar10,"");\n  uVar10 = dcgettext("gprof",&DAT_000229c1,5);\n  uVar11 = dcgettext("gprof","calls",5);\n  uVar12 = dcgettext("gprof",&DAT_000229d8,5);\n  uVar18 = 0;\n  printf("%5.5s %9.9s  %8.8s %8.8s %8.8s %8.8s  %-8.8s\n",uVar12,hist_dimension,hist_dimension,\n         uVar11,unit,unit,uVar10);\n  if (symtab.len != 0) {\n    do {\n      while( true ) {\n        address = *(bfd_vma *)__base[uVar18];\n        pSVar14 = sym_lookup(syms + 4,*(bfd_vma *)__base[uVar18]);\n        if (pSVar14 == (Sym *)0x0) break;\nLAB_0001bc00:\n        dVar1 = SItab[local_84].scale;\n        pSVar14 = (Sym *)__base[uVar18];\n        dVar2 = (pSVar14->hist).time;\n        if (((ignore_zeros == 0) || (pSVar14->ncalls != 0)) || (dVar2 != 0.0)) {\n          accum_time = accum_time + dVar2;\n          dVar5 = dVar2 / (double)hz;\n          dVar6 = accum_time / (double)hz;\n          uVar12 = SUB84(dVar5,0);\n          uVar13 = (undefined4)((ulonglong)dVar5 >> 0x20);\n          uVar10 = SUB84(dVar6,0);\n          uVar11 = (undefined4)((ulonglong)dVar6 >> 0x20);\n          if (bsd_style_output == 0) {\n            if (total_time <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / total_time;\n            }\n            printf("%6.2f %9.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11,\n                   uVar12,uVar13);\n          }\n          else {\n            if (total_time <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / total_time;\n            }\n            printf("%5.1f %10.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11\n                   ,uVar12,uVar13);\n          }\n          uVar3 = pSVar14->ncalls;\n          if (uVar3 == 0) {\n            printf(" %8.8s %8.8s %8.8s  ","","","");\n          }\n          else {\n            dVar2 = (pSVar14->hist).time;\n            dVar5 = ((((pSVar14->cg).child_time + dVar2) * dVar1) / (double)hz) / (double)uVar3;\n            dVar1 = ((dVar1 * dVar2) / (double)hz) / (double)uVar3;\n            printf(" %8lu %8.2f %8.2f  ",uVar3,SUB84(dVar1,0),(int)((ulonglong)dVar1 >> 0x20),\n                   SUB84(dVar5,0),(int)((ulonglong)dVar5 >> 0x20),uVar13);\n          }\n          if (bsd_style_output == 0) {\n            print_name_only(pSVar14);\n          }\n          else {\n            print_name(pSVar14);\n          }\n          putchar(10);\n        }\nLAB_0001bd38:\n        uVar18 = uVar18 + 1;\n        if (symtab.len <= uVar18) goto LAB_0001bda0;\n      }\n      if (syms[4].len != 0) goto LAB_0001bd38;\n      pSVar14 = sym_lookup(syms + 5,address);\n      if (pSVar14 == (Sym *)0x0) goto LAB_0001bc00;\n      uVar18 = uVar18 + 1;\n    } while (uVar18 < symtab.len);\n  }\nLAB_0001bda0:\n  free(__base);\n  if ((print_descriptions != 0) && (bsd_style_output == 0)) {\n    flat_blurb(*(FILE **)PTR_stdout_0002cfec);\n    return;\n  }\n  return;\n}" primitive_type (function_declarator "hist_print(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  double dVar1;\n  double dVar2;\n  uint uVar3;\n  float fVar4;\n  double dVar5;\n  double dVar6;\n  bfd_vma address;\n  int *__base;\n  int *piVar7;\n  double *pdVar8;\n  char *pcVar9;\n  undefined4 uVar10;\n  undefined4 uVar11;\n  undefined4 uVar12;\n  undefined4 uVar13;\n  Sym *pSVar14;\n  int *piVar15;\n  int iVar16;\n  int iVar17;\n  uint uVar18;\n  ulonglong local_a4;\n  uint local_84;\n  char unit [64];\n  \n  if (first_output == 0) {\n    puts("\f");\n  }\n  else {\n    first_output = 0;\n  }\n  accum_time = 0.0;\n  if (bsd_style_output == 0) {\n    pcVar9 = (char *)dcgettext("gprof","Flat profile:\n",5);\n    printf(pcVar9);\n  }\n  else if (print_descriptions != 0) {\n    pcVar9 = (char *)dcgettext("gprof","\n\n\nflat profile:\n",5);\n    printf(pcVar9);\n    flat_blurb(*(FILE **)PTR_stdout_0002cfec);\n  }\n  __base = (int *)xmalloc(symtab.len << 2);\n  uVar18 = symtab.len;\n  if (symtab.len != 0) {\n    piVar15 = __base + symtab.len;\n    piVar7 = __base;\n    pSVar14 = symtab.base;\n    do {\n      *piVar7 = (int)pSVar14;\n      piVar7 = piVar7 + 1;\n      pSVar14 = pSVar14 + 1;\n    } while (piVar15 != piVar7);\n  }\n  qsort(__base,uVar18,4,cmp_time);\n  if (bsd_style_output != 0) {\n    local_84 = 5;\n    iVar16 = 0x6d;\n    goto LAB_0001ba65;\n  }\n  local_84 = symtab.len;\n  if (symtab.len == 0) {\nLAB_0001beb2:\n    iVar16 = 0x54;\n  }\n  else {\n    iVar16 = 0;\n    dVar1 = 0.0;\n    piVar15 = __base;\n    do {\n      iVar17 = *piVar15;\n      if (*(uint *)(iVar17 + 0x20) != 0) {\n        local_a4 = (ulonglong)*(uint *)(iVar17 + 0x20);\n        dVar2 = (*(double *)(iVar17 + 0xa8) + *(double *)(iVar17 + 0xbc)) / (double)local_a4;\n        if (dVar1 < dVar2) {\n          dVar1 = dVar2;\n          iVar16 = iVar17;\n        }\n      }\n      piVar15 = piVar15 + 1;\n    } while (__base + symtab.len != piVar15);\n    if (iVar16 != 0) {\n      if (*(int *)(iVar16 + 0x20) == 0) {\n        local_84 = 0;\n        goto LAB_0001beb2;\n      }\n      if (0.0 < dVar1) {\n        local_84 = 0;\n        pdVar8 = &SItab[1].scale;\n        dVar2 = DAT_00023e30;\n        while( true ) {\n          dVar2 = dVar2 * (dVar1 / (double)hz);\n          if ((1.0 <= dVar2) && (dVar2 < (double)DAT_00023e2c)) {\n            iVar16 = (int)SItab[local_84].prefix;\n            goto LAB_0001ba65;\n          }\n          local_84 = local_84 + 1;\n          if (local_84 == 0xb) break;\n          dVar2 = *pdVar8;\n          pdVar8 = (double *)((int)pdVar8 + 0xc);\n        }\n        iVar16 = 0;\n        goto LAB_0001ba65;\n      }\n    }\n    iVar16 = 0x54;\n    local_84 = 0;\n  }\nLAB_0001ba65:\n  iVar17 = (int)hist_dimension_abbrev;\n  pcVar9 = (char *)dcgettext("gprof","%c%c/call",5);\n  sprintf(unit,pcVar9,iVar16,iVar17);\n  if (bsd_style_output == 0) {\n    fVar4 = DAT_00023e28 / (float)hz;\n    pcVar9 = (char *)dcgettext("gprof","\nEach sample counts as %g %s.\n",5);\n    printf(pcVar9,SUB84((double)fVar4,0),(int)((ulonglong)(double)fVar4 >> 0x20),hist_dimension);\n  }\n  else {\n    dVar1 = ROUND(hist_scale);\n    pcVar9 = (char *)dcgettext("gprof","\ngranularity: each sample hit covers %ld byte(s)",5);\n    printf(pcVar9,(int)dVar1 * 2);\n    dVar1 = total_time;\n    if (0.0 < total_time) {\n      dVar2 = total_time / (double)hz;\n      pcVar9 = (char *)dcgettext("gprof"," for %.2f%% of %.2f %s\n\n",5);\n      printf(pcVar9,SUB84((double)_DAT_000221d8 / dVar1,0),\n             (int)((ulonglong)((double)_DAT_000221d8 / dVar1) >> 0x20),SUB84(dVar2,0),\n             (int)((ulonglong)dVar2 >> 0x20),hist_dimension);\n    }\n  }\n  if (total_time <= 0.0) {\n    pcVar9 = (char *)dcgettext("gprof"," no time accumulated\n\n",5);\n    printf(pcVar9);\n    total_time = 1.0;\n  }\n  uVar10 = dcgettext("gprof","total ",5);\n  uVar11 = dcgettext("gprof","self  ",5);\n  uVar12 = dcgettext("gprof","self  ",5);\n  uVar13 = dcgettext("gprof","cumulative",5);\n  printf("%5.5s %10.10s %8.8s %8.8s %8.8s %8.8s  %-8.8s\n",&DAT_00023d2f,uVar13,uVar12,"",uVar11,\n         uVar10,"");\n  uVar10 = dcgettext("gprof",&DAT_000229c1,5);\n  uVar11 = dcgettext("gprof","calls",5);\n  uVar12 = dcgettext("gprof",&DAT_000229d8,5);\n  uVar18 = 0;\n  printf("%5.5s %9.9s  %8.8s %8.8s %8.8s %8.8s  %-8.8s\n",uVar12,hist_dimension,hist_dimension,\n         uVar11,unit,unit,uVar10);\n  if (symtab.len != 0) {\n    do {\n      while( true ) {\n        address = *(bfd_vma *)__base[uVar18];\n        pSVar14 = sym_lookup(syms + 4,*(bfd_vma *)__base[uVar18]);\n        if (pSVar14 == (Sym *)0x0) break;\nLAB_0001bc00:\n        dVar1 = SItab[local_84].scale;\n        pSVar14 = (Sym *)__base[uVar18];\n        dVar2 = (pSVar14->hist).time;\n        if (((ignore_zeros == 0) || (pSVar14->ncalls != 0)) || (dVar2 != 0.0)) {\n          accum_time = accum_time + dVar2;\n          dVar5 = dVar2 / (double)hz;\n          dVar6 = accum_time / (double)hz;\n          uVar12 = SUB84(dVar5,0);\n          uVar13 = (undefined4)((ulonglong)dVar5 >> 0x20);\n          uVar10 = SUB84(dVar6,0);\n          uVar11 = (undefined4)((ulonglong)dVar6 >> 0x20);\n          if (bsd_style_output == 0) {\n            if (total_time <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / total_time;\n            }\n            printf("%6.2f %9.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11,\n                   uVar12,uVar13);\n          }\n          else {\n            if (total_time <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / total_time;\n            }\n            printf("%5.1f %10.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11\n                   ,uVar12,uVar13);\n          }\n          uVar3 = pSVar14->ncalls;\n          if (uVar3 == 0) {\n            printf(" %8.8s %8.8s %8.8s  ","","","");\n          }\n          else {\n            dVar2 = (pSVar14->hist).time;\n            dVar5 = ((((pSVar14->cg).child_time + dVar2) * dVar1) / (double)hz) / (double)uVar3;\n            dVar1 = ((dVar1 * dVar2) / (double)hz) / (double)uVar3;\n            printf(" %8lu %8.2f %8.2f  ",uVar3,SUB84(dVar1,0),(int)((ulonglong)dVar1 >> 0x20),\n                   SUB84(dVar5,0),(int)((ulonglong)dVar5 >> 0x20),uVar13);\n          }\n          if (bsd_style_output == 0) {\n            print_name_only(pSVar14);\n          }\n          else {\n            print_name(pSVar14);\n          }\n          putchar(10);\n        }\nLAB_0001bd38:\n        uVar18 = uVar18 + 1;\n        if (symtab.len <= uVar18) goto LAB_0001bda0;\n      }\n      if (syms[4].len != 0) goto LAB_0001bd38;\n      pSVar14 = sym_lookup(syms + 5,address);\n      if (pSVar14 == (Sym *)0x0) goto LAB_0001bc00;\n      uVar18 = uVar18 + 1;\n    } while (uVar18 < symtab.len);\n  }\nLAB_0001bda0:\n  free(__base);\n  if ((print_descriptions != 0) && (bsd_style_output == 0)) {\n    flat_blurb(*(FILE **)PTR_stdout_0002cfec);\n    return;\n  }\n  return;\n}" { (declaration "double dVar1;" primitive_type identifier ;) (declaration "double dVar2;" primitive_type identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "float fVar4;" primitive_type identifier ;) (declaration "double dVar5;" primitive_type identifier ;) (declaration "double dVar6;" primitive_type identifier ;) (declaration "bfd_vma address;" type_identifier identifier ;) (declaration "int *__base;" primitive_type (pointer_declarator "*__base" * identifier) ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "double *pdVar8;" primitive_type (pointer_declarator "*pdVar8" * identifier) ;) (declaration "char *pcVar9;" primitive_type (pointer_declarator "*pcVar9" * identifier) ;) (declaration "undefined4 uVar10;" type_identifier identifier ;) (declaration "undefined4 uVar11;" type_identifier identifier ;) (declaration "undefined4 uVar12;" type_identifier identifier ;) (declaration "undefined4 uVar13;" type_identifier identifier ;) (declaration "Sym *pSVar14;" type_identifier (pointer_declarator "*pSVar14" * identifier) ;) (declaration "int *piVar15;" primitive_type (pointer_declarator "*piVar15" * identifier) ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "ulonglong local_a4;" type_identifier identifier ;) (declaration "uint local_84;" type_identifier identifier ;) (declaration "char unit [64];" primitive_type (array_declarator "unit [64]" identifier [ number_literal ]) ;) (if_statement "if (first_output == 0) {\n    puts("\f");\n  }\n  else {\n    first_output = 0;\n  }" if (parenthesized_expression "(first_output == 0)" ( (binary_expression "first_output == 0" identifier == number_literal) )) (compound_statement "{\n    puts("\f");\n  }" { (expression_statement "puts("\f");" (call_expression "puts("\f")" identifier (argument_list "("\f")" ( (string_literal ""\f"" " escape_sequence ") ))) ;) }) (else_clause "else {\n    first_output = 0;\n  }" else (compound_statement "{\n    first_output = 0;\n  }" { (expression_statement "first_output = 0;" (assignment_expression "first_output = 0" identifier = number_literal) ;) }))) (expression_statement "accum_time = 0.0;" (assignment_expression "accum_time = 0.0" identifier = number_literal) ;) (if_statement "if (bsd_style_output == 0) {\n    pcVar9 = (char *)dcgettext("gprof","Flat profile:\n",5);\n    printf(pcVar9);\n  }\n  else if (print_descriptions != 0) {\n    pcVar9 = (char *)dcgettext("gprof","\n\n\nflat profile:\n",5);\n    printf(pcVar9);\n    flat_blurb(*(FILE **)PTR_stdout_0002cfec);\n  }" if (parenthesized_expression "(bsd_style_output == 0)" ( (binary_expression "bsd_style_output == 0" identifier == number_literal) )) (compound_statement "{\n    pcVar9 = (char *)dcgettext("gprof","Flat profile:\n",5);\n    printf(pcVar9);\n  }" { (expression_statement "pcVar9 = (char *)dcgettext("gprof","Flat profile:\n",5);" (assignment_expression "pcVar9 = (char *)dcgettext("gprof","Flat profile:\n",5)" identifier = (cast_expression "(char *)dcgettext("gprof","Flat profile:\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext("gprof","Flat profile:\n",5)" identifier (argument_list "("gprof","Flat profile:\n",5)" ( (string_literal ""gprof"" " string_content ") , (string_literal ""Flat profile:\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "printf(pcVar9);" (call_expression "printf(pcVar9)" identifier (argument_list "(pcVar9)" ( identifier ))) ;) }) (else_clause "else if (print_descriptions != 0) {\n    pcVar9 = (char *)dcgettext("gprof","\n\n\nflat profile:\n",5);\n    printf(pcVar9);\n    flat_blurb(*(FILE **)PTR_stdout_0002cfec);\n  }" else (if_statement "if (print_descriptions != 0) {\n    pcVar9 = (char *)dcgettext("gprof","\n\n\nflat profile:\n",5);\n    printf(pcVar9);\n    flat_blurb(*(FILE **)PTR_stdout_0002cfec);\n  }" if (parenthesized_expression "(print_descriptions != 0)" ( (binary_expression "print_descriptions != 0" identifier != number_literal) )) (compound_statement "{\n    pcVar9 = (char *)dcgettext("gprof","\n\n\nflat profile:\n",5);\n    printf(pcVar9);\n    flat_blurb(*(FILE **)PTR_stdout_0002cfec);\n  }" { (expression_statement "pcVar9 = (char *)dcgettext("gprof","\n\n\nflat profile:\n",5);" (assignment_expression "pcVar9 = (char *)dcgettext("gprof","\n\n\nflat profile:\n",5)" identifier = (cast_expression "(char *)dcgettext("gprof","\n\n\nflat profile:\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext("gprof","\n\n\nflat profile:\n",5)" identifier (argument_list "("gprof","\n\n\nflat profile:\n",5)" ( (string_literal ""gprof"" " string_content ") , (string_literal ""\n\n\nflat profile:\n"" " escape_sequence escape_sequence escape_sequence string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "printf(pcVar9);" (call_expression "printf(pcVar9)" identifier (argument_list "(pcVar9)" ( identifier ))) ;) (expression_statement "flat_blurb(*(FILE **)PTR_stdout_0002cfec);" (call_expression "flat_blurb(*(FILE **)PTR_stdout_0002cfec)" identifier (argument_list "(*(FILE **)PTR_stdout_0002cfec)" ( (pointer_expression "*(FILE **)PTR_stdout_0002cfec" * (cast_expression "(FILE **)PTR_stdout_0002cfec" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ))) ;) })))) (expression_statement "__base = (int *)xmalloc(symtab.len << 2);" (assignment_expression "__base = (int *)xmalloc(symtab.len << 2)" identifier = (cast_expression "(int *)xmalloc(symtab.len << 2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(symtab.len << 2)" identifier (argument_list "(symtab.len << 2)" ( (binary_expression "symtab.len << 2" (field_expression "symtab.len" identifier . field_identifier) << number_literal) ))))) ;) (expression_statement "uVar18 = symtab.len;" (assignment_expression "uVar18 = symtab.len" identifier = (field_expression "symtab.len" identifier . field_identifier)) ;) (if_statement "if (symtab.len != 0) {\n    piVar15 = __base + symtab.len;\n    piVar7 = __base;\n    pSVar14 = symtab.base;\n    do {\n      *piVar7 = (int)pSVar14;\n      piVar7 = piVar7 + 1;\n      pSVar14 = pSVar14 + 1;\n    } while (piVar15 != piVar7);\n  }" if (parenthesized_expression "(symtab.len != 0)" ( (binary_expression "symtab.len != 0" (field_expression "symtab.len" identifier . field_identifier) != number_literal) )) (compound_statement "{\n    piVar15 = __base + symtab.len;\n    piVar7 = __base;\n    pSVar14 = symtab.base;\n    do {\n      *piVar7 = (int)pSVar14;\n      piVar7 = piVar7 + 1;\n      pSVar14 = pSVar14 + 1;\n    } while (piVar15 != piVar7);\n  }" { (expression_statement "piVar15 = __base + symtab.len;" (assignment_expression "piVar15 = __base + symtab.len" identifier = (binary_expression "__base + symtab.len" identifier + (field_expression "symtab.len" identifier . field_identifier))) ;) (expression_statement "piVar7 = __base;" (assignment_expression "piVar7 = __base" identifier = identifier) ;) (expression_statement "pSVar14 = symtab.base;" (assignment_expression "pSVar14 = symtab.base" identifier = (field_expression "symtab.base" identifier . field_identifier)) ;) (do_statement "do {\n      *piVar7 = (int)pSVar14;\n      piVar7 = piVar7 + 1;\n      pSVar14 = pSVar14 + 1;\n    } while (piVar15 != piVar7);" do (compound_statement "{\n      *piVar7 = (int)pSVar14;\n      piVar7 = piVar7 + 1;\n      pSVar14 = pSVar14 + 1;\n    }" { (expression_statement "*piVar7 = (int)pSVar14;" (assignment_expression "*piVar7 = (int)pSVar14" (pointer_expression "*piVar7" * identifier) = (cast_expression "(int)pSVar14" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "piVar7 = piVar7 + 1;" (assignment_expression "piVar7 = piVar7 + 1" identifier = (binary_expression "piVar7 + 1" identifier + number_literal)) ;) (expression_statement "pSVar14 = pSVar14 + 1;" (assignment_expression "pSVar14 = pSVar14 + 1" identifier = (binary_expression "pSVar14 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar15 != piVar7)" ( (binary_expression "piVar15 != piVar7" identifier != identifier) )) ;) })) (expression_statement "qsort(__base,uVar18,4,cmp_time);" (call_expression "qsort(__base,uVar18,4,cmp_time)" identifier (argument_list "(__base,uVar18,4,cmp_time)" ( identifier , identifier , number_literal , identifier ))) ;) (if_statement "if (bsd_style_output != 0) {\n    local_84 = 5;\n    iVar16 = 0x6d;\n    goto LAB_0001ba65;\n  }" if (parenthesized_expression "(bsd_style_output != 0)" ( (binary_expression "bsd_style_output != 0" identifier != number_literal) )) (compound_statement "{\n    local_84 = 5;\n    iVar16 = 0x6d;\n    goto LAB_0001ba65;\n  }" { (expression_statement "local_84 = 5;" (assignment_expression "local_84 = 5" identifier = number_literal) ;) (expression_statement "iVar16 = 0x6d;" (assignment_expression "iVar16 = 0x6d" identifier = number_literal) ;) (goto_statement "goto LAB_0001ba65;" goto statement_identifier ;) })) (expression_statement "local_84 = symtab.len;" (assignment_expression "local_84 = symtab.len" identifier = (field_expression "symtab.len" identifier . field_identifier)) ;) (if_statement "if (symtab.len == 0) {\nLAB_0001beb2:\n    iVar16 = 0x54;\n  }\n  else {\n    iVar16 = 0;\n    dVar1 = 0.0;\n    piVar15 = __base;\n    do {\n      iVar17 = *piVar15;\n      if (*(uint *)(iVar17 + 0x20) != 0) {\n        local_a4 = (ulonglong)*(uint *)(iVar17 + 0x20);\n        dVar2 = (*(double *)(iVar17 + 0xa8) + *(double *)(iVar17 + 0xbc)) / (double)local_a4;\n        if (dVar1 < dVar2) {\n          dVar1 = dVar2;\n          iVar16 = iVar17;\n        }\n      }\n      piVar15 = piVar15 + 1;\n    } while (__base + symtab.len != piVar15);\n    if (iVar16 != 0) {\n      if (*(int *)(iVar16 + 0x20) == 0) {\n        local_84 = 0;\n        goto LAB_0001beb2;\n      }\n      if (0.0 < dVar1) {\n        local_84 = 0;\n        pdVar8 = &SItab[1].scale;\n        dVar2 = DAT_00023e30;\n        while( true ) {\n          dVar2 = dVar2 * (dVar1 / (double)hz);\n          if ((1.0 <= dVar2) && (dVar2 < (double)DAT_00023e2c)) {\n            iVar16 = (int)SItab[local_84].prefix;\n            goto LAB_0001ba65;\n          }\n          local_84 = local_84 + 1;\n          if (local_84 == 0xb) break;\n          dVar2 = *pdVar8;\n          pdVar8 = (double *)((int)pdVar8 + 0xc);\n        }\n        iVar16 = 0;\n        goto LAB_0001ba65;\n      }\n    }\n    iVar16 = 0x54;\n    local_84 = 0;\n  }" if (parenthesized_expression "(symtab.len == 0)" ( (binary_expression "symtab.len == 0" (field_expression "symtab.len" identifier . field_identifier) == number_literal) )) (compound_statement "{\nLAB_0001beb2:\n    iVar16 = 0x54;\n  }" { (labeled_statement "LAB_0001beb2:\n    iVar16 = 0x54;" statement_identifier : (expression_statement "iVar16 = 0x54;" (assignment_expression "iVar16 = 0x54" identifier = number_literal) ;)) }) (else_clause "else {\n    iVar16 = 0;\n    dVar1 = 0.0;\n    piVar15 = __base;\n    do {\n      iVar17 = *piVar15;\n      if (*(uint *)(iVar17 + 0x20) != 0) {\n        local_a4 = (ulonglong)*(uint *)(iVar17 + 0x20);\n        dVar2 = (*(double *)(iVar17 + 0xa8) + *(double *)(iVar17 + 0xbc)) / (double)local_a4;\n        if (dVar1 < dVar2) {\n          dVar1 = dVar2;\n          iVar16 = iVar17;\n        }\n      }\n      piVar15 = piVar15 + 1;\n    } while (__base + symtab.len != piVar15);\n    if (iVar16 != 0) {\n      if (*(int *)(iVar16 + 0x20) == 0) {\n        local_84 = 0;\n        goto LAB_0001beb2;\n      }\n      if (0.0 < dVar1) {\n        local_84 = 0;\n        pdVar8 = &SItab[1].scale;\n        dVar2 = DAT_00023e30;\n        while( true ) {\n          dVar2 = dVar2 * (dVar1 / (double)hz);\n          if ((1.0 <= dVar2) && (dVar2 < (double)DAT_00023e2c)) {\n            iVar16 = (int)SItab[local_84].prefix;\n            goto LAB_0001ba65;\n          }\n          local_84 = local_84 + 1;\n          if (local_84 == 0xb) break;\n          dVar2 = *pdVar8;\n          pdVar8 = (double *)((int)pdVar8 + 0xc);\n        }\n        iVar16 = 0;\n        goto LAB_0001ba65;\n      }\n    }\n    iVar16 = 0x54;\n    local_84 = 0;\n  }" else (compound_statement "{\n    iVar16 = 0;\n    dVar1 = 0.0;\n    piVar15 = __base;\n    do {\n      iVar17 = *piVar15;\n      if (*(uint *)(iVar17 + 0x20) != 0) {\n        local_a4 = (ulonglong)*(uint *)(iVar17 + 0x20);\n        dVar2 = (*(double *)(iVar17 + 0xa8) + *(double *)(iVar17 + 0xbc)) / (double)local_a4;\n        if (dVar1 < dVar2) {\n          dVar1 = dVar2;\n          iVar16 = iVar17;\n        }\n      }\n      piVar15 = piVar15 + 1;\n    } while (__base + symtab.len != piVar15);\n    if (iVar16 != 0) {\n      if (*(int *)(iVar16 + 0x20) == 0) {\n        local_84 = 0;\n        goto LAB_0001beb2;\n      }\n      if (0.0 < dVar1) {\n        local_84 = 0;\n        pdVar8 = &SItab[1].scale;\n        dVar2 = DAT_00023e30;\n        while( true ) {\n          dVar2 = dVar2 * (dVar1 / (double)hz);\n          if ((1.0 <= dVar2) && (dVar2 < (double)DAT_00023e2c)) {\n            iVar16 = (int)SItab[local_84].prefix;\n            goto LAB_0001ba65;\n          }\n          local_84 = local_84 + 1;\n          if (local_84 == 0xb) break;\n          dVar2 = *pdVar8;\n          pdVar8 = (double *)((int)pdVar8 + 0xc);\n        }\n        iVar16 = 0;\n        goto LAB_0001ba65;\n      }\n    }\n    iVar16 = 0x54;\n    local_84 = 0;\n  }" { (expression_statement "iVar16 = 0;" (assignment_expression "iVar16 = 0" identifier = number_literal) ;) (expression_statement "dVar1 = 0.0;" (assignment_expression "dVar1 = 0.0" identifier = number_literal) ;) (expression_statement "piVar15 = __base;" (assignment_expression "piVar15 = __base" identifier = identifier) ;) (do_statement "do {\n      iVar17 = *piVar15;\n      if (*(uint *)(iVar17 + 0x20) != 0) {\n        local_a4 = (ulonglong)*(uint *)(iVar17 + 0x20);\n        dVar2 = (*(double *)(iVar17 + 0xa8) + *(double *)(iVar17 + 0xbc)) / (double)local_a4;\n        if (dVar1 < dVar2) {\n          dVar1 = dVar2;\n          iVar16 = iVar17;\n        }\n      }\n      piVar15 = piVar15 + 1;\n    } while (__base + symtab.len != piVar15);" do (compound_statement "{\n      iVar17 = *piVar15;\n      if (*(uint *)(iVar17 + 0x20) != 0) {\n        local_a4 = (ulonglong)*(uint *)(iVar17 + 0x20);\n        dVar2 = (*(double *)(iVar17 + 0xa8) + *(double *)(iVar17 + 0xbc)) / (double)local_a4;\n        if (dVar1 < dVar2) {\n          dVar1 = dVar2;\n          iVar16 = iVar17;\n        }\n      }\n      piVar15 = piVar15 + 1;\n    }" { (expression_statement "iVar17 = *piVar15;" (assignment_expression "iVar17 = *piVar15" identifier = (pointer_expression "*piVar15" * identifier)) ;) (if_statement "if (*(uint *)(iVar17 + 0x20) != 0) {\n        local_a4 = (ulonglong)*(uint *)(iVar17 + 0x20);\n        dVar2 = (*(double *)(iVar17 + 0xa8) + *(double *)(iVar17 + 0xbc)) / (double)local_a4;\n        if (dVar1 < dVar2) {\n          dVar1 = dVar2;\n          iVar16 = iVar17;\n        }\n      }" if (parenthesized_expression "(*(uint *)(iVar17 + 0x20) != 0)" ( (binary_expression "*(uint *)(iVar17 + 0x20) != 0" (pointer_expression "*(uint *)(iVar17 + 0x20)" * (cast_expression "(uint *)(iVar17 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x20)" ( (binary_expression "iVar17 + 0x20" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n        local_a4 = (ulonglong)*(uint *)(iVar17 + 0x20);\n        dVar2 = (*(double *)(iVar17 + 0xa8) + *(double *)(iVar17 + 0xbc)) / (double)local_a4;\n        if (dVar1 < dVar2) {\n          dVar1 = dVar2;\n          iVar16 = iVar17;\n        }\n      }" { (expression_statement "local_a4 = (ulonglong)*(uint *)(iVar17 + 0x20);" (assignment_expression "local_a4 = (ulonglong)*(uint *)(iVar17 + 0x20)" identifier = (binary_expression "(ulonglong)*(uint *)(iVar17 + 0x20)" (parenthesized_expression "(ulonglong)" ( identifier )) * (cast_expression "(uint *)(iVar17 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x20)" ( (binary_expression "iVar17 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "dVar2 = (*(double *)(iVar17 + 0xa8) + *(double *)(iVar17 + 0xbc)) / (double)local_a4;" (assignment_expression "dVar2 = (*(double *)(iVar17 + 0xa8) + *(double *)(iVar17 + 0xbc)) / (double)local_a4" identifier = (binary_expression "(*(double *)(iVar17 + 0xa8) + *(double *)(iVar17 + 0xbc)) / (double)local_a4" (parenthesized_expression "(*(double *)(iVar17 + 0xa8) + *(double *)(iVar17 + 0xbc))" ( (binary_expression "*(double *)(iVar17 + 0xa8) + *(double *)(iVar17 + 0xbc)" (pointer_expression "*(double *)(iVar17 + 0xa8)" * (cast_expression "(double *)(iVar17 + 0xa8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0xa8)" ( (binary_expression "iVar17 + 0xa8" identifier + number_literal) )))) + (pointer_expression "*(double *)(iVar17 + 0xbc)" * (cast_expression "(double *)(iVar17 + 0xbc)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0xbc)" ( (binary_expression "iVar17 + 0xbc" identifier + number_literal) ))))) )) / (cast_expression "(double)local_a4" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if (dVar1 < dVar2) {\n          dVar1 = dVar2;\n          iVar16 = iVar17;\n        }" if (parenthesized_expression "(dVar1 < dVar2)" ( (binary_expression "dVar1 < dVar2" identifier < identifier) )) (compound_statement "{\n          dVar1 = dVar2;\n          iVar16 = iVar17;\n        }" { (expression_statement "dVar1 = dVar2;" (assignment_expression "dVar1 = dVar2" identifier = identifier) ;) (expression_statement "iVar16 = iVar17;" (assignment_expression "iVar16 = iVar17" identifier = identifier) ;) })) })) (expression_statement "piVar15 = piVar15 + 1;" (assignment_expression "piVar15 = piVar15 + 1" identifier = (binary_expression "piVar15 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(__base + symtab.len != piVar15)" ( (binary_expression "__base + symtab.len != piVar15" (binary_expression "__base + symtab.len" identifier + (field_expression "symtab.len" identifier . field_identifier)) != identifier) )) ;) (if_statement "if (iVar16 != 0) {\n      if (*(int *)(iVar16 + 0x20) == 0) {\n        local_84 = 0;\n        goto LAB_0001beb2;\n      }\n      if (0.0 < dVar1) {\n        local_84 = 0;\n        pdVar8 = &SItab[1].scale;\n        dVar2 = DAT_00023e30;\n        while( true ) {\n          dVar2 = dVar2 * (dVar1 / (double)hz);\n          if ((1.0 <= dVar2) && (dVar2 < (double)DAT_00023e2c)) {\n            iVar16 = (int)SItab[local_84].prefix;\n            goto LAB_0001ba65;\n          }\n          local_84 = local_84 + 1;\n          if (local_84 == 0xb) break;\n          dVar2 = *pdVar8;\n          pdVar8 = (double *)((int)pdVar8 + 0xc);\n        }\n        iVar16 = 0;\n        goto LAB_0001ba65;\n      }\n    }" if (parenthesized_expression "(iVar16 != 0)" ( (binary_expression "iVar16 != 0" identifier != number_literal) )) (compound_statement "{\n      if (*(int *)(iVar16 + 0x20) == 0) {\n        local_84 = 0;\n        goto LAB_0001beb2;\n      }\n      if (0.0 < dVar1) {\n        local_84 = 0;\n        pdVar8 = &SItab[1].scale;\n        dVar2 = DAT_00023e30;\n        while( true ) {\n          dVar2 = dVar2 * (dVar1 / (double)hz);\n          if ((1.0 <= dVar2) && (dVar2 < (double)DAT_00023e2c)) {\n            iVar16 = (int)SItab[local_84].prefix;\n            goto LAB_0001ba65;\n          }\n          local_84 = local_84 + 1;\n          if (local_84 == 0xb) break;\n          dVar2 = *pdVar8;\n          pdVar8 = (double *)((int)pdVar8 + 0xc);\n        }\n        iVar16 = 0;\n        goto LAB_0001ba65;\n      }\n    }" { (if_statement "if (*(int *)(iVar16 + 0x20) == 0) {\n        local_84 = 0;\n        goto LAB_0001beb2;\n      }" if (parenthesized_expression "(*(int *)(iVar16 + 0x20) == 0)" ( (binary_expression "*(int *)(iVar16 + 0x20) == 0" (pointer_expression "*(int *)(iVar16 + 0x20)" * (cast_expression "(int *)(iVar16 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x20)" ( (binary_expression "iVar16 + 0x20" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        local_84 = 0;\n        goto LAB_0001beb2;\n      }" { (expression_statement "local_84 = 0;" (assignment_expression "local_84 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0001beb2;" goto statement_identifier ;) })) (if_statement "if (0.0 < dVar1) {\n        local_84 = 0;\n        pdVar8 = &SItab[1].scale;\n        dVar2 = DAT_00023e30;\n        while( true ) {\n          dVar2 = dVar2 * (dVar1 / (double)hz);\n          if ((1.0 <= dVar2) && (dVar2 < (double)DAT_00023e2c)) {\n            iVar16 = (int)SItab[local_84].prefix;\n            goto LAB_0001ba65;\n          }\n          local_84 = local_84 + 1;\n          if (local_84 == 0xb) break;\n          dVar2 = *pdVar8;\n          pdVar8 = (double *)((int)pdVar8 + 0xc);\n        }\n        iVar16 = 0;\n        goto LAB_0001ba65;\n      }" if (parenthesized_expression "(0.0 < dVar1)" ( (binary_expression "0.0 < dVar1" number_literal < identifier) )) (compound_statement "{\n        local_84 = 0;\n        pdVar8 = &SItab[1].scale;\n        dVar2 = DAT_00023e30;\n        while( true ) {\n          dVar2 = dVar2 * (dVar1 / (double)hz);\n          if ((1.0 <= dVar2) && (dVar2 < (double)DAT_00023e2c)) {\n            iVar16 = (int)SItab[local_84].prefix;\n            goto LAB_0001ba65;\n          }\n          local_84 = local_84 + 1;\n          if (local_84 == 0xb) break;\n          dVar2 = *pdVar8;\n          pdVar8 = (double *)((int)pdVar8 + 0xc);\n        }\n        iVar16 = 0;\n        goto LAB_0001ba65;\n      }" { (expression_statement "local_84 = 0;" (assignment_expression "local_84 = 0" identifier = number_literal) ;) (expression_statement "pdVar8 = &SItab[1].scale;" (assignment_expression "pdVar8 = &SItab[1].scale" identifier = (pointer_expression "&SItab[1].scale" & (field_expression "SItab[1].scale" (subscript_expression "SItab[1]" identifier [ number_literal ]) . field_identifier))) ;) (expression_statement "dVar2 = DAT_00023e30;" (assignment_expression "dVar2 = DAT_00023e30" identifier = identifier) ;) (while_statement "while( true ) {\n          dVar2 = dVar2 * (dVar1 / (double)hz);\n          if ((1.0 <= dVar2) && (dVar2 < (double)DAT_00023e2c)) {\n            iVar16 = (int)SItab[local_84].prefix;\n            goto LAB_0001ba65;\n          }\n          local_84 = local_84 + 1;\n          if (local_84 == 0xb) break;\n          dVar2 = *pdVar8;\n          pdVar8 = (double *)((int)pdVar8 + 0xc);\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          dVar2 = dVar2 * (dVar1 / (double)hz);\n          if ((1.0 <= dVar2) && (dVar2 < (double)DAT_00023e2c)) {\n            iVar16 = (int)SItab[local_84].prefix;\n            goto LAB_0001ba65;\n          }\n          local_84 = local_84 + 1;\n          if (local_84 == 0xb) break;\n          dVar2 = *pdVar8;\n          pdVar8 = (double *)((int)pdVar8 + 0xc);\n        }" { (expression_statement "dVar2 = dVar2 * (dVar1 / (double)hz);" (assignment_expression "dVar2 = dVar2 * (dVar1 / (double)hz)" identifier = (binary_expression "dVar2 * (dVar1 / (double)hz)" identifier * (parenthesized_expression "(dVar1 / (double)hz)" ( (binary_expression "dVar1 / (double)hz" identifier / (cast_expression "(double)hz" ( (type_descriptor "double" primitive_type) ) identifier)) )))) ;) (if_statement "if ((1.0 <= dVar2) && (dVar2 < (double)DAT_00023e2c)) {\n            iVar16 = (int)SItab[local_84].prefix;\n            goto LAB_0001ba65;\n          }" if (parenthesized_expression "((1.0 <= dVar2) && (dVar2 < (double)DAT_00023e2c))" ( (binary_expression "(1.0 <= dVar2) && (dVar2 < (double)DAT_00023e2c)" (parenthesized_expression "(1.0 <= dVar2)" ( (binary_expression "1.0 <= dVar2" number_literal <= identifier) )) && (parenthesized_expression "(dVar2 < (double)DAT_00023e2c)" ( (binary_expression "dVar2 < (double)DAT_00023e2c" identifier < (cast_expression "(double)DAT_00023e2c" ( (type_descriptor "double" primitive_type) ) identifier)) ))) )) (compound_statement "{\n            iVar16 = (int)SItab[local_84].prefix;\n            goto LAB_0001ba65;\n          }" { (expression_statement "iVar16 = (int)SItab[local_84].prefix;" (assignment_expression "iVar16 = (int)SItab[local_84].prefix" identifier = (cast_expression "(int)SItab[local_84].prefix" ( (type_descriptor "int" primitive_type) ) (field_expression "SItab[local_84].prefix" (subscript_expression "SItab[local_84]" identifier [ identifier ]) . field_identifier))) ;) (goto_statement "goto LAB_0001ba65;" goto statement_identifier ;) })) (expression_statement "local_84 = local_84 + 1;" (assignment_expression "local_84 = local_84 + 1" identifier = (binary_expression "local_84 + 1" identifier + number_literal)) ;) (if_statement "if (local_84 == 0xb) break;" if (parenthesized_expression "(local_84 == 0xb)" ( (binary_expression "local_84 == 0xb" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "dVar2 = *pdVar8;" (assignment_expression "dVar2 = *pdVar8" identifier = (pointer_expression "*pdVar8" * identifier)) ;) (expression_statement "pdVar8 = (double *)((int)pdVar8 + 0xc);" (assignment_expression "pdVar8 = (double *)((int)pdVar8 + 0xc)" identifier = (cast_expression "(double *)((int)pdVar8 + 0xc)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar8 + 0xc)" ( (binary_expression "(int)pdVar8 + 0xc" (cast_expression "(int)pdVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) })) (expression_statement "iVar16 = 0;" (assignment_expression "iVar16 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0001ba65;" goto statement_identifier ;) })) })) (expression_statement "iVar16 = 0x54;" (assignment_expression "iVar16 = 0x54" identifier = number_literal) ;) (expression_statement "local_84 = 0;" (assignment_expression "local_84 = 0" identifier = number_literal) ;) }))) (labeled_statement "LAB_0001ba65:\n  iVar17 = (int)hist_dimension_abbrev;" statement_identifier : (expression_statement "iVar17 = (int)hist_dimension_abbrev;" (assignment_expression "iVar17 = (int)hist_dimension_abbrev" identifier = (cast_expression "(int)hist_dimension_abbrev" ( (type_descriptor "int" primitive_type) ) identifier)) ;)) (expression_statement "pcVar9 = (char *)dcgettext("gprof","%c%c/call",5);" (assignment_expression "pcVar9 = (char *)dcgettext("gprof","%c%c/call",5)" identifier = (cast_expression "(char *)dcgettext("gprof","%c%c/call",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext("gprof","%c%c/call",5)" identifier (argument_list "("gprof","%c%c/call",5)" ( (string_literal ""gprof"" " string_content ") , (string_literal ""%c%c/call"" " string_content ") , number_literal ))))) ;) (expression_statement "sprintf(unit,pcVar9,iVar16,iVar17);" (call_expression "sprintf(unit,pcVar9,iVar16,iVar17)" identifier (argument_list "(unit,pcVar9,iVar16,iVar17)" ( identifier , identifier , identifier , identifier ))) ;) (if_statement "if (bsd_style_output == 0) {\n    fVar4 = DAT_00023e28 / (float)hz;\n    pcVar9 = (char *)dcgettext("gprof","\nEach sample counts as %g %s.\n",5);\n    printf(pcVar9,SUB84((double)fVar4,0),(int)((ulonglong)(double)fVar4 >> 0x20),hist_dimension);\n  }\n  else {\n    dVar1 = ROUND(hist_scale);\n    pcVar9 = (char *)dcgettext("gprof","\ngranularity: each sample hit covers %ld byte(s)",5);\n    printf(pcVar9,(int)dVar1 * 2);\n    dVar1 = total_time;\n    if (0.0 < total_time) {\n      dVar2 = total_time / (double)hz;\n      pcVar9 = (char *)dcgettext("gprof"," for %.2f%% of %.2f %s\n\n",5);\n      printf(pcVar9,SUB84((double)_DAT_000221d8 / dVar1,0),\n             (int)((ulonglong)((double)_DAT_000221d8 / dVar1) >> 0x20),SUB84(dVar2,0),\n             (int)((ulonglong)dVar2 >> 0x20),hist_dimension);\n    }\n  }" if (parenthesized_expression "(bsd_style_output == 0)" ( (binary_expression "bsd_style_output == 0" identifier == number_literal) )) (compound_statement "{\n    fVar4 = DAT_00023e28 / (float)hz;\n    pcVar9 = (char *)dcgettext("gprof","\nEach sample counts as %g %s.\n",5);\n    printf(pcVar9,SUB84((double)fVar4,0),(int)((ulonglong)(double)fVar4 >> 0x20),hist_dimension);\n  }" { (expression_statement "fVar4 = DAT_00023e28 / (float)hz;" (assignment_expression "fVar4 = DAT_00023e28 / (float)hz" identifier = (binary_expression "DAT_00023e28 / (float)hz" identifier / (cast_expression "(float)hz" ( (type_descriptor "float" primitive_type) ) identifier))) ;) (expression_statement "pcVar9 = (char *)dcgettext("gprof","\nEach sample counts as %g %s.\n",5);" (assignment_expression "pcVar9 = (char *)dcgettext("gprof","\nEach sample counts as %g %s.\n",5)" identifier = (cast_expression "(char *)dcgettext("gprof","\nEach sample counts as %g %s.\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext("gprof","\nEach sample counts as %g %s.\n",5)" identifier (argument_list "("gprof","\nEach sample counts as %g %s.\n",5)" ( (string_literal ""gprof"" " string_content ") , (string_literal ""\nEach sample counts as %g %s.\n"" " escape_sequence string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "printf(pcVar9,SUB84((double)fVar4,0),(int)((ulonglong)(double)fVar4 >> 0x20),hist_dimension);" (call_expression "printf(pcVar9,SUB84((double)fVar4,0),(int)((ulonglong)(double)fVar4 >> 0x20),hist_dimension)" identifier (argument_list "(pcVar9,SUB84((double)fVar4,0),(int)((ulonglong)(double)fVar4 >> 0x20),hist_dimension)" ( identifier , (call_expression "SUB84((double)fVar4,0)" identifier (argument_list "((double)fVar4,0)" ( (cast_expression "(double)fVar4" ( (type_descriptor "double" primitive_type) ) identifier) , number_literal ))) , (cast_expression "(int)((ulonglong)(double)fVar4 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)(double)fVar4 >> 0x20)" ( (binary_expression "(ulonglong)(double)fVar4 >> 0x20" (cast_expression "(ulonglong)(double)fVar4" ( (type_descriptor "ulonglong" type_identifier) ) (cast_expression "(double)fVar4" ( (type_descriptor "double" primitive_type) ) identifier)) >> number_literal) ))) , identifier ))) ;) }) (else_clause "else {\n    dVar1 = ROUND(hist_scale);\n    pcVar9 = (char *)dcgettext("gprof","\ngranularity: each sample hit covers %ld byte(s)",5);\n    printf(pcVar9,(int)dVar1 * 2);\n    dVar1 = total_time;\n    if (0.0 < total_time) {\n      dVar2 = total_time / (double)hz;\n      pcVar9 = (char *)dcgettext("gprof"," for %.2f%% of %.2f %s\n\n",5);\n      printf(pcVar9,SUB84((double)_DAT_000221d8 / dVar1,0),\n             (int)((ulonglong)((double)_DAT_000221d8 / dVar1) >> 0x20),SUB84(dVar2,0),\n             (int)((ulonglong)dVar2 >> 0x20),hist_dimension);\n    }\n  }" else (compound_statement "{\n    dVar1 = ROUND(hist_scale);\n    pcVar9 = (char *)dcgettext("gprof","\ngranularity: each sample hit covers %ld byte(s)",5);\n    printf(pcVar9,(int)dVar1 * 2);\n    dVar1 = total_time;\n    if (0.0 < total_time) {\n      dVar2 = total_time / (double)hz;\n      pcVar9 = (char *)dcgettext("gprof"," for %.2f%% of %.2f %s\n\n",5);\n      printf(pcVar9,SUB84((double)_DAT_000221d8 / dVar1,0),\n             (int)((ulonglong)((double)_DAT_000221d8 / dVar1) >> 0x20),SUB84(dVar2,0),\n             (int)((ulonglong)dVar2 >> 0x20),hist_dimension);\n    }\n  }" { (expression_statement "dVar1 = ROUND(hist_scale);" (assignment_expression "dVar1 = ROUND(hist_scale)" identifier = (call_expression "ROUND(hist_scale)" identifier (argument_list "(hist_scale)" ( identifier )))) ;) (expression_statement "pcVar9 = (char *)dcgettext("gprof","\ngranularity: each sample hit covers %ld byte(s)",5);" (assignment_expression "pcVar9 = (char *)dcgettext("gprof","\ngranularity: each sample hit covers %ld byte(s)",5)" identifier = (cast_expression "(char *)dcgettext("gprof","\ngranularity: each sample hit covers %ld byte(s)",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext("gprof","\ngranularity: each sample hit covers %ld byte(s)",5)" identifier (argument_list "("gprof","\ngranularity: each sample hit covers %ld byte(s)",5)" ( (string_literal ""gprof"" " string_content ") , (string_literal ""\ngranularity: each sample hit covers %ld byte(s)"" " escape_sequence string_content ") , number_literal ))))) ;) (expression_statement "printf(pcVar9,(int)dVar1 * 2);" (call_expression "printf(pcVar9,(int)dVar1 * 2)" identifier (argument_list "(pcVar9,(int)dVar1 * 2)" ( identifier , (binary_expression "(int)dVar1 * 2" (cast_expression "(int)dVar1" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) ))) ;) (expression_statement "dVar1 = total_time;" (assignment_expression "dVar1 = total_time" identifier = identifier) ;) (if_statement "if (0.0 < total_time) {\n      dVar2 = total_time / (double)hz;\n      pcVar9 = (char *)dcgettext("gprof"," for %.2f%% of %.2f %s\n\n",5);\n      printf(pcVar9,SUB84((double)_DAT_000221d8 / dVar1,0),\n             (int)((ulonglong)((double)_DAT_000221d8 / dVar1) >> 0x20),SUB84(dVar2,0),\n             (int)((ulonglong)dVar2 >> 0x20),hist_dimension);\n    }" if (parenthesized_expression "(0.0 < total_time)" ( (binary_expression "0.0 < total_time" number_literal < identifier) )) (compound_statement "{\n      dVar2 = total_time / (double)hz;\n      pcVar9 = (char *)dcgettext("gprof"," for %.2f%% of %.2f %s\n\n",5);\n      printf(pcVar9,SUB84((double)_DAT_000221d8 / dVar1,0),\n             (int)((ulonglong)((double)_DAT_000221d8 / dVar1) >> 0x20),SUB84(dVar2,0),\n             (int)((ulonglong)dVar2 >> 0x20),hist_dimension);\n    }" { (expression_statement "dVar2 = total_time / (double)hz;" (assignment_expression "dVar2 = total_time / (double)hz" identifier = (binary_expression "total_time / (double)hz" identifier / (cast_expression "(double)hz" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (expression_statement "pcVar9 = (char *)dcgettext("gprof"," for %.2f%% of %.2f %s\n\n",5);" (assignment_expression "pcVar9 = (char *)dcgettext("gprof"," for %.2f%% of %.2f %s\n\n",5)" identifier = (cast_expression "(char *)dcgettext("gprof"," for %.2f%% of %.2f %s\n\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext("gprof"," for %.2f%% of %.2f %s\n\n",5)" identifier (argument_list "("gprof"," for %.2f%% of %.2f %s\n\n",5)" ( (string_literal ""gprof"" " string_content ") , (string_literal "" for %.2f%% of %.2f %s\n\n"" " string_content escape_sequence escape_sequence ") , number_literal ))))) ;) (expression_statement "printf(pcVar9,SUB84((double)_DAT_000221d8 / dVar1,0),\n             (int)((ulonglong)((double)_DAT_000221d8 / dVar1) >> 0x20),SUB84(dVar2,0),\n             (int)((ulonglong)dVar2 >> 0x20),hist_dimension);" (call_expression "printf(pcVar9,SUB84((double)_DAT_000221d8 / dVar1,0),\n             (int)((ulonglong)((double)_DAT_000221d8 / dVar1) >> 0x20),SUB84(dVar2,0),\n             (int)((ulonglong)dVar2 >> 0x20),hist_dimension)" identifier (argument_list "(pcVar9,SUB84((double)_DAT_000221d8 / dVar1,0),\n             (int)((ulonglong)((double)_DAT_000221d8 / dVar1) >> 0x20),SUB84(dVar2,0),\n             (int)((ulonglong)dVar2 >> 0x20),hist_dimension)" ( identifier , (call_expression "SUB84((double)_DAT_000221d8 / dVar1,0)" identifier (argument_list "((double)_DAT_000221d8 / dVar1,0)" ( (binary_expression "(double)_DAT_000221d8 / dVar1" (cast_expression "(double)_DAT_000221d8" ( (type_descriptor "double" primitive_type) ) identifier) / identifier) , number_literal ))) , (cast_expression "(int)((ulonglong)((double)_DAT_000221d8 / dVar1) >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)((double)_DAT_000221d8 / dVar1) >> 0x20)" ( (binary_expression "(ulonglong)((double)_DAT_000221d8 / dVar1) >> 0x20" (call_expression "(ulonglong)((double)_DAT_000221d8 / dVar1)" (parenthesized_expression "(ulonglong)" ( identifier )) (argument_list "((double)_DAT_000221d8 / dVar1)" ( (binary_expression "(double)_DAT_000221d8 / dVar1" (cast_expression "(double)_DAT_000221d8" ( (type_descriptor "double" primitive_type) ) identifier) / identifier) ))) >> number_literal) ))) , (call_expression "SUB84(dVar2,0)" identifier (argument_list "(dVar2,0)" ( identifier , number_literal ))) , (cast_expression "(int)((ulonglong)dVar2 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar2 >> 0x20)" ( (binary_expression "(ulonglong)dVar2 >> 0x20" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , identifier ))) ;) })) }))) (if_statement "if (total_time <= 0.0) {\n    pcVar9 = (char *)dcgettext("gprof"," no time accumulated\n\n",5);\n    printf(pcVar9);\n    total_time = 1.0;\n  }" if (parenthesized_expression "(total_time <= 0.0)" ( (binary_expression "total_time <= 0.0" identifier <= number_literal) )) (compound_statement "{\n    pcVar9 = (char *)dcgettext("gprof"," no time accumulated\n\n",5);\n    printf(pcVar9);\n    total_time = 1.0;\n  }" { (expression_statement "pcVar9 = (char *)dcgettext("gprof"," no time accumulated\n\n",5);" (assignment_expression "pcVar9 = (char *)dcgettext("gprof"," no time accumulated\n\n",5)" identifier = (cast_expression "(char *)dcgettext("gprof"," no time accumulated\n\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext("gprof"," no time accumulated\n\n",5)" identifier (argument_list "("gprof"," no time accumulated\n\n",5)" ( (string_literal ""gprof"" " string_content ") , (string_literal "" no time accumulated\n\n"" " string_content escape_sequence escape_sequence ") , number_literal ))))) ;) (expression_statement "printf(pcVar9);" (call_expression "printf(pcVar9)" identifier (argument_list "(pcVar9)" ( identifier ))) ;) (expression_statement "total_time = 1.0;" (assignment_expression "total_time = 1.0" identifier = number_literal) ;) })) (expression_statement "uVar10 = dcgettext("gprof","total ",5);" (assignment_expression "uVar10 = dcgettext("gprof","total ",5)" identifier = (call_expression "dcgettext("gprof","total ",5)" identifier (argument_list "("gprof","total ",5)" ( (string_literal ""gprof"" " string_content ") , (string_literal ""total "" " string_content ") , number_literal )))) ;) (expression_statement "uVar11 = dcgettext("gprof","self  ",5);" (assignment_expression "uVar11 = dcgettext("gprof","self  ",5)" identifier = (call_expression "dcgettext("gprof","self  ",5)" identifier (argument_list "("gprof","self  ",5)" ( (string_literal ""gprof"" " string_content ") , (string_literal ""self  "" " string_content ") , number_literal )))) ;) (expression_statement "uVar12 = dcgettext("gprof","self  ",5);" (assignment_expression "uVar12 = dcgettext("gprof","self  ",5)" identifier = (call_expression "dcgettext("gprof","self  ",5)" identifier (argument_list "("gprof","self  ",5)" ( (string_literal ""gprof"" " string_content ") , (string_literal ""self  "" " string_content ") , number_literal )))) ;) (expression_statement "uVar13 = dcgettext("gprof","cumulative",5);" (assignment_expression "uVar13 = dcgettext("gprof","cumulative",5)" identifier = (call_expression "dcgettext("gprof","cumulative",5)" identifier (argument_list "("gprof","cumulative",5)" ( (string_literal ""gprof"" " string_content ") , (string_literal ""cumulative"" " string_content ") , number_literal )))) ;) (expression_statement "printf("%5.5s %10.10s %8.8s %8.8s %8.8s %8.8s  %-8.8s\n",&DAT_00023d2f,uVar13,uVar12,"",uVar11,\n         uVar10,"");" (call_expression "printf("%5.5s %10.10s %8.8s %8.8s %8.8s %8.8s  %-8.8s\n",&DAT_00023d2f,uVar13,uVar12,"",uVar11,\n         uVar10,"")" identifier (argument_list "("%5.5s %10.10s %8.8s %8.8s %8.8s %8.8s  %-8.8s\n",&DAT_00023d2f,uVar13,uVar12,"",uVar11,\n         uVar10,"")" ( (string_literal ""%5.5s %10.10s %8.8s %8.8s %8.8s %8.8s  %-8.8s\n"" " string_content escape_sequence ") , (pointer_expression "&DAT_00023d2f" & identifier) , identifier , identifier , (string_literal """" " ") , identifier , identifier , (string_literal """" " ") ))) ;) (expression_statement "uVar10 = dcgettext("gprof",&DAT_000229c1,5);" (assignment_expression "uVar10 = dcgettext("gprof",&DAT_000229c1,5)" identifier = (call_expression "dcgettext("gprof",&DAT_000229c1,5)" identifier (argument_list "("gprof",&DAT_000229c1,5)" ( (string_literal ""gprof"" " string_content ") , (pointer_expression "&DAT_000229c1" & identifier) , number_literal )))) ;) (expression_statement "uVar11 = dcgettext("gprof","calls",5);" (assignment_expression "uVar11 = dcgettext("gprof","calls",5)" identifier = (call_expression "dcgettext("gprof","calls",5)" identifier (argument_list "("gprof","calls",5)" ( (string_literal ""gprof"" " string_content ") , (string_literal ""calls"" " string_content ") , number_literal )))) ;) (expression_statement "uVar12 = dcgettext("gprof",&DAT_000229d8,5);" (assignment_expression "uVar12 = dcgettext("gprof",&DAT_000229d8,5)" identifier = (call_expression "dcgettext("gprof",&DAT_000229d8,5)" identifier (argument_list "("gprof",&DAT_000229d8,5)" ( (string_literal ""gprof"" " string_content ") , (pointer_expression "&DAT_000229d8" & identifier) , number_literal )))) ;) (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" identifier = number_literal) ;) (expression_statement "printf("%5.5s %9.9s  %8.8s %8.8s %8.8s %8.8s  %-8.8s\n",uVar12,hist_dimension,hist_dimension,\n         uVar11,unit,unit,uVar10);" (call_expression "printf("%5.5s %9.9s  %8.8s %8.8s %8.8s %8.8s  %-8.8s\n",uVar12,hist_dimension,hist_dimension,\n         uVar11,unit,unit,uVar10)" identifier (argument_list "("%5.5s %9.9s  %8.8s %8.8s %8.8s %8.8s  %-8.8s\n",uVar12,hist_dimension,hist_dimension,\n         uVar11,unit,unit,uVar10)" ( (string_literal ""%5.5s %9.9s  %8.8s %8.8s %8.8s %8.8s  %-8.8s\n"" " string_content escape_sequence ") , identifier , identifier , identifier , identifier , identifier , identifier , identifier ))) ;) (if_statement "if (symtab.len != 0) {\n    do {\n      while( true ) {\n        address = *(bfd_vma *)__base[uVar18];\n        pSVar14 = sym_lookup(syms + 4,*(bfd_vma *)__base[uVar18]);\n        if (pSVar14 == (Sym *)0x0) break;\nLAB_0001bc00:\n        dVar1 = SItab[local_84].scale;\n        pSVar14 = (Sym *)__base[uVar18];\n        dVar2 = (pSVar14->hist).time;\n        if (((ignore_zeros == 0) || (pSVar14->ncalls != 0)) || (dVar2 != 0.0)) {\n          accum_time = accum_time + dVar2;\n          dVar5 = dVar2 / (double)hz;\n          dVar6 = accum_time / (double)hz;\n          uVar12 = SUB84(dVar5,0);\n          uVar13 = (undefined4)((ulonglong)dVar5 >> 0x20);\n          uVar10 = SUB84(dVar6,0);\n          uVar11 = (undefined4)((ulonglong)dVar6 >> 0x20);\n          if (bsd_style_output == 0) {\n            if (total_time <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / total_time;\n            }\n            printf("%6.2f %9.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11,\n                   uVar12,uVar13);\n          }\n          else {\n            if (total_time <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / total_time;\n            }\n            printf("%5.1f %10.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11\n                   ,uVar12,uVar13);\n          }\n          uVar3 = pSVar14->ncalls;\n          if (uVar3 == 0) {\n            printf(" %8.8s %8.8s %8.8s  ","","","");\n          }\n          else {\n            dVar2 = (pSVar14->hist).time;\n            dVar5 = ((((pSVar14->cg).child_time + dVar2) * dVar1) / (double)hz) / (double)uVar3;\n            dVar1 = ((dVar1 * dVar2) / (double)hz) / (double)uVar3;\n            printf(" %8lu %8.2f %8.2f  ",uVar3,SUB84(dVar1,0),(int)((ulonglong)dVar1 >> 0x20),\n                   SUB84(dVar5,0),(int)((ulonglong)dVar5 >> 0x20),uVar13);\n          }\n          if (bsd_style_output == 0) {\n            print_name_only(pSVar14);\n          }\n          else {\n            print_name(pSVar14);\n          }\n          putchar(10);\n        }\nLAB_0001bd38:\n        uVar18 = uVar18 + 1;\n        if (symtab.len <= uVar18) goto LAB_0001bda0;\n      }\n      if (syms[4].len != 0) goto LAB_0001bd38;\n      pSVar14 = sym_lookup(syms + 5,address);\n      if (pSVar14 == (Sym *)0x0) goto LAB_0001bc00;\n      uVar18 = uVar18 + 1;\n    } while (uVar18 < symtab.len);\n  }" if (parenthesized_expression "(symtab.len != 0)" ( (binary_expression "symtab.len != 0" (field_expression "symtab.len" identifier . field_identifier) != number_literal) )) (compound_statement "{\n    do {\n      while( true ) {\n        address = *(bfd_vma *)__base[uVar18];\n        pSVar14 = sym_lookup(syms + 4,*(bfd_vma *)__base[uVar18]);\n        if (pSVar14 == (Sym *)0x0) break;\nLAB_0001bc00:\n        dVar1 = SItab[local_84].scale;\n        pSVar14 = (Sym *)__base[uVar18];\n        dVar2 = (pSVar14->hist).time;\n        if (((ignore_zeros == 0) || (pSVar14->ncalls != 0)) || (dVar2 != 0.0)) {\n          accum_time = accum_time + dVar2;\n          dVar5 = dVar2 / (double)hz;\n          dVar6 = accum_time / (double)hz;\n          uVar12 = SUB84(dVar5,0);\n          uVar13 = (undefined4)((ulonglong)dVar5 >> 0x20);\n          uVar10 = SUB84(dVar6,0);\n          uVar11 = (undefined4)((ulonglong)dVar6 >> 0x20);\n          if (bsd_style_output == 0) {\n            if (total_time <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / total_time;\n            }\n            printf("%6.2f %9.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11,\n                   uVar12,uVar13);\n          }\n          else {\n            if (total_time <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / total_time;\n            }\n            printf("%5.1f %10.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11\n                   ,uVar12,uVar13);\n          }\n          uVar3 = pSVar14->ncalls;\n          if (uVar3 == 0) {\n            printf(" %8.8s %8.8s %8.8s  ","","","");\n          }\n          else {\n            dVar2 = (pSVar14->hist).time;\n            dVar5 = ((((pSVar14->cg).child_time + dVar2) * dVar1) / (double)hz) / (double)uVar3;\n            dVar1 = ((dVar1 * dVar2) / (double)hz) / (double)uVar3;\n            printf(" %8lu %8.2f %8.2f  ",uVar3,SUB84(dVar1,0),(int)((ulonglong)dVar1 >> 0x20),\n                   SUB84(dVar5,0),(int)((ulonglong)dVar5 >> 0x20),uVar13);\n          }\n          if (bsd_style_output == 0) {\n            print_name_only(pSVar14);\n          }\n          else {\n            print_name(pSVar14);\n          }\n          putchar(10);\n        }\nLAB_0001bd38:\n        uVar18 = uVar18 + 1;\n        if (symtab.len <= uVar18) goto LAB_0001bda0;\n      }\n      if (syms[4].len != 0) goto LAB_0001bd38;\n      pSVar14 = sym_lookup(syms + 5,address);\n      if (pSVar14 == (Sym *)0x0) goto LAB_0001bc00;\n      uVar18 = uVar18 + 1;\n    } while (uVar18 < symtab.len);\n  }" { (do_statement "do {\n      while( true ) {\n        address = *(bfd_vma *)__base[uVar18];\n        pSVar14 = sym_lookup(syms + 4,*(bfd_vma *)__base[uVar18]);\n        if (pSVar14 == (Sym *)0x0) break;\nLAB_0001bc00:\n        dVar1 = SItab[local_84].scale;\n        pSVar14 = (Sym *)__base[uVar18];\n        dVar2 = (pSVar14->hist).time;\n        if (((ignore_zeros == 0) || (pSVar14->ncalls != 0)) || (dVar2 != 0.0)) {\n          accum_time = accum_time + dVar2;\n          dVar5 = dVar2 / (double)hz;\n          dVar6 = accum_time / (double)hz;\n          uVar12 = SUB84(dVar5,0);\n          uVar13 = (undefined4)((ulonglong)dVar5 >> 0x20);\n          uVar10 = SUB84(dVar6,0);\n          uVar11 = (undefined4)((ulonglong)dVar6 >> 0x20);\n          if (bsd_style_output == 0) {\n            if (total_time <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / total_time;\n            }\n            printf("%6.2f %9.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11,\n                   uVar12,uVar13);\n          }\n          else {\n            if (total_time <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / total_time;\n            }\n            printf("%5.1f %10.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11\n                   ,uVar12,uVar13);\n          }\n          uVar3 = pSVar14->ncalls;\n          if (uVar3 == 0) {\n            printf(" %8.8s %8.8s %8.8s  ","","","");\n          }\n          else {\n            dVar2 = (pSVar14->hist).time;\n            dVar5 = ((((pSVar14->cg).child_time + dVar2) * dVar1) / (double)hz) / (double)uVar3;\n            dVar1 = ((dVar1 * dVar2) / (double)hz) / (double)uVar3;\n            printf(" %8lu %8.2f %8.2f  ",uVar3,SUB84(dVar1,0),(int)((ulonglong)dVar1 >> 0x20),\n                   SUB84(dVar5,0),(int)((ulonglong)dVar5 >> 0x20),uVar13);\n          }\n          if (bsd_style_output == 0) {\n            print_name_only(pSVar14);\n          }\n          else {\n            print_name(pSVar14);\n          }\n          putchar(10);\n        }\nLAB_0001bd38:\n        uVar18 = uVar18 + 1;\n        if (symtab.len <= uVar18) goto LAB_0001bda0;\n      }\n      if (syms[4].len != 0) goto LAB_0001bd38;\n      pSVar14 = sym_lookup(syms + 5,address);\n      if (pSVar14 == (Sym *)0x0) goto LAB_0001bc00;\n      uVar18 = uVar18 + 1;\n    } while (uVar18 < symtab.len);" do (compound_statement "{\n      while( true ) {\n        address = *(bfd_vma *)__base[uVar18];\n        pSVar14 = sym_lookup(syms + 4,*(bfd_vma *)__base[uVar18]);\n        if (pSVar14 == (Sym *)0x0) break;\nLAB_0001bc00:\n        dVar1 = SItab[local_84].scale;\n        pSVar14 = (Sym *)__base[uVar18];\n        dVar2 = (pSVar14->hist).time;\n        if (((ignore_zeros == 0) || (pSVar14->ncalls != 0)) || (dVar2 != 0.0)) {\n          accum_time = accum_time + dVar2;\n          dVar5 = dVar2 / (double)hz;\n          dVar6 = accum_time / (double)hz;\n          uVar12 = SUB84(dVar5,0);\n          uVar13 = (undefined4)((ulonglong)dVar5 >> 0x20);\n          uVar10 = SUB84(dVar6,0);\n          uVar11 = (undefined4)((ulonglong)dVar6 >> 0x20);\n          if (bsd_style_output == 0) {\n            if (total_time <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / total_time;\n            }\n            printf("%6.2f %9.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11,\n                   uVar12,uVar13);\n          }\n          else {\n            if (total_time <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / total_time;\n            }\n            printf("%5.1f %10.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11\n                   ,uVar12,uVar13);\n          }\n          uVar3 = pSVar14->ncalls;\n          if (uVar3 == 0) {\n            printf(" %8.8s %8.8s %8.8s  ","","","");\n          }\n          else {\n            dVar2 = (pSVar14->hist).time;\n            dVar5 = ((((pSVar14->cg).child_time + dVar2) * dVar1) / (double)hz) / (double)uVar3;\n            dVar1 = ((dVar1 * dVar2) / (double)hz) / (double)uVar3;\n            printf(" %8lu %8.2f %8.2f  ",uVar3,SUB84(dVar1,0),(int)((ulonglong)dVar1 >> 0x20),\n                   SUB84(dVar5,0),(int)((ulonglong)dVar5 >> 0x20),uVar13);\n          }\n          if (bsd_style_output == 0) {\n            print_name_only(pSVar14);\n          }\n          else {\n            print_name(pSVar14);\n          }\n          putchar(10);\n        }\nLAB_0001bd38:\n        uVar18 = uVar18 + 1;\n        if (symtab.len <= uVar18) goto LAB_0001bda0;\n      }\n      if (syms[4].len != 0) goto LAB_0001bd38;\n      pSVar14 = sym_lookup(syms + 5,address);\n      if (pSVar14 == (Sym *)0x0) goto LAB_0001bc00;\n      uVar18 = uVar18 + 1;\n    }" { (while_statement "while( true ) {\n        address = *(bfd_vma *)__base[uVar18];\n        pSVar14 = sym_lookup(syms + 4,*(bfd_vma *)__base[uVar18]);\n        if (pSVar14 == (Sym *)0x0) break;\nLAB_0001bc00:\n        dVar1 = SItab[local_84].scale;\n        pSVar14 = (Sym *)__base[uVar18];\n        dVar2 = (pSVar14->hist).time;\n        if (((ignore_zeros == 0) || (pSVar14->ncalls != 0)) || (dVar2 != 0.0)) {\n          accum_time = accum_time + dVar2;\n          dVar5 = dVar2 / (double)hz;\n          dVar6 = accum_time / (double)hz;\n          uVar12 = SUB84(dVar5,0);\n          uVar13 = (undefined4)((ulonglong)dVar5 >> 0x20);\n          uVar10 = SUB84(dVar6,0);\n          uVar11 = (undefined4)((ulonglong)dVar6 >> 0x20);\n          if (bsd_style_output == 0) {\n            if (total_time <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / total_time;\n            }\n            printf("%6.2f %9.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11,\n                   uVar12,uVar13);\n          }\n          else {\n            if (total_time <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / total_time;\n            }\n            printf("%5.1f %10.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11\n                   ,uVar12,uVar13);\n          }\n          uVar3 = pSVar14->ncalls;\n          if (uVar3 == 0) {\n            printf(" %8.8s %8.8s %8.8s  ","","","");\n          }\n          else {\n            dVar2 = (pSVar14->hist).time;\n            dVar5 = ((((pSVar14->cg).child_time + dVar2) * dVar1) / (double)hz) / (double)uVar3;\n            dVar1 = ((dVar1 * dVar2) / (double)hz) / (double)uVar3;\n            printf(" %8lu %8.2f %8.2f  ",uVar3,SUB84(dVar1,0),(int)((ulonglong)dVar1 >> 0x20),\n                   SUB84(dVar5,0),(int)((ulonglong)dVar5 >> 0x20),uVar13);\n          }\n          if (bsd_style_output == 0) {\n            print_name_only(pSVar14);\n          }\n          else {\n            print_name(pSVar14);\n          }\n          putchar(10);\n        }\nLAB_0001bd38:\n        uVar18 = uVar18 + 1;\n        if (symtab.len <= uVar18) goto LAB_0001bda0;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        address = *(bfd_vma *)__base[uVar18];\n        pSVar14 = sym_lookup(syms + 4,*(bfd_vma *)__base[uVar18]);\n        if (pSVar14 == (Sym *)0x0) break;\nLAB_0001bc00:\n        dVar1 = SItab[local_84].scale;\n        pSVar14 = (Sym *)__base[uVar18];\n        dVar2 = (pSVar14->hist).time;\n        if (((ignore_zeros == 0) || (pSVar14->ncalls != 0)) || (dVar2 != 0.0)) {\n          accum_time = accum_time + dVar2;\n          dVar5 = dVar2 / (double)hz;\n          dVar6 = accum_time / (double)hz;\n          uVar12 = SUB84(dVar5,0);\n          uVar13 = (undefined4)((ulonglong)dVar5 >> 0x20);\n          uVar10 = SUB84(dVar6,0);\n          uVar11 = (undefined4)((ulonglong)dVar6 >> 0x20);\n          if (bsd_style_output == 0) {\n            if (total_time <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / total_time;\n            }\n            printf("%6.2f %9.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11,\n                   uVar12,uVar13);\n          }\n          else {\n            if (total_time <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / total_time;\n            }\n            printf("%5.1f %10.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11\n                   ,uVar12,uVar13);\n          }\n          uVar3 = pSVar14->ncalls;\n          if (uVar3 == 0) {\n            printf(" %8.8s %8.8s %8.8s  ","","","");\n          }\n          else {\n            dVar2 = (pSVar14->hist).time;\n            dVar5 = ((((pSVar14->cg).child_time + dVar2) * dVar1) / (double)hz) / (double)uVar3;\n            dVar1 = ((dVar1 * dVar2) / (double)hz) / (double)uVar3;\n            printf(" %8lu %8.2f %8.2f  ",uVar3,SUB84(dVar1,0),(int)((ulonglong)dVar1 >> 0x20),\n                   SUB84(dVar5,0),(int)((ulonglong)dVar5 >> 0x20),uVar13);\n          }\n          if (bsd_style_output == 0) {\n            print_name_only(pSVar14);\n          }\n          else {\n            print_name(pSVar14);\n          }\n          putchar(10);\n        }\nLAB_0001bd38:\n        uVar18 = uVar18 + 1;\n        if (symtab.len <= uVar18) goto LAB_0001bda0;\n      }" { (expression_statement "address = *(bfd_vma *)__base[uVar18];" (assignment_expression "address = *(bfd_vma *)__base[uVar18]" identifier = (pointer_expression "*(bfd_vma *)__base[uVar18]" * (cast_expression "(bfd_vma *)__base[uVar18]" ( (type_descriptor "bfd_vma *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "__base[uVar18]" identifier [ identifier ])))) ;) (expression_statement "pSVar14 = sym_lookup(syms + 4,*(bfd_vma *)__base[uVar18]);" (assignment_expression "pSVar14 = sym_lookup(syms + 4,*(bfd_vma *)__base[uVar18])" identifier = (call_expression "sym_lookup(syms + 4,*(bfd_vma *)__base[uVar18])" identifier (argument_list "(syms + 4,*(bfd_vma *)__base[uVar18])" ( (binary_expression "syms + 4" identifier + number_literal) , (pointer_expression "*(bfd_vma *)__base[uVar18]" * (cast_expression "(bfd_vma *)__base[uVar18]" ( (type_descriptor "bfd_vma *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "__base[uVar18]" identifier [ identifier ]))) )))) ;) (if_statement "if (pSVar14 == (Sym *)0x0) break;" if (parenthesized_expression "(pSVar14 == (Sym *)0x0)" ( (binary_expression "pSVar14 == (Sym *)0x0" identifier == (cast_expression "(Sym *)0x0" ( (type_descriptor "Sym *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (labeled_statement "LAB_0001bc00:\n        dVar1 = SItab[local_84].scale;" statement_identifier : (expression_statement "dVar1 = SItab[local_84].scale;" (assignment_expression "dVar1 = SItab[local_84].scale" identifier = (field_expression "SItab[local_84].scale" (subscript_expression "SItab[local_84]" identifier [ identifier ]) . field_identifier)) ;)) (expression_statement "pSVar14 = (Sym *)__base[uVar18];" (assignment_expression "pSVar14 = (Sym *)__base[uVar18]" identifier = (cast_expression "(Sym *)__base[uVar18]" ( (type_descriptor "Sym *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "__base[uVar18]" identifier [ identifier ]))) ;) (expression_statement "dVar2 = (pSVar14->hist).time;" (assignment_expression "dVar2 = (pSVar14->hist).time" identifier = (field_expression "(pSVar14->hist).time" (parenthesized_expression "(pSVar14->hist)" ( (field_expression "pSVar14->hist" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (((ignore_zeros == 0) || (pSVar14->ncalls != 0)) || (dVar2 != 0.0)) {\n          accum_time = accum_time + dVar2;\n          dVar5 = dVar2 / (double)hz;\n          dVar6 = accum_time / (double)hz;\n          uVar12 = SUB84(dVar5,0);\n          uVar13 = (undefined4)((ulonglong)dVar5 >> 0x20);\n          uVar10 = SUB84(dVar6,0);\n          uVar11 = (undefined4)((ulonglong)dVar6 >> 0x20);\n          if (bsd_style_output == 0) {\n            if (total_time <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / total_time;\n            }\n            printf("%6.2f %9.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11,\n                   uVar12,uVar13);\n          }\n          else {\n            if (total_time <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / total_time;\n            }\n            printf("%5.1f %10.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11\n                   ,uVar12,uVar13);\n          }\n          uVar3 = pSVar14->ncalls;\n          if (uVar3 == 0) {\n            printf(" %8.8s %8.8s %8.8s  ","","","");\n          }\n          else {\n            dVar2 = (pSVar14->hist).time;\n            dVar5 = ((((pSVar14->cg).child_time + dVar2) * dVar1) / (double)hz) / (double)uVar3;\n            dVar1 = ((dVar1 * dVar2) / (double)hz) / (double)uVar3;\n            printf(" %8lu %8.2f %8.2f  ",uVar3,SUB84(dVar1,0),(int)((ulonglong)dVar1 >> 0x20),\n                   SUB84(dVar5,0),(int)((ulonglong)dVar5 >> 0x20),uVar13);\n          }\n          if (bsd_style_output == 0) {\n            print_name_only(pSVar14);\n          }\n          else {\n            print_name(pSVar14);\n          }\n          putchar(10);\n        }" if (parenthesized_expression "(((ignore_zeros == 0) || (pSVar14->ncalls != 0)) || (dVar2 != 0.0))" ( (binary_expression "((ignore_zeros == 0) || (pSVar14->ncalls != 0)) || (dVar2 != 0.0)" (parenthesized_expression "((ignore_zeros == 0) || (pSVar14->ncalls != 0))" ( (binary_expression "(ignore_zeros == 0) || (pSVar14->ncalls != 0)" (parenthesized_expression "(ignore_zeros == 0)" ( (binary_expression "ignore_zeros == 0" identifier == number_literal) )) || (parenthesized_expression "(pSVar14->ncalls != 0)" ( (binary_expression "pSVar14->ncalls != 0" (field_expression "pSVar14->ncalls" identifier -> field_identifier) != number_literal) ))) )) || (parenthesized_expression "(dVar2 != 0.0)" ( (binary_expression "dVar2 != 0.0" identifier != number_literal) ))) )) (compound_statement "{\n          accum_time = accum_time + dVar2;\n          dVar5 = dVar2 / (double)hz;\n          dVar6 = accum_time / (double)hz;\n          uVar12 = SUB84(dVar5,0);\n          uVar13 = (undefined4)((ulonglong)dVar5 >> 0x20);\n          uVar10 = SUB84(dVar6,0);\n          uVar11 = (undefined4)((ulonglong)dVar6 >> 0x20);\n          if (bsd_style_output == 0) {\n            if (total_time <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / total_time;\n            }\n            printf("%6.2f %9.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11,\n                   uVar12,uVar13);\n          }\n          else {\n            if (total_time <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / total_time;\n            }\n            printf("%5.1f %10.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11\n                   ,uVar12,uVar13);\n          }\n          uVar3 = pSVar14->ncalls;\n          if (uVar3 == 0) {\n            printf(" %8.8s %8.8s %8.8s  ","","","");\n          }\n          else {\n            dVar2 = (pSVar14->hist).time;\n            dVar5 = ((((pSVar14->cg).child_time + dVar2) * dVar1) / (double)hz) / (double)uVar3;\n            dVar1 = ((dVar1 * dVar2) / (double)hz) / (double)uVar3;\n            printf(" %8lu %8.2f %8.2f  ",uVar3,SUB84(dVar1,0),(int)((ulonglong)dVar1 >> 0x20),\n                   SUB84(dVar5,0),(int)((ulonglong)dVar5 >> 0x20),uVar13);\n          }\n          if (bsd_style_output == 0) {\n            print_name_only(pSVar14);\n          }\n          else {\n            print_name(pSVar14);\n          }\n          putchar(10);\n        }" { (expression_statement "accum_time = accum_time + dVar2;" (assignment_expression "accum_time = accum_time + dVar2" identifier = (binary_expression "accum_time + dVar2" identifier + identifier)) ;) (expression_statement "dVar5 = dVar2 / (double)hz;" (assignment_expression "dVar5 = dVar2 / (double)hz" identifier = (binary_expression "dVar2 / (double)hz" identifier / (cast_expression "(double)hz" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (expression_statement "dVar6 = accum_time / (double)hz;" (assignment_expression "dVar6 = accum_time / (double)hz" identifier = (binary_expression "accum_time / (double)hz" identifier / (cast_expression "(double)hz" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (expression_statement "uVar12 = SUB84(dVar5,0);" (assignment_expression "uVar12 = SUB84(dVar5,0)" identifier = (call_expression "SUB84(dVar5,0)" identifier (argument_list "(dVar5,0)" ( identifier , number_literal )))) ;) (expression_statement "uVar13 = (undefined4)((ulonglong)dVar5 >> 0x20);" (assignment_expression "uVar13 = (undefined4)((ulonglong)dVar5 >> 0x20)" identifier = (call_expression "(undefined4)((ulonglong)dVar5 >> 0x20)" (parenthesized_expression "(undefined4)" ( identifier )) (argument_list "((ulonglong)dVar5 >> 0x20)" ( (binary_expression "(ulonglong)dVar5 >> 0x20" (cast_expression "(ulonglong)dVar5" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar10 = SUB84(dVar6,0);" (assignment_expression "uVar10 = SUB84(dVar6,0)" identifier = (call_expression "SUB84(dVar6,0)" identifier (argument_list "(dVar6,0)" ( identifier , number_literal )))) ;) (expression_statement "uVar11 = (undefined4)((ulonglong)dVar6 >> 0x20);" (assignment_expression "uVar11 = (undefined4)((ulonglong)dVar6 >> 0x20)" identifier = (call_expression "(undefined4)((ulonglong)dVar6 >> 0x20)" (parenthesized_expression "(undefined4)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 0x20)" ( (binary_expression "(ulonglong)dVar6 >> 0x20" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (bsd_style_output == 0) {\n            if (total_time <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / total_time;\n            }\n            printf("%6.2f %9.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11,\n                   uVar12,uVar13);\n          }\n          else {\n            if (total_time <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / total_time;\n            }\n            printf("%5.1f %10.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11\n                   ,uVar12,uVar13);\n          }" if (parenthesized_expression "(bsd_style_output == 0)" ( (binary_expression "bsd_style_output == 0" identifier == number_literal) )) (compound_statement "{\n            if (total_time <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / total_time;\n            }\n            printf("%6.2f %9.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11,\n                   uVar12,uVar13);\n          }" { (if_statement "if (total_time <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / total_time;\n            }" if (parenthesized_expression "(total_time <= 0.0)" ( (binary_expression "total_time <= 0.0" identifier <= number_literal) )) (compound_statement "{\n              dVar2 = 0.0;\n            }" { (expression_statement "dVar2 = 0.0;" (assignment_expression "dVar2 = 0.0" identifier = number_literal) ;) }) (else_clause "else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / total_time;\n            }" else (compound_statement "{\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / total_time;\n            }" { (expression_statement "dVar2 = (dVar2 * (double)_DAT_000221d8) / total_time;" (assignment_expression "dVar2 = (dVar2 * (double)_DAT_000221d8) / total_time" identifier = (binary_expression "(dVar2 * (double)_DAT_000221d8) / total_time" (parenthesized_expression "(dVar2 * (double)_DAT_000221d8)" ( (binary_expression "dVar2 * (double)_DAT_000221d8" identifier * (cast_expression "(double)_DAT_000221d8" ( (type_descriptor "double" primitive_type) ) identifier)) )) / identifier)) ;) }))) (expression_statement "printf("%6.2f %9.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11,\n                   uVar12,uVar13);" (call_expression "printf("%6.2f %9.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11,\n                   uVar12,uVar13)" identifier (argument_list "("%6.2f %9.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11,\n                   uVar12,uVar13)" ( (string_literal ""%6.2f %9.2f %8.2f"" " string_content ") , (call_expression "SUB84(dVar2,0)" identifier (argument_list "(dVar2,0)" ( identifier , number_literal ))) , (cast_expression "(int)((ulonglong)dVar2 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar2 >> 0x20)" ( (binary_expression "(ulonglong)dVar2 >> 0x20" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , identifier , identifier , identifier , identifier ))) ;) }) (else_clause "else {\n            if (total_time <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / total_time;\n            }\n            printf("%5.1f %10.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11\n                   ,uVar12,uVar13);\n          }" else (compound_statement "{\n            if (total_time <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / total_time;\n            }\n            printf("%5.1f %10.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11\n                   ,uVar12,uVar13);\n          }" { (if_statement "if (total_time <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / total_time;\n            }" if (parenthesized_expression "(total_time <= 0.0)" ( (binary_expression "total_time <= 0.0" identifier <= number_literal) )) (compound_statement "{\n              dVar2 = 0.0;\n            }" { (expression_statement "dVar2 = 0.0;" (assignment_expression "dVar2 = 0.0" identifier = number_literal) ;) }) (else_clause "else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / total_time;\n            }" else (compound_statement "{\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / total_time;\n            }" { (expression_statement "dVar2 = (dVar2 * (double)_DAT_000221d8) / total_time;" (assignment_expression "dVar2 = (dVar2 * (double)_DAT_000221d8) / total_time" identifier = (binary_expression "(dVar2 * (double)_DAT_000221d8) / total_time" (parenthesized_expression "(dVar2 * (double)_DAT_000221d8)" ( (binary_expression "dVar2 * (double)_DAT_000221d8" identifier * (cast_expression "(double)_DAT_000221d8" ( (type_descriptor "double" primitive_type) ) identifier)) )) / identifier)) ;) }))) (expression_statement "printf("%5.1f %10.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11\n                   ,uVar12,uVar13);" (call_expression "printf("%5.1f %10.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11\n                   ,uVar12,uVar13)" identifier (argument_list "("%5.1f %10.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11\n                   ,uVar12,uVar13)" ( (string_literal ""%5.1f %10.2f %8.2f"" " string_content ") , (call_expression "SUB84(dVar2,0)" identifier (argument_list "(dVar2,0)" ( identifier , number_literal ))) , (cast_expression "(int)((ulonglong)dVar2 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar2 >> 0x20)" ( (binary_expression "(ulonglong)dVar2 >> 0x20" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , identifier , identifier , identifier , identifier ))) ;) }))) (expression_statement "uVar3 = pSVar14->ncalls;" (assignment_expression "uVar3 = pSVar14->ncalls" identifier = (field_expression "pSVar14->ncalls" identifier -> field_identifier)) ;) (if_statement "if (uVar3 == 0) {\n            printf(" %8.8s %8.8s %8.8s  ","","","");\n          }\n          else {\n            dVar2 = (pSVar14->hist).time;\n            dVar5 = ((((pSVar14->cg).child_time + dVar2) * dVar1) / (double)hz) / (double)uVar3;\n            dVar1 = ((dVar1 * dVar2) / (double)hz) / (double)uVar3;\n            printf(" %8lu %8.2f %8.2f  ",uVar3,SUB84(dVar1,0),(int)((ulonglong)dVar1 >> 0x20),\n                   SUB84(dVar5,0),(int)((ulonglong)dVar5 >> 0x20),uVar13);\n          }" if (parenthesized_expression "(uVar3 == 0)" ( (binary_expression "uVar3 == 0" identifier == number_literal) )) (compound_statement "{\n            printf(" %8.8s %8.8s %8.8s  ","","","");\n          }" { (expression_statement "printf(" %8.8s %8.8s %8.8s  ","","","");" (call_expression "printf(" %8.8s %8.8s %8.8s  ","","","")" identifier (argument_list "(" %8.8s %8.8s %8.8s  ","","","")" ( (string_literal "" %8.8s %8.8s %8.8s  "" " string_content ") , (string_literal """" " ") , (string_literal """" " ") , (string_literal """" " ") ))) ;) }) (else_clause "else {\n            dVar2 = (pSVar14->hist).time;\n            dVar5 = ((((pSVar14->cg).child_time + dVar2) * dVar1) / (double)hz) / (double)uVar3;\n            dVar1 = ((dVar1 * dVar2) / (double)hz) / (double)uVar3;\n            printf(" %8lu %8.2f %8.2f  ",uVar3,SUB84(dVar1,0),(int)((ulonglong)dVar1 >> 0x20),\n                   SUB84(dVar5,0),(int)((ulonglong)dVar5 >> 0x20),uVar13);\n          }" else (compound_statement "{\n            dVar2 = (pSVar14->hist).time;\n            dVar5 = ((((pSVar14->cg).child_time + dVar2) * dVar1) / (double)hz) / (double)uVar3;\n            dVar1 = ((dVar1 * dVar2) / (double)hz) / (double)uVar3;\n            printf(" %8lu %8.2f %8.2f  ",uVar3,SUB84(dVar1,0),(int)((ulonglong)dVar1 >> 0x20),\n                   SUB84(dVar5,0),(int)((ulonglong)dVar5 >> 0x20),uVar13);\n          }" { (expression_statement "dVar2 = (pSVar14->hist).time;" (assignment_expression "dVar2 = (pSVar14->hist).time" identifier = (field_expression "(pSVar14->hist).time" (parenthesized_expression "(pSVar14->hist)" ( (field_expression "pSVar14->hist" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "dVar5 = ((((pSVar14->cg).child_time + dVar2) * dVar1) / (double)hz) / (double)uVar3;" (assignment_expression "dVar5 = ((((pSVar14->cg).child_time + dVar2) * dVar1) / (double)hz) / (double)uVar3" identifier = (binary_expression "((((pSVar14->cg).child_time + dVar2) * dVar1) / (double)hz) / (double)uVar3" (parenthesized_expression "((((pSVar14->cg).child_time + dVar2) * dVar1) / (double)hz)" ( (binary_expression "(((pSVar14->cg).child_time + dVar2) * dVar1) / (double)hz" (parenthesized_expression "(((pSVar14->cg).child_time + dVar2) * dVar1)" ( (binary_expression "((pSVar14->cg).child_time + dVar2) * dVar1" (parenthesized_expression "((pSVar14->cg).child_time + dVar2)" ( (binary_expression "(pSVar14->cg).child_time + dVar2" (field_expression "(pSVar14->cg).child_time" (parenthesized_expression "(pSVar14->cg)" ( (field_expression "pSVar14->cg" identifier -> field_identifier) )) . field_identifier) + identifier) )) * identifier) )) / (cast_expression "(double)hz" ( (type_descriptor "double" primitive_type) ) identifier)) )) / (cast_expression "(double)uVar3" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (expression_statement "dVar1 = ((dVar1 * dVar2) / (double)hz) / (double)uVar3;" (assignment_expression "dVar1 = ((dVar1 * dVar2) / (double)hz) / (double)uVar3" identifier = (binary_expression "((dVar1 * dVar2) / (double)hz) / (double)uVar3" (parenthesized_expression "((dVar1 * dVar2) / (double)hz)" ( (binary_expression "(dVar1 * dVar2) / (double)hz" (parenthesized_expression "(dVar1 * dVar2)" ( (binary_expression "dVar1 * dVar2" identifier * identifier) )) / (cast_expression "(double)hz" ( (type_descriptor "double" primitive_type) ) identifier)) )) / (cast_expression "(double)uVar3" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (expression_statement "printf(" %8lu %8.2f %8.2f  ",uVar3,SUB84(dVar1,0),(int)((ulonglong)dVar1 >> 0x20),\n                   SUB84(dVar5,0),(int)((ulonglong)dVar5 >> 0x20),uVar13);" (call_expression "printf(" %8lu %8.2f %8.2f  ",uVar3,SUB84(dVar1,0),(int)((ulonglong)dVar1 >> 0x20),\n                   SUB84(dVar5,0),(int)((ulonglong)dVar5 >> 0x20),uVar13)" identifier (argument_list "(" %8lu %8.2f %8.2f  ",uVar3,SUB84(dVar1,0),(int)((ulonglong)dVar1 >> 0x20),\n                   SUB84(dVar5,0),(int)((ulonglong)dVar5 >> 0x20),uVar13)" ( (string_literal "" %8lu %8.2f %8.2f  "" " string_content ") , identifier , (call_expression "SUB84(dVar1,0)" identifier (argument_list "(dVar1,0)" ( identifier , number_literal ))) , (cast_expression "(int)((ulonglong)dVar1 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar1 >> 0x20)" ( (binary_expression "(ulonglong)dVar1 >> 0x20" (cast_expression "(ulonglong)dVar1" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (call_expression "SUB84(dVar5,0)" identifier (argument_list "(dVar5,0)" ( identifier , number_literal ))) , (cast_expression "(int)((ulonglong)dVar5 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar5 >> 0x20)" ( (binary_expression "(ulonglong)dVar5 >> 0x20" (cast_expression "(ulonglong)dVar5" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , identifier ))) ;) }))) (if_statement "if (bsd_style_output == 0) {\n            print_name_only(pSVar14);\n          }\n          else {\n            print_name(pSVar14);\n          }" if (parenthesized_expression "(bsd_style_output == 0)" ( (binary_expression "bsd_style_output == 0" identifier == number_literal) )) (compound_statement "{\n            print_name_only(pSVar14);\n          }" { (expression_statement "print_name_only(pSVar14);" (call_expression "print_name_only(pSVar14)" identifier (argument_list "(pSVar14)" ( identifier ))) ;) }) (else_clause "else {\n            print_name(pSVar14);\n          }" else (compound_statement "{\n            print_name(pSVar14);\n          }" { (expression_statement "print_name(pSVar14);" (call_expression "print_name(pSVar14)" identifier (argument_list "(pSVar14)" ( identifier ))) ;) }))) (expression_statement "putchar(10);" (call_expression "putchar(10)" identifier (argument_list "(10)" ( number_literal ))) ;) })) (labeled_statement "LAB_0001bd38:\n        uVar18 = uVar18 + 1;" statement_identifier : (expression_statement "uVar18 = uVar18 + 1;" (assignment_expression "uVar18 = uVar18 + 1" identifier = (binary_expression "uVar18 + 1" identifier + number_literal)) ;)) (if_statement "if (symtab.len <= uVar18) goto LAB_0001bda0;" if (parenthesized_expression "(symtab.len <= uVar18)" ( (binary_expression "symtab.len <= uVar18" (field_expression "symtab.len" identifier . field_identifier) <= identifier) )) (goto_statement "goto LAB_0001bda0;" goto statement_identifier ;)) })) (if_statement "if (syms[4].len != 0) goto LAB_0001bd38;" if (parenthesized_expression "(syms[4].len != 0)" ( (binary_expression "syms[4].len != 0" (field_expression "syms[4].len" (subscript_expression "syms[4]" identifier [ number_literal ]) . field_identifier) != number_literal) )) (goto_statement "goto LAB_0001bd38;" goto statement_identifier ;)) (expression_statement "pSVar14 = sym_lookup(syms + 5,address);" (assignment_expression "pSVar14 = sym_lookup(syms + 5,address)" identifier = (call_expression "sym_lookup(syms + 5,address)" identifier (argument_list "(syms + 5,address)" ( (binary_expression "syms + 5" identifier + number_literal) , identifier )))) ;) (if_statement "if (pSVar14 == (Sym *)0x0) goto LAB_0001bc00;" if (parenthesized_expression "(pSVar14 == (Sym *)0x0)" ( (binary_expression "pSVar14 == (Sym *)0x0" identifier == (cast_expression "(Sym *)0x0" ( (type_descriptor "Sym *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001bc00;" goto statement_identifier ;)) (expression_statement "uVar18 = uVar18 + 1;" (assignment_expression "uVar18 = uVar18 + 1" identifier = (binary_expression "uVar18 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar18 < symtab.len)" ( (binary_expression "uVar18 < symtab.len" identifier < (field_expression "symtab.len" identifier . field_identifier)) )) ;) })) (labeled_statement "LAB_0001bda0:\n  free(__base);" statement_identifier : (expression_statement "free(__base);" (call_expression "free(__base)" identifier (argument_list "(__base)" ( identifier ))) ;)) (if_statement "if ((print_descriptions != 0) && (bsd_style_output == 0)) {\n    flat_blurb(*(FILE **)PTR_stdout_0002cfec);\n    return;\n  }" if (parenthesized_expression "((print_descriptions != 0) && (bsd_style_output == 0))" ( (binary_expression "(print_descriptions != 0) && (bsd_style_output == 0)" (parenthesized_expression "(print_descriptions != 0)" ( (binary_expression "print_descriptions != 0" identifier != number_literal) )) && (parenthesized_expression "(bsd_style_output == 0)" ( (binary_expression "bsd_style_output == 0" identifier == number_literal) ))) )) (compound_statement "{\n    flat_blurb(*(FILE **)PTR_stdout_0002cfec);\n    return;\n  }" { (expression_statement "flat_blurb(*(FILE **)PTR_stdout_0002cfec);" (call_expression "flat_blurb(*(FILE **)PTR_stdout_0002cfec)" identifier (argument_list "(*(FILE **)PTR_stdout_0002cfec)" ( (pointer_expression "*(FILE **)PTR_stdout_0002cfec" * (cast_expression "(FILE **)PTR_stdout_0002cfec" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ))) ;) (return_statement "return;" return ;) })) (return_statement "return;" return ;) })))
(translation_unit "void FUN_0001b8a0(void)\n\n{\n  double dVar1;\n  double dVar2;\n  uint uVar3;\n  float fVar4;\n  double dVar5;\n  double dVar6;\n  size_t __nmemb;\n  int *__base;\n  int *piVar7;\n  double *pdVar8;\n  char *pcVar9;\n  undefined4 uVar10;\n  undefined4 uVar11;\n  undefined4 uVar12;\n  undefined4 uVar13;\n  int iVar14;\n  int *piVar15;\n  int iVar16;\n  uint uVar17;\n  ulonglong local_a4;\n  size_t local_84;\n  char local_5c [72];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1b8a9;\n  if (DAT_0002d1b8 == 0) {\n    puts("\f");\n  }\n  else {\n    DAT_0002d1b8 = 0;\n  }\n  DAT_0002e170 = 0.0;\n  if (DAT_0002e150 == 0) {\n    pcVar9 = (char *)dcgettext("gprof","Flat profile:\n",5);\n    printf(pcVar9);\n  }\n  else if (DAT_0002d1bc != 0) {\n    pcVar9 = (char *)dcgettext("gprof","\n\n\nflat profile:\n",5);\n    printf(pcVar9);\n    FUN_0001f820(*(undefined4 *)PTR_stdout_0002cfec);\n  }\n  __base = (int *)xmalloc(DAT_0002e520 << 2);\n  __nmemb = DAT_0002e520;\n  if (DAT_0002e520 != 0) {\n    piVar15 = __base + DAT_0002e520;\n    piVar7 = __base;\n    iVar14 = DAT_0002e524;\n    do {\n      *piVar7 = iVar14;\n      piVar7 = piVar7 + 1;\n      iVar14 = iVar14 + 0xfc;\n    } while (piVar15 != piVar7);\n  }\n  qsort(__base,__nmemb,4,FUN_0001ae50);\n  if (DAT_0002e150 != 0) {\n    local_84 = 5;\n    iVar14 = 0x6d;\n    goto LAB_0001ba65;\n  }\n  local_84 = DAT_0002e520;\n  if (DAT_0002e520 == 0) {\nLAB_0001beb2:\n    iVar14 = 0x54;\n  }\n  else {\n    iVar14 = 0;\n    dVar1 = 0.0;\n    piVar15 = __base;\n    do {\n      iVar16 = *piVar15;\n      if (*(uint *)(iVar16 + 0x20) != 0) {\n        local_a4 = (ulonglong)*(uint *)(iVar16 + 0x20);\n        dVar2 = (*(double *)(iVar16 + 0xa8) + *(double *)(iVar16 + 0xbc)) / (double)local_a4;\n        if (dVar1 < dVar2) {\n          dVar1 = dVar2;\n          iVar14 = iVar16;\n        }\n      }\n      piVar15 = piVar15 + 1;\n    } while (__base + DAT_0002e520 != piVar15);\n    if (iVar14 != 0) {\n      if (*(int *)(iVar14 + 0x20) == 0) {\n        local_84 = 0;\n        goto LAB_0001beb2;\n      }\n      if (0.0 < dVar1) {\n        local_84 = 0;\n        pdVar8 = (double *)&DAT_00023db0;\n        dVar2 = DAT_00023e30;\n        while( true ) {\n          dVar2 = dVar2 * (dVar1 / (double)DAT_0002e15c);\n          if ((1.0 <= dVar2) && (dVar2 < (double)DAT_00023e2c)) {\n            iVar14 = (int)(char)(&DAT_00023da0)[local_84 * 0xc];\n            goto LAB_0001ba65;\n          }\n          local_84 = local_84 + 1;\n          if (local_84 == 0xb) break;\n          dVar2 = *pdVar8;\n          pdVar8 = (double *)((int)pdVar8 + 0xc);\n        }\n        iVar14 = 0;\n        goto LAB_0001ba65;\n      }\n    }\n    iVar14 = 0x54;\n    local_84 = 0;\n  }\nLAB_0001ba65:\n  iVar16 = (int)DAT_0002d4a4;\n  pcVar9 = (char *)dcgettext("gprof","%c%c/call",5);\n  sprintf(local_5c,pcVar9,iVar14,iVar16);\n  if (DAT_0002e150 == 0) {\n    fVar4 = DAT_00023e28 / (float)DAT_0002e15c;\n    pcVar9 = (char *)dcgettext("gprof","\nEach sample counts as %g %s.\n",5);\n    printf(pcVar9,SUB84((double)fVar4,0),(int)((ulonglong)(double)fVar4 >> 0x20),s_seconds_0002d4a8)\n    ;\n  }\n  else {\n    dVar1 = ROUND(DAT_0002e518);\n    pcVar9 = (char *)dcgettext("gprof","\ngranularity: each sample hit covers %ld byte(s)",5);\n    printf(pcVar9,(int)dVar1 * 2);\n    dVar1 = DAT_0002e168;\n    if (0.0 < DAT_0002e168) {\n      dVar2 = DAT_0002e168 / (double)DAT_0002e15c;\n      pcVar9 = (char *)dcgettext("gprof"," for %.2f%% of %.2f %s\n\n",5);\n      printf(pcVar9,SUB84((double)_DAT_000221d8 / dVar1,0),\n             (int)((ulonglong)((double)_DAT_000221d8 / dVar1) >> 0x20),SUB84(dVar2,0),\n             (int)((ulonglong)dVar2 >> 0x20),s_seconds_0002d4a8);\n    }\n  }\n  if (DAT_0002e168 <= 0.0) {\n    pcVar9 = (char *)dcgettext("gprof"," no time accumulated\n\n",5);\n    printf(pcVar9);\n    DAT_0002e168 = 1.0;\n  }\n  uVar10 = dcgettext("gprof","total ",5);\n  uVar11 = dcgettext("gprof","self  ",5);\n  uVar12 = dcgettext("gprof","self  ",5);\n  uVar13 = dcgettext("gprof","cumulative",5);\n  printf("%5.5s %10.10s %8.8s %8.8s %8.8s %8.8s  %-8.8s\n",&DAT_00023d2f,uVar13,uVar12,"",uVar11,\n         uVar10,"");\n  uVar10 = dcgettext("gprof",&DAT_000229c1,5);\n  uVar11 = dcgettext("gprof","calls",5);\n  uVar12 = dcgettext("gprof",&DAT_000229d8,5);\n  uVar17 = 0;\n  printf("%5.5s %9.9s  %8.8s %8.8s %8.8s %8.8s  %-8.8s\n",uVar12,s_seconds_0002d4a8,\n         s_seconds_0002d4a8,uVar11,local_5c,local_5c,uVar10);\n  if (DAT_0002e520 != 0) {\n    do {\n      while( true ) {\n        uVar10 = *(undefined4 *)__base[uVar17];\n        uVar11 = ((undefined4 *)__base[uVar17])[1];\n        iVar14 = FUN_0001d480(&DAT_0002e570,uVar10,uVar11);\n        if (iVar14 == 0) break;\nLAB_0001bc00:\n        dVar1 = *(double *)(&UNK_00023da4 + local_84 * 0xc);\n        iVar14 = __base[uVar17];\n        dVar2 = *(double *)(iVar14 + 0xa8);\n        if (((DAT_0002d1c0 == 0) || (*(int *)(iVar14 + 0x20) != 0)) || (dVar2 != 0.0)) {\n          DAT_0002e170 = DAT_0002e170 + dVar2;\n          dVar5 = dVar2 / (double)DAT_0002e15c;\n          dVar6 = DAT_0002e170 / (double)DAT_0002e15c;\n          uVar12 = SUB84(dVar5,0);\n          uVar13 = (undefined4)((ulonglong)dVar5 >> 0x20);\n          uVar10 = SUB84(dVar6,0);\n          uVar11 = (undefined4)((ulonglong)dVar6 >> 0x20);\n          if (DAT_0002e150 == 0) {\n            if (DAT_0002e168 <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;\n            }\n            printf("%6.2f %9.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11,\n                   uVar12,uVar13);\n          }\n          else {\n            if (DAT_0002e168 <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;\n            }\n            printf("%5.1f %10.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11\n                   ,uVar12,uVar13);\n          }\n          uVar3 = *(uint *)(iVar14 + 0x20);\n          if (uVar3 == 0) {\n            printf(" %8.8s %8.8s %8.8s  ","","","");\n          }\n          else {\n            dVar2 = (((*(double *)(iVar14 + 0xbc) + *(double *)(iVar14 + 0xa8)) * dVar1) /\n                    (double)DAT_0002e15c) / (double)uVar3;\n            dVar1 = ((dVar1 * *(double *)(iVar14 + 0xa8)) / (double)DAT_0002e15c) / (double)uVar3;\n            printf(" %8lu %8.2f %8.2f  ",uVar3,SUB84(dVar1,0),(int)((ulonglong)dVar1 >> 0x20),\n                   SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar13);\n          }\n          if (DAT_0002e150 == 0) {\n            FUN_0001df00(iVar14);\n          }\n          else {\n            FUN_0001e170(iVar14);\n          }\n          putchar(10);\n        }\nLAB_0001bd38:\n        uVar17 = uVar17 + 1;\n        if (DAT_0002e520 <= uVar17) goto LAB_0001bda0;\n      }\n      if (DAT_0002e570 != 0) goto LAB_0001bd38;\n      iVar14 = FUN_0001d480(&DAT_0002e57c,uVar10,uVar11);\n      if (iVar14 == 0) goto LAB_0001bc00;\n      uVar17 = uVar17 + 1;\n    } while (uVar17 < DAT_0002e520);\n  }\nLAB_0001bda0:\n  free(__base);\n  if ((DAT_0002d1bc != 0) && (DAT_0002e150 == 0)) {\n    FUN_0001f820(*(undefined4 *)PTR_stdout_0002cfec);\n    return;\n  }\n  return;\n}\n\n" (function_definition "void FUN_0001b8a0(void)\n\n{\n  double dVar1;\n  double dVar2;\n  uint uVar3;\n  float fVar4;\n  double dVar5;\n  double dVar6;\n  size_t __nmemb;\n  int *__base;\n  int *piVar7;\n  double *pdVar8;\n  char *pcVar9;\n  undefined4 uVar10;\n  undefined4 uVar11;\n  undefined4 uVar12;\n  undefined4 uVar13;\n  int iVar14;\n  int *piVar15;\n  int iVar16;\n  uint uVar17;\n  ulonglong local_a4;\n  size_t local_84;\n  char local_5c [72];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1b8a9;\n  if (DAT_0002d1b8 == 0) {\n    puts("\f");\n  }\n  else {\n    DAT_0002d1b8 = 0;\n  }\n  DAT_0002e170 = 0.0;\n  if (DAT_0002e150 == 0) {\n    pcVar9 = (char *)dcgettext("gprof","Flat profile:\n",5);\n    printf(pcVar9);\n  }\n  else if (DAT_0002d1bc != 0) {\n    pcVar9 = (char *)dcgettext("gprof","\n\n\nflat profile:\n",5);\n    printf(pcVar9);\n    FUN_0001f820(*(undefined4 *)PTR_stdout_0002cfec);\n  }\n  __base = (int *)xmalloc(DAT_0002e520 << 2);\n  __nmemb = DAT_0002e520;\n  if (DAT_0002e520 != 0) {\n    piVar15 = __base + DAT_0002e520;\n    piVar7 = __base;\n    iVar14 = DAT_0002e524;\n    do {\n      *piVar7 = iVar14;\n      piVar7 = piVar7 + 1;\n      iVar14 = iVar14 + 0xfc;\n    } while (piVar15 != piVar7);\n  }\n  qsort(__base,__nmemb,4,FUN_0001ae50);\n  if (DAT_0002e150 != 0) {\n    local_84 = 5;\n    iVar14 = 0x6d;\n    goto LAB_0001ba65;\n  }\n  local_84 = DAT_0002e520;\n  if (DAT_0002e520 == 0) {\nLAB_0001beb2:\n    iVar14 = 0x54;\n  }\n  else {\n    iVar14 = 0;\n    dVar1 = 0.0;\n    piVar15 = __base;\n    do {\n      iVar16 = *piVar15;\n      if (*(uint *)(iVar16 + 0x20) != 0) {\n        local_a4 = (ulonglong)*(uint *)(iVar16 + 0x20);\n        dVar2 = (*(double *)(iVar16 + 0xa8) + *(double *)(iVar16 + 0xbc)) / (double)local_a4;\n        if (dVar1 < dVar2) {\n          dVar1 = dVar2;\n          iVar14 = iVar16;\n        }\n      }\n      piVar15 = piVar15 + 1;\n    } while (__base + DAT_0002e520 != piVar15);\n    if (iVar14 != 0) {\n      if (*(int *)(iVar14 + 0x20) == 0) {\n        local_84 = 0;\n        goto LAB_0001beb2;\n      }\n      if (0.0 < dVar1) {\n        local_84 = 0;\n        pdVar8 = (double *)&DAT_00023db0;\n        dVar2 = DAT_00023e30;\n        while( true ) {\n          dVar2 = dVar2 * (dVar1 / (double)DAT_0002e15c);\n          if ((1.0 <= dVar2) && (dVar2 < (double)DAT_00023e2c)) {\n            iVar14 = (int)(char)(&DAT_00023da0)[local_84 * 0xc];\n            goto LAB_0001ba65;\n          }\n          local_84 = local_84 + 1;\n          if (local_84 == 0xb) break;\n          dVar2 = *pdVar8;\n          pdVar8 = (double *)((int)pdVar8 + 0xc);\n        }\n        iVar14 = 0;\n        goto LAB_0001ba65;\n      }\n    }\n    iVar14 = 0x54;\n    local_84 = 0;\n  }\nLAB_0001ba65:\n  iVar16 = (int)DAT_0002d4a4;\n  pcVar9 = (char *)dcgettext("gprof","%c%c/call",5);\n  sprintf(local_5c,pcVar9,iVar14,iVar16);\n  if (DAT_0002e150 == 0) {\n    fVar4 = DAT_00023e28 / (float)DAT_0002e15c;\n    pcVar9 = (char *)dcgettext("gprof","\nEach sample counts as %g %s.\n",5);\n    printf(pcVar9,SUB84((double)fVar4,0),(int)((ulonglong)(double)fVar4 >> 0x20),s_seconds_0002d4a8)\n    ;\n  }\n  else {\n    dVar1 = ROUND(DAT_0002e518);\n    pcVar9 = (char *)dcgettext("gprof","\ngranularity: each sample hit covers %ld byte(s)",5);\n    printf(pcVar9,(int)dVar1 * 2);\n    dVar1 = DAT_0002e168;\n    if (0.0 < DAT_0002e168) {\n      dVar2 = DAT_0002e168 / (double)DAT_0002e15c;\n      pcVar9 = (char *)dcgettext("gprof"," for %.2f%% of %.2f %s\n\n",5);\n      printf(pcVar9,SUB84((double)_DAT_000221d8 / dVar1,0),\n             (int)((ulonglong)((double)_DAT_000221d8 / dVar1) >> 0x20),SUB84(dVar2,0),\n             (int)((ulonglong)dVar2 >> 0x20),s_seconds_0002d4a8);\n    }\n  }\n  if (DAT_0002e168 <= 0.0) {\n    pcVar9 = (char *)dcgettext("gprof"," no time accumulated\n\n",5);\n    printf(pcVar9);\n    DAT_0002e168 = 1.0;\n  }\n  uVar10 = dcgettext("gprof","total ",5);\n  uVar11 = dcgettext("gprof","self  ",5);\n  uVar12 = dcgettext("gprof","self  ",5);\n  uVar13 = dcgettext("gprof","cumulative",5);\n  printf("%5.5s %10.10s %8.8s %8.8s %8.8s %8.8s  %-8.8s\n",&DAT_00023d2f,uVar13,uVar12,"",uVar11,\n         uVar10,"");\n  uVar10 = dcgettext("gprof",&DAT_000229c1,5);\n  uVar11 = dcgettext("gprof","calls",5);\n  uVar12 = dcgettext("gprof",&DAT_000229d8,5);\n  uVar17 = 0;\n  printf("%5.5s %9.9s  %8.8s %8.8s %8.8s %8.8s  %-8.8s\n",uVar12,s_seconds_0002d4a8,\n         s_seconds_0002d4a8,uVar11,local_5c,local_5c,uVar10);\n  if (DAT_0002e520 != 0) {\n    do {\n      while( true ) {\n        uVar10 = *(undefined4 *)__base[uVar17];\n        uVar11 = ((undefined4 *)__base[uVar17])[1];\n        iVar14 = FUN_0001d480(&DAT_0002e570,uVar10,uVar11);\n        if (iVar14 == 0) break;\nLAB_0001bc00:\n        dVar1 = *(double *)(&UNK_00023da4 + local_84 * 0xc);\n        iVar14 = __base[uVar17];\n        dVar2 = *(double *)(iVar14 + 0xa8);\n        if (((DAT_0002d1c0 == 0) || (*(int *)(iVar14 + 0x20) != 0)) || (dVar2 != 0.0)) {\n          DAT_0002e170 = DAT_0002e170 + dVar2;\n          dVar5 = dVar2 / (double)DAT_0002e15c;\n          dVar6 = DAT_0002e170 / (double)DAT_0002e15c;\n          uVar12 = SUB84(dVar5,0);\n          uVar13 = (undefined4)((ulonglong)dVar5 >> 0x20);\n          uVar10 = SUB84(dVar6,0);\n          uVar11 = (undefined4)((ulonglong)dVar6 >> 0x20);\n          if (DAT_0002e150 == 0) {\n            if (DAT_0002e168 <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;\n            }\n            printf("%6.2f %9.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11,\n                   uVar12,uVar13);\n          }\n          else {\n            if (DAT_0002e168 <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;\n            }\n            printf("%5.1f %10.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11\n                   ,uVar12,uVar13);\n          }\n          uVar3 = *(uint *)(iVar14 + 0x20);\n          if (uVar3 == 0) {\n            printf(" %8.8s %8.8s %8.8s  ","","","");\n          }\n          else {\n            dVar2 = (((*(double *)(iVar14 + 0xbc) + *(double *)(iVar14 + 0xa8)) * dVar1) /\n                    (double)DAT_0002e15c) / (double)uVar3;\n            dVar1 = ((dVar1 * *(double *)(iVar14 + 0xa8)) / (double)DAT_0002e15c) / (double)uVar3;\n            printf(" %8lu %8.2f %8.2f  ",uVar3,SUB84(dVar1,0),(int)((ulonglong)dVar1 >> 0x20),\n                   SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar13);\n          }\n          if (DAT_0002e150 == 0) {\n            FUN_0001df00(iVar14);\n          }\n          else {\n            FUN_0001e170(iVar14);\n          }\n          putchar(10);\n        }\nLAB_0001bd38:\n        uVar17 = uVar17 + 1;\n        if (DAT_0002e520 <= uVar17) goto LAB_0001bda0;\n      }\n      if (DAT_0002e570 != 0) goto LAB_0001bd38;\n      iVar14 = FUN_0001d480(&DAT_0002e57c,uVar10,uVar11);\n      if (iVar14 == 0) goto LAB_0001bc00;\n      uVar17 = uVar17 + 1;\n    } while (uVar17 < DAT_0002e520);\n  }\nLAB_0001bda0:\n  free(__base);\n  if ((DAT_0002d1bc != 0) && (DAT_0002e150 == 0)) {\n    FUN_0001f820(*(undefined4 *)PTR_stdout_0002cfec);\n    return;\n  }\n  return;\n}" primitive_type (function_declarator "FUN_0001b8a0(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  double dVar1;\n  double dVar2;\n  uint uVar3;\n  float fVar4;\n  double dVar5;\n  double dVar6;\n  size_t __nmemb;\n  int *__base;\n  int *piVar7;\n  double *pdVar8;\n  char *pcVar9;\n  undefined4 uVar10;\n  undefined4 uVar11;\n  undefined4 uVar12;\n  undefined4 uVar13;\n  int iVar14;\n  int *piVar15;\n  int iVar16;\n  uint uVar17;\n  ulonglong local_a4;\n  size_t local_84;\n  char local_5c [72];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1b8a9;\n  if (DAT_0002d1b8 == 0) {\n    puts("\f");\n  }\n  else {\n    DAT_0002d1b8 = 0;\n  }\n  DAT_0002e170 = 0.0;\n  if (DAT_0002e150 == 0) {\n    pcVar9 = (char *)dcgettext("gprof","Flat profile:\n",5);\n    printf(pcVar9);\n  }\n  else if (DAT_0002d1bc != 0) {\n    pcVar9 = (char *)dcgettext("gprof","\n\n\nflat profile:\n",5);\n    printf(pcVar9);\n    FUN_0001f820(*(undefined4 *)PTR_stdout_0002cfec);\n  }\n  __base = (int *)xmalloc(DAT_0002e520 << 2);\n  __nmemb = DAT_0002e520;\n  if (DAT_0002e520 != 0) {\n    piVar15 = __base + DAT_0002e520;\n    piVar7 = __base;\n    iVar14 = DAT_0002e524;\n    do {\n      *piVar7 = iVar14;\n      piVar7 = piVar7 + 1;\n      iVar14 = iVar14 + 0xfc;\n    } while (piVar15 != piVar7);\n  }\n  qsort(__base,__nmemb,4,FUN_0001ae50);\n  if (DAT_0002e150 != 0) {\n    local_84 = 5;\n    iVar14 = 0x6d;\n    goto LAB_0001ba65;\n  }\n  local_84 = DAT_0002e520;\n  if (DAT_0002e520 == 0) {\nLAB_0001beb2:\n    iVar14 = 0x54;\n  }\n  else {\n    iVar14 = 0;\n    dVar1 = 0.0;\n    piVar15 = __base;\n    do {\n      iVar16 = *piVar15;\n      if (*(uint *)(iVar16 + 0x20) != 0) {\n        local_a4 = (ulonglong)*(uint *)(iVar16 + 0x20);\n        dVar2 = (*(double *)(iVar16 + 0xa8) + *(double *)(iVar16 + 0xbc)) / (double)local_a4;\n        if (dVar1 < dVar2) {\n          dVar1 = dVar2;\n          iVar14 = iVar16;\n        }\n      }\n      piVar15 = piVar15 + 1;\n    } while (__base + DAT_0002e520 != piVar15);\n    if (iVar14 != 0) {\n      if (*(int *)(iVar14 + 0x20) == 0) {\n        local_84 = 0;\n        goto LAB_0001beb2;\n      }\n      if (0.0 < dVar1) {\n        local_84 = 0;\n        pdVar8 = (double *)&DAT_00023db0;\n        dVar2 = DAT_00023e30;\n        while( true ) {\n          dVar2 = dVar2 * (dVar1 / (double)DAT_0002e15c);\n          if ((1.0 <= dVar2) && (dVar2 < (double)DAT_00023e2c)) {\n            iVar14 = (int)(char)(&DAT_00023da0)[local_84 * 0xc];\n            goto LAB_0001ba65;\n          }\n          local_84 = local_84 + 1;\n          if (local_84 == 0xb) break;\n          dVar2 = *pdVar8;\n          pdVar8 = (double *)((int)pdVar8 + 0xc);\n        }\n        iVar14 = 0;\n        goto LAB_0001ba65;\n      }\n    }\n    iVar14 = 0x54;\n    local_84 = 0;\n  }\nLAB_0001ba65:\n  iVar16 = (int)DAT_0002d4a4;\n  pcVar9 = (char *)dcgettext("gprof","%c%c/call",5);\n  sprintf(local_5c,pcVar9,iVar14,iVar16);\n  if (DAT_0002e150 == 0) {\n    fVar4 = DAT_00023e28 / (float)DAT_0002e15c;\n    pcVar9 = (char *)dcgettext("gprof","\nEach sample counts as %g %s.\n",5);\n    printf(pcVar9,SUB84((double)fVar4,0),(int)((ulonglong)(double)fVar4 >> 0x20),s_seconds_0002d4a8)\n    ;\n  }\n  else {\n    dVar1 = ROUND(DAT_0002e518);\n    pcVar9 = (char *)dcgettext("gprof","\ngranularity: each sample hit covers %ld byte(s)",5);\n    printf(pcVar9,(int)dVar1 * 2);\n    dVar1 = DAT_0002e168;\n    if (0.0 < DAT_0002e168) {\n      dVar2 = DAT_0002e168 / (double)DAT_0002e15c;\n      pcVar9 = (char *)dcgettext("gprof"," for %.2f%% of %.2f %s\n\n",5);\n      printf(pcVar9,SUB84((double)_DAT_000221d8 / dVar1,0),\n             (int)((ulonglong)((double)_DAT_000221d8 / dVar1) >> 0x20),SUB84(dVar2,0),\n             (int)((ulonglong)dVar2 >> 0x20),s_seconds_0002d4a8);\n    }\n  }\n  if (DAT_0002e168 <= 0.0) {\n    pcVar9 = (char *)dcgettext("gprof"," no time accumulated\n\n",5);\n    printf(pcVar9);\n    DAT_0002e168 = 1.0;\n  }\n  uVar10 = dcgettext("gprof","total ",5);\n  uVar11 = dcgettext("gprof","self  ",5);\n  uVar12 = dcgettext("gprof","self  ",5);\n  uVar13 = dcgettext("gprof","cumulative",5);\n  printf("%5.5s %10.10s %8.8s %8.8s %8.8s %8.8s  %-8.8s\n",&DAT_00023d2f,uVar13,uVar12,"",uVar11,\n         uVar10,"");\n  uVar10 = dcgettext("gprof",&DAT_000229c1,5);\n  uVar11 = dcgettext("gprof","calls",5);\n  uVar12 = dcgettext("gprof",&DAT_000229d8,5);\n  uVar17 = 0;\n  printf("%5.5s %9.9s  %8.8s %8.8s %8.8s %8.8s  %-8.8s\n",uVar12,s_seconds_0002d4a8,\n         s_seconds_0002d4a8,uVar11,local_5c,local_5c,uVar10);\n  if (DAT_0002e520 != 0) {\n    do {\n      while( true ) {\n        uVar10 = *(undefined4 *)__base[uVar17];\n        uVar11 = ((undefined4 *)__base[uVar17])[1];\n        iVar14 = FUN_0001d480(&DAT_0002e570,uVar10,uVar11);\n        if (iVar14 == 0) break;\nLAB_0001bc00:\n        dVar1 = *(double *)(&UNK_00023da4 + local_84 * 0xc);\n        iVar14 = __base[uVar17];\n        dVar2 = *(double *)(iVar14 + 0xa8);\n        if (((DAT_0002d1c0 == 0) || (*(int *)(iVar14 + 0x20) != 0)) || (dVar2 != 0.0)) {\n          DAT_0002e170 = DAT_0002e170 + dVar2;\n          dVar5 = dVar2 / (double)DAT_0002e15c;\n          dVar6 = DAT_0002e170 / (double)DAT_0002e15c;\n          uVar12 = SUB84(dVar5,0);\n          uVar13 = (undefined4)((ulonglong)dVar5 >> 0x20);\n          uVar10 = SUB84(dVar6,0);\n          uVar11 = (undefined4)((ulonglong)dVar6 >> 0x20);\n          if (DAT_0002e150 == 0) {\n            if (DAT_0002e168 <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;\n            }\n            printf("%6.2f %9.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11,\n                   uVar12,uVar13);\n          }\n          else {\n            if (DAT_0002e168 <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;\n            }\n            printf("%5.1f %10.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11\n                   ,uVar12,uVar13);\n          }\n          uVar3 = *(uint *)(iVar14 + 0x20);\n          if (uVar3 == 0) {\n            printf(" %8.8s %8.8s %8.8s  ","","","");\n          }\n          else {\n            dVar2 = (((*(double *)(iVar14 + 0xbc) + *(double *)(iVar14 + 0xa8)) * dVar1) /\n                    (double)DAT_0002e15c) / (double)uVar3;\n            dVar1 = ((dVar1 * *(double *)(iVar14 + 0xa8)) / (double)DAT_0002e15c) / (double)uVar3;\n            printf(" %8lu %8.2f %8.2f  ",uVar3,SUB84(dVar1,0),(int)((ulonglong)dVar1 >> 0x20),\n                   SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar13);\n          }\n          if (DAT_0002e150 == 0) {\n            FUN_0001df00(iVar14);\n          }\n          else {\n            FUN_0001e170(iVar14);\n          }\n          putchar(10);\n        }\nLAB_0001bd38:\n        uVar17 = uVar17 + 1;\n        if (DAT_0002e520 <= uVar17) goto LAB_0001bda0;\n      }\n      if (DAT_0002e570 != 0) goto LAB_0001bd38;\n      iVar14 = FUN_0001d480(&DAT_0002e57c,uVar10,uVar11);\n      if (iVar14 == 0) goto LAB_0001bc00;\n      uVar17 = uVar17 + 1;\n    } while (uVar17 < DAT_0002e520);\n  }\nLAB_0001bda0:\n  free(__base);\n  if ((DAT_0002d1bc != 0) && (DAT_0002e150 == 0)) {\n    FUN_0001f820(*(undefined4 *)PTR_stdout_0002cfec);\n    return;\n  }\n  return;\n}" { (declaration "double dVar1;" primitive_type identifier ;) (declaration "double dVar2;" primitive_type identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "float fVar4;" primitive_type identifier ;) (declaration "double dVar5;" primitive_type identifier ;) (declaration "double dVar6;" primitive_type identifier ;) (declaration "size_t __nmemb;" primitive_type identifier ;) (declaration "int *__base;" primitive_type (pointer_declarator "*__base" * identifier) ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "double *pdVar8;" primitive_type (pointer_declarator "*pdVar8" * identifier) ;) (declaration "char *pcVar9;" primitive_type (pointer_declarator "*pcVar9" * identifier) ;) (declaration "undefined4 uVar10;" type_identifier identifier ;) (declaration "undefined4 uVar11;" type_identifier identifier ;) (declaration "undefined4 uVar12;" type_identifier identifier ;) (declaration "undefined4 uVar13;" type_identifier identifier ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "int *piVar15;" primitive_type (pointer_declarator "*piVar15" * identifier) ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "ulonglong local_a4;" type_identifier identifier ;) (declaration "size_t local_84;" primitive_type identifier ;) (declaration "char local_5c [72];" primitive_type (array_declarator "local_5c [72]" identifier [ number_literal ]) ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x1b8a9;" (assignment_expression "uStack_14 = 0x1b8a9" identifier = number_literal) ;) (if_statement "if (DAT_0002d1b8 == 0) {\n    puts("\f");\n  }\n  else {\n    DAT_0002d1b8 = 0;\n  }" if (parenthesized_expression "(DAT_0002d1b8 == 0)" ( (binary_expression "DAT_0002d1b8 == 0" identifier == number_literal) )) (compound_statement "{\n    puts("\f");\n  }" { (expression_statement "puts("\f");" (call_expression "puts("\f")" identifier (argument_list "("\f")" ( (string_literal ""\f"" " escape_sequence ") ))) ;) }) (else_clause "else {\n    DAT_0002d1b8 = 0;\n  }" else (compound_statement "{\n    DAT_0002d1b8 = 0;\n  }" { (expression_statement "DAT_0002d1b8 = 0;" (assignment_expression "DAT_0002d1b8 = 0" identifier = number_literal) ;) }))) (expression_statement "DAT_0002e170 = 0.0;" (assignment_expression "DAT_0002e170 = 0.0" identifier = number_literal) ;) (if_statement "if (DAT_0002e150 == 0) {\n    pcVar9 = (char *)dcgettext("gprof","Flat profile:\n",5);\n    printf(pcVar9);\n  }\n  else if (DAT_0002d1bc != 0) {\n    pcVar9 = (char *)dcgettext("gprof","\n\n\nflat profile:\n",5);\n    printf(pcVar9);\n    FUN_0001f820(*(undefined4 *)PTR_stdout_0002cfec);\n  }" if (parenthesized_expression "(DAT_0002e150 == 0)" ( (binary_expression "DAT_0002e150 == 0" identifier == number_literal) )) (compound_statement "{\n    pcVar9 = (char *)dcgettext("gprof","Flat profile:\n",5);\n    printf(pcVar9);\n  }" { (expression_statement "pcVar9 = (char *)dcgettext("gprof","Flat profile:\n",5);" (assignment_expression "pcVar9 = (char *)dcgettext("gprof","Flat profile:\n",5)" identifier = (cast_expression "(char *)dcgettext("gprof","Flat profile:\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext("gprof","Flat profile:\n",5)" identifier (argument_list "("gprof","Flat profile:\n",5)" ( (string_literal ""gprof"" " string_content ") , (string_literal ""Flat profile:\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "printf(pcVar9);" (call_expression "printf(pcVar9)" identifier (argument_list "(pcVar9)" ( identifier ))) ;) }) (else_clause "else if (DAT_0002d1bc != 0) {\n    pcVar9 = (char *)dcgettext("gprof","\n\n\nflat profile:\n",5);\n    printf(pcVar9);\n    FUN_0001f820(*(undefined4 *)PTR_stdout_0002cfec);\n  }" else (if_statement "if (DAT_0002d1bc != 0) {\n    pcVar9 = (char *)dcgettext("gprof","\n\n\nflat profile:\n",5);\n    printf(pcVar9);\n    FUN_0001f820(*(undefined4 *)PTR_stdout_0002cfec);\n  }" if (parenthesized_expression "(DAT_0002d1bc != 0)" ( (binary_expression "DAT_0002d1bc != 0" identifier != number_literal) )) (compound_statement "{\n    pcVar9 = (char *)dcgettext("gprof","\n\n\nflat profile:\n",5);\n    printf(pcVar9);\n    FUN_0001f820(*(undefined4 *)PTR_stdout_0002cfec);\n  }" { (expression_statement "pcVar9 = (char *)dcgettext("gprof","\n\n\nflat profile:\n",5);" (assignment_expression "pcVar9 = (char *)dcgettext("gprof","\n\n\nflat profile:\n",5)" identifier = (cast_expression "(char *)dcgettext("gprof","\n\n\nflat profile:\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext("gprof","\n\n\nflat profile:\n",5)" identifier (argument_list "("gprof","\n\n\nflat profile:\n",5)" ( (string_literal ""gprof"" " string_content ") , (string_literal ""\n\n\nflat profile:\n"" " escape_sequence escape_sequence escape_sequence string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "printf(pcVar9);" (call_expression "printf(pcVar9)" identifier (argument_list "(pcVar9)" ( identifier ))) ;) (expression_statement "FUN_0001f820(*(undefined4 *)PTR_stdout_0002cfec);" (call_expression "FUN_0001f820(*(undefined4 *)PTR_stdout_0002cfec)" identifier (argument_list "(*(undefined4 *)PTR_stdout_0002cfec)" ( (pointer_expression "*(undefined4 *)PTR_stdout_0002cfec" * (cast_expression "(undefined4 *)PTR_stdout_0002cfec" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))) ;) })))) (expression_statement "__base = (int *)xmalloc(DAT_0002e520 << 2);" (assignment_expression "__base = (int *)xmalloc(DAT_0002e520 << 2)" identifier = (cast_expression "(int *)xmalloc(DAT_0002e520 << 2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(DAT_0002e520 << 2)" identifier (argument_list "(DAT_0002e520 << 2)" ( (binary_expression "DAT_0002e520 << 2" identifier << number_literal) ))))) ;) (expression_statement "__nmemb = DAT_0002e520;" (assignment_expression "__nmemb = DAT_0002e520" identifier = identifier) ;) (if_statement "if (DAT_0002e520 != 0) {\n    piVar15 = __base + DAT_0002e520;\n    piVar7 = __base;\n    iVar14 = DAT_0002e524;\n    do {\n      *piVar7 = iVar14;\n      piVar7 = piVar7 + 1;\n      iVar14 = iVar14 + 0xfc;\n    } while (piVar15 != piVar7);\n  }" if (parenthesized_expression "(DAT_0002e520 != 0)" ( (binary_expression "DAT_0002e520 != 0" identifier != number_literal) )) (compound_statement "{\n    piVar15 = __base + DAT_0002e520;\n    piVar7 = __base;\n    iVar14 = DAT_0002e524;\n    do {\n      *piVar7 = iVar14;\n      piVar7 = piVar7 + 1;\n      iVar14 = iVar14 + 0xfc;\n    } while (piVar15 != piVar7);\n  }" { (expression_statement "piVar15 = __base + DAT_0002e520;" (assignment_expression "piVar15 = __base + DAT_0002e520" identifier = (binary_expression "__base + DAT_0002e520" identifier + identifier)) ;) (expression_statement "piVar7 = __base;" (assignment_expression "piVar7 = __base" identifier = identifier) ;) (expression_statement "iVar14 = DAT_0002e524;" (assignment_expression "iVar14 = DAT_0002e524" identifier = identifier) ;) (do_statement "do {\n      *piVar7 = iVar14;\n      piVar7 = piVar7 + 1;\n      iVar14 = iVar14 + 0xfc;\n    } while (piVar15 != piVar7);" do (compound_statement "{\n      *piVar7 = iVar14;\n      piVar7 = piVar7 + 1;\n      iVar14 = iVar14 + 0xfc;\n    }" { (expression_statement "*piVar7 = iVar14;" (assignment_expression "*piVar7 = iVar14" (pointer_expression "*piVar7" * identifier) = identifier) ;) (expression_statement "piVar7 = piVar7 + 1;" (assignment_expression "piVar7 = piVar7 + 1" identifier = (binary_expression "piVar7 + 1" identifier + number_literal)) ;) (expression_statement "iVar14 = iVar14 + 0xfc;" (assignment_expression "iVar14 = iVar14 + 0xfc" identifier = (binary_expression "iVar14 + 0xfc" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar15 != piVar7)" ( (binary_expression "piVar15 != piVar7" identifier != identifier) )) ;) })) (expression_statement "qsort(__base,__nmemb,4,FUN_0001ae50);" (call_expression "qsort(__base,__nmemb,4,FUN_0001ae50)" identifier (argument_list "(__base,__nmemb,4,FUN_0001ae50)" ( identifier , identifier , number_literal , identifier ))) ;) (if_statement "if (DAT_0002e150 != 0) {\n    local_84 = 5;\n    iVar14 = 0x6d;\n    goto LAB_0001ba65;\n  }" if (parenthesized_expression "(DAT_0002e150 != 0)" ( (binary_expression "DAT_0002e150 != 0" identifier != number_literal) )) (compound_statement "{\n    local_84 = 5;\n    iVar14 = 0x6d;\n    goto LAB_0001ba65;\n  }" { (expression_statement "local_84 = 5;" (assignment_expression "local_84 = 5" identifier = number_literal) ;) (expression_statement "iVar14 = 0x6d;" (assignment_expression "iVar14 = 0x6d" identifier = number_literal) ;) (goto_statement "goto LAB_0001ba65;" goto statement_identifier ;) })) (expression_statement "local_84 = DAT_0002e520;" (assignment_expression "local_84 = DAT_0002e520" identifier = identifier) ;) (if_statement "if (DAT_0002e520 == 0) {\nLAB_0001beb2:\n    iVar14 = 0x54;\n  }\n  else {\n    iVar14 = 0;\n    dVar1 = 0.0;\n    piVar15 = __base;\n    do {\n      iVar16 = *piVar15;\n      if (*(uint *)(iVar16 + 0x20) != 0) {\n        local_a4 = (ulonglong)*(uint *)(iVar16 + 0x20);\n        dVar2 = (*(double *)(iVar16 + 0xa8) + *(double *)(iVar16 + 0xbc)) / (double)local_a4;\n        if (dVar1 < dVar2) {\n          dVar1 = dVar2;\n          iVar14 = iVar16;\n        }\n      }\n      piVar15 = piVar15 + 1;\n    } while (__base + DAT_0002e520 != piVar15);\n    if (iVar14 != 0) {\n      if (*(int *)(iVar14 + 0x20) == 0) {\n        local_84 = 0;\n        goto LAB_0001beb2;\n      }\n      if (0.0 < dVar1) {\n        local_84 = 0;\n        pdVar8 = (double *)&DAT_00023db0;\n        dVar2 = DAT_00023e30;\n        while( true ) {\n          dVar2 = dVar2 * (dVar1 / (double)DAT_0002e15c);\n          if ((1.0 <= dVar2) && (dVar2 < (double)DAT_00023e2c)) {\n            iVar14 = (int)(char)(&DAT_00023da0)[local_84 * 0xc];\n            goto LAB_0001ba65;\n          }\n          local_84 = local_84 + 1;\n          if (local_84 == 0xb) break;\n          dVar2 = *pdVar8;\n          pdVar8 = (double *)((int)pdVar8 + 0xc);\n        }\n        iVar14 = 0;\n        goto LAB_0001ba65;\n      }\n    }\n    iVar14 = 0x54;\n    local_84 = 0;\n  }" if (parenthesized_expression "(DAT_0002e520 == 0)" ( (binary_expression "DAT_0002e520 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0001beb2:\n    iVar14 = 0x54;\n  }" { (labeled_statement "LAB_0001beb2:\n    iVar14 = 0x54;" statement_identifier : (expression_statement "iVar14 = 0x54;" (assignment_expression "iVar14 = 0x54" identifier = number_literal) ;)) }) (else_clause "else {\n    iVar14 = 0;\n    dVar1 = 0.0;\n    piVar15 = __base;\n    do {\n      iVar16 = *piVar15;\n      if (*(uint *)(iVar16 + 0x20) != 0) {\n        local_a4 = (ulonglong)*(uint *)(iVar16 + 0x20);\n        dVar2 = (*(double *)(iVar16 + 0xa8) + *(double *)(iVar16 + 0xbc)) / (double)local_a4;\n        if (dVar1 < dVar2) {\n          dVar1 = dVar2;\n          iVar14 = iVar16;\n        }\n      }\n      piVar15 = piVar15 + 1;\n    } while (__base + DAT_0002e520 != piVar15);\n    if (iVar14 != 0) {\n      if (*(int *)(iVar14 + 0x20) == 0) {\n        local_84 = 0;\n        goto LAB_0001beb2;\n      }\n      if (0.0 < dVar1) {\n        local_84 = 0;\n        pdVar8 = (double *)&DAT_00023db0;\n        dVar2 = DAT_00023e30;\n        while( true ) {\n          dVar2 = dVar2 * (dVar1 / (double)DAT_0002e15c);\n          if ((1.0 <= dVar2) && (dVar2 < (double)DAT_00023e2c)) {\n            iVar14 = (int)(char)(&DAT_00023da0)[local_84 * 0xc];\n            goto LAB_0001ba65;\n          }\n          local_84 = local_84 + 1;\n          if (local_84 == 0xb) break;\n          dVar2 = *pdVar8;\n          pdVar8 = (double *)((int)pdVar8 + 0xc);\n        }\n        iVar14 = 0;\n        goto LAB_0001ba65;\n      }\n    }\n    iVar14 = 0x54;\n    local_84 = 0;\n  }" else (compound_statement "{\n    iVar14 = 0;\n    dVar1 = 0.0;\n    piVar15 = __base;\n    do {\n      iVar16 = *piVar15;\n      if (*(uint *)(iVar16 + 0x20) != 0) {\n        local_a4 = (ulonglong)*(uint *)(iVar16 + 0x20);\n        dVar2 = (*(double *)(iVar16 + 0xa8) + *(double *)(iVar16 + 0xbc)) / (double)local_a4;\n        if (dVar1 < dVar2) {\n          dVar1 = dVar2;\n          iVar14 = iVar16;\n        }\n      }\n      piVar15 = piVar15 + 1;\n    } while (__base + DAT_0002e520 != piVar15);\n    if (iVar14 != 0) {\n      if (*(int *)(iVar14 + 0x20) == 0) {\n        local_84 = 0;\n        goto LAB_0001beb2;\n      }\n      if (0.0 < dVar1) {\n        local_84 = 0;\n        pdVar8 = (double *)&DAT_00023db0;\n        dVar2 = DAT_00023e30;\n        while( true ) {\n          dVar2 = dVar2 * (dVar1 / (double)DAT_0002e15c);\n          if ((1.0 <= dVar2) && (dVar2 < (double)DAT_00023e2c)) {\n            iVar14 = (int)(char)(&DAT_00023da0)[local_84 * 0xc];\n            goto LAB_0001ba65;\n          }\n          local_84 = local_84 + 1;\n          if (local_84 == 0xb) break;\n          dVar2 = *pdVar8;\n          pdVar8 = (double *)((int)pdVar8 + 0xc);\n        }\n        iVar14 = 0;\n        goto LAB_0001ba65;\n      }\n    }\n    iVar14 = 0x54;\n    local_84 = 0;\n  }" { (expression_statement "iVar14 = 0;" (assignment_expression "iVar14 = 0" identifier = number_literal) ;) (expression_statement "dVar1 = 0.0;" (assignment_expression "dVar1 = 0.0" identifier = number_literal) ;) (expression_statement "piVar15 = __base;" (assignment_expression "piVar15 = __base" identifier = identifier) ;) (do_statement "do {\n      iVar16 = *piVar15;\n      if (*(uint *)(iVar16 + 0x20) != 0) {\n        local_a4 = (ulonglong)*(uint *)(iVar16 + 0x20);\n        dVar2 = (*(double *)(iVar16 + 0xa8) + *(double *)(iVar16 + 0xbc)) / (double)local_a4;\n        if (dVar1 < dVar2) {\n          dVar1 = dVar2;\n          iVar14 = iVar16;\n        }\n      }\n      piVar15 = piVar15 + 1;\n    } while (__base + DAT_0002e520 != piVar15);" do (compound_statement "{\n      iVar16 = *piVar15;\n      if (*(uint *)(iVar16 + 0x20) != 0) {\n        local_a4 = (ulonglong)*(uint *)(iVar16 + 0x20);\n        dVar2 = (*(double *)(iVar16 + 0xa8) + *(double *)(iVar16 + 0xbc)) / (double)local_a4;\n        if (dVar1 < dVar2) {\n          dVar1 = dVar2;\n          iVar14 = iVar16;\n        }\n      }\n      piVar15 = piVar15 + 1;\n    }" { (expression_statement "iVar16 = *piVar15;" (assignment_expression "iVar16 = *piVar15" identifier = (pointer_expression "*piVar15" * identifier)) ;) (if_statement "if (*(uint *)(iVar16 + 0x20) != 0) {\n        local_a4 = (ulonglong)*(uint *)(iVar16 + 0x20);\n        dVar2 = (*(double *)(iVar16 + 0xa8) + *(double *)(iVar16 + 0xbc)) / (double)local_a4;\n        if (dVar1 < dVar2) {\n          dVar1 = dVar2;\n          iVar14 = iVar16;\n        }\n      }" if (parenthesized_expression "(*(uint *)(iVar16 + 0x20) != 0)" ( (binary_expression "*(uint *)(iVar16 + 0x20) != 0" (pointer_expression "*(uint *)(iVar16 + 0x20)" * (cast_expression "(uint *)(iVar16 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x20)" ( (binary_expression "iVar16 + 0x20" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n        local_a4 = (ulonglong)*(uint *)(iVar16 + 0x20);\n        dVar2 = (*(double *)(iVar16 + 0xa8) + *(double *)(iVar16 + 0xbc)) / (double)local_a4;\n        if (dVar1 < dVar2) {\n          dVar1 = dVar2;\n          iVar14 = iVar16;\n        }\n      }" { (expression_statement "local_a4 = (ulonglong)*(uint *)(iVar16 + 0x20);" (assignment_expression "local_a4 = (ulonglong)*(uint *)(iVar16 + 0x20)" identifier = (binary_expression "(ulonglong)*(uint *)(iVar16 + 0x20)" (parenthesized_expression "(ulonglong)" ( identifier )) * (cast_expression "(uint *)(iVar16 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x20)" ( (binary_expression "iVar16 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "dVar2 = (*(double *)(iVar16 + 0xa8) + *(double *)(iVar16 + 0xbc)) / (double)local_a4;" (assignment_expression "dVar2 = (*(double *)(iVar16 + 0xa8) + *(double *)(iVar16 + 0xbc)) / (double)local_a4" identifier = (binary_expression "(*(double *)(iVar16 + 0xa8) + *(double *)(iVar16 + 0xbc)) / (double)local_a4" (parenthesized_expression "(*(double *)(iVar16 + 0xa8) + *(double *)(iVar16 + 0xbc))" ( (binary_expression "*(double *)(iVar16 + 0xa8) + *(double *)(iVar16 + 0xbc)" (pointer_expression "*(double *)(iVar16 + 0xa8)" * (cast_expression "(double *)(iVar16 + 0xa8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0xa8)" ( (binary_expression "iVar16 + 0xa8" identifier + number_literal) )))) + (pointer_expression "*(double *)(iVar16 + 0xbc)" * (cast_expression "(double *)(iVar16 + 0xbc)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0xbc)" ( (binary_expression "iVar16 + 0xbc" identifier + number_literal) ))))) )) / (cast_expression "(double)local_a4" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if (dVar1 < dVar2) {\n          dVar1 = dVar2;\n          iVar14 = iVar16;\n        }" if (parenthesized_expression "(dVar1 < dVar2)" ( (binary_expression "dVar1 < dVar2" identifier < identifier) )) (compound_statement "{\n          dVar1 = dVar2;\n          iVar14 = iVar16;\n        }" { (expression_statement "dVar1 = dVar2;" (assignment_expression "dVar1 = dVar2" identifier = identifier) ;) (expression_statement "iVar14 = iVar16;" (assignment_expression "iVar14 = iVar16" identifier = identifier) ;) })) })) (expression_statement "piVar15 = piVar15 + 1;" (assignment_expression "piVar15 = piVar15 + 1" identifier = (binary_expression "piVar15 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(__base + DAT_0002e520 != piVar15)" ( (binary_expression "__base + DAT_0002e520 != piVar15" (binary_expression "__base + DAT_0002e520" identifier + identifier) != identifier) )) ;) (if_statement "if (iVar14 != 0) {\n      if (*(int *)(iVar14 + 0x20) == 0) {\n        local_84 = 0;\n        goto LAB_0001beb2;\n      }\n      if (0.0 < dVar1) {\n        local_84 = 0;\n        pdVar8 = (double *)&DAT_00023db0;\n        dVar2 = DAT_00023e30;\n        while( true ) {\n          dVar2 = dVar2 * (dVar1 / (double)DAT_0002e15c);\n          if ((1.0 <= dVar2) && (dVar2 < (double)DAT_00023e2c)) {\n            iVar14 = (int)(char)(&DAT_00023da0)[local_84 * 0xc];\n            goto LAB_0001ba65;\n          }\n          local_84 = local_84 + 1;\n          if (local_84 == 0xb) break;\n          dVar2 = *pdVar8;\n          pdVar8 = (double *)((int)pdVar8 + 0xc);\n        }\n        iVar14 = 0;\n        goto LAB_0001ba65;\n      }\n    }" if (parenthesized_expression "(iVar14 != 0)" ( (binary_expression "iVar14 != 0" identifier != number_literal) )) (compound_statement "{\n      if (*(int *)(iVar14 + 0x20) == 0) {\n        local_84 = 0;\n        goto LAB_0001beb2;\n      }\n      if (0.0 < dVar1) {\n        local_84 = 0;\n        pdVar8 = (double *)&DAT_00023db0;\n        dVar2 = DAT_00023e30;\n        while( true ) {\n          dVar2 = dVar2 * (dVar1 / (double)DAT_0002e15c);\n          if ((1.0 <= dVar2) && (dVar2 < (double)DAT_00023e2c)) {\n            iVar14 = (int)(char)(&DAT_00023da0)[local_84 * 0xc];\n            goto LAB_0001ba65;\n          }\n          local_84 = local_84 + 1;\n          if (local_84 == 0xb) break;\n          dVar2 = *pdVar8;\n          pdVar8 = (double *)((int)pdVar8 + 0xc);\n        }\n        iVar14 = 0;\n        goto LAB_0001ba65;\n      }\n    }" { (if_statement "if (*(int *)(iVar14 + 0x20) == 0) {\n        local_84 = 0;\n        goto LAB_0001beb2;\n      }" if (parenthesized_expression "(*(int *)(iVar14 + 0x20) == 0)" ( (binary_expression "*(int *)(iVar14 + 0x20) == 0" (pointer_expression "*(int *)(iVar14 + 0x20)" * (cast_expression "(int *)(iVar14 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x20)" ( (binary_expression "iVar14 + 0x20" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        local_84 = 0;\n        goto LAB_0001beb2;\n      }" { (expression_statement "local_84 = 0;" (assignment_expression "local_84 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0001beb2;" goto statement_identifier ;) })) (if_statement "if (0.0 < dVar1) {\n        local_84 = 0;\n        pdVar8 = (double *)&DAT_00023db0;\n        dVar2 = DAT_00023e30;\n        while( true ) {\n          dVar2 = dVar2 * (dVar1 / (double)DAT_0002e15c);\n          if ((1.0 <= dVar2) && (dVar2 < (double)DAT_00023e2c)) {\n            iVar14 = (int)(char)(&DAT_00023da0)[local_84 * 0xc];\n            goto LAB_0001ba65;\n          }\n          local_84 = local_84 + 1;\n          if (local_84 == 0xb) break;\n          dVar2 = *pdVar8;\n          pdVar8 = (double *)((int)pdVar8 + 0xc);\n        }\n        iVar14 = 0;\n        goto LAB_0001ba65;\n      }" if (parenthesized_expression "(0.0 < dVar1)" ( (binary_expression "0.0 < dVar1" number_literal < identifier) )) (compound_statement "{\n        local_84 = 0;\n        pdVar8 = (double *)&DAT_00023db0;\n        dVar2 = DAT_00023e30;\n        while( true ) {\n          dVar2 = dVar2 * (dVar1 / (double)DAT_0002e15c);\n          if ((1.0 <= dVar2) && (dVar2 < (double)DAT_00023e2c)) {\n            iVar14 = (int)(char)(&DAT_00023da0)[local_84 * 0xc];\n            goto LAB_0001ba65;\n          }\n          local_84 = local_84 + 1;\n          if (local_84 == 0xb) break;\n          dVar2 = *pdVar8;\n          pdVar8 = (double *)((int)pdVar8 + 0xc);\n        }\n        iVar14 = 0;\n        goto LAB_0001ba65;\n      }" { (expression_statement "local_84 = 0;" (assignment_expression "local_84 = 0" identifier = number_literal) ;) (expression_statement "pdVar8 = (double *)&DAT_00023db0;" (assignment_expression "pdVar8 = (double *)&DAT_00023db0" identifier = (cast_expression "(double *)&DAT_00023db0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00023db0" & identifier))) ;) (expression_statement "dVar2 = DAT_00023e30;" (assignment_expression "dVar2 = DAT_00023e30" identifier = identifier) ;) (while_statement "while( true ) {\n          dVar2 = dVar2 * (dVar1 / (double)DAT_0002e15c);\n          if ((1.0 <= dVar2) && (dVar2 < (double)DAT_00023e2c)) {\n            iVar14 = (int)(char)(&DAT_00023da0)[local_84 * 0xc];\n            goto LAB_0001ba65;\n          }\n          local_84 = local_84 + 1;\n          if (local_84 == 0xb) break;\n          dVar2 = *pdVar8;\n          pdVar8 = (double *)((int)pdVar8 + 0xc);\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          dVar2 = dVar2 * (dVar1 / (double)DAT_0002e15c);\n          if ((1.0 <= dVar2) && (dVar2 < (double)DAT_00023e2c)) {\n            iVar14 = (int)(char)(&DAT_00023da0)[local_84 * 0xc];\n            goto LAB_0001ba65;\n          }\n          local_84 = local_84 + 1;\n          if (local_84 == 0xb) break;\n          dVar2 = *pdVar8;\n          pdVar8 = (double *)((int)pdVar8 + 0xc);\n        }" { (expression_statement "dVar2 = dVar2 * (dVar1 / (double)DAT_0002e15c);" (assignment_expression "dVar2 = dVar2 * (dVar1 / (double)DAT_0002e15c)" identifier = (binary_expression "dVar2 * (dVar1 / (double)DAT_0002e15c)" identifier * (parenthesized_expression "(dVar1 / (double)DAT_0002e15c)" ( (binary_expression "dVar1 / (double)DAT_0002e15c" identifier / (cast_expression "(double)DAT_0002e15c" ( (type_descriptor "double" primitive_type) ) identifier)) )))) ;) (if_statement "if ((1.0 <= dVar2) && (dVar2 < (double)DAT_00023e2c)) {\n            iVar14 = (int)(char)(&DAT_00023da0)[local_84 * 0xc];\n            goto LAB_0001ba65;\n          }" if (parenthesized_expression "((1.0 <= dVar2) && (dVar2 < (double)DAT_00023e2c))" ( (binary_expression "(1.0 <= dVar2) && (dVar2 < (double)DAT_00023e2c)" (parenthesized_expression "(1.0 <= dVar2)" ( (binary_expression "1.0 <= dVar2" number_literal <= identifier) )) && (parenthesized_expression "(dVar2 < (double)DAT_00023e2c)" ( (binary_expression "dVar2 < (double)DAT_00023e2c" identifier < (cast_expression "(double)DAT_00023e2c" ( (type_descriptor "double" primitive_type) ) identifier)) ))) )) (compound_statement "{\n            iVar14 = (int)(char)(&DAT_00023da0)[local_84 * 0xc];\n            goto LAB_0001ba65;\n          }" { (expression_statement "iVar14 = (int)(char)(&DAT_00023da0)[local_84 * 0xc];" (assignment_expression "iVar14 = (int)(char)(&DAT_00023da0)[local_84 * 0xc]" identifier = (cast_expression "(int)(char)(&DAT_00023da0)[local_84 * 0xc]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)(&DAT_00023da0)[local_84 * 0xc]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "(&DAT_00023da0)[local_84 * 0xc]" (parenthesized_expression "(&DAT_00023da0)" ( (pointer_expression "&DAT_00023da0" & identifier) )) [ (binary_expression "local_84 * 0xc" identifier * number_literal) ])))) ;) (goto_statement "goto LAB_0001ba65;" goto statement_identifier ;) })) (expression_statement "local_84 = local_84 + 1;" (assignment_expression "local_84 = local_84 + 1" identifier = (binary_expression "local_84 + 1" identifier + number_literal)) ;) (if_statement "if (local_84 == 0xb) break;" if (parenthesized_expression "(local_84 == 0xb)" ( (binary_expression "local_84 == 0xb" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "dVar2 = *pdVar8;" (assignment_expression "dVar2 = *pdVar8" identifier = (pointer_expression "*pdVar8" * identifier)) ;) (expression_statement "pdVar8 = (double *)((int)pdVar8 + 0xc);" (assignment_expression "pdVar8 = (double *)((int)pdVar8 + 0xc)" identifier = (cast_expression "(double *)((int)pdVar8 + 0xc)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar8 + 0xc)" ( (binary_expression "(int)pdVar8 + 0xc" (cast_expression "(int)pdVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) })) (expression_statement "iVar14 = 0;" (assignment_expression "iVar14 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0001ba65;" goto statement_identifier ;) })) })) (expression_statement "iVar14 = 0x54;" (assignment_expression "iVar14 = 0x54" identifier = number_literal) ;) (expression_statement "local_84 = 0;" (assignment_expression "local_84 = 0" identifier = number_literal) ;) }))) (labeled_statement "LAB_0001ba65:\n  iVar16 = (int)DAT_0002d4a4;" statement_identifier : (expression_statement "iVar16 = (int)DAT_0002d4a4;" (assignment_expression "iVar16 = (int)DAT_0002d4a4" identifier = (cast_expression "(int)DAT_0002d4a4" ( (type_descriptor "int" primitive_type) ) identifier)) ;)) (expression_statement "pcVar9 = (char *)dcgettext("gprof","%c%c/call",5);" (assignment_expression "pcVar9 = (char *)dcgettext("gprof","%c%c/call",5)" identifier = (cast_expression "(char *)dcgettext("gprof","%c%c/call",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext("gprof","%c%c/call",5)" identifier (argument_list "("gprof","%c%c/call",5)" ( (string_literal ""gprof"" " string_content ") , (string_literal ""%c%c/call"" " string_content ") , number_literal ))))) ;) (expression_statement "sprintf(local_5c,pcVar9,iVar14,iVar16);" (call_expression "sprintf(local_5c,pcVar9,iVar14,iVar16)" identifier (argument_list "(local_5c,pcVar9,iVar14,iVar16)" ( identifier , identifier , identifier , identifier ))) ;) (if_statement "if (DAT_0002e150 == 0) {\n    fVar4 = DAT_00023e28 / (float)DAT_0002e15c;\n    pcVar9 = (char *)dcgettext("gprof","\nEach sample counts as %g %s.\n",5);\n    printf(pcVar9,SUB84((double)fVar4,0),(int)((ulonglong)(double)fVar4 >> 0x20),s_seconds_0002d4a8)\n    ;\n  }\n  else {\n    dVar1 = ROUND(DAT_0002e518);\n    pcVar9 = (char *)dcgettext("gprof","\ngranularity: each sample hit covers %ld byte(s)",5);\n    printf(pcVar9,(int)dVar1 * 2);\n    dVar1 = DAT_0002e168;\n    if (0.0 < DAT_0002e168) {\n      dVar2 = DAT_0002e168 / (double)DAT_0002e15c;\n      pcVar9 = (char *)dcgettext("gprof"," for %.2f%% of %.2f %s\n\n",5);\n      printf(pcVar9,SUB84((double)_DAT_000221d8 / dVar1,0),\n             (int)((ulonglong)((double)_DAT_000221d8 / dVar1) >> 0x20),SUB84(dVar2,0),\n             (int)((ulonglong)dVar2 >> 0x20),s_seconds_0002d4a8);\n    }\n  }" if (parenthesized_expression "(DAT_0002e150 == 0)" ( (binary_expression "DAT_0002e150 == 0" identifier == number_literal) )) (compound_statement "{\n    fVar4 = DAT_00023e28 / (float)DAT_0002e15c;\n    pcVar9 = (char *)dcgettext("gprof","\nEach sample counts as %g %s.\n",5);\n    printf(pcVar9,SUB84((double)fVar4,0),(int)((ulonglong)(double)fVar4 >> 0x20),s_seconds_0002d4a8)\n    ;\n  }" { (expression_statement "fVar4 = DAT_00023e28 / (float)DAT_0002e15c;" (assignment_expression "fVar4 = DAT_00023e28 / (float)DAT_0002e15c" identifier = (binary_expression "DAT_00023e28 / (float)DAT_0002e15c" identifier / (cast_expression "(float)DAT_0002e15c" ( (type_descriptor "float" primitive_type) ) identifier))) ;) (expression_statement "pcVar9 = (char *)dcgettext("gprof","\nEach sample counts as %g %s.\n",5);" (assignment_expression "pcVar9 = (char *)dcgettext("gprof","\nEach sample counts as %g %s.\n",5)" identifier = (cast_expression "(char *)dcgettext("gprof","\nEach sample counts as %g %s.\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext("gprof","\nEach sample counts as %g %s.\n",5)" identifier (argument_list "("gprof","\nEach sample counts as %g %s.\n",5)" ( (string_literal ""gprof"" " string_content ") , (string_literal ""\nEach sample counts as %g %s.\n"" " escape_sequence string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "printf(pcVar9,SUB84((double)fVar4,0),(int)((ulonglong)(double)fVar4 >> 0x20),s_seconds_0002d4a8)\n    ;" (call_expression "printf(pcVar9,SUB84((double)fVar4,0),(int)((ulonglong)(double)fVar4 >> 0x20),s_seconds_0002d4a8)" identifier (argument_list "(pcVar9,SUB84((double)fVar4,0),(int)((ulonglong)(double)fVar4 >> 0x20),s_seconds_0002d4a8)" ( identifier , (call_expression "SUB84((double)fVar4,0)" identifier (argument_list "((double)fVar4,0)" ( (cast_expression "(double)fVar4" ( (type_descriptor "double" primitive_type) ) identifier) , number_literal ))) , (cast_expression "(int)((ulonglong)(double)fVar4 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)(double)fVar4 >> 0x20)" ( (binary_expression "(ulonglong)(double)fVar4 >> 0x20" (cast_expression "(ulonglong)(double)fVar4" ( (type_descriptor "ulonglong" type_identifier) ) (cast_expression "(double)fVar4" ( (type_descriptor "double" primitive_type) ) identifier)) >> number_literal) ))) , identifier ))) ;) }) (else_clause "else {\n    dVar1 = ROUND(DAT_0002e518);\n    pcVar9 = (char *)dcgettext("gprof","\ngranularity: each sample hit covers %ld byte(s)",5);\n    printf(pcVar9,(int)dVar1 * 2);\n    dVar1 = DAT_0002e168;\n    if (0.0 < DAT_0002e168) {\n      dVar2 = DAT_0002e168 / (double)DAT_0002e15c;\n      pcVar9 = (char *)dcgettext("gprof"," for %.2f%% of %.2f %s\n\n",5);\n      printf(pcVar9,SUB84((double)_DAT_000221d8 / dVar1,0),\n             (int)((ulonglong)((double)_DAT_000221d8 / dVar1) >> 0x20),SUB84(dVar2,0),\n             (int)((ulonglong)dVar2 >> 0x20),s_seconds_0002d4a8);\n    }\n  }" else (compound_statement "{\n    dVar1 = ROUND(DAT_0002e518);\n    pcVar9 = (char *)dcgettext("gprof","\ngranularity: each sample hit covers %ld byte(s)",5);\n    printf(pcVar9,(int)dVar1 * 2);\n    dVar1 = DAT_0002e168;\n    if (0.0 < DAT_0002e168) {\n      dVar2 = DAT_0002e168 / (double)DAT_0002e15c;\n      pcVar9 = (char *)dcgettext("gprof"," for %.2f%% of %.2f %s\n\n",5);\n      printf(pcVar9,SUB84((double)_DAT_000221d8 / dVar1,0),\n             (int)((ulonglong)((double)_DAT_000221d8 / dVar1) >> 0x20),SUB84(dVar2,0),\n             (int)((ulonglong)dVar2 >> 0x20),s_seconds_0002d4a8);\n    }\n  }" { (expression_statement "dVar1 = ROUND(DAT_0002e518);" (assignment_expression "dVar1 = ROUND(DAT_0002e518)" identifier = (call_expression "ROUND(DAT_0002e518)" identifier (argument_list "(DAT_0002e518)" ( identifier )))) ;) (expression_statement "pcVar9 = (char *)dcgettext("gprof","\ngranularity: each sample hit covers %ld byte(s)",5);" (assignment_expression "pcVar9 = (char *)dcgettext("gprof","\ngranularity: each sample hit covers %ld byte(s)",5)" identifier = (cast_expression "(char *)dcgettext("gprof","\ngranularity: each sample hit covers %ld byte(s)",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext("gprof","\ngranularity: each sample hit covers %ld byte(s)",5)" identifier (argument_list "("gprof","\ngranularity: each sample hit covers %ld byte(s)",5)" ( (string_literal ""gprof"" " string_content ") , (string_literal ""\ngranularity: each sample hit covers %ld byte(s)"" " escape_sequence string_content ") , number_literal ))))) ;) (expression_statement "printf(pcVar9,(int)dVar1 * 2);" (call_expression "printf(pcVar9,(int)dVar1 * 2)" identifier (argument_list "(pcVar9,(int)dVar1 * 2)" ( identifier , (binary_expression "(int)dVar1 * 2" (cast_expression "(int)dVar1" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) ))) ;) (expression_statement "dVar1 = DAT_0002e168;" (assignment_expression "dVar1 = DAT_0002e168" identifier = identifier) ;) (if_statement "if (0.0 < DAT_0002e168) {\n      dVar2 = DAT_0002e168 / (double)DAT_0002e15c;\n      pcVar9 = (char *)dcgettext("gprof"," for %.2f%% of %.2f %s\n\n",5);\n      printf(pcVar9,SUB84((double)_DAT_000221d8 / dVar1,0),\n             (int)((ulonglong)((double)_DAT_000221d8 / dVar1) >> 0x20),SUB84(dVar2,0),\n             (int)((ulonglong)dVar2 >> 0x20),s_seconds_0002d4a8);\n    }" if (parenthesized_expression "(0.0 < DAT_0002e168)" ( (binary_expression "0.0 < DAT_0002e168" number_literal < identifier) )) (compound_statement "{\n      dVar2 = DAT_0002e168 / (double)DAT_0002e15c;\n      pcVar9 = (char *)dcgettext("gprof"," for %.2f%% of %.2f %s\n\n",5);\n      printf(pcVar9,SUB84((double)_DAT_000221d8 / dVar1,0),\n             (int)((ulonglong)((double)_DAT_000221d8 / dVar1) >> 0x20),SUB84(dVar2,0),\n             (int)((ulonglong)dVar2 >> 0x20),s_seconds_0002d4a8);\n    }" { (expression_statement "dVar2 = DAT_0002e168 / (double)DAT_0002e15c;" (assignment_expression "dVar2 = DAT_0002e168 / (double)DAT_0002e15c" identifier = (binary_expression "DAT_0002e168 / (double)DAT_0002e15c" identifier / (cast_expression "(double)DAT_0002e15c" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (expression_statement "pcVar9 = (char *)dcgettext("gprof"," for %.2f%% of %.2f %s\n\n",5);" (assignment_expression "pcVar9 = (char *)dcgettext("gprof"," for %.2f%% of %.2f %s\n\n",5)" identifier = (cast_expression "(char *)dcgettext("gprof"," for %.2f%% of %.2f %s\n\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext("gprof"," for %.2f%% of %.2f %s\n\n",5)" identifier (argument_list "("gprof"," for %.2f%% of %.2f %s\n\n",5)" ( (string_literal ""gprof"" " string_content ") , (string_literal "" for %.2f%% of %.2f %s\n\n"" " string_content escape_sequence escape_sequence ") , number_literal ))))) ;) (expression_statement "printf(pcVar9,SUB84((double)_DAT_000221d8 / dVar1,0),\n             (int)((ulonglong)((double)_DAT_000221d8 / dVar1) >> 0x20),SUB84(dVar2,0),\n             (int)((ulonglong)dVar2 >> 0x20),s_seconds_0002d4a8);" (call_expression "printf(pcVar9,SUB84((double)_DAT_000221d8 / dVar1,0),\n             (int)((ulonglong)((double)_DAT_000221d8 / dVar1) >> 0x20),SUB84(dVar2,0),\n             (int)((ulonglong)dVar2 >> 0x20),s_seconds_0002d4a8)" identifier (argument_list "(pcVar9,SUB84((double)_DAT_000221d8 / dVar1,0),\n             (int)((ulonglong)((double)_DAT_000221d8 / dVar1) >> 0x20),SUB84(dVar2,0),\n             (int)((ulonglong)dVar2 >> 0x20),s_seconds_0002d4a8)" ( identifier , (call_expression "SUB84((double)_DAT_000221d8 / dVar1,0)" identifier (argument_list "((double)_DAT_000221d8 / dVar1,0)" ( (binary_expression "(double)_DAT_000221d8 / dVar1" (cast_expression "(double)_DAT_000221d8" ( (type_descriptor "double" primitive_type) ) identifier) / identifier) , number_literal ))) , (cast_expression "(int)((ulonglong)((double)_DAT_000221d8 / dVar1) >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)((double)_DAT_000221d8 / dVar1) >> 0x20)" ( (binary_expression "(ulonglong)((double)_DAT_000221d8 / dVar1) >> 0x20" (call_expression "(ulonglong)((double)_DAT_000221d8 / dVar1)" (parenthesized_expression "(ulonglong)" ( identifier )) (argument_list "((double)_DAT_000221d8 / dVar1)" ( (binary_expression "(double)_DAT_000221d8 / dVar1" (cast_expression "(double)_DAT_000221d8" ( (type_descriptor "double" primitive_type) ) identifier) / identifier) ))) >> number_literal) ))) , (call_expression "SUB84(dVar2,0)" identifier (argument_list "(dVar2,0)" ( identifier , number_literal ))) , (cast_expression "(int)((ulonglong)dVar2 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar2 >> 0x20)" ( (binary_expression "(ulonglong)dVar2 >> 0x20" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , identifier ))) ;) })) }))) (if_statement "if (DAT_0002e168 <= 0.0) {\n    pcVar9 = (char *)dcgettext("gprof"," no time accumulated\n\n",5);\n    printf(pcVar9);\n    DAT_0002e168 = 1.0;\n  }" if (parenthesized_expression "(DAT_0002e168 <= 0.0)" ( (binary_expression "DAT_0002e168 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n    pcVar9 = (char *)dcgettext("gprof"," no time accumulated\n\n",5);\n    printf(pcVar9);\n    DAT_0002e168 = 1.0;\n  }" { (expression_statement "pcVar9 = (char *)dcgettext("gprof"," no time accumulated\n\n",5);" (assignment_expression "pcVar9 = (char *)dcgettext("gprof"," no time accumulated\n\n",5)" identifier = (cast_expression "(char *)dcgettext("gprof"," no time accumulated\n\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext("gprof"," no time accumulated\n\n",5)" identifier (argument_list "("gprof"," no time accumulated\n\n",5)" ( (string_literal ""gprof"" " string_content ") , (string_literal "" no time accumulated\n\n"" " string_content escape_sequence escape_sequence ") , number_literal ))))) ;) (expression_statement "printf(pcVar9);" (call_expression "printf(pcVar9)" identifier (argument_list "(pcVar9)" ( identifier ))) ;) (expression_statement "DAT_0002e168 = 1.0;" (assignment_expression "DAT_0002e168 = 1.0" identifier = number_literal) ;) })) (expression_statement "uVar10 = dcgettext("gprof","total ",5);" (assignment_expression "uVar10 = dcgettext("gprof","total ",5)" identifier = (call_expression "dcgettext("gprof","total ",5)" identifier (argument_list "("gprof","total ",5)" ( (string_literal ""gprof"" " string_content ") , (string_literal ""total "" " string_content ") , number_literal )))) ;) (expression_statement "uVar11 = dcgettext("gprof","self  ",5);" (assignment_expression "uVar11 = dcgettext("gprof","self  ",5)" identifier = (call_expression "dcgettext("gprof","self  ",5)" identifier (argument_list "("gprof","self  ",5)" ( (string_literal ""gprof"" " string_content ") , (string_literal ""self  "" " string_content ") , number_literal )))) ;) (expression_statement "uVar12 = dcgettext("gprof","self  ",5);" (assignment_expression "uVar12 = dcgettext("gprof","self  ",5)" identifier = (call_expression "dcgettext("gprof","self  ",5)" identifier (argument_list "("gprof","self  ",5)" ( (string_literal ""gprof"" " string_content ") , (string_literal ""self  "" " string_content ") , number_literal )))) ;) (expression_statement "uVar13 = dcgettext("gprof","cumulative",5);" (assignment_expression "uVar13 = dcgettext("gprof","cumulative",5)" identifier = (call_expression "dcgettext("gprof","cumulative",5)" identifier (argument_list "("gprof","cumulative",5)" ( (string_literal ""gprof"" " string_content ") , (string_literal ""cumulative"" " string_content ") , number_literal )))) ;) (expression_statement "printf("%5.5s %10.10s %8.8s %8.8s %8.8s %8.8s  %-8.8s\n",&DAT_00023d2f,uVar13,uVar12,"",uVar11,\n         uVar10,"");" (call_expression "printf("%5.5s %10.10s %8.8s %8.8s %8.8s %8.8s  %-8.8s\n",&DAT_00023d2f,uVar13,uVar12,"",uVar11,\n         uVar10,"")" identifier (argument_list "("%5.5s %10.10s %8.8s %8.8s %8.8s %8.8s  %-8.8s\n",&DAT_00023d2f,uVar13,uVar12,"",uVar11,\n         uVar10,"")" ( (string_literal ""%5.5s %10.10s %8.8s %8.8s %8.8s %8.8s  %-8.8s\n"" " string_content escape_sequence ") , (pointer_expression "&DAT_00023d2f" & identifier) , identifier , identifier , (string_literal """" " ") , identifier , identifier , (string_literal """" " ") ))) ;) (expression_statement "uVar10 = dcgettext("gprof",&DAT_000229c1,5);" (assignment_expression "uVar10 = dcgettext("gprof",&DAT_000229c1,5)" identifier = (call_expression "dcgettext("gprof",&DAT_000229c1,5)" identifier (argument_list "("gprof",&DAT_000229c1,5)" ( (string_literal ""gprof"" " string_content ") , (pointer_expression "&DAT_000229c1" & identifier) , number_literal )))) ;) (expression_statement "uVar11 = dcgettext("gprof","calls",5);" (assignment_expression "uVar11 = dcgettext("gprof","calls",5)" identifier = (call_expression "dcgettext("gprof","calls",5)" identifier (argument_list "("gprof","calls",5)" ( (string_literal ""gprof"" " string_content ") , (string_literal ""calls"" " string_content ") , number_literal )))) ;) (expression_statement "uVar12 = dcgettext("gprof",&DAT_000229d8,5);" (assignment_expression "uVar12 = dcgettext("gprof",&DAT_000229d8,5)" identifier = (call_expression "dcgettext("gprof",&DAT_000229d8,5)" identifier (argument_list "("gprof",&DAT_000229d8,5)" ( (string_literal ""gprof"" " string_content ") , (pointer_expression "&DAT_000229d8" & identifier) , number_literal )))) ;) (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;) (expression_statement "printf("%5.5s %9.9s  %8.8s %8.8s %8.8s %8.8s  %-8.8s\n",uVar12,s_seconds_0002d4a8,\n         s_seconds_0002d4a8,uVar11,local_5c,local_5c,uVar10);" (call_expression "printf("%5.5s %9.9s  %8.8s %8.8s %8.8s %8.8s  %-8.8s\n",uVar12,s_seconds_0002d4a8,\n         s_seconds_0002d4a8,uVar11,local_5c,local_5c,uVar10)" identifier (argument_list "("%5.5s %9.9s  %8.8s %8.8s %8.8s %8.8s  %-8.8s\n",uVar12,s_seconds_0002d4a8,\n         s_seconds_0002d4a8,uVar11,local_5c,local_5c,uVar10)" ( (string_literal ""%5.5s %9.9s  %8.8s %8.8s %8.8s %8.8s  %-8.8s\n"" " string_content escape_sequence ") , identifier , identifier , identifier , identifier , identifier , identifier , identifier ))) ;) (if_statement "if (DAT_0002e520 != 0) {\n    do {\n      while( true ) {\n        uVar10 = *(undefined4 *)__base[uVar17];\n        uVar11 = ((undefined4 *)__base[uVar17])[1];\n        iVar14 = FUN_0001d480(&DAT_0002e570,uVar10,uVar11);\n        if (iVar14 == 0) break;\nLAB_0001bc00:\n        dVar1 = *(double *)(&UNK_00023da4 + local_84 * 0xc);\n        iVar14 = __base[uVar17];\n        dVar2 = *(double *)(iVar14 + 0xa8);\n        if (((DAT_0002d1c0 == 0) || (*(int *)(iVar14 + 0x20) != 0)) || (dVar2 != 0.0)) {\n          DAT_0002e170 = DAT_0002e170 + dVar2;\n          dVar5 = dVar2 / (double)DAT_0002e15c;\n          dVar6 = DAT_0002e170 / (double)DAT_0002e15c;\n          uVar12 = SUB84(dVar5,0);\n          uVar13 = (undefined4)((ulonglong)dVar5 >> 0x20);\n          uVar10 = SUB84(dVar6,0);\n          uVar11 = (undefined4)((ulonglong)dVar6 >> 0x20);\n          if (DAT_0002e150 == 0) {\n            if (DAT_0002e168 <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;\n            }\n            printf("%6.2f %9.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11,\n                   uVar12,uVar13);\n          }\n          else {\n            if (DAT_0002e168 <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;\n            }\n            printf("%5.1f %10.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11\n                   ,uVar12,uVar13);\n          }\n          uVar3 = *(uint *)(iVar14 + 0x20);\n          if (uVar3 == 0) {\n            printf(" %8.8s %8.8s %8.8s  ","","","");\n          }\n          else {\n            dVar2 = (((*(double *)(iVar14 + 0xbc) + *(double *)(iVar14 + 0xa8)) * dVar1) /\n                    (double)DAT_0002e15c) / (double)uVar3;\n            dVar1 = ((dVar1 * *(double *)(iVar14 + 0xa8)) / (double)DAT_0002e15c) / (double)uVar3;\n            printf(" %8lu %8.2f %8.2f  ",uVar3,SUB84(dVar1,0),(int)((ulonglong)dVar1 >> 0x20),\n                   SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar13);\n          }\n          if (DAT_0002e150 == 0) {\n            FUN_0001df00(iVar14);\n          }\n          else {\n            FUN_0001e170(iVar14);\n          }\n          putchar(10);\n        }\nLAB_0001bd38:\n        uVar17 = uVar17 + 1;\n        if (DAT_0002e520 <= uVar17) goto LAB_0001bda0;\n      }\n      if (DAT_0002e570 != 0) goto LAB_0001bd38;\n      iVar14 = FUN_0001d480(&DAT_0002e57c,uVar10,uVar11);\n      if (iVar14 == 0) goto LAB_0001bc00;\n      uVar17 = uVar17 + 1;\n    } while (uVar17 < DAT_0002e520);\n  }" if (parenthesized_expression "(DAT_0002e520 != 0)" ( (binary_expression "DAT_0002e520 != 0" identifier != number_literal) )) (compound_statement "{\n    do {\n      while( true ) {\n        uVar10 = *(undefined4 *)__base[uVar17];\n        uVar11 = ((undefined4 *)__base[uVar17])[1];\n        iVar14 = FUN_0001d480(&DAT_0002e570,uVar10,uVar11);\n        if (iVar14 == 0) break;\nLAB_0001bc00:\n        dVar1 = *(double *)(&UNK_00023da4 + local_84 * 0xc);\n        iVar14 = __base[uVar17];\n        dVar2 = *(double *)(iVar14 + 0xa8);\n        if (((DAT_0002d1c0 == 0) || (*(int *)(iVar14 + 0x20) != 0)) || (dVar2 != 0.0)) {\n          DAT_0002e170 = DAT_0002e170 + dVar2;\n          dVar5 = dVar2 / (double)DAT_0002e15c;\n          dVar6 = DAT_0002e170 / (double)DAT_0002e15c;\n          uVar12 = SUB84(dVar5,0);\n          uVar13 = (undefined4)((ulonglong)dVar5 >> 0x20);\n          uVar10 = SUB84(dVar6,0);\n          uVar11 = (undefined4)((ulonglong)dVar6 >> 0x20);\n          if (DAT_0002e150 == 0) {\n            if (DAT_0002e168 <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;\n            }\n            printf("%6.2f %9.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11,\n                   uVar12,uVar13);\n          }\n          else {\n            if (DAT_0002e168 <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;\n            }\n            printf("%5.1f %10.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11\n                   ,uVar12,uVar13);\n          }\n          uVar3 = *(uint *)(iVar14 + 0x20);\n          if (uVar3 == 0) {\n            printf(" %8.8s %8.8s %8.8s  ","","","");\n          }\n          else {\n            dVar2 = (((*(double *)(iVar14 + 0xbc) + *(double *)(iVar14 + 0xa8)) * dVar1) /\n                    (double)DAT_0002e15c) / (double)uVar3;\n            dVar1 = ((dVar1 * *(double *)(iVar14 + 0xa8)) / (double)DAT_0002e15c) / (double)uVar3;\n            printf(" %8lu %8.2f %8.2f  ",uVar3,SUB84(dVar1,0),(int)((ulonglong)dVar1 >> 0x20),\n                   SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar13);\n          }\n          if (DAT_0002e150 == 0) {\n            FUN_0001df00(iVar14);\n          }\n          else {\n            FUN_0001e170(iVar14);\n          }\n          putchar(10);\n        }\nLAB_0001bd38:\n        uVar17 = uVar17 + 1;\n        if (DAT_0002e520 <= uVar17) goto LAB_0001bda0;\n      }\n      if (DAT_0002e570 != 0) goto LAB_0001bd38;\n      iVar14 = FUN_0001d480(&DAT_0002e57c,uVar10,uVar11);\n      if (iVar14 == 0) goto LAB_0001bc00;\n      uVar17 = uVar17 + 1;\n    } while (uVar17 < DAT_0002e520);\n  }" { (do_statement "do {\n      while( true ) {\n        uVar10 = *(undefined4 *)__base[uVar17];\n        uVar11 = ((undefined4 *)__base[uVar17])[1];\n        iVar14 = FUN_0001d480(&DAT_0002e570,uVar10,uVar11);\n        if (iVar14 == 0) break;\nLAB_0001bc00:\n        dVar1 = *(double *)(&UNK_00023da4 + local_84 * 0xc);\n        iVar14 = __base[uVar17];\n        dVar2 = *(double *)(iVar14 + 0xa8);\n        if (((DAT_0002d1c0 == 0) || (*(int *)(iVar14 + 0x20) != 0)) || (dVar2 != 0.0)) {\n          DAT_0002e170 = DAT_0002e170 + dVar2;\n          dVar5 = dVar2 / (double)DAT_0002e15c;\n          dVar6 = DAT_0002e170 / (double)DAT_0002e15c;\n          uVar12 = SUB84(dVar5,0);\n          uVar13 = (undefined4)((ulonglong)dVar5 >> 0x20);\n          uVar10 = SUB84(dVar6,0);\n          uVar11 = (undefined4)((ulonglong)dVar6 >> 0x20);\n          if (DAT_0002e150 == 0) {\n            if (DAT_0002e168 <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;\n            }\n            printf("%6.2f %9.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11,\n                   uVar12,uVar13);\n          }\n          else {\n            if (DAT_0002e168 <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;\n            }\n            printf("%5.1f %10.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11\n                   ,uVar12,uVar13);\n          }\n          uVar3 = *(uint *)(iVar14 + 0x20);\n          if (uVar3 == 0) {\n            printf(" %8.8s %8.8s %8.8s  ","","","");\n          }\n          else {\n            dVar2 = (((*(double *)(iVar14 + 0xbc) + *(double *)(iVar14 + 0xa8)) * dVar1) /\n                    (double)DAT_0002e15c) / (double)uVar3;\n            dVar1 = ((dVar1 * *(double *)(iVar14 + 0xa8)) / (double)DAT_0002e15c) / (double)uVar3;\n            printf(" %8lu %8.2f %8.2f  ",uVar3,SUB84(dVar1,0),(int)((ulonglong)dVar1 >> 0x20),\n                   SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar13);\n          }\n          if (DAT_0002e150 == 0) {\n            FUN_0001df00(iVar14);\n          }\n          else {\n            FUN_0001e170(iVar14);\n          }\n          putchar(10);\n        }\nLAB_0001bd38:\n        uVar17 = uVar17 + 1;\n        if (DAT_0002e520 <= uVar17) goto LAB_0001bda0;\n      }\n      if (DAT_0002e570 != 0) goto LAB_0001bd38;\n      iVar14 = FUN_0001d480(&DAT_0002e57c,uVar10,uVar11);\n      if (iVar14 == 0) goto LAB_0001bc00;\n      uVar17 = uVar17 + 1;\n    } while (uVar17 < DAT_0002e520);" do (compound_statement "{\n      while( true ) {\n        uVar10 = *(undefined4 *)__base[uVar17];\n        uVar11 = ((undefined4 *)__base[uVar17])[1];\n        iVar14 = FUN_0001d480(&DAT_0002e570,uVar10,uVar11);\n        if (iVar14 == 0) break;\nLAB_0001bc00:\n        dVar1 = *(double *)(&UNK_00023da4 + local_84 * 0xc);\n        iVar14 = __base[uVar17];\n        dVar2 = *(double *)(iVar14 + 0xa8);\n        if (((DAT_0002d1c0 == 0) || (*(int *)(iVar14 + 0x20) != 0)) || (dVar2 != 0.0)) {\n          DAT_0002e170 = DAT_0002e170 + dVar2;\n          dVar5 = dVar2 / (double)DAT_0002e15c;\n          dVar6 = DAT_0002e170 / (double)DAT_0002e15c;\n          uVar12 = SUB84(dVar5,0);\n          uVar13 = (undefined4)((ulonglong)dVar5 >> 0x20);\n          uVar10 = SUB84(dVar6,0);\n          uVar11 = (undefined4)((ulonglong)dVar6 >> 0x20);\n          if (DAT_0002e150 == 0) {\n            if (DAT_0002e168 <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;\n            }\n            printf("%6.2f %9.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11,\n                   uVar12,uVar13);\n          }\n          else {\n            if (DAT_0002e168 <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;\n            }\n            printf("%5.1f %10.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11\n                   ,uVar12,uVar13);\n          }\n          uVar3 = *(uint *)(iVar14 + 0x20);\n          if (uVar3 == 0) {\n            printf(" %8.8s %8.8s %8.8s  ","","","");\n          }\n          else {\n            dVar2 = (((*(double *)(iVar14 + 0xbc) + *(double *)(iVar14 + 0xa8)) * dVar1) /\n                    (double)DAT_0002e15c) / (double)uVar3;\n            dVar1 = ((dVar1 * *(double *)(iVar14 + 0xa8)) / (double)DAT_0002e15c) / (double)uVar3;\n            printf(" %8lu %8.2f %8.2f  ",uVar3,SUB84(dVar1,0),(int)((ulonglong)dVar1 >> 0x20),\n                   SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar13);\n          }\n          if (DAT_0002e150 == 0) {\n            FUN_0001df00(iVar14);\n          }\n          else {\n            FUN_0001e170(iVar14);\n          }\n          putchar(10);\n        }\nLAB_0001bd38:\n        uVar17 = uVar17 + 1;\n        if (DAT_0002e520 <= uVar17) goto LAB_0001bda0;\n      }\n      if (DAT_0002e570 != 0) goto LAB_0001bd38;\n      iVar14 = FUN_0001d480(&DAT_0002e57c,uVar10,uVar11);\n      if (iVar14 == 0) goto LAB_0001bc00;\n      uVar17 = uVar17 + 1;\n    }" { (while_statement "while( true ) {\n        uVar10 = *(undefined4 *)__base[uVar17];\n        uVar11 = ((undefined4 *)__base[uVar17])[1];\n        iVar14 = FUN_0001d480(&DAT_0002e570,uVar10,uVar11);\n        if (iVar14 == 0) break;\nLAB_0001bc00:\n        dVar1 = *(double *)(&UNK_00023da4 + local_84 * 0xc);\n        iVar14 = __base[uVar17];\n        dVar2 = *(double *)(iVar14 + 0xa8);\n        if (((DAT_0002d1c0 == 0) || (*(int *)(iVar14 + 0x20) != 0)) || (dVar2 != 0.0)) {\n          DAT_0002e170 = DAT_0002e170 + dVar2;\n          dVar5 = dVar2 / (double)DAT_0002e15c;\n          dVar6 = DAT_0002e170 / (double)DAT_0002e15c;\n          uVar12 = SUB84(dVar5,0);\n          uVar13 = (undefined4)((ulonglong)dVar5 >> 0x20);\n          uVar10 = SUB84(dVar6,0);\n          uVar11 = (undefined4)((ulonglong)dVar6 >> 0x20);\n          if (DAT_0002e150 == 0) {\n            if (DAT_0002e168 <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;\n            }\n            printf("%6.2f %9.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11,\n                   uVar12,uVar13);\n          }\n          else {\n            if (DAT_0002e168 <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;\n            }\n            printf("%5.1f %10.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11\n                   ,uVar12,uVar13);\n          }\n          uVar3 = *(uint *)(iVar14 + 0x20);\n          if (uVar3 == 0) {\n            printf(" %8.8s %8.8s %8.8s  ","","","");\n          }\n          else {\n            dVar2 = (((*(double *)(iVar14 + 0xbc) + *(double *)(iVar14 + 0xa8)) * dVar1) /\n                    (double)DAT_0002e15c) / (double)uVar3;\n            dVar1 = ((dVar1 * *(double *)(iVar14 + 0xa8)) / (double)DAT_0002e15c) / (double)uVar3;\n            printf(" %8lu %8.2f %8.2f  ",uVar3,SUB84(dVar1,0),(int)((ulonglong)dVar1 >> 0x20),\n                   SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar13);\n          }\n          if (DAT_0002e150 == 0) {\n            FUN_0001df00(iVar14);\n          }\n          else {\n            FUN_0001e170(iVar14);\n          }\n          putchar(10);\n        }\nLAB_0001bd38:\n        uVar17 = uVar17 + 1;\n        if (DAT_0002e520 <= uVar17) goto LAB_0001bda0;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        uVar10 = *(undefined4 *)__base[uVar17];\n        uVar11 = ((undefined4 *)__base[uVar17])[1];\n        iVar14 = FUN_0001d480(&DAT_0002e570,uVar10,uVar11);\n        if (iVar14 == 0) break;\nLAB_0001bc00:\n        dVar1 = *(double *)(&UNK_00023da4 + local_84 * 0xc);\n        iVar14 = __base[uVar17];\n        dVar2 = *(double *)(iVar14 + 0xa8);\n        if (((DAT_0002d1c0 == 0) || (*(int *)(iVar14 + 0x20) != 0)) || (dVar2 != 0.0)) {\n          DAT_0002e170 = DAT_0002e170 + dVar2;\n          dVar5 = dVar2 / (double)DAT_0002e15c;\n          dVar6 = DAT_0002e170 / (double)DAT_0002e15c;\n          uVar12 = SUB84(dVar5,0);\n          uVar13 = (undefined4)((ulonglong)dVar5 >> 0x20);\n          uVar10 = SUB84(dVar6,0);\n          uVar11 = (undefined4)((ulonglong)dVar6 >> 0x20);\n          if (DAT_0002e150 == 0) {\n            if (DAT_0002e168 <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;\n            }\n            printf("%6.2f %9.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11,\n                   uVar12,uVar13);\n          }\n          else {\n            if (DAT_0002e168 <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;\n            }\n            printf("%5.1f %10.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11\n                   ,uVar12,uVar13);\n          }\n          uVar3 = *(uint *)(iVar14 + 0x20);\n          if (uVar3 == 0) {\n            printf(" %8.8s %8.8s %8.8s  ","","","");\n          }\n          else {\n            dVar2 = (((*(double *)(iVar14 + 0xbc) + *(double *)(iVar14 + 0xa8)) * dVar1) /\n                    (double)DAT_0002e15c) / (double)uVar3;\n            dVar1 = ((dVar1 * *(double *)(iVar14 + 0xa8)) / (double)DAT_0002e15c) / (double)uVar3;\n            printf(" %8lu %8.2f %8.2f  ",uVar3,SUB84(dVar1,0),(int)((ulonglong)dVar1 >> 0x20),\n                   SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar13);\n          }\n          if (DAT_0002e150 == 0) {\n            FUN_0001df00(iVar14);\n          }\n          else {\n            FUN_0001e170(iVar14);\n          }\n          putchar(10);\n        }\nLAB_0001bd38:\n        uVar17 = uVar17 + 1;\n        if (DAT_0002e520 <= uVar17) goto LAB_0001bda0;\n      }" { (expression_statement "uVar10 = *(undefined4 *)__base[uVar17];" (assignment_expression "uVar10 = *(undefined4 *)__base[uVar17]" identifier = (pointer_expression "*(undefined4 *)__base[uVar17]" * (cast_expression "(undefined4 *)__base[uVar17]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "__base[uVar17]" identifier [ identifier ])))) ;) (expression_statement "uVar11 = ((undefined4 *)__base[uVar17])[1];" (assignment_expression "uVar11 = ((undefined4 *)__base[uVar17])[1]" identifier = (subscript_expression "((undefined4 *)__base[uVar17])[1]" (parenthesized_expression "((undefined4 *)__base[uVar17])" ( (cast_expression "(undefined4 *)__base[uVar17]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "__base[uVar17]" identifier [ identifier ])) )) [ number_literal ])) ;) (expression_statement "iVar14 = FUN_0001d480(&DAT_0002e570,uVar10,uVar11);" (assignment_expression "iVar14 = FUN_0001d480(&DAT_0002e570,uVar10,uVar11)" identifier = (call_expression "FUN_0001d480(&DAT_0002e570,uVar10,uVar11)" identifier (argument_list "(&DAT_0002e570,uVar10,uVar11)" ( (pointer_expression "&DAT_0002e570" & identifier) , identifier , identifier )))) ;) (if_statement "if (iVar14 == 0) break;" if (parenthesized_expression "(iVar14 == 0)" ( (binary_expression "iVar14 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (labeled_statement "LAB_0001bc00:\n        dVar1 = *(double *)(&UNK_00023da4 + local_84 * 0xc);" statement_identifier : (expression_statement "dVar1 = *(double *)(&UNK_00023da4 + local_84 * 0xc);" (assignment_expression "dVar1 = *(double *)(&UNK_00023da4 + local_84 * 0xc)" identifier = (pointer_expression "*(double *)(&UNK_00023da4 + local_84 * 0xc)" * (cast_expression "(double *)(&UNK_00023da4 + local_84 * 0xc)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&UNK_00023da4 + local_84 * 0xc)" ( (binary_expression "&UNK_00023da4 + local_84 * 0xc" (pointer_expression "&UNK_00023da4" & identifier) + (binary_expression "local_84 * 0xc" identifier * number_literal)) ))))) ;)) (expression_statement "iVar14 = __base[uVar17];" (assignment_expression "iVar14 = __base[uVar17]" identifier = (subscript_expression "__base[uVar17]" identifier [ identifier ])) ;) (expression_statement "dVar2 = *(double *)(iVar14 + 0xa8);" (assignment_expression "dVar2 = *(double *)(iVar14 + 0xa8)" identifier = (pointer_expression "*(double *)(iVar14 + 0xa8)" * (cast_expression "(double *)(iVar14 + 0xa8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xa8)" ( (binary_expression "iVar14 + 0xa8" identifier + number_literal) ))))) ;) (if_statement "if (((DAT_0002d1c0 == 0) || (*(int *)(iVar14 + 0x20) != 0)) || (dVar2 != 0.0)) {\n          DAT_0002e170 = DAT_0002e170 + dVar2;\n          dVar5 = dVar2 / (double)DAT_0002e15c;\n          dVar6 = DAT_0002e170 / (double)DAT_0002e15c;\n          uVar12 = SUB84(dVar5,0);\n          uVar13 = (undefined4)((ulonglong)dVar5 >> 0x20);\n          uVar10 = SUB84(dVar6,0);\n          uVar11 = (undefined4)((ulonglong)dVar6 >> 0x20);\n          if (DAT_0002e150 == 0) {\n            if (DAT_0002e168 <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;\n            }\n            printf("%6.2f %9.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11,\n                   uVar12,uVar13);\n          }\n          else {\n            if (DAT_0002e168 <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;\n            }\n            printf("%5.1f %10.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11\n                   ,uVar12,uVar13);\n          }\n          uVar3 = *(uint *)(iVar14 + 0x20);\n          if (uVar3 == 0) {\n            printf(" %8.8s %8.8s %8.8s  ","","","");\n          }\n          else {\n            dVar2 = (((*(double *)(iVar14 + 0xbc) + *(double *)(iVar14 + 0xa8)) * dVar1) /\n                    (double)DAT_0002e15c) / (double)uVar3;\n            dVar1 = ((dVar1 * *(double *)(iVar14 + 0xa8)) / (double)DAT_0002e15c) / (double)uVar3;\n            printf(" %8lu %8.2f %8.2f  ",uVar3,SUB84(dVar1,0),(int)((ulonglong)dVar1 >> 0x20),\n                   SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar13);\n          }\n          if (DAT_0002e150 == 0) {\n            FUN_0001df00(iVar14);\n          }\n          else {\n            FUN_0001e170(iVar14);\n          }\n          putchar(10);\n        }" if (parenthesized_expression "(((DAT_0002d1c0 == 0) || (*(int *)(iVar14 + 0x20) != 0)) || (dVar2 != 0.0))" ( (binary_expression "((DAT_0002d1c0 == 0) || (*(int *)(iVar14 + 0x20) != 0)) || (dVar2 != 0.0)" (parenthesized_expression "((DAT_0002d1c0 == 0) || (*(int *)(iVar14 + 0x20) != 0))" ( (binary_expression "(DAT_0002d1c0 == 0) || (*(int *)(iVar14 + 0x20) != 0)" (parenthesized_expression "(DAT_0002d1c0 == 0)" ( (binary_expression "DAT_0002d1c0 == 0" identifier == number_literal) )) || (parenthesized_expression "(*(int *)(iVar14 + 0x20) != 0)" ( (binary_expression "*(int *)(iVar14 + 0x20) != 0" (pointer_expression "*(int *)(iVar14 + 0x20)" * (cast_expression "(int *)(iVar14 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x20)" ( (binary_expression "iVar14 + 0x20" identifier + number_literal) )))) != number_literal) ))) )) || (parenthesized_expression "(dVar2 != 0.0)" ( (binary_expression "dVar2 != 0.0" identifier != number_literal) ))) )) (compound_statement "{\n          DAT_0002e170 = DAT_0002e170 + dVar2;\n          dVar5 = dVar2 / (double)DAT_0002e15c;\n          dVar6 = DAT_0002e170 / (double)DAT_0002e15c;\n          uVar12 = SUB84(dVar5,0);\n          uVar13 = (undefined4)((ulonglong)dVar5 >> 0x20);\n          uVar10 = SUB84(dVar6,0);\n          uVar11 = (undefined4)((ulonglong)dVar6 >> 0x20);\n          if (DAT_0002e150 == 0) {\n            if (DAT_0002e168 <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;\n            }\n            printf("%6.2f %9.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11,\n                   uVar12,uVar13);\n          }\n          else {\n            if (DAT_0002e168 <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;\n            }\n            printf("%5.1f %10.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11\n                   ,uVar12,uVar13);\n          }\n          uVar3 = *(uint *)(iVar14 + 0x20);\n          if (uVar3 == 0) {\n            printf(" %8.8s %8.8s %8.8s  ","","","");\n          }\n          else {\n            dVar2 = (((*(double *)(iVar14 + 0xbc) + *(double *)(iVar14 + 0xa8)) * dVar1) /\n                    (double)DAT_0002e15c) / (double)uVar3;\n            dVar1 = ((dVar1 * *(double *)(iVar14 + 0xa8)) / (double)DAT_0002e15c) / (double)uVar3;\n            printf(" %8lu %8.2f %8.2f  ",uVar3,SUB84(dVar1,0),(int)((ulonglong)dVar1 >> 0x20),\n                   SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar13);\n          }\n          if (DAT_0002e150 == 0) {\n            FUN_0001df00(iVar14);\n          }\n          else {\n            FUN_0001e170(iVar14);\n          }\n          putchar(10);\n        }" { (expression_statement "DAT_0002e170 = DAT_0002e170 + dVar2;" (assignment_expression "DAT_0002e170 = DAT_0002e170 + dVar2" identifier = (binary_expression "DAT_0002e170 + dVar2" identifier + identifier)) ;) (expression_statement "dVar5 = dVar2 / (double)DAT_0002e15c;" (assignment_expression "dVar5 = dVar2 / (double)DAT_0002e15c" identifier = (binary_expression "dVar2 / (double)DAT_0002e15c" identifier / (cast_expression "(double)DAT_0002e15c" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (expression_statement "dVar6 = DAT_0002e170 / (double)DAT_0002e15c;" (assignment_expression "dVar6 = DAT_0002e170 / (double)DAT_0002e15c" identifier = (binary_expression "DAT_0002e170 / (double)DAT_0002e15c" identifier / (cast_expression "(double)DAT_0002e15c" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (expression_statement "uVar12 = SUB84(dVar5,0);" (assignment_expression "uVar12 = SUB84(dVar5,0)" identifier = (call_expression "SUB84(dVar5,0)" identifier (argument_list "(dVar5,0)" ( identifier , number_literal )))) ;) (expression_statement "uVar13 = (undefined4)((ulonglong)dVar5 >> 0x20);" (assignment_expression "uVar13 = (undefined4)((ulonglong)dVar5 >> 0x20)" identifier = (call_expression "(undefined4)((ulonglong)dVar5 >> 0x20)" (parenthesized_expression "(undefined4)" ( identifier )) (argument_list "((ulonglong)dVar5 >> 0x20)" ( (binary_expression "(ulonglong)dVar5 >> 0x20" (cast_expression "(ulonglong)dVar5" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar10 = SUB84(dVar6,0);" (assignment_expression "uVar10 = SUB84(dVar6,0)" identifier = (call_expression "SUB84(dVar6,0)" identifier (argument_list "(dVar6,0)" ( identifier , number_literal )))) ;) (expression_statement "uVar11 = (undefined4)((ulonglong)dVar6 >> 0x20);" (assignment_expression "uVar11 = (undefined4)((ulonglong)dVar6 >> 0x20)" identifier = (call_expression "(undefined4)((ulonglong)dVar6 >> 0x20)" (parenthesized_expression "(undefined4)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 0x20)" ( (binary_expression "(ulonglong)dVar6 >> 0x20" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (DAT_0002e150 == 0) {\n            if (DAT_0002e168 <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;\n            }\n            printf("%6.2f %9.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11,\n                   uVar12,uVar13);\n          }\n          else {\n            if (DAT_0002e168 <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;\n            }\n            printf("%5.1f %10.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11\n                   ,uVar12,uVar13);\n          }" if (parenthesized_expression "(DAT_0002e150 == 0)" ( (binary_expression "DAT_0002e150 == 0" identifier == number_literal) )) (compound_statement "{\n            if (DAT_0002e168 <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;\n            }\n            printf("%6.2f %9.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11,\n                   uVar12,uVar13);\n          }" { (if_statement "if (DAT_0002e168 <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;\n            }" if (parenthesized_expression "(DAT_0002e168 <= 0.0)" ( (binary_expression "DAT_0002e168 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n              dVar2 = 0.0;\n            }" { (expression_statement "dVar2 = 0.0;" (assignment_expression "dVar2 = 0.0" identifier = number_literal) ;) }) (else_clause "else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;\n            }" else (compound_statement "{\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;\n            }" { (expression_statement "dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;" (assignment_expression "dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168" identifier = (binary_expression "(dVar2 * (double)_DAT_000221d8) / DAT_0002e168" (parenthesized_expression "(dVar2 * (double)_DAT_000221d8)" ( (binary_expression "dVar2 * (double)_DAT_000221d8" identifier * (cast_expression "(double)_DAT_000221d8" ( (type_descriptor "double" primitive_type) ) identifier)) )) / identifier)) ;) }))) (expression_statement "printf("%6.2f %9.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11,\n                   uVar12,uVar13);" (call_expression "printf("%6.2f %9.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11,\n                   uVar12,uVar13)" identifier (argument_list "("%6.2f %9.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11,\n                   uVar12,uVar13)" ( (string_literal ""%6.2f %9.2f %8.2f"" " string_content ") , (call_expression "SUB84(dVar2,0)" identifier (argument_list "(dVar2,0)" ( identifier , number_literal ))) , (cast_expression "(int)((ulonglong)dVar2 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar2 >> 0x20)" ( (binary_expression "(ulonglong)dVar2 >> 0x20" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , identifier , identifier , identifier , identifier ))) ;) }) (else_clause "else {\n            if (DAT_0002e168 <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;\n            }\n            printf("%5.1f %10.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11\n                   ,uVar12,uVar13);\n          }" else (compound_statement "{\n            if (DAT_0002e168 <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;\n            }\n            printf("%5.1f %10.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11\n                   ,uVar12,uVar13);\n          }" { (if_statement "if (DAT_0002e168 <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;\n            }" if (parenthesized_expression "(DAT_0002e168 <= 0.0)" ( (binary_expression "DAT_0002e168 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n              dVar2 = 0.0;\n            }" { (expression_statement "dVar2 = 0.0;" (assignment_expression "dVar2 = 0.0" identifier = number_literal) ;) }) (else_clause "else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;\n            }" else (compound_statement "{\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;\n            }" { (expression_statement "dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;" (assignment_expression "dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168" identifier = (binary_expression "(dVar2 * (double)_DAT_000221d8) / DAT_0002e168" (parenthesized_expression "(dVar2 * (double)_DAT_000221d8)" ( (binary_expression "dVar2 * (double)_DAT_000221d8" identifier * (cast_expression "(double)_DAT_000221d8" ( (type_descriptor "double" primitive_type) ) identifier)) )) / identifier)) ;) }))) (expression_statement "printf("%5.1f %10.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11\n                   ,uVar12,uVar13);" (call_expression "printf("%5.1f %10.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11\n                   ,uVar12,uVar13)" identifier (argument_list "("%5.1f %10.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11\n                   ,uVar12,uVar13)" ( (string_literal ""%5.1f %10.2f %8.2f"" " string_content ") , (call_expression "SUB84(dVar2,0)" identifier (argument_list "(dVar2,0)" ( identifier , number_literal ))) , (cast_expression "(int)((ulonglong)dVar2 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar2 >> 0x20)" ( (binary_expression "(ulonglong)dVar2 >> 0x20" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , identifier , identifier , identifier , identifier ))) ;) }))) (expression_statement "uVar3 = *(uint *)(iVar14 + 0x20);" (assignment_expression "uVar3 = *(uint *)(iVar14 + 0x20)" identifier = (pointer_expression "*(uint *)(iVar14 + 0x20)" * (cast_expression "(uint *)(iVar14 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x20)" ( (binary_expression "iVar14 + 0x20" identifier + number_literal) ))))) ;) (if_statement "if (uVar3 == 0) {\n            printf(" %8.8s %8.8s %8.8s  ","","","");\n          }\n          else {\n            dVar2 = (((*(double *)(iVar14 + 0xbc) + *(double *)(iVar14 + 0xa8)) * dVar1) /\n                    (double)DAT_0002e15c) / (double)uVar3;\n            dVar1 = ((dVar1 * *(double *)(iVar14 + 0xa8)) / (double)DAT_0002e15c) / (double)uVar3;\n            printf(" %8lu %8.2f %8.2f  ",uVar3,SUB84(dVar1,0),(int)((ulonglong)dVar1 >> 0x20),\n                   SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar13);\n          }" if (parenthesized_expression "(uVar3 == 0)" ( (binary_expression "uVar3 == 0" identifier == number_literal) )) (compound_statement "{\n            printf(" %8.8s %8.8s %8.8s  ","","","");\n          }" { (expression_statement "printf(" %8.8s %8.8s %8.8s  ","","","");" (call_expression "printf(" %8.8s %8.8s %8.8s  ","","","")" identifier (argument_list "(" %8.8s %8.8s %8.8s  ","","","")" ( (string_literal "" %8.8s %8.8s %8.8s  "" " string_content ") , (string_literal """" " ") , (string_literal """" " ") , (string_literal """" " ") ))) ;) }) (else_clause "else {\n            dVar2 = (((*(double *)(iVar14 + 0xbc) + *(double *)(iVar14 + 0xa8)) * dVar1) /\n                    (double)DAT_0002e15c) / (double)uVar3;\n            dVar1 = ((dVar1 * *(double *)(iVar14 + 0xa8)) / (double)DAT_0002e15c) / (double)uVar3;\n            printf(" %8lu %8.2f %8.2f  ",uVar3,SUB84(dVar1,0),(int)((ulonglong)dVar1 >> 0x20),\n                   SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar13);\n          }" else (compound_statement "{\n            dVar2 = (((*(double *)(iVar14 + 0xbc) + *(double *)(iVar14 + 0xa8)) * dVar1) /\n                    (double)DAT_0002e15c) / (double)uVar3;\n            dVar1 = ((dVar1 * *(double *)(iVar14 + 0xa8)) / (double)DAT_0002e15c) / (double)uVar3;\n            printf(" %8lu %8.2f %8.2f  ",uVar3,SUB84(dVar1,0),(int)((ulonglong)dVar1 >> 0x20),\n                   SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar13);\n          }" { (expression_statement "dVar2 = (((*(double *)(iVar14 + 0xbc) + *(double *)(iVar14 + 0xa8)) * dVar1) /\n                    (double)DAT_0002e15c) / (double)uVar3;" (assignment_expression "dVar2 = (((*(double *)(iVar14 + 0xbc) + *(double *)(iVar14 + 0xa8)) * dVar1) /\n                    (double)DAT_0002e15c) / (double)uVar3" identifier = (binary_expression "(((*(double *)(iVar14 + 0xbc) + *(double *)(iVar14 + 0xa8)) * dVar1) /\n                    (double)DAT_0002e15c) / (double)uVar3" (parenthesized_expression "(((*(double *)(iVar14 + 0xbc) + *(double *)(iVar14 + 0xa8)) * dVar1) /\n                    (double)DAT_0002e15c)" ( (binary_expression "((*(double *)(iVar14 + 0xbc) + *(double *)(iVar14 + 0xa8)) * dVar1) /\n                    (double)DAT_0002e15c" (parenthesized_expression "((*(double *)(iVar14 + 0xbc) + *(double *)(iVar14 + 0xa8)) * dVar1)" ( (binary_expression "(*(double *)(iVar14 + 0xbc) + *(double *)(iVar14 + 0xa8)) * dVar1" (parenthesized_expression "(*(double *)(iVar14 + 0xbc) + *(double *)(iVar14 + 0xa8))" ( (binary_expression "*(double *)(iVar14 + 0xbc) + *(double *)(iVar14 + 0xa8)" (pointer_expression "*(double *)(iVar14 + 0xbc)" * (cast_expression "(double *)(iVar14 + 0xbc)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xbc)" ( (binary_expression "iVar14 + 0xbc" identifier + number_literal) )))) + (pointer_expression "*(double *)(iVar14 + 0xa8)" * (cast_expression "(double *)(iVar14 + 0xa8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xa8)" ( (binary_expression "iVar14 + 0xa8" identifier + number_literal) ))))) )) * identifier) )) / (cast_expression "(double)DAT_0002e15c" ( (type_descriptor "double" primitive_type) ) identifier)) )) / (cast_expression "(double)uVar3" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (expression_statement "dVar1 = ((dVar1 * *(double *)(iVar14 + 0xa8)) / (double)DAT_0002e15c) / (double)uVar3;" (assignment_expression "dVar1 = ((dVar1 * *(double *)(iVar14 + 0xa8)) / (double)DAT_0002e15c) / (double)uVar3" identifier = (binary_expression "((dVar1 * *(double *)(iVar14 + 0xa8)) / (double)DAT_0002e15c) / (double)uVar3" (parenthesized_expression "((dVar1 * *(double *)(iVar14 + 0xa8)) / (double)DAT_0002e15c)" ( (binary_expression "(dVar1 * *(double *)(iVar14 + 0xa8)) / (double)DAT_0002e15c" (parenthesized_expression "(dVar1 * *(double *)(iVar14 + 0xa8))" ( (binary_expression "dVar1 * *(double *)(iVar14 + 0xa8)" identifier * (pointer_expression "*(double *)(iVar14 + 0xa8)" * (cast_expression "(double *)(iVar14 + 0xa8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xa8)" ( (binary_expression "iVar14 + 0xa8" identifier + number_literal) ))))) )) / (cast_expression "(double)DAT_0002e15c" ( (type_descriptor "double" primitive_type) ) identifier)) )) / (cast_expression "(double)uVar3" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (expression_statement "printf(" %8lu %8.2f %8.2f  ",uVar3,SUB84(dVar1,0),(int)((ulonglong)dVar1 >> 0x20),\n                   SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar13);" (call_expression "printf(" %8lu %8.2f %8.2f  ",uVar3,SUB84(dVar1,0),(int)((ulonglong)dVar1 >> 0x20),\n                   SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar13)" identifier (argument_list "(" %8lu %8.2f %8.2f  ",uVar3,SUB84(dVar1,0),(int)((ulonglong)dVar1 >> 0x20),\n                   SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar13)" ( (string_literal "" %8lu %8.2f %8.2f  "" " string_content ") , identifier , (call_expression "SUB84(dVar1,0)" identifier (argument_list "(dVar1,0)" ( identifier , number_literal ))) , (cast_expression "(int)((ulonglong)dVar1 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar1 >> 0x20)" ( (binary_expression "(ulonglong)dVar1 >> 0x20" (cast_expression "(ulonglong)dVar1" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (call_expression "SUB84(dVar2,0)" identifier (argument_list "(dVar2,0)" ( identifier , number_literal ))) , (cast_expression "(int)((ulonglong)dVar2 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar2 >> 0x20)" ( (binary_expression "(ulonglong)dVar2 >> 0x20" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , identifier ))) ;) }))) (if_statement "if (DAT_0002e150 == 0) {\n            FUN_0001df00(iVar14);\n          }\n          else {\n            FUN_0001e170(iVar14);\n          }" if (parenthesized_expression "(DAT_0002e150 == 0)" ( (binary_expression "DAT_0002e150 == 0" identifier == number_literal) )) (compound_statement "{\n            FUN_0001df00(iVar14);\n          }" { (expression_statement "FUN_0001df00(iVar14);" (call_expression "FUN_0001df00(iVar14)" identifier (argument_list "(iVar14)" ( identifier ))) ;) }) (else_clause "else {\n            FUN_0001e170(iVar14);\n          }" else (compound_statement "{\n            FUN_0001e170(iVar14);\n          }" { (expression_statement "FUN_0001e170(iVar14);" (call_expression "FUN_0001e170(iVar14)" identifier (argument_list "(iVar14)" ( identifier ))) ;) }))) (expression_statement "putchar(10);" (call_expression "putchar(10)" identifier (argument_list "(10)" ( number_literal ))) ;) })) (labeled_statement "LAB_0001bd38:\n        uVar17 = uVar17 + 1;" statement_identifier : (expression_statement "uVar17 = uVar17 + 1;" (assignment_expression "uVar17 = uVar17 + 1" identifier = (binary_expression "uVar17 + 1" identifier + number_literal)) ;)) (if_statement "if (DAT_0002e520 <= uVar17) goto LAB_0001bda0;" if (parenthesized_expression "(DAT_0002e520 <= uVar17)" ( (binary_expression "DAT_0002e520 <= uVar17" identifier <= identifier) )) (goto_statement "goto LAB_0001bda0;" goto statement_identifier ;)) })) (if_statement "if (DAT_0002e570 != 0) goto LAB_0001bd38;" if (parenthesized_expression "(DAT_0002e570 != 0)" ( (binary_expression "DAT_0002e570 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0001bd38;" goto statement_identifier ;)) (expression_statement "iVar14 = FUN_0001d480(&DAT_0002e57c,uVar10,uVar11);" (assignment_expression "iVar14 = FUN_0001d480(&DAT_0002e57c,uVar10,uVar11)" identifier = (call_expression "FUN_0001d480(&DAT_0002e57c,uVar10,uVar11)" identifier (argument_list "(&DAT_0002e57c,uVar10,uVar11)" ( (pointer_expression "&DAT_0002e57c" & identifier) , identifier , identifier )))) ;) (if_statement "if (iVar14 == 0) goto LAB_0001bc00;" if (parenthesized_expression "(iVar14 == 0)" ( (binary_expression "iVar14 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001bc00;" goto statement_identifier ;)) (expression_statement "uVar17 = uVar17 + 1;" (assignment_expression "uVar17 = uVar17 + 1" identifier = (binary_expression "uVar17 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar17 < DAT_0002e520)" ( (binary_expression "uVar17 < DAT_0002e520" identifier < identifier) )) ;) })) (labeled_statement "LAB_0001bda0:\n  free(__base);" statement_identifier : (expression_statement "free(__base);" (call_expression "free(__base)" identifier (argument_list "(__base)" ( identifier ))) ;)) (if_statement "if ((DAT_0002d1bc != 0) && (DAT_0002e150 == 0)) {\n    FUN_0001f820(*(undefined4 *)PTR_stdout_0002cfec);\n    return;\n  }" if (parenthesized_expression "((DAT_0002d1bc != 0) && (DAT_0002e150 == 0))" ( (binary_expression "(DAT_0002d1bc != 0) && (DAT_0002e150 == 0)" (parenthesized_expression "(DAT_0002d1bc != 0)" ( (binary_expression "DAT_0002d1bc != 0" identifier != number_literal) )) && (parenthesized_expression "(DAT_0002e150 == 0)" ( (binary_expression "DAT_0002e150 == 0" identifier == number_literal) ))) )) (compound_statement "{\n    FUN_0001f820(*(undefined4 *)PTR_stdout_0002cfec);\n    return;\n  }" { (expression_statement "FUN_0001f820(*(undefined4 *)PTR_stdout_0002cfec);" (call_expression "FUN_0001f820(*(undefined4 *)PTR_stdout_0002cfec)" identifier (argument_list "(*(undefined4 *)PTR_stdout_0002cfec)" ( (pointer_expression "*(undefined4 *)PTR_stdout_0002cfec" * (cast_expression "(undefined4 *)PTR_stdout_0002cfec" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))) ;) (return_statement "return;" return ;) })) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE) ))) (compound_statement { (declaration TYPE 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 (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " escape_sequence ") ))) ;) }) (else_clause else (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 = (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 ))) ;) }) (else_clause else (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 escape_sequence escape_sequence string_content escape_sequence ") , LIT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ))) ;) })))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression IDENT << LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) / (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) != IDENT) )) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT * (parenthesized_expression ( (binary_expression IDENT / (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT <= IDENT) )) && (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (binary_expression IDENT * LIT) ])))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;)) (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 ") , LIT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT / (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (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 , (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE) ) IDENT) , LIT ))) , (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT)) >> LIT) ))) , IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (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 ") , LIT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT / (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (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 escape_sequence ") , LIT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (call_expression IDENT (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) / IDENT) , LIT ))) , (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) / IDENT) ))) >> LIT) ))) , (call_expression IDENT (argument_list ( IDENT , LIT ))) , (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) , 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 escape_sequence ") , LIT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content ") , LIT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content ") , LIT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content ") , LIT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") , (pointer_expression & IDENT) , IDENT , IDENT , (string_literal " ") , IDENT , IDENT , (string_literal " ") ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") , (pointer_expression & IDENT) , LIT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content ") , LIT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") , (pointer_expression & IDENT) , LIT )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") , IDENT , IDENT , IDENT , IDENT , IDENT , IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ IDENT ])))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ IDENT ])) )) [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression IDENT * LIT)) ))))) ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ IDENT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) ))) )) || (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT / (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT / (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (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 = (binary_expression (parenthesized_expression ( (binary_expression IDENT * (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) / IDENT)) ;) }))) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (call_expression IDENT (argument_list ( IDENT , LIT ))) , (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) , IDENT , IDENT , IDENT , IDENT ))) ;) }) (else_clause else (compound_statement { (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 = (binary_expression (parenthesized_expression ( (binary_expression IDENT * (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) / IDENT)) ;) }))) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (call_expression IDENT (argument_list ( IDENT , LIT ))) , (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) , IDENT , IDENT , IDENT , IDENT ))) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " ") , (string_literal " ") , (string_literal " ") ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) * IDENT) )) / (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) / (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) / (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) / (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , IDENT , (call_expression IDENT (argument_list ( IDENT , LIT ))) , (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) , (call_expression IDENT (argument_list ( IDENT , LIT ))) , (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) , IDENT ))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) }))) (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (goto_statement goto statement_identifier ;)) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , 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)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;) })) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ))) ;) (return_statement return ;) })) (return_statement return ;) })))
(function_definition "void FUN_0001b8a0(void)\n\n{\n  double dVar1;\n  double dVar2;\n  uint uVar3;\n  float fVar4;\n  double dVar5;\n  double dVar6;\n  size_t __nmemb;\n  int *__base;\n  int *piVar7;\n  double *pdVar8;\n  char *pcVar9;\n  undefined4 uVar10;\n  undefined4 uVar11;\n  undefined4 uVar12;\n  undefined4 uVar13;\n  int iVar14;\n  int *piVar15;\n  int iVar16;\n  uint uVar17;\n  ulonglong local_a4;\n  size_t local_84;\n  char local_5c [72];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1b8a9;\n  if (DAT_0002d1b8 == 0) {\n    puts("\f");\n  }\n  else {\n    DAT_0002d1b8 = 0;\n  }\n  DAT_0002e170 = 0.0;\n  if (DAT_0002e150 == 0) {\n    pcVar9 = (char *)dcgettext("gprof","Flat profile:\n",5);\n    printf(pcVar9);\n  }\n  else if (DAT_0002d1bc != 0) {\n    pcVar9 = (char *)dcgettext("gprof","\n\n\nflat profile:\n",5);\n    printf(pcVar9);\n    FUN_0001f820(*(undefined4 *)PTR_stdout_0002cfec);\n  }\n  __base = (int *)xmalloc(DAT_0002e520 << 2);\n  __nmemb = DAT_0002e520;\n  if (DAT_0002e520 != 0) {\n    piVar15 = __base + DAT_0002e520;\n    piVar7 = __base;\n    iVar14 = DAT_0002e524;\n    do {\n      *piVar7 = iVar14;\n      piVar7 = piVar7 + 1;\n      iVar14 = iVar14 + 0xfc;\n    } while (piVar15 != piVar7);\n  }\n  qsort(__base,__nmemb,4,FUN_0001ae50);\n  if (DAT_0002e150 != 0) {\n    local_84 = 5;\n    iVar14 = 0x6d;\n    goto LAB_0001ba65;\n  }\n  local_84 = DAT_0002e520;\n  if (DAT_0002e520 == 0) {\nLAB_0001beb2:\n    iVar14 = 0x54;\n  }\n  else {\n    iVar14 = 0;\n    dVar1 = 0.0;\n    piVar15 = __base;\n    do {\n      iVar16 = *piVar15;\n      if (*(uint *)(iVar16 + 0x20) != 0) {\n        local_a4 = (ulonglong)*(uint *)(iVar16 + 0x20);\n        dVar2 = (*(double *)(iVar16 + 0xa8) + *(double *)(iVar16 + 0xbc)) / (double)local_a4;\n        if (dVar1 < dVar2) {\n          dVar1 = dVar2;\n          iVar14 = iVar16;\n        }\n      }\n      piVar15 = piVar15 + 1;\n    } while (__base + DAT_0002e520 != piVar15);\n    if (iVar14 != 0) {\n      if (*(int *)(iVar14 + 0x20) == 0) {\n        local_84 = 0;\n        goto LAB_0001beb2;\n      }\n      if (0.0 < dVar1) {\n        local_84 = 0;\n        pdVar8 = (double *)&DAT_00023db0;\n        dVar2 = DAT_00023e30;\n        while( true ) {\n          dVar2 = dVar2 * (dVar1 / (double)DAT_0002e15c);\n          if ((1.0 <= dVar2) && (dVar2 < (double)DAT_00023e2c)) {\n            iVar14 = (int)(char)(&DAT_00023da0)[local_84 * 0xc];\n            goto LAB_0001ba65;\n          }\n          local_84 = local_84 + 1;\n          if (local_84 == 0xb) break;\n          dVar2 = *pdVar8;\n          pdVar8 = (double *)((int)pdVar8 + 0xc);\n        }\n        iVar14 = 0;\n        goto LAB_0001ba65;\n      }\n    }\n    iVar14 = 0x54;\n    local_84 = 0;\n  }\nLAB_0001ba65:\n  iVar16 = (int)DAT_0002d4a4;\n  pcVar9 = (char *)dcgettext("gprof","%c%c/call",5);\n  sprintf(local_5c,pcVar9,iVar14,iVar16);\n  if (DAT_0002e150 == 0) {\n    fVar4 = DAT_00023e28 / (float)DAT_0002e15c;\n    pcVar9 = (char *)dcgettext("gprof","\nEach sample counts as %g %s.\n",5);\n    printf(pcVar9,SUB84((double)fVar4,0),(int)((ulonglong)(double)fVar4 >> 0x20),s_seconds_0002d4a8)\n    ;\n  }\n  else {\n    dVar1 = ROUND(DAT_0002e518);\n    pcVar9 = (char *)dcgettext("gprof","\ngranularity: each sample hit covers %ld byte(s)",5);\n    printf(pcVar9,(int)dVar1 * 2);\n    dVar1 = DAT_0002e168;\n    if (0.0 < DAT_0002e168) {\n      dVar2 = DAT_0002e168 / (double)DAT_0002e15c;\n      pcVar9 = (char *)dcgettext("gprof"," for %.2f%% of %.2f %s\n\n",5);\n      printf(pcVar9,SUB84((double)_DAT_000221d8 / dVar1,0),\n             (int)((ulonglong)((double)_DAT_000221d8 / dVar1) >> 0x20),SUB84(dVar2,0),\n             (int)((ulonglong)dVar2 >> 0x20),s_seconds_0002d4a8);\n    }\n  }\n  if (DAT_0002e168 <= 0.0) {\n    pcVar9 = (char *)dcgettext("gprof"," no time accumulated\n\n",5);\n    printf(pcVar9);\n    DAT_0002e168 = 1.0;\n  }\n  uVar10 = dcgettext("gprof","total ",5);\n  uVar11 = dcgettext("gprof","self  ",5);\n  uVar12 = dcgettext("gprof","self  ",5);\n  uVar13 = dcgettext("gprof","cumulative",5);\n  printf("%5.5s %10.10s %8.8s %8.8s %8.8s %8.8s  %-8.8s\n",&DAT_00023d2f,uVar13,uVar12,"",uVar11,\n         uVar10,"");\n  uVar10 = dcgettext("gprof",&DAT_000229c1,5);\n  uVar11 = dcgettext("gprof","calls",5);\n  uVar12 = dcgettext("gprof",&DAT_000229d8,5);\n  uVar17 = 0;\n  printf("%5.5s %9.9s  %8.8s %8.8s %8.8s %8.8s  %-8.8s\n",uVar12,s_seconds_0002d4a8,\n         s_seconds_0002d4a8,uVar11,local_5c,local_5c,uVar10);\n  if (DAT_0002e520 != 0) {\n    do {\n      while( true ) {\n        uVar10 = *(undefined4 *)__base[uVar17];\n        uVar11 = ((undefined4 *)__base[uVar17])[1];\n        iVar14 = FUN_0001d480(&DAT_0002e570,uVar10,uVar11);\n        if (iVar14 == 0) break;\nLAB_0001bc00:\n        dVar1 = *(double *)(&UNK_00023da4 + local_84 * 0xc);\n        iVar14 = __base[uVar17];\n        dVar2 = *(double *)(iVar14 + 0xa8);\n        if (((DAT_0002d1c0 == 0) || (*(int *)(iVar14 + 0x20) != 0)) || (dVar2 != 0.0)) {\n          DAT_0002e170 = DAT_0002e170 + dVar2;\n          dVar5 = dVar2 / (double)DAT_0002e15c;\n          dVar6 = DAT_0002e170 / (double)DAT_0002e15c;\n          uVar12 = SUB84(dVar5,0);\n          uVar13 = (undefined4)((ulonglong)dVar5 >> 0x20);\n          uVar10 = SUB84(dVar6,0);\n          uVar11 = (undefined4)((ulonglong)dVar6 >> 0x20);\n          if (DAT_0002e150 == 0) {\n            if (DAT_0002e168 <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;\n            }\n            printf("%6.2f %9.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11,\n                   uVar12,uVar13);\n          }\n          else {\n            if (DAT_0002e168 <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;\n            }\n            printf("%5.1f %10.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11\n                   ,uVar12,uVar13);\n          }\n          uVar3 = *(uint *)(iVar14 + 0x20);\n          if (uVar3 == 0) {\n            printf(" %8.8s %8.8s %8.8s  ","","","");\n          }\n          else {\n            dVar2 = (((*(double *)(iVar14 + 0xbc) + *(double *)(iVar14 + 0xa8)) * dVar1) /\n                    (double)DAT_0002e15c) / (double)uVar3;\n            dVar1 = ((dVar1 * *(double *)(iVar14 + 0xa8)) / (double)DAT_0002e15c) / (double)uVar3;\n            printf(" %8lu %8.2f %8.2f  ",uVar3,SUB84(dVar1,0),(int)((ulonglong)dVar1 >> 0x20),\n                   SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar13);\n          }\n          if (DAT_0002e150 == 0) {\n            FUN_0001df00(iVar14);\n          }\n          else {\n            FUN_0001e170(iVar14);\n          }\n          putchar(10);\n        }\nLAB_0001bd38:\n        uVar17 = uVar17 + 1;\n        if (DAT_0002e520 <= uVar17) goto LAB_0001bda0;\n      }\n      if (DAT_0002e570 != 0) goto LAB_0001bd38;\n      iVar14 = FUN_0001d480(&DAT_0002e57c,uVar10,uVar11);\n      if (iVar14 == 0) goto LAB_0001bc00;\n      uVar17 = uVar17 + 1;\n    } while (uVar17 < DAT_0002e520);\n  }\nLAB_0001bda0:\n  free(__base);\n  if ((DAT_0002d1bc != 0) && (DAT_0002e150 == 0)) {\n    FUN_0001f820(*(undefined4 *)PTR_stdout_0002cfec);\n    return;\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_0001b8a0(void)" (identifier "FUN_0001b8a0") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")"))) (compound_statement "{\n  double dVar1;\n  double dVar2;\n  uint uVar3;\n  float fVar4;\n  double dVar5;\n  double dVar6;\n  size_t __nmemb;\n  int *__base;\n  int *piVar7;\n  double *pdVar8;\n  char *pcVar9;\n  undefined4 uVar10;\n  undefined4 uVar11;\n  undefined4 uVar12;\n  undefined4 uVar13;\n  int iVar14;\n  int *piVar15;\n  int iVar16;\n  uint uVar17;\n  ulonglong local_a4;\n  size_t local_84;\n  char local_5c [72];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1b8a9;\n  if (DAT_0002d1b8 == 0) {\n    puts("\f");\n  }\n  else {\n    DAT_0002d1b8 = 0;\n  }\n  DAT_0002e170 = 0.0;\n  if (DAT_0002e150 == 0) {\n    pcVar9 = (char *)dcgettext("gprof","Flat profile:\n",5);\n    printf(pcVar9);\n  }\n  else if (DAT_0002d1bc != 0) {\n    pcVar9 = (char *)dcgettext("gprof","\n\n\nflat profile:\n",5);\n    printf(pcVar9);\n    FUN_0001f820(*(undefined4 *)PTR_stdout_0002cfec);\n  }\n  __base = (int *)xmalloc(DAT_0002e520 << 2);\n  __nmemb = DAT_0002e520;\n  if (DAT_0002e520 != 0) {\n    piVar15 = __base + DAT_0002e520;\n    piVar7 = __base;\n    iVar14 = DAT_0002e524;\n    do {\n      *piVar7 = iVar14;\n      piVar7 = piVar7 + 1;\n      iVar14 = iVar14 + 0xfc;\n    } while (piVar15 != piVar7);\n  }\n  qsort(__base,__nmemb,4,FUN_0001ae50);\n  if (DAT_0002e150 != 0) {\n    local_84 = 5;\n    iVar14 = 0x6d;\n    goto LAB_0001ba65;\n  }\n  local_84 = DAT_0002e520;\n  if (DAT_0002e520 == 0) {\nLAB_0001beb2:\n    iVar14 = 0x54;\n  }\n  else {\n    iVar14 = 0;\n    dVar1 = 0.0;\n    piVar15 = __base;\n    do {\n      iVar16 = *piVar15;\n      if (*(uint *)(iVar16 + 0x20) != 0) {\n        local_a4 = (ulonglong)*(uint *)(iVar16 + 0x20);\n        dVar2 = (*(double *)(iVar16 + 0xa8) + *(double *)(iVar16 + 0xbc)) / (double)local_a4;\n        if (dVar1 < dVar2) {\n          dVar1 = dVar2;\n          iVar14 = iVar16;\n        }\n      }\n      piVar15 = piVar15 + 1;\n    } while (__base + DAT_0002e520 != piVar15);\n    if (iVar14 != 0) {\n      if (*(int *)(iVar14 + 0x20) == 0) {\n        local_84 = 0;\n        goto LAB_0001beb2;\n      }\n      if (0.0 < dVar1) {\n        local_84 = 0;\n        pdVar8 = (double *)&DAT_00023db0;\n        dVar2 = DAT_00023e30;\n        while( true ) {\n          dVar2 = dVar2 * (dVar1 / (double)DAT_0002e15c);\n          if ((1.0 <= dVar2) && (dVar2 < (double)DAT_00023e2c)) {\n            iVar14 = (int)(char)(&DAT_00023da0)[local_84 * 0xc];\n            goto LAB_0001ba65;\n          }\n          local_84 = local_84 + 1;\n          if (local_84 == 0xb) break;\n          dVar2 = *pdVar8;\n          pdVar8 = (double *)((int)pdVar8 + 0xc);\n        }\n        iVar14 = 0;\n        goto LAB_0001ba65;\n      }\n    }\n    iVar14 = 0x54;\n    local_84 = 0;\n  }\nLAB_0001ba65:\n  iVar16 = (int)DAT_0002d4a4;\n  pcVar9 = (char *)dcgettext("gprof","%c%c/call",5);\n  sprintf(local_5c,pcVar9,iVar14,iVar16);\n  if (DAT_0002e150 == 0) {\n    fVar4 = DAT_00023e28 / (float)DAT_0002e15c;\n    pcVar9 = (char *)dcgettext("gprof","\nEach sample counts as %g %s.\n",5);\n    printf(pcVar9,SUB84((double)fVar4,0),(int)((ulonglong)(double)fVar4 >> 0x20),s_seconds_0002d4a8)\n    ;\n  }\n  else {\n    dVar1 = ROUND(DAT_0002e518);\n    pcVar9 = (char *)dcgettext("gprof","\ngranularity: each sample hit covers %ld byte(s)",5);\n    printf(pcVar9,(int)dVar1 * 2);\n    dVar1 = DAT_0002e168;\n    if (0.0 < DAT_0002e168) {\n      dVar2 = DAT_0002e168 / (double)DAT_0002e15c;\n      pcVar9 = (char *)dcgettext("gprof"," for %.2f%% of %.2f %s\n\n",5);\n      printf(pcVar9,SUB84((double)_DAT_000221d8 / dVar1,0),\n             (int)((ulonglong)((double)_DAT_000221d8 / dVar1) >> 0x20),SUB84(dVar2,0),\n             (int)((ulonglong)dVar2 >> 0x20),s_seconds_0002d4a8);\n    }\n  }\n  if (DAT_0002e168 <= 0.0) {\n    pcVar9 = (char *)dcgettext("gprof"," no time accumulated\n\n",5);\n    printf(pcVar9);\n    DAT_0002e168 = 1.0;\n  }\n  uVar10 = dcgettext("gprof","total ",5);\n  uVar11 = dcgettext("gprof","self  ",5);\n  uVar12 = dcgettext("gprof","self  ",5);\n  uVar13 = dcgettext("gprof","cumulative",5);\n  printf("%5.5s %10.10s %8.8s %8.8s %8.8s %8.8s  %-8.8s\n",&DAT_00023d2f,uVar13,uVar12,"",uVar11,\n         uVar10,"");\n  uVar10 = dcgettext("gprof",&DAT_000229c1,5);\n  uVar11 = dcgettext("gprof","calls",5);\n  uVar12 = dcgettext("gprof",&DAT_000229d8,5);\n  uVar17 = 0;\n  printf("%5.5s %9.9s  %8.8s %8.8s %8.8s %8.8s  %-8.8s\n",uVar12,s_seconds_0002d4a8,\n         s_seconds_0002d4a8,uVar11,local_5c,local_5c,uVar10);\n  if (DAT_0002e520 != 0) {\n    do {\n      while( true ) {\n        uVar10 = *(undefined4 *)__base[uVar17];\n        uVar11 = ((undefined4 *)__base[uVar17])[1];\n        iVar14 = FUN_0001d480(&DAT_0002e570,uVar10,uVar11);\n        if (iVar14 == 0) break;\nLAB_0001bc00:\n        dVar1 = *(double *)(&UNK_00023da4 + local_84 * 0xc);\n        iVar14 = __base[uVar17];\n        dVar2 = *(double *)(iVar14 + 0xa8);\n        if (((DAT_0002d1c0 == 0) || (*(int *)(iVar14 + 0x20) != 0)) || (dVar2 != 0.0)) {\n          DAT_0002e170 = DAT_0002e170 + dVar2;\n          dVar5 = dVar2 / (double)DAT_0002e15c;\n          dVar6 = DAT_0002e170 / (double)DAT_0002e15c;\n          uVar12 = SUB84(dVar5,0);\n          uVar13 = (undefined4)((ulonglong)dVar5 >> 0x20);\n          uVar10 = SUB84(dVar6,0);\n          uVar11 = (undefined4)((ulonglong)dVar6 >> 0x20);\n          if (DAT_0002e150 == 0) {\n            if (DAT_0002e168 <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;\n            }\n            printf("%6.2f %9.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11,\n                   uVar12,uVar13);\n          }\n          else {\n            if (DAT_0002e168 <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;\n            }\n            printf("%5.1f %10.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11\n                   ,uVar12,uVar13);\n          }\n          uVar3 = *(uint *)(iVar14 + 0x20);\n          if (uVar3 == 0) {\n            printf(" %8.8s %8.8s %8.8s  ","","","");\n          }\n          else {\n            dVar2 = (((*(double *)(iVar14 + 0xbc) + *(double *)(iVar14 + 0xa8)) * dVar1) /\n                    (double)DAT_0002e15c) / (double)uVar3;\n            dVar1 = ((dVar1 * *(double *)(iVar14 + 0xa8)) / (double)DAT_0002e15c) / (double)uVar3;\n            printf(" %8lu %8.2f %8.2f  ",uVar3,SUB84(dVar1,0),(int)((ulonglong)dVar1 >> 0x20),\n                   SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar13);\n          }\n          if (DAT_0002e150 == 0) {\n            FUN_0001df00(iVar14);\n          }\n          else {\n            FUN_0001e170(iVar14);\n          }\n          putchar(10);\n        }\nLAB_0001bd38:\n        uVar17 = uVar17 + 1;\n        if (DAT_0002e520 <= uVar17) goto LAB_0001bda0;\n      }\n      if (DAT_0002e570 != 0) goto LAB_0001bd38;\n      iVar14 = FUN_0001d480(&DAT_0002e57c,uVar10,uVar11);\n      if (iVar14 == 0) goto LAB_0001bc00;\n      uVar17 = uVar17 + 1;\n    } while (uVar17 < DAT_0002e520);\n  }\nLAB_0001bda0:\n  free(__base);\n  if ((DAT_0002d1bc != 0) && (DAT_0002e150 == 0)) {\n    FUN_0001f820(*(undefined4 *)PTR_stdout_0002cfec);\n    return;\n  }\n  return;\n}" ({ "{") (declaration "double dVar1;" (primitive_type "double") (identifier "dVar1") (; ";")) (declaration "double dVar2;" (primitive_type "double") (identifier "dVar2") (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (declaration "float fVar4;" (primitive_type "float") (identifier "fVar4") (; ";")) (declaration "double dVar5;" (primitive_type "double") (identifier "dVar5") (; ";")) (declaration "double dVar6;" (primitive_type "double") (identifier "dVar6") (; ";")) (declaration "size_t __nmemb;" (primitive_type "size_t") (identifier "__nmemb") (; ";")) (declaration "int *__base;" (primitive_type "int") (pointer_declarator "*__base" (* "*") (identifier "__base")) (; ";")) (declaration "int *piVar7;" (primitive_type "int") (pointer_declarator "*piVar7" (* "*") (identifier "piVar7")) (; ";")) (declaration "double *pdVar8;" (primitive_type "double") (pointer_declarator "*pdVar8" (* "*") (identifier "pdVar8")) (; ";")) (declaration "char *pcVar9;" (primitive_type "char") (pointer_declarator "*pcVar9" (* "*") (identifier "pcVar9")) (; ";")) (declaration "undefined4 uVar10;" (type_identifier "undefined4") (identifier "uVar10") (; ";")) (declaration "undefined4 uVar11;" (type_identifier "undefined4") (identifier "uVar11") (; ";")) (declaration "undefined4 uVar12;" (type_identifier "undefined4") (identifier "uVar12") (; ";")) (declaration "undefined4 uVar13;" (type_identifier "undefined4") (identifier "uVar13") (; ";")) (declaration "int iVar14;" (primitive_type "int") (identifier "iVar14") (; ";")) (declaration "int *piVar15;" (primitive_type "int") (pointer_declarator "*piVar15" (* "*") (identifier "piVar15")) (; ";")) (declaration "int iVar16;" (primitive_type "int") (identifier "iVar16") (; ";")) (declaration "uint uVar17;" (type_identifier "uint") (identifier "uVar17") (; ";")) (declaration "ulonglong local_a4;" (type_identifier "ulonglong") (identifier "local_a4") (; ";")) (declaration "size_t local_84;" (primitive_type "size_t") (identifier "local_84") (; ";")) (declaration "char local_5c [72];" (primitive_type "char") (array_declarator "local_5c [72]" (identifier "local_5c") ([ "[") (number_literal "72") (] "]")) (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "uStack_14 = 0x1b8a9;" (assignment_expression "uStack_14 = 0x1b8a9" (identifier "uStack_14") (= "=") (number_literal "0x1b8a9")) (; ";")) (if_statement "if (DAT_0002d1b8 == 0) {\n    puts("\f");\n  }\n  else {\n    DAT_0002d1b8 = 0;\n  }" (if "if") (parenthesized_expression "(DAT_0002d1b8 == 0)" (( "(") (binary_expression "DAT_0002d1b8 == 0" (identifier "DAT_0002d1b8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    puts("\f");\n  }" ({ "{") (expression_statement "puts("\f");" (call_expression "puts("\f")" (identifier "puts") (argument_list "("\f")" (( "(") (string_literal ""\f"" (" """) (escape_sequence "\f") (" """)) () ")"))) (; ";")) (} "}")) (else_clause "else {\n    DAT_0002d1b8 = 0;\n  }" (else "else") (compound_statement "{\n    DAT_0002d1b8 = 0;\n  }" ({ "{") (expression_statement "DAT_0002d1b8 = 0;" (assignment_expression "DAT_0002d1b8 = 0" (identifier "DAT_0002d1b8") (= "=") (number_literal "0")) (; ";")) (} "}")))) (expression_statement "DAT_0002e170 = 0.0;" (assignment_expression "DAT_0002e170 = 0.0" (identifier "DAT_0002e170") (= "=") (number_literal "0.0")) (; ";")) (if_statement "if (DAT_0002e150 == 0) {\n    pcVar9 = (char *)dcgettext("gprof","Flat profile:\n",5);\n    printf(pcVar9);\n  }\n  else if (DAT_0002d1bc != 0) {\n    pcVar9 = (char *)dcgettext("gprof","\n\n\nflat profile:\n",5);\n    printf(pcVar9);\n    FUN_0001f820(*(undefined4 *)PTR_stdout_0002cfec);\n  }" (if "if") (parenthesized_expression "(DAT_0002e150 == 0)" (( "(") (binary_expression "DAT_0002e150 == 0" (identifier "DAT_0002e150") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    pcVar9 = (char *)dcgettext("gprof","Flat profile:\n",5);\n    printf(pcVar9);\n  }" ({ "{") (expression_statement "pcVar9 = (char *)dcgettext("gprof","Flat profile:\n",5);" (assignment_expression "pcVar9 = (char *)dcgettext("gprof","Flat profile:\n",5)" (identifier "pcVar9") (= "=") (cast_expression "(char *)dcgettext("gprof","Flat profile:\n",5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext("gprof","Flat profile:\n",5)" (identifier "dcgettext") (argument_list "("gprof","Flat profile:\n",5)" (( "(") (string_literal ""gprof"" (" """) (string_content "gprof") (" """)) (, ",") (string_literal ""Flat profile:\n"" (" """) (string_content "Flat profile:") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")"))))) (; ";")) (expression_statement "printf(pcVar9);" (call_expression "printf(pcVar9)" (identifier "printf") (argument_list "(pcVar9)" (( "(") (identifier "pcVar9") () ")"))) (; ";")) (} "}")) (else_clause "else if (DAT_0002d1bc != 0) {\n    pcVar9 = (char *)dcgettext("gprof","\n\n\nflat profile:\n",5);\n    printf(pcVar9);\n    FUN_0001f820(*(undefined4 *)PTR_stdout_0002cfec);\n  }" (else "else") (if_statement "if (DAT_0002d1bc != 0) {\n    pcVar9 = (char *)dcgettext("gprof","\n\n\nflat profile:\n",5);\n    printf(pcVar9);\n    FUN_0001f820(*(undefined4 *)PTR_stdout_0002cfec);\n  }" (if "if") (parenthesized_expression "(DAT_0002d1bc != 0)" (( "(") (binary_expression "DAT_0002d1bc != 0" (identifier "DAT_0002d1bc") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    pcVar9 = (char *)dcgettext("gprof","\n\n\nflat profile:\n",5);\n    printf(pcVar9);\n    FUN_0001f820(*(undefined4 *)PTR_stdout_0002cfec);\n  }" ({ "{") (expression_statement "pcVar9 = (char *)dcgettext("gprof","\n\n\nflat profile:\n",5);" (assignment_expression "pcVar9 = (char *)dcgettext("gprof","\n\n\nflat profile:\n",5)" (identifier "pcVar9") (= "=") (cast_expression "(char *)dcgettext("gprof","\n\n\nflat profile:\n",5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext("gprof","\n\n\nflat profile:\n",5)" (identifier "dcgettext") (argument_list "("gprof","\n\n\nflat profile:\n",5)" (( "(") (string_literal ""gprof"" (" """) (string_content "gprof") (" """)) (, ",") (string_literal ""\n\n\nflat profile:\n"" (" """) (escape_sequence "\n") (escape_sequence "\n") (escape_sequence "\n") (string_content "flat profile:") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")"))))) (; ";")) (expression_statement "printf(pcVar9);" (call_expression "printf(pcVar9)" (identifier "printf") (argument_list "(pcVar9)" (( "(") (identifier "pcVar9") () ")"))) (; ";")) (expression_statement "FUN_0001f820(*(undefined4 *)PTR_stdout_0002cfec);" (call_expression "FUN_0001f820(*(undefined4 *)PTR_stdout_0002cfec)" (identifier "FUN_0001f820") (argument_list "(*(undefined4 *)PTR_stdout_0002cfec)" (( "(") (pointer_expression "*(undefined4 *)PTR_stdout_0002cfec" (* "*") (cast_expression "(undefined4 *)PTR_stdout_0002cfec" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_stdout_0002cfec"))) () ")"))) (; ";")) (} "}"))))) (expression_statement "__base = (int *)xmalloc(DAT_0002e520 << 2);" (assignment_expression "__base = (int *)xmalloc(DAT_0002e520 << 2)" (identifier "__base") (= "=") (cast_expression "(int *)xmalloc(DAT_0002e520 << 2)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(DAT_0002e520 << 2)" (identifier "xmalloc") (argument_list "(DAT_0002e520 << 2)" (( "(") (binary_expression "DAT_0002e520 << 2" (identifier "DAT_0002e520") (<< "<<") (number_literal "2")) () ")"))))) (; ";")) (expression_statement "__nmemb = DAT_0002e520;" (assignment_expression "__nmemb = DAT_0002e520" (identifier "__nmemb") (= "=") (identifier "DAT_0002e520")) (; ";")) (if_statement "if (DAT_0002e520 != 0) {\n    piVar15 = __base + DAT_0002e520;\n    piVar7 = __base;\n    iVar14 = DAT_0002e524;\n    do {\n      *piVar7 = iVar14;\n      piVar7 = piVar7 + 1;\n      iVar14 = iVar14 + 0xfc;\n    } while (piVar15 != piVar7);\n  }" (if "if") (parenthesized_expression "(DAT_0002e520 != 0)" (( "(") (binary_expression "DAT_0002e520 != 0" (identifier "DAT_0002e520") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    piVar15 = __base + DAT_0002e520;\n    piVar7 = __base;\n    iVar14 = DAT_0002e524;\n    do {\n      *piVar7 = iVar14;\n      piVar7 = piVar7 + 1;\n      iVar14 = iVar14 + 0xfc;\n    } while (piVar15 != piVar7);\n  }" ({ "{") (expression_statement "piVar15 = __base + DAT_0002e520;" (assignment_expression "piVar15 = __base + DAT_0002e520" (identifier "piVar15") (= "=") (binary_expression "__base + DAT_0002e520" (identifier "__base") (+ "+") (identifier "DAT_0002e520"))) (; ";")) (expression_statement "piVar7 = __base;" (assignment_expression "piVar7 = __base" (identifier "piVar7") (= "=") (identifier "__base")) (; ";")) (expression_statement "iVar14 = DAT_0002e524;" (assignment_expression "iVar14 = DAT_0002e524" (identifier "iVar14") (= "=") (identifier "DAT_0002e524")) (; ";")) (do_statement "do {\n      *piVar7 = iVar14;\n      piVar7 = piVar7 + 1;\n      iVar14 = iVar14 + 0xfc;\n    } while (piVar15 != piVar7);" (do "do") (compound_statement "{\n      *piVar7 = iVar14;\n      piVar7 = piVar7 + 1;\n      iVar14 = iVar14 + 0xfc;\n    }" ({ "{") (expression_statement "*piVar7 = iVar14;" (assignment_expression "*piVar7 = iVar14" (pointer_expression "*piVar7" (* "*") (identifier "piVar7")) (= "=") (identifier "iVar14")) (; ";")) (expression_statement "piVar7 = piVar7 + 1;" (assignment_expression "piVar7 = piVar7 + 1" (identifier "piVar7") (= "=") (binary_expression "piVar7 + 1" (identifier "piVar7") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar14 = iVar14 + 0xfc;" (assignment_expression "iVar14 = iVar14 + 0xfc" (identifier "iVar14") (= "=") (binary_expression "iVar14 + 0xfc" (identifier "iVar14") (+ "+") (number_literal "0xfc"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(piVar15 != piVar7)" (( "(") (binary_expression "piVar15 != piVar7" (identifier "piVar15") (!= "!=") (identifier "piVar7")) () ")")) (; ";")) (} "}"))) (expression_statement "qsort(__base,__nmemb,4,FUN_0001ae50);" (call_expression "qsort(__base,__nmemb,4,FUN_0001ae50)" (identifier "qsort") (argument_list "(__base,__nmemb,4,FUN_0001ae50)" (( "(") (identifier "__base") (, ",") (identifier "__nmemb") (, ",") (number_literal "4") (, ",") (identifier "FUN_0001ae50") () ")"))) (; ";")) (if_statement "if (DAT_0002e150 != 0) {\n    local_84 = 5;\n    iVar14 = 0x6d;\n    goto LAB_0001ba65;\n  }" (if "if") (parenthesized_expression "(DAT_0002e150 != 0)" (( "(") (binary_expression "DAT_0002e150 != 0" (identifier "DAT_0002e150") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    local_84 = 5;\n    iVar14 = 0x6d;\n    goto LAB_0001ba65;\n  }" ({ "{") (expression_statement "local_84 = 5;" (assignment_expression "local_84 = 5" (identifier "local_84") (= "=") (number_literal "5")) (; ";")) (expression_statement "iVar14 = 0x6d;" (assignment_expression "iVar14 = 0x6d" (identifier "iVar14") (= "=") (number_literal "0x6d")) (; ";")) (goto_statement "goto LAB_0001ba65;" (goto "goto") (statement_identifier "LAB_0001ba65") (; ";")) (} "}"))) (expression_statement "local_84 = DAT_0002e520;" (assignment_expression "local_84 = DAT_0002e520" (identifier "local_84") (= "=") (identifier "DAT_0002e520")) (; ";")) (if_statement "if (DAT_0002e520 == 0) {\nLAB_0001beb2:\n    iVar14 = 0x54;\n  }\n  else {\n    iVar14 = 0;\n    dVar1 = 0.0;\n    piVar15 = __base;\n    do {\n      iVar16 = *piVar15;\n      if (*(uint *)(iVar16 + 0x20) != 0) {\n        local_a4 = (ulonglong)*(uint *)(iVar16 + 0x20);\n        dVar2 = (*(double *)(iVar16 + 0xa8) + *(double *)(iVar16 + 0xbc)) / (double)local_a4;\n        if (dVar1 < dVar2) {\n          dVar1 = dVar2;\n          iVar14 = iVar16;\n        }\n      }\n      piVar15 = piVar15 + 1;\n    } while (__base + DAT_0002e520 != piVar15);\n    if (iVar14 != 0) {\n      if (*(int *)(iVar14 + 0x20) == 0) {\n        local_84 = 0;\n        goto LAB_0001beb2;\n      }\n      if (0.0 < dVar1) {\n        local_84 = 0;\n        pdVar8 = (double *)&DAT_00023db0;\n        dVar2 = DAT_00023e30;\n        while( true ) {\n          dVar2 = dVar2 * (dVar1 / (double)DAT_0002e15c);\n          if ((1.0 <= dVar2) && (dVar2 < (double)DAT_00023e2c)) {\n            iVar14 = (int)(char)(&DAT_00023da0)[local_84 * 0xc];\n            goto LAB_0001ba65;\n          }\n          local_84 = local_84 + 1;\n          if (local_84 == 0xb) break;\n          dVar2 = *pdVar8;\n          pdVar8 = (double *)((int)pdVar8 + 0xc);\n        }\n        iVar14 = 0;\n        goto LAB_0001ba65;\n      }\n    }\n    iVar14 = 0x54;\n    local_84 = 0;\n  }" (if "if") (parenthesized_expression "(DAT_0002e520 == 0)" (( "(") (binary_expression "DAT_0002e520 == 0" (identifier "DAT_0002e520") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0001beb2:\n    iVar14 = 0x54;\n  }" ({ "{") (labeled_statement "LAB_0001beb2:\n    iVar14 = 0x54;" (statement_identifier "LAB_0001beb2") (: ":") (expression_statement "iVar14 = 0x54;" (assignment_expression "iVar14 = 0x54" (identifier "iVar14") (= "=") (number_literal "0x54")) (; ";"))) (} "}")) (else_clause "else {\n    iVar14 = 0;\n    dVar1 = 0.0;\n    piVar15 = __base;\n    do {\n      iVar16 = *piVar15;\n      if (*(uint *)(iVar16 + 0x20) != 0) {\n        local_a4 = (ulonglong)*(uint *)(iVar16 + 0x20);\n        dVar2 = (*(double *)(iVar16 + 0xa8) + *(double *)(iVar16 + 0xbc)) / (double)local_a4;\n        if (dVar1 < dVar2) {\n          dVar1 = dVar2;\n          iVar14 = iVar16;\n        }\n      }\n      piVar15 = piVar15 + 1;\n    } while (__base + DAT_0002e520 != piVar15);\n    if (iVar14 != 0) {\n      if (*(int *)(iVar14 + 0x20) == 0) {\n        local_84 = 0;\n        goto LAB_0001beb2;\n      }\n      if (0.0 < dVar1) {\n        local_84 = 0;\n        pdVar8 = (double *)&DAT_00023db0;\n        dVar2 = DAT_00023e30;\n        while( true ) {\n          dVar2 = dVar2 * (dVar1 / (double)DAT_0002e15c);\n          if ((1.0 <= dVar2) && (dVar2 < (double)DAT_00023e2c)) {\n            iVar14 = (int)(char)(&DAT_00023da0)[local_84 * 0xc];\n            goto LAB_0001ba65;\n          }\n          local_84 = local_84 + 1;\n          if (local_84 == 0xb) break;\n          dVar2 = *pdVar8;\n          pdVar8 = (double *)((int)pdVar8 + 0xc);\n        }\n        iVar14 = 0;\n        goto LAB_0001ba65;\n      }\n    }\n    iVar14 = 0x54;\n    local_84 = 0;\n  }" (else "else") (compound_statement "{\n    iVar14 = 0;\n    dVar1 = 0.0;\n    piVar15 = __base;\n    do {\n      iVar16 = *piVar15;\n      if (*(uint *)(iVar16 + 0x20) != 0) {\n        local_a4 = (ulonglong)*(uint *)(iVar16 + 0x20);\n        dVar2 = (*(double *)(iVar16 + 0xa8) + *(double *)(iVar16 + 0xbc)) / (double)local_a4;\n        if (dVar1 < dVar2) {\n          dVar1 = dVar2;\n          iVar14 = iVar16;\n        }\n      }\n      piVar15 = piVar15 + 1;\n    } while (__base + DAT_0002e520 != piVar15);\n    if (iVar14 != 0) {\n      if (*(int *)(iVar14 + 0x20) == 0) {\n        local_84 = 0;\n        goto LAB_0001beb2;\n      }\n      if (0.0 < dVar1) {\n        local_84 = 0;\n        pdVar8 = (double *)&DAT_00023db0;\n        dVar2 = DAT_00023e30;\n        while( true ) {\n          dVar2 = dVar2 * (dVar1 / (double)DAT_0002e15c);\n          if ((1.0 <= dVar2) && (dVar2 < (double)DAT_00023e2c)) {\n            iVar14 = (int)(char)(&DAT_00023da0)[local_84 * 0xc];\n            goto LAB_0001ba65;\n          }\n          local_84 = local_84 + 1;\n          if (local_84 == 0xb) break;\n          dVar2 = *pdVar8;\n          pdVar8 = (double *)((int)pdVar8 + 0xc);\n        }\n        iVar14 = 0;\n        goto LAB_0001ba65;\n      }\n    }\n    iVar14 = 0x54;\n    local_84 = 0;\n  }" ({ "{") (expression_statement "iVar14 = 0;" (assignment_expression "iVar14 = 0" (identifier "iVar14") (= "=") (number_literal "0")) (; ";")) (expression_statement "dVar1 = 0.0;" (assignment_expression "dVar1 = 0.0" (identifier "dVar1") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "piVar15 = __base;" (assignment_expression "piVar15 = __base" (identifier "piVar15") (= "=") (identifier "__base")) (; ";")) (do_statement "do {\n      iVar16 = *piVar15;\n      if (*(uint *)(iVar16 + 0x20) != 0) {\n        local_a4 = (ulonglong)*(uint *)(iVar16 + 0x20);\n        dVar2 = (*(double *)(iVar16 + 0xa8) + *(double *)(iVar16 + 0xbc)) / (double)local_a4;\n        if (dVar1 < dVar2) {\n          dVar1 = dVar2;\n          iVar14 = iVar16;\n        }\n      }\n      piVar15 = piVar15 + 1;\n    } while (__base + DAT_0002e520 != piVar15);" (do "do") (compound_statement "{\n      iVar16 = *piVar15;\n      if (*(uint *)(iVar16 + 0x20) != 0) {\n        local_a4 = (ulonglong)*(uint *)(iVar16 + 0x20);\n        dVar2 = (*(double *)(iVar16 + 0xa8) + *(double *)(iVar16 + 0xbc)) / (double)local_a4;\n        if (dVar1 < dVar2) {\n          dVar1 = dVar2;\n          iVar14 = iVar16;\n        }\n      }\n      piVar15 = piVar15 + 1;\n    }" ({ "{") (expression_statement "iVar16 = *piVar15;" (assignment_expression "iVar16 = *piVar15" (identifier "iVar16") (= "=") (pointer_expression "*piVar15" (* "*") (identifier "piVar15"))) (; ";")) (if_statement "if (*(uint *)(iVar16 + 0x20) != 0) {\n        local_a4 = (ulonglong)*(uint *)(iVar16 + 0x20);\n        dVar2 = (*(double *)(iVar16 + 0xa8) + *(double *)(iVar16 + 0xbc)) / (double)local_a4;\n        if (dVar1 < dVar2) {\n          dVar1 = dVar2;\n          iVar14 = iVar16;\n        }\n      }" (if "if") (parenthesized_expression "(*(uint *)(iVar16 + 0x20) != 0)" (( "(") (binary_expression "*(uint *)(iVar16 + 0x20) != 0" (pointer_expression "*(uint *)(iVar16 + 0x20)" (* "*") (cast_expression "(uint *)(iVar16 + 0x20)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar16 + 0x20)" (( "(") (binary_expression "iVar16 + 0x20" (identifier "iVar16") (+ "+") (number_literal "0x20")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        local_a4 = (ulonglong)*(uint *)(iVar16 + 0x20);\n        dVar2 = (*(double *)(iVar16 + 0xa8) + *(double *)(iVar16 + 0xbc)) / (double)local_a4;\n        if (dVar1 < dVar2) {\n          dVar1 = dVar2;\n          iVar14 = iVar16;\n        }\n      }" ({ "{") (expression_statement "local_a4 = (ulonglong)*(uint *)(iVar16 + 0x20);" (assignment_expression "local_a4 = (ulonglong)*(uint *)(iVar16 + 0x20)" (identifier "local_a4") (= "=") (binary_expression "(ulonglong)*(uint *)(iVar16 + 0x20)" (parenthesized_expression "(ulonglong)" (( "(") (identifier "ulonglong") () ")")) (* "*") (cast_expression "(uint *)(iVar16 + 0x20)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar16 + 0x20)" (( "(") (binary_expression "iVar16 + 0x20" (identifier "iVar16") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (expression_statement "dVar2 = (*(double *)(iVar16 + 0xa8) + *(double *)(iVar16 + 0xbc)) / (double)local_a4;" (assignment_expression "dVar2 = (*(double *)(iVar16 + 0xa8) + *(double *)(iVar16 + 0xbc)) / (double)local_a4" (identifier "dVar2") (= "=") (binary_expression "(*(double *)(iVar16 + 0xa8) + *(double *)(iVar16 + 0xbc)) / (double)local_a4" (parenthesized_expression "(*(double *)(iVar16 + 0xa8) + *(double *)(iVar16 + 0xbc))" (( "(") (binary_expression "*(double *)(iVar16 + 0xa8) + *(double *)(iVar16 + 0xbc)" (pointer_expression "*(double *)(iVar16 + 0xa8)" (* "*") (cast_expression "(double *)(iVar16 + 0xa8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar16 + 0xa8)" (( "(") (binary_expression "iVar16 + 0xa8" (identifier "iVar16") (+ "+") (number_literal "0xa8")) () ")")))) (+ "+") (pointer_expression "*(double *)(iVar16 + 0xbc)" (* "*") (cast_expression "(double *)(iVar16 + 0xbc)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar16 + 0xbc)" (( "(") (binary_expression "iVar16 + 0xbc" (identifier "iVar16") (+ "+") (number_literal "0xbc")) () ")"))))) () ")")) (/ "/") (cast_expression "(double)local_a4" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "local_a4")))) (; ";")) (if_statement "if (dVar1 < dVar2) {\n          dVar1 = dVar2;\n          iVar14 = iVar16;\n        }" (if "if") (parenthesized_expression "(dVar1 < dVar2)" (( "(") (binary_expression "dVar1 < dVar2" (identifier "dVar1") (< "<") (identifier "dVar2")) () ")")) (compound_statement "{\n          dVar1 = dVar2;\n          iVar14 = iVar16;\n        }" ({ "{") (expression_statement "dVar1 = dVar2;" (assignment_expression "dVar1 = dVar2" (identifier "dVar1") (= "=") (identifier "dVar2")) (; ";")) (expression_statement "iVar14 = iVar16;" (assignment_expression "iVar14 = iVar16" (identifier "iVar14") (= "=") (identifier "iVar16")) (; ";")) (} "}"))) (} "}"))) (expression_statement "piVar15 = piVar15 + 1;" (assignment_expression "piVar15 = piVar15 + 1" (identifier "piVar15") (= "=") (binary_expression "piVar15 + 1" (identifier "piVar15") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(__base + DAT_0002e520 != piVar15)" (( "(") (binary_expression "__base + DAT_0002e520 != piVar15" (binary_expression "__base + DAT_0002e520" (identifier "__base") (+ "+") (identifier "DAT_0002e520")) (!= "!=") (identifier "piVar15")) () ")")) (; ";")) (if_statement "if (iVar14 != 0) {\n      if (*(int *)(iVar14 + 0x20) == 0) {\n        local_84 = 0;\n        goto LAB_0001beb2;\n      }\n      if (0.0 < dVar1) {\n        local_84 = 0;\n        pdVar8 = (double *)&DAT_00023db0;\n        dVar2 = DAT_00023e30;\n        while( true ) {\n          dVar2 = dVar2 * (dVar1 / (double)DAT_0002e15c);\n          if ((1.0 <= dVar2) && (dVar2 < (double)DAT_00023e2c)) {\n            iVar14 = (int)(char)(&DAT_00023da0)[local_84 * 0xc];\n            goto LAB_0001ba65;\n          }\n          local_84 = local_84 + 1;\n          if (local_84 == 0xb) break;\n          dVar2 = *pdVar8;\n          pdVar8 = (double *)((int)pdVar8 + 0xc);\n        }\n        iVar14 = 0;\n        goto LAB_0001ba65;\n      }\n    }" (if "if") (parenthesized_expression "(iVar14 != 0)" (( "(") (binary_expression "iVar14 != 0" (identifier "iVar14") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      if (*(int *)(iVar14 + 0x20) == 0) {\n        local_84 = 0;\n        goto LAB_0001beb2;\n      }\n      if (0.0 < dVar1) {\n        local_84 = 0;\n        pdVar8 = (double *)&DAT_00023db0;\n        dVar2 = DAT_00023e30;\n        while( true ) {\n          dVar2 = dVar2 * (dVar1 / (double)DAT_0002e15c);\n          if ((1.0 <= dVar2) && (dVar2 < (double)DAT_00023e2c)) {\n            iVar14 = (int)(char)(&DAT_00023da0)[local_84 * 0xc];\n            goto LAB_0001ba65;\n          }\n          local_84 = local_84 + 1;\n          if (local_84 == 0xb) break;\n          dVar2 = *pdVar8;\n          pdVar8 = (double *)((int)pdVar8 + 0xc);\n        }\n        iVar14 = 0;\n        goto LAB_0001ba65;\n      }\n    }" ({ "{") (if_statement "if (*(int *)(iVar14 + 0x20) == 0) {\n        local_84 = 0;\n        goto LAB_0001beb2;\n      }" (if "if") (parenthesized_expression "(*(int *)(iVar14 + 0x20) == 0)" (( "(") (binary_expression "*(int *)(iVar14 + 0x20) == 0" (pointer_expression "*(int *)(iVar14 + 0x20)" (* "*") (cast_expression "(int *)(iVar14 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0x20)" (( "(") (binary_expression "iVar14 + 0x20" (identifier "iVar14") (+ "+") (number_literal "0x20")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        local_84 = 0;\n        goto LAB_0001beb2;\n      }" ({ "{") (expression_statement "local_84 = 0;" (assignment_expression "local_84 = 0" (identifier "local_84") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_0001beb2;" (goto "goto") (statement_identifier "LAB_0001beb2") (; ";")) (} "}"))) (if_statement "if (0.0 < dVar1) {\n        local_84 = 0;\n        pdVar8 = (double *)&DAT_00023db0;\n        dVar2 = DAT_00023e30;\n        while( true ) {\n          dVar2 = dVar2 * (dVar1 / (double)DAT_0002e15c);\n          if ((1.0 <= dVar2) && (dVar2 < (double)DAT_00023e2c)) {\n            iVar14 = (int)(char)(&DAT_00023da0)[local_84 * 0xc];\n            goto LAB_0001ba65;\n          }\n          local_84 = local_84 + 1;\n          if (local_84 == 0xb) break;\n          dVar2 = *pdVar8;\n          pdVar8 = (double *)((int)pdVar8 + 0xc);\n        }\n        iVar14 = 0;\n        goto LAB_0001ba65;\n      }" (if "if") (parenthesized_expression "(0.0 < dVar1)" (( "(") (binary_expression "0.0 < dVar1" (number_literal "0.0") (< "<") (identifier "dVar1")) () ")")) (compound_statement "{\n        local_84 = 0;\n        pdVar8 = (double *)&DAT_00023db0;\n        dVar2 = DAT_00023e30;\n        while( true ) {\n          dVar2 = dVar2 * (dVar1 / (double)DAT_0002e15c);\n          if ((1.0 <= dVar2) && (dVar2 < (double)DAT_00023e2c)) {\n            iVar14 = (int)(char)(&DAT_00023da0)[local_84 * 0xc];\n            goto LAB_0001ba65;\n          }\n          local_84 = local_84 + 1;\n          if (local_84 == 0xb) break;\n          dVar2 = *pdVar8;\n          pdVar8 = (double *)((int)pdVar8 + 0xc);\n        }\n        iVar14 = 0;\n        goto LAB_0001ba65;\n      }" ({ "{") (expression_statement "local_84 = 0;" (assignment_expression "local_84 = 0" (identifier "local_84") (= "=") (number_literal "0")) (; ";")) (expression_statement "pdVar8 = (double *)&DAT_00023db0;" (assignment_expression "pdVar8 = (double *)&DAT_00023db0" (identifier "pdVar8") (= "=") (cast_expression "(double *)&DAT_00023db0" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&DAT_00023db0" (& "&") (identifier "DAT_00023db0")))) (; ";")) (expression_statement "dVar2 = DAT_00023e30;" (assignment_expression "dVar2 = DAT_00023e30" (identifier "dVar2") (= "=") (identifier "DAT_00023e30")) (; ";")) (while_statement "while( true ) {\n          dVar2 = dVar2 * (dVar1 / (double)DAT_0002e15c);\n          if ((1.0 <= dVar2) && (dVar2 < (double)DAT_00023e2c)) {\n            iVar14 = (int)(char)(&DAT_00023da0)[local_84 * 0xc];\n            goto LAB_0001ba65;\n          }\n          local_84 = local_84 + 1;\n          if (local_84 == 0xb) break;\n          dVar2 = *pdVar8;\n          pdVar8 = (double *)((int)pdVar8 + 0xc);\n        }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n          dVar2 = dVar2 * (dVar1 / (double)DAT_0002e15c);\n          if ((1.0 <= dVar2) && (dVar2 < (double)DAT_00023e2c)) {\n            iVar14 = (int)(char)(&DAT_00023da0)[local_84 * 0xc];\n            goto LAB_0001ba65;\n          }\n          local_84 = local_84 + 1;\n          if (local_84 == 0xb) break;\n          dVar2 = *pdVar8;\n          pdVar8 = (double *)((int)pdVar8 + 0xc);\n        }" ({ "{") (expression_statement "dVar2 = dVar2 * (dVar1 / (double)DAT_0002e15c);" (assignment_expression "dVar2 = dVar2 * (dVar1 / (double)DAT_0002e15c)" (identifier "dVar2") (= "=") (binary_expression "dVar2 * (dVar1 / (double)DAT_0002e15c)" (identifier "dVar2") (* "*") (parenthesized_expression "(dVar1 / (double)DAT_0002e15c)" (( "(") (binary_expression "dVar1 / (double)DAT_0002e15c" (identifier "dVar1") (/ "/") (cast_expression "(double)DAT_0002e15c" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0002e15c"))) () ")")))) (; ";")) (if_statement "if ((1.0 <= dVar2) && (dVar2 < (double)DAT_00023e2c)) {\n            iVar14 = (int)(char)(&DAT_00023da0)[local_84 * 0xc];\n            goto LAB_0001ba65;\n          }" (if "if") (parenthesized_expression "((1.0 <= dVar2) && (dVar2 < (double)DAT_00023e2c))" (( "(") (binary_expression "(1.0 <= dVar2) && (dVar2 < (double)DAT_00023e2c)" (parenthesized_expression "(1.0 <= dVar2)" (( "(") (binary_expression "1.0 <= dVar2" (number_literal "1.0") (<= "<=") (identifier "dVar2")) () ")")) (&& "&&") (parenthesized_expression "(dVar2 < (double)DAT_00023e2c)" (( "(") (binary_expression "dVar2 < (double)DAT_00023e2c" (identifier "dVar2") (< "<") (cast_expression "(double)DAT_00023e2c" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_00023e2c"))) () ")"))) () ")")) (compound_statement "{\n            iVar14 = (int)(char)(&DAT_00023da0)[local_84 * 0xc];\n            goto LAB_0001ba65;\n          }" ({ "{") (expression_statement "iVar14 = (int)(char)(&DAT_00023da0)[local_84 * 0xc];" (assignment_expression "iVar14 = (int)(char)(&DAT_00023da0)[local_84 * 0xc]" (identifier "iVar14") (= "=") (cast_expression "(int)(char)(&DAT_00023da0)[local_84 * 0xc]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)(&DAT_00023da0)[local_84 * 0xc]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "(&DAT_00023da0)[local_84 * 0xc]" (parenthesized_expression "(&DAT_00023da0)" (( "(") (pointer_expression "&DAT_00023da0" (& "&") (identifier "DAT_00023da0")) () ")")) ([ "[") (binary_expression "local_84 * 0xc" (identifier "local_84") (* "*") (number_literal "0xc")) (] "]"))))) (; ";")) (goto_statement "goto LAB_0001ba65;" (goto "goto") (statement_identifier "LAB_0001ba65") (; ";")) (} "}"))) (expression_statement "local_84 = local_84 + 1;" (assignment_expression "local_84 = local_84 + 1" (identifier "local_84") (= "=") (binary_expression "local_84 + 1" (identifier "local_84") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (local_84 == 0xb) break;" (if "if") (parenthesized_expression "(local_84 == 0xb)" (( "(") (binary_expression "local_84 == 0xb" (identifier "local_84") (== "==") (number_literal "0xb")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "dVar2 = *pdVar8;" (assignment_expression "dVar2 = *pdVar8" (identifier "dVar2") (= "=") (pointer_expression "*pdVar8" (* "*") (identifier "pdVar8"))) (; ";")) (expression_statement "pdVar8 = (double *)((int)pdVar8 + 0xc);" (assignment_expression "pdVar8 = (double *)((int)pdVar8 + 0xc)" (identifier "pdVar8") (= "=") (cast_expression "(double *)((int)pdVar8 + 0xc)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar8 + 0xc)" (( "(") (binary_expression "(int)pdVar8 + 0xc" (cast_expression "(int)pdVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar8")) (+ "+") (number_literal "0xc")) () ")")))) (; ";")) (} "}"))) (expression_statement "iVar14 = 0;" (assignment_expression "iVar14 = 0" (identifier "iVar14") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_0001ba65;" (goto "goto") (statement_identifier "LAB_0001ba65") (; ";")) (} "}"))) (} "}"))) (expression_statement "iVar14 = 0x54;" (assignment_expression "iVar14 = 0x54" (identifier "iVar14") (= "=") (number_literal "0x54")) (; ";")) (expression_statement "local_84 = 0;" (assignment_expression "local_84 = 0" (identifier "local_84") (= "=") (number_literal "0")) (; ";")) (} "}")))) (labeled_statement "LAB_0001ba65:\n  iVar16 = (int)DAT_0002d4a4;" (statement_identifier "LAB_0001ba65") (: ":") (expression_statement "iVar16 = (int)DAT_0002d4a4;" (assignment_expression "iVar16 = (int)DAT_0002d4a4" (identifier "iVar16") (= "=") (cast_expression "(int)DAT_0002d4a4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "DAT_0002d4a4"))) (; ";"))) (expression_statement "pcVar9 = (char *)dcgettext("gprof","%c%c/call",5);" (assignment_expression "pcVar9 = (char *)dcgettext("gprof","%c%c/call",5)" (identifier "pcVar9") (= "=") (cast_expression "(char *)dcgettext("gprof","%c%c/call",5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext("gprof","%c%c/call",5)" (identifier "dcgettext") (argument_list "("gprof","%c%c/call",5)" (( "(") (string_literal ""gprof"" (" """) (string_content "gprof") (" """)) (, ",") (string_literal ""%c%c/call"" (" """) (string_content "%c%c/call") (" """)) (, ",") (number_literal "5") () ")"))))) (; ";")) (expression_statement "sprintf(local_5c,pcVar9,iVar14,iVar16);" (call_expression "sprintf(local_5c,pcVar9,iVar14,iVar16)" (identifier "sprintf") (argument_list "(local_5c,pcVar9,iVar14,iVar16)" (( "(") (identifier "local_5c") (, ",") (identifier "pcVar9") (, ",") (identifier "iVar14") (, ",") (identifier "iVar16") () ")"))) (; ";")) (if_statement "if (DAT_0002e150 == 0) {\n    fVar4 = DAT_00023e28 / (float)DAT_0002e15c;\n    pcVar9 = (char *)dcgettext("gprof","\nEach sample counts as %g %s.\n",5);\n    printf(pcVar9,SUB84((double)fVar4,0),(int)((ulonglong)(double)fVar4 >> 0x20),s_seconds_0002d4a8)\n    ;\n  }\n  else {\n    dVar1 = ROUND(DAT_0002e518);\n    pcVar9 = (char *)dcgettext("gprof","\ngranularity: each sample hit covers %ld byte(s)",5);\n    printf(pcVar9,(int)dVar1 * 2);\n    dVar1 = DAT_0002e168;\n    if (0.0 < DAT_0002e168) {\n      dVar2 = DAT_0002e168 / (double)DAT_0002e15c;\n      pcVar9 = (char *)dcgettext("gprof"," for %.2f%% of %.2f %s\n\n",5);\n      printf(pcVar9,SUB84((double)_DAT_000221d8 / dVar1,0),\n             (int)((ulonglong)((double)_DAT_000221d8 / dVar1) >> 0x20),SUB84(dVar2,0),\n             (int)((ulonglong)dVar2 >> 0x20),s_seconds_0002d4a8);\n    }\n  }" (if "if") (parenthesized_expression "(DAT_0002e150 == 0)" (( "(") (binary_expression "DAT_0002e150 == 0" (identifier "DAT_0002e150") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    fVar4 = DAT_00023e28 / (float)DAT_0002e15c;\n    pcVar9 = (char *)dcgettext("gprof","\nEach sample counts as %g %s.\n",5);\n    printf(pcVar9,SUB84((double)fVar4,0),(int)((ulonglong)(double)fVar4 >> 0x20),s_seconds_0002d4a8)\n    ;\n  }" ({ "{") (expression_statement "fVar4 = DAT_00023e28 / (float)DAT_0002e15c;" (assignment_expression "fVar4 = DAT_00023e28 / (float)DAT_0002e15c" (identifier "fVar4") (= "=") (binary_expression "DAT_00023e28 / (float)DAT_0002e15c" (identifier "DAT_00023e28") (/ "/") (cast_expression "(float)DAT_0002e15c" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "DAT_0002e15c")))) (; ";")) (expression_statement "pcVar9 = (char *)dcgettext("gprof","\nEach sample counts as %g %s.\n",5);" (assignment_expression "pcVar9 = (char *)dcgettext("gprof","\nEach sample counts as %g %s.\n",5)" (identifier "pcVar9") (= "=") (cast_expression "(char *)dcgettext("gprof","\nEach sample counts as %g %s.\n",5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext("gprof","\nEach sample counts as %g %s.\n",5)" (identifier "dcgettext") (argument_list "("gprof","\nEach sample counts as %g %s.\n",5)" (( "(") (string_literal ""gprof"" (" """) (string_content "gprof") (" """)) (, ",") (string_literal ""\nEach sample counts as %g %s.\n"" (" """) (escape_sequence "\n") (string_content "Each sample counts as %g %s.") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")"))))) (; ";")) (expression_statement "printf(pcVar9,SUB84((double)fVar4,0),(int)((ulonglong)(double)fVar4 >> 0x20),s_seconds_0002d4a8)\n    ;" (call_expression "printf(pcVar9,SUB84((double)fVar4,0),(int)((ulonglong)(double)fVar4 >> 0x20),s_seconds_0002d4a8)" (identifier "printf") (argument_list "(pcVar9,SUB84((double)fVar4,0),(int)((ulonglong)(double)fVar4 >> 0x20),s_seconds_0002d4a8)" (( "(") (identifier "pcVar9") (, ",") (call_expression "SUB84((double)fVar4,0)" (identifier "SUB84") (argument_list "((double)fVar4,0)" (( "(") (cast_expression "(double)fVar4" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar4")) (, ",") (number_literal "0") () ")"))) (, ",") (cast_expression "(int)((ulonglong)(double)fVar4 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)(double)fVar4 >> 0x20)" (( "(") (binary_expression "(ulonglong)(double)fVar4 >> 0x20" (cast_expression "(ulonglong)(double)fVar4" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (cast_expression "(double)fVar4" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar4"))) (>> ">>") (number_literal "0x20")) () ")"))) (, ",") (identifier "s_seconds_0002d4a8") () ")"))) (; ";")) (} "}")) (else_clause "else {\n    dVar1 = ROUND(DAT_0002e518);\n    pcVar9 = (char *)dcgettext("gprof","\ngranularity: each sample hit covers %ld byte(s)",5);\n    printf(pcVar9,(int)dVar1 * 2);\n    dVar1 = DAT_0002e168;\n    if (0.0 < DAT_0002e168) {\n      dVar2 = DAT_0002e168 / (double)DAT_0002e15c;\n      pcVar9 = (char *)dcgettext("gprof"," for %.2f%% of %.2f %s\n\n",5);\n      printf(pcVar9,SUB84((double)_DAT_000221d8 / dVar1,0),\n             (int)((ulonglong)((double)_DAT_000221d8 / dVar1) >> 0x20),SUB84(dVar2,0),\n             (int)((ulonglong)dVar2 >> 0x20),s_seconds_0002d4a8);\n    }\n  }" (else "else") (compound_statement "{\n    dVar1 = ROUND(DAT_0002e518);\n    pcVar9 = (char *)dcgettext("gprof","\ngranularity: each sample hit covers %ld byte(s)",5);\n    printf(pcVar9,(int)dVar1 * 2);\n    dVar1 = DAT_0002e168;\n    if (0.0 < DAT_0002e168) {\n      dVar2 = DAT_0002e168 / (double)DAT_0002e15c;\n      pcVar9 = (char *)dcgettext("gprof"," for %.2f%% of %.2f %s\n\n",5);\n      printf(pcVar9,SUB84((double)_DAT_000221d8 / dVar1,0),\n             (int)((ulonglong)((double)_DAT_000221d8 / dVar1) >> 0x20),SUB84(dVar2,0),\n             (int)((ulonglong)dVar2 >> 0x20),s_seconds_0002d4a8);\n    }\n  }" ({ "{") (expression_statement "dVar1 = ROUND(DAT_0002e518);" (assignment_expression "dVar1 = ROUND(DAT_0002e518)" (identifier "dVar1") (= "=") (call_expression "ROUND(DAT_0002e518)" (identifier "ROUND") (argument_list "(DAT_0002e518)" (( "(") (identifier "DAT_0002e518") () ")")))) (; ";")) (expression_statement "pcVar9 = (char *)dcgettext("gprof","\ngranularity: each sample hit covers %ld byte(s)",5);" (assignment_expression "pcVar9 = (char *)dcgettext("gprof","\ngranularity: each sample hit covers %ld byte(s)",5)" (identifier "pcVar9") (= "=") (cast_expression "(char *)dcgettext("gprof","\ngranularity: each sample hit covers %ld byte(s)",5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext("gprof","\ngranularity: each sample hit covers %ld byte(s)",5)" (identifier "dcgettext") (argument_list "("gprof","\ngranularity: each sample hit covers %ld byte(s)",5)" (( "(") (string_literal ""gprof"" (" """) (string_content "gprof") (" """)) (, ",") (string_literal ""\ngranularity: each sample hit covers %ld byte(s)"" (" """) (escape_sequence "\n") (string_content "granularity: each sample hit covers %ld byte(s)") (" """)) (, ",") (number_literal "5") () ")"))))) (; ";")) (expression_statement "printf(pcVar9,(int)dVar1 * 2);" (call_expression "printf(pcVar9,(int)dVar1 * 2)" (identifier "printf") (argument_list "(pcVar9,(int)dVar1 * 2)" (( "(") (identifier "pcVar9") (, ",") (binary_expression "(int)dVar1 * 2" (cast_expression "(int)dVar1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "dVar1")) (* "*") (number_literal "2")) () ")"))) (; ";")) (expression_statement "dVar1 = DAT_0002e168;" (assignment_expression "dVar1 = DAT_0002e168" (identifier "dVar1") (= "=") (identifier "DAT_0002e168")) (; ";")) (if_statement "if (0.0 < DAT_0002e168) {\n      dVar2 = DAT_0002e168 / (double)DAT_0002e15c;\n      pcVar9 = (char *)dcgettext("gprof"," for %.2f%% of %.2f %s\n\n",5);\n      printf(pcVar9,SUB84((double)_DAT_000221d8 / dVar1,0),\n             (int)((ulonglong)((double)_DAT_000221d8 / dVar1) >> 0x20),SUB84(dVar2,0),\n             (int)((ulonglong)dVar2 >> 0x20),s_seconds_0002d4a8);\n    }" (if "if") (parenthesized_expression "(0.0 < DAT_0002e168)" (( "(") (binary_expression "0.0 < DAT_0002e168" (number_literal "0.0") (< "<") (identifier "DAT_0002e168")) () ")")) (compound_statement "{\n      dVar2 = DAT_0002e168 / (double)DAT_0002e15c;\n      pcVar9 = (char *)dcgettext("gprof"," for %.2f%% of %.2f %s\n\n",5);\n      printf(pcVar9,SUB84((double)_DAT_000221d8 / dVar1,0),\n             (int)((ulonglong)((double)_DAT_000221d8 / dVar1) >> 0x20),SUB84(dVar2,0),\n             (int)((ulonglong)dVar2 >> 0x20),s_seconds_0002d4a8);\n    }" ({ "{") (expression_statement "dVar2 = DAT_0002e168 / (double)DAT_0002e15c;" (assignment_expression "dVar2 = DAT_0002e168 / (double)DAT_0002e15c" (identifier "dVar2") (= "=") (binary_expression "DAT_0002e168 / (double)DAT_0002e15c" (identifier "DAT_0002e168") (/ "/") (cast_expression "(double)DAT_0002e15c" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0002e15c")))) (; ";")) (expression_statement "pcVar9 = (char *)dcgettext("gprof"," for %.2f%% of %.2f %s\n\n",5);" (assignment_expression "pcVar9 = (char *)dcgettext("gprof"," for %.2f%% of %.2f %s\n\n",5)" (identifier "pcVar9") (= "=") (cast_expression "(char *)dcgettext("gprof"," for %.2f%% of %.2f %s\n\n",5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext("gprof"," for %.2f%% of %.2f %s\n\n",5)" (identifier "dcgettext") (argument_list "("gprof"," for %.2f%% of %.2f %s\n\n",5)" (( "(") (string_literal ""gprof"" (" """) (string_content "gprof") (" """)) (, ",") (string_literal "" for %.2f%% of %.2f %s\n\n"" (" """) (string_content " for %.2f%% of %.2f %s") (escape_sequence "\n") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")"))))) (; ";")) (expression_statement "printf(pcVar9,SUB84((double)_DAT_000221d8 / dVar1,0),\n             (int)((ulonglong)((double)_DAT_000221d8 / dVar1) >> 0x20),SUB84(dVar2,0),\n             (int)((ulonglong)dVar2 >> 0x20),s_seconds_0002d4a8);" (call_expression "printf(pcVar9,SUB84((double)_DAT_000221d8 / dVar1,0),\n             (int)((ulonglong)((double)_DAT_000221d8 / dVar1) >> 0x20),SUB84(dVar2,0),\n             (int)((ulonglong)dVar2 >> 0x20),s_seconds_0002d4a8)" (identifier "printf") (argument_list "(pcVar9,SUB84((double)_DAT_000221d8 / dVar1,0),\n             (int)((ulonglong)((double)_DAT_000221d8 / dVar1) >> 0x20),SUB84(dVar2,0),\n             (int)((ulonglong)dVar2 >> 0x20),s_seconds_0002d4a8)" (( "(") (identifier "pcVar9") (, ",") (call_expression "SUB84((double)_DAT_000221d8 / dVar1,0)" (identifier "SUB84") (argument_list "((double)_DAT_000221d8 / dVar1,0)" (( "(") (binary_expression "(double)_DAT_000221d8 / dVar1" (cast_expression "(double)_DAT_000221d8" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "_DAT_000221d8")) (/ "/") (identifier "dVar1")) (, ",") (number_literal "0") () ")"))) (, ",") (cast_expression "(int)((ulonglong)((double)_DAT_000221d8 / dVar1) >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)((double)_DAT_000221d8 / dVar1) >> 0x20)" (( "(") (binary_expression "(ulonglong)((double)_DAT_000221d8 / dVar1) >> 0x20" (call_expression "(ulonglong)((double)_DAT_000221d8 / dVar1)" (parenthesized_expression "(ulonglong)" (( "(") (identifier "ulonglong") () ")")) (argument_list "((double)_DAT_000221d8 / dVar1)" (( "(") (binary_expression "(double)_DAT_000221d8 / dVar1" (cast_expression "(double)_DAT_000221d8" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "_DAT_000221d8")) (/ "/") (identifier "dVar1")) () ")"))) (>> ">>") (number_literal "0x20")) () ")"))) (, ",") (call_expression "SUB84(dVar2,0)" (identifier "SUB84") (argument_list "(dVar2,0)" (( "(") (identifier "dVar2") (, ",") (number_literal "0") () ")"))) (, ",") (cast_expression "(int)((ulonglong)dVar2 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)dVar2 >> 0x20)" (( "(") (binary_expression "(ulonglong)dVar2 >> 0x20" (cast_expression "(ulonglong)dVar2" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar2")) (>> ">>") (number_literal "0x20")) () ")"))) (, ",") (identifier "s_seconds_0002d4a8") () ")"))) (; ";")) (} "}"))) (} "}")))) (if_statement "if (DAT_0002e168 <= 0.0) {\n    pcVar9 = (char *)dcgettext("gprof"," no time accumulated\n\n",5);\n    printf(pcVar9);\n    DAT_0002e168 = 1.0;\n  }" (if "if") (parenthesized_expression "(DAT_0002e168 <= 0.0)" (( "(") (binary_expression "DAT_0002e168 <= 0.0" (identifier "DAT_0002e168") (<= "<=") (number_literal "0.0")) () ")")) (compound_statement "{\n    pcVar9 = (char *)dcgettext("gprof"," no time accumulated\n\n",5);\n    printf(pcVar9);\n    DAT_0002e168 = 1.0;\n  }" ({ "{") (expression_statement "pcVar9 = (char *)dcgettext("gprof"," no time accumulated\n\n",5);" (assignment_expression "pcVar9 = (char *)dcgettext("gprof"," no time accumulated\n\n",5)" (identifier "pcVar9") (= "=") (cast_expression "(char *)dcgettext("gprof"," no time accumulated\n\n",5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext("gprof"," no time accumulated\n\n",5)" (identifier "dcgettext") (argument_list "("gprof"," no time accumulated\n\n",5)" (( "(") (string_literal ""gprof"" (" """) (string_content "gprof") (" """)) (, ",") (string_literal "" no time accumulated\n\n"" (" """) (string_content " no time accumulated") (escape_sequence "\n") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")"))))) (; ";")) (expression_statement "printf(pcVar9);" (call_expression "printf(pcVar9)" (identifier "printf") (argument_list "(pcVar9)" (( "(") (identifier "pcVar9") () ")"))) (; ";")) (expression_statement "DAT_0002e168 = 1.0;" (assignment_expression "DAT_0002e168 = 1.0" (identifier "DAT_0002e168") (= "=") (number_literal "1.0")) (; ";")) (} "}"))) (expression_statement "uVar10 = dcgettext("gprof","total ",5);" (assignment_expression "uVar10 = dcgettext("gprof","total ",5)" (identifier "uVar10") (= "=") (call_expression "dcgettext("gprof","total ",5)" (identifier "dcgettext") (argument_list "("gprof","total ",5)" (( "(") (string_literal ""gprof"" (" """) (string_content "gprof") (" """)) (, ",") (string_literal ""total "" (" """) (string_content "total ") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "uVar11 = dcgettext("gprof","self  ",5);" (assignment_expression "uVar11 = dcgettext("gprof","self  ",5)" (identifier "uVar11") (= "=") (call_expression "dcgettext("gprof","self  ",5)" (identifier "dcgettext") (argument_list "("gprof","self  ",5)" (( "(") (string_literal ""gprof"" (" """) (string_content "gprof") (" """)) (, ",") (string_literal ""self  "" (" """) (string_content "self  ") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "uVar12 = dcgettext("gprof","self  ",5);" (assignment_expression "uVar12 = dcgettext("gprof","self  ",5)" (identifier "uVar12") (= "=") (call_expression "dcgettext("gprof","self  ",5)" (identifier "dcgettext") (argument_list "("gprof","self  ",5)" (( "(") (string_literal ""gprof"" (" """) (string_content "gprof") (" """)) (, ",") (string_literal ""self  "" (" """) (string_content "self  ") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "uVar13 = dcgettext("gprof","cumulative",5);" (assignment_expression "uVar13 = dcgettext("gprof","cumulative",5)" (identifier "uVar13") (= "=") (call_expression "dcgettext("gprof","cumulative",5)" (identifier "dcgettext") (argument_list "("gprof","cumulative",5)" (( "(") (string_literal ""gprof"" (" """) (string_content "gprof") (" """)) (, ",") (string_literal ""cumulative"" (" """) (string_content "cumulative") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "printf("%5.5s %10.10s %8.8s %8.8s %8.8s %8.8s  %-8.8s\n",&DAT_00023d2f,uVar13,uVar12,"",uVar11,\n         uVar10,"");" (call_expression "printf("%5.5s %10.10s %8.8s %8.8s %8.8s %8.8s  %-8.8s\n",&DAT_00023d2f,uVar13,uVar12,"",uVar11,\n         uVar10,"")" (identifier "printf") (argument_list "("%5.5s %10.10s %8.8s %8.8s %8.8s %8.8s  %-8.8s\n",&DAT_00023d2f,uVar13,uVar12,"",uVar11,\n         uVar10,"")" (( "(") (string_literal ""%5.5s %10.10s %8.8s %8.8s %8.8s %8.8s  %-8.8s\n"" (" """) (string_content "%5.5s %10.10s %8.8s %8.8s %8.8s %8.8s  %-8.8s") (escape_sequence "\n") (" """)) (, ",") (pointer_expression "&DAT_00023d2f" (& "&") (identifier "DAT_00023d2f")) (, ",") (identifier "uVar13") (, ",") (identifier "uVar12") (, ",") (string_literal """" (" """) (" """)) (, ",") (identifier "uVar11") (, ",") (identifier "uVar10") (, ",") (string_literal """" (" """) (" """)) () ")"))) (; ";")) (expression_statement "uVar10 = dcgettext("gprof",&DAT_000229c1,5);" (assignment_expression "uVar10 = dcgettext("gprof",&DAT_000229c1,5)" (identifier "uVar10") (= "=") (call_expression "dcgettext("gprof",&DAT_000229c1,5)" (identifier "dcgettext") (argument_list "("gprof",&DAT_000229c1,5)" (( "(") (string_literal ""gprof"" (" """) (string_content "gprof") (" """)) (, ",") (pointer_expression "&DAT_000229c1" (& "&") (identifier "DAT_000229c1")) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "uVar11 = dcgettext("gprof","calls",5);" (assignment_expression "uVar11 = dcgettext("gprof","calls",5)" (identifier "uVar11") (= "=") (call_expression "dcgettext("gprof","calls",5)" (identifier "dcgettext") (argument_list "("gprof","calls",5)" (( "(") (string_literal ""gprof"" (" """) (string_content "gprof") (" """)) (, ",") (string_literal ""calls"" (" """) (string_content "calls") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "uVar12 = dcgettext("gprof",&DAT_000229d8,5);" (assignment_expression "uVar12 = dcgettext("gprof",&DAT_000229d8,5)" (identifier "uVar12") (= "=") (call_expression "dcgettext("gprof",&DAT_000229d8,5)" (identifier "dcgettext") (argument_list "("gprof",&DAT_000229d8,5)" (( "(") (string_literal ""gprof"" (" """) (string_content "gprof") (" """)) (, ",") (pointer_expression "&DAT_000229d8" (& "&") (identifier "DAT_000229d8")) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" (identifier "uVar17") (= "=") (number_literal "0")) (; ";")) (expression_statement "printf("%5.5s %9.9s  %8.8s %8.8s %8.8s %8.8s  %-8.8s\n",uVar12,s_seconds_0002d4a8,\n         s_seconds_0002d4a8,uVar11,local_5c,local_5c,uVar10);" (call_expression "printf("%5.5s %9.9s  %8.8s %8.8s %8.8s %8.8s  %-8.8s\n",uVar12,s_seconds_0002d4a8,\n         s_seconds_0002d4a8,uVar11,local_5c,local_5c,uVar10)" (identifier "printf") (argument_list "("%5.5s %9.9s  %8.8s %8.8s %8.8s %8.8s  %-8.8s\n",uVar12,s_seconds_0002d4a8,\n         s_seconds_0002d4a8,uVar11,local_5c,local_5c,uVar10)" (( "(") (string_literal ""%5.5s %9.9s  %8.8s %8.8s %8.8s %8.8s  %-8.8s\n"" (" """) (string_content "%5.5s %9.9s  %8.8s %8.8s %8.8s %8.8s  %-8.8s") (escape_sequence "\n") (" """)) (, ",") (identifier "uVar12") (, ",") (identifier "s_seconds_0002d4a8") (, ",") (identifier "s_seconds_0002d4a8") (, ",") (identifier "uVar11") (, ",") (identifier "local_5c") (, ",") (identifier "local_5c") (, ",") (identifier "uVar10") () ")"))) (; ";")) (if_statement "if (DAT_0002e520 != 0) {\n    do {\n      while( true ) {\n        uVar10 = *(undefined4 *)__base[uVar17];\n        uVar11 = ((undefined4 *)__base[uVar17])[1];\n        iVar14 = FUN_0001d480(&DAT_0002e570,uVar10,uVar11);\n        if (iVar14 == 0) break;\nLAB_0001bc00:\n        dVar1 = *(double *)(&UNK_00023da4 + local_84 * 0xc);\n        iVar14 = __base[uVar17];\n        dVar2 = *(double *)(iVar14 + 0xa8);\n        if (((DAT_0002d1c0 == 0) || (*(int *)(iVar14 + 0x20) != 0)) || (dVar2 != 0.0)) {\n          DAT_0002e170 = DAT_0002e170 + dVar2;\n          dVar5 = dVar2 / (double)DAT_0002e15c;\n          dVar6 = DAT_0002e170 / (double)DAT_0002e15c;\n          uVar12 = SUB84(dVar5,0);\n          uVar13 = (undefined4)((ulonglong)dVar5 >> 0x20);\n          uVar10 = SUB84(dVar6,0);\n          uVar11 = (undefined4)((ulonglong)dVar6 >> 0x20);\n          if (DAT_0002e150 == 0) {\n            if (DAT_0002e168 <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;\n            }\n            printf("%6.2f %9.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11,\n                   uVar12,uVar13);\n          }\n          else {\n            if (DAT_0002e168 <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;\n            }\n            printf("%5.1f %10.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11\n                   ,uVar12,uVar13);\n          }\n          uVar3 = *(uint *)(iVar14 + 0x20);\n          if (uVar3 == 0) {\n            printf(" %8.8s %8.8s %8.8s  ","","","");\n          }\n          else {\n            dVar2 = (((*(double *)(iVar14 + 0xbc) + *(double *)(iVar14 + 0xa8)) * dVar1) /\n                    (double)DAT_0002e15c) / (double)uVar3;\n            dVar1 = ((dVar1 * *(double *)(iVar14 + 0xa8)) / (double)DAT_0002e15c) / (double)uVar3;\n            printf(" %8lu %8.2f %8.2f  ",uVar3,SUB84(dVar1,0),(int)((ulonglong)dVar1 >> 0x20),\n                   SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar13);\n          }\n          if (DAT_0002e150 == 0) {\n            FUN_0001df00(iVar14);\n          }\n          else {\n            FUN_0001e170(iVar14);\n          }\n          putchar(10);\n        }\nLAB_0001bd38:\n        uVar17 = uVar17 + 1;\n        if (DAT_0002e520 <= uVar17) goto LAB_0001bda0;\n      }\n      if (DAT_0002e570 != 0) goto LAB_0001bd38;\n      iVar14 = FUN_0001d480(&DAT_0002e57c,uVar10,uVar11);\n      if (iVar14 == 0) goto LAB_0001bc00;\n      uVar17 = uVar17 + 1;\n    } while (uVar17 < DAT_0002e520);\n  }" (if "if") (parenthesized_expression "(DAT_0002e520 != 0)" (( "(") (binary_expression "DAT_0002e520 != 0" (identifier "DAT_0002e520") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    do {\n      while( true ) {\n        uVar10 = *(undefined4 *)__base[uVar17];\n        uVar11 = ((undefined4 *)__base[uVar17])[1];\n        iVar14 = FUN_0001d480(&DAT_0002e570,uVar10,uVar11);\n        if (iVar14 == 0) break;\nLAB_0001bc00:\n        dVar1 = *(double *)(&UNK_00023da4 + local_84 * 0xc);\n        iVar14 = __base[uVar17];\n        dVar2 = *(double *)(iVar14 + 0xa8);\n        if (((DAT_0002d1c0 == 0) || (*(int *)(iVar14 + 0x20) != 0)) || (dVar2 != 0.0)) {\n          DAT_0002e170 = DAT_0002e170 + dVar2;\n          dVar5 = dVar2 / (double)DAT_0002e15c;\n          dVar6 = DAT_0002e170 / (double)DAT_0002e15c;\n          uVar12 = SUB84(dVar5,0);\n          uVar13 = (undefined4)((ulonglong)dVar5 >> 0x20);\n          uVar10 = SUB84(dVar6,0);\n          uVar11 = (undefined4)((ulonglong)dVar6 >> 0x20);\n          if (DAT_0002e150 == 0) {\n            if (DAT_0002e168 <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;\n            }\n            printf("%6.2f %9.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11,\n                   uVar12,uVar13);\n          }\n          else {\n            if (DAT_0002e168 <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;\n            }\n            printf("%5.1f %10.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11\n                   ,uVar12,uVar13);\n          }\n          uVar3 = *(uint *)(iVar14 + 0x20);\n          if (uVar3 == 0) {\n            printf(" %8.8s %8.8s %8.8s  ","","","");\n          }\n          else {\n            dVar2 = (((*(double *)(iVar14 + 0xbc) + *(double *)(iVar14 + 0xa8)) * dVar1) /\n                    (double)DAT_0002e15c) / (double)uVar3;\n            dVar1 = ((dVar1 * *(double *)(iVar14 + 0xa8)) / (double)DAT_0002e15c) / (double)uVar3;\n            printf(" %8lu %8.2f %8.2f  ",uVar3,SUB84(dVar1,0),(int)((ulonglong)dVar1 >> 0x20),\n                   SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar13);\n          }\n          if (DAT_0002e150 == 0) {\n            FUN_0001df00(iVar14);\n          }\n          else {\n            FUN_0001e170(iVar14);\n          }\n          putchar(10);\n        }\nLAB_0001bd38:\n        uVar17 = uVar17 + 1;\n        if (DAT_0002e520 <= uVar17) goto LAB_0001bda0;\n      }\n      if (DAT_0002e570 != 0) goto LAB_0001bd38;\n      iVar14 = FUN_0001d480(&DAT_0002e57c,uVar10,uVar11);\n      if (iVar14 == 0) goto LAB_0001bc00;\n      uVar17 = uVar17 + 1;\n    } while (uVar17 < DAT_0002e520);\n  }" ({ "{") (do_statement "do {\n      while( true ) {\n        uVar10 = *(undefined4 *)__base[uVar17];\n        uVar11 = ((undefined4 *)__base[uVar17])[1];\n        iVar14 = FUN_0001d480(&DAT_0002e570,uVar10,uVar11);\n        if (iVar14 == 0) break;\nLAB_0001bc00:\n        dVar1 = *(double *)(&UNK_00023da4 + local_84 * 0xc);\n        iVar14 = __base[uVar17];\n        dVar2 = *(double *)(iVar14 + 0xa8);\n        if (((DAT_0002d1c0 == 0) || (*(int *)(iVar14 + 0x20) != 0)) || (dVar2 != 0.0)) {\n          DAT_0002e170 = DAT_0002e170 + dVar2;\n          dVar5 = dVar2 / (double)DAT_0002e15c;\n          dVar6 = DAT_0002e170 / (double)DAT_0002e15c;\n          uVar12 = SUB84(dVar5,0);\n          uVar13 = (undefined4)((ulonglong)dVar5 >> 0x20);\n          uVar10 = SUB84(dVar6,0);\n          uVar11 = (undefined4)((ulonglong)dVar6 >> 0x20);\n          if (DAT_0002e150 == 0) {\n            if (DAT_0002e168 <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;\n            }\n            printf("%6.2f %9.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11,\n                   uVar12,uVar13);\n          }\n          else {\n            if (DAT_0002e168 <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;\n            }\n            printf("%5.1f %10.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11\n                   ,uVar12,uVar13);\n          }\n          uVar3 = *(uint *)(iVar14 + 0x20);\n          if (uVar3 == 0) {\n            printf(" %8.8s %8.8s %8.8s  ","","","");\n          }\n          else {\n            dVar2 = (((*(double *)(iVar14 + 0xbc) + *(double *)(iVar14 + 0xa8)) * dVar1) /\n                    (double)DAT_0002e15c) / (double)uVar3;\n            dVar1 = ((dVar1 * *(double *)(iVar14 + 0xa8)) / (double)DAT_0002e15c) / (double)uVar3;\n            printf(" %8lu %8.2f %8.2f  ",uVar3,SUB84(dVar1,0),(int)((ulonglong)dVar1 >> 0x20),\n                   SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar13);\n          }\n          if (DAT_0002e150 == 0) {\n            FUN_0001df00(iVar14);\n          }\n          else {\n            FUN_0001e170(iVar14);\n          }\n          putchar(10);\n        }\nLAB_0001bd38:\n        uVar17 = uVar17 + 1;\n        if (DAT_0002e520 <= uVar17) goto LAB_0001bda0;\n      }\n      if (DAT_0002e570 != 0) goto LAB_0001bd38;\n      iVar14 = FUN_0001d480(&DAT_0002e57c,uVar10,uVar11);\n      if (iVar14 == 0) goto LAB_0001bc00;\n      uVar17 = uVar17 + 1;\n    } while (uVar17 < DAT_0002e520);" (do "do") (compound_statement "{\n      while( true ) {\n        uVar10 = *(undefined4 *)__base[uVar17];\n        uVar11 = ((undefined4 *)__base[uVar17])[1];\n        iVar14 = FUN_0001d480(&DAT_0002e570,uVar10,uVar11);\n        if (iVar14 == 0) break;\nLAB_0001bc00:\n        dVar1 = *(double *)(&UNK_00023da4 + local_84 * 0xc);\n        iVar14 = __base[uVar17];\n        dVar2 = *(double *)(iVar14 + 0xa8);\n        if (((DAT_0002d1c0 == 0) || (*(int *)(iVar14 + 0x20) != 0)) || (dVar2 != 0.0)) {\n          DAT_0002e170 = DAT_0002e170 + dVar2;\n          dVar5 = dVar2 / (double)DAT_0002e15c;\n          dVar6 = DAT_0002e170 / (double)DAT_0002e15c;\n          uVar12 = SUB84(dVar5,0);\n          uVar13 = (undefined4)((ulonglong)dVar5 >> 0x20);\n          uVar10 = SUB84(dVar6,0);\n          uVar11 = (undefined4)((ulonglong)dVar6 >> 0x20);\n          if (DAT_0002e150 == 0) {\n            if (DAT_0002e168 <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;\n            }\n            printf("%6.2f %9.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11,\n                   uVar12,uVar13);\n          }\n          else {\n            if (DAT_0002e168 <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;\n            }\n            printf("%5.1f %10.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11\n                   ,uVar12,uVar13);\n          }\n          uVar3 = *(uint *)(iVar14 + 0x20);\n          if (uVar3 == 0) {\n            printf(" %8.8s %8.8s %8.8s  ","","","");\n          }\n          else {\n            dVar2 = (((*(double *)(iVar14 + 0xbc) + *(double *)(iVar14 + 0xa8)) * dVar1) /\n                    (double)DAT_0002e15c) / (double)uVar3;\n            dVar1 = ((dVar1 * *(double *)(iVar14 + 0xa8)) / (double)DAT_0002e15c) / (double)uVar3;\n            printf(" %8lu %8.2f %8.2f  ",uVar3,SUB84(dVar1,0),(int)((ulonglong)dVar1 >> 0x20),\n                   SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar13);\n          }\n          if (DAT_0002e150 == 0) {\n            FUN_0001df00(iVar14);\n          }\n          else {\n            FUN_0001e170(iVar14);\n          }\n          putchar(10);\n        }\nLAB_0001bd38:\n        uVar17 = uVar17 + 1;\n        if (DAT_0002e520 <= uVar17) goto LAB_0001bda0;\n      }\n      if (DAT_0002e570 != 0) goto LAB_0001bd38;\n      iVar14 = FUN_0001d480(&DAT_0002e57c,uVar10,uVar11);\n      if (iVar14 == 0) goto LAB_0001bc00;\n      uVar17 = uVar17 + 1;\n    }" ({ "{") (while_statement "while( true ) {\n        uVar10 = *(undefined4 *)__base[uVar17];\n        uVar11 = ((undefined4 *)__base[uVar17])[1];\n        iVar14 = FUN_0001d480(&DAT_0002e570,uVar10,uVar11);\n        if (iVar14 == 0) break;\nLAB_0001bc00:\n        dVar1 = *(double *)(&UNK_00023da4 + local_84 * 0xc);\n        iVar14 = __base[uVar17];\n        dVar2 = *(double *)(iVar14 + 0xa8);\n        if (((DAT_0002d1c0 == 0) || (*(int *)(iVar14 + 0x20) != 0)) || (dVar2 != 0.0)) {\n          DAT_0002e170 = DAT_0002e170 + dVar2;\n          dVar5 = dVar2 / (double)DAT_0002e15c;\n          dVar6 = DAT_0002e170 / (double)DAT_0002e15c;\n          uVar12 = SUB84(dVar5,0);\n          uVar13 = (undefined4)((ulonglong)dVar5 >> 0x20);\n          uVar10 = SUB84(dVar6,0);\n          uVar11 = (undefined4)((ulonglong)dVar6 >> 0x20);\n          if (DAT_0002e150 == 0) {\n            if (DAT_0002e168 <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;\n            }\n            printf("%6.2f %9.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11,\n                   uVar12,uVar13);\n          }\n          else {\n            if (DAT_0002e168 <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;\n            }\n            printf("%5.1f %10.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11\n                   ,uVar12,uVar13);\n          }\n          uVar3 = *(uint *)(iVar14 + 0x20);\n          if (uVar3 == 0) {\n            printf(" %8.8s %8.8s %8.8s  ","","","");\n          }\n          else {\n            dVar2 = (((*(double *)(iVar14 + 0xbc) + *(double *)(iVar14 + 0xa8)) * dVar1) /\n                    (double)DAT_0002e15c) / (double)uVar3;\n            dVar1 = ((dVar1 * *(double *)(iVar14 + 0xa8)) / (double)DAT_0002e15c) / (double)uVar3;\n            printf(" %8lu %8.2f %8.2f  ",uVar3,SUB84(dVar1,0),(int)((ulonglong)dVar1 >> 0x20),\n                   SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar13);\n          }\n          if (DAT_0002e150 == 0) {\n            FUN_0001df00(iVar14);\n          }\n          else {\n            FUN_0001e170(iVar14);\n          }\n          putchar(10);\n        }\nLAB_0001bd38:\n        uVar17 = uVar17 + 1;\n        if (DAT_0002e520 <= uVar17) goto LAB_0001bda0;\n      }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n        uVar10 = *(undefined4 *)__base[uVar17];\n        uVar11 = ((undefined4 *)__base[uVar17])[1];\n        iVar14 = FUN_0001d480(&DAT_0002e570,uVar10,uVar11);\n        if (iVar14 == 0) break;\nLAB_0001bc00:\n        dVar1 = *(double *)(&UNK_00023da4 + local_84 * 0xc);\n        iVar14 = __base[uVar17];\n        dVar2 = *(double *)(iVar14 + 0xa8);\n        if (((DAT_0002d1c0 == 0) || (*(int *)(iVar14 + 0x20) != 0)) || (dVar2 != 0.0)) {\n          DAT_0002e170 = DAT_0002e170 + dVar2;\n          dVar5 = dVar2 / (double)DAT_0002e15c;\n          dVar6 = DAT_0002e170 / (double)DAT_0002e15c;\n          uVar12 = SUB84(dVar5,0);\n          uVar13 = (undefined4)((ulonglong)dVar5 >> 0x20);\n          uVar10 = SUB84(dVar6,0);\n          uVar11 = (undefined4)((ulonglong)dVar6 >> 0x20);\n          if (DAT_0002e150 == 0) {\n            if (DAT_0002e168 <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;\n            }\n            printf("%6.2f %9.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11,\n                   uVar12,uVar13);\n          }\n          else {\n            if (DAT_0002e168 <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;\n            }\n            printf("%5.1f %10.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11\n                   ,uVar12,uVar13);\n          }\n          uVar3 = *(uint *)(iVar14 + 0x20);\n          if (uVar3 == 0) {\n            printf(" %8.8s %8.8s %8.8s  ","","","");\n          }\n          else {\n            dVar2 = (((*(double *)(iVar14 + 0xbc) + *(double *)(iVar14 + 0xa8)) * dVar1) /\n                    (double)DAT_0002e15c) / (double)uVar3;\n            dVar1 = ((dVar1 * *(double *)(iVar14 + 0xa8)) / (double)DAT_0002e15c) / (double)uVar3;\n            printf(" %8lu %8.2f %8.2f  ",uVar3,SUB84(dVar1,0),(int)((ulonglong)dVar1 >> 0x20),\n                   SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar13);\n          }\n          if (DAT_0002e150 == 0) {\n            FUN_0001df00(iVar14);\n          }\n          else {\n            FUN_0001e170(iVar14);\n          }\n          putchar(10);\n        }\nLAB_0001bd38:\n        uVar17 = uVar17 + 1;\n        if (DAT_0002e520 <= uVar17) goto LAB_0001bda0;\n      }" ({ "{") (expression_statement "uVar10 = *(undefined4 *)__base[uVar17];" (assignment_expression "uVar10 = *(undefined4 *)__base[uVar17]" (identifier "uVar10") (= "=") (pointer_expression "*(undefined4 *)__base[uVar17]" (* "*") (cast_expression "(undefined4 *)__base[uVar17]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "__base[uVar17]" (identifier "__base") ([ "[") (identifier "uVar17") (] "]"))))) (; ";")) (expression_statement "uVar11 = ((undefined4 *)__base[uVar17])[1];" (assignment_expression "uVar11 = ((undefined4 *)__base[uVar17])[1]" (identifier "uVar11") (= "=") (subscript_expression "((undefined4 *)__base[uVar17])[1]" (parenthesized_expression "((undefined4 *)__base[uVar17])" (( "(") (cast_expression "(undefined4 *)__base[uVar17]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "__base[uVar17]" (identifier "__base") ([ "[") (identifier "uVar17") (] "]"))) () ")")) ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "iVar14 = FUN_0001d480(&DAT_0002e570,uVar10,uVar11);" (assignment_expression "iVar14 = FUN_0001d480(&DAT_0002e570,uVar10,uVar11)" (identifier "iVar14") (= "=") (call_expression "FUN_0001d480(&DAT_0002e570,uVar10,uVar11)" (identifier "FUN_0001d480") (argument_list "(&DAT_0002e570,uVar10,uVar11)" (( "(") (pointer_expression "&DAT_0002e570" (& "&") (identifier "DAT_0002e570")) (, ",") (identifier "uVar10") (, ",") (identifier "uVar11") () ")")))) (; ";")) (if_statement "if (iVar14 == 0) break;" (if "if") (parenthesized_expression "(iVar14 == 0)" (( "(") (binary_expression "iVar14 == 0" (identifier "iVar14") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (labeled_statement "LAB_0001bc00:\n        dVar1 = *(double *)(&UNK_00023da4 + local_84 * 0xc);" (statement_identifier "LAB_0001bc00") (: ":") (expression_statement "dVar1 = *(double *)(&UNK_00023da4 + local_84 * 0xc);" (assignment_expression "dVar1 = *(double *)(&UNK_00023da4 + local_84 * 0xc)" (identifier "dVar1") (= "=") (pointer_expression "*(double *)(&UNK_00023da4 + local_84 * 0xc)" (* "*") (cast_expression "(double *)(&UNK_00023da4 + local_84 * 0xc)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&UNK_00023da4 + local_84 * 0xc)" (( "(") (binary_expression "&UNK_00023da4 + local_84 * 0xc" (pointer_expression "&UNK_00023da4" (& "&") (identifier "UNK_00023da4")) (+ "+") (binary_expression "local_84 * 0xc" (identifier "local_84") (* "*") (number_literal "0xc"))) () ")"))))) (; ";"))) (expression_statement "iVar14 = __base[uVar17];" (assignment_expression "iVar14 = __base[uVar17]" (identifier "iVar14") (= "=") (subscript_expression "__base[uVar17]" (identifier "__base") ([ "[") (identifier "uVar17") (] "]"))) (; ";")) (expression_statement "dVar2 = *(double *)(iVar14 + 0xa8);" (assignment_expression "dVar2 = *(double *)(iVar14 + 0xa8)" (identifier "dVar2") (= "=") (pointer_expression "*(double *)(iVar14 + 0xa8)" (* "*") (cast_expression "(double *)(iVar14 + 0xa8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0xa8)" (( "(") (binary_expression "iVar14 + 0xa8" (identifier "iVar14") (+ "+") (number_literal "0xa8")) () ")"))))) (; ";")) (if_statement "if (((DAT_0002d1c0 == 0) || (*(int *)(iVar14 + 0x20) != 0)) || (dVar2 != 0.0)) {\n          DAT_0002e170 = DAT_0002e170 + dVar2;\n          dVar5 = dVar2 / (double)DAT_0002e15c;\n          dVar6 = DAT_0002e170 / (double)DAT_0002e15c;\n          uVar12 = SUB84(dVar5,0);\n          uVar13 = (undefined4)((ulonglong)dVar5 >> 0x20);\n          uVar10 = SUB84(dVar6,0);\n          uVar11 = (undefined4)((ulonglong)dVar6 >> 0x20);\n          if (DAT_0002e150 == 0) {\n            if (DAT_0002e168 <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;\n            }\n            printf("%6.2f %9.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11,\n                   uVar12,uVar13);\n          }\n          else {\n            if (DAT_0002e168 <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;\n            }\n            printf("%5.1f %10.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11\n                   ,uVar12,uVar13);\n          }\n          uVar3 = *(uint *)(iVar14 + 0x20);\n          if (uVar3 == 0) {\n            printf(" %8.8s %8.8s %8.8s  ","","","");\n          }\n          else {\n            dVar2 = (((*(double *)(iVar14 + 0xbc) + *(double *)(iVar14 + 0xa8)) * dVar1) /\n                    (double)DAT_0002e15c) / (double)uVar3;\n            dVar1 = ((dVar1 * *(double *)(iVar14 + 0xa8)) / (double)DAT_0002e15c) / (double)uVar3;\n            printf(" %8lu %8.2f %8.2f  ",uVar3,SUB84(dVar1,0),(int)((ulonglong)dVar1 >> 0x20),\n                   SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar13);\n          }\n          if (DAT_0002e150 == 0) {\n            FUN_0001df00(iVar14);\n          }\n          else {\n            FUN_0001e170(iVar14);\n          }\n          putchar(10);\n        }" (if "if") (parenthesized_expression "(((DAT_0002d1c0 == 0) || (*(int *)(iVar14 + 0x20) != 0)) || (dVar2 != 0.0))" (( "(") (binary_expression "((DAT_0002d1c0 == 0) || (*(int *)(iVar14 + 0x20) != 0)) || (dVar2 != 0.0)" (parenthesized_expression "((DAT_0002d1c0 == 0) || (*(int *)(iVar14 + 0x20) != 0))" (( "(") (binary_expression "(DAT_0002d1c0 == 0) || (*(int *)(iVar14 + 0x20) != 0)" (parenthesized_expression "(DAT_0002d1c0 == 0)" (( "(") (binary_expression "DAT_0002d1c0 == 0" (identifier "DAT_0002d1c0") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(*(int *)(iVar14 + 0x20) != 0)" (( "(") (binary_expression "*(int *)(iVar14 + 0x20) != 0" (pointer_expression "*(int *)(iVar14 + 0x20)" (* "*") (cast_expression "(int *)(iVar14 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0x20)" (( "(") (binary_expression "iVar14 + 0x20" (identifier "iVar14") (+ "+") (number_literal "0x20")) () ")")))) (!= "!=") (number_literal "0")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(dVar2 != 0.0)" (( "(") (binary_expression "dVar2 != 0.0" (identifier "dVar2") (!= "!=") (number_literal "0.0")) () ")"))) () ")")) (compound_statement "{\n          DAT_0002e170 = DAT_0002e170 + dVar2;\n          dVar5 = dVar2 / (double)DAT_0002e15c;\n          dVar6 = DAT_0002e170 / (double)DAT_0002e15c;\n          uVar12 = SUB84(dVar5,0);\n          uVar13 = (undefined4)((ulonglong)dVar5 >> 0x20);\n          uVar10 = SUB84(dVar6,0);\n          uVar11 = (undefined4)((ulonglong)dVar6 >> 0x20);\n          if (DAT_0002e150 == 0) {\n            if (DAT_0002e168 <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;\n            }\n            printf("%6.2f %9.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11,\n                   uVar12,uVar13);\n          }\n          else {\n            if (DAT_0002e168 <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;\n            }\n            printf("%5.1f %10.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11\n                   ,uVar12,uVar13);\n          }\n          uVar3 = *(uint *)(iVar14 + 0x20);\n          if (uVar3 == 0) {\n            printf(" %8.8s %8.8s %8.8s  ","","","");\n          }\n          else {\n            dVar2 = (((*(double *)(iVar14 + 0xbc) + *(double *)(iVar14 + 0xa8)) * dVar1) /\n                    (double)DAT_0002e15c) / (double)uVar3;\n            dVar1 = ((dVar1 * *(double *)(iVar14 + 0xa8)) / (double)DAT_0002e15c) / (double)uVar3;\n            printf(" %8lu %8.2f %8.2f  ",uVar3,SUB84(dVar1,0),(int)((ulonglong)dVar1 >> 0x20),\n                   SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar13);\n          }\n          if (DAT_0002e150 == 0) {\n            FUN_0001df00(iVar14);\n          }\n          else {\n            FUN_0001e170(iVar14);\n          }\n          putchar(10);\n        }" ({ "{") (expression_statement "DAT_0002e170 = DAT_0002e170 + dVar2;" (assignment_expression "DAT_0002e170 = DAT_0002e170 + dVar2" (identifier "DAT_0002e170") (= "=") (binary_expression "DAT_0002e170 + dVar2" (identifier "DAT_0002e170") (+ "+") (identifier "dVar2"))) (; ";")) (expression_statement "dVar5 = dVar2 / (double)DAT_0002e15c;" (assignment_expression "dVar5 = dVar2 / (double)DAT_0002e15c" (identifier "dVar5") (= "=") (binary_expression "dVar2 / (double)DAT_0002e15c" (identifier "dVar2") (/ "/") (cast_expression "(double)DAT_0002e15c" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0002e15c")))) (; ";")) (expression_statement "dVar6 = DAT_0002e170 / (double)DAT_0002e15c;" (assignment_expression "dVar6 = DAT_0002e170 / (double)DAT_0002e15c" (identifier "dVar6") (= "=") (binary_expression "DAT_0002e170 / (double)DAT_0002e15c" (identifier "DAT_0002e170") (/ "/") (cast_expression "(double)DAT_0002e15c" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0002e15c")))) (; ";")) (expression_statement "uVar12 = SUB84(dVar5,0);" (assignment_expression "uVar12 = SUB84(dVar5,0)" (identifier "uVar12") (= "=") (call_expression "SUB84(dVar5,0)" (identifier "SUB84") (argument_list "(dVar5,0)" (( "(") (identifier "dVar5") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "uVar13 = (undefined4)((ulonglong)dVar5 >> 0x20);" (assignment_expression "uVar13 = (undefined4)((ulonglong)dVar5 >> 0x20)" (identifier "uVar13") (= "=") (call_expression "(undefined4)((ulonglong)dVar5 >> 0x20)" (parenthesized_expression "(undefined4)" (( "(") (identifier "undefined4") () ")")) (argument_list "((ulonglong)dVar5 >> 0x20)" (( "(") (binary_expression "(ulonglong)dVar5 >> 0x20" (cast_expression "(ulonglong)dVar5" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar5")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "uVar10 = SUB84(dVar6,0);" (assignment_expression "uVar10 = SUB84(dVar6,0)" (identifier "uVar10") (= "=") (call_expression "SUB84(dVar6,0)" (identifier "SUB84") (argument_list "(dVar6,0)" (( "(") (identifier "dVar6") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "uVar11 = (undefined4)((ulonglong)dVar6 >> 0x20);" (assignment_expression "uVar11 = (undefined4)((ulonglong)dVar6 >> 0x20)" (identifier "uVar11") (= "=") (call_expression "(undefined4)((ulonglong)dVar6 >> 0x20)" (parenthesized_expression "(undefined4)" (( "(") (identifier "undefined4") () ")")) (argument_list "((ulonglong)dVar6 >> 0x20)" (( "(") (binary_expression "(ulonglong)dVar6 >> 0x20" (cast_expression "(ulonglong)dVar6" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar6")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (if_statement "if (DAT_0002e150 == 0) {\n            if (DAT_0002e168 <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;\n            }\n            printf("%6.2f %9.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11,\n                   uVar12,uVar13);\n          }\n          else {\n            if (DAT_0002e168 <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;\n            }\n            printf("%5.1f %10.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11\n                   ,uVar12,uVar13);\n          }" (if "if") (parenthesized_expression "(DAT_0002e150 == 0)" (( "(") (binary_expression "DAT_0002e150 == 0" (identifier "DAT_0002e150") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            if (DAT_0002e168 <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;\n            }\n            printf("%6.2f %9.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11,\n                   uVar12,uVar13);\n          }" ({ "{") (if_statement "if (DAT_0002e168 <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;\n            }" (if "if") (parenthesized_expression "(DAT_0002e168 <= 0.0)" (( "(") (binary_expression "DAT_0002e168 <= 0.0" (identifier "DAT_0002e168") (<= "<=") (number_literal "0.0")) () ")")) (compound_statement "{\n              dVar2 = 0.0;\n            }" ({ "{") (expression_statement "dVar2 = 0.0;" (assignment_expression "dVar2 = 0.0" (identifier "dVar2") (= "=") (number_literal "0.0")) (; ";")) (} "}")) (else_clause "else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;\n            }" (else "else") (compound_statement "{\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;\n            }" ({ "{") (expression_statement "dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;" (assignment_expression "dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168" (identifier "dVar2") (= "=") (binary_expression "(dVar2 * (double)_DAT_000221d8) / DAT_0002e168" (parenthesized_expression "(dVar2 * (double)_DAT_000221d8)" (( "(") (binary_expression "dVar2 * (double)_DAT_000221d8" (identifier "dVar2") (* "*") (cast_expression "(double)_DAT_000221d8" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "_DAT_000221d8"))) () ")")) (/ "/") (identifier "DAT_0002e168"))) (; ";")) (} "}")))) (expression_statement "printf("%6.2f %9.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11,\n                   uVar12,uVar13);" (call_expression "printf("%6.2f %9.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11,\n                   uVar12,uVar13)" (identifier "printf") (argument_list "("%6.2f %9.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11,\n                   uVar12,uVar13)" (( "(") (string_literal ""%6.2f %9.2f %8.2f"" (" """) (string_content "%6.2f %9.2f %8.2f") (" """)) (, ",") (call_expression "SUB84(dVar2,0)" (identifier "SUB84") (argument_list "(dVar2,0)" (( "(") (identifier "dVar2") (, ",") (number_literal "0") () ")"))) (, ",") (cast_expression "(int)((ulonglong)dVar2 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)dVar2 >> 0x20)" (( "(") (binary_expression "(ulonglong)dVar2 >> 0x20" (cast_expression "(ulonglong)dVar2" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar2")) (>> ">>") (number_literal "0x20")) () ")"))) (, ",") (identifier "uVar10") (, ",") (identifier "uVar11") (, ",") (identifier "uVar12") (, ",") (identifier "uVar13") () ")"))) (; ";")) (} "}")) (else_clause "else {\n            if (DAT_0002e168 <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;\n            }\n            printf("%5.1f %10.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11\n                   ,uVar12,uVar13);\n          }" (else "else") (compound_statement "{\n            if (DAT_0002e168 <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;\n            }\n            printf("%5.1f %10.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11\n                   ,uVar12,uVar13);\n          }" ({ "{") (if_statement "if (DAT_0002e168 <= 0.0) {\n              dVar2 = 0.0;\n            }\n            else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;\n            }" (if "if") (parenthesized_expression "(DAT_0002e168 <= 0.0)" (( "(") (binary_expression "DAT_0002e168 <= 0.0" (identifier "DAT_0002e168") (<= "<=") (number_literal "0.0")) () ")")) (compound_statement "{\n              dVar2 = 0.0;\n            }" ({ "{") (expression_statement "dVar2 = 0.0;" (assignment_expression "dVar2 = 0.0" (identifier "dVar2") (= "=") (number_literal "0.0")) (; ";")) (} "}")) (else_clause "else {\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;\n            }" (else "else") (compound_statement "{\n              dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;\n            }" ({ "{") (expression_statement "dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;" (assignment_expression "dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168" (identifier "dVar2") (= "=") (binary_expression "(dVar2 * (double)_DAT_000221d8) / DAT_0002e168" (parenthesized_expression "(dVar2 * (double)_DAT_000221d8)" (( "(") (binary_expression "dVar2 * (double)_DAT_000221d8" (identifier "dVar2") (* "*") (cast_expression "(double)_DAT_000221d8" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "_DAT_000221d8"))) () ")")) (/ "/") (identifier "DAT_0002e168"))) (; ";")) (} "}")))) (expression_statement "printf("%5.1f %10.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11\n                   ,uVar12,uVar13);" (call_expression "printf("%5.1f %10.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11\n                   ,uVar12,uVar13)" (identifier "printf") (argument_list "("%5.1f %10.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11\n                   ,uVar12,uVar13)" (( "(") (string_literal ""%5.1f %10.2f %8.2f"" (" """) (string_content "%5.1f %10.2f %8.2f") (" """)) (, ",") (call_expression "SUB84(dVar2,0)" (identifier "SUB84") (argument_list "(dVar2,0)" (( "(") (identifier "dVar2") (, ",") (number_literal "0") () ")"))) (, ",") (cast_expression "(int)((ulonglong)dVar2 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)dVar2 >> 0x20)" (( "(") (binary_expression "(ulonglong)dVar2 >> 0x20" (cast_expression "(ulonglong)dVar2" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar2")) (>> ">>") (number_literal "0x20")) () ")"))) (, ",") (identifier "uVar10") (, ",") (identifier "uVar11") (, ",") (identifier "uVar12") (, ",") (identifier "uVar13") () ")"))) (; ";")) (} "}")))) (expression_statement "uVar3 = *(uint *)(iVar14 + 0x20);" (assignment_expression "uVar3 = *(uint *)(iVar14 + 0x20)" (identifier "uVar3") (= "=") (pointer_expression "*(uint *)(iVar14 + 0x20)" (* "*") (cast_expression "(uint *)(iVar14 + 0x20)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0x20)" (( "(") (binary_expression "iVar14 + 0x20" (identifier "iVar14") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (if_statement "if (uVar3 == 0) {\n            printf(" %8.8s %8.8s %8.8s  ","","","");\n          }\n          else {\n            dVar2 = (((*(double *)(iVar14 + 0xbc) + *(double *)(iVar14 + 0xa8)) * dVar1) /\n                    (double)DAT_0002e15c) / (double)uVar3;\n            dVar1 = ((dVar1 * *(double *)(iVar14 + 0xa8)) / (double)DAT_0002e15c) / (double)uVar3;\n            printf(" %8lu %8.2f %8.2f  ",uVar3,SUB84(dVar1,0),(int)((ulonglong)dVar1 >> 0x20),\n                   SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar13);\n          }" (if "if") (parenthesized_expression "(uVar3 == 0)" (( "(") (binary_expression "uVar3 == 0" (identifier "uVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            printf(" %8.8s %8.8s %8.8s  ","","","");\n          }" ({ "{") (expression_statement "printf(" %8.8s %8.8s %8.8s  ","","","");" (call_expression "printf(" %8.8s %8.8s %8.8s  ","","","")" (identifier "printf") (argument_list "(" %8.8s %8.8s %8.8s  ","","","")" (( "(") (string_literal "" %8.8s %8.8s %8.8s  "" (" """) (string_content " %8.8s %8.8s %8.8s  ") (" """)) (, ",") (string_literal """" (" """) (" """)) (, ",") (string_literal """" (" """) (" """)) (, ",") (string_literal """" (" """) (" """)) () ")"))) (; ";")) (} "}")) (else_clause "else {\n            dVar2 = (((*(double *)(iVar14 + 0xbc) + *(double *)(iVar14 + 0xa8)) * dVar1) /\n                    (double)DAT_0002e15c) / (double)uVar3;\n            dVar1 = ((dVar1 * *(double *)(iVar14 + 0xa8)) / (double)DAT_0002e15c) / (double)uVar3;\n            printf(" %8lu %8.2f %8.2f  ",uVar3,SUB84(dVar1,0),(int)((ulonglong)dVar1 >> 0x20),\n                   SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar13);\n          }" (else "else") (compound_statement "{\n            dVar2 = (((*(double *)(iVar14 + 0xbc) + *(double *)(iVar14 + 0xa8)) * dVar1) /\n                    (double)DAT_0002e15c) / (double)uVar3;\n            dVar1 = ((dVar1 * *(double *)(iVar14 + 0xa8)) / (double)DAT_0002e15c) / (double)uVar3;\n            printf(" %8lu %8.2f %8.2f  ",uVar3,SUB84(dVar1,0),(int)((ulonglong)dVar1 >> 0x20),\n                   SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar13);\n          }" ({ "{") (expression_statement "dVar2 = (((*(double *)(iVar14 + 0xbc) + *(double *)(iVar14 + 0xa8)) * dVar1) /\n                    (double)DAT_0002e15c) / (double)uVar3;" (assignment_expression "dVar2 = (((*(double *)(iVar14 + 0xbc) + *(double *)(iVar14 + 0xa8)) * dVar1) /\n                    (double)DAT_0002e15c) / (double)uVar3" (identifier "dVar2") (= "=") (binary_expression "(((*(double *)(iVar14 + 0xbc) + *(double *)(iVar14 + 0xa8)) * dVar1) /\n                    (double)DAT_0002e15c) / (double)uVar3" (parenthesized_expression "(((*(double *)(iVar14 + 0xbc) + *(double *)(iVar14 + 0xa8)) * dVar1) /\n                    (double)DAT_0002e15c)" (( "(") (binary_expression "((*(double *)(iVar14 + 0xbc) + *(double *)(iVar14 + 0xa8)) * dVar1) /\n                    (double)DAT_0002e15c" (parenthesized_expression "((*(double *)(iVar14 + 0xbc) + *(double *)(iVar14 + 0xa8)) * dVar1)" (( "(") (binary_expression "(*(double *)(iVar14 + 0xbc) + *(double *)(iVar14 + 0xa8)) * dVar1" (parenthesized_expression "(*(double *)(iVar14 + 0xbc) + *(double *)(iVar14 + 0xa8))" (( "(") (binary_expression "*(double *)(iVar14 + 0xbc) + *(double *)(iVar14 + 0xa8)" (pointer_expression "*(double *)(iVar14 + 0xbc)" (* "*") (cast_expression "(double *)(iVar14 + 0xbc)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0xbc)" (( "(") (binary_expression "iVar14 + 0xbc" (identifier "iVar14") (+ "+") (number_literal "0xbc")) () ")")))) (+ "+") (pointer_expression "*(double *)(iVar14 + 0xa8)" (* "*") (cast_expression "(double *)(iVar14 + 0xa8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0xa8)" (( "(") (binary_expression "iVar14 + 0xa8" (identifier "iVar14") (+ "+") (number_literal "0xa8")) () ")"))))) () ")")) (* "*") (identifier "dVar1")) () ")")) (/ "/") (cast_expression "(double)DAT_0002e15c" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0002e15c"))) () ")")) (/ "/") (cast_expression "(double)uVar3" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "uVar3")))) (; ";")) (expression_statement "dVar1 = ((dVar1 * *(double *)(iVar14 + 0xa8)) / (double)DAT_0002e15c) / (double)uVar3;" (assignment_expression "dVar1 = ((dVar1 * *(double *)(iVar14 + 0xa8)) / (double)DAT_0002e15c) / (double)uVar3" (identifier "dVar1") (= "=") (binary_expression "((dVar1 * *(double *)(iVar14 + 0xa8)) / (double)DAT_0002e15c) / (double)uVar3" (parenthesized_expression "((dVar1 * *(double *)(iVar14 + 0xa8)) / (double)DAT_0002e15c)" (( "(") (binary_expression "(dVar1 * *(double *)(iVar14 + 0xa8)) / (double)DAT_0002e15c" (parenthesized_expression "(dVar1 * *(double *)(iVar14 + 0xa8))" (( "(") (binary_expression "dVar1 * *(double *)(iVar14 + 0xa8)" (identifier "dVar1") (* "*") (pointer_expression "*(double *)(iVar14 + 0xa8)" (* "*") (cast_expression "(double *)(iVar14 + 0xa8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0xa8)" (( "(") (binary_expression "iVar14 + 0xa8" (identifier "iVar14") (+ "+") (number_literal "0xa8")) () ")"))))) () ")")) (/ "/") (cast_expression "(double)DAT_0002e15c" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0002e15c"))) () ")")) (/ "/") (cast_expression "(double)uVar3" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "uVar3")))) (; ";")) (expression_statement "printf(" %8lu %8.2f %8.2f  ",uVar3,SUB84(dVar1,0),(int)((ulonglong)dVar1 >> 0x20),\n                   SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar13);" (call_expression "printf(" %8lu %8.2f %8.2f  ",uVar3,SUB84(dVar1,0),(int)((ulonglong)dVar1 >> 0x20),\n                   SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar13)" (identifier "printf") (argument_list "(" %8lu %8.2f %8.2f  ",uVar3,SUB84(dVar1,0),(int)((ulonglong)dVar1 >> 0x20),\n                   SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar13)" (( "(") (string_literal "" %8lu %8.2f %8.2f  "" (" """) (string_content " %8lu %8.2f %8.2f  ") (" """)) (, ",") (identifier "uVar3") (, ",") (call_expression "SUB84(dVar1,0)" (identifier "SUB84") (argument_list "(dVar1,0)" (( "(") (identifier "dVar1") (, ",") (number_literal "0") () ")"))) (, ",") (cast_expression "(int)((ulonglong)dVar1 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)dVar1 >> 0x20)" (( "(") (binary_expression "(ulonglong)dVar1 >> 0x20" (cast_expression "(ulonglong)dVar1" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar1")) (>> ">>") (number_literal "0x20")) () ")"))) (, ",") (call_expression "SUB84(dVar2,0)" (identifier "SUB84") (argument_list "(dVar2,0)" (( "(") (identifier "dVar2") (, ",") (number_literal "0") () ")"))) (, ",") (cast_expression "(int)((ulonglong)dVar2 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)dVar2 >> 0x20)" (( "(") (binary_expression "(ulonglong)dVar2 >> 0x20" (cast_expression "(ulonglong)dVar2" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar2")) (>> ">>") (number_literal "0x20")) () ")"))) (, ",") (identifier "uVar13") () ")"))) (; ";")) (} "}")))) (if_statement "if (DAT_0002e150 == 0) {\n            FUN_0001df00(iVar14);\n          }\n          else {\n            FUN_0001e170(iVar14);\n          }" (if "if") (parenthesized_expression "(DAT_0002e150 == 0)" (( "(") (binary_expression "DAT_0002e150 == 0" (identifier "DAT_0002e150") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            FUN_0001df00(iVar14);\n          }" ({ "{") (expression_statement "FUN_0001df00(iVar14);" (call_expression "FUN_0001df00(iVar14)" (identifier "FUN_0001df00") (argument_list "(iVar14)" (( "(") (identifier "iVar14") () ")"))) (; ";")) (} "}")) (else_clause "else {\n            FUN_0001e170(iVar14);\n          }" (else "else") (compound_statement "{\n            FUN_0001e170(iVar14);\n          }" ({ "{") (expression_statement "FUN_0001e170(iVar14);" (call_expression "FUN_0001e170(iVar14)" (identifier "FUN_0001e170") (argument_list "(iVar14)" (( "(") (identifier "iVar14") () ")"))) (; ";")) (} "}")))) (expression_statement "putchar(10);" (call_expression "putchar(10)" (identifier "putchar") (argument_list "(10)" (( "(") (number_literal "10") () ")"))) (; ";")) (} "}"))) (labeled_statement "LAB_0001bd38:\n        uVar17 = uVar17 + 1;" (statement_identifier "LAB_0001bd38") (: ":") (expression_statement "uVar17 = uVar17 + 1;" (assignment_expression "uVar17 = uVar17 + 1" (identifier "uVar17") (= "=") (binary_expression "uVar17 + 1" (identifier "uVar17") (+ "+") (number_literal "1"))) (; ";"))) (if_statement "if (DAT_0002e520 <= uVar17) goto LAB_0001bda0;" (if "if") (parenthesized_expression "(DAT_0002e520 <= uVar17)" (( "(") (binary_expression "DAT_0002e520 <= uVar17" (identifier "DAT_0002e520") (<= "<=") (identifier "uVar17")) () ")")) (goto_statement "goto LAB_0001bda0;" (goto "goto") (statement_identifier "LAB_0001bda0") (; ";"))) (} "}"))) (if_statement "if (DAT_0002e570 != 0) goto LAB_0001bd38;" (if "if") (parenthesized_expression "(DAT_0002e570 != 0)" (( "(") (binary_expression "DAT_0002e570 != 0" (identifier "DAT_0002e570") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001bd38;" (goto "goto") (statement_identifier "LAB_0001bd38") (; ";"))) (expression_statement "iVar14 = FUN_0001d480(&DAT_0002e57c,uVar10,uVar11);" (assignment_expression "iVar14 = FUN_0001d480(&DAT_0002e57c,uVar10,uVar11)" (identifier "iVar14") (= "=") (call_expression "FUN_0001d480(&DAT_0002e57c,uVar10,uVar11)" (identifier "FUN_0001d480") (argument_list "(&DAT_0002e57c,uVar10,uVar11)" (( "(") (pointer_expression "&DAT_0002e57c" (& "&") (identifier "DAT_0002e57c")) (, ",") (identifier "uVar10") (, ",") (identifier "uVar11") () ")")))) (; ";")) (if_statement "if (iVar14 == 0) goto LAB_0001bc00;" (if "if") (parenthesized_expression "(iVar14 == 0)" (( "(") (binary_expression "iVar14 == 0" (identifier "iVar14") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001bc00;" (goto "goto") (statement_identifier "LAB_0001bc00") (; ";"))) (expression_statement "uVar17 = uVar17 + 1;" (assignment_expression "uVar17 = uVar17 + 1" (identifier "uVar17") (= "=") (binary_expression "uVar17 + 1" (identifier "uVar17") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar17 < DAT_0002e520)" (( "(") (binary_expression "uVar17 < DAT_0002e520" (identifier "uVar17") (< "<") (identifier "DAT_0002e520")) () ")")) (; ";")) (} "}"))) (labeled_statement "LAB_0001bda0:\n  free(__base);" (statement_identifier "LAB_0001bda0") (: ":") (expression_statement "free(__base);" (call_expression "free(__base)" (identifier "free") (argument_list "(__base)" (( "(") (identifier "__base") () ")"))) (; ";"))) (if_statement "if ((DAT_0002d1bc != 0) && (DAT_0002e150 == 0)) {\n    FUN_0001f820(*(undefined4 *)PTR_stdout_0002cfec);\n    return;\n  }" (if "if") (parenthesized_expression "((DAT_0002d1bc != 0) && (DAT_0002e150 == 0))" (( "(") (binary_expression "(DAT_0002d1bc != 0) && (DAT_0002e150 == 0)" (parenthesized_expression "(DAT_0002d1bc != 0)" (( "(") (binary_expression "DAT_0002d1bc != 0" (identifier "DAT_0002d1bc") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(DAT_0002e150 == 0)" (( "(") (binary_expression "DAT_0002e150 == 0" (identifier "DAT_0002e150") (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n    FUN_0001f820(*(undefined4 *)PTR_stdout_0002cfec);\n    return;\n  }" ({ "{") (expression_statement "FUN_0001f820(*(undefined4 *)PTR_stdout_0002cfec);" (call_expression "FUN_0001f820(*(undefined4 *)PTR_stdout_0002cfec)" (identifier "FUN_0001f820") (argument_list "(*(undefined4 *)PTR_stdout_0002cfec)" (( "(") (pointer_expression "*(undefined4 *)PTR_stdout_0002cfec" (* "*") (cast_expression "(undefined4 *)PTR_stdout_0002cfec" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_stdout_0002cfec"))) () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
/* WARNING: Unknown calling convention -- yet parameter storage is locked */

void function_1(void)

{
  double var_15;
  double var_16;
  type_1 var_28;
  float fVar4;
  double dVar5;
  double dVar6;
  type_2 address;
  int *var_9;
  int *var_10;
  double *pdVar8;
  char *pcVar9;
  type_3 uVar10;
  type_3 uVar11;
  type_3 uVar12;
  type_3 uVar13;
  type_4 *var_11;
  int *var_12;
  int var_17;
  int var_14;
  type_1 var_32;
  type_5 local_a4;
  type_1 var_18;
  char unit [64];
  
  if (var_1 == 0) {
    var_2("\f");
  }
  else {
    var_1 = 0;
  }
  var_27 = 0.0;
  if (var_3 == 0) {
    pcVar9 = (char *)var_4("gprof","Flat profile:\n",5);
    var_5(pcVar9);
  }
  else if (var_6 != 0) {
    pcVar9 = (char *)var_4("gprof","\n\n\nflat profile:\n",5);
    var_5(pcVar9);
    var_7(*(type_6 **)PTR_stdout_0002cfec);
  }
  var_9 = (int *)var_8(symtab.len << 2);
  var_32 = symtab.len;
  if (symtab.len != 0) {
    var_12 = var_9 + symtab.len;
    var_10 = var_9;
    var_11 = symtab.base;
    do {
      *var_10 = (int)var_11;
      var_10 = var_10 + 1;
      var_11 = var_11 + 1;
    } while (var_12 != var_10);
  }
  var_13(var_9,var_32,4,cmp_time);
  if (var_3 != 0) {
    var_18 = 5;
    var_17 = 0x6d;
    goto LAB_0001ba65;
  }
  var_18 = symtab.len;
  if (symtab.len == 0) {
LAB_0001beb2:
    var_17 = 0x54;
  }
  else {
    var_17 = 0;
    var_15 = 0.0;
    var_12 = var_9;
    do {
      var_14 = *var_12;
      if (*(type_1 *)(var_14 + 0x20) != 0) {
        local_a4 = (type_5)*(type_1 *)(var_14 + 0x20);
        var_16 = (*(double *)(var_14 + 0xa8) + *(double *)(var_14 + 0xbc)) / (double)local_a4;
        if (var_15 < var_16) {
          var_15 = var_16;
          var_17 = var_14;
        }
      }
      var_12 = var_12 + 1;
    } while (var_9 + symtab.len != var_12);
    if (var_17 != 0) {
      if (*(int *)(var_17 + 0x20) == 0) {
        var_18 = 0;
        goto LAB_0001beb2;
      }
      if (0.0 < var_15) {
        var_18 = 0;
        pdVar8 = &SItab[1].scale;
        var_16 = DAT_00023e30;
        while( true ) {
          var_16 = var_16 * (var_15 / (double)hz);
          if ((1.0 <= var_16) && (var_16 < (double)DAT_00023e2c)) {
            var_17 = (int)SItab[var_18].prefix;
            goto LAB_0001ba65;
          }
          var_18 = var_18 + 1;
          if (var_18 == 0xb) break;
          var_16 = *pdVar8;
          pdVar8 = (double *)((int)pdVar8 + 0xc);
        }
        var_17 = 0;
        goto LAB_0001ba65;
      }
    }
    var_17 = 0x54;
    var_18 = 0;
  }
LAB_0001ba65:
  var_14 = (int)hist_dimension_abbrev;
  pcVar9 = (char *)var_4("gprof","%c%c/call",5);
  var_19(unit,pcVar9,var_17,var_14);
  if (var_3 == 0) {
    fVar4 = var_20 / (float)hz;
    pcVar9 = (char *)var_4("gprof","\nEach sample counts as %g %s.\n",5);
    var_5(pcVar9,var_21((double)fVar4,0),(int)((type_5)(double)fVar4 >> 0x20),hist_dimension);
  }
  else {
    var_15 = var_22(hist_scale);
    pcVar9 = (char *)var_4("gprof","\ngranularity: each sample hit covers %ld byte(s)",5);
    var_5(pcVar9,(int)var_15 * 2);
    var_15 = var_23;
    if (0.0 < var_23) {
      var_16 = var_23 / (double)hz;
      pcVar9 = (char *)var_4("gprof"," for %.2f%% of %.2f %s\n\n",5);
      var_5(pcVar9,var_21((double)_DAT_000221d8 / var_15,0),
             (int)((type_5)((double)_DAT_000221d8 / var_15) >> 0x20),var_21(var_16,0),
             (int)((type_5)var_16 >> 0x20),hist_dimension);
    }
  }
  if (var_23 <= 0.0) {
    pcVar9 = (char *)var_4("gprof"," no time accumulated\n\n",5);
    var_5(pcVar9);
    var_23 = 1.0;
  }
  uVar10 = var_4("gprof","total ",5);
  uVar11 = var_4("gprof","self  ",5);
  uVar12 = var_4("gprof","self  ",5);
  uVar13 = var_4("gprof","cumulative",5);
  var_5("%5.5s %10.10s %8.8s %8.8s %8.8s %8.8s  %-8.8s\n",&DAT_00023d2f,uVar13,uVar12,"",uVar11,
         uVar10,"");
  uVar10 = var_4("gprof",&DAT_000229c1,5);
  uVar11 = var_4("gprof","calls",5);
  uVar12 = var_4("gprof",&DAT_000229d8,5);
  var_32 = 0;
  var_5("%5.5s %9.9s  %8.8s %8.8s %8.8s %8.8s  %-8.8s\n",uVar12,hist_dimension,hist_dimension,
         uVar11,unit,unit,uVar10);
  if (symtab.len != 0) {
    do {
      while( true ) {
        address = *(type_2 *)var_9[var_32];
        var_11 = var_24(var_25 + 4,*(type_2 *)var_9[var_32]);
        if (var_11 == (type_4 *)0x0) break;
LAB_0001bc00:
        var_15 = SItab[var_18].scale;
        var_11 = (type_4 *)var_9[var_32];
        var_16 = (var_11->hist).time;
        if (((var_26 == 0) || (var_11->ncalls != 0)) || (var_16 != 0.0)) {
          var_27 = var_27 + var_16;
          dVar5 = var_16 / (double)hz;
          dVar6 = var_27 / (double)hz;
          uVar12 = var_21(dVar5,0);
          uVar13 = (type_3)((type_5)dVar5 >> 0x20);
          uVar10 = var_21(dVar6,0);
          uVar11 = (type_3)((type_5)dVar6 >> 0x20);
          if (var_3 == 0) {
            if (var_23 <= 0.0) {
              var_16 = 0.0;
            }
            else {
              var_16 = (var_16 * (double)_DAT_000221d8) / var_23;
            }
            var_5("%6.2f %9.2f %8.2f",var_21(var_16,0),(int)((type_5)var_16 >> 0x20),uVar10,uVar11,
                   uVar12,uVar13);
          }
          else {
            if (var_23 <= 0.0) {
              var_16 = 0.0;
            }
            else {
              var_16 = (var_16 * (double)_DAT_000221d8) / var_23;
            }
            var_5("%5.1f %10.2f %8.2f",var_21(var_16,0),(int)((type_5)var_16 >> 0x20),uVar10,uVar11
                   ,uVar12,uVar13);
          }
          var_28 = var_11->ncalls;
          if (var_28 == 0) {
            var_5(" %8.8s %8.8s %8.8s  ","","","");
          }
          else {
            var_16 = (var_11->hist).time;
            dVar5 = ((((var_11->cg).child_time + var_16) * var_15) / (double)hz) / (double)var_28;
            var_15 = ((var_15 * var_16) / (double)hz) / (double)var_28;
            var_5(" %8lu %8.2f %8.2f  ",var_28,var_21(var_15,0),(int)((type_5)var_15 >> 0x20),
                   var_21(dVar5,0),(int)((type_5)dVar5 >> 0x20),uVar13);
          }
          if (var_3 == 0) {
            var_29(var_11);
          }
          else {
            var_30(var_11);
          }
          var_31(10);
        }
LAB_0001bd38:
        var_32 = var_32 + 1;
        if (symtab.len <= var_32) goto LAB_0001bda0;
      }
      if (var_25[4].len != 0) goto LAB_0001bd38;
      var_11 = var_24(var_25 + 5,address);
      if (var_11 == (type_4 *)0x0) goto LAB_0001bc00;
      var_32 = var_32 + 1;
    } while (var_32 < symtab.len);
  }
LAB_0001bda0:
  var_33(var_9);
  if ((var_6 != 0) && (var_3 == 0)) {
    var_7(*(type_6 **)PTR_stdout_0002cfec);
    return;
  }
  return;
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type)))) body: (compound_statement (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: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator 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: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (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 (call_expression function: (identifier) arguments: (argument_list (string_literal (escape_sequence)))))) alternative: (else_clause (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: (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))))) 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: (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) (escape_sequence) (escape_sequence) (string_content) (escape_sequence)) (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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 (binary_expression left: (identifier) right: (number_literal))))))) (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: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (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 (binary_expression left: (identifier) right: (identifier)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (number_literal) (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: (number_literal))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (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))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_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: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_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: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) 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: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) right: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (parenthesized_expression (pointer_expression argument: (identifier))) index: (binary_expression left: (identifier) right: (number_literal))))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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)) (string_literal (string_content)) (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (identifier)))) (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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)) (string_literal (escape_sequence) (string_content) (escape_sequence)) (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) (number_literal))) (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (number_literal)))) (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (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)) (string_literal (escape_sequence) (string_content)) (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) (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: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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)) (string_literal (string_content) (escape_sequence) (escape_sequence)) (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)) (number_literal))) (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)))) right: (number_literal)))) (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal))) (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))) (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) (escape_sequence)) (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (string_literal (string_content)) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (string_literal (string_content)) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (string_literal (string_content)) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (string_literal (string_content)) (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content) (escape_sequence)) (pointer_expression argument: (identifier)) (identifier) (identifier) (string_literal) (identifier) (identifier) (string_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (pointer_expression argument: (identifier)) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (string_literal (string_content)) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (pointer_expression argument: (identifier)) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content) (escape_sequence)) (identifier) (identifier) (identifier) (identifier) (identifier) (identifier) (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (do_statement body: (compound_statement (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (parenthesized_expression (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (identifier)))) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (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))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_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: (number_literal))))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (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: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) right: (identifier))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal))) (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))) (identifier) (identifier) (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: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) right: (identifier))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal))) (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))) (identifier) (identifier) (identifier) (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (string_literal) (string_literal) (string_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_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: (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))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (identifier) (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal))) (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))) (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal))) (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))) (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier))))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal)))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_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: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier) (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))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))))) (return_statement))) (return_statement))))

/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

void MASKED(void)

{
  double dVar1;
  double dVar2;
  uint uVar3;
  float fVar4;
  double dVar5;
  double dVar6;
  size_t __nmemb;
  int *__base;
  int *piVar7;
  double *pdVar8;
  char *pcVar9;
  undefined4 uVar10;
  undefined4 uVar11;
  undefined4 uVar12;
  undefined4 uVar13;
  int iVar14;
  int *piVar15;
  int iVar16;
  uint uVar17;
  ulonglong local_a4;
  size_t local_84;
  char local_5c [72];
  undefined4 uStack_14;
  
  uStack_14 = 0x1b8a9;
  if (DAT_0002d1b8 == 0) {
    puts("\f");
  }
  else {
    DAT_0002d1b8 = 0;
  }
  DAT_0002e170 = 0.0;
  if (DAT_0002e150 == 0) {
    pcVar9 = (char *)dcgettext("gprof","Flat profile:\n",5);
    printf(pcVar9);
  }
  else if (DAT_0002d1bc != 0) {
    pcVar9 = (char *)dcgettext("gprof","\n\n\nflat profile:\n",5);
    printf(pcVar9);
    FUN_0001f820(*(undefined4 *)PTR_stdout_0002cfec);
  }
  __base = (int *)xmalloc(DAT_0002e520 << 2);
  __nmemb = DAT_0002e520;
  if (DAT_0002e520 != 0) {
    piVar15 = __base + DAT_0002e520;
    piVar7 = __base;
    iVar14 = DAT_0002e524;
    do {
      *piVar7 = iVar14;
      piVar7 = piVar7 + 1;
      iVar14 = iVar14 + 0xfc;
    } while (piVar15 != piVar7);
  }
  qsort(__base,__nmemb,4,FUN_0001ae50);
  if (DAT_0002e150 != 0) {
    local_84 = 5;
    iVar14 = 0x6d;
    goto LAB_0001ba65;
  }
  local_84 = DAT_0002e520;
  if (DAT_0002e520 == 0) {
LAB_0001beb2:
    iVar14 = 0x54;
  }
  else {
    iVar14 = 0;
    dVar1 = 0.0;
    piVar15 = __base;
    do {
      iVar16 = *piVar15;
      if (*(uint *)(iVar16 + 0x20) != 0) {
        local_a4 = (ulonglong)*(uint *)(iVar16 + 0x20);
        dVar2 = (*(double *)(iVar16 + 0xa8) + *(double *)(iVar16 + 0xbc)) / (double)local_a4;
        if (dVar1 < dVar2) {
          dVar1 = dVar2;
          iVar14 = iVar16;
        }
      }
      piVar15 = piVar15 + 1;
    } while (__base + DAT_0002e520 != piVar15);
    if (iVar14 != 0) {
      if (*(int *)(iVar14 + 0x20) == 0) {
        local_84 = 0;
        goto LAB_0001beb2;
      }
      if (0.0 < dVar1) {
        local_84 = 0;
        pdVar8 = (double *)&DAT_00023db0;
        dVar2 = DAT_00023e30;
        while( true ) {
          dVar2 = dVar2 * (dVar1 / (double)DAT_0002e15c);
          if ((1.0 <= dVar2) && (dVar2 < (double)DAT_00023e2c)) {
            iVar14 = (int)(char)(&DAT_00023da0)[local_84 * 0xc];
            goto LAB_0001ba65;
          }
          local_84 = local_84 + 1;
          if (local_84 == 0xb) break;
          dVar2 = *pdVar8;
          pdVar8 = (double *)((int)pdVar8 + 0xc);
        }
        iVar14 = 0;
        goto LAB_0001ba65;
      }
    }
    iVar14 = 0x54;
    local_84 = 0;
  }
LAB_0001ba65:
  iVar16 = (int)DAT_0002d4a4;
  pcVar9 = (char *)dcgettext("gprof","%c%c/call",5);
  sprintf(local_5c,pcVar9,iVar14,iVar16);
  if (DAT_0002e150 == 0) {
    fVar4 = DAT_00023e28 / (float)DAT_0002e15c;
    pcVar9 = (char *)dcgettext("gprof","\nEach sample counts as %g %s.\n",5);
    printf(pcVar9,SUB84((double)fVar4,0),(int)((ulonglong)(double)fVar4 >> 0x20),s_seconds_0002d4a8)
    ;
  }
  else {
    dVar1 = ROUND(DAT_0002e518);
    pcVar9 = (char *)dcgettext("gprof","\ngranularity: each sample hit covers %ld byte(s)",5);
    printf(pcVar9,(int)dVar1 * 2);
    dVar1 = DAT_0002e168;
    if (0.0 < DAT_0002e168) {
      dVar2 = DAT_0002e168 / (double)DAT_0002e15c;
      pcVar9 = (char *)dcgettext("gprof"," for %.2f%% of %.2f %s\n\n",5);
      printf(pcVar9,SUB84((double)_DAT_000221d8 / dVar1,0),
             (int)((ulonglong)((double)_DAT_000221d8 / dVar1) >> 0x20),SUB84(dVar2,0),
             (int)((ulonglong)dVar2 >> 0x20),s_seconds_0002d4a8);
    }
  }
  if (DAT_0002e168 <= 0.0) {
    pcVar9 = (char *)dcgettext("gprof"," no time accumulated\n\n",5);
    printf(pcVar9);
    DAT_0002e168 = 1.0;
  }
  uVar10 = dcgettext("gprof","total ",5);
  uVar11 = dcgettext("gprof","self  ",5);
  uVar12 = dcgettext("gprof","self  ",5);
  uVar13 = dcgettext("gprof","cumulative",5);
  printf("%5.5s %10.10s %8.8s %8.8s %8.8s %8.8s  %-8.8s\n",&DAT_00023d2f,uVar13,uVar12,"",uVar11,
         uVar10,"");
  uVar10 = dcgettext("gprof",&DAT_000229c1,5);
  uVar11 = dcgettext("gprof","calls",5);
  uVar12 = dcgettext("gprof",&DAT_000229d8,5);
  uVar17 = 0;
  printf("%5.5s %9.9s  %8.8s %8.8s %8.8s %8.8s  %-8.8s\n",uVar12,s_seconds_0002d4a8,
         s_seconds_0002d4a8,uVar11,local_5c,local_5c,uVar10);
  if (DAT_0002e520 != 0) {
    do {
      while( true ) {
        uVar10 = *(undefined4 *)__base[uVar17];
        uVar11 = ((undefined4 *)__base[uVar17])[1];
        iVar14 = FUN_0001d480(&DAT_0002e570,uVar10,uVar11);
        if (iVar14 == 0) break;
LAB_0001bc00:
        dVar1 = *(double *)(&UNK_00023da4 + local_84 * 0xc);
        iVar14 = __base[uVar17];
        dVar2 = *(double *)(iVar14 + 0xa8);
        if (((DAT_0002d1c0 == 0) || (*(int *)(iVar14 + 0x20) != 0)) || (dVar2 != 0.0)) {
          DAT_0002e170 = DAT_0002e170 + dVar2;
          dVar5 = dVar2 / (double)DAT_0002e15c;
          dVar6 = DAT_0002e170 / (double)DAT_0002e15c;
          uVar12 = SUB84(dVar5,0);
          uVar13 = (undefined4)((ulonglong)dVar5 >> 0x20);
          uVar10 = SUB84(dVar6,0);
          uVar11 = (undefined4)((ulonglong)dVar6 >> 0x20);
          if (DAT_0002e150 == 0) {
            if (DAT_0002e168 <= 0.0) {
              dVar2 = 0.0;
            }
            else {
              dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;
            }
            printf("%6.2f %9.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11,
                   uVar12,uVar13);
          }
          else {
            if (DAT_0002e168 <= 0.0) {
              dVar2 = 0.0;
            }
            else {
              dVar2 = (dVar2 * (double)_DAT_000221d8) / DAT_0002e168;
            }
            printf("%5.1f %10.2f %8.2f",SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar10,uVar11
                   ,uVar12,uVar13);
          }
          uVar3 = *(uint *)(iVar14 + 0x20);
          if (uVar3 == 0) {
            printf(" %8.8s %8.8s %8.8s  ","","","");
          }
          else {
            dVar2 = (((*(double *)(iVar14 + 0xbc) + *(double *)(iVar14 + 0xa8)) * dVar1) /
                    (double)DAT_0002e15c) / (double)uVar3;
            dVar1 = ((dVar1 * *(double *)(iVar14 + 0xa8)) / (double)DAT_0002e15c) / (double)uVar3;
            printf(" %8lu %8.2f %8.2f  ",uVar3,SUB84(dVar1,0),(int)((ulonglong)dVar1 >> 0x20),
                   SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20),uVar13);
          }
          if (DAT_0002e150 == 0) {
            FUN_0001df00(iVar14);
          }
          else {
            FUN_0001e170(iVar14);
          }
          putchar(10);
        }
LAB_0001bd38:
        uVar17 = uVar17 + 1;
        if (DAT_0002e520 <= uVar17) goto LAB_0001bda0;
      }
      if (DAT_0002e570 != 0) goto LAB_0001bd38;
      iVar14 = FUN_0001d480(&DAT_0002e57c,uVar10,uVar11);
      if (iVar14 == 0) goto LAB_0001bc00;
      uVar17 = uVar17 + 1;
    } while (uVar17 < DAT_0002e520);
  }
LAB_0001bda0:
  free(__base);
  if ((DAT_0002d1bc != 0) && (DAT_0002e150 == 0)) {
    FUN_0001f820(*(undefined4 *)PTR_stdout_0002cfec);
    return;
  }
  return;
}

