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

void print_annotated_source(void)

{
  Source_File **ppSVar1;
  ulong *puVar2;
  ulong uVar3;
  float fVar4;
  source_file **ppsVar5;
  undefined *puVar6;
  undefined *puVar7;
  long lVar8;
  void **ppvVar9;
  Sym *pSVar10;
  FILE *__stream;
  char *pcVar11;
  uint uVar12;
  void *pvVar13;
  int *piVar14;
  Source_File *pSVar15;
  Sym *pSVar16;
  Source_File *pSVar17;
  int iVar18;
  int *piVar19;
  int *piVar20;
  byte bVar21;
  undefined4 uVar22;
  Source_File *pSVar23;
  undefined8 uVar24;
  double dVar25;
  ulonglong uVar26;
  
  bVar21 = 0;
  pSVar16 = symtab.base;
  if (symtab.base < symtab.limit) {
    do {
      while (((pSVar16->file != (Source_File *)0x0 && (pSVar16->file->num_lines < pSVar16->line_num)
              ) && ((pSVar10 = sym_lookup(syms + 8,pSVar16->addr), pSVar10 != (Sym *)0x0 ||
                    ((syms[8].len == 0 &&
                     (pSVar10 = sym_lookup(syms + 9,pSVar16->addr), pSVar10 == (Sym *)0x0))))))) {
        piVar19 = &pSVar16->line_num;
        ppSVar1 = &pSVar16->file;
        pSVar16 = pSVar16 + 1;
        (*ppSVar1)->num_lines = *piVar19;
        if (symtab.limit <= pSVar16) goto LAB_00013e60;
      }
      pSVar16 = pSVar16 + 1;
    } while (pSVar16 < symtab.limit);
LAB_00013e60:
    pSVar17 = first_src_file;
    if (first_src_file != (Source_File *)0x0) goto LAB_00013e78;
    if (symtab.limit <= symtab.base) {
      return;
    }
  }
  else {
    pSVar17 = first_src_file;
    if (first_src_file == (Source_File *)0x0) {
      return;
    }
LAB_00013e78:
    do {
      if (0 < pSVar17->num_lines) {
        ppvVar9 = (void **)xmalloc(pSVar17->num_lines << 2);
        pSVar17->line = ppvVar9;
        memset(ppvVar9,0,pSVar17->num_lines << 2);
      }
      ppsVar5 = &pSVar17->next;
      pSVar17 = *ppsVar5;
    } while (*ppsVar5 != (source_file *)0x0);
    puVar6 = PTR_stdout_0002cfec;
    pSVar17 = first_src_file;
    if (symtab.limit <= symtab.base) goto joined_r0x00013f50;
  }
  uVar24 = 0x2e5a0;
  pSVar16 = symtab.base;
LAB_00013edb:
  do {
    if (((pSVar16->file != (Source_File *)0x0) && (pSVar16->file->num_lines != 0)) &&
       ((pSVar10 = sym_lookup((Sym_Table *)uVar24,pSVar16->addr), pSVar10 != (Sym *)0x0 ||
        ((syms[8].len == 0 && (pSVar10 = sym_lookup(syms + 9,pSVar16->addr), pSVar10 == (Sym *)0x0))
        )))) {
      pSVar17 = pSVar16->file;
      iVar18 = pSVar16->line_num;
      uVar3 = pSVar16->ncalls;
      puVar2 = &pSVar17->ncalls;
      *puVar2 = *puVar2 + uVar3;
      ppvVar9 = pSVar17->line + iVar18 + -1;
      piVar19 = (int *)*ppvVar9;
      if (piVar19 == (int *)0x0) {
        *ppvVar9 = pSVar16;
      }
      else {
        if (piVar19[1] == 0 && *piVar19 == 0) {
          piVar19[8] = piVar19[8] + uVar3;
          pSVar16 = pSVar16 + 1;
          puVar6 = PTR_stdout_0002cfec;
          pSVar17 = first_src_file;
          if (symtab.limit <= pSVar16) break;
          goto LAB_00013edb;
        }
        piVar14 = (int *)xmalloc(0xfc);
        piVar20 = piVar14;
        for (iVar18 = 0x3f; iVar18 != 0; iVar18 = iVar18 + -1) {
          *piVar20 = *piVar19;
          piVar19 = piVar19 + (uint)bVar21 * -2 + 1;
          piVar20 = piVar20 + (uint)bVar21 * -2 + 1;
        }
        *piVar14 = 0;
        piVar14[1] = 0;
        piVar14[8] = piVar14[8] + pSVar16->ncalls;
        pSVar16->file->line[pSVar16->line_num + -1] = piVar14;
      }
    }
    pSVar16 = pSVar16 + 1;
    puVar6 = PTR_stdout_0002cfec;
    pSVar17 = first_src_file;
  } while (pSVar16 < symtab.limit);
joined_r0x00013f50:
  do {
    puVar7 = PTR_stdout_0002cfec;
    if (pSVar17 == (Source_File *)0x0) {
      PTR_stdout_0002cfec = puVar6;
      return;
    }
    PTR_stdout_0002cfec = puVar6;
    if ((pSVar17->num_lines != 0) && ((ignore_zeros == 0 || (pSVar17->ncalls != 0)))) {
      num_lines_executed = 0;
      num_executable_lines = 0;
      pSVar23 = pSVar17;
      __stream = (FILE *)annotate_source(pSVar17,0x10,annotate_with_count,pSVar17);
      iVar18 = bb_table_length;
      if (__stream != (FILE *)0x0) {
        if (bb_table_length < 1) {
          ppvVar9 = pSVar17->line;
        }
        else {
          pcVar11 = (char *)dcgettext("gprof","\n\nTop %d Lines:\n\n     Line      Count\n\n",5);
          fprintf(__stream,pcVar11,iVar18);
          qsort(pSVar17->line,pSVar17->num_lines,4,cmp_ncalls);
          uVar12 = bb_table_length;
          if (pSVar17->num_lines <= bb_table_length) {
            uVar12 = pSVar17->num_lines;
          }
          ppvVar9 = pSVar17->line;
          uVar26 = (ulonglong)uVar12;
          if (((0 < (int)uVar12) && (pvVar13 = *ppvVar9, pvVar13 != (void *)0x0)) &&
             (pSVar15 = *(Source_File **)((int)pvVar13 + 0x20), pSVar15 != (Source_File *)0x0)) {
            iVar18 = 0;
            do {
              iVar18 = iVar18 + 1;
              pSVar23 = pSVar15;
              fprintf(__stream,"%9d %10lu\n",*(undefined4 *)((int)pvVar13 + 0x18),pSVar15);
              ppvVar9 = pSVar17->line;
              if ((iVar18 == (int)uVar26) || (pvVar13 = ppvVar9[iVar18], pvVar13 == (void *)0x0))
              break;
              pSVar15 = *(Source_File **)((int)pvVar13 + 0x20);
            } while (pSVar15 != (Source_File *)0x0);
          }
        }
        free(ppvVar9);
        pSVar17->line = (void **)0x0;
        uVar22 = 5;
        pcVar11 = (char *)dcgettext("gprof","\nExecution Summary:\n\n",5);
        fprintf(__stream,pcVar11,uVar22,pSVar23);
        lVar8 = num_executable_lines;
        pcVar11 = (char *)dcgettext("gprof","%9ld   Executable lines in this file\n",5);
        fprintf(__stream,pcVar11,lVar8);
        lVar8 = num_lines_executed;
        pcVar11 = (char *)dcgettext("gprof","%9ld   Lines executed\n",5);
        fprintf(__stream,pcVar11,lVar8);
        fVar4 = _DAT_000221d8;
        if (num_executable_lines != 0) {
          fVar4 = ((float)num_lines_executed * _DAT_000221d8) / (float)num_executable_lines;
        }
        dVar25 = (double)fVar4;
        pcVar11 = (char *)dcgettext("gprof","%9.2f   Percent of the file executed\n",5,pSVar23,
                                    dVar25);
        fprintf(__stream,pcVar11,SUB84(dVar25,0),(int)((ulonglong)dVar25 >> 0x20));
        uVar3 = pSVar17->ncalls;
        pcVar11 = (char *)dcgettext("gprof","\n%9lu   Total number of line executions\n",5);
        fprintf(__stream,pcVar11,uVar3);
        if (num_executable_lines == 0) {
          dVar25 = 0.0;
        }
        else {
          dVar25 = (double)pSVar17->ncalls / (double)num_executable_lines;
        }
        pcVar11 = (char *)dcgettext("gprof","%9.2f   Average executions per line\n",5,pSVar23,dVar25
                                   );
        fprintf(__stream,pcVar11,SUB84(dVar25,0),(int)((ulonglong)dVar25 >> 0x20));
        if (*(FILE **)puVar7 != __stream) {
          fclose(__stream);
        }
      }
    }
    puVar6 = PTR_stdout_0002cfec;
    pSVar17 = pSVar17->next;
    PTR_stdout_0002cfec = puVar7;
  } while( true );
}



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

void FUN_00013de0(void)

{
  undefined4 *puVar1;
  int iVar2;
  float fVar3;
  undefined *puVar4;
  undefined *puVar5;
  void *__s;
  int iVar6;
  FILE *__stream;
  char *pcVar7;
  uint uVar8;
  int *piVar9;
  int *piVar10;
  undefined4 *puVar11;
  int iVar12;
  int *piVar13;
  int *piVar14;
  byte bVar15;
  undefined4 uVar16;
  undefined8 uVar17;
  double dVar18;
  ulonglong uVar19;
  
  bVar15 = 0;
  puVar11 = DAT_0002e524;
  if (DAT_0002e524 < DAT_0002e528) {
    do {
      while (((puVar11[5] != 0 && (*(int *)(puVar11[5] + 0xc) < (int)puVar11[6])) &&
             ((iVar6 = FUN_0001d480(&DAT_0002e5a0,*puVar11,puVar11[1]), iVar6 != 0 ||
              ((DAT_0002e5a0 == 0 &&
               (iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0))))))) {
        puVar1 = puVar11 + 6;
        piVar13 = puVar11 + 5;
        puVar11 = puVar11 + 0x3f;
        *(undefined4 *)(*piVar13 + 0xc) = *puVar1;
        if (DAT_0002e528 <= puVar11) goto LAB_00013e60;
      }
      puVar11 = puVar11 + 0x3f;
    } while (puVar11 < DAT_0002e528);
LAB_00013e60:
    piVar13 = DAT_0002e178;
    if (DAT_0002e178 != (int *)0x0) goto LAB_00013e78;
    if (DAT_0002e528 <= DAT_0002e524) {
      return;
    }
  }
  else {
    piVar13 = DAT_0002e178;
    if (DAT_0002e178 == (int *)0x0) {
      return;
    }
LAB_00013e78:
    do {
      if (0 < piVar13[3]) {
        __s = (void *)xmalloc(piVar13[3] << 2);
        piVar13[5] = (int)__s;
        memset(__s,0,piVar13[3] << 2);
      }
      piVar13 = (int *)*piVar13;
    } while (piVar13 != (int *)0x0);
    puVar4 = PTR_stdout_0002cfec;
    piVar13 = DAT_0002e178;
    if (DAT_0002e528 <= DAT_0002e524) goto joined_r0x00013f50;
  }
  uVar17 = 0x2e5a0;
  puVar11 = DAT_0002e524;
LAB_00013edb:
  do {
    if (((puVar11[5] != 0) && (*(int *)(puVar11[5] + 0xc) != 0)) &&
       ((iVar6 = FUN_0001d480((int)uVar17,*puVar11,puVar11[1]), iVar6 != 0 ||
        ((DAT_0002e5a0 == 0 && (iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0)
         ))))) {
      iVar6 = puVar11[5];
      iVar12 = puVar11[6];
      iVar2 = puVar11[8];
      piVar13 = (int *)(iVar6 + 8);
      *piVar13 = *piVar13 + iVar2;
      puVar1 = (undefined4 *)(*(int *)(iVar6 + 0x14) + -4 + iVar12 * 4);
      piVar13 = (int *)*puVar1;
      if (piVar13 == (int *)0x0) {
        *puVar1 = puVar11;
      }
      else {
        if (piVar13[1] == 0 && *piVar13 == 0) {
          piVar13[8] = piVar13[8] + iVar2;
          puVar11 = puVar11 + 0x3f;
          puVar4 = PTR_stdout_0002cfec;
          piVar13 = DAT_0002e178;
          if (DAT_0002e528 <= puVar11) break;
          goto LAB_00013edb;
        }
        piVar9 = (int *)xmalloc(0xfc);
        piVar14 = piVar9;
        for (iVar6 = 0x3f; iVar6 != 0; iVar6 = iVar6 + -1) {
          *piVar14 = *piVar13;
          piVar13 = piVar13 + (uint)bVar15 * -2 + 1;
          piVar14 = piVar14 + (uint)bVar15 * -2 + 1;
        }
        *piVar9 = 0;
        piVar9[1] = 0;
        piVar9[8] = piVar9[8] + puVar11[8];
        *(int **)(*(int *)(puVar11[5] + 0x14) + -4 + puVar11[6] * 4) = piVar9;
      }
    }
    puVar11 = puVar11 + 0x3f;
    puVar4 = PTR_stdout_0002cfec;
    piVar13 = DAT_0002e178;
  } while (puVar11 < DAT_0002e528);
joined_r0x00013f50:
  do {
    puVar5 = PTR_stdout_0002cfec;
    if (piVar13 == (int *)0x0) {
      PTR_stdout_0002cfec = puVar4;
      return;
    }
    PTR_stdout_0002cfec = puVar4;
    if ((piVar13[3] != 0) && ((DAT_0002d1c0 == 0 || (piVar13[2] != 0)))) {
      DAT_0002d4f4 = 0;
      DAT_0002d4f8 = 0;
      piVar14 = piVar13;
      __stream = (FILE *)FUN_0001c940(piVar13,0x10,FUN_00013230,piVar13);
      uVar8 = DAT_0002d148;
      if (__stream != (FILE *)0x0) {
        if ((int)DAT_0002d148 < 1) {
          piVar9 = (int *)piVar13[5];
        }
        else {
          pcVar7 = (char *)dcgettext("gprof","\n\nTop %d Lines:\n\n     Line      Count\n\n",5);
          fprintf(__stream,pcVar7,uVar8);
          qsort((void *)piVar13[5],piVar13[3],4,FUN_00013170);
          uVar8 = DAT_0002d148;
          if (piVar13[3] <= (int)DAT_0002d148) {
            uVar8 = piVar13[3];
          }
          piVar9 = (int *)piVar13[5];
          uVar19 = (ulonglong)uVar8;
          if (((0 < (int)uVar8) && (iVar6 = *piVar9, iVar6 != 0)) &&
             (piVar10 = *(int **)(iVar6 + 0x20), piVar10 != (int *)0x0)) {
            iVar12 = 0;
            do {
              iVar12 = iVar12 + 1;
              piVar14 = piVar10;
              fprintf(__stream,"%9d %10lu\n",*(undefined4 *)(iVar6 + 0x18),piVar10);
              piVar9 = (int *)piVar13[5];
              if ((iVar12 == (int)uVar19) || (iVar6 = piVar9[iVar12], iVar6 == 0)) break;
              piVar10 = *(int **)(iVar6 + 0x20);
            } while (piVar10 != (int *)0x0);
          }
        }
        free(piVar9);
        piVar13[5] = 0;
        uVar16 = 5;
        pcVar7 = (char *)dcgettext("gprof","\nExecution Summary:\n\n",5);
        fprintf(__stream,pcVar7,uVar16,piVar14);
        iVar6 = DAT_0002d4f8;
        pcVar7 = (char *)dcgettext("gprof","%9ld   Executable lines in this file\n",5);
        fprintf(__stream,pcVar7,iVar6);
        iVar6 = DAT_0002d4f4;
        pcVar7 = (char *)dcgettext("gprof","%9ld   Lines executed\n",5);
        fprintf(__stream,pcVar7,iVar6);
        fVar3 = _DAT_000221d8;
        if (DAT_0002d4f8 != 0) {
          fVar3 = ((float)DAT_0002d4f4 * _DAT_000221d8) / (float)DAT_0002d4f8;
        }
        dVar18 = (double)fVar3;
        pcVar7 = (char *)dcgettext("gprof","%9.2f   Percent of the file executed\n",5,piVar14,dVar18
                                  );
        fprintf(__stream,pcVar7,SUB84(dVar18,0),(int)((ulonglong)dVar18 >> 0x20));
        iVar6 = piVar13[2];
        pcVar7 = (char *)dcgettext("gprof","\n%9lu   Total number of line executions\n",5);
        fprintf(__stream,pcVar7,iVar6);
        if (DAT_0002d4f8 == 0) {
          dVar18 = 0.0;
        }
        else {
          dVar18 = (double)(uint)piVar13[2] / (double)DAT_0002d4f8;
        }
        pcVar7 = (char *)dcgettext("gprof","%9.2f   Average executions per line\n",5,piVar14,dVar18)
        ;
        fprintf(__stream,pcVar7,SUB84(dVar18,0),(int)((ulonglong)dVar18 >> 0x20));
        if (*(FILE **)puVar5 != __stream) {
          fclose(__stream);
        }
      }
    }
    puVar4 = PTR_stdout_0002cfec;
    piVar13 = (int *)*piVar13;
    PTR_stdout_0002cfec = puVar5;
  } while( true );
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00013030
ADD EBX,0x19217
SUB ESP,0x2c
LEA EDX,[EBX + 0x1520]
LEA EDI,[EBX + 0x1540]
MOV EBP,dword ptr [EDX + 0x4]
LEA ESI,[EDI + 0x60]
CMP EBP,dword ptr [EDX + 0x8]
JC 0x00013e1b
JMP 0x00014150
ADD EBP,0xfc
CMP dword ptr [EDX + 0x8],EBP
JBE 0x00013e60
MOV EAX,dword ptr [EBP + 0x14]
TEST EAX,EAX
JZ 0x00013e10
MOV EAX,dword ptr [EAX + 0xc]
CMP dword ptr [EBP + 0x18],EAX
JLE 0x00013e10
MOV dword ptr [ESP + 0x8],EDX
SUB ESP,0x4
PUSH dword ptr [EBP + 0x4]
PUSH dword ptr [EBP]
PUSH ESI
CALL 0x0001d480
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x8]
TEST EAX,EAX
JZ 0x00014230
MOV ECX,dword ptr [EBP + 0x18]
MOV EAX,dword ptr [EBP + 0x14]
ADD EBP,0xfc
MOV dword ptr [EAX + 0xc],ECX
CMP dword ptr [EDX + 0x8],EBP
JA 0x00013e1b
LEA EAX,[EBX + 0x1178]
MOV ESI,dword ptr [EAX]
MOV dword ptr [ESP + 0xc],EAX
TEST ESI,ESI
JZ 0x00014300
LEA ESI,[ESI]
MOV EAX,dword ptr [ESI + 0xc]
TEST EAX,EAX
JLE 0x00013eab
MOV dword ptr [ESP + 0x8],EDX
SHL EAX,0x2
SUB ESP,0xc
PUSH EAX
CALL 0x000121d0
MOV ECX,dword ptr [ESI + 0xc]
ADD ESP,0xc
MOV dword ptr [ESI + 0x14],EAX
SHL ECX,0x2
PUSH ECX
PUSH 0x0
PUSH EAX
CALL 0x00012330
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x8]
MOV ESI,dword ptr [ESI]
TEST ESI,ESI
JNZ 0x00013e78
MOV EBP,dword ptr [EDX + 0x4]
CMP EBP,dword ptr [EDX + 0x8]
JNC 0x00013f48
LEA EAX,[EBX + 0x1540]
MOV dword ptr [ESP + 0x10],EAX
ADD EAX,0x60
MOV dword ptr [ESP],EAX
JMP 0x00013edb
ADD EBP,0xfc
CMP dword ptr [EDX + 0x8],EBP
JBE 0x00013f48
MOV EAX,dword ptr [EBP + 0x14]
TEST EAX,EAX
JZ 0x00013ed0
MOV EAX,dword ptr [EAX + 0xc]
TEST EAX,EAX
JZ 0x00013ed0
MOV dword ptr [ESP + 0x8],EDX
SUB ESP,0x4
PUSH dword ptr [EBP + 0x4]
PUSH dword ptr [EBP]
PUSH dword ptr [ESP + 0xc]
CALL 0x0001d480
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x8]
TEST EAX,EAX
JZ 0x00014268
MOV EAX,dword ptr [EBP + 0x14]
MOV ESI,dword ptr [EBP + 0x18]
MOV ECX,dword ptr [EBP + 0x20]
ADD dword ptr [EAX + 0x8],ECX
MOV EAX,dword ptr [EAX + 0x14]
LEA EAX,[EAX + ESI*0x4 + -0x4]
MOV ESI,dword ptr [EAX]
TEST ESI,ESI
JZ 0x000142a8
MOV EAX,dword ptr [ESI + 0x4]
OR EAX,dword ptr [ESI]
JNZ 0x000142b0
ADD dword ptr [ESI + 0x20],ECX
ADD EBP,0xfc
CMP dword ptr [EDX + 0x8],EBP
JA 0x00013edb
LEA ESI,[ESI]
MOV EAX,dword ptr [ESP + 0xc]
MOV EDI,dword ptr [EAX]
TEST EDI,EDI
JZ 0x00014164
LEA EAX,[EBX + 0x1c0]
MOV dword ptr [ESP + 0x10],EAX
MOV EAX,dword ptr [EBX + 0xffffffec]
MOV dword ptr [ESP + 0x14],EAX
JMP 0x0001403e
FILD dword ptr [EBX + 0x4f4]
FMUL dword ptr [EBX + 0xffff51d8]
MOV dword ptr [ESP],EAX
FILD dword ptr [ESP]
FDIVP
FSTP qword ptr [ESP]
SUB ESP,0x4
LEA EAX,[EBX + 0xffff515c]
PUSH 0x5
PUSH EAX
PUSH dword ptr [ESP + 0x14]
CALL 0x00012120
PUSH dword ptr [ESP + 0x14]
PUSH dword ptr [ESP + 0x14]
PUSH EAX
PUSH EBP
CALL 0x00012310
ADD ESP,0x1c
LEA EAX,[EBX + 0xffff5184]
MOV ESI,dword ptr [EDI + 0x8]
PUSH 0x5
PUSH EAX
PUSH dword ptr [ESP + 0x14]
CALL 0x00012120
ADD ESP,0xc
PUSH ESI
PUSH EAX
PUSH EBP
CALL 0x00012310
MOV EAX,dword ptr [EBX + 0x4f8]
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00014140
MOV EDX,dword ptr [EDI + 0x8]
XOR ECX,ECX
MOV dword ptr [ESP + 0x4],ECX
MOV dword ptr [ESP],EDX
FILD qword ptr [ESP]
MOV dword ptr [ESP],EAX
FILD dword ptr [ESP]
FDIVP
FSTP qword ptr [ESP]
SUB ESP,0x4
LEA EAX,[EBX + 0xffff51b0]
PUSH 0x5
PUSH EAX
PUSH dword ptr [ESP + 0x14]
CALL 0x00012120
PUSH dword ptr [ESP + 0x14]
PUSH dword ptr [ESP + 0x14]
PUSH EAX
PUSH EBP
CALL 0x00012310
ADD ESP,0x20
MOV EAX,dword ptr [ESP + 0x14]
CMP dword ptr [EAX],EBP
JZ 0x00014034
SUB ESP,0xc
PUSH EBP
CALL 0x000120f0
ADD ESP,0x10
MOV EDI,dword ptr [EDI]
TEST EDI,EDI
JZ 0x00014164
MOV EAX,dword ptr [EDI + 0xc]
TEST EAX,EAX
JZ 0x00014034
MOV EAX,dword ptr [ESP + 0x10]
MOV EBP,dword ptr [EAX]
TEST EBP,EBP
JZ 0x00014056
MOV ESI,dword ptr [EDI + 0x8]
TEST ESI,ESI
JZ 0x00014034
LEA EAX,[EBX + 0xfffe6230]
PUSH EDI
PUSH EAX
PUSH 0x10
PUSH EDI
MOV dword ptr [EBX + 0x4f4],0x0
MOV dword ptr [EBX + 0x4f8],0x0
CALL 0x0001c940
ADD ESP,0x10
MOV EBP,EAX
TEST EAX,EAX
JZ 0x00014034
MOV ESI,dword ptr [EBX + 0x148]
TEST ESI,ESI
JG 0x00014170
LEA EAX,[EBX + 0xffff500c]
MOV EDX,dword ptr [EDI + 0x14]
MOV dword ptr [ESP + 0x8],EAX
SUB ESP,0xc
PUSH EDX
CALL 0x00012090
ADD ESP,0xc
LEA EAX,[EBX + 0xffff5029]
MOV dword ptr [EDI + 0x14],0x0
PUSH 0x5
PUSH EAX
PUSH dword ptr [ESP + 0x14]
CALL 0x00012120
POP EDX
POP ECX
PUSH EAX
PUSH EBP
CALL 0x00012310
ADD ESP,0xc
LEA EAX,[EBX + 0xffff5134]
MOV ESI,dword ptr [EBX + 0x4f8]
PUSH 0x5
PUSH EAX
PUSH dword ptr [ESP + 0x14]
CALL 0x00012120
ADD ESP,0xc
PUSH ESI
PUSH EAX
PUSH EBP
CALL 0x00012310
ADD ESP,0xc
LEA EAX,[EBX + 0xffff503f]
MOV ESI,dword ptr [EBX + 0x4f4]
PUSH 0x5
PUSH EAX
PUSH dword ptr [ESP + 0x14]
CALL 0x00012120
ADD ESP,0xc
PUSH ESI
PUSH EAX
PUSH EBP
CALL 0x00012310
MOV EAX,dword ptr [EBX + 0x4f8]
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x00013f70
FLD dword ptr [EBX + 0xffff51d8]
FSTP qword ptr [ESP]
JMP 0x00013f87
FLDZ
FSTP qword ptr [ESP]
JMP 0x00013ff9
LEA EAX,[EBX + 0x1178]
MOV ESI,dword ptr [EAX]
MOV dword ptr [ESP + 0xc],EAX
TEST ESI,ESI
JNZ 0x00013e78
ADD ESP,0x2c
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0x4
LEA EAX,[EBX + 0xffff510c]
PUSH 0x5
PUSH EAX
LEA EAX,[EBX + 0xffff500c]
MOV dword ptr [ESP + 0x14],EAX
PUSH EAX
CALL 0x00012120
ADD ESP,0xc
PUSH ESI
PUSH EAX
PUSH EBP
CALL 0x00012310
LEA EAX,[EBX + 0xfffe6170]
PUSH EAX
PUSH 0x4
PUSH dword ptr [EDI + 0xc]
PUSH dword ptr [EDI + 0x14]
CALL 0x00012420
MOV EAX,dword ptr [EBX + 0x148]
ADD ESP,0x20
CMP dword ptr [EDI + 0xc],EAX
CMOVLE EAX,dword ptr [EDI + 0xc]
MOV EDX,dword ptr [EDI + 0x14]
MOV dword ptr [ESP],EAX
TEST EAX,EAX
JLE 0x0001409e
MOV EAX,dword ptr [EDX]
TEST EAX,EAX
JZ 0x0001409e
MOV ECX,dword ptr [EAX + 0x20]
TEST ECX,ECX
JZ 0x0001409e
LEA EDX,[EBX + 0xffff501e]
XOR ESI,ESI
MOV dword ptr [ESP + 0xc],EDX
JMP 0x00014206
MOV EAX,dword ptr [EDX + ESI*0x4]
TEST EAX,EAX
JZ 0x0001409e
MOV ECX,dword ptr [EAX + 0x20]
TEST ECX,ECX
JZ 0x0001409e
PUSH ECX
ADD ESI,0x1
PUSH dword ptr [EAX + 0x18]
PUSH dword ptr [ESP + 0x14]
PUSH EBP
CALL 0x00012310
ADD ESP,0x10
MOV EDX,dword ptr [EDI + 0x14]
CMP ESI,dword ptr [ESP]
JNZ 0x000141f0
JMP 0x0001409e
MOV EAX,dword ptr [EDI + 0x60]
TEST EAX,EAX
JNZ 0x00013e10
MOV dword ptr [ESP + 0x8],EDX
LEA EAX,[EDI + 0x6c]
SUB ESP,0x4
PUSH dword ptr [EBP + 0x4]
PUSH dword ptr [EBP]
PUSH EAX
CALL 0x0001d480
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x8]
TEST EAX,EAX
JNZ 0x00013e10
JMP 0x00013e4c
MOV EAX,dword ptr [ESP + 0x10]
MOV EAX,dword ptr [EAX + 0x60]
TEST EAX,EAX
JNZ 0x00013ed0
MOV dword ptr [ESP + 0x8],EDX
SUB ESP,0x4
PUSH dword ptr [EBP + 0x4]
PUSH dword ptr [EBP]
MOV EAX,dword ptr [ESP + 0x1c]
ADD EAX,0x6c
PUSH EAX
CALL 0x0001d480
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x8]
TEST EAX,EAX
JNZ 0x00013ed0
JMP 0x00013f0e
MOV dword ptr [EAX],EBP
JMP 0x00013ed0
MOV dword ptr [ESP + 0x8],EDX
SUB ESP,0xc
PUSH 0xfc
CALL 0x000121d0
MOV ECX,0x3f
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x8]
MOV EDI,EAX
MOVSD.REP ES:EDI,ESI
MOV dword ptr [EAX],0x0
MOV dword ptr [EAX + 0x4],0x0
MOV ECX,dword ptr [EBP + 0x20]
ADD dword ptr [EAX + 0x20],ECX
MOV ECX,dword ptr [EBP + 0x14]
MOV ESI,dword ptr [EBP + 0x18]
MOV ECX,dword ptr [ECX + 0x14]
MOV dword ptr [ECX + ESI*0x4 + -0x4],EAX
JMP 0x00013ed0
MOV EBP,dword ptr [EDX + 0x4]
CMP EBP,dword ptr [EDX + 0x8]
JC 0x00013ebd
JMP 0x00014164
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Type propagation algorithm not settling */\n/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */\n\nvoid FUN_00013de0(void)\n\n{\n  undefined4 *puVar1;\n  int iVar2;\n  float fVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  void *__s;\n  int iVar6;\n  FILE *__stream;\n  char *pcVar7;\n  uint uVar8;\n  int *piVar9;\n  int *piVar10;\n  undefined4 *puVar11;\n  int iVar12;\n  int *piVar13;\n  int *piVar14;\n  byte bVar15;\n  undefined4 uVar16;\n  undefined8 uVar17;\n  double dVar18;\n  ulonglong uVar19;\n  \n  bVar15 = 0;\n  puVar11 = DAT_0002e524;\n  if (DAT_0002e524 < DAT_0002e528) {\n    do {\n      while (((puVar11[5] != 0 && (*(int *)(puVar11[5] + 0xc) < (int)puVar11[6])) &&\n             ((iVar6 = FUN_0001d480(&DAT_0002e5a0,*puVar11,puVar11[1]), iVar6 != 0 ||\n              ((DAT_0002e5a0 == 0 &&\n               (iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0))))))) {\n        puVar1 = puVar11 + 6;\n        piVar13 = puVar11 + 5;\n        puVar11 = puVar11 + 0x3f;\n        *(undefined4 *)(*piVar13 + 0xc) = *puVar1;\n        if (DAT_0002e528 <= puVar11) goto LAB_00013e60;\n      }\n      puVar11 = puVar11 + 0x3f;\n    } while (puVar11 < DAT_0002e528);\nLAB_00013e60:\n    piVar13 = DAT_0002e178;\n    if (DAT_0002e178 != (int *)0x0) goto LAB_00013e78;\n    if (DAT_0002e528 <= DAT_0002e524) {\n      return;\n    }\n  }\n  else {\n    piVar13 = DAT_0002e178;\n    if (DAT_0002e178 == (int *)0x0) {\n      return;\n    }\nLAB_00013e78:\n    do {\n      if (0 < piVar13[3]) {\n        __s = (void *)xmalloc(piVar13[3] << 2);\n        piVar13[5] = (int)__s;\n        memset(__s,0,piVar13[3] << 2);\n      }\n      piVar13 = (int *)*piVar13;\n    } while (piVar13 != (int *)0x0);\n    puVar4 = PTR_stdout_0002cfec;\n    piVar13 = DAT_0002e178;\n    if (DAT_0002e528 <= DAT_0002e524) goto joined_r0x00013f50;\n  }\n  uVar17 = 0x2e5a0;\n  puVar11 = DAT_0002e524;\nLAB_00013edb:\n  do {\n    if (((puVar11[5] != 0) && (*(int *)(puVar11[5] + 0xc) != 0)) &&\n       ((iVar6 = FUN_0001d480((int)uVar17,*puVar11,puVar11[1]), iVar6 != 0 ||\n        ((DAT_0002e5a0 == 0 && (iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0)\n         ))))) {\n      iVar6 = puVar11[5];\n      iVar12 = puVar11[6];\n      iVar2 = puVar11[8];\n      piVar13 = (int *)(iVar6 + 8);\n      *piVar13 = *piVar13 + iVar2;\n      puVar1 = (undefined4 *)(*(int *)(iVar6 + 0x14) + -4 + iVar12 * 4);\n      piVar13 = (int *)*puVar1;\n      if (piVar13 == (int *)0x0) {\n        *puVar1 = puVar11;\n      }\n      else {\n        if (piVar13[1] == 0 && *piVar13 == 0) {\n          piVar13[8] = piVar13[8] + iVar2;\n          puVar11 = puVar11 + 0x3f;\n          puVar4 = PTR_stdout_0002cfec;\n          piVar13 = DAT_0002e178;\n          if (DAT_0002e528 <= puVar11) break;\n          goto LAB_00013edb;\n        }\n        piVar9 = (int *)xmalloc(0xfc);\n        piVar14 = piVar9;\n        for (iVar6 = 0x3f; iVar6 != 0; iVar6 = iVar6 + -1) {\n          *piVar14 = *piVar13;\n          piVar13 = piVar13 + (uint)bVar15 * -2 + 1;\n          piVar14 = piVar14 + (uint)bVar15 * -2 + 1;\n        }\n        *piVar9 = 0;\n        piVar9[1] = 0;\n        piVar9[8] = piVar9[8] + puVar11[8];\n        *(int **)(*(int *)(puVar11[5] + 0x14) + -4 + puVar11[6] * 4) = piVar9;\n      }\n    }\n    puVar11 = puVar11 + 0x3f;\n    puVar4 = PTR_stdout_0002cfec;\n    piVar13 = DAT_0002e178;\n  } while (puVar11 < DAT_0002e528);\njoined_r0x00013f50:\n  do {\n    puVar5 = PTR_stdout_0002cfec;\n    if (piVar13 == (int *)0x0) {\n      PTR_stdout_0002cfec = puVar4;\n      return;\n    }\n    PTR_stdout_0002cfec = puVar4;\n    if ((piVar13[3] != 0) && ((DAT_0002d1c0 == 0 || (piVar13[2] != 0)))) {\n      DAT_0002d4f4 = 0;\n      DAT_0002d4f8 = 0;\n      piVar14 = piVar13;\n      __stream = (FILE *)FUN_0001c940(piVar13,0x10,FUN_00013230,piVar13);\n      uVar8 = DAT_0002d148;\n      if (__stream != (FILE *)0x0) {\n        if ((int)DAT_0002d148 < 1) {\n          piVar9 = (int *)piVar13[5];\n        }\n        else {\n          pcVar7 = (char *)dcgettext("gprof","\n\nTop %d Lines:\n\n     Line      Count\n\n",5);\n          fprintf(__stream,pcVar7,uVar8);\n          qsort((void *)piVar13[5],piVar13[3],4,FUN_00013170);\n          uVar8 = DAT_0002d148;\n          if (piVar13[3] <= (int)DAT_0002d148) {\n            uVar8 = piVar13[3];\n          }\n          piVar9 = (int *)piVar13[5];\n          uVar19 = (ulonglong)uVar8;\n          if (((0 < (int)uVar8) && (iVar6 = *piVar9, iVar6 != 0)) &&\n             (piVar10 = *(int **)(iVar6 + 0x20), piVar10 != (int *)0x0)) {\n            iVar12 = 0;\n            do {\n              iVar12 = iVar12 + 1;\n              piVar14 = piVar10;\n              fprintf(__stream,"%9d %10lu\n",*(undefined4 *)(iVar6 + 0x18),piVar10);\n              piVar9 = (int *)piVar13[5];\n              if ((iVar12 == (int)uVar19) || (iVar6 = piVar9[iVar12], iVar6 == 0)) break;\n              piVar10 = *(int **)(iVar6 + 0x20);\n            } while (piVar10 != (int *)0x0);\n          }\n        }\n        free(piVar9);\n        piVar13[5] = 0;\n        uVar16 = 5;\n        pcVar7 = (char *)dcgettext("gprof","\nExecution Summary:\n\n",5);\n        fprintf(__stream,pcVar7,uVar16,piVar14);\n        iVar6 = DAT_0002d4f8;\n        pcVar7 = (char *)dcgettext("gprof","%9ld   Executable lines in this file\n",5);\n        fprintf(__stream,pcVar7,iVar6);\n        iVar6 = DAT_0002d4f4;\n        pcVar7 = (char *)dcgettext("gprof","%9ld   Lines executed\n",5);\n        fprintf(__stream,pcVar7,iVar6);\n        fVar3 = _DAT_000221d8;\n        if (DAT_0002d4f8 != 0) {\n          fVar3 = ((float)DAT_0002d4f4 * _DAT_000221d8) / (float)DAT_0002d4f8;\n        }\n        dVar18 = (double)fVar3;\n        pcVar7 = (char *)dcgettext("gprof","%9.2f   Percent of the file executed\n",5,piVar14,dVar18\n                                  );\n        fprintf(__stream,pcVar7,SUB84(dVar18,0),(int)((ulonglong)dVar18 >> 0x20));\n        iVar6 = piVar13[2];\n        pcVar7 = (char *)dcgettext("gprof","\n%9lu   Total number of line executions\n",5);\n        fprintf(__stream,pcVar7,iVar6);\n        if (DAT_0002d4f8 == 0) {\n          dVar18 = 0.0;\n        }\n        else {\n          dVar18 = (double)(uint)piVar13[2] / (double)DAT_0002d4f8;\n        }\n        pcVar7 = (char *)dcgettext("gprof","%9.2f   Average executions per line\n",5,piVar14,dVar18)\n        ;\n        fprintf(__stream,pcVar7,SUB84(dVar18,0),(int)((ulonglong)dVar18 >> 0x20));\n        if (*(FILE **)puVar5 != __stream) {\n          fclose(__stream);\n        }\n      }\n    }\n    puVar4 = PTR_stdout_0002cfec;\n    piVar13 = (int *)*piVar13;\n    PTR_stdout_0002cfec = puVar5;\n  } while( true );\n}\n\n" comment comment comment (function_definition "void FUN_00013de0(void)\n\n{\n  undefined4 *puVar1;\n  int iVar2;\n  float fVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  void *__s;\n  int iVar6;\n  FILE *__stream;\n  char *pcVar7;\n  uint uVar8;\n  int *piVar9;\n  int *piVar10;\n  undefined4 *puVar11;\n  int iVar12;\n  int *piVar13;\n  int *piVar14;\n  byte bVar15;\n  undefined4 uVar16;\n  undefined8 uVar17;\n  double dVar18;\n  ulonglong uVar19;\n  \n  bVar15 = 0;\n  puVar11 = DAT_0002e524;\n  if (DAT_0002e524 < DAT_0002e528) {\n    do {\n      while (((puVar11[5] != 0 && (*(int *)(puVar11[5] + 0xc) < (int)puVar11[6])) &&\n             ((iVar6 = FUN_0001d480(&DAT_0002e5a0,*puVar11,puVar11[1]), iVar6 != 0 ||\n              ((DAT_0002e5a0 == 0 &&\n               (iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0))))))) {\n        puVar1 = puVar11 + 6;\n        piVar13 = puVar11 + 5;\n        puVar11 = puVar11 + 0x3f;\n        *(undefined4 *)(*piVar13 + 0xc) = *puVar1;\n        if (DAT_0002e528 <= puVar11) goto LAB_00013e60;\n      }\n      puVar11 = puVar11 + 0x3f;\n    } while (puVar11 < DAT_0002e528);\nLAB_00013e60:\n    piVar13 = DAT_0002e178;\n    if (DAT_0002e178 != (int *)0x0) goto LAB_00013e78;\n    if (DAT_0002e528 <= DAT_0002e524) {\n      return;\n    }\n  }\n  else {\n    piVar13 = DAT_0002e178;\n    if (DAT_0002e178 == (int *)0x0) {\n      return;\n    }\nLAB_00013e78:\n    do {\n      if (0 < piVar13[3]) {\n        __s = (void *)xmalloc(piVar13[3] << 2);\n        piVar13[5] = (int)__s;\n        memset(__s,0,piVar13[3] << 2);\n      }\n      piVar13 = (int *)*piVar13;\n    } while (piVar13 != (int *)0x0);\n    puVar4 = PTR_stdout_0002cfec;\n    piVar13 = DAT_0002e178;\n    if (DAT_0002e528 <= DAT_0002e524) goto joined_r0x00013f50;\n  }\n  uVar17 = 0x2e5a0;\n  puVar11 = DAT_0002e524;\nLAB_00013edb:\n  do {\n    if (((puVar11[5] != 0) && (*(int *)(puVar11[5] + 0xc) != 0)) &&\n       ((iVar6 = FUN_0001d480((int)uVar17,*puVar11,puVar11[1]), iVar6 != 0 ||\n        ((DAT_0002e5a0 == 0 && (iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0)\n         ))))) {\n      iVar6 = puVar11[5];\n      iVar12 = puVar11[6];\n      iVar2 = puVar11[8];\n      piVar13 = (int *)(iVar6 + 8);\n      *piVar13 = *piVar13 + iVar2;\n      puVar1 = (undefined4 *)(*(int *)(iVar6 + 0x14) + -4 + iVar12 * 4);\n      piVar13 = (int *)*puVar1;\n      if (piVar13 == (int *)0x0) {\n        *puVar1 = puVar11;\n      }\n      else {\n        if (piVar13[1] == 0 && *piVar13 == 0) {\n          piVar13[8] = piVar13[8] + iVar2;\n          puVar11 = puVar11 + 0x3f;\n          puVar4 = PTR_stdout_0002cfec;\n          piVar13 = DAT_0002e178;\n          if (DAT_0002e528 <= puVar11) break;\n          goto LAB_00013edb;\n        }\n        piVar9 = (int *)xmalloc(0xfc);\n        piVar14 = piVar9;\n        for (iVar6 = 0x3f; iVar6 != 0; iVar6 = iVar6 + -1) {\n          *piVar14 = *piVar13;\n          piVar13 = piVar13 + (uint)bVar15 * -2 + 1;\n          piVar14 = piVar14 + (uint)bVar15 * -2 + 1;\n        }\n        *piVar9 = 0;\n        piVar9[1] = 0;\n        piVar9[8] = piVar9[8] + puVar11[8];\n        *(int **)(*(int *)(puVar11[5] + 0x14) + -4 + puVar11[6] * 4) = piVar9;\n      }\n    }\n    puVar11 = puVar11 + 0x3f;\n    puVar4 = PTR_stdout_0002cfec;\n    piVar13 = DAT_0002e178;\n  } while (puVar11 < DAT_0002e528);\njoined_r0x00013f50:\n  do {\n    puVar5 = PTR_stdout_0002cfec;\n    if (piVar13 == (int *)0x0) {\n      PTR_stdout_0002cfec = puVar4;\n      return;\n    }\n    PTR_stdout_0002cfec = puVar4;\n    if ((piVar13[3] != 0) && ((DAT_0002d1c0 == 0 || (piVar13[2] != 0)))) {\n      DAT_0002d4f4 = 0;\n      DAT_0002d4f8 = 0;\n      piVar14 = piVar13;\n      __stream = (FILE *)FUN_0001c940(piVar13,0x10,FUN_00013230,piVar13);\n      uVar8 = DAT_0002d148;\n      if (__stream != (FILE *)0x0) {\n        if ((int)DAT_0002d148 < 1) {\n          piVar9 = (int *)piVar13[5];\n        }\n        else {\n          pcVar7 = (char *)dcgettext("gprof","\n\nTop %d Lines:\n\n     Line      Count\n\n",5);\n          fprintf(__stream,pcVar7,uVar8);\n          qsort((void *)piVar13[5],piVar13[3],4,FUN_00013170);\n          uVar8 = DAT_0002d148;\n          if (piVar13[3] <= (int)DAT_0002d148) {\n            uVar8 = piVar13[3];\n          }\n          piVar9 = (int *)piVar13[5];\n          uVar19 = (ulonglong)uVar8;\n          if (((0 < (int)uVar8) && (iVar6 = *piVar9, iVar6 != 0)) &&\n             (piVar10 = *(int **)(iVar6 + 0x20), piVar10 != (int *)0x0)) {\n            iVar12 = 0;\n            do {\n              iVar12 = iVar12 + 1;\n              piVar14 = piVar10;\n              fprintf(__stream,"%9d %10lu\n",*(undefined4 *)(iVar6 + 0x18),piVar10);\n              piVar9 = (int *)piVar13[5];\n              if ((iVar12 == (int)uVar19) || (iVar6 = piVar9[iVar12], iVar6 == 0)) break;\n              piVar10 = *(int **)(iVar6 + 0x20);\n            } while (piVar10 != (int *)0x0);\n          }\n        }\n        free(piVar9);\n        piVar13[5] = 0;\n        uVar16 = 5;\n        pcVar7 = (char *)dcgettext("gprof","\nExecution Summary:\n\n",5);\n        fprintf(__stream,pcVar7,uVar16,piVar14);\n        iVar6 = DAT_0002d4f8;\n        pcVar7 = (char *)dcgettext("gprof","%9ld   Executable lines in this file\n",5);\n        fprintf(__stream,pcVar7,iVar6);\n        iVar6 = DAT_0002d4f4;\n        pcVar7 = (char *)dcgettext("gprof","%9ld   Lines executed\n",5);\n        fprintf(__stream,pcVar7,iVar6);\n        fVar3 = _DAT_000221d8;\n        if (DAT_0002d4f8 != 0) {\n          fVar3 = ((float)DAT_0002d4f4 * _DAT_000221d8) / (float)DAT_0002d4f8;\n        }\n        dVar18 = (double)fVar3;\n        pcVar7 = (char *)dcgettext("gprof","%9.2f   Percent of the file executed\n",5,piVar14,dVar18\n                                  );\n        fprintf(__stream,pcVar7,SUB84(dVar18,0),(int)((ulonglong)dVar18 >> 0x20));\n        iVar6 = piVar13[2];\n        pcVar7 = (char *)dcgettext("gprof","\n%9lu   Total number of line executions\n",5);\n        fprintf(__stream,pcVar7,iVar6);\n        if (DAT_0002d4f8 == 0) {\n          dVar18 = 0.0;\n        }\n        else {\n          dVar18 = (double)(uint)piVar13[2] / (double)DAT_0002d4f8;\n        }\n        pcVar7 = (char *)dcgettext("gprof","%9.2f   Average executions per line\n",5,piVar14,dVar18)\n        ;\n        fprintf(__stream,pcVar7,SUB84(dVar18,0),(int)((ulonglong)dVar18 >> 0x20));\n        if (*(FILE **)puVar5 != __stream) {\n          fclose(__stream);\n        }\n      }\n    }\n    puVar4 = PTR_stdout_0002cfec;\n    piVar13 = (int *)*piVar13;\n    PTR_stdout_0002cfec = puVar5;\n  } while( true );\n}" primitive_type (function_declarator "FUN_00013de0(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  undefined4 *puVar1;\n  int iVar2;\n  float fVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  void *__s;\n  int iVar6;\n  FILE *__stream;\n  char *pcVar7;\n  uint uVar8;\n  int *piVar9;\n  int *piVar10;\n  undefined4 *puVar11;\n  int iVar12;\n  int *piVar13;\n  int *piVar14;\n  byte bVar15;\n  undefined4 uVar16;\n  undefined8 uVar17;\n  double dVar18;\n  ulonglong uVar19;\n  \n  bVar15 = 0;\n  puVar11 = DAT_0002e524;\n  if (DAT_0002e524 < DAT_0002e528) {\n    do {\n      while (((puVar11[5] != 0 && (*(int *)(puVar11[5] + 0xc) < (int)puVar11[6])) &&\n             ((iVar6 = FUN_0001d480(&DAT_0002e5a0,*puVar11,puVar11[1]), iVar6 != 0 ||\n              ((DAT_0002e5a0 == 0 &&\n               (iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0))))))) {\n        puVar1 = puVar11 + 6;\n        piVar13 = puVar11 + 5;\n        puVar11 = puVar11 + 0x3f;\n        *(undefined4 *)(*piVar13 + 0xc) = *puVar1;\n        if (DAT_0002e528 <= puVar11) goto LAB_00013e60;\n      }\n      puVar11 = puVar11 + 0x3f;\n    } while (puVar11 < DAT_0002e528);\nLAB_00013e60:\n    piVar13 = DAT_0002e178;\n    if (DAT_0002e178 != (int *)0x0) goto LAB_00013e78;\n    if (DAT_0002e528 <= DAT_0002e524) {\n      return;\n    }\n  }\n  else {\n    piVar13 = DAT_0002e178;\n    if (DAT_0002e178 == (int *)0x0) {\n      return;\n    }\nLAB_00013e78:\n    do {\n      if (0 < piVar13[3]) {\n        __s = (void *)xmalloc(piVar13[3] << 2);\n        piVar13[5] = (int)__s;\n        memset(__s,0,piVar13[3] << 2);\n      }\n      piVar13 = (int *)*piVar13;\n    } while (piVar13 != (int *)0x0);\n    puVar4 = PTR_stdout_0002cfec;\n    piVar13 = DAT_0002e178;\n    if (DAT_0002e528 <= DAT_0002e524) goto joined_r0x00013f50;\n  }\n  uVar17 = 0x2e5a0;\n  puVar11 = DAT_0002e524;\nLAB_00013edb:\n  do {\n    if (((puVar11[5] != 0) && (*(int *)(puVar11[5] + 0xc) != 0)) &&\n       ((iVar6 = FUN_0001d480((int)uVar17,*puVar11,puVar11[1]), iVar6 != 0 ||\n        ((DAT_0002e5a0 == 0 && (iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0)\n         ))))) {\n      iVar6 = puVar11[5];\n      iVar12 = puVar11[6];\n      iVar2 = puVar11[8];\n      piVar13 = (int *)(iVar6 + 8);\n      *piVar13 = *piVar13 + iVar2;\n      puVar1 = (undefined4 *)(*(int *)(iVar6 + 0x14) + -4 + iVar12 * 4);\n      piVar13 = (int *)*puVar1;\n      if (piVar13 == (int *)0x0) {\n        *puVar1 = puVar11;\n      }\n      else {\n        if (piVar13[1] == 0 && *piVar13 == 0) {\n          piVar13[8] = piVar13[8] + iVar2;\n          puVar11 = puVar11 + 0x3f;\n          puVar4 = PTR_stdout_0002cfec;\n          piVar13 = DAT_0002e178;\n          if (DAT_0002e528 <= puVar11) break;\n          goto LAB_00013edb;\n        }\n        piVar9 = (int *)xmalloc(0xfc);\n        piVar14 = piVar9;\n        for (iVar6 = 0x3f; iVar6 != 0; iVar6 = iVar6 + -1) {\n          *piVar14 = *piVar13;\n          piVar13 = piVar13 + (uint)bVar15 * -2 + 1;\n          piVar14 = piVar14 + (uint)bVar15 * -2 + 1;\n        }\n        *piVar9 = 0;\n        piVar9[1] = 0;\n        piVar9[8] = piVar9[8] + puVar11[8];\n        *(int **)(*(int *)(puVar11[5] + 0x14) + -4 + puVar11[6] * 4) = piVar9;\n      }\n    }\n    puVar11 = puVar11 + 0x3f;\n    puVar4 = PTR_stdout_0002cfec;\n    piVar13 = DAT_0002e178;\n  } while (puVar11 < DAT_0002e528);\njoined_r0x00013f50:\n  do {\n    puVar5 = PTR_stdout_0002cfec;\n    if (piVar13 == (int *)0x0) {\n      PTR_stdout_0002cfec = puVar4;\n      return;\n    }\n    PTR_stdout_0002cfec = puVar4;\n    if ((piVar13[3] != 0) && ((DAT_0002d1c0 == 0 || (piVar13[2] != 0)))) {\n      DAT_0002d4f4 = 0;\n      DAT_0002d4f8 = 0;\n      piVar14 = piVar13;\n      __stream = (FILE *)FUN_0001c940(piVar13,0x10,FUN_00013230,piVar13);\n      uVar8 = DAT_0002d148;\n      if (__stream != (FILE *)0x0) {\n        if ((int)DAT_0002d148 < 1) {\n          piVar9 = (int *)piVar13[5];\n        }\n        else {\n          pcVar7 = (char *)dcgettext("gprof","\n\nTop %d Lines:\n\n     Line      Count\n\n",5);\n          fprintf(__stream,pcVar7,uVar8);\n          qsort((void *)piVar13[5],piVar13[3],4,FUN_00013170);\n          uVar8 = DAT_0002d148;\n          if (piVar13[3] <= (int)DAT_0002d148) {\n            uVar8 = piVar13[3];\n          }\n          piVar9 = (int *)piVar13[5];\n          uVar19 = (ulonglong)uVar8;\n          if (((0 < (int)uVar8) && (iVar6 = *piVar9, iVar6 != 0)) &&\n             (piVar10 = *(int **)(iVar6 + 0x20), piVar10 != (int *)0x0)) {\n            iVar12 = 0;\n            do {\n              iVar12 = iVar12 + 1;\n              piVar14 = piVar10;\n              fprintf(__stream,"%9d %10lu\n",*(undefined4 *)(iVar6 + 0x18),piVar10);\n              piVar9 = (int *)piVar13[5];\n              if ((iVar12 == (int)uVar19) || (iVar6 = piVar9[iVar12], iVar6 == 0)) break;\n              piVar10 = *(int **)(iVar6 + 0x20);\n            } while (piVar10 != (int *)0x0);\n          }\n        }\n        free(piVar9);\n        piVar13[5] = 0;\n        uVar16 = 5;\n        pcVar7 = (char *)dcgettext("gprof","\nExecution Summary:\n\n",5);\n        fprintf(__stream,pcVar7,uVar16,piVar14);\n        iVar6 = DAT_0002d4f8;\n        pcVar7 = (char *)dcgettext("gprof","%9ld   Executable lines in this file\n",5);\n        fprintf(__stream,pcVar7,iVar6);\n        iVar6 = DAT_0002d4f4;\n        pcVar7 = (char *)dcgettext("gprof","%9ld   Lines executed\n",5);\n        fprintf(__stream,pcVar7,iVar6);\n        fVar3 = _DAT_000221d8;\n        if (DAT_0002d4f8 != 0) {\n          fVar3 = ((float)DAT_0002d4f4 * _DAT_000221d8) / (float)DAT_0002d4f8;\n        }\n        dVar18 = (double)fVar3;\n        pcVar7 = (char *)dcgettext("gprof","%9.2f   Percent of the file executed\n",5,piVar14,dVar18\n                                  );\n        fprintf(__stream,pcVar7,SUB84(dVar18,0),(int)((ulonglong)dVar18 >> 0x20));\n        iVar6 = piVar13[2];\n        pcVar7 = (char *)dcgettext("gprof","\n%9lu   Total number of line executions\n",5);\n        fprintf(__stream,pcVar7,iVar6);\n        if (DAT_0002d4f8 == 0) {\n          dVar18 = 0.0;\n        }\n        else {\n          dVar18 = (double)(uint)piVar13[2] / (double)DAT_0002d4f8;\n        }\n        pcVar7 = (char *)dcgettext("gprof","%9.2f   Average executions per line\n",5,piVar14,dVar18)\n        ;\n        fprintf(__stream,pcVar7,SUB84(dVar18,0),(int)((ulonglong)dVar18 >> 0x20));\n        if (*(FILE **)puVar5 != __stream) {\n          fclose(__stream);\n        }\n      }\n    }\n    puVar4 = PTR_stdout_0002cfec;\n    piVar13 = (int *)*piVar13;\n    PTR_stdout_0002cfec = puVar5;\n  } while( true );\n}" { (declaration "undefined4 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "float fVar3;" primitive_type identifier ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "void *__s;" primitive_type (pointer_declarator "*__s" * identifier) ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "FILE *__stream;" type_identifier (pointer_declarator "*__stream" * identifier) ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "int *piVar9;" primitive_type (pointer_declarator "*piVar9" * identifier) ;) (declaration "int *piVar10;" primitive_type (pointer_declarator "*piVar10" * identifier) ;) (declaration "undefined4 *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "int *piVar13;" primitive_type (pointer_declarator "*piVar13" * identifier) ;) (declaration "int *piVar14;" primitive_type (pointer_declarator "*piVar14" * identifier) ;) (declaration "byte bVar15;" type_identifier identifier ;) (declaration "undefined4 uVar16;" type_identifier identifier ;) (declaration "undefined8 uVar17;" type_identifier identifier ;) (declaration "double dVar18;" primitive_type identifier ;) (declaration "ulonglong uVar19;" type_identifier identifier ;) (expression_statement "bVar15 = 0;" (assignment_expression "bVar15 = 0" identifier = number_literal) ;) (expression_statement "puVar11 = DAT_0002e524;" (assignment_expression "puVar11 = DAT_0002e524" identifier = identifier) ;) (if_statement "if (DAT_0002e524 < DAT_0002e528) {\n    do {\n      while (((puVar11[5] != 0 && (*(int *)(puVar11[5] + 0xc) < (int)puVar11[6])) &&\n             ((iVar6 = FUN_0001d480(&DAT_0002e5a0,*puVar11,puVar11[1]), iVar6 != 0 ||\n              ((DAT_0002e5a0 == 0 &&\n               (iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0))))))) {\n        puVar1 = puVar11 + 6;\n        piVar13 = puVar11 + 5;\n        puVar11 = puVar11 + 0x3f;\n        *(undefined4 *)(*piVar13 + 0xc) = *puVar1;\n        if (DAT_0002e528 <= puVar11) goto LAB_00013e60;\n      }\n      puVar11 = puVar11 + 0x3f;\n    } while (puVar11 < DAT_0002e528);\nLAB_00013e60:\n    piVar13 = DAT_0002e178;\n    if (DAT_0002e178 != (int *)0x0) goto LAB_00013e78;\n    if (DAT_0002e528 <= DAT_0002e524) {\n      return;\n    }\n  }\n  else {\n    piVar13 = DAT_0002e178;\n    if (DAT_0002e178 == (int *)0x0) {\n      return;\n    }\nLAB_00013e78:\n    do {\n      if (0 < piVar13[3]) {\n        __s = (void *)xmalloc(piVar13[3] << 2);\n        piVar13[5] = (int)__s;\n        memset(__s,0,piVar13[3] << 2);\n      }\n      piVar13 = (int *)*piVar13;\n    } while (piVar13 != (int *)0x0);\n    puVar4 = PTR_stdout_0002cfec;\n    piVar13 = DAT_0002e178;\n    if (DAT_0002e528 <= DAT_0002e524) goto joined_r0x00013f50;\n  }" if (parenthesized_expression "(DAT_0002e524 < DAT_0002e528)" ( (binary_expression "DAT_0002e524 < DAT_0002e528" identifier < identifier) )) (compound_statement "{\n    do {\n      while (((puVar11[5] != 0 && (*(int *)(puVar11[5] + 0xc) < (int)puVar11[6])) &&\n             ((iVar6 = FUN_0001d480(&DAT_0002e5a0,*puVar11,puVar11[1]), iVar6 != 0 ||\n              ((DAT_0002e5a0 == 0 &&\n               (iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0))))))) {\n        puVar1 = puVar11 + 6;\n        piVar13 = puVar11 + 5;\n        puVar11 = puVar11 + 0x3f;\n        *(undefined4 *)(*piVar13 + 0xc) = *puVar1;\n        if (DAT_0002e528 <= puVar11) goto LAB_00013e60;\n      }\n      puVar11 = puVar11 + 0x3f;\n    } while (puVar11 < DAT_0002e528);\nLAB_00013e60:\n    piVar13 = DAT_0002e178;\n    if (DAT_0002e178 != (int *)0x0) goto LAB_00013e78;\n    if (DAT_0002e528 <= DAT_0002e524) {\n      return;\n    }\n  }" { (do_statement "do {\n      while (((puVar11[5] != 0 && (*(int *)(puVar11[5] + 0xc) < (int)puVar11[6])) &&\n             ((iVar6 = FUN_0001d480(&DAT_0002e5a0,*puVar11,puVar11[1]), iVar6 != 0 ||\n              ((DAT_0002e5a0 == 0 &&\n               (iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0))))))) {\n        puVar1 = puVar11 + 6;\n        piVar13 = puVar11 + 5;\n        puVar11 = puVar11 + 0x3f;\n        *(undefined4 *)(*piVar13 + 0xc) = *puVar1;\n        if (DAT_0002e528 <= puVar11) goto LAB_00013e60;\n      }\n      puVar11 = puVar11 + 0x3f;\n    } while (puVar11 < DAT_0002e528);" do (compound_statement "{\n      while (((puVar11[5] != 0 && (*(int *)(puVar11[5] + 0xc) < (int)puVar11[6])) &&\n             ((iVar6 = FUN_0001d480(&DAT_0002e5a0,*puVar11,puVar11[1]), iVar6 != 0 ||\n              ((DAT_0002e5a0 == 0 &&\n               (iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0))))))) {\n        puVar1 = puVar11 + 6;\n        piVar13 = puVar11 + 5;\n        puVar11 = puVar11 + 0x3f;\n        *(undefined4 *)(*piVar13 + 0xc) = *puVar1;\n        if (DAT_0002e528 <= puVar11) goto LAB_00013e60;\n      }\n      puVar11 = puVar11 + 0x3f;\n    }" { (while_statement "while (((puVar11[5] != 0 && (*(int *)(puVar11[5] + 0xc) < (int)puVar11[6])) &&\n             ((iVar6 = FUN_0001d480(&DAT_0002e5a0,*puVar11,puVar11[1]), iVar6 != 0 ||\n              ((DAT_0002e5a0 == 0 &&\n               (iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0))))))) {\n        puVar1 = puVar11 + 6;\n        piVar13 = puVar11 + 5;\n        puVar11 = puVar11 + 0x3f;\n        *(undefined4 *)(*piVar13 + 0xc) = *puVar1;\n        if (DAT_0002e528 <= puVar11) goto LAB_00013e60;\n      }" while (parenthesized_expression "(((puVar11[5] != 0 && (*(int *)(puVar11[5] + 0xc) < (int)puVar11[6])) &&\n             ((iVar6 = FUN_0001d480(&DAT_0002e5a0,*puVar11,puVar11[1]), iVar6 != 0 ||\n              ((DAT_0002e5a0 == 0 &&\n               (iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0)))))))" ( (parenthesized_expression "((puVar11[5] != 0 && (*(int *)(puVar11[5] + 0xc) < (int)puVar11[6])) &&\n             ((iVar6 = FUN_0001d480(&DAT_0002e5a0,*puVar11,puVar11[1]), iVar6 != 0 ||\n              ((DAT_0002e5a0 == 0 &&\n               (iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0))))))" ( (binary_expression "(puVar11[5] != 0 && (*(int *)(puVar11[5] + 0xc) < (int)puVar11[6])) &&\n             ((iVar6 = FUN_0001d480(&DAT_0002e5a0,*puVar11,puVar11[1]), iVar6 != 0 ||\n              ((DAT_0002e5a0 == 0 &&\n               (iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0)))))" (parenthesized_expression "(puVar11[5] != 0 && (*(int *)(puVar11[5] + 0xc) < (int)puVar11[6]))" ( (binary_expression "puVar11[5] != 0 && (*(int *)(puVar11[5] + 0xc) < (int)puVar11[6])" (binary_expression "puVar11[5] != 0" (subscript_expression "puVar11[5]" identifier [ number_literal ]) != number_literal) && (parenthesized_expression "(*(int *)(puVar11[5] + 0xc) < (int)puVar11[6])" ( (binary_expression "*(int *)(puVar11[5] + 0xc) < (int)puVar11[6]" (pointer_expression "*(int *)(puVar11[5] + 0xc)" * (cast_expression "(int *)(puVar11[5] + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11[5] + 0xc)" ( (binary_expression "puVar11[5] + 0xc" (subscript_expression "puVar11[5]" identifier [ number_literal ]) + number_literal) )))) < (cast_expression "(int)puVar11[6]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "puVar11[6]" identifier [ number_literal ]))) ))) )) && (parenthesized_expression "((iVar6 = FUN_0001d480(&DAT_0002e5a0,*puVar11,puVar11[1]), iVar6 != 0 ||\n              ((DAT_0002e5a0 == 0 &&\n               (iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0)))))" ( (parenthesized_expression "(iVar6 = FUN_0001d480(&DAT_0002e5a0,*puVar11,puVar11[1]), iVar6 != 0 ||\n              ((DAT_0002e5a0 == 0 &&\n               (iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0))))" ( (comma_expression "iVar6 = FUN_0001d480(&DAT_0002e5a0,*puVar11,puVar11[1]), iVar6 != 0 ||\n              ((DAT_0002e5a0 == 0 &&\n               (iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0)))" (assignment_expression "iVar6 = FUN_0001d480(&DAT_0002e5a0,*puVar11,puVar11[1])" identifier = (call_expression "FUN_0001d480(&DAT_0002e5a0,*puVar11,puVar11[1])" identifier (argument_list "(&DAT_0002e5a0,*puVar11,puVar11[1])" ( (pointer_expression "&DAT_0002e5a0" & identifier) , (pointer_expression "*puVar11" * identifier) , (subscript_expression "puVar11[1]" identifier [ number_literal ]) )))) , (binary_expression "iVar6 != 0 ||\n              ((DAT_0002e5a0 == 0 &&\n               (iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0)))" (binary_expression "iVar6 != 0" identifier != number_literal) || (parenthesized_expression "((DAT_0002e5a0 == 0 &&\n               (iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0)))" ( (parenthesized_expression "(DAT_0002e5a0 == 0 &&\n               (iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0))" ( (binary_expression "DAT_0002e5a0 == 0 &&\n               (iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0)" (binary_expression "DAT_0002e5a0 == 0" identifier == number_literal) && (parenthesized_expression "(iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0)" ( (comma_expression "iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0" (assignment_expression "iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1])" identifier = (call_expression "FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1])" identifier (argument_list "(&DAT_0002e5ac,*puVar11,puVar11[1])" ( (pointer_expression "&DAT_0002e5ac" & identifier) , (pointer_expression "*puVar11" * identifier) , (subscript_expression "puVar11[1]" identifier [ number_literal ]) )))) , (binary_expression "iVar6 == 0" identifier == number_literal)) ))) )) )))) )) ))) )) )) (compound_statement "{\n        puVar1 = puVar11 + 6;\n        piVar13 = puVar11 + 5;\n        puVar11 = puVar11 + 0x3f;\n        *(undefined4 *)(*piVar13 + 0xc) = *puVar1;\n        if (DAT_0002e528 <= puVar11) goto LAB_00013e60;\n      }" { (expression_statement "puVar1 = puVar11 + 6;" (assignment_expression "puVar1 = puVar11 + 6" identifier = (binary_expression "puVar11 + 6" identifier + number_literal)) ;) (expression_statement "piVar13 = puVar11 + 5;" (assignment_expression "piVar13 = puVar11 + 5" identifier = (binary_expression "puVar11 + 5" identifier + number_literal)) ;) (expression_statement "puVar11 = puVar11 + 0x3f;" (assignment_expression "puVar11 = puVar11 + 0x3f" identifier = (binary_expression "puVar11 + 0x3f" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(*piVar13 + 0xc) = *puVar1;" (assignment_expression "*(undefined4 *)(*piVar13 + 0xc) = *puVar1" (pointer_expression "*(undefined4 *)(*piVar13 + 0xc)" * (cast_expression "(undefined4 *)(*piVar13 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar13 + 0xc)" ( (binary_expression "*piVar13 + 0xc" (pointer_expression "*piVar13" * identifier) + number_literal) )))) = (pointer_expression "*puVar1" * identifier)) ;) (if_statement "if (DAT_0002e528 <= puVar11) goto LAB_00013e60;" if (parenthesized_expression "(DAT_0002e528 <= puVar11)" ( (binary_expression "DAT_0002e528 <= puVar11" identifier <= identifier) )) (goto_statement "goto LAB_00013e60;" goto statement_identifier ;)) })) (expression_statement "puVar11 = puVar11 + 0x3f;" (assignment_expression "puVar11 = puVar11 + 0x3f" identifier = (binary_expression "puVar11 + 0x3f" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar11 < DAT_0002e528)" ( (binary_expression "puVar11 < DAT_0002e528" identifier < identifier) )) ;) (labeled_statement "LAB_00013e60:\n    piVar13 = DAT_0002e178;" statement_identifier : (expression_statement "piVar13 = DAT_0002e178;" (assignment_expression "piVar13 = DAT_0002e178" identifier = identifier) ;)) (if_statement "if (DAT_0002e178 != (int *)0x0) goto LAB_00013e78;" if (parenthesized_expression "(DAT_0002e178 != (int *)0x0)" ( (binary_expression "DAT_0002e178 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00013e78;" goto statement_identifier ;)) (if_statement "if (DAT_0002e528 <= DAT_0002e524) {\n      return;\n    }" if (parenthesized_expression "(DAT_0002e528 <= DAT_0002e524)" ( (binary_expression "DAT_0002e528 <= DAT_0002e524" identifier <= identifier) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) }) (else_clause "else {\n    piVar13 = DAT_0002e178;\n    if (DAT_0002e178 == (int *)0x0) {\n      return;\n    }\nLAB_00013e78:\n    do {\n      if (0 < piVar13[3]) {\n        __s = (void *)xmalloc(piVar13[3] << 2);\n        piVar13[5] = (int)__s;\n        memset(__s,0,piVar13[3] << 2);\n      }\n      piVar13 = (int *)*piVar13;\n    } while (piVar13 != (int *)0x0);\n    puVar4 = PTR_stdout_0002cfec;\n    piVar13 = DAT_0002e178;\n    if (DAT_0002e528 <= DAT_0002e524) goto joined_r0x00013f50;\n  }" else (compound_statement "{\n    piVar13 = DAT_0002e178;\n    if (DAT_0002e178 == (int *)0x0) {\n      return;\n    }\nLAB_00013e78:\n    do {\n      if (0 < piVar13[3]) {\n        __s = (void *)xmalloc(piVar13[3] << 2);\n        piVar13[5] = (int)__s;\n        memset(__s,0,piVar13[3] << 2);\n      }\n      piVar13 = (int *)*piVar13;\n    } while (piVar13 != (int *)0x0);\n    puVar4 = PTR_stdout_0002cfec;\n    piVar13 = DAT_0002e178;\n    if (DAT_0002e528 <= DAT_0002e524) goto joined_r0x00013f50;\n  }" { (expression_statement "piVar13 = DAT_0002e178;" (assignment_expression "piVar13 = DAT_0002e178" identifier = identifier) ;) (if_statement "if (DAT_0002e178 == (int *)0x0) {\n      return;\n    }" if (parenthesized_expression "(DAT_0002e178 == (int *)0x0)" ( (binary_expression "DAT_0002e178 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) (labeled_statement "LAB_00013e78:\n    do {\n      if (0 < piVar13[3]) {\n        __s = (void *)xmalloc(piVar13[3] << 2);\n        piVar13[5] = (int)__s;\n        memset(__s,0,piVar13[3] << 2);\n      }\n      piVar13 = (int *)*piVar13;\n    } while (piVar13 != (int *)0x0);" statement_identifier : (do_statement "do {\n      if (0 < piVar13[3]) {\n        __s = (void *)xmalloc(piVar13[3] << 2);\n        piVar13[5] = (int)__s;\n        memset(__s,0,piVar13[3] << 2);\n      }\n      piVar13 = (int *)*piVar13;\n    } while (piVar13 != (int *)0x0);" do (compound_statement "{\n      if (0 < piVar13[3]) {\n        __s = (void *)xmalloc(piVar13[3] << 2);\n        piVar13[5] = (int)__s;\n        memset(__s,0,piVar13[3] << 2);\n      }\n      piVar13 = (int *)*piVar13;\n    }" { (if_statement "if (0 < piVar13[3]) {\n        __s = (void *)xmalloc(piVar13[3] << 2);\n        piVar13[5] = (int)__s;\n        memset(__s,0,piVar13[3] << 2);\n      }" if (parenthesized_expression "(0 < piVar13[3])" ( (binary_expression "0 < piVar13[3]" number_literal < (subscript_expression "piVar13[3]" identifier [ number_literal ])) )) (compound_statement "{\n        __s = (void *)xmalloc(piVar13[3] << 2);\n        piVar13[5] = (int)__s;\n        memset(__s,0,piVar13[3] << 2);\n      }" { (expression_statement "__s = (void *)xmalloc(piVar13[3] << 2);" (assignment_expression "__s = (void *)xmalloc(piVar13[3] << 2)" identifier = (cast_expression "(void *)xmalloc(piVar13[3] << 2)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(piVar13[3] << 2)" identifier (argument_list "(piVar13[3] << 2)" ( (binary_expression "piVar13[3] << 2" (subscript_expression "piVar13[3]" identifier [ number_literal ]) << number_literal) ))))) ;) (expression_statement "piVar13[5] = (int)__s;" (assignment_expression "piVar13[5] = (int)__s" (subscript_expression "piVar13[5]" identifier [ number_literal ]) = (cast_expression "(int)__s" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "memset(__s,0,piVar13[3] << 2);" (call_expression "memset(__s,0,piVar13[3] << 2)" identifier (argument_list "(__s,0,piVar13[3] << 2)" ( identifier , number_literal , (binary_expression "piVar13[3] << 2" (subscript_expression "piVar13[3]" identifier [ number_literal ]) << number_literal) ))) ;) })) (expression_statement "piVar13 = (int *)*piVar13;" (assignment_expression "piVar13 = (int *)*piVar13" identifier = (cast_expression "(int *)*piVar13" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar13" * identifier))) ;) }) while (parenthesized_expression "(piVar13 != (int *)0x0)" ( (binary_expression "piVar13 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;)) (expression_statement "puVar4 = PTR_stdout_0002cfec;" (assignment_expression "puVar4 = PTR_stdout_0002cfec" identifier = identifier) ;) (expression_statement "piVar13 = DAT_0002e178;" (assignment_expression "piVar13 = DAT_0002e178" identifier = identifier) ;) (if_statement "if (DAT_0002e528 <= DAT_0002e524) goto joined_r0x00013f50;" if (parenthesized_expression "(DAT_0002e528 <= DAT_0002e524)" ( (binary_expression "DAT_0002e528 <= DAT_0002e524" identifier <= identifier) )) (goto_statement "goto joined_r0x00013f50;" goto statement_identifier ;)) }))) (expression_statement "uVar17 = 0x2e5a0;" (assignment_expression "uVar17 = 0x2e5a0" identifier = number_literal) ;) (expression_statement "puVar11 = DAT_0002e524;" (assignment_expression "puVar11 = DAT_0002e524" identifier = identifier) ;) (labeled_statement "LAB_00013edb:\n  do {\n    if (((puVar11[5] != 0) && (*(int *)(puVar11[5] + 0xc) != 0)) &&\n       ((iVar6 = FUN_0001d480((int)uVar17,*puVar11,puVar11[1]), iVar6 != 0 ||\n        ((DAT_0002e5a0 == 0 && (iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0)\n         ))))) {\n      iVar6 = puVar11[5];\n      iVar12 = puVar11[6];\n      iVar2 = puVar11[8];\n      piVar13 = (int *)(iVar6 + 8);\n      *piVar13 = *piVar13 + iVar2;\n      puVar1 = (undefined4 *)(*(int *)(iVar6 + 0x14) + -4 + iVar12 * 4);\n      piVar13 = (int *)*puVar1;\n      if (piVar13 == (int *)0x0) {\n        *puVar1 = puVar11;\n      }\n      else {\n        if (piVar13[1] == 0 && *piVar13 == 0) {\n          piVar13[8] = piVar13[8] + iVar2;\n          puVar11 = puVar11 + 0x3f;\n          puVar4 = PTR_stdout_0002cfec;\n          piVar13 = DAT_0002e178;\n          if (DAT_0002e528 <= puVar11) break;\n          goto LAB_00013edb;\n        }\n        piVar9 = (int *)xmalloc(0xfc);\n        piVar14 = piVar9;\n        for (iVar6 = 0x3f; iVar6 != 0; iVar6 = iVar6 + -1) {\n          *piVar14 = *piVar13;\n          piVar13 = piVar13 + (uint)bVar15 * -2 + 1;\n          piVar14 = piVar14 + (uint)bVar15 * -2 + 1;\n        }\n        *piVar9 = 0;\n        piVar9[1] = 0;\n        piVar9[8] = piVar9[8] + puVar11[8];\n        *(int **)(*(int *)(puVar11[5] + 0x14) + -4 + puVar11[6] * 4) = piVar9;\n      }\n    }\n    puVar11 = puVar11 + 0x3f;\n    puVar4 = PTR_stdout_0002cfec;\n    piVar13 = DAT_0002e178;\n  } while (puVar11 < DAT_0002e528);" statement_identifier : (do_statement "do {\n    if (((puVar11[5] != 0) && (*(int *)(puVar11[5] + 0xc) != 0)) &&\n       ((iVar6 = FUN_0001d480((int)uVar17,*puVar11,puVar11[1]), iVar6 != 0 ||\n        ((DAT_0002e5a0 == 0 && (iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0)\n         ))))) {\n      iVar6 = puVar11[5];\n      iVar12 = puVar11[6];\n      iVar2 = puVar11[8];\n      piVar13 = (int *)(iVar6 + 8);\n      *piVar13 = *piVar13 + iVar2;\n      puVar1 = (undefined4 *)(*(int *)(iVar6 + 0x14) + -4 + iVar12 * 4);\n      piVar13 = (int *)*puVar1;\n      if (piVar13 == (int *)0x0) {\n        *puVar1 = puVar11;\n      }\n      else {\n        if (piVar13[1] == 0 && *piVar13 == 0) {\n          piVar13[8] = piVar13[8] + iVar2;\n          puVar11 = puVar11 + 0x3f;\n          puVar4 = PTR_stdout_0002cfec;\n          piVar13 = DAT_0002e178;\n          if (DAT_0002e528 <= puVar11) break;\n          goto LAB_00013edb;\n        }\n        piVar9 = (int *)xmalloc(0xfc);\n        piVar14 = piVar9;\n        for (iVar6 = 0x3f; iVar6 != 0; iVar6 = iVar6 + -1) {\n          *piVar14 = *piVar13;\n          piVar13 = piVar13 + (uint)bVar15 * -2 + 1;\n          piVar14 = piVar14 + (uint)bVar15 * -2 + 1;\n        }\n        *piVar9 = 0;\n        piVar9[1] = 0;\n        piVar9[8] = piVar9[8] + puVar11[8];\n        *(int **)(*(int *)(puVar11[5] + 0x14) + -4 + puVar11[6] * 4) = piVar9;\n      }\n    }\n    puVar11 = puVar11 + 0x3f;\n    puVar4 = PTR_stdout_0002cfec;\n    piVar13 = DAT_0002e178;\n  } while (puVar11 < DAT_0002e528);" do (compound_statement "{\n    if (((puVar11[5] != 0) && (*(int *)(puVar11[5] + 0xc) != 0)) &&\n       ((iVar6 = FUN_0001d480((int)uVar17,*puVar11,puVar11[1]), iVar6 != 0 ||\n        ((DAT_0002e5a0 == 0 && (iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0)\n         ))))) {\n      iVar6 = puVar11[5];\n      iVar12 = puVar11[6];\n      iVar2 = puVar11[8];\n      piVar13 = (int *)(iVar6 + 8);\n      *piVar13 = *piVar13 + iVar2;\n      puVar1 = (undefined4 *)(*(int *)(iVar6 + 0x14) + -4 + iVar12 * 4);\n      piVar13 = (int *)*puVar1;\n      if (piVar13 == (int *)0x0) {\n        *puVar1 = puVar11;\n      }\n      else {\n        if (piVar13[1] == 0 && *piVar13 == 0) {\n          piVar13[8] = piVar13[8] + iVar2;\n          puVar11 = puVar11 + 0x3f;\n          puVar4 = PTR_stdout_0002cfec;\n          piVar13 = DAT_0002e178;\n          if (DAT_0002e528 <= puVar11) break;\n          goto LAB_00013edb;\n        }\n        piVar9 = (int *)xmalloc(0xfc);\n        piVar14 = piVar9;\n        for (iVar6 = 0x3f; iVar6 != 0; iVar6 = iVar6 + -1) {\n          *piVar14 = *piVar13;\n          piVar13 = piVar13 + (uint)bVar15 * -2 + 1;\n          piVar14 = piVar14 + (uint)bVar15 * -2 + 1;\n        }\n        *piVar9 = 0;\n        piVar9[1] = 0;\n        piVar9[8] = piVar9[8] + puVar11[8];\n        *(int **)(*(int *)(puVar11[5] + 0x14) + -4 + puVar11[6] * 4) = piVar9;\n      }\n    }\n    puVar11 = puVar11 + 0x3f;\n    puVar4 = PTR_stdout_0002cfec;\n    piVar13 = DAT_0002e178;\n  }" { (if_statement "if (((puVar11[5] != 0) && (*(int *)(puVar11[5] + 0xc) != 0)) &&\n       ((iVar6 = FUN_0001d480((int)uVar17,*puVar11,puVar11[1]), iVar6 != 0 ||\n        ((DAT_0002e5a0 == 0 && (iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0)\n         ))))) {\n      iVar6 = puVar11[5];\n      iVar12 = puVar11[6];\n      iVar2 = puVar11[8];\n      piVar13 = (int *)(iVar6 + 8);\n      *piVar13 = *piVar13 + iVar2;\n      puVar1 = (undefined4 *)(*(int *)(iVar6 + 0x14) + -4 + iVar12 * 4);\n      piVar13 = (int *)*puVar1;\n      if (piVar13 == (int *)0x0) {\n        *puVar1 = puVar11;\n      }\n      else {\n        if (piVar13[1] == 0 && *piVar13 == 0) {\n          piVar13[8] = piVar13[8] + iVar2;\n          puVar11 = puVar11 + 0x3f;\n          puVar4 = PTR_stdout_0002cfec;\n          piVar13 = DAT_0002e178;\n          if (DAT_0002e528 <= puVar11) break;\n          goto LAB_00013edb;\n        }\n        piVar9 = (int *)xmalloc(0xfc);\n        piVar14 = piVar9;\n        for (iVar6 = 0x3f; iVar6 != 0; iVar6 = iVar6 + -1) {\n          *piVar14 = *piVar13;\n          piVar13 = piVar13 + (uint)bVar15 * -2 + 1;\n          piVar14 = piVar14 + (uint)bVar15 * -2 + 1;\n        }\n        *piVar9 = 0;\n        piVar9[1] = 0;\n        piVar9[8] = piVar9[8] + puVar11[8];\n        *(int **)(*(int *)(puVar11[5] + 0x14) + -4 + puVar11[6] * 4) = piVar9;\n      }\n    }" if (parenthesized_expression "(((puVar11[5] != 0) && (*(int *)(puVar11[5] + 0xc) != 0)) &&\n       ((iVar6 = FUN_0001d480((int)uVar17,*puVar11,puVar11[1]), iVar6 != 0 ||\n        ((DAT_0002e5a0 == 0 && (iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0)\n         )))))" ( (binary_expression "((puVar11[5] != 0) && (*(int *)(puVar11[5] + 0xc) != 0)) &&\n       ((iVar6 = FUN_0001d480((int)uVar17,*puVar11,puVar11[1]), iVar6 != 0 ||\n        ((DAT_0002e5a0 == 0 && (iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0)\n         ))))" (parenthesized_expression "((puVar11[5] != 0) && (*(int *)(puVar11[5] + 0xc) != 0))" ( (binary_expression "(puVar11[5] != 0) && (*(int *)(puVar11[5] + 0xc) != 0)" (parenthesized_expression "(puVar11[5] != 0)" ( (binary_expression "puVar11[5] != 0" (subscript_expression "puVar11[5]" identifier [ number_literal ]) != number_literal) )) && (parenthesized_expression "(*(int *)(puVar11[5] + 0xc) != 0)" ( (binary_expression "*(int *)(puVar11[5] + 0xc) != 0" (pointer_expression "*(int *)(puVar11[5] + 0xc)" * (cast_expression "(int *)(puVar11[5] + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11[5] + 0xc)" ( (binary_expression "puVar11[5] + 0xc" (subscript_expression "puVar11[5]" identifier [ number_literal ]) + number_literal) )))) != number_literal) ))) )) && (parenthesized_expression "((iVar6 = FUN_0001d480((int)uVar17,*puVar11,puVar11[1]), iVar6 != 0 ||\n        ((DAT_0002e5a0 == 0 && (iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0)\n         ))))" ( (parenthesized_expression "(iVar6 = FUN_0001d480((int)uVar17,*puVar11,puVar11[1]), iVar6 != 0 ||\n        ((DAT_0002e5a0 == 0 && (iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0)\n         )))" ( (comma_expression "iVar6 = FUN_0001d480((int)uVar17,*puVar11,puVar11[1]), iVar6 != 0 ||\n        ((DAT_0002e5a0 == 0 && (iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0)\n         ))" (assignment_expression "iVar6 = FUN_0001d480((int)uVar17,*puVar11,puVar11[1])" identifier = (call_expression "FUN_0001d480((int)uVar17,*puVar11,puVar11[1])" identifier (argument_list "((int)uVar17,*puVar11,puVar11[1])" ( (cast_expression "(int)uVar17" ( (type_descriptor "int" primitive_type) ) identifier) , (pointer_expression "*puVar11" * identifier) , (subscript_expression "puVar11[1]" identifier [ number_literal ]) )))) , (binary_expression "iVar6 != 0 ||\n        ((DAT_0002e5a0 == 0 && (iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0)\n         ))" (binary_expression "iVar6 != 0" identifier != number_literal) || (parenthesized_expression "((DAT_0002e5a0 == 0 && (iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0)\n         ))" ( (parenthesized_expression "(DAT_0002e5a0 == 0 && (iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0)\n         )" ( (binary_expression "DAT_0002e5a0 == 0 && (iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0)" (binary_expression "DAT_0002e5a0 == 0" identifier == number_literal) && (parenthesized_expression "(iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0)" ( (comma_expression "iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0" (assignment_expression "iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1])" identifier = (call_expression "FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1])" identifier (argument_list "(&DAT_0002e5ac,*puVar11,puVar11[1])" ( (pointer_expression "&DAT_0002e5ac" & identifier) , (pointer_expression "*puVar11" * identifier) , (subscript_expression "puVar11[1]" identifier [ number_literal ]) )))) , (binary_expression "iVar6 == 0" identifier == number_literal)) ))) )) )))) )) ))) )) (compound_statement "{\n      iVar6 = puVar11[5];\n      iVar12 = puVar11[6];\n      iVar2 = puVar11[8];\n      piVar13 = (int *)(iVar6 + 8);\n      *piVar13 = *piVar13 + iVar2;\n      puVar1 = (undefined4 *)(*(int *)(iVar6 + 0x14) + -4 + iVar12 * 4);\n      piVar13 = (int *)*puVar1;\n      if (piVar13 == (int *)0x0) {\n        *puVar1 = puVar11;\n      }\n      else {\n        if (piVar13[1] == 0 && *piVar13 == 0) {\n          piVar13[8] = piVar13[8] + iVar2;\n          puVar11 = puVar11 + 0x3f;\n          puVar4 = PTR_stdout_0002cfec;\n          piVar13 = DAT_0002e178;\n          if (DAT_0002e528 <= puVar11) break;\n          goto LAB_00013edb;\n        }\n        piVar9 = (int *)xmalloc(0xfc);\n        piVar14 = piVar9;\n        for (iVar6 = 0x3f; iVar6 != 0; iVar6 = iVar6 + -1) {\n          *piVar14 = *piVar13;\n          piVar13 = piVar13 + (uint)bVar15 * -2 + 1;\n          piVar14 = piVar14 + (uint)bVar15 * -2 + 1;\n        }\n        *piVar9 = 0;\n        piVar9[1] = 0;\n        piVar9[8] = piVar9[8] + puVar11[8];\n        *(int **)(*(int *)(puVar11[5] + 0x14) + -4 + puVar11[6] * 4) = piVar9;\n      }\n    }" { (expression_statement "iVar6 = puVar11[5];" (assignment_expression "iVar6 = puVar11[5]" identifier = (subscript_expression "puVar11[5]" identifier [ number_literal ])) ;) (expression_statement "iVar12 = puVar11[6];" (assignment_expression "iVar12 = puVar11[6]" identifier = (subscript_expression "puVar11[6]" identifier [ number_literal ])) ;) (expression_statement "iVar2 = puVar11[8];" (assignment_expression "iVar2 = puVar11[8]" identifier = (subscript_expression "puVar11[8]" identifier [ number_literal ])) ;) (expression_statement "piVar13 = (int *)(iVar6 + 8);" (assignment_expression "piVar13 = (int *)(iVar6 + 8)" identifier = (cast_expression "(int *)(iVar6 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 8)" ( (binary_expression "iVar6 + 8" identifier + number_literal) )))) ;) (expression_statement "*piVar13 = *piVar13 + iVar2;" (assignment_expression "*piVar13 = *piVar13 + iVar2" (pointer_expression "*piVar13" * identifier) = (binary_expression "*piVar13 + iVar2" (pointer_expression "*piVar13" * identifier) + identifier)) ;) (expression_statement "puVar1 = (undefined4 *)(*(int *)(iVar6 + 0x14) + -4 + iVar12 * 4);" (assignment_expression "puVar1 = (undefined4 *)(*(int *)(iVar6 + 0x14) + -4 + iVar12 * 4)" identifier = (cast_expression "(undefined4 *)(*(int *)(iVar6 + 0x14) + -4 + iVar12 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar6 + 0x14) + -4 + iVar12 * 4)" ( (binary_expression "*(int *)(iVar6 + 0x14) + -4 + iVar12 * 4" (binary_expression "*(int *)(iVar6 + 0x14) + -4" (pointer_expression "*(int *)(iVar6 + 0x14)" * (cast_expression "(int *)(iVar6 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x14)" ( (binary_expression "iVar6 + 0x14" identifier + number_literal) )))) + number_literal) + (binary_expression "iVar12 * 4" identifier * number_literal)) )))) ;) (expression_statement "piVar13 = (int *)*puVar1;" (assignment_expression "piVar13 = (int *)*puVar1" identifier = (cast_expression "(int *)*puVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar1" * identifier))) ;) (if_statement "if (piVar13 == (int *)0x0) {\n        *puVar1 = puVar11;\n      }\n      else {\n        if (piVar13[1] == 0 && *piVar13 == 0) {\n          piVar13[8] = piVar13[8] + iVar2;\n          puVar11 = puVar11 + 0x3f;\n          puVar4 = PTR_stdout_0002cfec;\n          piVar13 = DAT_0002e178;\n          if (DAT_0002e528 <= puVar11) break;\n          goto LAB_00013edb;\n        }\n        piVar9 = (int *)xmalloc(0xfc);\n        piVar14 = piVar9;\n        for (iVar6 = 0x3f; iVar6 != 0; iVar6 = iVar6 + -1) {\n          *piVar14 = *piVar13;\n          piVar13 = piVar13 + (uint)bVar15 * -2 + 1;\n          piVar14 = piVar14 + (uint)bVar15 * -2 + 1;\n        }\n        *piVar9 = 0;\n        piVar9[1] = 0;\n        piVar9[8] = piVar9[8] + puVar11[8];\n        *(int **)(*(int *)(puVar11[5] + 0x14) + -4 + puVar11[6] * 4) = piVar9;\n      }" if (parenthesized_expression "(piVar13 == (int *)0x0)" ( (binary_expression "piVar13 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        *puVar1 = puVar11;\n      }" { (expression_statement "*puVar1 = puVar11;" (assignment_expression "*puVar1 = puVar11" (pointer_expression "*puVar1" * identifier) = identifier) ;) }) (else_clause "else {\n        if (piVar13[1] == 0 && *piVar13 == 0) {\n          piVar13[8] = piVar13[8] + iVar2;\n          puVar11 = puVar11 + 0x3f;\n          puVar4 = PTR_stdout_0002cfec;\n          piVar13 = DAT_0002e178;\n          if (DAT_0002e528 <= puVar11) break;\n          goto LAB_00013edb;\n        }\n        piVar9 = (int *)xmalloc(0xfc);\n        piVar14 = piVar9;\n        for (iVar6 = 0x3f; iVar6 != 0; iVar6 = iVar6 + -1) {\n          *piVar14 = *piVar13;\n          piVar13 = piVar13 + (uint)bVar15 * -2 + 1;\n          piVar14 = piVar14 + (uint)bVar15 * -2 + 1;\n        }\n        *piVar9 = 0;\n        piVar9[1] = 0;\n        piVar9[8] = piVar9[8] + puVar11[8];\n        *(int **)(*(int *)(puVar11[5] + 0x14) + -4 + puVar11[6] * 4) = piVar9;\n      }" else (compound_statement "{\n        if (piVar13[1] == 0 && *piVar13 == 0) {\n          piVar13[8] = piVar13[8] + iVar2;\n          puVar11 = puVar11 + 0x3f;\n          puVar4 = PTR_stdout_0002cfec;\n          piVar13 = DAT_0002e178;\n          if (DAT_0002e528 <= puVar11) break;\n          goto LAB_00013edb;\n        }\n        piVar9 = (int *)xmalloc(0xfc);\n        piVar14 = piVar9;\n        for (iVar6 = 0x3f; iVar6 != 0; iVar6 = iVar6 + -1) {\n          *piVar14 = *piVar13;\n          piVar13 = piVar13 + (uint)bVar15 * -2 + 1;\n          piVar14 = piVar14 + (uint)bVar15 * -2 + 1;\n        }\n        *piVar9 = 0;\n        piVar9[1] = 0;\n        piVar9[8] = piVar9[8] + puVar11[8];\n        *(int **)(*(int *)(puVar11[5] + 0x14) + -4 + puVar11[6] * 4) = piVar9;\n      }" { (if_statement "if (piVar13[1] == 0 && *piVar13 == 0) {\n          piVar13[8] = piVar13[8] + iVar2;\n          puVar11 = puVar11 + 0x3f;\n          puVar4 = PTR_stdout_0002cfec;\n          piVar13 = DAT_0002e178;\n          if (DAT_0002e528 <= puVar11) break;\n          goto LAB_00013edb;\n        }" if (parenthesized_expression "(piVar13[1] == 0 && *piVar13 == 0)" ( (binary_expression "piVar13[1] == 0 && *piVar13 == 0" (binary_expression "piVar13[1] == 0" (subscript_expression "piVar13[1]" identifier [ number_literal ]) == number_literal) && (binary_expression "*piVar13 == 0" (pointer_expression "*piVar13" * identifier) == number_literal)) )) (compound_statement "{\n          piVar13[8] = piVar13[8] + iVar2;\n          puVar11 = puVar11 + 0x3f;\n          puVar4 = PTR_stdout_0002cfec;\n          piVar13 = DAT_0002e178;\n          if (DAT_0002e528 <= puVar11) break;\n          goto LAB_00013edb;\n        }" { (expression_statement "piVar13[8] = piVar13[8] + iVar2;" (assignment_expression "piVar13[8] = piVar13[8] + iVar2" (subscript_expression "piVar13[8]" identifier [ number_literal ]) = (binary_expression "piVar13[8] + iVar2" (subscript_expression "piVar13[8]" identifier [ number_literal ]) + identifier)) ;) (expression_statement "puVar11 = puVar11 + 0x3f;" (assignment_expression "puVar11 = puVar11 + 0x3f" identifier = (binary_expression "puVar11 + 0x3f" identifier + number_literal)) ;) (expression_statement "puVar4 = PTR_stdout_0002cfec;" (assignment_expression "puVar4 = PTR_stdout_0002cfec" identifier = identifier) ;) (expression_statement "piVar13 = DAT_0002e178;" (assignment_expression "piVar13 = DAT_0002e178" identifier = identifier) ;) (if_statement "if (DAT_0002e528 <= puVar11) break;" if (parenthesized_expression "(DAT_0002e528 <= puVar11)" ( (binary_expression "DAT_0002e528 <= puVar11" identifier <= identifier) )) (break_statement "break;" break ;)) (goto_statement "goto LAB_00013edb;" goto statement_identifier ;) })) (expression_statement "piVar9 = (int *)xmalloc(0xfc);" (assignment_expression "piVar9 = (int *)xmalloc(0xfc)" identifier = (cast_expression "(int *)xmalloc(0xfc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(0xfc)" identifier (argument_list "(0xfc)" ( number_literal ))))) ;) (expression_statement "piVar14 = piVar9;" (assignment_expression "piVar14 = piVar9" identifier = identifier) ;) (for_statement "for (iVar6 = 0x3f; iVar6 != 0; iVar6 = iVar6 + -1) {\n          *piVar14 = *piVar13;\n          piVar13 = piVar13 + (uint)bVar15 * -2 + 1;\n          piVar14 = piVar14 + (uint)bVar15 * -2 + 1;\n        }" for ( (assignment_expression "iVar6 = 0x3f" identifier = number_literal) ; (binary_expression "iVar6 != 0" identifier != number_literal) ; (assignment_expression "iVar6 = iVar6 + -1" identifier = (binary_expression "iVar6 + -1" identifier + number_literal)) ) (compound_statement "{\n          *piVar14 = *piVar13;\n          piVar13 = piVar13 + (uint)bVar15 * -2 + 1;\n          piVar14 = piVar14 + (uint)bVar15 * -2 + 1;\n        }" { (expression_statement "*piVar14 = *piVar13;" (assignment_expression "*piVar14 = *piVar13" (pointer_expression "*piVar14" * identifier) = (pointer_expression "*piVar13" * identifier)) ;) (expression_statement "piVar13 = piVar13 + (uint)bVar15 * -2 + 1;" (assignment_expression "piVar13 = piVar13 + (uint)bVar15 * -2 + 1" identifier = (binary_expression "piVar13 + (uint)bVar15 * -2 + 1" (binary_expression "piVar13 + (uint)bVar15 * -2" identifier + (binary_expression "(uint)bVar15 * -2" (cast_expression "(uint)bVar15" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "piVar14 = piVar14 + (uint)bVar15 * -2 + 1;" (assignment_expression "piVar14 = piVar14 + (uint)bVar15 * -2 + 1" identifier = (binary_expression "piVar14 + (uint)bVar15 * -2 + 1" (binary_expression "piVar14 + (uint)bVar15 * -2" identifier + (binary_expression "(uint)bVar15 * -2" (cast_expression "(uint)bVar15" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) })) (expression_statement "*piVar9 = 0;" (assignment_expression "*piVar9 = 0" (pointer_expression "*piVar9" * identifier) = number_literal) ;) (expression_statement "piVar9[1] = 0;" (assignment_expression "piVar9[1] = 0" (subscript_expression "piVar9[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar9[8] = piVar9[8] + puVar11[8];" (assignment_expression "piVar9[8] = piVar9[8] + puVar11[8]" (subscript_expression "piVar9[8]" identifier [ number_literal ]) = (binary_expression "piVar9[8] + puVar11[8]" (subscript_expression "piVar9[8]" identifier [ number_literal ]) + (subscript_expression "puVar11[8]" identifier [ number_literal ]))) ;) (expression_statement "*(int **)(*(int *)(puVar11[5] + 0x14) + -4 + puVar11[6] * 4) = piVar9;" (assignment_expression "*(int **)(*(int *)(puVar11[5] + 0x14) + -4 + puVar11[6] * 4) = piVar9" (pointer_expression "*(int **)(*(int *)(puVar11[5] + 0x14) + -4 + puVar11[6] * 4)" * (cast_expression "(int **)(*(int *)(puVar11[5] + 0x14) + -4 + puVar11[6] * 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar11[5] + 0x14) + -4 + puVar11[6] * 4)" ( (binary_expression "*(int *)(puVar11[5] + 0x14) + -4 + puVar11[6] * 4" (binary_expression "*(int *)(puVar11[5] + 0x14) + -4" (pointer_expression "*(int *)(puVar11[5] + 0x14)" * (cast_expression "(int *)(puVar11[5] + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11[5] + 0x14)" ( (binary_expression "puVar11[5] + 0x14" (subscript_expression "puVar11[5]" identifier [ number_literal ]) + number_literal) )))) + number_literal) + (binary_expression "puVar11[6] * 4" (subscript_expression "puVar11[6]" identifier [ number_literal ]) * number_literal)) )))) = identifier) ;) }))) })) (expression_statement "puVar11 = puVar11 + 0x3f;" (assignment_expression "puVar11 = puVar11 + 0x3f" identifier = (binary_expression "puVar11 + 0x3f" identifier + number_literal)) ;) (expression_statement "puVar4 = PTR_stdout_0002cfec;" (assignment_expression "puVar4 = PTR_stdout_0002cfec" identifier = identifier) ;) (expression_statement "piVar13 = DAT_0002e178;" (assignment_expression "piVar13 = DAT_0002e178" identifier = identifier) ;) }) while (parenthesized_expression "(puVar11 < DAT_0002e528)" ( (binary_expression "puVar11 < DAT_0002e528" identifier < identifier) )) ;)) (labeled_statement "joined_r0x00013f50:\n  do {\n    puVar5 = PTR_stdout_0002cfec;\n    if (piVar13 == (int *)0x0) {\n      PTR_stdout_0002cfec = puVar4;\n      return;\n    }\n    PTR_stdout_0002cfec = puVar4;\n    if ((piVar13[3] != 0) && ((DAT_0002d1c0 == 0 || (piVar13[2] != 0)))) {\n      DAT_0002d4f4 = 0;\n      DAT_0002d4f8 = 0;\n      piVar14 = piVar13;\n      __stream = (FILE *)FUN_0001c940(piVar13,0x10,FUN_00013230,piVar13);\n      uVar8 = DAT_0002d148;\n      if (__stream != (FILE *)0x0) {\n        if ((int)DAT_0002d148 < 1) {\n          piVar9 = (int *)piVar13[5];\n        }\n        else {\n          pcVar7 = (char *)dcgettext("gprof","\n\nTop %d Lines:\n\n     Line      Count\n\n",5);\n          fprintf(__stream,pcVar7,uVar8);\n          qsort((void *)piVar13[5],piVar13[3],4,FUN_00013170);\n          uVar8 = DAT_0002d148;\n          if (piVar13[3] <= (int)DAT_0002d148) {\n            uVar8 = piVar13[3];\n          }\n          piVar9 = (int *)piVar13[5];\n          uVar19 = (ulonglong)uVar8;\n          if (((0 < (int)uVar8) && (iVar6 = *piVar9, iVar6 != 0)) &&\n             (piVar10 = *(int **)(iVar6 + 0x20), piVar10 != (int *)0x0)) {\n            iVar12 = 0;\n            do {\n              iVar12 = iVar12 + 1;\n              piVar14 = piVar10;\n              fprintf(__stream,"%9d %10lu\n",*(undefined4 *)(iVar6 + 0x18),piVar10);\n              piVar9 = (int *)piVar13[5];\n              if ((iVar12 == (int)uVar19) || (iVar6 = piVar9[iVar12], iVar6 == 0)) break;\n              piVar10 = *(int **)(iVar6 + 0x20);\n            } while (piVar10 != (int *)0x0);\n          }\n        }\n        free(piVar9);\n        piVar13[5] = 0;\n        uVar16 = 5;\n        pcVar7 = (char *)dcgettext("gprof","\nExecution Summary:\n\n",5);\n        fprintf(__stream,pcVar7,uVar16,piVar14);\n        iVar6 = DAT_0002d4f8;\n        pcVar7 = (char *)dcgettext("gprof","%9ld   Executable lines in this file\n",5);\n        fprintf(__stream,pcVar7,iVar6);\n        iVar6 = DAT_0002d4f4;\n        pcVar7 = (char *)dcgettext("gprof","%9ld   Lines executed\n",5);\n        fprintf(__stream,pcVar7,iVar6);\n        fVar3 = _DAT_000221d8;\n        if (DAT_0002d4f8 != 0) {\n          fVar3 = ((float)DAT_0002d4f4 * _DAT_000221d8) / (float)DAT_0002d4f8;\n        }\n        dVar18 = (double)fVar3;\n        pcVar7 = (char *)dcgettext("gprof","%9.2f   Percent of the file executed\n",5,piVar14,dVar18\n                                  );\n        fprintf(__stream,pcVar7,SUB84(dVar18,0),(int)((ulonglong)dVar18 >> 0x20));\n        iVar6 = piVar13[2];\n        pcVar7 = (char *)dcgettext("gprof","\n%9lu   Total number of line executions\n",5);\n        fprintf(__stream,pcVar7,iVar6);\n        if (DAT_0002d4f8 == 0) {\n          dVar18 = 0.0;\n        }\n        else {\n          dVar18 = (double)(uint)piVar13[2] / (double)DAT_0002d4f8;\n        }\n        pcVar7 = (char *)dcgettext("gprof","%9.2f   Average executions per line\n",5,piVar14,dVar18)\n        ;\n        fprintf(__stream,pcVar7,SUB84(dVar18,0),(int)((ulonglong)dVar18 >> 0x20));\n        if (*(FILE **)puVar5 != __stream) {\n          fclose(__stream);\n        }\n      }\n    }\n    puVar4 = PTR_stdout_0002cfec;\n    piVar13 = (int *)*piVar13;\n    PTR_stdout_0002cfec = puVar5;\n  } while( true );" statement_identifier : (do_statement "do {\n    puVar5 = PTR_stdout_0002cfec;\n    if (piVar13 == (int *)0x0) {\n      PTR_stdout_0002cfec = puVar4;\n      return;\n    }\n    PTR_stdout_0002cfec = puVar4;\n    if ((piVar13[3] != 0) && ((DAT_0002d1c0 == 0 || (piVar13[2] != 0)))) {\n      DAT_0002d4f4 = 0;\n      DAT_0002d4f8 = 0;\n      piVar14 = piVar13;\n      __stream = (FILE *)FUN_0001c940(piVar13,0x10,FUN_00013230,piVar13);\n      uVar8 = DAT_0002d148;\n      if (__stream != (FILE *)0x0) {\n        if ((int)DAT_0002d148 < 1) {\n          piVar9 = (int *)piVar13[5];\n        }\n        else {\n          pcVar7 = (char *)dcgettext("gprof","\n\nTop %d Lines:\n\n     Line      Count\n\n",5);\n          fprintf(__stream,pcVar7,uVar8);\n          qsort((void *)piVar13[5],piVar13[3],4,FUN_00013170);\n          uVar8 = DAT_0002d148;\n          if (piVar13[3] <= (int)DAT_0002d148) {\n            uVar8 = piVar13[3];\n          }\n          piVar9 = (int *)piVar13[5];\n          uVar19 = (ulonglong)uVar8;\n          if (((0 < (int)uVar8) && (iVar6 = *piVar9, iVar6 != 0)) &&\n             (piVar10 = *(int **)(iVar6 + 0x20), piVar10 != (int *)0x0)) {\n            iVar12 = 0;\n            do {\n              iVar12 = iVar12 + 1;\n              piVar14 = piVar10;\n              fprintf(__stream,"%9d %10lu\n",*(undefined4 *)(iVar6 + 0x18),piVar10);\n              piVar9 = (int *)piVar13[5];\n              if ((iVar12 == (int)uVar19) || (iVar6 = piVar9[iVar12], iVar6 == 0)) break;\n              piVar10 = *(int **)(iVar6 + 0x20);\n            } while (piVar10 != (int *)0x0);\n          }\n        }\n        free(piVar9);\n        piVar13[5] = 0;\n        uVar16 = 5;\n        pcVar7 = (char *)dcgettext("gprof","\nExecution Summary:\n\n",5);\n        fprintf(__stream,pcVar7,uVar16,piVar14);\n        iVar6 = DAT_0002d4f8;\n        pcVar7 = (char *)dcgettext("gprof","%9ld   Executable lines in this file\n",5);\n        fprintf(__stream,pcVar7,iVar6);\n        iVar6 = DAT_0002d4f4;\n        pcVar7 = (char *)dcgettext("gprof","%9ld   Lines executed\n",5);\n        fprintf(__stream,pcVar7,iVar6);\n        fVar3 = _DAT_000221d8;\n        if (DAT_0002d4f8 != 0) {\n          fVar3 = ((float)DAT_0002d4f4 * _DAT_000221d8) / (float)DAT_0002d4f8;\n        }\n        dVar18 = (double)fVar3;\n        pcVar7 = (char *)dcgettext("gprof","%9.2f   Percent of the file executed\n",5,piVar14,dVar18\n                                  );\n        fprintf(__stream,pcVar7,SUB84(dVar18,0),(int)((ulonglong)dVar18 >> 0x20));\n        iVar6 = piVar13[2];\n        pcVar7 = (char *)dcgettext("gprof","\n%9lu   Total number of line executions\n",5);\n        fprintf(__stream,pcVar7,iVar6);\n        if (DAT_0002d4f8 == 0) {\n          dVar18 = 0.0;\n        }\n        else {\n          dVar18 = (double)(uint)piVar13[2] / (double)DAT_0002d4f8;\n        }\n        pcVar7 = (char *)dcgettext("gprof","%9.2f   Average executions per line\n",5,piVar14,dVar18)\n        ;\n        fprintf(__stream,pcVar7,SUB84(dVar18,0),(int)((ulonglong)dVar18 >> 0x20));\n        if (*(FILE **)puVar5 != __stream) {\n          fclose(__stream);\n        }\n      }\n    }\n    puVar4 = PTR_stdout_0002cfec;\n    piVar13 = (int *)*piVar13;\n    PTR_stdout_0002cfec = puVar5;\n  } while( true );" do (compound_statement "{\n    puVar5 = PTR_stdout_0002cfec;\n    if (piVar13 == (int *)0x0) {\n      PTR_stdout_0002cfec = puVar4;\n      return;\n    }\n    PTR_stdout_0002cfec = puVar4;\n    if ((piVar13[3] != 0) && ((DAT_0002d1c0 == 0 || (piVar13[2] != 0)))) {\n      DAT_0002d4f4 = 0;\n      DAT_0002d4f8 = 0;\n      piVar14 = piVar13;\n      __stream = (FILE *)FUN_0001c940(piVar13,0x10,FUN_00013230,piVar13);\n      uVar8 = DAT_0002d148;\n      if (__stream != (FILE *)0x0) {\n        if ((int)DAT_0002d148 < 1) {\n          piVar9 = (int *)piVar13[5];\n        }\n        else {\n          pcVar7 = (char *)dcgettext("gprof","\n\nTop %d Lines:\n\n     Line      Count\n\n",5);\n          fprintf(__stream,pcVar7,uVar8);\n          qsort((void *)piVar13[5],piVar13[3],4,FUN_00013170);\n          uVar8 = DAT_0002d148;\n          if (piVar13[3] <= (int)DAT_0002d148) {\n            uVar8 = piVar13[3];\n          }\n          piVar9 = (int *)piVar13[5];\n          uVar19 = (ulonglong)uVar8;\n          if (((0 < (int)uVar8) && (iVar6 = *piVar9, iVar6 != 0)) &&\n             (piVar10 = *(int **)(iVar6 + 0x20), piVar10 != (int *)0x0)) {\n            iVar12 = 0;\n            do {\n              iVar12 = iVar12 + 1;\n              piVar14 = piVar10;\n              fprintf(__stream,"%9d %10lu\n",*(undefined4 *)(iVar6 + 0x18),piVar10);\n              piVar9 = (int *)piVar13[5];\n              if ((iVar12 == (int)uVar19) || (iVar6 = piVar9[iVar12], iVar6 == 0)) break;\n              piVar10 = *(int **)(iVar6 + 0x20);\n            } while (piVar10 != (int *)0x0);\n          }\n        }\n        free(piVar9);\n        piVar13[5] = 0;\n        uVar16 = 5;\n        pcVar7 = (char *)dcgettext("gprof","\nExecution Summary:\n\n",5);\n        fprintf(__stream,pcVar7,uVar16,piVar14);\n        iVar6 = DAT_0002d4f8;\n        pcVar7 = (char *)dcgettext("gprof","%9ld   Executable lines in this file\n",5);\n        fprintf(__stream,pcVar7,iVar6);\n        iVar6 = DAT_0002d4f4;\n        pcVar7 = (char *)dcgettext("gprof","%9ld   Lines executed\n",5);\n        fprintf(__stream,pcVar7,iVar6);\n        fVar3 = _DAT_000221d8;\n        if (DAT_0002d4f8 != 0) {\n          fVar3 = ((float)DAT_0002d4f4 * _DAT_000221d8) / (float)DAT_0002d4f8;\n        }\n        dVar18 = (double)fVar3;\n        pcVar7 = (char *)dcgettext("gprof","%9.2f   Percent of the file executed\n",5,piVar14,dVar18\n                                  );\n        fprintf(__stream,pcVar7,SUB84(dVar18,0),(int)((ulonglong)dVar18 >> 0x20));\n        iVar6 = piVar13[2];\n        pcVar7 = (char *)dcgettext("gprof","\n%9lu   Total number of line executions\n",5);\n        fprintf(__stream,pcVar7,iVar6);\n        if (DAT_0002d4f8 == 0) {\n          dVar18 = 0.0;\n        }\n        else {\n          dVar18 = (double)(uint)piVar13[2] / (double)DAT_0002d4f8;\n        }\n        pcVar7 = (char *)dcgettext("gprof","%9.2f   Average executions per line\n",5,piVar14,dVar18)\n        ;\n        fprintf(__stream,pcVar7,SUB84(dVar18,0),(int)((ulonglong)dVar18 >> 0x20));\n        if (*(FILE **)puVar5 != __stream) {\n          fclose(__stream);\n        }\n      }\n    }\n    puVar4 = PTR_stdout_0002cfec;\n    piVar13 = (int *)*piVar13;\n    PTR_stdout_0002cfec = puVar5;\n  }" { (expression_statement "puVar5 = PTR_stdout_0002cfec;" (assignment_expression "puVar5 = PTR_stdout_0002cfec" identifier = identifier) ;) (if_statement "if (piVar13 == (int *)0x0) {\n      PTR_stdout_0002cfec = puVar4;\n      return;\n    }" if (parenthesized_expression "(piVar13 == (int *)0x0)" ( (binary_expression "piVar13 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      PTR_stdout_0002cfec = puVar4;\n      return;\n    }" { (expression_statement "PTR_stdout_0002cfec = puVar4;" (assignment_expression "PTR_stdout_0002cfec = puVar4" identifier = identifier) ;) (return_statement "return;" return ;) })) (expression_statement "PTR_stdout_0002cfec = puVar4;" (assignment_expression "PTR_stdout_0002cfec = puVar4" identifier = identifier) ;) (if_statement "if ((piVar13[3] != 0) && ((DAT_0002d1c0 == 0 || (piVar13[2] != 0)))) {\n      DAT_0002d4f4 = 0;\n      DAT_0002d4f8 = 0;\n      piVar14 = piVar13;\n      __stream = (FILE *)FUN_0001c940(piVar13,0x10,FUN_00013230,piVar13);\n      uVar8 = DAT_0002d148;\n      if (__stream != (FILE *)0x0) {\n        if ((int)DAT_0002d148 < 1) {\n          piVar9 = (int *)piVar13[5];\n        }\n        else {\n          pcVar7 = (char *)dcgettext("gprof","\n\nTop %d Lines:\n\n     Line      Count\n\n",5);\n          fprintf(__stream,pcVar7,uVar8);\n          qsort((void *)piVar13[5],piVar13[3],4,FUN_00013170);\n          uVar8 = DAT_0002d148;\n          if (piVar13[3] <= (int)DAT_0002d148) {\n            uVar8 = piVar13[3];\n          }\n          piVar9 = (int *)piVar13[5];\n          uVar19 = (ulonglong)uVar8;\n          if (((0 < (int)uVar8) && (iVar6 = *piVar9, iVar6 != 0)) &&\n             (piVar10 = *(int **)(iVar6 + 0x20), piVar10 != (int *)0x0)) {\n            iVar12 = 0;\n            do {\n              iVar12 = iVar12 + 1;\n              piVar14 = piVar10;\n              fprintf(__stream,"%9d %10lu\n",*(undefined4 *)(iVar6 + 0x18),piVar10);\n              piVar9 = (int *)piVar13[5];\n              if ((iVar12 == (int)uVar19) || (iVar6 = piVar9[iVar12], iVar6 == 0)) break;\n              piVar10 = *(int **)(iVar6 + 0x20);\n            } while (piVar10 != (int *)0x0);\n          }\n        }\n        free(piVar9);\n        piVar13[5] = 0;\n        uVar16 = 5;\n        pcVar7 = (char *)dcgettext("gprof","\nExecution Summary:\n\n",5);\n        fprintf(__stream,pcVar7,uVar16,piVar14);\n        iVar6 = DAT_0002d4f8;\n        pcVar7 = (char *)dcgettext("gprof","%9ld   Executable lines in this file\n",5);\n        fprintf(__stream,pcVar7,iVar6);\n        iVar6 = DAT_0002d4f4;\n        pcVar7 = (char *)dcgettext("gprof","%9ld   Lines executed\n",5);\n        fprintf(__stream,pcVar7,iVar6);\n        fVar3 = _DAT_000221d8;\n        if (DAT_0002d4f8 != 0) {\n          fVar3 = ((float)DAT_0002d4f4 * _DAT_000221d8) / (float)DAT_0002d4f8;\n        }\n        dVar18 = (double)fVar3;\n        pcVar7 = (char *)dcgettext("gprof","%9.2f   Percent of the file executed\n",5,piVar14,dVar18\n                                  );\n        fprintf(__stream,pcVar7,SUB84(dVar18,0),(int)((ulonglong)dVar18 >> 0x20));\n        iVar6 = piVar13[2];\n        pcVar7 = (char *)dcgettext("gprof","\n%9lu   Total number of line executions\n",5);\n        fprintf(__stream,pcVar7,iVar6);\n        if (DAT_0002d4f8 == 0) {\n          dVar18 = 0.0;\n        }\n        else {\n          dVar18 = (double)(uint)piVar13[2] / (double)DAT_0002d4f8;\n        }\n        pcVar7 = (char *)dcgettext("gprof","%9.2f   Average executions per line\n",5,piVar14,dVar18)\n        ;\n        fprintf(__stream,pcVar7,SUB84(dVar18,0),(int)((ulonglong)dVar18 >> 0x20));\n        if (*(FILE **)puVar5 != __stream) {\n          fclose(__stream);\n        }\n      }\n    }" if (parenthesized_expression "((piVar13[3] != 0) && ((DAT_0002d1c0 == 0 || (piVar13[2] != 0))))" ( (binary_expression "(piVar13[3] != 0) && ((DAT_0002d1c0 == 0 || (piVar13[2] != 0)))" (parenthesized_expression "(piVar13[3] != 0)" ( (binary_expression "piVar13[3] != 0" (subscript_expression "piVar13[3]" identifier [ number_literal ]) != number_literal) )) && (parenthesized_expression "((DAT_0002d1c0 == 0 || (piVar13[2] != 0)))" ( (parenthesized_expression "(DAT_0002d1c0 == 0 || (piVar13[2] != 0))" ( (binary_expression "DAT_0002d1c0 == 0 || (piVar13[2] != 0)" (binary_expression "DAT_0002d1c0 == 0" identifier == number_literal) || (parenthesized_expression "(piVar13[2] != 0)" ( (binary_expression "piVar13[2] != 0" (subscript_expression "piVar13[2]" identifier [ number_literal ]) != number_literal) ))) )) ))) )) (compound_statement "{\n      DAT_0002d4f4 = 0;\n      DAT_0002d4f8 = 0;\n      piVar14 = piVar13;\n      __stream = (FILE *)FUN_0001c940(piVar13,0x10,FUN_00013230,piVar13);\n      uVar8 = DAT_0002d148;\n      if (__stream != (FILE *)0x0) {\n        if ((int)DAT_0002d148 < 1) {\n          piVar9 = (int *)piVar13[5];\n        }\n        else {\n          pcVar7 = (char *)dcgettext("gprof","\n\nTop %d Lines:\n\n     Line      Count\n\n",5);\n          fprintf(__stream,pcVar7,uVar8);\n          qsort((void *)piVar13[5],piVar13[3],4,FUN_00013170);\n          uVar8 = DAT_0002d148;\n          if (piVar13[3] <= (int)DAT_0002d148) {\n            uVar8 = piVar13[3];\n          }\n          piVar9 = (int *)piVar13[5];\n          uVar19 = (ulonglong)uVar8;\n          if (((0 < (int)uVar8) && (iVar6 = *piVar9, iVar6 != 0)) &&\n             (piVar10 = *(int **)(iVar6 + 0x20), piVar10 != (int *)0x0)) {\n            iVar12 = 0;\n            do {\n              iVar12 = iVar12 + 1;\n              piVar14 = piVar10;\n              fprintf(__stream,"%9d %10lu\n",*(undefined4 *)(iVar6 + 0x18),piVar10);\n              piVar9 = (int *)piVar13[5];\n              if ((iVar12 == (int)uVar19) || (iVar6 = piVar9[iVar12], iVar6 == 0)) break;\n              piVar10 = *(int **)(iVar6 + 0x20);\n            } while (piVar10 != (int *)0x0);\n          }\n        }\n        free(piVar9);\n        piVar13[5] = 0;\n        uVar16 = 5;\n        pcVar7 = (char *)dcgettext("gprof","\nExecution Summary:\n\n",5);\n        fprintf(__stream,pcVar7,uVar16,piVar14);\n        iVar6 = DAT_0002d4f8;\n        pcVar7 = (char *)dcgettext("gprof","%9ld   Executable lines in this file\n",5);\n        fprintf(__stream,pcVar7,iVar6);\n        iVar6 = DAT_0002d4f4;\n        pcVar7 = (char *)dcgettext("gprof","%9ld   Lines executed\n",5);\n        fprintf(__stream,pcVar7,iVar6);\n        fVar3 = _DAT_000221d8;\n        if (DAT_0002d4f8 != 0) {\n          fVar3 = ((float)DAT_0002d4f4 * _DAT_000221d8) / (float)DAT_0002d4f8;\n        }\n        dVar18 = (double)fVar3;\n        pcVar7 = (char *)dcgettext("gprof","%9.2f   Percent of the file executed\n",5,piVar14,dVar18\n                                  );\n        fprintf(__stream,pcVar7,SUB84(dVar18,0),(int)((ulonglong)dVar18 >> 0x20));\n        iVar6 = piVar13[2];\n        pcVar7 = (char *)dcgettext("gprof","\n%9lu   Total number of line executions\n",5);\n        fprintf(__stream,pcVar7,iVar6);\n        if (DAT_0002d4f8 == 0) {\n          dVar18 = 0.0;\n        }\n        else {\n          dVar18 = (double)(uint)piVar13[2] / (double)DAT_0002d4f8;\n        }\n        pcVar7 = (char *)dcgettext("gprof","%9.2f   Average executions per line\n",5,piVar14,dVar18)\n        ;\n        fprintf(__stream,pcVar7,SUB84(dVar18,0),(int)((ulonglong)dVar18 >> 0x20));\n        if (*(FILE **)puVar5 != __stream) {\n          fclose(__stream);\n        }\n      }\n    }" { (expression_statement "DAT_0002d4f4 = 0;" (assignment_expression "DAT_0002d4f4 = 0" identifier = number_literal) ;) (expression_statement "DAT_0002d4f8 = 0;" (assignment_expression "DAT_0002d4f8 = 0" identifier = number_literal) ;) (expression_statement "piVar14 = piVar13;" (assignment_expression "piVar14 = piVar13" identifier = identifier) ;) (expression_statement "__stream = (FILE *)FUN_0001c940(piVar13,0x10,FUN_00013230,piVar13);" (assignment_expression "__stream = (FILE *)FUN_0001c940(piVar13,0x10,FUN_00013230,piVar13)" identifier = (cast_expression "(FILE *)FUN_0001c940(piVar13,0x10,FUN_00013230,piVar13)" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001c940(piVar13,0x10,FUN_00013230,piVar13)" identifier (argument_list "(piVar13,0x10,FUN_00013230,piVar13)" ( identifier , number_literal , identifier , identifier ))))) ;) (expression_statement "uVar8 = DAT_0002d148;" (assignment_expression "uVar8 = DAT_0002d148" identifier = identifier) ;) (if_statement "if (__stream != (FILE *)0x0) {\n        if ((int)DAT_0002d148 < 1) {\n          piVar9 = (int *)piVar13[5];\n        }\n        else {\n          pcVar7 = (char *)dcgettext("gprof","\n\nTop %d Lines:\n\n     Line      Count\n\n",5);\n          fprintf(__stream,pcVar7,uVar8);\n          qsort((void *)piVar13[5],piVar13[3],4,FUN_00013170);\n          uVar8 = DAT_0002d148;\n          if (piVar13[3] <= (int)DAT_0002d148) {\n            uVar8 = piVar13[3];\n          }\n          piVar9 = (int *)piVar13[5];\n          uVar19 = (ulonglong)uVar8;\n          if (((0 < (int)uVar8) && (iVar6 = *piVar9, iVar6 != 0)) &&\n             (piVar10 = *(int **)(iVar6 + 0x20), piVar10 != (int *)0x0)) {\n            iVar12 = 0;\n            do {\n              iVar12 = iVar12 + 1;\n              piVar14 = piVar10;\n              fprintf(__stream,"%9d %10lu\n",*(undefined4 *)(iVar6 + 0x18),piVar10);\n              piVar9 = (int *)piVar13[5];\n              if ((iVar12 == (int)uVar19) || (iVar6 = piVar9[iVar12], iVar6 == 0)) break;\n              piVar10 = *(int **)(iVar6 + 0x20);\n            } while (piVar10 != (int *)0x0);\n          }\n        }\n        free(piVar9);\n        piVar13[5] = 0;\n        uVar16 = 5;\n        pcVar7 = (char *)dcgettext("gprof","\nExecution Summary:\n\n",5);\n        fprintf(__stream,pcVar7,uVar16,piVar14);\n        iVar6 = DAT_0002d4f8;\n        pcVar7 = (char *)dcgettext("gprof","%9ld   Executable lines in this file\n",5);\n        fprintf(__stream,pcVar7,iVar6);\n        iVar6 = DAT_0002d4f4;\n        pcVar7 = (char *)dcgettext("gprof","%9ld   Lines executed\n",5);\n        fprintf(__stream,pcVar7,iVar6);\n        fVar3 = _DAT_000221d8;\n        if (DAT_0002d4f8 != 0) {\n          fVar3 = ((float)DAT_0002d4f4 * _DAT_000221d8) / (float)DAT_0002d4f8;\n        }\n        dVar18 = (double)fVar3;\n        pcVar7 = (char *)dcgettext("gprof","%9.2f   Percent of the file executed\n",5,piVar14,dVar18\n                                  );\n        fprintf(__stream,pcVar7,SUB84(dVar18,0),(int)((ulonglong)dVar18 >> 0x20));\n        iVar6 = piVar13[2];\n        pcVar7 = (char *)dcgettext("gprof","\n%9lu   Total number of line executions\n",5);\n        fprintf(__stream,pcVar7,iVar6);\n        if (DAT_0002d4f8 == 0) {\n          dVar18 = 0.0;\n        }\n        else {\n          dVar18 = (double)(uint)piVar13[2] / (double)DAT_0002d4f8;\n        }\n        pcVar7 = (char *)dcgettext("gprof","%9.2f   Average executions per line\n",5,piVar14,dVar18)\n        ;\n        fprintf(__stream,pcVar7,SUB84(dVar18,0),(int)((ulonglong)dVar18 >> 0x20));\n        if (*(FILE **)puVar5 != __stream) {\n          fclose(__stream);\n        }\n      }" if (parenthesized_expression "(__stream != (FILE *)0x0)" ( (binary_expression "__stream != (FILE *)0x0" identifier != (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if ((int)DAT_0002d148 < 1) {\n          piVar9 = (int *)piVar13[5];\n        }\n        else {\n          pcVar7 = (char *)dcgettext("gprof","\n\nTop %d Lines:\n\n     Line      Count\n\n",5);\n          fprintf(__stream,pcVar7,uVar8);\n          qsort((void *)piVar13[5],piVar13[3],4,FUN_00013170);\n          uVar8 = DAT_0002d148;\n          if (piVar13[3] <= (int)DAT_0002d148) {\n            uVar8 = piVar13[3];\n          }\n          piVar9 = (int *)piVar13[5];\n          uVar19 = (ulonglong)uVar8;\n          if (((0 < (int)uVar8) && (iVar6 = *piVar9, iVar6 != 0)) &&\n             (piVar10 = *(int **)(iVar6 + 0x20), piVar10 != (int *)0x0)) {\n            iVar12 = 0;\n            do {\n              iVar12 = iVar12 + 1;\n              piVar14 = piVar10;\n              fprintf(__stream,"%9d %10lu\n",*(undefined4 *)(iVar6 + 0x18),piVar10);\n              piVar9 = (int *)piVar13[5];\n              if ((iVar12 == (int)uVar19) || (iVar6 = piVar9[iVar12], iVar6 == 0)) break;\n              piVar10 = *(int **)(iVar6 + 0x20);\n            } while (piVar10 != (int *)0x0);\n          }\n        }\n        free(piVar9);\n        piVar13[5] = 0;\n        uVar16 = 5;\n        pcVar7 = (char *)dcgettext("gprof","\nExecution Summary:\n\n",5);\n        fprintf(__stream,pcVar7,uVar16,piVar14);\n        iVar6 = DAT_0002d4f8;\n        pcVar7 = (char *)dcgettext("gprof","%9ld   Executable lines in this file\n",5);\n        fprintf(__stream,pcVar7,iVar6);\n        iVar6 = DAT_0002d4f4;\n        pcVar7 = (char *)dcgettext("gprof","%9ld   Lines executed\n",5);\n        fprintf(__stream,pcVar7,iVar6);\n        fVar3 = _DAT_000221d8;\n        if (DAT_0002d4f8 != 0) {\n          fVar3 = ((float)DAT_0002d4f4 * _DAT_000221d8) / (float)DAT_0002d4f8;\n        }\n        dVar18 = (double)fVar3;\n        pcVar7 = (char *)dcgettext("gprof","%9.2f   Percent of the file executed\n",5,piVar14,dVar18\n                                  );\n        fprintf(__stream,pcVar7,SUB84(dVar18,0),(int)((ulonglong)dVar18 >> 0x20));\n        iVar6 = piVar13[2];\n        pcVar7 = (char *)dcgettext("gprof","\n%9lu   Total number of line executions\n",5);\n        fprintf(__stream,pcVar7,iVar6);\n        if (DAT_0002d4f8 == 0) {\n          dVar18 = 0.0;\n        }\n        else {\n          dVar18 = (double)(uint)piVar13[2] / (double)DAT_0002d4f8;\n        }\n        pcVar7 = (char *)dcgettext("gprof","%9.2f   Average executions per line\n",5,piVar14,dVar18)\n        ;\n        fprintf(__stream,pcVar7,SUB84(dVar18,0),(int)((ulonglong)dVar18 >> 0x20));\n        if (*(FILE **)puVar5 != __stream) {\n          fclose(__stream);\n        }\n      }" { (if_statement "if ((int)DAT_0002d148 < 1) {\n          piVar9 = (int *)piVar13[5];\n        }\n        else {\n          pcVar7 = (char *)dcgettext("gprof","\n\nTop %d Lines:\n\n     Line      Count\n\n",5);\n          fprintf(__stream,pcVar7,uVar8);\n          qsort((void *)piVar13[5],piVar13[3],4,FUN_00013170);\n          uVar8 = DAT_0002d148;\n          if (piVar13[3] <= (int)DAT_0002d148) {\n            uVar8 = piVar13[3];\n          }\n          piVar9 = (int *)piVar13[5];\n          uVar19 = (ulonglong)uVar8;\n          if (((0 < (int)uVar8) && (iVar6 = *piVar9, iVar6 != 0)) &&\n             (piVar10 = *(int **)(iVar6 + 0x20), piVar10 != (int *)0x0)) {\n            iVar12 = 0;\n            do {\n              iVar12 = iVar12 + 1;\n              piVar14 = piVar10;\n              fprintf(__stream,"%9d %10lu\n",*(undefined4 *)(iVar6 + 0x18),piVar10);\n              piVar9 = (int *)piVar13[5];\n              if ((iVar12 == (int)uVar19) || (iVar6 = piVar9[iVar12], iVar6 == 0)) break;\n              piVar10 = *(int **)(iVar6 + 0x20);\n            } while (piVar10 != (int *)0x0);\n          }\n        }" if (parenthesized_expression "((int)DAT_0002d148 < 1)" ( (binary_expression "(int)DAT_0002d148 < 1" (cast_expression "(int)DAT_0002d148" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          piVar9 = (int *)piVar13[5];\n        }" { (expression_statement "piVar9 = (int *)piVar13[5];" (assignment_expression "piVar9 = (int *)piVar13[5]" identifier = (cast_expression "(int *)piVar13[5]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar13[5]" identifier [ number_literal ]))) ;) }) (else_clause "else {\n          pcVar7 = (char *)dcgettext("gprof","\n\nTop %d Lines:\n\n     Line      Count\n\n",5);\n          fprintf(__stream,pcVar7,uVar8);\n          qsort((void *)piVar13[5],piVar13[3],4,FUN_00013170);\n          uVar8 = DAT_0002d148;\n          if (piVar13[3] <= (int)DAT_0002d148) {\n            uVar8 = piVar13[3];\n          }\n          piVar9 = (int *)piVar13[5];\n          uVar19 = (ulonglong)uVar8;\n          if (((0 < (int)uVar8) && (iVar6 = *piVar9, iVar6 != 0)) &&\n             (piVar10 = *(int **)(iVar6 + 0x20), piVar10 != (int *)0x0)) {\n            iVar12 = 0;\n            do {\n              iVar12 = iVar12 + 1;\n              piVar14 = piVar10;\n              fprintf(__stream,"%9d %10lu\n",*(undefined4 *)(iVar6 + 0x18),piVar10);\n              piVar9 = (int *)piVar13[5];\n              if ((iVar12 == (int)uVar19) || (iVar6 = piVar9[iVar12], iVar6 == 0)) break;\n              piVar10 = *(int **)(iVar6 + 0x20);\n            } while (piVar10 != (int *)0x0);\n          }\n        }" else (compound_statement "{\n          pcVar7 = (char *)dcgettext("gprof","\n\nTop %d Lines:\n\n     Line      Count\n\n",5);\n          fprintf(__stream,pcVar7,uVar8);\n          qsort((void *)piVar13[5],piVar13[3],4,FUN_00013170);\n          uVar8 = DAT_0002d148;\n          if (piVar13[3] <= (int)DAT_0002d148) {\n            uVar8 = piVar13[3];\n          }\n          piVar9 = (int *)piVar13[5];\n          uVar19 = (ulonglong)uVar8;\n          if (((0 < (int)uVar8) && (iVar6 = *piVar9, iVar6 != 0)) &&\n             (piVar10 = *(int **)(iVar6 + 0x20), piVar10 != (int *)0x0)) {\n            iVar12 = 0;\n            do {\n              iVar12 = iVar12 + 1;\n              piVar14 = piVar10;\n              fprintf(__stream,"%9d %10lu\n",*(undefined4 *)(iVar6 + 0x18),piVar10);\n              piVar9 = (int *)piVar13[5];\n              if ((iVar12 == (int)uVar19) || (iVar6 = piVar9[iVar12], iVar6 == 0)) break;\n              piVar10 = *(int **)(iVar6 + 0x20);\n            } while (piVar10 != (int *)0x0);\n          }\n        }" { (expression_statement "pcVar7 = (char *)dcgettext("gprof","\n\nTop %d Lines:\n\n     Line      Count\n\n",5);" (assignment_expression "pcVar7 = (char *)dcgettext("gprof","\n\nTop %d Lines:\n\n     Line      Count\n\n",5)" identifier = (cast_expression "(char *)dcgettext("gprof","\n\nTop %d Lines:\n\n     Line      Count\n\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext("gprof","\n\nTop %d Lines:\n\n     Line      Count\n\n",5)" identifier (argument_list "("gprof","\n\nTop %d Lines:\n\n     Line      Count\n\n",5)" ( (string_literal ""gprof"" " string_content ") , (string_literal ""\n\nTop %d Lines:\n\n     Line      Count\n\n"" " escape_sequence escape_sequence string_content escape_sequence escape_sequence string_content escape_sequence escape_sequence ") , number_literal ))))) ;) (expression_statement "fprintf(__stream,pcVar7,uVar8);" (call_expression "fprintf(__stream,pcVar7,uVar8)" identifier (argument_list "(__stream,pcVar7,uVar8)" ( identifier , identifier , identifier ))) ;) (expression_statement "qsort((void *)piVar13[5],piVar13[3],4,FUN_00013170);" (call_expression "qsort((void *)piVar13[5],piVar13[3],4,FUN_00013170)" identifier (argument_list "((void *)piVar13[5],piVar13[3],4,FUN_00013170)" ( (cast_expression "(void *)piVar13[5]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar13[5]" identifier [ number_literal ])) , (subscript_expression "piVar13[3]" identifier [ number_literal ]) , number_literal , identifier ))) ;) (expression_statement "uVar8 = DAT_0002d148;" (assignment_expression "uVar8 = DAT_0002d148" identifier = identifier) ;) (if_statement "if (piVar13[3] <= (int)DAT_0002d148) {\n            uVar8 = piVar13[3];\n          }" if (parenthesized_expression "(piVar13[3] <= (int)DAT_0002d148)" ( (binary_expression "piVar13[3] <= (int)DAT_0002d148" (subscript_expression "piVar13[3]" identifier [ number_literal ]) <= (cast_expression "(int)DAT_0002d148" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            uVar8 = piVar13[3];\n          }" { (expression_statement "uVar8 = piVar13[3];" (assignment_expression "uVar8 = piVar13[3]" identifier = (subscript_expression "piVar13[3]" identifier [ number_literal ])) ;) })) (expression_statement "piVar9 = (int *)piVar13[5];" (assignment_expression "piVar9 = (int *)piVar13[5]" identifier = (cast_expression "(int *)piVar13[5]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar13[5]" identifier [ number_literal ]))) ;) (expression_statement "uVar19 = (ulonglong)uVar8;" (assignment_expression "uVar19 = (ulonglong)uVar8" identifier = (cast_expression "(ulonglong)uVar8" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) ;) (if_statement "if (((0 < (int)uVar8) && (iVar6 = *piVar9, iVar6 != 0)) &&\n             (piVar10 = *(int **)(iVar6 + 0x20), piVar10 != (int *)0x0)) {\n            iVar12 = 0;\n            do {\n              iVar12 = iVar12 + 1;\n              piVar14 = piVar10;\n              fprintf(__stream,"%9d %10lu\n",*(undefined4 *)(iVar6 + 0x18),piVar10);\n              piVar9 = (int *)piVar13[5];\n              if ((iVar12 == (int)uVar19) || (iVar6 = piVar9[iVar12], iVar6 == 0)) break;\n              piVar10 = *(int **)(iVar6 + 0x20);\n            } while (piVar10 != (int *)0x0);\n          }" if (parenthesized_expression "(((0 < (int)uVar8) && (iVar6 = *piVar9, iVar6 != 0)) &&\n             (piVar10 = *(int **)(iVar6 + 0x20), piVar10 != (int *)0x0))" ( (binary_expression "((0 < (int)uVar8) && (iVar6 = *piVar9, iVar6 != 0)) &&\n             (piVar10 = *(int **)(iVar6 + 0x20), piVar10 != (int *)0x0)" (parenthesized_expression "((0 < (int)uVar8) && (iVar6 = *piVar9, iVar6 != 0))" ( (binary_expression "(0 < (int)uVar8) && (iVar6 = *piVar9, iVar6 != 0)" (parenthesized_expression "(0 < (int)uVar8)" ( (binary_expression "0 < (int)uVar8" number_literal < (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "(iVar6 = *piVar9, iVar6 != 0)" ( (comma_expression "iVar6 = *piVar9, iVar6 != 0" (assignment_expression "iVar6 = *piVar9" identifier = (pointer_expression "*piVar9" * identifier)) , (binary_expression "iVar6 != 0" identifier != number_literal)) ))) )) && (parenthesized_expression "(piVar10 = *(int **)(iVar6 + 0x20), piVar10 != (int *)0x0)" ( (comma_expression "piVar10 = *(int **)(iVar6 + 0x20), piVar10 != (int *)0x0" (assignment_expression "piVar10 = *(int **)(iVar6 + 0x20)" identifier = (pointer_expression "*(int **)(iVar6 + 0x20)" * (cast_expression "(int **)(iVar6 + 0x20)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar6 + 0x20)" ( (binary_expression "iVar6 + 0x20" identifier + number_literal) ))))) , (binary_expression "piVar10 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n            iVar12 = 0;\n            do {\n              iVar12 = iVar12 + 1;\n              piVar14 = piVar10;\n              fprintf(__stream,"%9d %10lu\n",*(undefined4 *)(iVar6 + 0x18),piVar10);\n              piVar9 = (int *)piVar13[5];\n              if ((iVar12 == (int)uVar19) || (iVar6 = piVar9[iVar12], iVar6 == 0)) break;\n              piVar10 = *(int **)(iVar6 + 0x20);\n            } while (piVar10 != (int *)0x0);\n          }" { (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (do_statement "do {\n              iVar12 = iVar12 + 1;\n              piVar14 = piVar10;\n              fprintf(__stream,"%9d %10lu\n",*(undefined4 *)(iVar6 + 0x18),piVar10);\n              piVar9 = (int *)piVar13[5];\n              if ((iVar12 == (int)uVar19) || (iVar6 = piVar9[iVar12], iVar6 == 0)) break;\n              piVar10 = *(int **)(iVar6 + 0x20);\n            } while (piVar10 != (int *)0x0);" do (compound_statement "{\n              iVar12 = iVar12 + 1;\n              piVar14 = piVar10;\n              fprintf(__stream,"%9d %10lu\n",*(undefined4 *)(iVar6 + 0x18),piVar10);\n              piVar9 = (int *)piVar13[5];\n              if ((iVar12 == (int)uVar19) || (iVar6 = piVar9[iVar12], iVar6 == 0)) break;\n              piVar10 = *(int **)(iVar6 + 0x20);\n            }" { (expression_statement "iVar12 = iVar12 + 1;" (assignment_expression "iVar12 = iVar12 + 1" identifier = (binary_expression "iVar12 + 1" identifier + number_literal)) ;) (expression_statement "piVar14 = piVar10;" (assignment_expression "piVar14 = piVar10" identifier = identifier) ;) (expression_statement "fprintf(__stream,"%9d %10lu\n",*(undefined4 *)(iVar6 + 0x18),piVar10);" (call_expression "fprintf(__stream,"%9d %10lu\n",*(undefined4 *)(iVar6 + 0x18),piVar10)" identifier (argument_list "(__stream,"%9d %10lu\n",*(undefined4 *)(iVar6 + 0x18),piVar10)" ( identifier , (string_literal ""%9d %10lu\n"" " string_content escape_sequence ") , (pointer_expression "*(undefined4 *)(iVar6 + 0x18)" * (cast_expression "(undefined4 *)(iVar6 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x18)" ( (binary_expression "iVar6 + 0x18" identifier + number_literal) )))) , identifier ))) ;) (expression_statement "piVar9 = (int *)piVar13[5];" (assignment_expression "piVar9 = (int *)piVar13[5]" identifier = (cast_expression "(int *)piVar13[5]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar13[5]" identifier [ number_literal ]))) ;) (if_statement "if ((iVar12 == (int)uVar19) || (iVar6 = piVar9[iVar12], iVar6 == 0)) break;" if (parenthesized_expression "((iVar12 == (int)uVar19) || (iVar6 = piVar9[iVar12], iVar6 == 0))" ( (binary_expression "(iVar12 == (int)uVar19) || (iVar6 = piVar9[iVar12], iVar6 == 0)" (parenthesized_expression "(iVar12 == (int)uVar19)" ( (binary_expression "iVar12 == (int)uVar19" identifier == (cast_expression "(int)uVar19" ( (type_descriptor "int" primitive_type) ) identifier)) )) || (parenthesized_expression "(iVar6 = piVar9[iVar12], iVar6 == 0)" ( (comma_expression "iVar6 = piVar9[iVar12], iVar6 == 0" (assignment_expression "iVar6 = piVar9[iVar12]" identifier = (subscript_expression "piVar9[iVar12]" identifier [ identifier ])) , (binary_expression "iVar6 == 0" identifier == number_literal)) ))) )) (break_statement "break;" break ;)) (expression_statement "piVar10 = *(int **)(iVar6 + 0x20);" (assignment_expression "piVar10 = *(int **)(iVar6 + 0x20)" identifier = (pointer_expression "*(int **)(iVar6 + 0x20)" * (cast_expression "(int **)(iVar6 + 0x20)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar6 + 0x20)" ( (binary_expression "iVar6 + 0x20" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(piVar10 != (int *)0x0)" ( (binary_expression "piVar10 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) }))) (expression_statement "free(piVar9);" (call_expression "free(piVar9)" identifier (argument_list "(piVar9)" ( identifier ))) ;) (expression_statement "piVar13[5] = 0;" (assignment_expression "piVar13[5] = 0" (subscript_expression "piVar13[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar16 = 5;" (assignment_expression "uVar16 = 5" identifier = number_literal) ;) (expression_statement "pcVar7 = (char *)dcgettext("gprof","\nExecution Summary:\n\n",5);" (assignment_expression "pcVar7 = (char *)dcgettext("gprof","\nExecution Summary:\n\n",5)" identifier = (cast_expression "(char *)dcgettext("gprof","\nExecution Summary:\n\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext("gprof","\nExecution Summary:\n\n",5)" identifier (argument_list "("gprof","\nExecution Summary:\n\n",5)" ( (string_literal ""gprof"" " string_content ") , (string_literal ""\nExecution Summary:\n\n"" " escape_sequence string_content escape_sequence escape_sequence ") , number_literal ))))) ;) (expression_statement "fprintf(__stream,pcVar7,uVar16,piVar14);" (call_expression "fprintf(__stream,pcVar7,uVar16,piVar14)" identifier (argument_list "(__stream,pcVar7,uVar16,piVar14)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar6 = DAT_0002d4f8;" (assignment_expression "iVar6 = DAT_0002d4f8" identifier = identifier) ;) (expression_statement "pcVar7 = (char *)dcgettext("gprof","%9ld   Executable lines in this file\n",5);" (assignment_expression "pcVar7 = (char *)dcgettext("gprof","%9ld   Executable lines in this file\n",5)" identifier = (cast_expression "(char *)dcgettext("gprof","%9ld   Executable lines in this file\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext("gprof","%9ld   Executable lines in this file\n",5)" identifier (argument_list "("gprof","%9ld   Executable lines in this file\n",5)" ( (string_literal ""gprof"" " string_content ") , (string_literal ""%9ld   Executable lines in this file\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "fprintf(__stream,pcVar7,iVar6);" (call_expression "fprintf(__stream,pcVar7,iVar6)" identifier (argument_list "(__stream,pcVar7,iVar6)" ( identifier , identifier , identifier ))) ;) (expression_statement "iVar6 = DAT_0002d4f4;" (assignment_expression "iVar6 = DAT_0002d4f4" identifier = identifier) ;) (expression_statement "pcVar7 = (char *)dcgettext("gprof","%9ld   Lines executed\n",5);" (assignment_expression "pcVar7 = (char *)dcgettext("gprof","%9ld   Lines executed\n",5)" identifier = (cast_expression "(char *)dcgettext("gprof","%9ld   Lines executed\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext("gprof","%9ld   Lines executed\n",5)" identifier (argument_list "("gprof","%9ld   Lines executed\n",5)" ( (string_literal ""gprof"" " string_content ") , (string_literal ""%9ld   Lines executed\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "fprintf(__stream,pcVar7,iVar6);" (call_expression "fprintf(__stream,pcVar7,iVar6)" identifier (argument_list "(__stream,pcVar7,iVar6)" ( identifier , identifier , identifier ))) ;) (expression_statement "fVar3 = _DAT_000221d8;" (assignment_expression "fVar3 = _DAT_000221d8" identifier = identifier) ;) (if_statement "if (DAT_0002d4f8 != 0) {\n          fVar3 = ((float)DAT_0002d4f4 * _DAT_000221d8) / (float)DAT_0002d4f8;\n        }" if (parenthesized_expression "(DAT_0002d4f8 != 0)" ( (binary_expression "DAT_0002d4f8 != 0" identifier != number_literal) )) (compound_statement "{\n          fVar3 = ((float)DAT_0002d4f4 * _DAT_000221d8) / (float)DAT_0002d4f8;\n        }" { (expression_statement "fVar3 = ((float)DAT_0002d4f4 * _DAT_000221d8) / (float)DAT_0002d4f8;" (assignment_expression "fVar3 = ((float)DAT_0002d4f4 * _DAT_000221d8) / (float)DAT_0002d4f8" identifier = (binary_expression "((float)DAT_0002d4f4 * _DAT_000221d8) / (float)DAT_0002d4f8" (parenthesized_expression "((float)DAT_0002d4f4 * _DAT_000221d8)" ( (binary_expression "(float)DAT_0002d4f4 * _DAT_000221d8" (cast_expression "(float)DAT_0002d4f4" ( (type_descriptor "float" primitive_type) ) identifier) * identifier) )) / (cast_expression "(float)DAT_0002d4f8" ( (type_descriptor "float" primitive_type) ) identifier))) ;) })) (expression_statement "dVar18 = (double)fVar3;" (assignment_expression "dVar18 = (double)fVar3" identifier = (cast_expression "(double)fVar3" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (expression_statement "pcVar7 = (char *)dcgettext("gprof","%9.2f   Percent of the file executed\n",5,piVar14,dVar18\n                                  );" (assignment_expression "pcVar7 = (char *)dcgettext("gprof","%9.2f   Percent of the file executed\n",5,piVar14,dVar18\n                                  )" identifier = (cast_expression "(char *)dcgettext("gprof","%9.2f   Percent of the file executed\n",5,piVar14,dVar18\n                                  )" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext("gprof","%9.2f   Percent of the file executed\n",5,piVar14,dVar18\n                                  )" identifier (argument_list "("gprof","%9.2f   Percent of the file executed\n",5,piVar14,dVar18\n                                  )" ( (string_literal ""gprof"" " string_content ") , (string_literal ""%9.2f   Percent of the file executed\n"" " string_content escape_sequence ") , number_literal , identifier , identifier ))))) ;) (expression_statement "fprintf(__stream,pcVar7,SUB84(dVar18,0),(int)((ulonglong)dVar18 >> 0x20));" (call_expression "fprintf(__stream,pcVar7,SUB84(dVar18,0),(int)((ulonglong)dVar18 >> 0x20))" identifier (argument_list "(__stream,pcVar7,SUB84(dVar18,0),(int)((ulonglong)dVar18 >> 0x20))" ( identifier , identifier , (call_expression "SUB84(dVar18,0)" identifier (argument_list "(dVar18,0)" ( identifier , number_literal ))) , (cast_expression "(int)((ulonglong)dVar18 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar18 >> 0x20)" ( (binary_expression "(ulonglong)dVar18 >> 0x20" (cast_expression "(ulonglong)dVar18" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) ))) ;) (expression_statement "iVar6 = piVar13[2];" (assignment_expression "iVar6 = piVar13[2]" identifier = (subscript_expression "piVar13[2]" identifier [ number_literal ])) ;) (expression_statement "pcVar7 = (char *)dcgettext("gprof","\n%9lu   Total number of line executions\n",5);" (assignment_expression "pcVar7 = (char *)dcgettext("gprof","\n%9lu   Total number of line executions\n",5)" identifier = (cast_expression "(char *)dcgettext("gprof","\n%9lu   Total number of line executions\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext("gprof","\n%9lu   Total number of line executions\n",5)" identifier (argument_list "("gprof","\n%9lu   Total number of line executions\n",5)" ( (string_literal ""gprof"" " string_content ") , (string_literal ""\n%9lu   Total number of line executions\n"" " escape_sequence string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "fprintf(__stream,pcVar7,iVar6);" (call_expression "fprintf(__stream,pcVar7,iVar6)" identifier (argument_list "(__stream,pcVar7,iVar6)" ( identifier , identifier , identifier ))) ;) (if_statement "if (DAT_0002d4f8 == 0) {\n          dVar18 = 0.0;\n        }\n        else {\n          dVar18 = (double)(uint)piVar13[2] / (double)DAT_0002d4f8;\n        }" if (parenthesized_expression "(DAT_0002d4f8 == 0)" ( (binary_expression "DAT_0002d4f8 == 0" identifier == number_literal) )) (compound_statement "{\n          dVar18 = 0.0;\n        }" { (expression_statement "dVar18 = 0.0;" (assignment_expression "dVar18 = 0.0" identifier = number_literal) ;) }) (else_clause "else {\n          dVar18 = (double)(uint)piVar13[2] / (double)DAT_0002d4f8;\n        }" else (compound_statement "{\n          dVar18 = (double)(uint)piVar13[2] / (double)DAT_0002d4f8;\n        }" { (expression_statement "dVar18 = (double)(uint)piVar13[2] / (double)DAT_0002d4f8;" (assignment_expression "dVar18 = (double)(uint)piVar13[2] / (double)DAT_0002d4f8" identifier = (binary_expression "(double)(uint)piVar13[2] / (double)DAT_0002d4f8" (cast_expression "(double)(uint)piVar13[2]" ( (type_descriptor "double" primitive_type) ) (cast_expression "(uint)piVar13[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar13[2]" identifier [ number_literal ]))) / (cast_expression "(double)DAT_0002d4f8" ( (type_descriptor "double" primitive_type) ) identifier))) ;) }))) (expression_statement "pcVar7 = (char *)dcgettext("gprof","%9.2f   Average executions per line\n",5,piVar14,dVar18)\n        ;" (assignment_expression "pcVar7 = (char *)dcgettext("gprof","%9.2f   Average executions per line\n",5,piVar14,dVar18)" identifier = (cast_expression "(char *)dcgettext("gprof","%9.2f   Average executions per line\n",5,piVar14,dVar18)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext("gprof","%9.2f   Average executions per line\n",5,piVar14,dVar18)" identifier (argument_list "("gprof","%9.2f   Average executions per line\n",5,piVar14,dVar18)" ( (string_literal ""gprof"" " string_content ") , (string_literal ""%9.2f   Average executions per line\n"" " string_content escape_sequence ") , number_literal , identifier , identifier ))))) ;) (expression_statement "fprintf(__stream,pcVar7,SUB84(dVar18,0),(int)((ulonglong)dVar18 >> 0x20));" (call_expression "fprintf(__stream,pcVar7,SUB84(dVar18,0),(int)((ulonglong)dVar18 >> 0x20))" identifier (argument_list "(__stream,pcVar7,SUB84(dVar18,0),(int)((ulonglong)dVar18 >> 0x20))" ( identifier , identifier , (call_expression "SUB84(dVar18,0)" identifier (argument_list "(dVar18,0)" ( identifier , number_literal ))) , (cast_expression "(int)((ulonglong)dVar18 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar18 >> 0x20)" ( (binary_expression "(ulonglong)dVar18 >> 0x20" (cast_expression "(ulonglong)dVar18" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) ))) ;) (if_statement "if (*(FILE **)puVar5 != __stream) {\n          fclose(__stream);\n        }" if (parenthesized_expression "(*(FILE **)puVar5 != __stream)" ( (binary_expression "*(FILE **)puVar5 != __stream" (pointer_expression "*(FILE **)puVar5" * (cast_expression "(FILE **)puVar5" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) != identifier) )) (compound_statement "{\n          fclose(__stream);\n        }" { (expression_statement "fclose(__stream);" (call_expression "fclose(__stream)" identifier (argument_list "(__stream)" ( identifier ))) ;) })) })) })) (expression_statement "puVar4 = PTR_stdout_0002cfec;" (assignment_expression "puVar4 = PTR_stdout_0002cfec" identifier = identifier) ;) (expression_statement "piVar13 = (int *)*piVar13;" (assignment_expression "piVar13 = (int *)*piVar13" identifier = (cast_expression "(int *)*piVar13" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar13" * identifier))) ;) (expression_statement "PTR_stdout_0002cfec = puVar5;" (assignment_expression "PTR_stdout_0002cfec = puVar5" identifier = identifier) ;) }) while (parenthesized_expression "( true )" ( true )) ;)) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Type propagation algorithm not settling */\n/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */\n/* WARNING: Unknown calling convention -- yet parameter storage is locked */\n\nvoid print_annotated_source(void)\n\n{\n  Source_File **ppSVar1;\n  ulong *puVar2;\n  ulong uVar3;\n  float fVar4;\n  source_file **ppsVar5;\n  undefined *puVar6;\n  undefined *puVar7;\n  long lVar8;\n  void **ppvVar9;\n  Sym *pSVar10;\n  FILE *__stream;\n  char *pcVar11;\n  uint uVar12;\n  void *pvVar13;\n  int *piVar14;\n  Source_File *pSVar15;\n  Sym *pSVar16;\n  Source_File *pSVar17;\n  int iVar18;\n  int *piVar19;\n  int *piVar20;\n  byte bVar21;\n  undefined4 uVar22;\n  Source_File *pSVar23;\n  undefined8 uVar24;\n  double dVar25;\n  ulonglong uVar26;\n  \n  bVar21 = 0;\n  pSVar16 = symtab.base;\n  if (symtab.base < symtab.limit) {\n    do {\n      while (((pSVar16->file != (Source_File *)0x0 && (pSVar16->file->num_lines < pSVar16->line_num)\n              ) && ((pSVar10 = sym_lookup(syms + 8,pSVar16->addr), pSVar10 != (Sym *)0x0 ||\n                    ((syms[8].len == 0 &&\n                     (pSVar10 = sym_lookup(syms + 9,pSVar16->addr), pSVar10 == (Sym *)0x0))))))) {\n        piVar19 = &pSVar16->line_num;\n        ppSVar1 = &pSVar16->file;\n        pSVar16 = pSVar16 + 1;\n        (*ppSVar1)->num_lines = *piVar19;\n        if (symtab.limit <= pSVar16) goto LAB_00013e60;\n      }\n      pSVar16 = pSVar16 + 1;\n    } while (pSVar16 < symtab.limit);\nLAB_00013e60:\n    pSVar17 = first_src_file;\n    if (first_src_file != (Source_File *)0x0) goto LAB_00013e78;\n    if (symtab.limit <= symtab.base) {\n      return;\n    }\n  }\n  else {\n    pSVar17 = first_src_file;\n    if (first_src_file == (Source_File *)0x0) {\n      return;\n    }\nLAB_00013e78:\n    do {\n      if (0 < pSVar17->num_lines) {\n        ppvVar9 = (void **)xmalloc(pSVar17->num_lines << 2);\n        pSVar17->line = ppvVar9;\n        memset(ppvVar9,0,pSVar17->num_lines << 2);\n      }\n      ppsVar5 = &pSVar17->next;\n      pSVar17 = *ppsVar5;\n    } while (*ppsVar5 != (source_file *)0x0);\n    puVar6 = PTR_stdout_0002cfec;\n    pSVar17 = first_src_file;\n    if (symtab.limit <= symtab.base) goto joined_r0x00013f50;\n  }\n  uVar24 = 0x2e5a0;\n  pSVar16 = symtab.base;\nLAB_00013edb:\n  do {\n    if (((pSVar16->file != (Source_File *)0x0) && (pSVar16->file->num_lines != 0)) &&\n       ((pSVar10 = sym_lookup((Sym_Table *)uVar24,pSVar16->addr), pSVar10 != (Sym *)0x0 ||\n        ((syms[8].len == 0 && (pSVar10 = sym_lookup(syms + 9,pSVar16->addr), pSVar10 == (Sym *)0x0))\n        )))) {\n      pSVar17 = pSVar16->file;\n      iVar18 = pSVar16->line_num;\n      uVar3 = pSVar16->ncalls;\n      puVar2 = &pSVar17->ncalls;\n      *puVar2 = *puVar2 + uVar3;\n      ppvVar9 = pSVar17->line + iVar18 + -1;\n      piVar19 = (int *)*ppvVar9;\n      if (piVar19 == (int *)0x0) {\n        *ppvVar9 = pSVar16;\n      }\n      else {\n        if (piVar19[1] == 0 && *piVar19 == 0) {\n          piVar19[8] = piVar19[8] + uVar3;\n          pSVar16 = pSVar16 + 1;\n          puVar6 = PTR_stdout_0002cfec;\n          pSVar17 = first_src_file;\n          if (symtab.limit <= pSVar16) break;\n          goto LAB_00013edb;\n        }\n        piVar14 = (int *)xmalloc(0xfc);\n        piVar20 = piVar14;\n        for (iVar18 = 0x3f; iVar18 != 0; iVar18 = iVar18 + -1) {\n          *piVar20 = *piVar19;\n          piVar19 = piVar19 + (uint)bVar21 * -2 + 1;\n          piVar20 = piVar20 + (uint)bVar21 * -2 + 1;\n        }\n        *piVar14 = 0;\n        piVar14[1] = 0;\n        piVar14[8] = piVar14[8] + pSVar16->ncalls;\n        pSVar16->file->line[pSVar16->line_num + -1] = piVar14;\n      }\n    }\n    pSVar16 = pSVar16 + 1;\n    puVar6 = PTR_stdout_0002cfec;\n    pSVar17 = first_src_file;\n  } while (pSVar16 < symtab.limit);\njoined_r0x00013f50:\n  do {\n    puVar7 = PTR_stdout_0002cfec;\n    if (pSVar17 == (Source_File *)0x0) {\n      PTR_stdout_0002cfec = puVar6;\n      return;\n    }\n    PTR_stdout_0002cfec = puVar6;\n    if ((pSVar17->num_lines != 0) && ((ignore_zeros == 0 || (pSVar17->ncalls != 0)))) {\n      num_lines_executed = 0;\n      num_executable_lines = 0;\n      pSVar23 = pSVar17;\n      __stream = (FILE *)annotate_source(pSVar17,0x10,annotate_with_count,pSVar17);\n      iVar18 = bb_table_length;\n      if (__stream != (FILE *)0x0) {\n        if (bb_table_length < 1) {\n          ppvVar9 = pSVar17->line;\n        }\n        else {\n          pcVar11 = (char *)dcgettext("gprof","\n\nTop %d Lines:\n\n     Line      Count\n\n",5);\n          fprintf(__stream,pcVar11,iVar18);\n          qsort(pSVar17->line,pSVar17->num_lines,4,cmp_ncalls);\n          uVar12 = bb_table_length;\n          if (pSVar17->num_lines <= bb_table_length) {\n            uVar12 = pSVar17->num_lines;\n          }\n          ppvVar9 = pSVar17->line;\n          uVar26 = (ulonglong)uVar12;\n          if (((0 < (int)uVar12) && (pvVar13 = *ppvVar9, pvVar13 != (void *)0x0)) &&\n             (pSVar15 = *(Source_File **)((int)pvVar13 + 0x20), pSVar15 != (Source_File *)0x0)) {\n            iVar18 = 0;\n            do {\n              iVar18 = iVar18 + 1;\n              pSVar23 = pSVar15;\n              fprintf(__stream,"%9d %10lu\n",*(undefined4 *)((int)pvVar13 + 0x18),pSVar15);\n              ppvVar9 = pSVar17->line;\n              if ((iVar18 == (int)uVar26) || (pvVar13 = ppvVar9[iVar18], pvVar13 == (void *)0x0))\n              break;\n              pSVar15 = *(Source_File **)((int)pvVar13 + 0x20);\n            } while (pSVar15 != (Source_File *)0x0);\n          }\n        }\n        free(ppvVar9);\n        pSVar17->line = (void **)0x0;\n        uVar22 = 5;\n        pcVar11 = (char *)dcgettext("gprof","\nExecution Summary:\n\n",5);\n        fprintf(__stream,pcVar11,uVar22,pSVar23);\n        lVar8 = num_executable_lines;\n        pcVar11 = (char *)dcgettext("gprof","%9ld   Executable lines in this file\n",5);\n        fprintf(__stream,pcVar11,lVar8);\n        lVar8 = num_lines_executed;\n        pcVar11 = (char *)dcgettext("gprof","%9ld   Lines executed\n",5);\n        fprintf(__stream,pcVar11,lVar8);\n        fVar4 = _DAT_000221d8;\n        if (num_executable_lines != 0) {\n          fVar4 = ((float)num_lines_executed * _DAT_000221d8) / (float)num_executable_lines;\n        }\n        dVar25 = (double)fVar4;\n        pcVar11 = (char *)dcgettext("gprof","%9.2f   Percent of the file executed\n",5,pSVar23,\n                                    dVar25);\n        fprintf(__stream,pcVar11,SUB84(dVar25,0),(int)((ulonglong)dVar25 >> 0x20));\n        uVar3 = pSVar17->ncalls;\n        pcVar11 = (char *)dcgettext("gprof","\n%9lu   Total number of line executions\n",5);\n        fprintf(__stream,pcVar11,uVar3);\n        if (num_executable_lines == 0) {\n          dVar25 = 0.0;\n        }\n        else {\n          dVar25 = (double)pSVar17->ncalls / (double)num_executable_lines;\n        }\n        pcVar11 = (char *)dcgettext("gprof","%9.2f   Average executions per line\n",5,pSVar23,dVar25\n                                   );\n        fprintf(__stream,pcVar11,SUB84(dVar25,0),(int)((ulonglong)dVar25 >> 0x20));\n        if (*(FILE **)puVar7 != __stream) {\n          fclose(__stream);\n        }\n      }\n    }\n    puVar6 = PTR_stdout_0002cfec;\n    pSVar17 = pSVar17->next;\n    PTR_stdout_0002cfec = puVar7;\n  } while( true );\n}\n\n" comment comment comment comment (function_definition "void print_annotated_source(void)\n\n{\n  Source_File **ppSVar1;\n  ulong *puVar2;\n  ulong uVar3;\n  float fVar4;\n  source_file **ppsVar5;\n  undefined *puVar6;\n  undefined *puVar7;\n  long lVar8;\n  void **ppvVar9;\n  Sym *pSVar10;\n  FILE *__stream;\n  char *pcVar11;\n  uint uVar12;\n  void *pvVar13;\n  int *piVar14;\n  Source_File *pSVar15;\n  Sym *pSVar16;\n  Source_File *pSVar17;\n  int iVar18;\n  int *piVar19;\n  int *piVar20;\n  byte bVar21;\n  undefined4 uVar22;\n  Source_File *pSVar23;\n  undefined8 uVar24;\n  double dVar25;\n  ulonglong uVar26;\n  \n  bVar21 = 0;\n  pSVar16 = symtab.base;\n  if (symtab.base < symtab.limit) {\n    do {\n      while (((pSVar16->file != (Source_File *)0x0 && (pSVar16->file->num_lines < pSVar16->line_num)\n              ) && ((pSVar10 = sym_lookup(syms + 8,pSVar16->addr), pSVar10 != (Sym *)0x0 ||\n                    ((syms[8].len == 0 &&\n                     (pSVar10 = sym_lookup(syms + 9,pSVar16->addr), pSVar10 == (Sym *)0x0))))))) {\n        piVar19 = &pSVar16->line_num;\n        ppSVar1 = &pSVar16->file;\n        pSVar16 = pSVar16 + 1;\n        (*ppSVar1)->num_lines = *piVar19;\n        if (symtab.limit <= pSVar16) goto LAB_00013e60;\n      }\n      pSVar16 = pSVar16 + 1;\n    } while (pSVar16 < symtab.limit);\nLAB_00013e60:\n    pSVar17 = first_src_file;\n    if (first_src_file != (Source_File *)0x0) goto LAB_00013e78;\n    if (symtab.limit <= symtab.base) {\n      return;\n    }\n  }\n  else {\n    pSVar17 = first_src_file;\n    if (first_src_file == (Source_File *)0x0) {\n      return;\n    }\nLAB_00013e78:\n    do {\n      if (0 < pSVar17->num_lines) {\n        ppvVar9 = (void **)xmalloc(pSVar17->num_lines << 2);\n        pSVar17->line = ppvVar9;\n        memset(ppvVar9,0,pSVar17->num_lines << 2);\n      }\n      ppsVar5 = &pSVar17->next;\n      pSVar17 = *ppsVar5;\n    } while (*ppsVar5 != (source_file *)0x0);\n    puVar6 = PTR_stdout_0002cfec;\n    pSVar17 = first_src_file;\n    if (symtab.limit <= symtab.base) goto joined_r0x00013f50;\n  }\n  uVar24 = 0x2e5a0;\n  pSVar16 = symtab.base;\nLAB_00013edb:\n  do {\n    if (((pSVar16->file != (Source_File *)0x0) && (pSVar16->file->num_lines != 0)) &&\n       ((pSVar10 = sym_lookup((Sym_Table *)uVar24,pSVar16->addr), pSVar10 != (Sym *)0x0 ||\n        ((syms[8].len == 0 && (pSVar10 = sym_lookup(syms + 9,pSVar16->addr), pSVar10 == (Sym *)0x0))\n        )))) {\n      pSVar17 = pSVar16->file;\n      iVar18 = pSVar16->line_num;\n      uVar3 = pSVar16->ncalls;\n      puVar2 = &pSVar17->ncalls;\n      *puVar2 = *puVar2 + uVar3;\n      ppvVar9 = pSVar17->line + iVar18 + -1;\n      piVar19 = (int *)*ppvVar9;\n      if (piVar19 == (int *)0x0) {\n        *ppvVar9 = pSVar16;\n      }\n      else {\n        if (piVar19[1] == 0 && *piVar19 == 0) {\n          piVar19[8] = piVar19[8] + uVar3;\n          pSVar16 = pSVar16 + 1;\n          puVar6 = PTR_stdout_0002cfec;\n          pSVar17 = first_src_file;\n          if (symtab.limit <= pSVar16) break;\n          goto LAB_00013edb;\n        }\n        piVar14 = (int *)xmalloc(0xfc);\n        piVar20 = piVar14;\n        for (iVar18 = 0x3f; iVar18 != 0; iVar18 = iVar18 + -1) {\n          *piVar20 = *piVar19;\n          piVar19 = piVar19 + (uint)bVar21 * -2 + 1;\n          piVar20 = piVar20 + (uint)bVar21 * -2 + 1;\n        }\n        *piVar14 = 0;\n        piVar14[1] = 0;\n        piVar14[8] = piVar14[8] + pSVar16->ncalls;\n        pSVar16->file->line[pSVar16->line_num + -1] = piVar14;\n      }\n    }\n    pSVar16 = pSVar16 + 1;\n    puVar6 = PTR_stdout_0002cfec;\n    pSVar17 = first_src_file;\n  } while (pSVar16 < symtab.limit);\njoined_r0x00013f50:\n  do {\n    puVar7 = PTR_stdout_0002cfec;\n    if (pSVar17 == (Source_File *)0x0) {\n      PTR_stdout_0002cfec = puVar6;\n      return;\n    }\n    PTR_stdout_0002cfec = puVar6;\n    if ((pSVar17->num_lines != 0) && ((ignore_zeros == 0 || (pSVar17->ncalls != 0)))) {\n      num_lines_executed = 0;\n      num_executable_lines = 0;\n      pSVar23 = pSVar17;\n      __stream = (FILE *)annotate_source(pSVar17,0x10,annotate_with_count,pSVar17);\n      iVar18 = bb_table_length;\n      if (__stream != (FILE *)0x0) {\n        if (bb_table_length < 1) {\n          ppvVar9 = pSVar17->line;\n        }\n        else {\n          pcVar11 = (char *)dcgettext("gprof","\n\nTop %d Lines:\n\n     Line      Count\n\n",5);\n          fprintf(__stream,pcVar11,iVar18);\n          qsort(pSVar17->line,pSVar17->num_lines,4,cmp_ncalls);\n          uVar12 = bb_table_length;\n          if (pSVar17->num_lines <= bb_table_length) {\n            uVar12 = pSVar17->num_lines;\n          }\n          ppvVar9 = pSVar17->line;\n          uVar26 = (ulonglong)uVar12;\n          if (((0 < (int)uVar12) && (pvVar13 = *ppvVar9, pvVar13 != (void *)0x0)) &&\n             (pSVar15 = *(Source_File **)((int)pvVar13 + 0x20), pSVar15 != (Source_File *)0x0)) {\n            iVar18 = 0;\n            do {\n              iVar18 = iVar18 + 1;\n              pSVar23 = pSVar15;\n              fprintf(__stream,"%9d %10lu\n",*(undefined4 *)((int)pvVar13 + 0x18),pSVar15);\n              ppvVar9 = pSVar17->line;\n              if ((iVar18 == (int)uVar26) || (pvVar13 = ppvVar9[iVar18], pvVar13 == (void *)0x0))\n              break;\n              pSVar15 = *(Source_File **)((int)pvVar13 + 0x20);\n            } while (pSVar15 != (Source_File *)0x0);\n          }\n        }\n        free(ppvVar9);\n        pSVar17->line = (void **)0x0;\n        uVar22 = 5;\n        pcVar11 = (char *)dcgettext("gprof","\nExecution Summary:\n\n",5);\n        fprintf(__stream,pcVar11,uVar22,pSVar23);\n        lVar8 = num_executable_lines;\n        pcVar11 = (char *)dcgettext("gprof","%9ld   Executable lines in this file\n",5);\n        fprintf(__stream,pcVar11,lVar8);\n        lVar8 = num_lines_executed;\n        pcVar11 = (char *)dcgettext("gprof","%9ld   Lines executed\n",5);\n        fprintf(__stream,pcVar11,lVar8);\n        fVar4 = _DAT_000221d8;\n        if (num_executable_lines != 0) {\n          fVar4 = ((float)num_lines_executed * _DAT_000221d8) / (float)num_executable_lines;\n        }\n        dVar25 = (double)fVar4;\n        pcVar11 = (char *)dcgettext("gprof","%9.2f   Percent of the file executed\n",5,pSVar23,\n                                    dVar25);\n        fprintf(__stream,pcVar11,SUB84(dVar25,0),(int)((ulonglong)dVar25 >> 0x20));\n        uVar3 = pSVar17->ncalls;\n        pcVar11 = (char *)dcgettext("gprof","\n%9lu   Total number of line executions\n",5);\n        fprintf(__stream,pcVar11,uVar3);\n        if (num_executable_lines == 0) {\n          dVar25 = 0.0;\n        }\n        else {\n          dVar25 = (double)pSVar17->ncalls / (double)num_executable_lines;\n        }\n        pcVar11 = (char *)dcgettext("gprof","%9.2f   Average executions per line\n",5,pSVar23,dVar25\n                                   );\n        fprintf(__stream,pcVar11,SUB84(dVar25,0),(int)((ulonglong)dVar25 >> 0x20));\n        if (*(FILE **)puVar7 != __stream) {\n          fclose(__stream);\n        }\n      }\n    }\n    puVar6 = PTR_stdout_0002cfec;\n    pSVar17 = pSVar17->next;\n    PTR_stdout_0002cfec = puVar7;\n  } while( true );\n}" primitive_type (function_declarator "print_annotated_source(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  Source_File **ppSVar1;\n  ulong *puVar2;\n  ulong uVar3;\n  float fVar4;\n  source_file **ppsVar5;\n  undefined *puVar6;\n  undefined *puVar7;\n  long lVar8;\n  void **ppvVar9;\n  Sym *pSVar10;\n  FILE *__stream;\n  char *pcVar11;\n  uint uVar12;\n  void *pvVar13;\n  int *piVar14;\n  Source_File *pSVar15;\n  Sym *pSVar16;\n  Source_File *pSVar17;\n  int iVar18;\n  int *piVar19;\n  int *piVar20;\n  byte bVar21;\n  undefined4 uVar22;\n  Source_File *pSVar23;\n  undefined8 uVar24;\n  double dVar25;\n  ulonglong uVar26;\n  \n  bVar21 = 0;\n  pSVar16 = symtab.base;\n  if (symtab.base < symtab.limit) {\n    do {\n      while (((pSVar16->file != (Source_File *)0x0 && (pSVar16->file->num_lines < pSVar16->line_num)\n              ) && ((pSVar10 = sym_lookup(syms + 8,pSVar16->addr), pSVar10 != (Sym *)0x0 ||\n                    ((syms[8].len == 0 &&\n                     (pSVar10 = sym_lookup(syms + 9,pSVar16->addr), pSVar10 == (Sym *)0x0))))))) {\n        piVar19 = &pSVar16->line_num;\n        ppSVar1 = &pSVar16->file;\n        pSVar16 = pSVar16 + 1;\n        (*ppSVar1)->num_lines = *piVar19;\n        if (symtab.limit <= pSVar16) goto LAB_00013e60;\n      }\n      pSVar16 = pSVar16 + 1;\n    } while (pSVar16 < symtab.limit);\nLAB_00013e60:\n    pSVar17 = first_src_file;\n    if (first_src_file != (Source_File *)0x0) goto LAB_00013e78;\n    if (symtab.limit <= symtab.base) {\n      return;\n    }\n  }\n  else {\n    pSVar17 = first_src_file;\n    if (first_src_file == (Source_File *)0x0) {\n      return;\n    }\nLAB_00013e78:\n    do {\n      if (0 < pSVar17->num_lines) {\n        ppvVar9 = (void **)xmalloc(pSVar17->num_lines << 2);\n        pSVar17->line = ppvVar9;\n        memset(ppvVar9,0,pSVar17->num_lines << 2);\n      }\n      ppsVar5 = &pSVar17->next;\n      pSVar17 = *ppsVar5;\n    } while (*ppsVar5 != (source_file *)0x0);\n    puVar6 = PTR_stdout_0002cfec;\n    pSVar17 = first_src_file;\n    if (symtab.limit <= symtab.base) goto joined_r0x00013f50;\n  }\n  uVar24 = 0x2e5a0;\n  pSVar16 = symtab.base;\nLAB_00013edb:\n  do {\n    if (((pSVar16->file != (Source_File *)0x0) && (pSVar16->file->num_lines != 0)) &&\n       ((pSVar10 = sym_lookup((Sym_Table *)uVar24,pSVar16->addr), pSVar10 != (Sym *)0x0 ||\n        ((syms[8].len == 0 && (pSVar10 = sym_lookup(syms + 9,pSVar16->addr), pSVar10 == (Sym *)0x0))\n        )))) {\n      pSVar17 = pSVar16->file;\n      iVar18 = pSVar16->line_num;\n      uVar3 = pSVar16->ncalls;\n      puVar2 = &pSVar17->ncalls;\n      *puVar2 = *puVar2 + uVar3;\n      ppvVar9 = pSVar17->line + iVar18 + -1;\n      piVar19 = (int *)*ppvVar9;\n      if (piVar19 == (int *)0x0) {\n        *ppvVar9 = pSVar16;\n      }\n      else {\n        if (piVar19[1] == 0 && *piVar19 == 0) {\n          piVar19[8] = piVar19[8] + uVar3;\n          pSVar16 = pSVar16 + 1;\n          puVar6 = PTR_stdout_0002cfec;\n          pSVar17 = first_src_file;\n          if (symtab.limit <= pSVar16) break;\n          goto LAB_00013edb;\n        }\n        piVar14 = (int *)xmalloc(0xfc);\n        piVar20 = piVar14;\n        for (iVar18 = 0x3f; iVar18 != 0; iVar18 = iVar18 + -1) {\n          *piVar20 = *piVar19;\n          piVar19 = piVar19 + (uint)bVar21 * -2 + 1;\n          piVar20 = piVar20 + (uint)bVar21 * -2 + 1;\n        }\n        *piVar14 = 0;\n        piVar14[1] = 0;\n        piVar14[8] = piVar14[8] + pSVar16->ncalls;\n        pSVar16->file->line[pSVar16->line_num + -1] = piVar14;\n      }\n    }\n    pSVar16 = pSVar16 + 1;\n    puVar6 = PTR_stdout_0002cfec;\n    pSVar17 = first_src_file;\n  } while (pSVar16 < symtab.limit);\njoined_r0x00013f50:\n  do {\n    puVar7 = PTR_stdout_0002cfec;\n    if (pSVar17 == (Source_File *)0x0) {\n      PTR_stdout_0002cfec = puVar6;\n      return;\n    }\n    PTR_stdout_0002cfec = puVar6;\n    if ((pSVar17->num_lines != 0) && ((ignore_zeros == 0 || (pSVar17->ncalls != 0)))) {\n      num_lines_executed = 0;\n      num_executable_lines = 0;\n      pSVar23 = pSVar17;\n      __stream = (FILE *)annotate_source(pSVar17,0x10,annotate_with_count,pSVar17);\n      iVar18 = bb_table_length;\n      if (__stream != (FILE *)0x0) {\n        if (bb_table_length < 1) {\n          ppvVar9 = pSVar17->line;\n        }\n        else {\n          pcVar11 = (char *)dcgettext("gprof","\n\nTop %d Lines:\n\n     Line      Count\n\n",5);\n          fprintf(__stream,pcVar11,iVar18);\n          qsort(pSVar17->line,pSVar17->num_lines,4,cmp_ncalls);\n          uVar12 = bb_table_length;\n          if (pSVar17->num_lines <= bb_table_length) {\n            uVar12 = pSVar17->num_lines;\n          }\n          ppvVar9 = pSVar17->line;\n          uVar26 = (ulonglong)uVar12;\n          if (((0 < (int)uVar12) && (pvVar13 = *ppvVar9, pvVar13 != (void *)0x0)) &&\n             (pSVar15 = *(Source_File **)((int)pvVar13 + 0x20), pSVar15 != (Source_File *)0x0)) {\n            iVar18 = 0;\n            do {\n              iVar18 = iVar18 + 1;\n              pSVar23 = pSVar15;\n              fprintf(__stream,"%9d %10lu\n",*(undefined4 *)((int)pvVar13 + 0x18),pSVar15);\n              ppvVar9 = pSVar17->line;\n              if ((iVar18 == (int)uVar26) || (pvVar13 = ppvVar9[iVar18], pvVar13 == (void *)0x0))\n              break;\n              pSVar15 = *(Source_File **)((int)pvVar13 + 0x20);\n            } while (pSVar15 != (Source_File *)0x0);\n          }\n        }\n        free(ppvVar9);\n        pSVar17->line = (void **)0x0;\n        uVar22 = 5;\n        pcVar11 = (char *)dcgettext("gprof","\nExecution Summary:\n\n",5);\n        fprintf(__stream,pcVar11,uVar22,pSVar23);\n        lVar8 = num_executable_lines;\n        pcVar11 = (char *)dcgettext("gprof","%9ld   Executable lines in this file\n",5);\n        fprintf(__stream,pcVar11,lVar8);\n        lVar8 = num_lines_executed;\n        pcVar11 = (char *)dcgettext("gprof","%9ld   Lines executed\n",5);\n        fprintf(__stream,pcVar11,lVar8);\n        fVar4 = _DAT_000221d8;\n        if (num_executable_lines != 0) {\n          fVar4 = ((float)num_lines_executed * _DAT_000221d8) / (float)num_executable_lines;\n        }\n        dVar25 = (double)fVar4;\n        pcVar11 = (char *)dcgettext("gprof","%9.2f   Percent of the file executed\n",5,pSVar23,\n                                    dVar25);\n        fprintf(__stream,pcVar11,SUB84(dVar25,0),(int)((ulonglong)dVar25 >> 0x20));\n        uVar3 = pSVar17->ncalls;\n        pcVar11 = (char *)dcgettext("gprof","\n%9lu   Total number of line executions\n",5);\n        fprintf(__stream,pcVar11,uVar3);\n        if (num_executable_lines == 0) {\n          dVar25 = 0.0;\n        }\n        else {\n          dVar25 = (double)pSVar17->ncalls / (double)num_executable_lines;\n        }\n        pcVar11 = (char *)dcgettext("gprof","%9.2f   Average executions per line\n",5,pSVar23,dVar25\n                                   );\n        fprintf(__stream,pcVar11,SUB84(dVar25,0),(int)((ulonglong)dVar25 >> 0x20));\n        if (*(FILE **)puVar7 != __stream) {\n          fclose(__stream);\n        }\n      }\n    }\n    puVar6 = PTR_stdout_0002cfec;\n    pSVar17 = pSVar17->next;\n    PTR_stdout_0002cfec = puVar7;\n  } while( true );\n}" { (declaration "Source_File **ppSVar1;" type_identifier (pointer_declarator "**ppSVar1" * (pointer_declarator "*ppSVar1" * identifier)) ;) (declaration "ulong *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "ulong uVar3;" type_identifier identifier ;) (declaration "float fVar4;" primitive_type identifier ;) (declaration "source_file **ppsVar5;" type_identifier (pointer_declarator "**ppsVar5" * (pointer_declarator "*ppsVar5" * identifier)) ;) (declaration "undefined *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "undefined *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "long lVar8;" (sized_type_specifier "long" long) identifier ;) (declaration "void **ppvVar9;" primitive_type (pointer_declarator "**ppvVar9" * (pointer_declarator "*ppvVar9" * identifier)) ;) (declaration "Sym *pSVar10;" type_identifier (pointer_declarator "*pSVar10" * identifier) ;) (declaration "FILE *__stream;" type_identifier (pointer_declarator "*__stream" * identifier) ;) (declaration "char *pcVar11;" primitive_type (pointer_declarator "*pcVar11" * identifier) ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "void *pvVar13;" primitive_type (pointer_declarator "*pvVar13" * identifier) ;) (declaration "int *piVar14;" primitive_type (pointer_declarator "*piVar14" * identifier) ;) (declaration "Source_File *pSVar15;" type_identifier (pointer_declarator "*pSVar15" * identifier) ;) (declaration "Sym *pSVar16;" type_identifier (pointer_declarator "*pSVar16" * identifier) ;) (declaration "Source_File *pSVar17;" type_identifier (pointer_declarator "*pSVar17" * identifier) ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "int *piVar19;" primitive_type (pointer_declarator "*piVar19" * identifier) ;) (declaration "int *piVar20;" primitive_type (pointer_declarator "*piVar20" * identifier) ;) (declaration "byte bVar21;" type_identifier identifier ;) (declaration "undefined4 uVar22;" type_identifier identifier ;) (declaration "Source_File *pSVar23;" type_identifier (pointer_declarator "*pSVar23" * identifier) ;) (declaration "undefined8 uVar24;" type_identifier identifier ;) (declaration "double dVar25;" primitive_type identifier ;) (declaration "ulonglong uVar26;" type_identifier identifier ;) (expression_statement "bVar21 = 0;" (assignment_expression "bVar21 = 0" identifier = number_literal) ;) (expression_statement "pSVar16 = symtab.base;" (assignment_expression "pSVar16 = symtab.base" identifier = (field_expression "symtab.base" identifier . field_identifier)) ;) (if_statement "if (symtab.base < symtab.limit) {\n    do {\n      while (((pSVar16->file != (Source_File *)0x0 && (pSVar16->file->num_lines < pSVar16->line_num)\n              ) && ((pSVar10 = sym_lookup(syms + 8,pSVar16->addr), pSVar10 != (Sym *)0x0 ||\n                    ((syms[8].len == 0 &&\n                     (pSVar10 = sym_lookup(syms + 9,pSVar16->addr), pSVar10 == (Sym *)0x0))))))) {\n        piVar19 = &pSVar16->line_num;\n        ppSVar1 = &pSVar16->file;\n        pSVar16 = pSVar16 + 1;\n        (*ppSVar1)->num_lines = *piVar19;\n        if (symtab.limit <= pSVar16) goto LAB_00013e60;\n      }\n      pSVar16 = pSVar16 + 1;\n    } while (pSVar16 < symtab.limit);\nLAB_00013e60:\n    pSVar17 = first_src_file;\n    if (first_src_file != (Source_File *)0x0) goto LAB_00013e78;\n    if (symtab.limit <= symtab.base) {\n      return;\n    }\n  }\n  else {\n    pSVar17 = first_src_file;\n    if (first_src_file == (Source_File *)0x0) {\n      return;\n    }\nLAB_00013e78:\n    do {\n      if (0 < pSVar17->num_lines) {\n        ppvVar9 = (void **)xmalloc(pSVar17->num_lines << 2);\n        pSVar17->line = ppvVar9;\n        memset(ppvVar9,0,pSVar17->num_lines << 2);\n      }\n      ppsVar5 = &pSVar17->next;\n      pSVar17 = *ppsVar5;\n    } while (*ppsVar5 != (source_file *)0x0);\n    puVar6 = PTR_stdout_0002cfec;\n    pSVar17 = first_src_file;\n    if (symtab.limit <= symtab.base) goto joined_r0x00013f50;\n  }" if (parenthesized_expression "(symtab.base < symtab.limit)" ( (binary_expression "symtab.base < symtab.limit" (field_expression "symtab.base" identifier . field_identifier) < (field_expression "symtab.limit" identifier . field_identifier)) )) (compound_statement "{\n    do {\n      while (((pSVar16->file != (Source_File *)0x0 && (pSVar16->file->num_lines < pSVar16->line_num)\n              ) && ((pSVar10 = sym_lookup(syms + 8,pSVar16->addr), pSVar10 != (Sym *)0x0 ||\n                    ((syms[8].len == 0 &&\n                     (pSVar10 = sym_lookup(syms + 9,pSVar16->addr), pSVar10 == (Sym *)0x0))))))) {\n        piVar19 = &pSVar16->line_num;\n        ppSVar1 = &pSVar16->file;\n        pSVar16 = pSVar16 + 1;\n        (*ppSVar1)->num_lines = *piVar19;\n        if (symtab.limit <= pSVar16) goto LAB_00013e60;\n      }\n      pSVar16 = pSVar16 + 1;\n    } while (pSVar16 < symtab.limit);\nLAB_00013e60:\n    pSVar17 = first_src_file;\n    if (first_src_file != (Source_File *)0x0) goto LAB_00013e78;\n    if (symtab.limit <= symtab.base) {\n      return;\n    }\n  }" { (do_statement "do {\n      while (((pSVar16->file != (Source_File *)0x0 && (pSVar16->file->num_lines < pSVar16->line_num)\n              ) && ((pSVar10 = sym_lookup(syms + 8,pSVar16->addr), pSVar10 != (Sym *)0x0 ||\n                    ((syms[8].len == 0 &&\n                     (pSVar10 = sym_lookup(syms + 9,pSVar16->addr), pSVar10 == (Sym *)0x0))))))) {\n        piVar19 = &pSVar16->line_num;\n        ppSVar1 = &pSVar16->file;\n        pSVar16 = pSVar16 + 1;\n        (*ppSVar1)->num_lines = *piVar19;\n        if (symtab.limit <= pSVar16) goto LAB_00013e60;\n      }\n      pSVar16 = pSVar16 + 1;\n    } while (pSVar16 < symtab.limit);" do (compound_statement "{\n      while (((pSVar16->file != (Source_File *)0x0 && (pSVar16->file->num_lines < pSVar16->line_num)\n              ) && ((pSVar10 = sym_lookup(syms + 8,pSVar16->addr), pSVar10 != (Sym *)0x0 ||\n                    ((syms[8].len == 0 &&\n                     (pSVar10 = sym_lookup(syms + 9,pSVar16->addr), pSVar10 == (Sym *)0x0))))))) {\n        piVar19 = &pSVar16->line_num;\n        ppSVar1 = &pSVar16->file;\n        pSVar16 = pSVar16 + 1;\n        (*ppSVar1)->num_lines = *piVar19;\n        if (symtab.limit <= pSVar16) goto LAB_00013e60;\n      }\n      pSVar16 = pSVar16 + 1;\n    }" { (while_statement "while (((pSVar16->file != (Source_File *)0x0 && (pSVar16->file->num_lines < pSVar16->line_num)\n              ) && ((pSVar10 = sym_lookup(syms + 8,pSVar16->addr), pSVar10 != (Sym *)0x0 ||\n                    ((syms[8].len == 0 &&\n                     (pSVar10 = sym_lookup(syms + 9,pSVar16->addr), pSVar10 == (Sym *)0x0))))))) {\n        piVar19 = &pSVar16->line_num;\n        ppSVar1 = &pSVar16->file;\n        pSVar16 = pSVar16 + 1;\n        (*ppSVar1)->num_lines = *piVar19;\n        if (symtab.limit <= pSVar16) goto LAB_00013e60;\n      }" while (parenthesized_expression "(((pSVar16->file != (Source_File *)0x0 && (pSVar16->file->num_lines < pSVar16->line_num)\n              ) && ((pSVar10 = sym_lookup(syms + 8,pSVar16->addr), pSVar10 != (Sym *)0x0 ||\n                    ((syms[8].len == 0 &&\n                     (pSVar10 = sym_lookup(syms + 9,pSVar16->addr), pSVar10 == (Sym *)0x0)))))))" ( (parenthesized_expression "((pSVar16->file != (Source_File *)0x0 && (pSVar16->file->num_lines < pSVar16->line_num)\n              ) && ((pSVar10 = sym_lookup(syms + 8,pSVar16->addr), pSVar10 != (Sym *)0x0 ||\n                    ((syms[8].len == 0 &&\n                     (pSVar10 = sym_lookup(syms + 9,pSVar16->addr), pSVar10 == (Sym *)0x0))))))" ( (binary_expression "(pSVar16->file != (Source_File *)0x0 && (pSVar16->file->num_lines < pSVar16->line_num)\n              ) && ((pSVar10 = sym_lookup(syms + 8,pSVar16->addr), pSVar10 != (Sym *)0x0 ||\n                    ((syms[8].len == 0 &&\n                     (pSVar10 = sym_lookup(syms + 9,pSVar16->addr), pSVar10 == (Sym *)0x0)))))" (parenthesized_expression "(pSVar16->file != (Source_File *)0x0 && (pSVar16->file->num_lines < pSVar16->line_num)\n              )" ( (binary_expression "pSVar16->file != (Source_File *)0x0 && (pSVar16->file->num_lines < pSVar16->line_num)" (binary_expression "pSVar16->file != (Source_File *)0x0" (field_expression "pSVar16->file" identifier -> field_identifier) != (cast_expression "(Source_File *)0x0" ( (type_descriptor "Source_File *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) && (parenthesized_expression "(pSVar16->file->num_lines < pSVar16->line_num)" ( (binary_expression "pSVar16->file->num_lines < pSVar16->line_num" (field_expression "pSVar16->file->num_lines" (field_expression "pSVar16->file" identifier -> field_identifier) -> field_identifier) < (field_expression "pSVar16->line_num" identifier -> field_identifier)) ))) )) && (parenthesized_expression "((pSVar10 = sym_lookup(syms + 8,pSVar16->addr), pSVar10 != (Sym *)0x0 ||\n                    ((syms[8].len == 0 &&\n                     (pSVar10 = sym_lookup(syms + 9,pSVar16->addr), pSVar10 == (Sym *)0x0)))))" ( (parenthesized_expression "(pSVar10 = sym_lookup(syms + 8,pSVar16->addr), pSVar10 != (Sym *)0x0 ||\n                    ((syms[8].len == 0 &&\n                     (pSVar10 = sym_lookup(syms + 9,pSVar16->addr), pSVar10 == (Sym *)0x0))))" ( (comma_expression "pSVar10 = sym_lookup(syms + 8,pSVar16->addr), pSVar10 != (Sym *)0x0 ||\n                    ((syms[8].len == 0 &&\n                     (pSVar10 = sym_lookup(syms + 9,pSVar16->addr), pSVar10 == (Sym *)0x0)))" (assignment_expression "pSVar10 = sym_lookup(syms + 8,pSVar16->addr)" identifier = (call_expression "sym_lookup(syms + 8,pSVar16->addr)" identifier (argument_list "(syms + 8,pSVar16->addr)" ( (binary_expression "syms + 8" identifier + number_literal) , (field_expression "pSVar16->addr" identifier -> field_identifier) )))) , (binary_expression "pSVar10 != (Sym *)0x0 ||\n                    ((syms[8].len == 0 &&\n                     (pSVar10 = sym_lookup(syms + 9,pSVar16->addr), pSVar10 == (Sym *)0x0)))" (binary_expression "pSVar10 != (Sym *)0x0" identifier != (cast_expression "(Sym *)0x0" ( (type_descriptor "Sym *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) || (parenthesized_expression "((syms[8].len == 0 &&\n                     (pSVar10 = sym_lookup(syms + 9,pSVar16->addr), pSVar10 == (Sym *)0x0)))" ( (parenthesized_expression "(syms[8].len == 0 &&\n                     (pSVar10 = sym_lookup(syms + 9,pSVar16->addr), pSVar10 == (Sym *)0x0))" ( (binary_expression "syms[8].len == 0 &&\n                     (pSVar10 = sym_lookup(syms + 9,pSVar16->addr), pSVar10 == (Sym *)0x0)" (binary_expression "syms[8].len == 0" (field_expression "syms[8].len" (subscript_expression "syms[8]" identifier [ number_literal ]) . field_identifier) == number_literal) && (parenthesized_expression "(pSVar10 = sym_lookup(syms + 9,pSVar16->addr), pSVar10 == (Sym *)0x0)" ( (comma_expression "pSVar10 = sym_lookup(syms + 9,pSVar16->addr), pSVar10 == (Sym *)0x0" (assignment_expression "pSVar10 = sym_lookup(syms + 9,pSVar16->addr)" identifier = (call_expression "sym_lookup(syms + 9,pSVar16->addr)" identifier (argument_list "(syms + 9,pSVar16->addr)" ( (binary_expression "syms + 9" identifier + number_literal) , (field_expression "pSVar16->addr" identifier -> field_identifier) )))) , (binary_expression "pSVar10 == (Sym *)0x0" identifier == (cast_expression "(Sym *)0x0" ( (type_descriptor "Sym *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) )))) )) ))) )) )) (compound_statement "{\n        piVar19 = &pSVar16->line_num;\n        ppSVar1 = &pSVar16->file;\n        pSVar16 = pSVar16 + 1;\n        (*ppSVar1)->num_lines = *piVar19;\n        if (symtab.limit <= pSVar16) goto LAB_00013e60;\n      }" { (expression_statement "piVar19 = &pSVar16->line_num;" (assignment_expression "piVar19 = &pSVar16->line_num" identifier = (pointer_expression "&pSVar16->line_num" & (field_expression "pSVar16->line_num" identifier -> field_identifier))) ;) (expression_statement "ppSVar1 = &pSVar16->file;" (assignment_expression "ppSVar1 = &pSVar16->file" identifier = (pointer_expression "&pSVar16->file" & (field_expression "pSVar16->file" identifier -> field_identifier))) ;) (expression_statement "pSVar16 = pSVar16 + 1;" (assignment_expression "pSVar16 = pSVar16 + 1" identifier = (binary_expression "pSVar16 + 1" identifier + number_literal)) ;) (expression_statement "(*ppSVar1)->num_lines = *piVar19;" (assignment_expression "(*ppSVar1)->num_lines = *piVar19" (field_expression "(*ppSVar1)->num_lines" (parenthesized_expression "(*ppSVar1)" ( (pointer_expression "*ppSVar1" * identifier) )) -> field_identifier) = (pointer_expression "*piVar19" * identifier)) ;) (if_statement "if (symtab.limit <= pSVar16) goto LAB_00013e60;" if (parenthesized_expression "(symtab.limit <= pSVar16)" ( (binary_expression "symtab.limit <= pSVar16" (field_expression "symtab.limit" identifier . field_identifier) <= identifier) )) (goto_statement "goto LAB_00013e60;" goto statement_identifier ;)) })) (expression_statement "pSVar16 = pSVar16 + 1;" (assignment_expression "pSVar16 = pSVar16 + 1" identifier = (binary_expression "pSVar16 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(pSVar16 < symtab.limit)" ( (binary_expression "pSVar16 < symtab.limit" identifier < (field_expression "symtab.limit" identifier . field_identifier)) )) ;) (labeled_statement "LAB_00013e60:\n    pSVar17 = first_src_file;" statement_identifier : (expression_statement "pSVar17 = first_src_file;" (assignment_expression "pSVar17 = first_src_file" identifier = identifier) ;)) (if_statement "if (first_src_file != (Source_File *)0x0) goto LAB_00013e78;" if (parenthesized_expression "(first_src_file != (Source_File *)0x0)" ( (binary_expression "first_src_file != (Source_File *)0x0" identifier != (cast_expression "(Source_File *)0x0" ( (type_descriptor "Source_File *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00013e78;" goto statement_identifier ;)) (if_statement "if (symtab.limit <= symtab.base) {\n      return;\n    }" if (parenthesized_expression "(symtab.limit <= symtab.base)" ( (binary_expression "symtab.limit <= symtab.base" (field_expression "symtab.limit" identifier . field_identifier) <= (field_expression "symtab.base" identifier . field_identifier)) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) }) (else_clause "else {\n    pSVar17 = first_src_file;\n    if (first_src_file == (Source_File *)0x0) {\n      return;\n    }\nLAB_00013e78:\n    do {\n      if (0 < pSVar17->num_lines) {\n        ppvVar9 = (void **)xmalloc(pSVar17->num_lines << 2);\n        pSVar17->line = ppvVar9;\n        memset(ppvVar9,0,pSVar17->num_lines << 2);\n      }\n      ppsVar5 = &pSVar17->next;\n      pSVar17 = *ppsVar5;\n    } while (*ppsVar5 != (source_file *)0x0);\n    puVar6 = PTR_stdout_0002cfec;\n    pSVar17 = first_src_file;\n    if (symtab.limit <= symtab.base) goto joined_r0x00013f50;\n  }" else (compound_statement "{\n    pSVar17 = first_src_file;\n    if (first_src_file == (Source_File *)0x0) {\n      return;\n    }\nLAB_00013e78:\n    do {\n      if (0 < pSVar17->num_lines) {\n        ppvVar9 = (void **)xmalloc(pSVar17->num_lines << 2);\n        pSVar17->line = ppvVar9;\n        memset(ppvVar9,0,pSVar17->num_lines << 2);\n      }\n      ppsVar5 = &pSVar17->next;\n      pSVar17 = *ppsVar5;\n    } while (*ppsVar5 != (source_file *)0x0);\n    puVar6 = PTR_stdout_0002cfec;\n    pSVar17 = first_src_file;\n    if (symtab.limit <= symtab.base) goto joined_r0x00013f50;\n  }" { (expression_statement "pSVar17 = first_src_file;" (assignment_expression "pSVar17 = first_src_file" identifier = identifier) ;) (if_statement "if (first_src_file == (Source_File *)0x0) {\n      return;\n    }" if (parenthesized_expression "(first_src_file == (Source_File *)0x0)" ( (binary_expression "first_src_file == (Source_File *)0x0" identifier == (cast_expression "(Source_File *)0x0" ( (type_descriptor "Source_File *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) (labeled_statement "LAB_00013e78:\n    do {\n      if (0 < pSVar17->num_lines) {\n        ppvVar9 = (void **)xmalloc(pSVar17->num_lines << 2);\n        pSVar17->line = ppvVar9;\n        memset(ppvVar9,0,pSVar17->num_lines << 2);\n      }\n      ppsVar5 = &pSVar17->next;\n      pSVar17 = *ppsVar5;\n    } while (*ppsVar5 != (source_file *)0x0);" statement_identifier : (do_statement "do {\n      if (0 < pSVar17->num_lines) {\n        ppvVar9 = (void **)xmalloc(pSVar17->num_lines << 2);\n        pSVar17->line = ppvVar9;\n        memset(ppvVar9,0,pSVar17->num_lines << 2);\n      }\n      ppsVar5 = &pSVar17->next;\n      pSVar17 = *ppsVar5;\n    } while (*ppsVar5 != (source_file *)0x0);" do (compound_statement "{\n      if (0 < pSVar17->num_lines) {\n        ppvVar9 = (void **)xmalloc(pSVar17->num_lines << 2);\n        pSVar17->line = ppvVar9;\n        memset(ppvVar9,0,pSVar17->num_lines << 2);\n      }\n      ppsVar5 = &pSVar17->next;\n      pSVar17 = *ppsVar5;\n    }" { (if_statement "if (0 < pSVar17->num_lines) {\n        ppvVar9 = (void **)xmalloc(pSVar17->num_lines << 2);\n        pSVar17->line = ppvVar9;\n        memset(ppvVar9,0,pSVar17->num_lines << 2);\n      }" if (parenthesized_expression "(0 < pSVar17->num_lines)" ( (binary_expression "0 < pSVar17->num_lines" number_literal < (field_expression "pSVar17->num_lines" identifier -> field_identifier)) )) (compound_statement "{\n        ppvVar9 = (void **)xmalloc(pSVar17->num_lines << 2);\n        pSVar17->line = ppvVar9;\n        memset(ppvVar9,0,pSVar17->num_lines << 2);\n      }" { (expression_statement "ppvVar9 = (void **)xmalloc(pSVar17->num_lines << 2);" (assignment_expression "ppvVar9 = (void **)xmalloc(pSVar17->num_lines << 2)" identifier = (cast_expression "(void **)xmalloc(pSVar17->num_lines << 2)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "xmalloc(pSVar17->num_lines << 2)" identifier (argument_list "(pSVar17->num_lines << 2)" ( (binary_expression "pSVar17->num_lines << 2" (field_expression "pSVar17->num_lines" identifier -> field_identifier) << number_literal) ))))) ;) (expression_statement "pSVar17->line = ppvVar9;" (assignment_expression "pSVar17->line = ppvVar9" (field_expression "pSVar17->line" identifier -> field_identifier) = identifier) ;) (expression_statement "memset(ppvVar9,0,pSVar17->num_lines << 2);" (call_expression "memset(ppvVar9,0,pSVar17->num_lines << 2)" identifier (argument_list "(ppvVar9,0,pSVar17->num_lines << 2)" ( identifier , number_literal , (binary_expression "pSVar17->num_lines << 2" (field_expression "pSVar17->num_lines" identifier -> field_identifier) << number_literal) ))) ;) })) (expression_statement "ppsVar5 = &pSVar17->next;" (assignment_expression "ppsVar5 = &pSVar17->next" identifier = (pointer_expression "&pSVar17->next" & (field_expression "pSVar17->next" identifier -> field_identifier))) ;) (expression_statement "pSVar17 = *ppsVar5;" (assignment_expression "pSVar17 = *ppsVar5" identifier = (pointer_expression "*ppsVar5" * identifier)) ;) }) while (parenthesized_expression "(*ppsVar5 != (source_file *)0x0)" ( (binary_expression "*ppsVar5 != (source_file *)0x0" (pointer_expression "*ppsVar5" * identifier) != (cast_expression "(source_file *)0x0" ( (type_descriptor "source_file *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;)) (expression_statement "puVar6 = PTR_stdout_0002cfec;" (assignment_expression "puVar6 = PTR_stdout_0002cfec" identifier = identifier) ;) (expression_statement "pSVar17 = first_src_file;" (assignment_expression "pSVar17 = first_src_file" identifier = identifier) ;) (if_statement "if (symtab.limit <= symtab.base) goto joined_r0x00013f50;" if (parenthesized_expression "(symtab.limit <= symtab.base)" ( (binary_expression "symtab.limit <= symtab.base" (field_expression "symtab.limit" identifier . field_identifier) <= (field_expression "symtab.base" identifier . field_identifier)) )) (goto_statement "goto joined_r0x00013f50;" goto statement_identifier ;)) }))) (expression_statement "uVar24 = 0x2e5a0;" (assignment_expression "uVar24 = 0x2e5a0" identifier = number_literal) ;) (expression_statement "pSVar16 = symtab.base;" (assignment_expression "pSVar16 = symtab.base" identifier = (field_expression "symtab.base" identifier . field_identifier)) ;) (labeled_statement "LAB_00013edb:\n  do {\n    if (((pSVar16->file != (Source_File *)0x0) && (pSVar16->file->num_lines != 0)) &&\n       ((pSVar10 = sym_lookup((Sym_Table *)uVar24,pSVar16->addr), pSVar10 != (Sym *)0x0 ||\n        ((syms[8].len == 0 && (pSVar10 = sym_lookup(syms + 9,pSVar16->addr), pSVar10 == (Sym *)0x0))\n        )))) {\n      pSVar17 = pSVar16->file;\n      iVar18 = pSVar16->line_num;\n      uVar3 = pSVar16->ncalls;\n      puVar2 = &pSVar17->ncalls;\n      *puVar2 = *puVar2 + uVar3;\n      ppvVar9 = pSVar17->line + iVar18 + -1;\n      piVar19 = (int *)*ppvVar9;\n      if (piVar19 == (int *)0x0) {\n        *ppvVar9 = pSVar16;\n      }\n      else {\n        if (piVar19[1] == 0 && *piVar19 == 0) {\n          piVar19[8] = piVar19[8] + uVar3;\n          pSVar16 = pSVar16 + 1;\n          puVar6 = PTR_stdout_0002cfec;\n          pSVar17 = first_src_file;\n          if (symtab.limit <= pSVar16) break;\n          goto LAB_00013edb;\n        }\n        piVar14 = (int *)xmalloc(0xfc);\n        piVar20 = piVar14;\n        for (iVar18 = 0x3f; iVar18 != 0; iVar18 = iVar18 + -1) {\n          *piVar20 = *piVar19;\n          piVar19 = piVar19 + (uint)bVar21 * -2 + 1;\n          piVar20 = piVar20 + (uint)bVar21 * -2 + 1;\n        }\n        *piVar14 = 0;\n        piVar14[1] = 0;\n        piVar14[8] = piVar14[8] + pSVar16->ncalls;\n        pSVar16->file->line[pSVar16->line_num + -1] = piVar14;\n      }\n    }\n    pSVar16 = pSVar16 + 1;\n    puVar6 = PTR_stdout_0002cfec;\n    pSVar17 = first_src_file;\n  } while (pSVar16 < symtab.limit);" statement_identifier : (do_statement "do {\n    if (((pSVar16->file != (Source_File *)0x0) && (pSVar16->file->num_lines != 0)) &&\n       ((pSVar10 = sym_lookup((Sym_Table *)uVar24,pSVar16->addr), pSVar10 != (Sym *)0x0 ||\n        ((syms[8].len == 0 && (pSVar10 = sym_lookup(syms + 9,pSVar16->addr), pSVar10 == (Sym *)0x0))\n        )))) {\n      pSVar17 = pSVar16->file;\n      iVar18 = pSVar16->line_num;\n      uVar3 = pSVar16->ncalls;\n      puVar2 = &pSVar17->ncalls;\n      *puVar2 = *puVar2 + uVar3;\n      ppvVar9 = pSVar17->line + iVar18 + -1;\n      piVar19 = (int *)*ppvVar9;\n      if (piVar19 == (int *)0x0) {\n        *ppvVar9 = pSVar16;\n      }\n      else {\n        if (piVar19[1] == 0 && *piVar19 == 0) {\n          piVar19[8] = piVar19[8] + uVar3;\n          pSVar16 = pSVar16 + 1;\n          puVar6 = PTR_stdout_0002cfec;\n          pSVar17 = first_src_file;\n          if (symtab.limit <= pSVar16) break;\n          goto LAB_00013edb;\n        }\n        piVar14 = (int *)xmalloc(0xfc);\n        piVar20 = piVar14;\n        for (iVar18 = 0x3f; iVar18 != 0; iVar18 = iVar18 + -1) {\n          *piVar20 = *piVar19;\n          piVar19 = piVar19 + (uint)bVar21 * -2 + 1;\n          piVar20 = piVar20 + (uint)bVar21 * -2 + 1;\n        }\n        *piVar14 = 0;\n        piVar14[1] = 0;\n        piVar14[8] = piVar14[8] + pSVar16->ncalls;\n        pSVar16->file->line[pSVar16->line_num + -1] = piVar14;\n      }\n    }\n    pSVar16 = pSVar16 + 1;\n    puVar6 = PTR_stdout_0002cfec;\n    pSVar17 = first_src_file;\n  } while (pSVar16 < symtab.limit);" do (compound_statement "{\n    if (((pSVar16->file != (Source_File *)0x0) && (pSVar16->file->num_lines != 0)) &&\n       ((pSVar10 = sym_lookup((Sym_Table *)uVar24,pSVar16->addr), pSVar10 != (Sym *)0x0 ||\n        ((syms[8].len == 0 && (pSVar10 = sym_lookup(syms + 9,pSVar16->addr), pSVar10 == (Sym *)0x0))\n        )))) {\n      pSVar17 = pSVar16->file;\n      iVar18 = pSVar16->line_num;\n      uVar3 = pSVar16->ncalls;\n      puVar2 = &pSVar17->ncalls;\n      *puVar2 = *puVar2 + uVar3;\n      ppvVar9 = pSVar17->line + iVar18 + -1;\n      piVar19 = (int *)*ppvVar9;\n      if (piVar19 == (int *)0x0) {\n        *ppvVar9 = pSVar16;\n      }\n      else {\n        if (piVar19[1] == 0 && *piVar19 == 0) {\n          piVar19[8] = piVar19[8] + uVar3;\n          pSVar16 = pSVar16 + 1;\n          puVar6 = PTR_stdout_0002cfec;\n          pSVar17 = first_src_file;\n          if (symtab.limit <= pSVar16) break;\n          goto LAB_00013edb;\n        }\n        piVar14 = (int *)xmalloc(0xfc);\n        piVar20 = piVar14;\n        for (iVar18 = 0x3f; iVar18 != 0; iVar18 = iVar18 + -1) {\n          *piVar20 = *piVar19;\n          piVar19 = piVar19 + (uint)bVar21 * -2 + 1;\n          piVar20 = piVar20 + (uint)bVar21 * -2 + 1;\n        }\n        *piVar14 = 0;\n        piVar14[1] = 0;\n        piVar14[8] = piVar14[8] + pSVar16->ncalls;\n        pSVar16->file->line[pSVar16->line_num + -1] = piVar14;\n      }\n    }\n    pSVar16 = pSVar16 + 1;\n    puVar6 = PTR_stdout_0002cfec;\n    pSVar17 = first_src_file;\n  }" { (if_statement "if (((pSVar16->file != (Source_File *)0x0) && (pSVar16->file->num_lines != 0)) &&\n       ((pSVar10 = sym_lookup((Sym_Table *)uVar24,pSVar16->addr), pSVar10 != (Sym *)0x0 ||\n        ((syms[8].len == 0 && (pSVar10 = sym_lookup(syms + 9,pSVar16->addr), pSVar10 == (Sym *)0x0))\n        )))) {\n      pSVar17 = pSVar16->file;\n      iVar18 = pSVar16->line_num;\n      uVar3 = pSVar16->ncalls;\n      puVar2 = &pSVar17->ncalls;\n      *puVar2 = *puVar2 + uVar3;\n      ppvVar9 = pSVar17->line + iVar18 + -1;\n      piVar19 = (int *)*ppvVar9;\n      if (piVar19 == (int *)0x0) {\n        *ppvVar9 = pSVar16;\n      }\n      else {\n        if (piVar19[1] == 0 && *piVar19 == 0) {\n          piVar19[8] = piVar19[8] + uVar3;\n          pSVar16 = pSVar16 + 1;\n          puVar6 = PTR_stdout_0002cfec;\n          pSVar17 = first_src_file;\n          if (symtab.limit <= pSVar16) break;\n          goto LAB_00013edb;\n        }\n        piVar14 = (int *)xmalloc(0xfc);\n        piVar20 = piVar14;\n        for (iVar18 = 0x3f; iVar18 != 0; iVar18 = iVar18 + -1) {\n          *piVar20 = *piVar19;\n          piVar19 = piVar19 + (uint)bVar21 * -2 + 1;\n          piVar20 = piVar20 + (uint)bVar21 * -2 + 1;\n        }\n        *piVar14 = 0;\n        piVar14[1] = 0;\n        piVar14[8] = piVar14[8] + pSVar16->ncalls;\n        pSVar16->file->line[pSVar16->line_num + -1] = piVar14;\n      }\n    }" if (parenthesized_expression "(((pSVar16->file != (Source_File *)0x0) && (pSVar16->file->num_lines != 0)) &&\n       ((pSVar10 = sym_lookup((Sym_Table *)uVar24,pSVar16->addr), pSVar10 != (Sym *)0x0 ||\n        ((syms[8].len == 0 && (pSVar10 = sym_lookup(syms + 9,pSVar16->addr), pSVar10 == (Sym *)0x0))\n        ))))" ( (binary_expression "((pSVar16->file != (Source_File *)0x0) && (pSVar16->file->num_lines != 0)) &&\n       ((pSVar10 = sym_lookup((Sym_Table *)uVar24,pSVar16->addr), pSVar10 != (Sym *)0x0 ||\n        ((syms[8].len == 0 && (pSVar10 = sym_lookup(syms + 9,pSVar16->addr), pSVar10 == (Sym *)0x0))\n        )))" (parenthesized_expression "((pSVar16->file != (Source_File *)0x0) && (pSVar16->file->num_lines != 0))" ( (binary_expression "(pSVar16->file != (Source_File *)0x0) && (pSVar16->file->num_lines != 0)" (parenthesized_expression "(pSVar16->file != (Source_File *)0x0)" ( (binary_expression "pSVar16->file != (Source_File *)0x0" (field_expression "pSVar16->file" identifier -> field_identifier) != (cast_expression "(Source_File *)0x0" ( (type_descriptor "Source_File *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(pSVar16->file->num_lines != 0)" ( (binary_expression "pSVar16->file->num_lines != 0" (field_expression "pSVar16->file->num_lines" (field_expression "pSVar16->file" identifier -> field_identifier) -> field_identifier) != number_literal) ))) )) && (parenthesized_expression "((pSVar10 = sym_lookup((Sym_Table *)uVar24,pSVar16->addr), pSVar10 != (Sym *)0x0 ||\n        ((syms[8].len == 0 && (pSVar10 = sym_lookup(syms + 9,pSVar16->addr), pSVar10 == (Sym *)0x0))\n        )))" ( (parenthesized_expression "(pSVar10 = sym_lookup((Sym_Table *)uVar24,pSVar16->addr), pSVar10 != (Sym *)0x0 ||\n        ((syms[8].len == 0 && (pSVar10 = sym_lookup(syms + 9,pSVar16->addr), pSVar10 == (Sym *)0x0))\n        ))" ( (comma_expression "pSVar10 = sym_lookup((Sym_Table *)uVar24,pSVar16->addr), pSVar10 != (Sym *)0x0 ||\n        ((syms[8].len == 0 && (pSVar10 = sym_lookup(syms + 9,pSVar16->addr), pSVar10 == (Sym *)0x0))\n        )" (assignment_expression "pSVar10 = sym_lookup((Sym_Table *)uVar24,pSVar16->addr)" identifier = (call_expression "sym_lookup((Sym_Table *)uVar24,pSVar16->addr)" identifier (argument_list "((Sym_Table *)uVar24,pSVar16->addr)" ( (cast_expression "(Sym_Table *)uVar24" ( (type_descriptor "Sym_Table *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (field_expression "pSVar16->addr" identifier -> field_identifier) )))) , (binary_expression "pSVar10 != (Sym *)0x0 ||\n        ((syms[8].len == 0 && (pSVar10 = sym_lookup(syms + 9,pSVar16->addr), pSVar10 == (Sym *)0x0))\n        )" (binary_expression "pSVar10 != (Sym *)0x0" identifier != (cast_expression "(Sym *)0x0" ( (type_descriptor "Sym *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) || (parenthesized_expression "((syms[8].len == 0 && (pSVar10 = sym_lookup(syms + 9,pSVar16->addr), pSVar10 == (Sym *)0x0))\n        )" ( (parenthesized_expression "(syms[8].len == 0 && (pSVar10 = sym_lookup(syms + 9,pSVar16->addr), pSVar10 == (Sym *)0x0))" ( (binary_expression "syms[8].len == 0 && (pSVar10 = sym_lookup(syms + 9,pSVar16->addr), pSVar10 == (Sym *)0x0)" (binary_expression "syms[8].len == 0" (field_expression "syms[8].len" (subscript_expression "syms[8]" identifier [ number_literal ]) . field_identifier) == number_literal) && (parenthesized_expression "(pSVar10 = sym_lookup(syms + 9,pSVar16->addr), pSVar10 == (Sym *)0x0)" ( (comma_expression "pSVar10 = sym_lookup(syms + 9,pSVar16->addr), pSVar10 == (Sym *)0x0" (assignment_expression "pSVar10 = sym_lookup(syms + 9,pSVar16->addr)" identifier = (call_expression "sym_lookup(syms + 9,pSVar16->addr)" identifier (argument_list "(syms + 9,pSVar16->addr)" ( (binary_expression "syms + 9" identifier + number_literal) , (field_expression "pSVar16->addr" identifier -> field_identifier) )))) , (binary_expression "pSVar10 == (Sym *)0x0" identifier == (cast_expression "(Sym *)0x0" ( (type_descriptor "Sym *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) )))) )) ))) )) (compound_statement "{\n      pSVar17 = pSVar16->file;\n      iVar18 = pSVar16->line_num;\n      uVar3 = pSVar16->ncalls;\n      puVar2 = &pSVar17->ncalls;\n      *puVar2 = *puVar2 + uVar3;\n      ppvVar9 = pSVar17->line + iVar18 + -1;\n      piVar19 = (int *)*ppvVar9;\n      if (piVar19 == (int *)0x0) {\n        *ppvVar9 = pSVar16;\n      }\n      else {\n        if (piVar19[1] == 0 && *piVar19 == 0) {\n          piVar19[8] = piVar19[8] + uVar3;\n          pSVar16 = pSVar16 + 1;\n          puVar6 = PTR_stdout_0002cfec;\n          pSVar17 = first_src_file;\n          if (symtab.limit <= pSVar16) break;\n          goto LAB_00013edb;\n        }\n        piVar14 = (int *)xmalloc(0xfc);\n        piVar20 = piVar14;\n        for (iVar18 = 0x3f; iVar18 != 0; iVar18 = iVar18 + -1) {\n          *piVar20 = *piVar19;\n          piVar19 = piVar19 + (uint)bVar21 * -2 + 1;\n          piVar20 = piVar20 + (uint)bVar21 * -2 + 1;\n        }\n        *piVar14 = 0;\n        piVar14[1] = 0;\n        piVar14[8] = piVar14[8] + pSVar16->ncalls;\n        pSVar16->file->line[pSVar16->line_num + -1] = piVar14;\n      }\n    }" { (expression_statement "pSVar17 = pSVar16->file;" (assignment_expression "pSVar17 = pSVar16->file" identifier = (field_expression "pSVar16->file" identifier -> field_identifier)) ;) (expression_statement "iVar18 = pSVar16->line_num;" (assignment_expression "iVar18 = pSVar16->line_num" identifier = (field_expression "pSVar16->line_num" identifier -> field_identifier)) ;) (expression_statement "uVar3 = pSVar16->ncalls;" (assignment_expression "uVar3 = pSVar16->ncalls" identifier = (field_expression "pSVar16->ncalls" identifier -> field_identifier)) ;) (expression_statement "puVar2 = &pSVar17->ncalls;" (assignment_expression "puVar2 = &pSVar17->ncalls" identifier = (pointer_expression "&pSVar17->ncalls" & (field_expression "pSVar17->ncalls" identifier -> field_identifier))) ;) (expression_statement "*puVar2 = *puVar2 + uVar3;" (assignment_expression "*puVar2 = *puVar2 + uVar3" (pointer_expression "*puVar2" * identifier) = (binary_expression "*puVar2 + uVar3" (pointer_expression "*puVar2" * identifier) + identifier)) ;) (expression_statement "ppvVar9 = pSVar17->line + iVar18 + -1;" (assignment_expression "ppvVar9 = pSVar17->line + iVar18 + -1" identifier = (binary_expression "pSVar17->line + iVar18 + -1" (binary_expression "pSVar17->line + iVar18" (field_expression "pSVar17->line" identifier -> field_identifier) + identifier) + number_literal)) ;) (expression_statement "piVar19 = (int *)*ppvVar9;" (assignment_expression "piVar19 = (int *)*ppvVar9" identifier = (cast_expression "(int *)*ppvVar9" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*ppvVar9" * identifier))) ;) (if_statement "if (piVar19 == (int *)0x0) {\n        *ppvVar9 = pSVar16;\n      }\n      else {\n        if (piVar19[1] == 0 && *piVar19 == 0) {\n          piVar19[8] = piVar19[8] + uVar3;\n          pSVar16 = pSVar16 + 1;\n          puVar6 = PTR_stdout_0002cfec;\n          pSVar17 = first_src_file;\n          if (symtab.limit <= pSVar16) break;\n          goto LAB_00013edb;\n        }\n        piVar14 = (int *)xmalloc(0xfc);\n        piVar20 = piVar14;\n        for (iVar18 = 0x3f; iVar18 != 0; iVar18 = iVar18 + -1) {\n          *piVar20 = *piVar19;\n          piVar19 = piVar19 + (uint)bVar21 * -2 + 1;\n          piVar20 = piVar20 + (uint)bVar21 * -2 + 1;\n        }\n        *piVar14 = 0;\n        piVar14[1] = 0;\n        piVar14[8] = piVar14[8] + pSVar16->ncalls;\n        pSVar16->file->line[pSVar16->line_num + -1] = piVar14;\n      }" if (parenthesized_expression "(piVar19 == (int *)0x0)" ( (binary_expression "piVar19 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        *ppvVar9 = pSVar16;\n      }" { (expression_statement "*ppvVar9 = pSVar16;" (assignment_expression "*ppvVar9 = pSVar16" (pointer_expression "*ppvVar9" * identifier) = identifier) ;) }) (else_clause "else {\n        if (piVar19[1] == 0 && *piVar19 == 0) {\n          piVar19[8] = piVar19[8] + uVar3;\n          pSVar16 = pSVar16 + 1;\n          puVar6 = PTR_stdout_0002cfec;\n          pSVar17 = first_src_file;\n          if (symtab.limit <= pSVar16) break;\n          goto LAB_00013edb;\n        }\n        piVar14 = (int *)xmalloc(0xfc);\n        piVar20 = piVar14;\n        for (iVar18 = 0x3f; iVar18 != 0; iVar18 = iVar18 + -1) {\n          *piVar20 = *piVar19;\n          piVar19 = piVar19 + (uint)bVar21 * -2 + 1;\n          piVar20 = piVar20 + (uint)bVar21 * -2 + 1;\n        }\n        *piVar14 = 0;\n        piVar14[1] = 0;\n        piVar14[8] = piVar14[8] + pSVar16->ncalls;\n        pSVar16->file->line[pSVar16->line_num + -1] = piVar14;\n      }" else (compound_statement "{\n        if (piVar19[1] == 0 && *piVar19 == 0) {\n          piVar19[8] = piVar19[8] + uVar3;\n          pSVar16 = pSVar16 + 1;\n          puVar6 = PTR_stdout_0002cfec;\n          pSVar17 = first_src_file;\n          if (symtab.limit <= pSVar16) break;\n          goto LAB_00013edb;\n        }\n        piVar14 = (int *)xmalloc(0xfc);\n        piVar20 = piVar14;\n        for (iVar18 = 0x3f; iVar18 != 0; iVar18 = iVar18 + -1) {\n          *piVar20 = *piVar19;\n          piVar19 = piVar19 + (uint)bVar21 * -2 + 1;\n          piVar20 = piVar20 + (uint)bVar21 * -2 + 1;\n        }\n        *piVar14 = 0;\n        piVar14[1] = 0;\n        piVar14[8] = piVar14[8] + pSVar16->ncalls;\n        pSVar16->file->line[pSVar16->line_num + -1] = piVar14;\n      }" { (if_statement "if (piVar19[1] == 0 && *piVar19 == 0) {\n          piVar19[8] = piVar19[8] + uVar3;\n          pSVar16 = pSVar16 + 1;\n          puVar6 = PTR_stdout_0002cfec;\n          pSVar17 = first_src_file;\n          if (symtab.limit <= pSVar16) break;\n          goto LAB_00013edb;\n        }" if (parenthesized_expression "(piVar19[1] == 0 && *piVar19 == 0)" ( (binary_expression "piVar19[1] == 0 && *piVar19 == 0" (binary_expression "piVar19[1] == 0" (subscript_expression "piVar19[1]" identifier [ number_literal ]) == number_literal) && (binary_expression "*piVar19 == 0" (pointer_expression "*piVar19" * identifier) == number_literal)) )) (compound_statement "{\n          piVar19[8] = piVar19[8] + uVar3;\n          pSVar16 = pSVar16 + 1;\n          puVar6 = PTR_stdout_0002cfec;\n          pSVar17 = first_src_file;\n          if (symtab.limit <= pSVar16) break;\n          goto LAB_00013edb;\n        }" { (expression_statement "piVar19[8] = piVar19[8] + uVar3;" (assignment_expression "piVar19[8] = piVar19[8] + uVar3" (subscript_expression "piVar19[8]" identifier [ number_literal ]) = (binary_expression "piVar19[8] + uVar3" (subscript_expression "piVar19[8]" identifier [ number_literal ]) + identifier)) ;) (expression_statement "pSVar16 = pSVar16 + 1;" (assignment_expression "pSVar16 = pSVar16 + 1" identifier = (binary_expression "pSVar16 + 1" identifier + number_literal)) ;) (expression_statement "puVar6 = PTR_stdout_0002cfec;" (assignment_expression "puVar6 = PTR_stdout_0002cfec" identifier = identifier) ;) (expression_statement "pSVar17 = first_src_file;" (assignment_expression "pSVar17 = first_src_file" identifier = identifier) ;) (if_statement "if (symtab.limit <= pSVar16) break;" if (parenthesized_expression "(symtab.limit <= pSVar16)" ( (binary_expression "symtab.limit <= pSVar16" (field_expression "symtab.limit" identifier . field_identifier) <= identifier) )) (break_statement "break;" break ;)) (goto_statement "goto LAB_00013edb;" goto statement_identifier ;) })) (expression_statement "piVar14 = (int *)xmalloc(0xfc);" (assignment_expression "piVar14 = (int *)xmalloc(0xfc)" identifier = (cast_expression "(int *)xmalloc(0xfc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(0xfc)" identifier (argument_list "(0xfc)" ( number_literal ))))) ;) (expression_statement "piVar20 = piVar14;" (assignment_expression "piVar20 = piVar14" identifier = identifier) ;) (for_statement "for (iVar18 = 0x3f; iVar18 != 0; iVar18 = iVar18 + -1) {\n          *piVar20 = *piVar19;\n          piVar19 = piVar19 + (uint)bVar21 * -2 + 1;\n          piVar20 = piVar20 + (uint)bVar21 * -2 + 1;\n        }" for ( (assignment_expression "iVar18 = 0x3f" identifier = number_literal) ; (binary_expression "iVar18 != 0" identifier != number_literal) ; (assignment_expression "iVar18 = iVar18 + -1" identifier = (binary_expression "iVar18 + -1" identifier + number_literal)) ) (compound_statement "{\n          *piVar20 = *piVar19;\n          piVar19 = piVar19 + (uint)bVar21 * -2 + 1;\n          piVar20 = piVar20 + (uint)bVar21 * -2 + 1;\n        }" { (expression_statement "*piVar20 = *piVar19;" (assignment_expression "*piVar20 = *piVar19" (pointer_expression "*piVar20" * identifier) = (pointer_expression "*piVar19" * identifier)) ;) (expression_statement "piVar19 = piVar19 + (uint)bVar21 * -2 + 1;" (assignment_expression "piVar19 = piVar19 + (uint)bVar21 * -2 + 1" identifier = (binary_expression "piVar19 + (uint)bVar21 * -2 + 1" (binary_expression "piVar19 + (uint)bVar21 * -2" identifier + (binary_expression "(uint)bVar21 * -2" (cast_expression "(uint)bVar21" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "piVar20 = piVar20 + (uint)bVar21 * -2 + 1;" (assignment_expression "piVar20 = piVar20 + (uint)bVar21 * -2 + 1" identifier = (binary_expression "piVar20 + (uint)bVar21 * -2 + 1" (binary_expression "piVar20 + (uint)bVar21 * -2" identifier + (binary_expression "(uint)bVar21 * -2" (cast_expression "(uint)bVar21" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) })) (expression_statement "*piVar14 = 0;" (assignment_expression "*piVar14 = 0" (pointer_expression "*piVar14" * identifier) = number_literal) ;) (expression_statement "piVar14[1] = 0;" (assignment_expression "piVar14[1] = 0" (subscript_expression "piVar14[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar14[8] = piVar14[8] + pSVar16->ncalls;" (assignment_expression "piVar14[8] = piVar14[8] + pSVar16->ncalls" (subscript_expression "piVar14[8]" identifier [ number_literal ]) = (binary_expression "piVar14[8] + pSVar16->ncalls" (subscript_expression "piVar14[8]" identifier [ number_literal ]) + (field_expression "pSVar16->ncalls" identifier -> field_identifier))) ;) (expression_statement "pSVar16->file->line[pSVar16->line_num + -1] = piVar14;" (assignment_expression "pSVar16->file->line[pSVar16->line_num + -1] = piVar14" (subscript_expression "pSVar16->file->line[pSVar16->line_num + -1]" (field_expression "pSVar16->file->line" (field_expression "pSVar16->file" identifier -> field_identifier) -> field_identifier) [ (binary_expression "pSVar16->line_num + -1" (field_expression "pSVar16->line_num" identifier -> field_identifier) + number_literal) ]) = identifier) ;) }))) })) (expression_statement "pSVar16 = pSVar16 + 1;" (assignment_expression "pSVar16 = pSVar16 + 1" identifier = (binary_expression "pSVar16 + 1" identifier + number_literal)) ;) (expression_statement "puVar6 = PTR_stdout_0002cfec;" (assignment_expression "puVar6 = PTR_stdout_0002cfec" identifier = identifier) ;) (expression_statement "pSVar17 = first_src_file;" (assignment_expression "pSVar17 = first_src_file" identifier = identifier) ;) }) while (parenthesized_expression "(pSVar16 < symtab.limit)" ( (binary_expression "pSVar16 < symtab.limit" identifier < (field_expression "symtab.limit" identifier . field_identifier)) )) ;)) (labeled_statement "joined_r0x00013f50:\n  do {\n    puVar7 = PTR_stdout_0002cfec;\n    if (pSVar17 == (Source_File *)0x0) {\n      PTR_stdout_0002cfec = puVar6;\n      return;\n    }\n    PTR_stdout_0002cfec = puVar6;\n    if ((pSVar17->num_lines != 0) && ((ignore_zeros == 0 || (pSVar17->ncalls != 0)))) {\n      num_lines_executed = 0;\n      num_executable_lines = 0;\n      pSVar23 = pSVar17;\n      __stream = (FILE *)annotate_source(pSVar17,0x10,annotate_with_count,pSVar17);\n      iVar18 = bb_table_length;\n      if (__stream != (FILE *)0x0) {\n        if (bb_table_length < 1) {\n          ppvVar9 = pSVar17->line;\n        }\n        else {\n          pcVar11 = (char *)dcgettext("gprof","\n\nTop %d Lines:\n\n     Line      Count\n\n",5);\n          fprintf(__stream,pcVar11,iVar18);\n          qsort(pSVar17->line,pSVar17->num_lines,4,cmp_ncalls);\n          uVar12 = bb_table_length;\n          if (pSVar17->num_lines <= bb_table_length) {\n            uVar12 = pSVar17->num_lines;\n          }\n          ppvVar9 = pSVar17->line;\n          uVar26 = (ulonglong)uVar12;\n          if (((0 < (int)uVar12) && (pvVar13 = *ppvVar9, pvVar13 != (void *)0x0)) &&\n             (pSVar15 = *(Source_File **)((int)pvVar13 + 0x20), pSVar15 != (Source_File *)0x0)) {\n            iVar18 = 0;\n            do {\n              iVar18 = iVar18 + 1;\n              pSVar23 = pSVar15;\n              fprintf(__stream,"%9d %10lu\n",*(undefined4 *)((int)pvVar13 + 0x18),pSVar15);\n              ppvVar9 = pSVar17->line;\n              if ((iVar18 == (int)uVar26) || (pvVar13 = ppvVar9[iVar18], pvVar13 == (void *)0x0))\n              break;\n              pSVar15 = *(Source_File **)((int)pvVar13 + 0x20);\n            } while (pSVar15 != (Source_File *)0x0);\n          }\n        }\n        free(ppvVar9);\n        pSVar17->line = (void **)0x0;\n        uVar22 = 5;\n        pcVar11 = (char *)dcgettext("gprof","\nExecution Summary:\n\n",5);\n        fprintf(__stream,pcVar11,uVar22,pSVar23);\n        lVar8 = num_executable_lines;\n        pcVar11 = (char *)dcgettext("gprof","%9ld   Executable lines in this file\n",5);\n        fprintf(__stream,pcVar11,lVar8);\n        lVar8 = num_lines_executed;\n        pcVar11 = (char *)dcgettext("gprof","%9ld   Lines executed\n",5);\n        fprintf(__stream,pcVar11,lVar8);\n        fVar4 = _DAT_000221d8;\n        if (num_executable_lines != 0) {\n          fVar4 = ((float)num_lines_executed * _DAT_000221d8) / (float)num_executable_lines;\n        }\n        dVar25 = (double)fVar4;\n        pcVar11 = (char *)dcgettext("gprof","%9.2f   Percent of the file executed\n",5,pSVar23,\n                                    dVar25);\n        fprintf(__stream,pcVar11,SUB84(dVar25,0),(int)((ulonglong)dVar25 >> 0x20));\n        uVar3 = pSVar17->ncalls;\n        pcVar11 = (char *)dcgettext("gprof","\n%9lu   Total number of line executions\n",5);\n        fprintf(__stream,pcVar11,uVar3);\n        if (num_executable_lines == 0) {\n          dVar25 = 0.0;\n        }\n        else {\n          dVar25 = (double)pSVar17->ncalls / (double)num_executable_lines;\n        }\n        pcVar11 = (char *)dcgettext("gprof","%9.2f   Average executions per line\n",5,pSVar23,dVar25\n                                   );\n        fprintf(__stream,pcVar11,SUB84(dVar25,0),(int)((ulonglong)dVar25 >> 0x20));\n        if (*(FILE **)puVar7 != __stream) {\n          fclose(__stream);\n        }\n      }\n    }\n    puVar6 = PTR_stdout_0002cfec;\n    pSVar17 = pSVar17->next;\n    PTR_stdout_0002cfec = puVar7;\n  } while( true );" statement_identifier : (do_statement "do {\n    puVar7 = PTR_stdout_0002cfec;\n    if (pSVar17 == (Source_File *)0x0) {\n      PTR_stdout_0002cfec = puVar6;\n      return;\n    }\n    PTR_stdout_0002cfec = puVar6;\n    if ((pSVar17->num_lines != 0) && ((ignore_zeros == 0 || (pSVar17->ncalls != 0)))) {\n      num_lines_executed = 0;\n      num_executable_lines = 0;\n      pSVar23 = pSVar17;\n      __stream = (FILE *)annotate_source(pSVar17,0x10,annotate_with_count,pSVar17);\n      iVar18 = bb_table_length;\n      if (__stream != (FILE *)0x0) {\n        if (bb_table_length < 1) {\n          ppvVar9 = pSVar17->line;\n        }\n        else {\n          pcVar11 = (char *)dcgettext("gprof","\n\nTop %d Lines:\n\n     Line      Count\n\n",5);\n          fprintf(__stream,pcVar11,iVar18);\n          qsort(pSVar17->line,pSVar17->num_lines,4,cmp_ncalls);\n          uVar12 = bb_table_length;\n          if (pSVar17->num_lines <= bb_table_length) {\n            uVar12 = pSVar17->num_lines;\n          }\n          ppvVar9 = pSVar17->line;\n          uVar26 = (ulonglong)uVar12;\n          if (((0 < (int)uVar12) && (pvVar13 = *ppvVar9, pvVar13 != (void *)0x0)) &&\n             (pSVar15 = *(Source_File **)((int)pvVar13 + 0x20), pSVar15 != (Source_File *)0x0)) {\n            iVar18 = 0;\n            do {\n              iVar18 = iVar18 + 1;\n              pSVar23 = pSVar15;\n              fprintf(__stream,"%9d %10lu\n",*(undefined4 *)((int)pvVar13 + 0x18),pSVar15);\n              ppvVar9 = pSVar17->line;\n              if ((iVar18 == (int)uVar26) || (pvVar13 = ppvVar9[iVar18], pvVar13 == (void *)0x0))\n              break;\n              pSVar15 = *(Source_File **)((int)pvVar13 + 0x20);\n            } while (pSVar15 != (Source_File *)0x0);\n          }\n        }\n        free(ppvVar9);\n        pSVar17->line = (void **)0x0;\n        uVar22 = 5;\n        pcVar11 = (char *)dcgettext("gprof","\nExecution Summary:\n\n",5);\n        fprintf(__stream,pcVar11,uVar22,pSVar23);\n        lVar8 = num_executable_lines;\n        pcVar11 = (char *)dcgettext("gprof","%9ld   Executable lines in this file\n",5);\n        fprintf(__stream,pcVar11,lVar8);\n        lVar8 = num_lines_executed;\n        pcVar11 = (char *)dcgettext("gprof","%9ld   Lines executed\n",5);\n        fprintf(__stream,pcVar11,lVar8);\n        fVar4 = _DAT_000221d8;\n        if (num_executable_lines != 0) {\n          fVar4 = ((float)num_lines_executed * _DAT_000221d8) / (float)num_executable_lines;\n        }\n        dVar25 = (double)fVar4;\n        pcVar11 = (char *)dcgettext("gprof","%9.2f   Percent of the file executed\n",5,pSVar23,\n                                    dVar25);\n        fprintf(__stream,pcVar11,SUB84(dVar25,0),(int)((ulonglong)dVar25 >> 0x20));\n        uVar3 = pSVar17->ncalls;\n        pcVar11 = (char *)dcgettext("gprof","\n%9lu   Total number of line executions\n",5);\n        fprintf(__stream,pcVar11,uVar3);\n        if (num_executable_lines == 0) {\n          dVar25 = 0.0;\n        }\n        else {\n          dVar25 = (double)pSVar17->ncalls / (double)num_executable_lines;\n        }\n        pcVar11 = (char *)dcgettext("gprof","%9.2f   Average executions per line\n",5,pSVar23,dVar25\n                                   );\n        fprintf(__stream,pcVar11,SUB84(dVar25,0),(int)((ulonglong)dVar25 >> 0x20));\n        if (*(FILE **)puVar7 != __stream) {\n          fclose(__stream);\n        }\n      }\n    }\n    puVar6 = PTR_stdout_0002cfec;\n    pSVar17 = pSVar17->next;\n    PTR_stdout_0002cfec = puVar7;\n  } while( true );" do (compound_statement "{\n    puVar7 = PTR_stdout_0002cfec;\n    if (pSVar17 == (Source_File *)0x0) {\n      PTR_stdout_0002cfec = puVar6;\n      return;\n    }\n    PTR_stdout_0002cfec = puVar6;\n    if ((pSVar17->num_lines != 0) && ((ignore_zeros == 0 || (pSVar17->ncalls != 0)))) {\n      num_lines_executed = 0;\n      num_executable_lines = 0;\n      pSVar23 = pSVar17;\n      __stream = (FILE *)annotate_source(pSVar17,0x10,annotate_with_count,pSVar17);\n      iVar18 = bb_table_length;\n      if (__stream != (FILE *)0x0) {\n        if (bb_table_length < 1) {\n          ppvVar9 = pSVar17->line;\n        }\n        else {\n          pcVar11 = (char *)dcgettext("gprof","\n\nTop %d Lines:\n\n     Line      Count\n\n",5);\n          fprintf(__stream,pcVar11,iVar18);\n          qsort(pSVar17->line,pSVar17->num_lines,4,cmp_ncalls);\n          uVar12 = bb_table_length;\n          if (pSVar17->num_lines <= bb_table_length) {\n            uVar12 = pSVar17->num_lines;\n          }\n          ppvVar9 = pSVar17->line;\n          uVar26 = (ulonglong)uVar12;\n          if (((0 < (int)uVar12) && (pvVar13 = *ppvVar9, pvVar13 != (void *)0x0)) &&\n             (pSVar15 = *(Source_File **)((int)pvVar13 + 0x20), pSVar15 != (Source_File *)0x0)) {\n            iVar18 = 0;\n            do {\n              iVar18 = iVar18 + 1;\n              pSVar23 = pSVar15;\n              fprintf(__stream,"%9d %10lu\n",*(undefined4 *)((int)pvVar13 + 0x18),pSVar15);\n              ppvVar9 = pSVar17->line;\n              if ((iVar18 == (int)uVar26) || (pvVar13 = ppvVar9[iVar18], pvVar13 == (void *)0x0))\n              break;\n              pSVar15 = *(Source_File **)((int)pvVar13 + 0x20);\n            } while (pSVar15 != (Source_File *)0x0);\n          }\n        }\n        free(ppvVar9);\n        pSVar17->line = (void **)0x0;\n        uVar22 = 5;\n        pcVar11 = (char *)dcgettext("gprof","\nExecution Summary:\n\n",5);\n        fprintf(__stream,pcVar11,uVar22,pSVar23);\n        lVar8 = num_executable_lines;\n        pcVar11 = (char *)dcgettext("gprof","%9ld   Executable lines in this file\n",5);\n        fprintf(__stream,pcVar11,lVar8);\n        lVar8 = num_lines_executed;\n        pcVar11 = (char *)dcgettext("gprof","%9ld   Lines executed\n",5);\n        fprintf(__stream,pcVar11,lVar8);\n        fVar4 = _DAT_000221d8;\n        if (num_executable_lines != 0) {\n          fVar4 = ((float)num_lines_executed * _DAT_000221d8) / (float)num_executable_lines;\n        }\n        dVar25 = (double)fVar4;\n        pcVar11 = (char *)dcgettext("gprof","%9.2f   Percent of the file executed\n",5,pSVar23,\n                                    dVar25);\n        fprintf(__stream,pcVar11,SUB84(dVar25,0),(int)((ulonglong)dVar25 >> 0x20));\n        uVar3 = pSVar17->ncalls;\n        pcVar11 = (char *)dcgettext("gprof","\n%9lu   Total number of line executions\n",5);\n        fprintf(__stream,pcVar11,uVar3);\n        if (num_executable_lines == 0) {\n          dVar25 = 0.0;\n        }\n        else {\n          dVar25 = (double)pSVar17->ncalls / (double)num_executable_lines;\n        }\n        pcVar11 = (char *)dcgettext("gprof","%9.2f   Average executions per line\n",5,pSVar23,dVar25\n                                   );\n        fprintf(__stream,pcVar11,SUB84(dVar25,0),(int)((ulonglong)dVar25 >> 0x20));\n        if (*(FILE **)puVar7 != __stream) {\n          fclose(__stream);\n        }\n      }\n    }\n    puVar6 = PTR_stdout_0002cfec;\n    pSVar17 = pSVar17->next;\n    PTR_stdout_0002cfec = puVar7;\n  }" { (expression_statement "puVar7 = PTR_stdout_0002cfec;" (assignment_expression "puVar7 = PTR_stdout_0002cfec" identifier = identifier) ;) (if_statement "if (pSVar17 == (Source_File *)0x0) {\n      PTR_stdout_0002cfec = puVar6;\n      return;\n    }" if (parenthesized_expression "(pSVar17 == (Source_File *)0x0)" ( (binary_expression "pSVar17 == (Source_File *)0x0" identifier == (cast_expression "(Source_File *)0x0" ( (type_descriptor "Source_File *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      PTR_stdout_0002cfec = puVar6;\n      return;\n    }" { (expression_statement "PTR_stdout_0002cfec = puVar6;" (assignment_expression "PTR_stdout_0002cfec = puVar6" identifier = identifier) ;) (return_statement "return;" return ;) })) (expression_statement "PTR_stdout_0002cfec = puVar6;" (assignment_expression "PTR_stdout_0002cfec = puVar6" identifier = identifier) ;) (if_statement "if ((pSVar17->num_lines != 0) && ((ignore_zeros == 0 || (pSVar17->ncalls != 0)))) {\n      num_lines_executed = 0;\n      num_executable_lines = 0;\n      pSVar23 = pSVar17;\n      __stream = (FILE *)annotate_source(pSVar17,0x10,annotate_with_count,pSVar17);\n      iVar18 = bb_table_length;\n      if (__stream != (FILE *)0x0) {\n        if (bb_table_length < 1) {\n          ppvVar9 = pSVar17->line;\n        }\n        else {\n          pcVar11 = (char *)dcgettext("gprof","\n\nTop %d Lines:\n\n     Line      Count\n\n",5);\n          fprintf(__stream,pcVar11,iVar18);\n          qsort(pSVar17->line,pSVar17->num_lines,4,cmp_ncalls);\n          uVar12 = bb_table_length;\n          if (pSVar17->num_lines <= bb_table_length) {\n            uVar12 = pSVar17->num_lines;\n          }\n          ppvVar9 = pSVar17->line;\n          uVar26 = (ulonglong)uVar12;\n          if (((0 < (int)uVar12) && (pvVar13 = *ppvVar9, pvVar13 != (void *)0x0)) &&\n             (pSVar15 = *(Source_File **)((int)pvVar13 + 0x20), pSVar15 != (Source_File *)0x0)) {\n            iVar18 = 0;\n            do {\n              iVar18 = iVar18 + 1;\n              pSVar23 = pSVar15;\n              fprintf(__stream,"%9d %10lu\n",*(undefined4 *)((int)pvVar13 + 0x18),pSVar15);\n              ppvVar9 = pSVar17->line;\n              if ((iVar18 == (int)uVar26) || (pvVar13 = ppvVar9[iVar18], pvVar13 == (void *)0x0))\n              break;\n              pSVar15 = *(Source_File **)((int)pvVar13 + 0x20);\n            } while (pSVar15 != (Source_File *)0x0);\n          }\n        }\n        free(ppvVar9);\n        pSVar17->line = (void **)0x0;\n        uVar22 = 5;\n        pcVar11 = (char *)dcgettext("gprof","\nExecution Summary:\n\n",5);\n        fprintf(__stream,pcVar11,uVar22,pSVar23);\n        lVar8 = num_executable_lines;\n        pcVar11 = (char *)dcgettext("gprof","%9ld   Executable lines in this file\n",5);\n        fprintf(__stream,pcVar11,lVar8);\n        lVar8 = num_lines_executed;\n        pcVar11 = (char *)dcgettext("gprof","%9ld   Lines executed\n",5);\n        fprintf(__stream,pcVar11,lVar8);\n        fVar4 = _DAT_000221d8;\n        if (num_executable_lines != 0) {\n          fVar4 = ((float)num_lines_executed * _DAT_000221d8) / (float)num_executable_lines;\n        }\n        dVar25 = (double)fVar4;\n        pcVar11 = (char *)dcgettext("gprof","%9.2f   Percent of the file executed\n",5,pSVar23,\n                                    dVar25);\n        fprintf(__stream,pcVar11,SUB84(dVar25,0),(int)((ulonglong)dVar25 >> 0x20));\n        uVar3 = pSVar17->ncalls;\n        pcVar11 = (char *)dcgettext("gprof","\n%9lu   Total number of line executions\n",5);\n        fprintf(__stream,pcVar11,uVar3);\n        if (num_executable_lines == 0) {\n          dVar25 = 0.0;\n        }\n        else {\n          dVar25 = (double)pSVar17->ncalls / (double)num_executable_lines;\n        }\n        pcVar11 = (char *)dcgettext("gprof","%9.2f   Average executions per line\n",5,pSVar23,dVar25\n                                   );\n        fprintf(__stream,pcVar11,SUB84(dVar25,0),(int)((ulonglong)dVar25 >> 0x20));\n        if (*(FILE **)puVar7 != __stream) {\n          fclose(__stream);\n        }\n      }\n    }" if (parenthesized_expression "((pSVar17->num_lines != 0) && ((ignore_zeros == 0 || (pSVar17->ncalls != 0))))" ( (binary_expression "(pSVar17->num_lines != 0) && ((ignore_zeros == 0 || (pSVar17->ncalls != 0)))" (parenthesized_expression "(pSVar17->num_lines != 0)" ( (binary_expression "pSVar17->num_lines != 0" (field_expression "pSVar17->num_lines" identifier -> field_identifier) != number_literal) )) && (parenthesized_expression "((ignore_zeros == 0 || (pSVar17->ncalls != 0)))" ( (parenthesized_expression "(ignore_zeros == 0 || (pSVar17->ncalls != 0))" ( (binary_expression "ignore_zeros == 0 || (pSVar17->ncalls != 0)" (binary_expression "ignore_zeros == 0" identifier == number_literal) || (parenthesized_expression "(pSVar17->ncalls != 0)" ( (binary_expression "pSVar17->ncalls != 0" (field_expression "pSVar17->ncalls" identifier -> field_identifier) != number_literal) ))) )) ))) )) (compound_statement "{\n      num_lines_executed = 0;\n      num_executable_lines = 0;\n      pSVar23 = pSVar17;\n      __stream = (FILE *)annotate_source(pSVar17,0x10,annotate_with_count,pSVar17);\n      iVar18 = bb_table_length;\n      if (__stream != (FILE *)0x0) {\n        if (bb_table_length < 1) {\n          ppvVar9 = pSVar17->line;\n        }\n        else {\n          pcVar11 = (char *)dcgettext("gprof","\n\nTop %d Lines:\n\n     Line      Count\n\n",5);\n          fprintf(__stream,pcVar11,iVar18);\n          qsort(pSVar17->line,pSVar17->num_lines,4,cmp_ncalls);\n          uVar12 = bb_table_length;\n          if (pSVar17->num_lines <= bb_table_length) {\n            uVar12 = pSVar17->num_lines;\n          }\n          ppvVar9 = pSVar17->line;\n          uVar26 = (ulonglong)uVar12;\n          if (((0 < (int)uVar12) && (pvVar13 = *ppvVar9, pvVar13 != (void *)0x0)) &&\n             (pSVar15 = *(Source_File **)((int)pvVar13 + 0x20), pSVar15 != (Source_File *)0x0)) {\n            iVar18 = 0;\n            do {\n              iVar18 = iVar18 + 1;\n              pSVar23 = pSVar15;\n              fprintf(__stream,"%9d %10lu\n",*(undefined4 *)((int)pvVar13 + 0x18),pSVar15);\n              ppvVar9 = pSVar17->line;\n              if ((iVar18 == (int)uVar26) || (pvVar13 = ppvVar9[iVar18], pvVar13 == (void *)0x0))\n              break;\n              pSVar15 = *(Source_File **)((int)pvVar13 + 0x20);\n            } while (pSVar15 != (Source_File *)0x0);\n          }\n        }\n        free(ppvVar9);\n        pSVar17->line = (void **)0x0;\n        uVar22 = 5;\n        pcVar11 = (char *)dcgettext("gprof","\nExecution Summary:\n\n",5);\n        fprintf(__stream,pcVar11,uVar22,pSVar23);\n        lVar8 = num_executable_lines;\n        pcVar11 = (char *)dcgettext("gprof","%9ld   Executable lines in this file\n",5);\n        fprintf(__stream,pcVar11,lVar8);\n        lVar8 = num_lines_executed;\n        pcVar11 = (char *)dcgettext("gprof","%9ld   Lines executed\n",5);\n        fprintf(__stream,pcVar11,lVar8);\n        fVar4 = _DAT_000221d8;\n        if (num_executable_lines != 0) {\n          fVar4 = ((float)num_lines_executed * _DAT_000221d8) / (float)num_executable_lines;\n        }\n        dVar25 = (double)fVar4;\n        pcVar11 = (char *)dcgettext("gprof","%9.2f   Percent of the file executed\n",5,pSVar23,\n                                    dVar25);\n        fprintf(__stream,pcVar11,SUB84(dVar25,0),(int)((ulonglong)dVar25 >> 0x20));\n        uVar3 = pSVar17->ncalls;\n        pcVar11 = (char *)dcgettext("gprof","\n%9lu   Total number of line executions\n",5);\n        fprintf(__stream,pcVar11,uVar3);\n        if (num_executable_lines == 0) {\n          dVar25 = 0.0;\n        }\n        else {\n          dVar25 = (double)pSVar17->ncalls / (double)num_executable_lines;\n        }\n        pcVar11 = (char *)dcgettext("gprof","%9.2f   Average executions per line\n",5,pSVar23,dVar25\n                                   );\n        fprintf(__stream,pcVar11,SUB84(dVar25,0),(int)((ulonglong)dVar25 >> 0x20));\n        if (*(FILE **)puVar7 != __stream) {\n          fclose(__stream);\n        }\n      }\n    }" { (expression_statement "num_lines_executed = 0;" (assignment_expression "num_lines_executed = 0" identifier = number_literal) ;) (expression_statement "num_executable_lines = 0;" (assignment_expression "num_executable_lines = 0" identifier = number_literal) ;) (expression_statement "pSVar23 = pSVar17;" (assignment_expression "pSVar23 = pSVar17" identifier = identifier) ;) (expression_statement "__stream = (FILE *)annotate_source(pSVar17,0x10,annotate_with_count,pSVar17);" (assignment_expression "__stream = (FILE *)annotate_source(pSVar17,0x10,annotate_with_count,pSVar17)" identifier = (cast_expression "(FILE *)annotate_source(pSVar17,0x10,annotate_with_count,pSVar17)" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "annotate_source(pSVar17,0x10,annotate_with_count,pSVar17)" identifier (argument_list "(pSVar17,0x10,annotate_with_count,pSVar17)" ( identifier , number_literal , identifier , identifier ))))) ;) (expression_statement "iVar18 = bb_table_length;" (assignment_expression "iVar18 = bb_table_length" identifier = identifier) ;) (if_statement "if (__stream != (FILE *)0x0) {\n        if (bb_table_length < 1) {\n          ppvVar9 = pSVar17->line;\n        }\n        else {\n          pcVar11 = (char *)dcgettext("gprof","\n\nTop %d Lines:\n\n     Line      Count\n\n",5);\n          fprintf(__stream,pcVar11,iVar18);\n          qsort(pSVar17->line,pSVar17->num_lines,4,cmp_ncalls);\n          uVar12 = bb_table_length;\n          if (pSVar17->num_lines <= bb_table_length) {\n            uVar12 = pSVar17->num_lines;\n          }\n          ppvVar9 = pSVar17->line;\n          uVar26 = (ulonglong)uVar12;\n          if (((0 < (int)uVar12) && (pvVar13 = *ppvVar9, pvVar13 != (void *)0x0)) &&\n             (pSVar15 = *(Source_File **)((int)pvVar13 + 0x20), pSVar15 != (Source_File *)0x0)) {\n            iVar18 = 0;\n            do {\n              iVar18 = iVar18 + 1;\n              pSVar23 = pSVar15;\n              fprintf(__stream,"%9d %10lu\n",*(undefined4 *)((int)pvVar13 + 0x18),pSVar15);\n              ppvVar9 = pSVar17->line;\n              if ((iVar18 == (int)uVar26) || (pvVar13 = ppvVar9[iVar18], pvVar13 == (void *)0x0))\n              break;\n              pSVar15 = *(Source_File **)((int)pvVar13 + 0x20);\n            } while (pSVar15 != (Source_File *)0x0);\n          }\n        }\n        free(ppvVar9);\n        pSVar17->line = (void **)0x0;\n        uVar22 = 5;\n        pcVar11 = (char *)dcgettext("gprof","\nExecution Summary:\n\n",5);\n        fprintf(__stream,pcVar11,uVar22,pSVar23);\n        lVar8 = num_executable_lines;\n        pcVar11 = (char *)dcgettext("gprof","%9ld   Executable lines in this file\n",5);\n        fprintf(__stream,pcVar11,lVar8);\n        lVar8 = num_lines_executed;\n        pcVar11 = (char *)dcgettext("gprof","%9ld   Lines executed\n",5);\n        fprintf(__stream,pcVar11,lVar8);\n        fVar4 = _DAT_000221d8;\n        if (num_executable_lines != 0) {\n          fVar4 = ((float)num_lines_executed * _DAT_000221d8) / (float)num_executable_lines;\n        }\n        dVar25 = (double)fVar4;\n        pcVar11 = (char *)dcgettext("gprof","%9.2f   Percent of the file executed\n",5,pSVar23,\n                                    dVar25);\n        fprintf(__stream,pcVar11,SUB84(dVar25,0),(int)((ulonglong)dVar25 >> 0x20));\n        uVar3 = pSVar17->ncalls;\n        pcVar11 = (char *)dcgettext("gprof","\n%9lu   Total number of line executions\n",5);\n        fprintf(__stream,pcVar11,uVar3);\n        if (num_executable_lines == 0) {\n          dVar25 = 0.0;\n        }\n        else {\n          dVar25 = (double)pSVar17->ncalls / (double)num_executable_lines;\n        }\n        pcVar11 = (char *)dcgettext("gprof","%9.2f   Average executions per line\n",5,pSVar23,dVar25\n                                   );\n        fprintf(__stream,pcVar11,SUB84(dVar25,0),(int)((ulonglong)dVar25 >> 0x20));\n        if (*(FILE **)puVar7 != __stream) {\n          fclose(__stream);\n        }\n      }" if (parenthesized_expression "(__stream != (FILE *)0x0)" ( (binary_expression "__stream != (FILE *)0x0" identifier != (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if (bb_table_length < 1) {\n          ppvVar9 = pSVar17->line;\n        }\n        else {\n          pcVar11 = (char *)dcgettext("gprof","\n\nTop %d Lines:\n\n     Line      Count\n\n",5);\n          fprintf(__stream,pcVar11,iVar18);\n          qsort(pSVar17->line,pSVar17->num_lines,4,cmp_ncalls);\n          uVar12 = bb_table_length;\n          if (pSVar17->num_lines <= bb_table_length) {\n            uVar12 = pSVar17->num_lines;\n          }\n          ppvVar9 = pSVar17->line;\n          uVar26 = (ulonglong)uVar12;\n          if (((0 < (int)uVar12) && (pvVar13 = *ppvVar9, pvVar13 != (void *)0x0)) &&\n             (pSVar15 = *(Source_File **)((int)pvVar13 + 0x20), pSVar15 != (Source_File *)0x0)) {\n            iVar18 = 0;\n            do {\n              iVar18 = iVar18 + 1;\n              pSVar23 = pSVar15;\n              fprintf(__stream,"%9d %10lu\n",*(undefined4 *)((int)pvVar13 + 0x18),pSVar15);\n              ppvVar9 = pSVar17->line;\n              if ((iVar18 == (int)uVar26) || (pvVar13 = ppvVar9[iVar18], pvVar13 == (void *)0x0))\n              break;\n              pSVar15 = *(Source_File **)((int)pvVar13 + 0x20);\n            } while (pSVar15 != (Source_File *)0x0);\n          }\n        }\n        free(ppvVar9);\n        pSVar17->line = (void **)0x0;\n        uVar22 = 5;\n        pcVar11 = (char *)dcgettext("gprof","\nExecution Summary:\n\n",5);\n        fprintf(__stream,pcVar11,uVar22,pSVar23);\n        lVar8 = num_executable_lines;\n        pcVar11 = (char *)dcgettext("gprof","%9ld   Executable lines in this file\n",5);\n        fprintf(__stream,pcVar11,lVar8);\n        lVar8 = num_lines_executed;\n        pcVar11 = (char *)dcgettext("gprof","%9ld   Lines executed\n",5);\n        fprintf(__stream,pcVar11,lVar8);\n        fVar4 = _DAT_000221d8;\n        if (num_executable_lines != 0) {\n          fVar4 = ((float)num_lines_executed * _DAT_000221d8) / (float)num_executable_lines;\n        }\n        dVar25 = (double)fVar4;\n        pcVar11 = (char *)dcgettext("gprof","%9.2f   Percent of the file executed\n",5,pSVar23,\n                                    dVar25);\n        fprintf(__stream,pcVar11,SUB84(dVar25,0),(int)((ulonglong)dVar25 >> 0x20));\n        uVar3 = pSVar17->ncalls;\n        pcVar11 = (char *)dcgettext("gprof","\n%9lu   Total number of line executions\n",5);\n        fprintf(__stream,pcVar11,uVar3);\n        if (num_executable_lines == 0) {\n          dVar25 = 0.0;\n        }\n        else {\n          dVar25 = (double)pSVar17->ncalls / (double)num_executable_lines;\n        }\n        pcVar11 = (char *)dcgettext("gprof","%9.2f   Average executions per line\n",5,pSVar23,dVar25\n                                   );\n        fprintf(__stream,pcVar11,SUB84(dVar25,0),(int)((ulonglong)dVar25 >> 0x20));\n        if (*(FILE **)puVar7 != __stream) {\n          fclose(__stream);\n        }\n      }" { (if_statement "if (bb_table_length < 1) {\n          ppvVar9 = pSVar17->line;\n        }\n        else {\n          pcVar11 = (char *)dcgettext("gprof","\n\nTop %d Lines:\n\n     Line      Count\n\n",5);\n          fprintf(__stream,pcVar11,iVar18);\n          qsort(pSVar17->line,pSVar17->num_lines,4,cmp_ncalls);\n          uVar12 = bb_table_length;\n          if (pSVar17->num_lines <= bb_table_length) {\n            uVar12 = pSVar17->num_lines;\n          }\n          ppvVar9 = pSVar17->line;\n          uVar26 = (ulonglong)uVar12;\n          if (((0 < (int)uVar12) && (pvVar13 = *ppvVar9, pvVar13 != (void *)0x0)) &&\n             (pSVar15 = *(Source_File **)((int)pvVar13 + 0x20), pSVar15 != (Source_File *)0x0)) {\n            iVar18 = 0;\n            do {\n              iVar18 = iVar18 + 1;\n              pSVar23 = pSVar15;\n              fprintf(__stream,"%9d %10lu\n",*(undefined4 *)((int)pvVar13 + 0x18),pSVar15);\n              ppvVar9 = pSVar17->line;\n              if ((iVar18 == (int)uVar26) || (pvVar13 = ppvVar9[iVar18], pvVar13 == (void *)0x0))\n              break;\n              pSVar15 = *(Source_File **)((int)pvVar13 + 0x20);\n            } while (pSVar15 != (Source_File *)0x0);\n          }\n        }" if (parenthesized_expression "(bb_table_length < 1)" ( (binary_expression "bb_table_length < 1" identifier < number_literal) )) (compound_statement "{\n          ppvVar9 = pSVar17->line;\n        }" { (expression_statement "ppvVar9 = pSVar17->line;" (assignment_expression "ppvVar9 = pSVar17->line" identifier = (field_expression "pSVar17->line" identifier -> field_identifier)) ;) }) (else_clause "else {\n          pcVar11 = (char *)dcgettext("gprof","\n\nTop %d Lines:\n\n     Line      Count\n\n",5);\n          fprintf(__stream,pcVar11,iVar18);\n          qsort(pSVar17->line,pSVar17->num_lines,4,cmp_ncalls);\n          uVar12 = bb_table_length;\n          if (pSVar17->num_lines <= bb_table_length) {\n            uVar12 = pSVar17->num_lines;\n          }\n          ppvVar9 = pSVar17->line;\n          uVar26 = (ulonglong)uVar12;\n          if (((0 < (int)uVar12) && (pvVar13 = *ppvVar9, pvVar13 != (void *)0x0)) &&\n             (pSVar15 = *(Source_File **)((int)pvVar13 + 0x20), pSVar15 != (Source_File *)0x0)) {\n            iVar18 = 0;\n            do {\n              iVar18 = iVar18 + 1;\n              pSVar23 = pSVar15;\n              fprintf(__stream,"%9d %10lu\n",*(undefined4 *)((int)pvVar13 + 0x18),pSVar15);\n              ppvVar9 = pSVar17->line;\n              if ((iVar18 == (int)uVar26) || (pvVar13 = ppvVar9[iVar18], pvVar13 == (void *)0x0))\n              break;\n              pSVar15 = *(Source_File **)((int)pvVar13 + 0x20);\n            } while (pSVar15 != (Source_File *)0x0);\n          }\n        }" else (compound_statement "{\n          pcVar11 = (char *)dcgettext("gprof","\n\nTop %d Lines:\n\n     Line      Count\n\n",5);\n          fprintf(__stream,pcVar11,iVar18);\n          qsort(pSVar17->line,pSVar17->num_lines,4,cmp_ncalls);\n          uVar12 = bb_table_length;\n          if (pSVar17->num_lines <= bb_table_length) {\n            uVar12 = pSVar17->num_lines;\n          }\n          ppvVar9 = pSVar17->line;\n          uVar26 = (ulonglong)uVar12;\n          if (((0 < (int)uVar12) && (pvVar13 = *ppvVar9, pvVar13 != (void *)0x0)) &&\n             (pSVar15 = *(Source_File **)((int)pvVar13 + 0x20), pSVar15 != (Source_File *)0x0)) {\n            iVar18 = 0;\n            do {\n              iVar18 = iVar18 + 1;\n              pSVar23 = pSVar15;\n              fprintf(__stream,"%9d %10lu\n",*(undefined4 *)((int)pvVar13 + 0x18),pSVar15);\n              ppvVar9 = pSVar17->line;\n              if ((iVar18 == (int)uVar26) || (pvVar13 = ppvVar9[iVar18], pvVar13 == (void *)0x0))\n              break;\n              pSVar15 = *(Source_File **)((int)pvVar13 + 0x20);\n            } while (pSVar15 != (Source_File *)0x0);\n          }\n        }" { (expression_statement "pcVar11 = (char *)dcgettext("gprof","\n\nTop %d Lines:\n\n     Line      Count\n\n",5);" (assignment_expression "pcVar11 = (char *)dcgettext("gprof","\n\nTop %d Lines:\n\n     Line      Count\n\n",5)" identifier = (cast_expression "(char *)dcgettext("gprof","\n\nTop %d Lines:\n\n     Line      Count\n\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext("gprof","\n\nTop %d Lines:\n\n     Line      Count\n\n",5)" identifier (argument_list "("gprof","\n\nTop %d Lines:\n\n     Line      Count\n\n",5)" ( (string_literal ""gprof"" " string_content ") , (string_literal ""\n\nTop %d Lines:\n\n     Line      Count\n\n"" " escape_sequence escape_sequence string_content escape_sequence escape_sequence string_content escape_sequence escape_sequence ") , number_literal ))))) ;) (expression_statement "fprintf(__stream,pcVar11,iVar18);" (call_expression "fprintf(__stream,pcVar11,iVar18)" identifier (argument_list "(__stream,pcVar11,iVar18)" ( identifier , identifier , identifier ))) ;) (expression_statement "qsort(pSVar17->line,pSVar17->num_lines,4,cmp_ncalls);" (call_expression "qsort(pSVar17->line,pSVar17->num_lines,4,cmp_ncalls)" identifier (argument_list "(pSVar17->line,pSVar17->num_lines,4,cmp_ncalls)" ( (field_expression "pSVar17->line" identifier -> field_identifier) , (field_expression "pSVar17->num_lines" identifier -> field_identifier) , number_literal , identifier ))) ;) (expression_statement "uVar12 = bb_table_length;" (assignment_expression "uVar12 = bb_table_length" identifier = identifier) ;) (if_statement "if (pSVar17->num_lines <= bb_table_length) {\n            uVar12 = pSVar17->num_lines;\n          }" if (parenthesized_expression "(pSVar17->num_lines <= bb_table_length)" ( (binary_expression "pSVar17->num_lines <= bb_table_length" (field_expression "pSVar17->num_lines" identifier -> field_identifier) <= identifier) )) (compound_statement "{\n            uVar12 = pSVar17->num_lines;\n          }" { (expression_statement "uVar12 = pSVar17->num_lines;" (assignment_expression "uVar12 = pSVar17->num_lines" identifier = (field_expression "pSVar17->num_lines" identifier -> field_identifier)) ;) })) (expression_statement "ppvVar9 = pSVar17->line;" (assignment_expression "ppvVar9 = pSVar17->line" identifier = (field_expression "pSVar17->line" identifier -> field_identifier)) ;) (expression_statement "uVar26 = (ulonglong)uVar12;" (assignment_expression "uVar26 = (ulonglong)uVar12" identifier = (cast_expression "(ulonglong)uVar12" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) ;) (if_statement "if (((0 < (int)uVar12) && (pvVar13 = *ppvVar9, pvVar13 != (void *)0x0)) &&\n             (pSVar15 = *(Source_File **)((int)pvVar13 + 0x20), pSVar15 != (Source_File *)0x0)) {\n            iVar18 = 0;\n            do {\n              iVar18 = iVar18 + 1;\n              pSVar23 = pSVar15;\n              fprintf(__stream,"%9d %10lu\n",*(undefined4 *)((int)pvVar13 + 0x18),pSVar15);\n              ppvVar9 = pSVar17->line;\n              if ((iVar18 == (int)uVar26) || (pvVar13 = ppvVar9[iVar18], pvVar13 == (void *)0x0))\n              break;\n              pSVar15 = *(Source_File **)((int)pvVar13 + 0x20);\n            } while (pSVar15 != (Source_File *)0x0);\n          }" if (parenthesized_expression "(((0 < (int)uVar12) && (pvVar13 = *ppvVar9, pvVar13 != (void *)0x0)) &&\n             (pSVar15 = *(Source_File **)((int)pvVar13 + 0x20), pSVar15 != (Source_File *)0x0))" ( (binary_expression "((0 < (int)uVar12) && (pvVar13 = *ppvVar9, pvVar13 != (void *)0x0)) &&\n             (pSVar15 = *(Source_File **)((int)pvVar13 + 0x20), pSVar15 != (Source_File *)0x0)" (parenthesized_expression "((0 < (int)uVar12) && (pvVar13 = *ppvVar9, pvVar13 != (void *)0x0))" ( (binary_expression "(0 < (int)uVar12) && (pvVar13 = *ppvVar9, pvVar13 != (void *)0x0)" (parenthesized_expression "(0 < (int)uVar12)" ( (binary_expression "0 < (int)uVar12" number_literal < (cast_expression "(int)uVar12" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "(pvVar13 = *ppvVar9, pvVar13 != (void *)0x0)" ( (comma_expression "pvVar13 = *ppvVar9, pvVar13 != (void *)0x0" (assignment_expression "pvVar13 = *ppvVar9" identifier = (pointer_expression "*ppvVar9" * identifier)) , (binary_expression "pvVar13 != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) && (parenthesized_expression "(pSVar15 = *(Source_File **)((int)pvVar13 + 0x20), pSVar15 != (Source_File *)0x0)" ( (comma_expression "pSVar15 = *(Source_File **)((int)pvVar13 + 0x20), pSVar15 != (Source_File *)0x0" (assignment_expression "pSVar15 = *(Source_File **)((int)pvVar13 + 0x20)" identifier = (pointer_expression "*(Source_File **)((int)pvVar13 + 0x20)" * (cast_expression "(Source_File **)((int)pvVar13 + 0x20)" ( (type_descriptor "Source_File **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pvVar13 + 0x20)" ( (binary_expression "(int)pvVar13 + 0x20" (cast_expression "(int)pvVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) , (binary_expression "pSVar15 != (Source_File *)0x0" identifier != (cast_expression "(Source_File *)0x0" ( (type_descriptor "Source_File *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n            iVar18 = 0;\n            do {\n              iVar18 = iVar18 + 1;\n              pSVar23 = pSVar15;\n              fprintf(__stream,"%9d %10lu\n",*(undefined4 *)((int)pvVar13 + 0x18),pSVar15);\n              ppvVar9 = pSVar17->line;\n              if ((iVar18 == (int)uVar26) || (pvVar13 = ppvVar9[iVar18], pvVar13 == (void *)0x0))\n              break;\n              pSVar15 = *(Source_File **)((int)pvVar13 + 0x20);\n            } while (pSVar15 != (Source_File *)0x0);\n          }" { (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" identifier = number_literal) ;) (do_statement "do {\n              iVar18 = iVar18 + 1;\n              pSVar23 = pSVar15;\n              fprintf(__stream,"%9d %10lu\n",*(undefined4 *)((int)pvVar13 + 0x18),pSVar15);\n              ppvVar9 = pSVar17->line;\n              if ((iVar18 == (int)uVar26) || (pvVar13 = ppvVar9[iVar18], pvVar13 == (void *)0x0))\n              break;\n              pSVar15 = *(Source_File **)((int)pvVar13 + 0x20);\n            } while (pSVar15 != (Source_File *)0x0);" do (compound_statement "{\n              iVar18 = iVar18 + 1;\n              pSVar23 = pSVar15;\n              fprintf(__stream,"%9d %10lu\n",*(undefined4 *)((int)pvVar13 + 0x18),pSVar15);\n              ppvVar9 = pSVar17->line;\n              if ((iVar18 == (int)uVar26) || (pvVar13 = ppvVar9[iVar18], pvVar13 == (void *)0x0))\n              break;\n              pSVar15 = *(Source_File **)((int)pvVar13 + 0x20);\n            }" { (expression_statement "iVar18 = iVar18 + 1;" (assignment_expression "iVar18 = iVar18 + 1" identifier = (binary_expression "iVar18 + 1" identifier + number_literal)) ;) (expression_statement "pSVar23 = pSVar15;" (assignment_expression "pSVar23 = pSVar15" identifier = identifier) ;) (expression_statement "fprintf(__stream,"%9d %10lu\n",*(undefined4 *)((int)pvVar13 + 0x18),pSVar15);" (call_expression "fprintf(__stream,"%9d %10lu\n",*(undefined4 *)((int)pvVar13 + 0x18),pSVar15)" identifier (argument_list "(__stream,"%9d %10lu\n",*(undefined4 *)((int)pvVar13 + 0x18),pSVar15)" ( identifier , (string_literal ""%9d %10lu\n"" " string_content escape_sequence ") , (pointer_expression "*(undefined4 *)((int)pvVar13 + 0x18)" * (cast_expression "(undefined4 *)((int)pvVar13 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar13 + 0x18)" ( (binary_expression "(int)pvVar13 + 0x18" (cast_expression "(int)pvVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , identifier ))) ;) (expression_statement "ppvVar9 = pSVar17->line;" (assignment_expression "ppvVar9 = pSVar17->line" identifier = (field_expression "pSVar17->line" identifier -> field_identifier)) ;) (if_statement "if ((iVar18 == (int)uVar26) || (pvVar13 = ppvVar9[iVar18], pvVar13 == (void *)0x0))\n              break;" if (parenthesized_expression "((iVar18 == (int)uVar26) || (pvVar13 = ppvVar9[iVar18], pvVar13 == (void *)0x0))" ( (binary_expression "(iVar18 == (int)uVar26) || (pvVar13 = ppvVar9[iVar18], pvVar13 == (void *)0x0)" (parenthesized_expression "(iVar18 == (int)uVar26)" ( (binary_expression "iVar18 == (int)uVar26" identifier == (cast_expression "(int)uVar26" ( (type_descriptor "int" primitive_type) ) identifier)) )) || (parenthesized_expression "(pvVar13 = ppvVar9[iVar18], pvVar13 == (void *)0x0)" ( (comma_expression "pvVar13 = ppvVar9[iVar18], pvVar13 == (void *)0x0" (assignment_expression "pvVar13 = ppvVar9[iVar18]" identifier = (subscript_expression "ppvVar9[iVar18]" identifier [ identifier ])) , (binary_expression "pvVar13 == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (break_statement "break;" break ;)) (expression_statement "pSVar15 = *(Source_File **)((int)pvVar13 + 0x20);" (assignment_expression "pSVar15 = *(Source_File **)((int)pvVar13 + 0x20)" identifier = (pointer_expression "*(Source_File **)((int)pvVar13 + 0x20)" * (cast_expression "(Source_File **)((int)pvVar13 + 0x20)" ( (type_descriptor "Source_File **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pvVar13 + 0x20)" ( (binary_expression "(int)pvVar13 + 0x20" (cast_expression "(int)pvVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) }) while (parenthesized_expression "(pSVar15 != (Source_File *)0x0)" ( (binary_expression "pSVar15 != (Source_File *)0x0" identifier != (cast_expression "(Source_File *)0x0" ( (type_descriptor "Source_File *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) }))) (expression_statement "free(ppvVar9);" (call_expression "free(ppvVar9)" identifier (argument_list "(ppvVar9)" ( identifier ))) ;) (expression_statement "pSVar17->line = (void **)0x0;" (assignment_expression "pSVar17->line = (void **)0x0" (field_expression "pSVar17->line" identifier -> field_identifier) = (cast_expression "(void **)0x0" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "uVar22 = 5;" (assignment_expression "uVar22 = 5" identifier = number_literal) ;) (expression_statement "pcVar11 = (char *)dcgettext("gprof","\nExecution Summary:\n\n",5);" (assignment_expression "pcVar11 = (char *)dcgettext("gprof","\nExecution Summary:\n\n",5)" identifier = (cast_expression "(char *)dcgettext("gprof","\nExecution Summary:\n\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext("gprof","\nExecution Summary:\n\n",5)" identifier (argument_list "("gprof","\nExecution Summary:\n\n",5)" ( (string_literal ""gprof"" " string_content ") , (string_literal ""\nExecution Summary:\n\n"" " escape_sequence string_content escape_sequence escape_sequence ") , number_literal ))))) ;) (expression_statement "fprintf(__stream,pcVar11,uVar22,pSVar23);" (call_expression "fprintf(__stream,pcVar11,uVar22,pSVar23)" identifier (argument_list "(__stream,pcVar11,uVar22,pSVar23)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "lVar8 = num_executable_lines;" (assignment_expression "lVar8 = num_executable_lines" identifier = identifier) ;) (expression_statement "pcVar11 = (char *)dcgettext("gprof","%9ld   Executable lines in this file\n",5);" (assignment_expression "pcVar11 = (char *)dcgettext("gprof","%9ld   Executable lines in this file\n",5)" identifier = (cast_expression "(char *)dcgettext("gprof","%9ld   Executable lines in this file\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext("gprof","%9ld   Executable lines in this file\n",5)" identifier (argument_list "("gprof","%9ld   Executable lines in this file\n",5)" ( (string_literal ""gprof"" " string_content ") , (string_literal ""%9ld   Executable lines in this file\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "fprintf(__stream,pcVar11,lVar8);" (call_expression "fprintf(__stream,pcVar11,lVar8)" identifier (argument_list "(__stream,pcVar11,lVar8)" ( identifier , identifier , identifier ))) ;) (expression_statement "lVar8 = num_lines_executed;" (assignment_expression "lVar8 = num_lines_executed" identifier = identifier) ;) (expression_statement "pcVar11 = (char *)dcgettext("gprof","%9ld   Lines executed\n",5);" (assignment_expression "pcVar11 = (char *)dcgettext("gprof","%9ld   Lines executed\n",5)" identifier = (cast_expression "(char *)dcgettext("gprof","%9ld   Lines executed\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext("gprof","%9ld   Lines executed\n",5)" identifier (argument_list "("gprof","%9ld   Lines executed\n",5)" ( (string_literal ""gprof"" " string_content ") , (string_literal ""%9ld   Lines executed\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "fprintf(__stream,pcVar11,lVar8);" (call_expression "fprintf(__stream,pcVar11,lVar8)" identifier (argument_list "(__stream,pcVar11,lVar8)" ( identifier , identifier , identifier ))) ;) (expression_statement "fVar4 = _DAT_000221d8;" (assignment_expression "fVar4 = _DAT_000221d8" identifier = identifier) ;) (if_statement "if (num_executable_lines != 0) {\n          fVar4 = ((float)num_lines_executed * _DAT_000221d8) / (float)num_executable_lines;\n        }" if (parenthesized_expression "(num_executable_lines != 0)" ( (binary_expression "num_executable_lines != 0" identifier != number_literal) )) (compound_statement "{\n          fVar4 = ((float)num_lines_executed * _DAT_000221d8) / (float)num_executable_lines;\n        }" { (expression_statement "fVar4 = ((float)num_lines_executed * _DAT_000221d8) / (float)num_executable_lines;" (assignment_expression "fVar4 = ((float)num_lines_executed * _DAT_000221d8) / (float)num_executable_lines" identifier = (binary_expression "((float)num_lines_executed * _DAT_000221d8) / (float)num_executable_lines" (parenthesized_expression "((float)num_lines_executed * _DAT_000221d8)" ( (binary_expression "(float)num_lines_executed * _DAT_000221d8" (cast_expression "(float)num_lines_executed" ( (type_descriptor "float" primitive_type) ) identifier) * identifier) )) / (cast_expression "(float)num_executable_lines" ( (type_descriptor "float" primitive_type) ) identifier))) ;) })) (expression_statement "dVar25 = (double)fVar4;" (assignment_expression "dVar25 = (double)fVar4" identifier = (cast_expression "(double)fVar4" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (expression_statement "pcVar11 = (char *)dcgettext("gprof","%9.2f   Percent of the file executed\n",5,pSVar23,\n                                    dVar25);" (assignment_expression "pcVar11 = (char *)dcgettext("gprof","%9.2f   Percent of the file executed\n",5,pSVar23,\n                                    dVar25)" identifier = (cast_expression "(char *)dcgettext("gprof","%9.2f   Percent of the file executed\n",5,pSVar23,\n                                    dVar25)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext("gprof","%9.2f   Percent of the file executed\n",5,pSVar23,\n                                    dVar25)" identifier (argument_list "("gprof","%9.2f   Percent of the file executed\n",5,pSVar23,\n                                    dVar25)" ( (string_literal ""gprof"" " string_content ") , (string_literal ""%9.2f   Percent of the file executed\n"" " string_content escape_sequence ") , number_literal , identifier , identifier ))))) ;) (expression_statement "fprintf(__stream,pcVar11,SUB84(dVar25,0),(int)((ulonglong)dVar25 >> 0x20));" (call_expression "fprintf(__stream,pcVar11,SUB84(dVar25,0),(int)((ulonglong)dVar25 >> 0x20))" identifier (argument_list "(__stream,pcVar11,SUB84(dVar25,0),(int)((ulonglong)dVar25 >> 0x20))" ( identifier , identifier , (call_expression "SUB84(dVar25,0)" identifier (argument_list "(dVar25,0)" ( identifier , number_literal ))) , (cast_expression "(int)((ulonglong)dVar25 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar25 >> 0x20)" ( (binary_expression "(ulonglong)dVar25 >> 0x20" (cast_expression "(ulonglong)dVar25" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) ))) ;) (expression_statement "uVar3 = pSVar17->ncalls;" (assignment_expression "uVar3 = pSVar17->ncalls" identifier = (field_expression "pSVar17->ncalls" identifier -> field_identifier)) ;) (expression_statement "pcVar11 = (char *)dcgettext("gprof","\n%9lu   Total number of line executions\n",5);" (assignment_expression "pcVar11 = (char *)dcgettext("gprof","\n%9lu   Total number of line executions\n",5)" identifier = (cast_expression "(char *)dcgettext("gprof","\n%9lu   Total number of line executions\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext("gprof","\n%9lu   Total number of line executions\n",5)" identifier (argument_list "("gprof","\n%9lu   Total number of line executions\n",5)" ( (string_literal ""gprof"" " string_content ") , (string_literal ""\n%9lu   Total number of line executions\n"" " escape_sequence string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "fprintf(__stream,pcVar11,uVar3);" (call_expression "fprintf(__stream,pcVar11,uVar3)" identifier (argument_list "(__stream,pcVar11,uVar3)" ( identifier , identifier , identifier ))) ;) (if_statement "if (num_executable_lines == 0) {\n          dVar25 = 0.0;\n        }\n        else {\n          dVar25 = (double)pSVar17->ncalls / (double)num_executable_lines;\n        }" if (parenthesized_expression "(num_executable_lines == 0)" ( (binary_expression "num_executable_lines == 0" identifier == number_literal) )) (compound_statement "{\n          dVar25 = 0.0;\n        }" { (expression_statement "dVar25 = 0.0;" (assignment_expression "dVar25 = 0.0" identifier = number_literal) ;) }) (else_clause "else {\n          dVar25 = (double)pSVar17->ncalls / (double)num_executable_lines;\n        }" else (compound_statement "{\n          dVar25 = (double)pSVar17->ncalls / (double)num_executable_lines;\n        }" { (expression_statement "dVar25 = (double)pSVar17->ncalls / (double)num_executable_lines;" (assignment_expression "dVar25 = (double)pSVar17->ncalls / (double)num_executable_lines" identifier = (binary_expression "(double)pSVar17->ncalls / (double)num_executable_lines" (cast_expression "(double)pSVar17->ncalls" ( (type_descriptor "double" primitive_type) ) (field_expression "pSVar17->ncalls" identifier -> field_identifier)) / (cast_expression "(double)num_executable_lines" ( (type_descriptor "double" primitive_type) ) identifier))) ;) }))) (expression_statement "pcVar11 = (char *)dcgettext("gprof","%9.2f   Average executions per line\n",5,pSVar23,dVar25\n                                   );" (assignment_expression "pcVar11 = (char *)dcgettext("gprof","%9.2f   Average executions per line\n",5,pSVar23,dVar25\n                                   )" identifier = (cast_expression "(char *)dcgettext("gprof","%9.2f   Average executions per line\n",5,pSVar23,dVar25\n                                   )" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext("gprof","%9.2f   Average executions per line\n",5,pSVar23,dVar25\n                                   )" identifier (argument_list "("gprof","%9.2f   Average executions per line\n",5,pSVar23,dVar25\n                                   )" ( (string_literal ""gprof"" " string_content ") , (string_literal ""%9.2f   Average executions per line\n"" " string_content escape_sequence ") , number_literal , identifier , identifier ))))) ;) (expression_statement "fprintf(__stream,pcVar11,SUB84(dVar25,0),(int)((ulonglong)dVar25 >> 0x20));" (call_expression "fprintf(__stream,pcVar11,SUB84(dVar25,0),(int)((ulonglong)dVar25 >> 0x20))" identifier (argument_list "(__stream,pcVar11,SUB84(dVar25,0),(int)((ulonglong)dVar25 >> 0x20))" ( identifier , identifier , (call_expression "SUB84(dVar25,0)" identifier (argument_list "(dVar25,0)" ( identifier , number_literal ))) , (cast_expression "(int)((ulonglong)dVar25 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar25 >> 0x20)" ( (binary_expression "(ulonglong)dVar25 >> 0x20" (cast_expression "(ulonglong)dVar25" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) ))) ;) (if_statement "if (*(FILE **)puVar7 != __stream) {\n          fclose(__stream);\n        }" if (parenthesized_expression "(*(FILE **)puVar7 != __stream)" ( (binary_expression "*(FILE **)puVar7 != __stream" (pointer_expression "*(FILE **)puVar7" * (cast_expression "(FILE **)puVar7" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) != identifier) )) (compound_statement "{\n          fclose(__stream);\n        }" { (expression_statement "fclose(__stream);" (call_expression "fclose(__stream)" identifier (argument_list "(__stream)" ( identifier ))) ;) })) })) })) (expression_statement "puVar6 = PTR_stdout_0002cfec;" (assignment_expression "puVar6 = PTR_stdout_0002cfec" identifier = identifier) ;) (expression_statement "pSVar17 = pSVar17->next;" (assignment_expression "pSVar17 = pSVar17->next" identifier = (field_expression "pSVar17->next" identifier -> field_identifier)) ;) (expression_statement "PTR_stdout_0002cfec = puVar7;" (assignment_expression "PTR_stdout_0002cfec = puVar7" identifier = identifier) ;) }) while (parenthesized_expression "( true )" ( true )) ;)) })))
(translation_unit "void FUN_00013de0(void)\n\n{\n  undefined4 *puVar1;\n  int iVar2;\n  float fVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  void *__s;\n  int iVar6;\n  FILE *__stream;\n  char *pcVar7;\n  uint uVar8;\n  int *piVar9;\n  int *piVar10;\n  undefined4 *puVar11;\n  int iVar12;\n  int *piVar13;\n  int *piVar14;\n  byte bVar15;\n  undefined4 uVar16;\n  undefined8 uVar17;\n  double dVar18;\n  ulonglong uVar19;\n  \n  bVar15 = 0;\n  puVar11 = DAT_0002e524;\n  if (DAT_0002e524 < DAT_0002e528) {\n    do {\n      while (((puVar11[5] != 0 && (*(int *)(puVar11[5] + 0xc) < (int)puVar11[6])) &&\n             ((iVar6 = FUN_0001d480(&DAT_0002e5a0,*puVar11,puVar11[1]), iVar6 != 0 ||\n              ((DAT_0002e5a0 == 0 &&\n               (iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0))))))) {\n        puVar1 = puVar11 + 6;\n        piVar13 = puVar11 + 5;\n        puVar11 = puVar11 + 0x3f;\n        *(undefined4 *)(*piVar13 + 0xc) = *puVar1;\n        if (DAT_0002e528 <= puVar11) goto LAB_00013e60;\n      }\n      puVar11 = puVar11 + 0x3f;\n    } while (puVar11 < DAT_0002e528);\nLAB_00013e60:\n    piVar13 = DAT_0002e178;\n    if (DAT_0002e178 != (int *)0x0) goto LAB_00013e78;\n    if (DAT_0002e528 <= DAT_0002e524) {\n      return;\n    }\n  }\n  else {\n    piVar13 = DAT_0002e178;\n    if (DAT_0002e178 == (int *)0x0) {\n      return;\n    }\nLAB_00013e78:\n    do {\n      if (0 < piVar13[3]) {\n        __s = (void *)xmalloc(piVar13[3] << 2);\n        piVar13[5] = (int)__s;\n        memset(__s,0,piVar13[3] << 2);\n      }\n      piVar13 = (int *)*piVar13;\n    } while (piVar13 != (int *)0x0);\n    puVar4 = PTR_stdout_0002cfec;\n    piVar13 = DAT_0002e178;\n    if (DAT_0002e528 <= DAT_0002e524) goto joined_r0x00013f50;\n  }\n  uVar17 = 0x2e5a0;\n  puVar11 = DAT_0002e524;\nLAB_00013edb:\n  do {\n    if (((puVar11[5] != 0) && (*(int *)(puVar11[5] + 0xc) != 0)) &&\n       ((iVar6 = FUN_0001d480((int)uVar17,*puVar11,puVar11[1]), iVar6 != 0 ||\n        ((DAT_0002e5a0 == 0 && (iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0)\n         ))))) {\n      iVar6 = puVar11[5];\n      iVar12 = puVar11[6];\n      iVar2 = puVar11[8];\n      piVar13 = (int *)(iVar6 + 8);\n      *piVar13 = *piVar13 + iVar2;\n      puVar1 = (undefined4 *)(*(int *)(iVar6 + 0x14) + -4 + iVar12 * 4);\n      piVar13 = (int *)*puVar1;\n      if (piVar13 == (int *)0x0) {\n        *puVar1 = puVar11;\n      }\n      else {\n        if (piVar13[1] == 0 && *piVar13 == 0) {\n          piVar13[8] = piVar13[8] + iVar2;\n          puVar11 = puVar11 + 0x3f;\n          puVar4 = PTR_stdout_0002cfec;\n          piVar13 = DAT_0002e178;\n          if (DAT_0002e528 <= puVar11) break;\n          goto LAB_00013edb;\n        }\n        piVar9 = (int *)xmalloc(0xfc);\n        piVar14 = piVar9;\n        for (iVar6 = 0x3f; iVar6 != 0; iVar6 = iVar6 + -1) {\n          *piVar14 = *piVar13;\n          piVar13 = piVar13 + (uint)bVar15 * -2 + 1;\n          piVar14 = piVar14 + (uint)bVar15 * -2 + 1;\n        }\n        *piVar9 = 0;\n        piVar9[1] = 0;\n        piVar9[8] = piVar9[8] + puVar11[8];\n        *(int **)(*(int *)(puVar11[5] + 0x14) + -4 + puVar11[6] * 4) = piVar9;\n      }\n    }\n    puVar11 = puVar11 + 0x3f;\n    puVar4 = PTR_stdout_0002cfec;\n    piVar13 = DAT_0002e178;\n  } while (puVar11 < DAT_0002e528);\njoined_r0x00013f50:\n  do {\n    puVar5 = PTR_stdout_0002cfec;\n    if (piVar13 == (int *)0x0) {\n      PTR_stdout_0002cfec = puVar4;\n      return;\n    }\n    PTR_stdout_0002cfec = puVar4;\n    if ((piVar13[3] != 0) && ((DAT_0002d1c0 == 0 || (piVar13[2] != 0)))) {\n      DAT_0002d4f4 = 0;\n      DAT_0002d4f8 = 0;\n      piVar14 = piVar13;\n      __stream = (FILE *)FUN_0001c940(piVar13,0x10,FUN_00013230,piVar13);\n      uVar8 = DAT_0002d148;\n      if (__stream != (FILE *)0x0) {\n        if ((int)DAT_0002d148 < 1) {\n          piVar9 = (int *)piVar13[5];\n        }\n        else {\n          pcVar7 = (char *)dcgettext("gprof","\n\nTop %d Lines:\n\n     Line      Count\n\n",5);\n          fprintf(__stream,pcVar7,uVar8);\n          qsort((void *)piVar13[5],piVar13[3],4,FUN_00013170);\n          uVar8 = DAT_0002d148;\n          if (piVar13[3] <= (int)DAT_0002d148) {\n            uVar8 = piVar13[3];\n          }\n          piVar9 = (int *)piVar13[5];\n          uVar19 = (ulonglong)uVar8;\n          if (((0 < (int)uVar8) && (iVar6 = *piVar9, iVar6 != 0)) &&\n             (piVar10 = *(int **)(iVar6 + 0x20), piVar10 != (int *)0x0)) {\n            iVar12 = 0;\n            do {\n              iVar12 = iVar12 + 1;\n              piVar14 = piVar10;\n              fprintf(__stream,"%9d %10lu\n",*(undefined4 *)(iVar6 + 0x18),piVar10);\n              piVar9 = (int *)piVar13[5];\n              if ((iVar12 == (int)uVar19) || (iVar6 = piVar9[iVar12], iVar6 == 0)) break;\n              piVar10 = *(int **)(iVar6 + 0x20);\n            } while (piVar10 != (int *)0x0);\n          }\n        }\n        free(piVar9);\n        piVar13[5] = 0;\n        uVar16 = 5;\n        pcVar7 = (char *)dcgettext("gprof","\nExecution Summary:\n\n",5);\n        fprintf(__stream,pcVar7,uVar16,piVar14);\n        iVar6 = DAT_0002d4f8;\n        pcVar7 = (char *)dcgettext("gprof","%9ld   Executable lines in this file\n",5);\n        fprintf(__stream,pcVar7,iVar6);\n        iVar6 = DAT_0002d4f4;\n        pcVar7 = (char *)dcgettext("gprof","%9ld   Lines executed\n",5);\n        fprintf(__stream,pcVar7,iVar6);\n        fVar3 = _DAT_000221d8;\n        if (DAT_0002d4f8 != 0) {\n          fVar3 = ((float)DAT_0002d4f4 * _DAT_000221d8) / (float)DAT_0002d4f8;\n        }\n        dVar18 = (double)fVar3;\n        pcVar7 = (char *)dcgettext("gprof","%9.2f   Percent of the file executed\n",5,piVar14,dVar18\n                                  );\n        fprintf(__stream,pcVar7,SUB84(dVar18,0),(int)((ulonglong)dVar18 >> 0x20));\n        iVar6 = piVar13[2];\n        pcVar7 = (char *)dcgettext("gprof","\n%9lu   Total number of line executions\n",5);\n        fprintf(__stream,pcVar7,iVar6);\n        if (DAT_0002d4f8 == 0) {\n          dVar18 = 0.0;\n        }\n        else {\n          dVar18 = (double)(uint)piVar13[2] / (double)DAT_0002d4f8;\n        }\n        pcVar7 = (char *)dcgettext("gprof","%9.2f   Average executions per line\n",5,piVar14,dVar18)\n        ;\n        fprintf(__stream,pcVar7,SUB84(dVar18,0),(int)((ulonglong)dVar18 >> 0x20));\n        if (*(FILE **)puVar5 != __stream) {\n          fclose(__stream);\n        }\n      }\n    }\n    puVar4 = PTR_stdout_0002cfec;\n    piVar13 = (int *)*piVar13;\n    PTR_stdout_0002cfec = puVar5;\n  } while( true );\n}\n\n" (function_definition "void FUN_00013de0(void)\n\n{\n  undefined4 *puVar1;\n  int iVar2;\n  float fVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  void *__s;\n  int iVar6;\n  FILE *__stream;\n  char *pcVar7;\n  uint uVar8;\n  int *piVar9;\n  int *piVar10;\n  undefined4 *puVar11;\n  int iVar12;\n  int *piVar13;\n  int *piVar14;\n  byte bVar15;\n  undefined4 uVar16;\n  undefined8 uVar17;\n  double dVar18;\n  ulonglong uVar19;\n  \n  bVar15 = 0;\n  puVar11 = DAT_0002e524;\n  if (DAT_0002e524 < DAT_0002e528) {\n    do {\n      while (((puVar11[5] != 0 && (*(int *)(puVar11[5] + 0xc) < (int)puVar11[6])) &&\n             ((iVar6 = FUN_0001d480(&DAT_0002e5a0,*puVar11,puVar11[1]), iVar6 != 0 ||\n              ((DAT_0002e5a0 == 0 &&\n               (iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0))))))) {\n        puVar1 = puVar11 + 6;\n        piVar13 = puVar11 + 5;\n        puVar11 = puVar11 + 0x3f;\n        *(undefined4 *)(*piVar13 + 0xc) = *puVar1;\n        if (DAT_0002e528 <= puVar11) goto LAB_00013e60;\n      }\n      puVar11 = puVar11 + 0x3f;\n    } while (puVar11 < DAT_0002e528);\nLAB_00013e60:\n    piVar13 = DAT_0002e178;\n    if (DAT_0002e178 != (int *)0x0) goto LAB_00013e78;\n    if (DAT_0002e528 <= DAT_0002e524) {\n      return;\n    }\n  }\n  else {\n    piVar13 = DAT_0002e178;\n    if (DAT_0002e178 == (int *)0x0) {\n      return;\n    }\nLAB_00013e78:\n    do {\n      if (0 < piVar13[3]) {\n        __s = (void *)xmalloc(piVar13[3] << 2);\n        piVar13[5] = (int)__s;\n        memset(__s,0,piVar13[3] << 2);\n      }\n      piVar13 = (int *)*piVar13;\n    } while (piVar13 != (int *)0x0);\n    puVar4 = PTR_stdout_0002cfec;\n    piVar13 = DAT_0002e178;\n    if (DAT_0002e528 <= DAT_0002e524) goto joined_r0x00013f50;\n  }\n  uVar17 = 0x2e5a0;\n  puVar11 = DAT_0002e524;\nLAB_00013edb:\n  do {\n    if (((puVar11[5] != 0) && (*(int *)(puVar11[5] + 0xc) != 0)) &&\n       ((iVar6 = FUN_0001d480((int)uVar17,*puVar11,puVar11[1]), iVar6 != 0 ||\n        ((DAT_0002e5a0 == 0 && (iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0)\n         ))))) {\n      iVar6 = puVar11[5];\n      iVar12 = puVar11[6];\n      iVar2 = puVar11[8];\n      piVar13 = (int *)(iVar6 + 8);\n      *piVar13 = *piVar13 + iVar2;\n      puVar1 = (undefined4 *)(*(int *)(iVar6 + 0x14) + -4 + iVar12 * 4);\n      piVar13 = (int *)*puVar1;\n      if (piVar13 == (int *)0x0) {\n        *puVar1 = puVar11;\n      }\n      else {\n        if (piVar13[1] == 0 && *piVar13 == 0) {\n          piVar13[8] = piVar13[8] + iVar2;\n          puVar11 = puVar11 + 0x3f;\n          puVar4 = PTR_stdout_0002cfec;\n          piVar13 = DAT_0002e178;\n          if (DAT_0002e528 <= puVar11) break;\n          goto LAB_00013edb;\n        }\n        piVar9 = (int *)xmalloc(0xfc);\n        piVar14 = piVar9;\n        for (iVar6 = 0x3f; iVar6 != 0; iVar6 = iVar6 + -1) {\n          *piVar14 = *piVar13;\n          piVar13 = piVar13 + (uint)bVar15 * -2 + 1;\n          piVar14 = piVar14 + (uint)bVar15 * -2 + 1;\n        }\n        *piVar9 = 0;\n        piVar9[1] = 0;\n        piVar9[8] = piVar9[8] + puVar11[8];\n        *(int **)(*(int *)(puVar11[5] + 0x14) + -4 + puVar11[6] * 4) = piVar9;\n      }\n    }\n    puVar11 = puVar11 + 0x3f;\n    puVar4 = PTR_stdout_0002cfec;\n    piVar13 = DAT_0002e178;\n  } while (puVar11 < DAT_0002e528);\njoined_r0x00013f50:\n  do {\n    puVar5 = PTR_stdout_0002cfec;\n    if (piVar13 == (int *)0x0) {\n      PTR_stdout_0002cfec = puVar4;\n      return;\n    }\n    PTR_stdout_0002cfec = puVar4;\n    if ((piVar13[3] != 0) && ((DAT_0002d1c0 == 0 || (piVar13[2] != 0)))) {\n      DAT_0002d4f4 = 0;\n      DAT_0002d4f8 = 0;\n      piVar14 = piVar13;\n      __stream = (FILE *)FUN_0001c940(piVar13,0x10,FUN_00013230,piVar13);\n      uVar8 = DAT_0002d148;\n      if (__stream != (FILE *)0x0) {\n        if ((int)DAT_0002d148 < 1) {\n          piVar9 = (int *)piVar13[5];\n        }\n        else {\n          pcVar7 = (char *)dcgettext("gprof","\n\nTop %d Lines:\n\n     Line      Count\n\n",5);\n          fprintf(__stream,pcVar7,uVar8);\n          qsort((void *)piVar13[5],piVar13[3],4,FUN_00013170);\n          uVar8 = DAT_0002d148;\n          if (piVar13[3] <= (int)DAT_0002d148) {\n            uVar8 = piVar13[3];\n          }\n          piVar9 = (int *)piVar13[5];\n          uVar19 = (ulonglong)uVar8;\n          if (((0 < (int)uVar8) && (iVar6 = *piVar9, iVar6 != 0)) &&\n             (piVar10 = *(int **)(iVar6 + 0x20), piVar10 != (int *)0x0)) {\n            iVar12 = 0;\n            do {\n              iVar12 = iVar12 + 1;\n              piVar14 = piVar10;\n              fprintf(__stream,"%9d %10lu\n",*(undefined4 *)(iVar6 + 0x18),piVar10);\n              piVar9 = (int *)piVar13[5];\n              if ((iVar12 == (int)uVar19) || (iVar6 = piVar9[iVar12], iVar6 == 0)) break;\n              piVar10 = *(int **)(iVar6 + 0x20);\n            } while (piVar10 != (int *)0x0);\n          }\n        }\n        free(piVar9);\n        piVar13[5] = 0;\n        uVar16 = 5;\n        pcVar7 = (char *)dcgettext("gprof","\nExecution Summary:\n\n",5);\n        fprintf(__stream,pcVar7,uVar16,piVar14);\n        iVar6 = DAT_0002d4f8;\n        pcVar7 = (char *)dcgettext("gprof","%9ld   Executable lines in this file\n",5);\n        fprintf(__stream,pcVar7,iVar6);\n        iVar6 = DAT_0002d4f4;\n        pcVar7 = (char *)dcgettext("gprof","%9ld   Lines executed\n",5);\n        fprintf(__stream,pcVar7,iVar6);\n        fVar3 = _DAT_000221d8;\n        if (DAT_0002d4f8 != 0) {\n          fVar3 = ((float)DAT_0002d4f4 * _DAT_000221d8) / (float)DAT_0002d4f8;\n        }\n        dVar18 = (double)fVar3;\n        pcVar7 = (char *)dcgettext("gprof","%9.2f   Percent of the file executed\n",5,piVar14,dVar18\n                                  );\n        fprintf(__stream,pcVar7,SUB84(dVar18,0),(int)((ulonglong)dVar18 >> 0x20));\n        iVar6 = piVar13[2];\n        pcVar7 = (char *)dcgettext("gprof","\n%9lu   Total number of line executions\n",5);\n        fprintf(__stream,pcVar7,iVar6);\n        if (DAT_0002d4f8 == 0) {\n          dVar18 = 0.0;\n        }\n        else {\n          dVar18 = (double)(uint)piVar13[2] / (double)DAT_0002d4f8;\n        }\n        pcVar7 = (char *)dcgettext("gprof","%9.2f   Average executions per line\n",5,piVar14,dVar18)\n        ;\n        fprintf(__stream,pcVar7,SUB84(dVar18,0),(int)((ulonglong)dVar18 >> 0x20));\n        if (*(FILE **)puVar5 != __stream) {\n          fclose(__stream);\n        }\n      }\n    }\n    puVar4 = PTR_stdout_0002cfec;\n    piVar13 = (int *)*piVar13;\n    PTR_stdout_0002cfec = puVar5;\n  } while( true );\n}" primitive_type (function_declarator "FUN_00013de0(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  undefined4 *puVar1;\n  int iVar2;\n  float fVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  void *__s;\n  int iVar6;\n  FILE *__stream;\n  char *pcVar7;\n  uint uVar8;\n  int *piVar9;\n  int *piVar10;\n  undefined4 *puVar11;\n  int iVar12;\n  int *piVar13;\n  int *piVar14;\n  byte bVar15;\n  undefined4 uVar16;\n  undefined8 uVar17;\n  double dVar18;\n  ulonglong uVar19;\n  \n  bVar15 = 0;\n  puVar11 = DAT_0002e524;\n  if (DAT_0002e524 < DAT_0002e528) {\n    do {\n      while (((puVar11[5] != 0 && (*(int *)(puVar11[5] + 0xc) < (int)puVar11[6])) &&\n             ((iVar6 = FUN_0001d480(&DAT_0002e5a0,*puVar11,puVar11[1]), iVar6 != 0 ||\n              ((DAT_0002e5a0 == 0 &&\n               (iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0))))))) {\n        puVar1 = puVar11 + 6;\n        piVar13 = puVar11 + 5;\n        puVar11 = puVar11 + 0x3f;\n        *(undefined4 *)(*piVar13 + 0xc) = *puVar1;\n        if (DAT_0002e528 <= puVar11) goto LAB_00013e60;\n      }\n      puVar11 = puVar11 + 0x3f;\n    } while (puVar11 < DAT_0002e528);\nLAB_00013e60:\n    piVar13 = DAT_0002e178;\n    if (DAT_0002e178 != (int *)0x0) goto LAB_00013e78;\n    if (DAT_0002e528 <= DAT_0002e524) {\n      return;\n    }\n  }\n  else {\n    piVar13 = DAT_0002e178;\n    if (DAT_0002e178 == (int *)0x0) {\n      return;\n    }\nLAB_00013e78:\n    do {\n      if (0 < piVar13[3]) {\n        __s = (void *)xmalloc(piVar13[3] << 2);\n        piVar13[5] = (int)__s;\n        memset(__s,0,piVar13[3] << 2);\n      }\n      piVar13 = (int *)*piVar13;\n    } while (piVar13 != (int *)0x0);\n    puVar4 = PTR_stdout_0002cfec;\n    piVar13 = DAT_0002e178;\n    if (DAT_0002e528 <= DAT_0002e524) goto joined_r0x00013f50;\n  }\n  uVar17 = 0x2e5a0;\n  puVar11 = DAT_0002e524;\nLAB_00013edb:\n  do {\n    if (((puVar11[5] != 0) && (*(int *)(puVar11[5] + 0xc) != 0)) &&\n       ((iVar6 = FUN_0001d480((int)uVar17,*puVar11,puVar11[1]), iVar6 != 0 ||\n        ((DAT_0002e5a0 == 0 && (iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0)\n         ))))) {\n      iVar6 = puVar11[5];\n      iVar12 = puVar11[6];\n      iVar2 = puVar11[8];\n      piVar13 = (int *)(iVar6 + 8);\n      *piVar13 = *piVar13 + iVar2;\n      puVar1 = (undefined4 *)(*(int *)(iVar6 + 0x14) + -4 + iVar12 * 4);\n      piVar13 = (int *)*puVar1;\n      if (piVar13 == (int *)0x0) {\n        *puVar1 = puVar11;\n      }\n      else {\n        if (piVar13[1] == 0 && *piVar13 == 0) {\n          piVar13[8] = piVar13[8] + iVar2;\n          puVar11 = puVar11 + 0x3f;\n          puVar4 = PTR_stdout_0002cfec;\n          piVar13 = DAT_0002e178;\n          if (DAT_0002e528 <= puVar11) break;\n          goto LAB_00013edb;\n        }\n        piVar9 = (int *)xmalloc(0xfc);\n        piVar14 = piVar9;\n        for (iVar6 = 0x3f; iVar6 != 0; iVar6 = iVar6 + -1) {\n          *piVar14 = *piVar13;\n          piVar13 = piVar13 + (uint)bVar15 * -2 + 1;\n          piVar14 = piVar14 + (uint)bVar15 * -2 + 1;\n        }\n        *piVar9 = 0;\n        piVar9[1] = 0;\n        piVar9[8] = piVar9[8] + puVar11[8];\n        *(int **)(*(int *)(puVar11[5] + 0x14) + -4 + puVar11[6] * 4) = piVar9;\n      }\n    }\n    puVar11 = puVar11 + 0x3f;\n    puVar4 = PTR_stdout_0002cfec;\n    piVar13 = DAT_0002e178;\n  } while (puVar11 < DAT_0002e528);\njoined_r0x00013f50:\n  do {\n    puVar5 = PTR_stdout_0002cfec;\n    if (piVar13 == (int *)0x0) {\n      PTR_stdout_0002cfec = puVar4;\n      return;\n    }\n    PTR_stdout_0002cfec = puVar4;\n    if ((piVar13[3] != 0) && ((DAT_0002d1c0 == 0 || (piVar13[2] != 0)))) {\n      DAT_0002d4f4 = 0;\n      DAT_0002d4f8 = 0;\n      piVar14 = piVar13;\n      __stream = (FILE *)FUN_0001c940(piVar13,0x10,FUN_00013230,piVar13);\n      uVar8 = DAT_0002d148;\n      if (__stream != (FILE *)0x0) {\n        if ((int)DAT_0002d148 < 1) {\n          piVar9 = (int *)piVar13[5];\n        }\n        else {\n          pcVar7 = (char *)dcgettext("gprof","\n\nTop %d Lines:\n\n     Line      Count\n\n",5);\n          fprintf(__stream,pcVar7,uVar8);\n          qsort((void *)piVar13[5],piVar13[3],4,FUN_00013170);\n          uVar8 = DAT_0002d148;\n          if (piVar13[3] <= (int)DAT_0002d148) {\n            uVar8 = piVar13[3];\n          }\n          piVar9 = (int *)piVar13[5];\n          uVar19 = (ulonglong)uVar8;\n          if (((0 < (int)uVar8) && (iVar6 = *piVar9, iVar6 != 0)) &&\n             (piVar10 = *(int **)(iVar6 + 0x20), piVar10 != (int *)0x0)) {\n            iVar12 = 0;\n            do {\n              iVar12 = iVar12 + 1;\n              piVar14 = piVar10;\n              fprintf(__stream,"%9d %10lu\n",*(undefined4 *)(iVar6 + 0x18),piVar10);\n              piVar9 = (int *)piVar13[5];\n              if ((iVar12 == (int)uVar19) || (iVar6 = piVar9[iVar12], iVar6 == 0)) break;\n              piVar10 = *(int **)(iVar6 + 0x20);\n            } while (piVar10 != (int *)0x0);\n          }\n        }\n        free(piVar9);\n        piVar13[5] = 0;\n        uVar16 = 5;\n        pcVar7 = (char *)dcgettext("gprof","\nExecution Summary:\n\n",5);\n        fprintf(__stream,pcVar7,uVar16,piVar14);\n        iVar6 = DAT_0002d4f8;\n        pcVar7 = (char *)dcgettext("gprof","%9ld   Executable lines in this file\n",5);\n        fprintf(__stream,pcVar7,iVar6);\n        iVar6 = DAT_0002d4f4;\n        pcVar7 = (char *)dcgettext("gprof","%9ld   Lines executed\n",5);\n        fprintf(__stream,pcVar7,iVar6);\n        fVar3 = _DAT_000221d8;\n        if (DAT_0002d4f8 != 0) {\n          fVar3 = ((float)DAT_0002d4f4 * _DAT_000221d8) / (float)DAT_0002d4f8;\n        }\n        dVar18 = (double)fVar3;\n        pcVar7 = (char *)dcgettext("gprof","%9.2f   Percent of the file executed\n",5,piVar14,dVar18\n                                  );\n        fprintf(__stream,pcVar7,SUB84(dVar18,0),(int)((ulonglong)dVar18 >> 0x20));\n        iVar6 = piVar13[2];\n        pcVar7 = (char *)dcgettext("gprof","\n%9lu   Total number of line executions\n",5);\n        fprintf(__stream,pcVar7,iVar6);\n        if (DAT_0002d4f8 == 0) {\n          dVar18 = 0.0;\n        }\n        else {\n          dVar18 = (double)(uint)piVar13[2] / (double)DAT_0002d4f8;\n        }\n        pcVar7 = (char *)dcgettext("gprof","%9.2f   Average executions per line\n",5,piVar14,dVar18)\n        ;\n        fprintf(__stream,pcVar7,SUB84(dVar18,0),(int)((ulonglong)dVar18 >> 0x20));\n        if (*(FILE **)puVar5 != __stream) {\n          fclose(__stream);\n        }\n      }\n    }\n    puVar4 = PTR_stdout_0002cfec;\n    piVar13 = (int *)*piVar13;\n    PTR_stdout_0002cfec = puVar5;\n  } while( true );\n}" { (declaration "undefined4 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "float fVar3;" primitive_type identifier ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "void *__s;" primitive_type (pointer_declarator "*__s" * identifier) ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "FILE *__stream;" type_identifier (pointer_declarator "*__stream" * identifier) ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "int *piVar9;" primitive_type (pointer_declarator "*piVar9" * identifier) ;) (declaration "int *piVar10;" primitive_type (pointer_declarator "*piVar10" * identifier) ;) (declaration "undefined4 *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "int *piVar13;" primitive_type (pointer_declarator "*piVar13" * identifier) ;) (declaration "int *piVar14;" primitive_type (pointer_declarator "*piVar14" * identifier) ;) (declaration "byte bVar15;" type_identifier identifier ;) (declaration "undefined4 uVar16;" type_identifier identifier ;) (declaration "undefined8 uVar17;" type_identifier identifier ;) (declaration "double dVar18;" primitive_type identifier ;) (declaration "ulonglong uVar19;" type_identifier identifier ;) (expression_statement "bVar15 = 0;" (assignment_expression "bVar15 = 0" identifier = number_literal) ;) (expression_statement "puVar11 = DAT_0002e524;" (assignment_expression "puVar11 = DAT_0002e524" identifier = identifier) ;) (if_statement "if (DAT_0002e524 < DAT_0002e528) {\n    do {\n      while (((puVar11[5] != 0 && (*(int *)(puVar11[5] + 0xc) < (int)puVar11[6])) &&\n             ((iVar6 = FUN_0001d480(&DAT_0002e5a0,*puVar11,puVar11[1]), iVar6 != 0 ||\n              ((DAT_0002e5a0 == 0 &&\n               (iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0))))))) {\n        puVar1 = puVar11 + 6;\n        piVar13 = puVar11 + 5;\n        puVar11 = puVar11 + 0x3f;\n        *(undefined4 *)(*piVar13 + 0xc) = *puVar1;\n        if (DAT_0002e528 <= puVar11) goto LAB_00013e60;\n      }\n      puVar11 = puVar11 + 0x3f;\n    } while (puVar11 < DAT_0002e528);\nLAB_00013e60:\n    piVar13 = DAT_0002e178;\n    if (DAT_0002e178 != (int *)0x0) goto LAB_00013e78;\n    if (DAT_0002e528 <= DAT_0002e524) {\n      return;\n    }\n  }\n  else {\n    piVar13 = DAT_0002e178;\n    if (DAT_0002e178 == (int *)0x0) {\n      return;\n    }\nLAB_00013e78:\n    do {\n      if (0 < piVar13[3]) {\n        __s = (void *)xmalloc(piVar13[3] << 2);\n        piVar13[5] = (int)__s;\n        memset(__s,0,piVar13[3] << 2);\n      }\n      piVar13 = (int *)*piVar13;\n    } while (piVar13 != (int *)0x0);\n    puVar4 = PTR_stdout_0002cfec;\n    piVar13 = DAT_0002e178;\n    if (DAT_0002e528 <= DAT_0002e524) goto joined_r0x00013f50;\n  }" if (parenthesized_expression "(DAT_0002e524 < DAT_0002e528)" ( (binary_expression "DAT_0002e524 < DAT_0002e528" identifier < identifier) )) (compound_statement "{\n    do {\n      while (((puVar11[5] != 0 && (*(int *)(puVar11[5] + 0xc) < (int)puVar11[6])) &&\n             ((iVar6 = FUN_0001d480(&DAT_0002e5a0,*puVar11,puVar11[1]), iVar6 != 0 ||\n              ((DAT_0002e5a0 == 0 &&\n               (iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0))))))) {\n        puVar1 = puVar11 + 6;\n        piVar13 = puVar11 + 5;\n        puVar11 = puVar11 + 0x3f;\n        *(undefined4 *)(*piVar13 + 0xc) = *puVar1;\n        if (DAT_0002e528 <= puVar11) goto LAB_00013e60;\n      }\n      puVar11 = puVar11 + 0x3f;\n    } while (puVar11 < DAT_0002e528);\nLAB_00013e60:\n    piVar13 = DAT_0002e178;\n    if (DAT_0002e178 != (int *)0x0) goto LAB_00013e78;\n    if (DAT_0002e528 <= DAT_0002e524) {\n      return;\n    }\n  }" { (do_statement "do {\n      while (((puVar11[5] != 0 && (*(int *)(puVar11[5] + 0xc) < (int)puVar11[6])) &&\n             ((iVar6 = FUN_0001d480(&DAT_0002e5a0,*puVar11,puVar11[1]), iVar6 != 0 ||\n              ((DAT_0002e5a0 == 0 &&\n               (iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0))))))) {\n        puVar1 = puVar11 + 6;\n        piVar13 = puVar11 + 5;\n        puVar11 = puVar11 + 0x3f;\n        *(undefined4 *)(*piVar13 + 0xc) = *puVar1;\n        if (DAT_0002e528 <= puVar11) goto LAB_00013e60;\n      }\n      puVar11 = puVar11 + 0x3f;\n    } while (puVar11 < DAT_0002e528);" do (compound_statement "{\n      while (((puVar11[5] != 0 && (*(int *)(puVar11[5] + 0xc) < (int)puVar11[6])) &&\n             ((iVar6 = FUN_0001d480(&DAT_0002e5a0,*puVar11,puVar11[1]), iVar6 != 0 ||\n              ((DAT_0002e5a0 == 0 &&\n               (iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0))))))) {\n        puVar1 = puVar11 + 6;\n        piVar13 = puVar11 + 5;\n        puVar11 = puVar11 + 0x3f;\n        *(undefined4 *)(*piVar13 + 0xc) = *puVar1;\n        if (DAT_0002e528 <= puVar11) goto LAB_00013e60;\n      }\n      puVar11 = puVar11 + 0x3f;\n    }" { (while_statement "while (((puVar11[5] != 0 && (*(int *)(puVar11[5] + 0xc) < (int)puVar11[6])) &&\n             ((iVar6 = FUN_0001d480(&DAT_0002e5a0,*puVar11,puVar11[1]), iVar6 != 0 ||\n              ((DAT_0002e5a0 == 0 &&\n               (iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0))))))) {\n        puVar1 = puVar11 + 6;\n        piVar13 = puVar11 + 5;\n        puVar11 = puVar11 + 0x3f;\n        *(undefined4 *)(*piVar13 + 0xc) = *puVar1;\n        if (DAT_0002e528 <= puVar11) goto LAB_00013e60;\n      }" while (parenthesized_expression "(((puVar11[5] != 0 && (*(int *)(puVar11[5] + 0xc) < (int)puVar11[6])) &&\n             ((iVar6 = FUN_0001d480(&DAT_0002e5a0,*puVar11,puVar11[1]), iVar6 != 0 ||\n              ((DAT_0002e5a0 == 0 &&\n               (iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0)))))))" ( (parenthesized_expression "((puVar11[5] != 0 && (*(int *)(puVar11[5] + 0xc) < (int)puVar11[6])) &&\n             ((iVar6 = FUN_0001d480(&DAT_0002e5a0,*puVar11,puVar11[1]), iVar6 != 0 ||\n              ((DAT_0002e5a0 == 0 &&\n               (iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0))))))" ( (binary_expression "(puVar11[5] != 0 && (*(int *)(puVar11[5] + 0xc) < (int)puVar11[6])) &&\n             ((iVar6 = FUN_0001d480(&DAT_0002e5a0,*puVar11,puVar11[1]), iVar6 != 0 ||\n              ((DAT_0002e5a0 == 0 &&\n               (iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0)))))" (parenthesized_expression "(puVar11[5] != 0 && (*(int *)(puVar11[5] + 0xc) < (int)puVar11[6]))" ( (binary_expression "puVar11[5] != 0 && (*(int *)(puVar11[5] + 0xc) < (int)puVar11[6])" (binary_expression "puVar11[5] != 0" (subscript_expression "puVar11[5]" identifier [ number_literal ]) != number_literal) && (parenthesized_expression "(*(int *)(puVar11[5] + 0xc) < (int)puVar11[6])" ( (binary_expression "*(int *)(puVar11[5] + 0xc) < (int)puVar11[6]" (pointer_expression "*(int *)(puVar11[5] + 0xc)" * (cast_expression "(int *)(puVar11[5] + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11[5] + 0xc)" ( (binary_expression "puVar11[5] + 0xc" (subscript_expression "puVar11[5]" identifier [ number_literal ]) + number_literal) )))) < (cast_expression "(int)puVar11[6]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "puVar11[6]" identifier [ number_literal ]))) ))) )) && (parenthesized_expression "((iVar6 = FUN_0001d480(&DAT_0002e5a0,*puVar11,puVar11[1]), iVar6 != 0 ||\n              ((DAT_0002e5a0 == 0 &&\n               (iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0)))))" ( (parenthesized_expression "(iVar6 = FUN_0001d480(&DAT_0002e5a0,*puVar11,puVar11[1]), iVar6 != 0 ||\n              ((DAT_0002e5a0 == 0 &&\n               (iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0))))" ( (comma_expression "iVar6 = FUN_0001d480(&DAT_0002e5a0,*puVar11,puVar11[1]), iVar6 != 0 ||\n              ((DAT_0002e5a0 == 0 &&\n               (iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0)))" (assignment_expression "iVar6 = FUN_0001d480(&DAT_0002e5a0,*puVar11,puVar11[1])" identifier = (call_expression "FUN_0001d480(&DAT_0002e5a0,*puVar11,puVar11[1])" identifier (argument_list "(&DAT_0002e5a0,*puVar11,puVar11[1])" ( (pointer_expression "&DAT_0002e5a0" & identifier) , (pointer_expression "*puVar11" * identifier) , (subscript_expression "puVar11[1]" identifier [ number_literal ]) )))) , (binary_expression "iVar6 != 0 ||\n              ((DAT_0002e5a0 == 0 &&\n               (iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0)))" (binary_expression "iVar6 != 0" identifier != number_literal) || (parenthesized_expression "((DAT_0002e5a0 == 0 &&\n               (iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0)))" ( (parenthesized_expression "(DAT_0002e5a0 == 0 &&\n               (iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0))" ( (binary_expression "DAT_0002e5a0 == 0 &&\n               (iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0)" (binary_expression "DAT_0002e5a0 == 0" identifier == number_literal) && (parenthesized_expression "(iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0)" ( (comma_expression "iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0" (assignment_expression "iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1])" identifier = (call_expression "FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1])" identifier (argument_list "(&DAT_0002e5ac,*puVar11,puVar11[1])" ( (pointer_expression "&DAT_0002e5ac" & identifier) , (pointer_expression "*puVar11" * identifier) , (subscript_expression "puVar11[1]" identifier [ number_literal ]) )))) , (binary_expression "iVar6 == 0" identifier == number_literal)) ))) )) )))) )) ))) )) )) (compound_statement "{\n        puVar1 = puVar11 + 6;\n        piVar13 = puVar11 + 5;\n        puVar11 = puVar11 + 0x3f;\n        *(undefined4 *)(*piVar13 + 0xc) = *puVar1;\n        if (DAT_0002e528 <= puVar11) goto LAB_00013e60;\n      }" { (expression_statement "puVar1 = puVar11 + 6;" (assignment_expression "puVar1 = puVar11 + 6" identifier = (binary_expression "puVar11 + 6" identifier + number_literal)) ;) (expression_statement "piVar13 = puVar11 + 5;" (assignment_expression "piVar13 = puVar11 + 5" identifier = (binary_expression "puVar11 + 5" identifier + number_literal)) ;) (expression_statement "puVar11 = puVar11 + 0x3f;" (assignment_expression "puVar11 = puVar11 + 0x3f" identifier = (binary_expression "puVar11 + 0x3f" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(*piVar13 + 0xc) = *puVar1;" (assignment_expression "*(undefined4 *)(*piVar13 + 0xc) = *puVar1" (pointer_expression "*(undefined4 *)(*piVar13 + 0xc)" * (cast_expression "(undefined4 *)(*piVar13 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar13 + 0xc)" ( (binary_expression "*piVar13 + 0xc" (pointer_expression "*piVar13" * identifier) + number_literal) )))) = (pointer_expression "*puVar1" * identifier)) ;) (if_statement "if (DAT_0002e528 <= puVar11) goto LAB_00013e60;" if (parenthesized_expression "(DAT_0002e528 <= puVar11)" ( (binary_expression "DAT_0002e528 <= puVar11" identifier <= identifier) )) (goto_statement "goto LAB_00013e60;" goto statement_identifier ;)) })) (expression_statement "puVar11 = puVar11 + 0x3f;" (assignment_expression "puVar11 = puVar11 + 0x3f" identifier = (binary_expression "puVar11 + 0x3f" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar11 < DAT_0002e528)" ( (binary_expression "puVar11 < DAT_0002e528" identifier < identifier) )) ;) (labeled_statement "LAB_00013e60:\n    piVar13 = DAT_0002e178;" statement_identifier : (expression_statement "piVar13 = DAT_0002e178;" (assignment_expression "piVar13 = DAT_0002e178" identifier = identifier) ;)) (if_statement "if (DAT_0002e178 != (int *)0x0) goto LAB_00013e78;" if (parenthesized_expression "(DAT_0002e178 != (int *)0x0)" ( (binary_expression "DAT_0002e178 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00013e78;" goto statement_identifier ;)) (if_statement "if (DAT_0002e528 <= DAT_0002e524) {\n      return;\n    }" if (parenthesized_expression "(DAT_0002e528 <= DAT_0002e524)" ( (binary_expression "DAT_0002e528 <= DAT_0002e524" identifier <= identifier) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) }) (else_clause "else {\n    piVar13 = DAT_0002e178;\n    if (DAT_0002e178 == (int *)0x0) {\n      return;\n    }\nLAB_00013e78:\n    do {\n      if (0 < piVar13[3]) {\n        __s = (void *)xmalloc(piVar13[3] << 2);\n        piVar13[5] = (int)__s;\n        memset(__s,0,piVar13[3] << 2);\n      }\n      piVar13 = (int *)*piVar13;\n    } while (piVar13 != (int *)0x0);\n    puVar4 = PTR_stdout_0002cfec;\n    piVar13 = DAT_0002e178;\n    if (DAT_0002e528 <= DAT_0002e524) goto joined_r0x00013f50;\n  }" else (compound_statement "{\n    piVar13 = DAT_0002e178;\n    if (DAT_0002e178 == (int *)0x0) {\n      return;\n    }\nLAB_00013e78:\n    do {\n      if (0 < piVar13[3]) {\n        __s = (void *)xmalloc(piVar13[3] << 2);\n        piVar13[5] = (int)__s;\n        memset(__s,0,piVar13[3] << 2);\n      }\n      piVar13 = (int *)*piVar13;\n    } while (piVar13 != (int *)0x0);\n    puVar4 = PTR_stdout_0002cfec;\n    piVar13 = DAT_0002e178;\n    if (DAT_0002e528 <= DAT_0002e524) goto joined_r0x00013f50;\n  }" { (expression_statement "piVar13 = DAT_0002e178;" (assignment_expression "piVar13 = DAT_0002e178" identifier = identifier) ;) (if_statement "if (DAT_0002e178 == (int *)0x0) {\n      return;\n    }" if (parenthesized_expression "(DAT_0002e178 == (int *)0x0)" ( (binary_expression "DAT_0002e178 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) (labeled_statement "LAB_00013e78:\n    do {\n      if (0 < piVar13[3]) {\n        __s = (void *)xmalloc(piVar13[3] << 2);\n        piVar13[5] = (int)__s;\n        memset(__s,0,piVar13[3] << 2);\n      }\n      piVar13 = (int *)*piVar13;\n    } while (piVar13 != (int *)0x0);" statement_identifier : (do_statement "do {\n      if (0 < piVar13[3]) {\n        __s = (void *)xmalloc(piVar13[3] << 2);\n        piVar13[5] = (int)__s;\n        memset(__s,0,piVar13[3] << 2);\n      }\n      piVar13 = (int *)*piVar13;\n    } while (piVar13 != (int *)0x0);" do (compound_statement "{\n      if (0 < piVar13[3]) {\n        __s = (void *)xmalloc(piVar13[3] << 2);\n        piVar13[5] = (int)__s;\n        memset(__s,0,piVar13[3] << 2);\n      }\n      piVar13 = (int *)*piVar13;\n    }" { (if_statement "if (0 < piVar13[3]) {\n        __s = (void *)xmalloc(piVar13[3] << 2);\n        piVar13[5] = (int)__s;\n        memset(__s,0,piVar13[3] << 2);\n      }" if (parenthesized_expression "(0 < piVar13[3])" ( (binary_expression "0 < piVar13[3]" number_literal < (subscript_expression "piVar13[3]" identifier [ number_literal ])) )) (compound_statement "{\n        __s = (void *)xmalloc(piVar13[3] << 2);\n        piVar13[5] = (int)__s;\n        memset(__s,0,piVar13[3] << 2);\n      }" { (expression_statement "__s = (void *)xmalloc(piVar13[3] << 2);" (assignment_expression "__s = (void *)xmalloc(piVar13[3] << 2)" identifier = (cast_expression "(void *)xmalloc(piVar13[3] << 2)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(piVar13[3] << 2)" identifier (argument_list "(piVar13[3] << 2)" ( (binary_expression "piVar13[3] << 2" (subscript_expression "piVar13[3]" identifier [ number_literal ]) << number_literal) ))))) ;) (expression_statement "piVar13[5] = (int)__s;" (assignment_expression "piVar13[5] = (int)__s" (subscript_expression "piVar13[5]" identifier [ number_literal ]) = (cast_expression "(int)__s" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "memset(__s,0,piVar13[3] << 2);" (call_expression "memset(__s,0,piVar13[3] << 2)" identifier (argument_list "(__s,0,piVar13[3] << 2)" ( identifier , number_literal , (binary_expression "piVar13[3] << 2" (subscript_expression "piVar13[3]" identifier [ number_literal ]) << number_literal) ))) ;) })) (expression_statement "piVar13 = (int *)*piVar13;" (assignment_expression "piVar13 = (int *)*piVar13" identifier = (cast_expression "(int *)*piVar13" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar13" * identifier))) ;) }) while (parenthesized_expression "(piVar13 != (int *)0x0)" ( (binary_expression "piVar13 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;)) (expression_statement "puVar4 = PTR_stdout_0002cfec;" (assignment_expression "puVar4 = PTR_stdout_0002cfec" identifier = identifier) ;) (expression_statement "piVar13 = DAT_0002e178;" (assignment_expression "piVar13 = DAT_0002e178" identifier = identifier) ;) (if_statement "if (DAT_0002e528 <= DAT_0002e524) goto joined_r0x00013f50;" if (parenthesized_expression "(DAT_0002e528 <= DAT_0002e524)" ( (binary_expression "DAT_0002e528 <= DAT_0002e524" identifier <= identifier) )) (goto_statement "goto joined_r0x00013f50;" goto statement_identifier ;)) }))) (expression_statement "uVar17 = 0x2e5a0;" (assignment_expression "uVar17 = 0x2e5a0" identifier = number_literal) ;) (expression_statement "puVar11 = DAT_0002e524;" (assignment_expression "puVar11 = DAT_0002e524" identifier = identifier) ;) (labeled_statement "LAB_00013edb:\n  do {\n    if (((puVar11[5] != 0) && (*(int *)(puVar11[5] + 0xc) != 0)) &&\n       ((iVar6 = FUN_0001d480((int)uVar17,*puVar11,puVar11[1]), iVar6 != 0 ||\n        ((DAT_0002e5a0 == 0 && (iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0)\n         ))))) {\n      iVar6 = puVar11[5];\n      iVar12 = puVar11[6];\n      iVar2 = puVar11[8];\n      piVar13 = (int *)(iVar6 + 8);\n      *piVar13 = *piVar13 + iVar2;\n      puVar1 = (undefined4 *)(*(int *)(iVar6 + 0x14) + -4 + iVar12 * 4);\n      piVar13 = (int *)*puVar1;\n      if (piVar13 == (int *)0x0) {\n        *puVar1 = puVar11;\n      }\n      else {\n        if (piVar13[1] == 0 && *piVar13 == 0) {\n          piVar13[8] = piVar13[8] + iVar2;\n          puVar11 = puVar11 + 0x3f;\n          puVar4 = PTR_stdout_0002cfec;\n          piVar13 = DAT_0002e178;\n          if (DAT_0002e528 <= puVar11) break;\n          goto LAB_00013edb;\n        }\n        piVar9 = (int *)xmalloc(0xfc);\n        piVar14 = piVar9;\n        for (iVar6 = 0x3f; iVar6 != 0; iVar6 = iVar6 + -1) {\n          *piVar14 = *piVar13;\n          piVar13 = piVar13 + (uint)bVar15 * -2 + 1;\n          piVar14 = piVar14 + (uint)bVar15 * -2 + 1;\n        }\n        *piVar9 = 0;\n        piVar9[1] = 0;\n        piVar9[8] = piVar9[8] + puVar11[8];\n        *(int **)(*(int *)(puVar11[5] + 0x14) + -4 + puVar11[6] * 4) = piVar9;\n      }\n    }\n    puVar11 = puVar11 + 0x3f;\n    puVar4 = PTR_stdout_0002cfec;\n    piVar13 = DAT_0002e178;\n  } while (puVar11 < DAT_0002e528);" statement_identifier : (do_statement "do {\n    if (((puVar11[5] != 0) && (*(int *)(puVar11[5] + 0xc) != 0)) &&\n       ((iVar6 = FUN_0001d480((int)uVar17,*puVar11,puVar11[1]), iVar6 != 0 ||\n        ((DAT_0002e5a0 == 0 && (iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0)\n         ))))) {\n      iVar6 = puVar11[5];\n      iVar12 = puVar11[6];\n      iVar2 = puVar11[8];\n      piVar13 = (int *)(iVar6 + 8);\n      *piVar13 = *piVar13 + iVar2;\n      puVar1 = (undefined4 *)(*(int *)(iVar6 + 0x14) + -4 + iVar12 * 4);\n      piVar13 = (int *)*puVar1;\n      if (piVar13 == (int *)0x0) {\n        *puVar1 = puVar11;\n      }\n      else {\n        if (piVar13[1] == 0 && *piVar13 == 0) {\n          piVar13[8] = piVar13[8] + iVar2;\n          puVar11 = puVar11 + 0x3f;\n          puVar4 = PTR_stdout_0002cfec;\n          piVar13 = DAT_0002e178;\n          if (DAT_0002e528 <= puVar11) break;\n          goto LAB_00013edb;\n        }\n        piVar9 = (int *)xmalloc(0xfc);\n        piVar14 = piVar9;\n        for (iVar6 = 0x3f; iVar6 != 0; iVar6 = iVar6 + -1) {\n          *piVar14 = *piVar13;\n          piVar13 = piVar13 + (uint)bVar15 * -2 + 1;\n          piVar14 = piVar14 + (uint)bVar15 * -2 + 1;\n        }\n        *piVar9 = 0;\n        piVar9[1] = 0;\n        piVar9[8] = piVar9[8] + puVar11[8];\n        *(int **)(*(int *)(puVar11[5] + 0x14) + -4 + puVar11[6] * 4) = piVar9;\n      }\n    }\n    puVar11 = puVar11 + 0x3f;\n    puVar4 = PTR_stdout_0002cfec;\n    piVar13 = DAT_0002e178;\n  } while (puVar11 < DAT_0002e528);" do (compound_statement "{\n    if (((puVar11[5] != 0) && (*(int *)(puVar11[5] + 0xc) != 0)) &&\n       ((iVar6 = FUN_0001d480((int)uVar17,*puVar11,puVar11[1]), iVar6 != 0 ||\n        ((DAT_0002e5a0 == 0 && (iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0)\n         ))))) {\n      iVar6 = puVar11[5];\n      iVar12 = puVar11[6];\n      iVar2 = puVar11[8];\n      piVar13 = (int *)(iVar6 + 8);\n      *piVar13 = *piVar13 + iVar2;\n      puVar1 = (undefined4 *)(*(int *)(iVar6 + 0x14) + -4 + iVar12 * 4);\n      piVar13 = (int *)*puVar1;\n      if (piVar13 == (int *)0x0) {\n        *puVar1 = puVar11;\n      }\n      else {\n        if (piVar13[1] == 0 && *piVar13 == 0) {\n          piVar13[8] = piVar13[8] + iVar2;\n          puVar11 = puVar11 + 0x3f;\n          puVar4 = PTR_stdout_0002cfec;\n          piVar13 = DAT_0002e178;\n          if (DAT_0002e528 <= puVar11) break;\n          goto LAB_00013edb;\n        }\n        piVar9 = (int *)xmalloc(0xfc);\n        piVar14 = piVar9;\n        for (iVar6 = 0x3f; iVar6 != 0; iVar6 = iVar6 + -1) {\n          *piVar14 = *piVar13;\n          piVar13 = piVar13 + (uint)bVar15 * -2 + 1;\n          piVar14 = piVar14 + (uint)bVar15 * -2 + 1;\n        }\n        *piVar9 = 0;\n        piVar9[1] = 0;\n        piVar9[8] = piVar9[8] + puVar11[8];\n        *(int **)(*(int *)(puVar11[5] + 0x14) + -4 + puVar11[6] * 4) = piVar9;\n      }\n    }\n    puVar11 = puVar11 + 0x3f;\n    puVar4 = PTR_stdout_0002cfec;\n    piVar13 = DAT_0002e178;\n  }" { (if_statement "if (((puVar11[5] != 0) && (*(int *)(puVar11[5] + 0xc) != 0)) &&\n       ((iVar6 = FUN_0001d480((int)uVar17,*puVar11,puVar11[1]), iVar6 != 0 ||\n        ((DAT_0002e5a0 == 0 && (iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0)\n         ))))) {\n      iVar6 = puVar11[5];\n      iVar12 = puVar11[6];\n      iVar2 = puVar11[8];\n      piVar13 = (int *)(iVar6 + 8);\n      *piVar13 = *piVar13 + iVar2;\n      puVar1 = (undefined4 *)(*(int *)(iVar6 + 0x14) + -4 + iVar12 * 4);\n      piVar13 = (int *)*puVar1;\n      if (piVar13 == (int *)0x0) {\n        *puVar1 = puVar11;\n      }\n      else {\n        if (piVar13[1] == 0 && *piVar13 == 0) {\n          piVar13[8] = piVar13[8] + iVar2;\n          puVar11 = puVar11 + 0x3f;\n          puVar4 = PTR_stdout_0002cfec;\n          piVar13 = DAT_0002e178;\n          if (DAT_0002e528 <= puVar11) break;\n          goto LAB_00013edb;\n        }\n        piVar9 = (int *)xmalloc(0xfc);\n        piVar14 = piVar9;\n        for (iVar6 = 0x3f; iVar6 != 0; iVar6 = iVar6 + -1) {\n          *piVar14 = *piVar13;\n          piVar13 = piVar13 + (uint)bVar15 * -2 + 1;\n          piVar14 = piVar14 + (uint)bVar15 * -2 + 1;\n        }\n        *piVar9 = 0;\n        piVar9[1] = 0;\n        piVar9[8] = piVar9[8] + puVar11[8];\n        *(int **)(*(int *)(puVar11[5] + 0x14) + -4 + puVar11[6] * 4) = piVar9;\n      }\n    }" if (parenthesized_expression "(((puVar11[5] != 0) && (*(int *)(puVar11[5] + 0xc) != 0)) &&\n       ((iVar6 = FUN_0001d480((int)uVar17,*puVar11,puVar11[1]), iVar6 != 0 ||\n        ((DAT_0002e5a0 == 0 && (iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0)\n         )))))" ( (binary_expression "((puVar11[5] != 0) && (*(int *)(puVar11[5] + 0xc) != 0)) &&\n       ((iVar6 = FUN_0001d480((int)uVar17,*puVar11,puVar11[1]), iVar6 != 0 ||\n        ((DAT_0002e5a0 == 0 && (iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0)\n         ))))" (parenthesized_expression "((puVar11[5] != 0) && (*(int *)(puVar11[5] + 0xc) != 0))" ( (binary_expression "(puVar11[5] != 0) && (*(int *)(puVar11[5] + 0xc) != 0)" (parenthesized_expression "(puVar11[5] != 0)" ( (binary_expression "puVar11[5] != 0" (subscript_expression "puVar11[5]" identifier [ number_literal ]) != number_literal) )) && (parenthesized_expression "(*(int *)(puVar11[5] + 0xc) != 0)" ( (binary_expression "*(int *)(puVar11[5] + 0xc) != 0" (pointer_expression "*(int *)(puVar11[5] + 0xc)" * (cast_expression "(int *)(puVar11[5] + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11[5] + 0xc)" ( (binary_expression "puVar11[5] + 0xc" (subscript_expression "puVar11[5]" identifier [ number_literal ]) + number_literal) )))) != number_literal) ))) )) && (parenthesized_expression "((iVar6 = FUN_0001d480((int)uVar17,*puVar11,puVar11[1]), iVar6 != 0 ||\n        ((DAT_0002e5a0 == 0 && (iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0)\n         ))))" ( (parenthesized_expression "(iVar6 = FUN_0001d480((int)uVar17,*puVar11,puVar11[1]), iVar6 != 0 ||\n        ((DAT_0002e5a0 == 0 && (iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0)\n         )))" ( (comma_expression "iVar6 = FUN_0001d480((int)uVar17,*puVar11,puVar11[1]), iVar6 != 0 ||\n        ((DAT_0002e5a0 == 0 && (iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0)\n         ))" (assignment_expression "iVar6 = FUN_0001d480((int)uVar17,*puVar11,puVar11[1])" identifier = (call_expression "FUN_0001d480((int)uVar17,*puVar11,puVar11[1])" identifier (argument_list "((int)uVar17,*puVar11,puVar11[1])" ( (cast_expression "(int)uVar17" ( (type_descriptor "int" primitive_type) ) identifier) , (pointer_expression "*puVar11" * identifier) , (subscript_expression "puVar11[1]" identifier [ number_literal ]) )))) , (binary_expression "iVar6 != 0 ||\n        ((DAT_0002e5a0 == 0 && (iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0)\n         ))" (binary_expression "iVar6 != 0" identifier != number_literal) || (parenthesized_expression "((DAT_0002e5a0 == 0 && (iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0)\n         ))" ( (parenthesized_expression "(DAT_0002e5a0 == 0 && (iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0)\n         )" ( (binary_expression "DAT_0002e5a0 == 0 && (iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0)" (binary_expression "DAT_0002e5a0 == 0" identifier == number_literal) && (parenthesized_expression "(iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0)" ( (comma_expression "iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0" (assignment_expression "iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1])" identifier = (call_expression "FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1])" identifier (argument_list "(&DAT_0002e5ac,*puVar11,puVar11[1])" ( (pointer_expression "&DAT_0002e5ac" & identifier) , (pointer_expression "*puVar11" * identifier) , (subscript_expression "puVar11[1]" identifier [ number_literal ]) )))) , (binary_expression "iVar6 == 0" identifier == number_literal)) ))) )) )))) )) ))) )) (compound_statement "{\n      iVar6 = puVar11[5];\n      iVar12 = puVar11[6];\n      iVar2 = puVar11[8];\n      piVar13 = (int *)(iVar6 + 8);\n      *piVar13 = *piVar13 + iVar2;\n      puVar1 = (undefined4 *)(*(int *)(iVar6 + 0x14) + -4 + iVar12 * 4);\n      piVar13 = (int *)*puVar1;\n      if (piVar13 == (int *)0x0) {\n        *puVar1 = puVar11;\n      }\n      else {\n        if (piVar13[1] == 0 && *piVar13 == 0) {\n          piVar13[8] = piVar13[8] + iVar2;\n          puVar11 = puVar11 + 0x3f;\n          puVar4 = PTR_stdout_0002cfec;\n          piVar13 = DAT_0002e178;\n          if (DAT_0002e528 <= puVar11) break;\n          goto LAB_00013edb;\n        }\n        piVar9 = (int *)xmalloc(0xfc);\n        piVar14 = piVar9;\n        for (iVar6 = 0x3f; iVar6 != 0; iVar6 = iVar6 + -1) {\n          *piVar14 = *piVar13;\n          piVar13 = piVar13 + (uint)bVar15 * -2 + 1;\n          piVar14 = piVar14 + (uint)bVar15 * -2 + 1;\n        }\n        *piVar9 = 0;\n        piVar9[1] = 0;\n        piVar9[8] = piVar9[8] + puVar11[8];\n        *(int **)(*(int *)(puVar11[5] + 0x14) + -4 + puVar11[6] * 4) = piVar9;\n      }\n    }" { (expression_statement "iVar6 = puVar11[5];" (assignment_expression "iVar6 = puVar11[5]" identifier = (subscript_expression "puVar11[5]" identifier [ number_literal ])) ;) (expression_statement "iVar12 = puVar11[6];" (assignment_expression "iVar12 = puVar11[6]" identifier = (subscript_expression "puVar11[6]" identifier [ number_literal ])) ;) (expression_statement "iVar2 = puVar11[8];" (assignment_expression "iVar2 = puVar11[8]" identifier = (subscript_expression "puVar11[8]" identifier [ number_literal ])) ;) (expression_statement "piVar13 = (int *)(iVar6 + 8);" (assignment_expression "piVar13 = (int *)(iVar6 + 8)" identifier = (cast_expression "(int *)(iVar6 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 8)" ( (binary_expression "iVar6 + 8" identifier + number_literal) )))) ;) (expression_statement "*piVar13 = *piVar13 + iVar2;" (assignment_expression "*piVar13 = *piVar13 + iVar2" (pointer_expression "*piVar13" * identifier) = (binary_expression "*piVar13 + iVar2" (pointer_expression "*piVar13" * identifier) + identifier)) ;) (expression_statement "puVar1 = (undefined4 *)(*(int *)(iVar6 + 0x14) + -4 + iVar12 * 4);" (assignment_expression "puVar1 = (undefined4 *)(*(int *)(iVar6 + 0x14) + -4 + iVar12 * 4)" identifier = (cast_expression "(undefined4 *)(*(int *)(iVar6 + 0x14) + -4 + iVar12 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar6 + 0x14) + -4 + iVar12 * 4)" ( (binary_expression "*(int *)(iVar6 + 0x14) + -4 + iVar12 * 4" (binary_expression "*(int *)(iVar6 + 0x14) + -4" (pointer_expression "*(int *)(iVar6 + 0x14)" * (cast_expression "(int *)(iVar6 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x14)" ( (binary_expression "iVar6 + 0x14" identifier + number_literal) )))) + number_literal) + (binary_expression "iVar12 * 4" identifier * number_literal)) )))) ;) (expression_statement "piVar13 = (int *)*puVar1;" (assignment_expression "piVar13 = (int *)*puVar1" identifier = (cast_expression "(int *)*puVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar1" * identifier))) ;) (if_statement "if (piVar13 == (int *)0x0) {\n        *puVar1 = puVar11;\n      }\n      else {\n        if (piVar13[1] == 0 && *piVar13 == 0) {\n          piVar13[8] = piVar13[8] + iVar2;\n          puVar11 = puVar11 + 0x3f;\n          puVar4 = PTR_stdout_0002cfec;\n          piVar13 = DAT_0002e178;\n          if (DAT_0002e528 <= puVar11) break;\n          goto LAB_00013edb;\n        }\n        piVar9 = (int *)xmalloc(0xfc);\n        piVar14 = piVar9;\n        for (iVar6 = 0x3f; iVar6 != 0; iVar6 = iVar6 + -1) {\n          *piVar14 = *piVar13;\n          piVar13 = piVar13 + (uint)bVar15 * -2 + 1;\n          piVar14 = piVar14 + (uint)bVar15 * -2 + 1;\n        }\n        *piVar9 = 0;\n        piVar9[1] = 0;\n        piVar9[8] = piVar9[8] + puVar11[8];\n        *(int **)(*(int *)(puVar11[5] + 0x14) + -4 + puVar11[6] * 4) = piVar9;\n      }" if (parenthesized_expression "(piVar13 == (int *)0x0)" ( (binary_expression "piVar13 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        *puVar1 = puVar11;\n      }" { (expression_statement "*puVar1 = puVar11;" (assignment_expression "*puVar1 = puVar11" (pointer_expression "*puVar1" * identifier) = identifier) ;) }) (else_clause "else {\n        if (piVar13[1] == 0 && *piVar13 == 0) {\n          piVar13[8] = piVar13[8] + iVar2;\n          puVar11 = puVar11 + 0x3f;\n          puVar4 = PTR_stdout_0002cfec;\n          piVar13 = DAT_0002e178;\n          if (DAT_0002e528 <= puVar11) break;\n          goto LAB_00013edb;\n        }\n        piVar9 = (int *)xmalloc(0xfc);\n        piVar14 = piVar9;\n        for (iVar6 = 0x3f; iVar6 != 0; iVar6 = iVar6 + -1) {\n          *piVar14 = *piVar13;\n          piVar13 = piVar13 + (uint)bVar15 * -2 + 1;\n          piVar14 = piVar14 + (uint)bVar15 * -2 + 1;\n        }\n        *piVar9 = 0;\n        piVar9[1] = 0;\n        piVar9[8] = piVar9[8] + puVar11[8];\n        *(int **)(*(int *)(puVar11[5] + 0x14) + -4 + puVar11[6] * 4) = piVar9;\n      }" else (compound_statement "{\n        if (piVar13[1] == 0 && *piVar13 == 0) {\n          piVar13[8] = piVar13[8] + iVar2;\n          puVar11 = puVar11 + 0x3f;\n          puVar4 = PTR_stdout_0002cfec;\n          piVar13 = DAT_0002e178;\n          if (DAT_0002e528 <= puVar11) break;\n          goto LAB_00013edb;\n        }\n        piVar9 = (int *)xmalloc(0xfc);\n        piVar14 = piVar9;\n        for (iVar6 = 0x3f; iVar6 != 0; iVar6 = iVar6 + -1) {\n          *piVar14 = *piVar13;\n          piVar13 = piVar13 + (uint)bVar15 * -2 + 1;\n          piVar14 = piVar14 + (uint)bVar15 * -2 + 1;\n        }\n        *piVar9 = 0;\n        piVar9[1] = 0;\n        piVar9[8] = piVar9[8] + puVar11[8];\n        *(int **)(*(int *)(puVar11[5] + 0x14) + -4 + puVar11[6] * 4) = piVar9;\n      }" { (if_statement "if (piVar13[1] == 0 && *piVar13 == 0) {\n          piVar13[8] = piVar13[8] + iVar2;\n          puVar11 = puVar11 + 0x3f;\n          puVar4 = PTR_stdout_0002cfec;\n          piVar13 = DAT_0002e178;\n          if (DAT_0002e528 <= puVar11) break;\n          goto LAB_00013edb;\n        }" if (parenthesized_expression "(piVar13[1] == 0 && *piVar13 == 0)" ( (binary_expression "piVar13[1] == 0 && *piVar13 == 0" (binary_expression "piVar13[1] == 0" (subscript_expression "piVar13[1]" identifier [ number_literal ]) == number_literal) && (binary_expression "*piVar13 == 0" (pointer_expression "*piVar13" * identifier) == number_literal)) )) (compound_statement "{\n          piVar13[8] = piVar13[8] + iVar2;\n          puVar11 = puVar11 + 0x3f;\n          puVar4 = PTR_stdout_0002cfec;\n          piVar13 = DAT_0002e178;\n          if (DAT_0002e528 <= puVar11) break;\n          goto LAB_00013edb;\n        }" { (expression_statement "piVar13[8] = piVar13[8] + iVar2;" (assignment_expression "piVar13[8] = piVar13[8] + iVar2" (subscript_expression "piVar13[8]" identifier [ number_literal ]) = (binary_expression "piVar13[8] + iVar2" (subscript_expression "piVar13[8]" identifier [ number_literal ]) + identifier)) ;) (expression_statement "puVar11 = puVar11 + 0x3f;" (assignment_expression "puVar11 = puVar11 + 0x3f" identifier = (binary_expression "puVar11 + 0x3f" identifier + number_literal)) ;) (expression_statement "puVar4 = PTR_stdout_0002cfec;" (assignment_expression "puVar4 = PTR_stdout_0002cfec" identifier = identifier) ;) (expression_statement "piVar13 = DAT_0002e178;" (assignment_expression "piVar13 = DAT_0002e178" identifier = identifier) ;) (if_statement "if (DAT_0002e528 <= puVar11) break;" if (parenthesized_expression "(DAT_0002e528 <= puVar11)" ( (binary_expression "DAT_0002e528 <= puVar11" identifier <= identifier) )) (break_statement "break;" break ;)) (goto_statement "goto LAB_00013edb;" goto statement_identifier ;) })) (expression_statement "piVar9 = (int *)xmalloc(0xfc);" (assignment_expression "piVar9 = (int *)xmalloc(0xfc)" identifier = (cast_expression "(int *)xmalloc(0xfc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(0xfc)" identifier (argument_list "(0xfc)" ( number_literal ))))) ;) (expression_statement "piVar14 = piVar9;" (assignment_expression "piVar14 = piVar9" identifier = identifier) ;) (for_statement "for (iVar6 = 0x3f; iVar6 != 0; iVar6 = iVar6 + -1) {\n          *piVar14 = *piVar13;\n          piVar13 = piVar13 + (uint)bVar15 * -2 + 1;\n          piVar14 = piVar14 + (uint)bVar15 * -2 + 1;\n        }" for ( (assignment_expression "iVar6 = 0x3f" identifier = number_literal) ; (binary_expression "iVar6 != 0" identifier != number_literal) ; (assignment_expression "iVar6 = iVar6 + -1" identifier = (binary_expression "iVar6 + -1" identifier + number_literal)) ) (compound_statement "{\n          *piVar14 = *piVar13;\n          piVar13 = piVar13 + (uint)bVar15 * -2 + 1;\n          piVar14 = piVar14 + (uint)bVar15 * -2 + 1;\n        }" { (expression_statement "*piVar14 = *piVar13;" (assignment_expression "*piVar14 = *piVar13" (pointer_expression "*piVar14" * identifier) = (pointer_expression "*piVar13" * identifier)) ;) (expression_statement "piVar13 = piVar13 + (uint)bVar15 * -2 + 1;" (assignment_expression "piVar13 = piVar13 + (uint)bVar15 * -2 + 1" identifier = (binary_expression "piVar13 + (uint)bVar15 * -2 + 1" (binary_expression "piVar13 + (uint)bVar15 * -2" identifier + (binary_expression "(uint)bVar15 * -2" (cast_expression "(uint)bVar15" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "piVar14 = piVar14 + (uint)bVar15 * -2 + 1;" (assignment_expression "piVar14 = piVar14 + (uint)bVar15 * -2 + 1" identifier = (binary_expression "piVar14 + (uint)bVar15 * -2 + 1" (binary_expression "piVar14 + (uint)bVar15 * -2" identifier + (binary_expression "(uint)bVar15 * -2" (cast_expression "(uint)bVar15" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) })) (expression_statement "*piVar9 = 0;" (assignment_expression "*piVar9 = 0" (pointer_expression "*piVar9" * identifier) = number_literal) ;) (expression_statement "piVar9[1] = 0;" (assignment_expression "piVar9[1] = 0" (subscript_expression "piVar9[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar9[8] = piVar9[8] + puVar11[8];" (assignment_expression "piVar9[8] = piVar9[8] + puVar11[8]" (subscript_expression "piVar9[8]" identifier [ number_literal ]) = (binary_expression "piVar9[8] + puVar11[8]" (subscript_expression "piVar9[8]" identifier [ number_literal ]) + (subscript_expression "puVar11[8]" identifier [ number_literal ]))) ;) (expression_statement "*(int **)(*(int *)(puVar11[5] + 0x14) + -4 + puVar11[6] * 4) = piVar9;" (assignment_expression "*(int **)(*(int *)(puVar11[5] + 0x14) + -4 + puVar11[6] * 4) = piVar9" (pointer_expression "*(int **)(*(int *)(puVar11[5] + 0x14) + -4 + puVar11[6] * 4)" * (cast_expression "(int **)(*(int *)(puVar11[5] + 0x14) + -4 + puVar11[6] * 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar11[5] + 0x14) + -4 + puVar11[6] * 4)" ( (binary_expression "*(int *)(puVar11[5] + 0x14) + -4 + puVar11[6] * 4" (binary_expression "*(int *)(puVar11[5] + 0x14) + -4" (pointer_expression "*(int *)(puVar11[5] + 0x14)" * (cast_expression "(int *)(puVar11[5] + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11[5] + 0x14)" ( (binary_expression "puVar11[5] + 0x14" (subscript_expression "puVar11[5]" identifier [ number_literal ]) + number_literal) )))) + number_literal) + (binary_expression "puVar11[6] * 4" (subscript_expression "puVar11[6]" identifier [ number_literal ]) * number_literal)) )))) = identifier) ;) }))) })) (expression_statement "puVar11 = puVar11 + 0x3f;" (assignment_expression "puVar11 = puVar11 + 0x3f" identifier = (binary_expression "puVar11 + 0x3f" identifier + number_literal)) ;) (expression_statement "puVar4 = PTR_stdout_0002cfec;" (assignment_expression "puVar4 = PTR_stdout_0002cfec" identifier = identifier) ;) (expression_statement "piVar13 = DAT_0002e178;" (assignment_expression "piVar13 = DAT_0002e178" identifier = identifier) ;) }) while (parenthesized_expression "(puVar11 < DAT_0002e528)" ( (binary_expression "puVar11 < DAT_0002e528" identifier < identifier) )) ;)) (labeled_statement "joined_r0x00013f50:\n  do {\n    puVar5 = PTR_stdout_0002cfec;\n    if (piVar13 == (int *)0x0) {\n      PTR_stdout_0002cfec = puVar4;\n      return;\n    }\n    PTR_stdout_0002cfec = puVar4;\n    if ((piVar13[3] != 0) && ((DAT_0002d1c0 == 0 || (piVar13[2] != 0)))) {\n      DAT_0002d4f4 = 0;\n      DAT_0002d4f8 = 0;\n      piVar14 = piVar13;\n      __stream = (FILE *)FUN_0001c940(piVar13,0x10,FUN_00013230,piVar13);\n      uVar8 = DAT_0002d148;\n      if (__stream != (FILE *)0x0) {\n        if ((int)DAT_0002d148 < 1) {\n          piVar9 = (int *)piVar13[5];\n        }\n        else {\n          pcVar7 = (char *)dcgettext("gprof","\n\nTop %d Lines:\n\n     Line      Count\n\n",5);\n          fprintf(__stream,pcVar7,uVar8);\n          qsort((void *)piVar13[5],piVar13[3],4,FUN_00013170);\n          uVar8 = DAT_0002d148;\n          if (piVar13[3] <= (int)DAT_0002d148) {\n            uVar8 = piVar13[3];\n          }\n          piVar9 = (int *)piVar13[5];\n          uVar19 = (ulonglong)uVar8;\n          if (((0 < (int)uVar8) && (iVar6 = *piVar9, iVar6 != 0)) &&\n             (piVar10 = *(int **)(iVar6 + 0x20), piVar10 != (int *)0x0)) {\n            iVar12 = 0;\n            do {\n              iVar12 = iVar12 + 1;\n              piVar14 = piVar10;\n              fprintf(__stream,"%9d %10lu\n",*(undefined4 *)(iVar6 + 0x18),piVar10);\n              piVar9 = (int *)piVar13[5];\n              if ((iVar12 == (int)uVar19) || (iVar6 = piVar9[iVar12], iVar6 == 0)) break;\n              piVar10 = *(int **)(iVar6 + 0x20);\n            } while (piVar10 != (int *)0x0);\n          }\n        }\n        free(piVar9);\n        piVar13[5] = 0;\n        uVar16 = 5;\n        pcVar7 = (char *)dcgettext("gprof","\nExecution Summary:\n\n",5);\n        fprintf(__stream,pcVar7,uVar16,piVar14);\n        iVar6 = DAT_0002d4f8;\n        pcVar7 = (char *)dcgettext("gprof","%9ld   Executable lines in this file\n",5);\n        fprintf(__stream,pcVar7,iVar6);\n        iVar6 = DAT_0002d4f4;\n        pcVar7 = (char *)dcgettext("gprof","%9ld   Lines executed\n",5);\n        fprintf(__stream,pcVar7,iVar6);\n        fVar3 = _DAT_000221d8;\n        if (DAT_0002d4f8 != 0) {\n          fVar3 = ((float)DAT_0002d4f4 * _DAT_000221d8) / (float)DAT_0002d4f8;\n        }\n        dVar18 = (double)fVar3;\n        pcVar7 = (char *)dcgettext("gprof","%9.2f   Percent of the file executed\n",5,piVar14,dVar18\n                                  );\n        fprintf(__stream,pcVar7,SUB84(dVar18,0),(int)((ulonglong)dVar18 >> 0x20));\n        iVar6 = piVar13[2];\n        pcVar7 = (char *)dcgettext("gprof","\n%9lu   Total number of line executions\n",5);\n        fprintf(__stream,pcVar7,iVar6);\n        if (DAT_0002d4f8 == 0) {\n          dVar18 = 0.0;\n        }\n        else {\n          dVar18 = (double)(uint)piVar13[2] / (double)DAT_0002d4f8;\n        }\n        pcVar7 = (char *)dcgettext("gprof","%9.2f   Average executions per line\n",5,piVar14,dVar18)\n        ;\n        fprintf(__stream,pcVar7,SUB84(dVar18,0),(int)((ulonglong)dVar18 >> 0x20));\n        if (*(FILE **)puVar5 != __stream) {\n          fclose(__stream);\n        }\n      }\n    }\n    puVar4 = PTR_stdout_0002cfec;\n    piVar13 = (int *)*piVar13;\n    PTR_stdout_0002cfec = puVar5;\n  } while( true );" statement_identifier : (do_statement "do {\n    puVar5 = PTR_stdout_0002cfec;\n    if (piVar13 == (int *)0x0) {\n      PTR_stdout_0002cfec = puVar4;\n      return;\n    }\n    PTR_stdout_0002cfec = puVar4;\n    if ((piVar13[3] != 0) && ((DAT_0002d1c0 == 0 || (piVar13[2] != 0)))) {\n      DAT_0002d4f4 = 0;\n      DAT_0002d4f8 = 0;\n      piVar14 = piVar13;\n      __stream = (FILE *)FUN_0001c940(piVar13,0x10,FUN_00013230,piVar13);\n      uVar8 = DAT_0002d148;\n      if (__stream != (FILE *)0x0) {\n        if ((int)DAT_0002d148 < 1) {\n          piVar9 = (int *)piVar13[5];\n        }\n        else {\n          pcVar7 = (char *)dcgettext("gprof","\n\nTop %d Lines:\n\n     Line      Count\n\n",5);\n          fprintf(__stream,pcVar7,uVar8);\n          qsort((void *)piVar13[5],piVar13[3],4,FUN_00013170);\n          uVar8 = DAT_0002d148;\n          if (piVar13[3] <= (int)DAT_0002d148) {\n            uVar8 = piVar13[3];\n          }\n          piVar9 = (int *)piVar13[5];\n          uVar19 = (ulonglong)uVar8;\n          if (((0 < (int)uVar8) && (iVar6 = *piVar9, iVar6 != 0)) &&\n             (piVar10 = *(int **)(iVar6 + 0x20), piVar10 != (int *)0x0)) {\n            iVar12 = 0;\n            do {\n              iVar12 = iVar12 + 1;\n              piVar14 = piVar10;\n              fprintf(__stream,"%9d %10lu\n",*(undefined4 *)(iVar6 + 0x18),piVar10);\n              piVar9 = (int *)piVar13[5];\n              if ((iVar12 == (int)uVar19) || (iVar6 = piVar9[iVar12], iVar6 == 0)) break;\n              piVar10 = *(int **)(iVar6 + 0x20);\n            } while (piVar10 != (int *)0x0);\n          }\n        }\n        free(piVar9);\n        piVar13[5] = 0;\n        uVar16 = 5;\n        pcVar7 = (char *)dcgettext("gprof","\nExecution Summary:\n\n",5);\n        fprintf(__stream,pcVar7,uVar16,piVar14);\n        iVar6 = DAT_0002d4f8;\n        pcVar7 = (char *)dcgettext("gprof","%9ld   Executable lines in this file\n",5);\n        fprintf(__stream,pcVar7,iVar6);\n        iVar6 = DAT_0002d4f4;\n        pcVar7 = (char *)dcgettext("gprof","%9ld   Lines executed\n",5);\n        fprintf(__stream,pcVar7,iVar6);\n        fVar3 = _DAT_000221d8;\n        if (DAT_0002d4f8 != 0) {\n          fVar3 = ((float)DAT_0002d4f4 * _DAT_000221d8) / (float)DAT_0002d4f8;\n        }\n        dVar18 = (double)fVar3;\n        pcVar7 = (char *)dcgettext("gprof","%9.2f   Percent of the file executed\n",5,piVar14,dVar18\n                                  );\n        fprintf(__stream,pcVar7,SUB84(dVar18,0),(int)((ulonglong)dVar18 >> 0x20));\n        iVar6 = piVar13[2];\n        pcVar7 = (char *)dcgettext("gprof","\n%9lu   Total number of line executions\n",5);\n        fprintf(__stream,pcVar7,iVar6);\n        if (DAT_0002d4f8 == 0) {\n          dVar18 = 0.0;\n        }\n        else {\n          dVar18 = (double)(uint)piVar13[2] / (double)DAT_0002d4f8;\n        }\n        pcVar7 = (char *)dcgettext("gprof","%9.2f   Average executions per line\n",5,piVar14,dVar18)\n        ;\n        fprintf(__stream,pcVar7,SUB84(dVar18,0),(int)((ulonglong)dVar18 >> 0x20));\n        if (*(FILE **)puVar5 != __stream) {\n          fclose(__stream);\n        }\n      }\n    }\n    puVar4 = PTR_stdout_0002cfec;\n    piVar13 = (int *)*piVar13;\n    PTR_stdout_0002cfec = puVar5;\n  } while( true );" do (compound_statement "{\n    puVar5 = PTR_stdout_0002cfec;\n    if (piVar13 == (int *)0x0) {\n      PTR_stdout_0002cfec = puVar4;\n      return;\n    }\n    PTR_stdout_0002cfec = puVar4;\n    if ((piVar13[3] != 0) && ((DAT_0002d1c0 == 0 || (piVar13[2] != 0)))) {\n      DAT_0002d4f4 = 0;\n      DAT_0002d4f8 = 0;\n      piVar14 = piVar13;\n      __stream = (FILE *)FUN_0001c940(piVar13,0x10,FUN_00013230,piVar13);\n      uVar8 = DAT_0002d148;\n      if (__stream != (FILE *)0x0) {\n        if ((int)DAT_0002d148 < 1) {\n          piVar9 = (int *)piVar13[5];\n        }\n        else {\n          pcVar7 = (char *)dcgettext("gprof","\n\nTop %d Lines:\n\n     Line      Count\n\n",5);\n          fprintf(__stream,pcVar7,uVar8);\n          qsort((void *)piVar13[5],piVar13[3],4,FUN_00013170);\n          uVar8 = DAT_0002d148;\n          if (piVar13[3] <= (int)DAT_0002d148) {\n            uVar8 = piVar13[3];\n          }\n          piVar9 = (int *)piVar13[5];\n          uVar19 = (ulonglong)uVar8;\n          if (((0 < (int)uVar8) && (iVar6 = *piVar9, iVar6 != 0)) &&\n             (piVar10 = *(int **)(iVar6 + 0x20), piVar10 != (int *)0x0)) {\n            iVar12 = 0;\n            do {\n              iVar12 = iVar12 + 1;\n              piVar14 = piVar10;\n              fprintf(__stream,"%9d %10lu\n",*(undefined4 *)(iVar6 + 0x18),piVar10);\n              piVar9 = (int *)piVar13[5];\n              if ((iVar12 == (int)uVar19) || (iVar6 = piVar9[iVar12], iVar6 == 0)) break;\n              piVar10 = *(int **)(iVar6 + 0x20);\n            } while (piVar10 != (int *)0x0);\n          }\n        }\n        free(piVar9);\n        piVar13[5] = 0;\n        uVar16 = 5;\n        pcVar7 = (char *)dcgettext("gprof","\nExecution Summary:\n\n",5);\n        fprintf(__stream,pcVar7,uVar16,piVar14);\n        iVar6 = DAT_0002d4f8;\n        pcVar7 = (char *)dcgettext("gprof","%9ld   Executable lines in this file\n",5);\n        fprintf(__stream,pcVar7,iVar6);\n        iVar6 = DAT_0002d4f4;\n        pcVar7 = (char *)dcgettext("gprof","%9ld   Lines executed\n",5);\n        fprintf(__stream,pcVar7,iVar6);\n        fVar3 = _DAT_000221d8;\n        if (DAT_0002d4f8 != 0) {\n          fVar3 = ((float)DAT_0002d4f4 * _DAT_000221d8) / (float)DAT_0002d4f8;\n        }\n        dVar18 = (double)fVar3;\n        pcVar7 = (char *)dcgettext("gprof","%9.2f   Percent of the file executed\n",5,piVar14,dVar18\n                                  );\n        fprintf(__stream,pcVar7,SUB84(dVar18,0),(int)((ulonglong)dVar18 >> 0x20));\n        iVar6 = piVar13[2];\n        pcVar7 = (char *)dcgettext("gprof","\n%9lu   Total number of line executions\n",5);\n        fprintf(__stream,pcVar7,iVar6);\n        if (DAT_0002d4f8 == 0) {\n          dVar18 = 0.0;\n        }\n        else {\n          dVar18 = (double)(uint)piVar13[2] / (double)DAT_0002d4f8;\n        }\n        pcVar7 = (char *)dcgettext("gprof","%9.2f   Average executions per line\n",5,piVar14,dVar18)\n        ;\n        fprintf(__stream,pcVar7,SUB84(dVar18,0),(int)((ulonglong)dVar18 >> 0x20));\n        if (*(FILE **)puVar5 != __stream) {\n          fclose(__stream);\n        }\n      }\n    }\n    puVar4 = PTR_stdout_0002cfec;\n    piVar13 = (int *)*piVar13;\n    PTR_stdout_0002cfec = puVar5;\n  }" { (expression_statement "puVar5 = PTR_stdout_0002cfec;" (assignment_expression "puVar5 = PTR_stdout_0002cfec" identifier = identifier) ;) (if_statement "if (piVar13 == (int *)0x0) {\n      PTR_stdout_0002cfec = puVar4;\n      return;\n    }" if (parenthesized_expression "(piVar13 == (int *)0x0)" ( (binary_expression "piVar13 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      PTR_stdout_0002cfec = puVar4;\n      return;\n    }" { (expression_statement "PTR_stdout_0002cfec = puVar4;" (assignment_expression "PTR_stdout_0002cfec = puVar4" identifier = identifier) ;) (return_statement "return;" return ;) })) (expression_statement "PTR_stdout_0002cfec = puVar4;" (assignment_expression "PTR_stdout_0002cfec = puVar4" identifier = identifier) ;) (if_statement "if ((piVar13[3] != 0) && ((DAT_0002d1c0 == 0 || (piVar13[2] != 0)))) {\n      DAT_0002d4f4 = 0;\n      DAT_0002d4f8 = 0;\n      piVar14 = piVar13;\n      __stream = (FILE *)FUN_0001c940(piVar13,0x10,FUN_00013230,piVar13);\n      uVar8 = DAT_0002d148;\n      if (__stream != (FILE *)0x0) {\n        if ((int)DAT_0002d148 < 1) {\n          piVar9 = (int *)piVar13[5];\n        }\n        else {\n          pcVar7 = (char *)dcgettext("gprof","\n\nTop %d Lines:\n\n     Line      Count\n\n",5);\n          fprintf(__stream,pcVar7,uVar8);\n          qsort((void *)piVar13[5],piVar13[3],4,FUN_00013170);\n          uVar8 = DAT_0002d148;\n          if (piVar13[3] <= (int)DAT_0002d148) {\n            uVar8 = piVar13[3];\n          }\n          piVar9 = (int *)piVar13[5];\n          uVar19 = (ulonglong)uVar8;\n          if (((0 < (int)uVar8) && (iVar6 = *piVar9, iVar6 != 0)) &&\n             (piVar10 = *(int **)(iVar6 + 0x20), piVar10 != (int *)0x0)) {\n            iVar12 = 0;\n            do {\n              iVar12 = iVar12 + 1;\n              piVar14 = piVar10;\n              fprintf(__stream,"%9d %10lu\n",*(undefined4 *)(iVar6 + 0x18),piVar10);\n              piVar9 = (int *)piVar13[5];\n              if ((iVar12 == (int)uVar19) || (iVar6 = piVar9[iVar12], iVar6 == 0)) break;\n              piVar10 = *(int **)(iVar6 + 0x20);\n            } while (piVar10 != (int *)0x0);\n          }\n        }\n        free(piVar9);\n        piVar13[5] = 0;\n        uVar16 = 5;\n        pcVar7 = (char *)dcgettext("gprof","\nExecution Summary:\n\n",5);\n        fprintf(__stream,pcVar7,uVar16,piVar14);\n        iVar6 = DAT_0002d4f8;\n        pcVar7 = (char *)dcgettext("gprof","%9ld   Executable lines in this file\n",5);\n        fprintf(__stream,pcVar7,iVar6);\n        iVar6 = DAT_0002d4f4;\n        pcVar7 = (char *)dcgettext("gprof","%9ld   Lines executed\n",5);\n        fprintf(__stream,pcVar7,iVar6);\n        fVar3 = _DAT_000221d8;\n        if (DAT_0002d4f8 != 0) {\n          fVar3 = ((float)DAT_0002d4f4 * _DAT_000221d8) / (float)DAT_0002d4f8;\n        }\n        dVar18 = (double)fVar3;\n        pcVar7 = (char *)dcgettext("gprof","%9.2f   Percent of the file executed\n",5,piVar14,dVar18\n                                  );\n        fprintf(__stream,pcVar7,SUB84(dVar18,0),(int)((ulonglong)dVar18 >> 0x20));\n        iVar6 = piVar13[2];\n        pcVar7 = (char *)dcgettext("gprof","\n%9lu   Total number of line executions\n",5);\n        fprintf(__stream,pcVar7,iVar6);\n        if (DAT_0002d4f8 == 0) {\n          dVar18 = 0.0;\n        }\n        else {\n          dVar18 = (double)(uint)piVar13[2] / (double)DAT_0002d4f8;\n        }\n        pcVar7 = (char *)dcgettext("gprof","%9.2f   Average executions per line\n",5,piVar14,dVar18)\n        ;\n        fprintf(__stream,pcVar7,SUB84(dVar18,0),(int)((ulonglong)dVar18 >> 0x20));\n        if (*(FILE **)puVar5 != __stream) {\n          fclose(__stream);\n        }\n      }\n    }" if (parenthesized_expression "((piVar13[3] != 0) && ((DAT_0002d1c0 == 0 || (piVar13[2] != 0))))" ( (binary_expression "(piVar13[3] != 0) && ((DAT_0002d1c0 == 0 || (piVar13[2] != 0)))" (parenthesized_expression "(piVar13[3] != 0)" ( (binary_expression "piVar13[3] != 0" (subscript_expression "piVar13[3]" identifier [ number_literal ]) != number_literal) )) && (parenthesized_expression "((DAT_0002d1c0 == 0 || (piVar13[2] != 0)))" ( (parenthesized_expression "(DAT_0002d1c0 == 0 || (piVar13[2] != 0))" ( (binary_expression "DAT_0002d1c0 == 0 || (piVar13[2] != 0)" (binary_expression "DAT_0002d1c0 == 0" identifier == number_literal) || (parenthesized_expression "(piVar13[2] != 0)" ( (binary_expression "piVar13[2] != 0" (subscript_expression "piVar13[2]" identifier [ number_literal ]) != number_literal) ))) )) ))) )) (compound_statement "{\n      DAT_0002d4f4 = 0;\n      DAT_0002d4f8 = 0;\n      piVar14 = piVar13;\n      __stream = (FILE *)FUN_0001c940(piVar13,0x10,FUN_00013230,piVar13);\n      uVar8 = DAT_0002d148;\n      if (__stream != (FILE *)0x0) {\n        if ((int)DAT_0002d148 < 1) {\n          piVar9 = (int *)piVar13[5];\n        }\n        else {\n          pcVar7 = (char *)dcgettext("gprof","\n\nTop %d Lines:\n\n     Line      Count\n\n",5);\n          fprintf(__stream,pcVar7,uVar8);\n          qsort((void *)piVar13[5],piVar13[3],4,FUN_00013170);\n          uVar8 = DAT_0002d148;\n          if (piVar13[3] <= (int)DAT_0002d148) {\n            uVar8 = piVar13[3];\n          }\n          piVar9 = (int *)piVar13[5];\n          uVar19 = (ulonglong)uVar8;\n          if (((0 < (int)uVar8) && (iVar6 = *piVar9, iVar6 != 0)) &&\n             (piVar10 = *(int **)(iVar6 + 0x20), piVar10 != (int *)0x0)) {\n            iVar12 = 0;\n            do {\n              iVar12 = iVar12 + 1;\n              piVar14 = piVar10;\n              fprintf(__stream,"%9d %10lu\n",*(undefined4 *)(iVar6 + 0x18),piVar10);\n              piVar9 = (int *)piVar13[5];\n              if ((iVar12 == (int)uVar19) || (iVar6 = piVar9[iVar12], iVar6 == 0)) break;\n              piVar10 = *(int **)(iVar6 + 0x20);\n            } while (piVar10 != (int *)0x0);\n          }\n        }\n        free(piVar9);\n        piVar13[5] = 0;\n        uVar16 = 5;\n        pcVar7 = (char *)dcgettext("gprof","\nExecution Summary:\n\n",5);\n        fprintf(__stream,pcVar7,uVar16,piVar14);\n        iVar6 = DAT_0002d4f8;\n        pcVar7 = (char *)dcgettext("gprof","%9ld   Executable lines in this file\n",5);\n        fprintf(__stream,pcVar7,iVar6);\n        iVar6 = DAT_0002d4f4;\n        pcVar7 = (char *)dcgettext("gprof","%9ld   Lines executed\n",5);\n        fprintf(__stream,pcVar7,iVar6);\n        fVar3 = _DAT_000221d8;\n        if (DAT_0002d4f8 != 0) {\n          fVar3 = ((float)DAT_0002d4f4 * _DAT_000221d8) / (float)DAT_0002d4f8;\n        }\n        dVar18 = (double)fVar3;\n        pcVar7 = (char *)dcgettext("gprof","%9.2f   Percent of the file executed\n",5,piVar14,dVar18\n                                  );\n        fprintf(__stream,pcVar7,SUB84(dVar18,0),(int)((ulonglong)dVar18 >> 0x20));\n        iVar6 = piVar13[2];\n        pcVar7 = (char *)dcgettext("gprof","\n%9lu   Total number of line executions\n",5);\n        fprintf(__stream,pcVar7,iVar6);\n        if (DAT_0002d4f8 == 0) {\n          dVar18 = 0.0;\n        }\n        else {\n          dVar18 = (double)(uint)piVar13[2] / (double)DAT_0002d4f8;\n        }\n        pcVar7 = (char *)dcgettext("gprof","%9.2f   Average executions per line\n",5,piVar14,dVar18)\n        ;\n        fprintf(__stream,pcVar7,SUB84(dVar18,0),(int)((ulonglong)dVar18 >> 0x20));\n        if (*(FILE **)puVar5 != __stream) {\n          fclose(__stream);\n        }\n      }\n    }" { (expression_statement "DAT_0002d4f4 = 0;" (assignment_expression "DAT_0002d4f4 = 0" identifier = number_literal) ;) (expression_statement "DAT_0002d4f8 = 0;" (assignment_expression "DAT_0002d4f8 = 0" identifier = number_literal) ;) (expression_statement "piVar14 = piVar13;" (assignment_expression "piVar14 = piVar13" identifier = identifier) ;) (expression_statement "__stream = (FILE *)FUN_0001c940(piVar13,0x10,FUN_00013230,piVar13);" (assignment_expression "__stream = (FILE *)FUN_0001c940(piVar13,0x10,FUN_00013230,piVar13)" identifier = (cast_expression "(FILE *)FUN_0001c940(piVar13,0x10,FUN_00013230,piVar13)" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001c940(piVar13,0x10,FUN_00013230,piVar13)" identifier (argument_list "(piVar13,0x10,FUN_00013230,piVar13)" ( identifier , number_literal , identifier , identifier ))))) ;) (expression_statement "uVar8 = DAT_0002d148;" (assignment_expression "uVar8 = DAT_0002d148" identifier = identifier) ;) (if_statement "if (__stream != (FILE *)0x0) {\n        if ((int)DAT_0002d148 < 1) {\n          piVar9 = (int *)piVar13[5];\n        }\n        else {\n          pcVar7 = (char *)dcgettext("gprof","\n\nTop %d Lines:\n\n     Line      Count\n\n",5);\n          fprintf(__stream,pcVar7,uVar8);\n          qsort((void *)piVar13[5],piVar13[3],4,FUN_00013170);\n          uVar8 = DAT_0002d148;\n          if (piVar13[3] <= (int)DAT_0002d148) {\n            uVar8 = piVar13[3];\n          }\n          piVar9 = (int *)piVar13[5];\n          uVar19 = (ulonglong)uVar8;\n          if (((0 < (int)uVar8) && (iVar6 = *piVar9, iVar6 != 0)) &&\n             (piVar10 = *(int **)(iVar6 + 0x20), piVar10 != (int *)0x0)) {\n            iVar12 = 0;\n            do {\n              iVar12 = iVar12 + 1;\n              piVar14 = piVar10;\n              fprintf(__stream,"%9d %10lu\n",*(undefined4 *)(iVar6 + 0x18),piVar10);\n              piVar9 = (int *)piVar13[5];\n              if ((iVar12 == (int)uVar19) || (iVar6 = piVar9[iVar12], iVar6 == 0)) break;\n              piVar10 = *(int **)(iVar6 + 0x20);\n            } while (piVar10 != (int *)0x0);\n          }\n        }\n        free(piVar9);\n        piVar13[5] = 0;\n        uVar16 = 5;\n        pcVar7 = (char *)dcgettext("gprof","\nExecution Summary:\n\n",5);\n        fprintf(__stream,pcVar7,uVar16,piVar14);\n        iVar6 = DAT_0002d4f8;\n        pcVar7 = (char *)dcgettext("gprof","%9ld   Executable lines in this file\n",5);\n        fprintf(__stream,pcVar7,iVar6);\n        iVar6 = DAT_0002d4f4;\n        pcVar7 = (char *)dcgettext("gprof","%9ld   Lines executed\n",5);\n        fprintf(__stream,pcVar7,iVar6);\n        fVar3 = _DAT_000221d8;\n        if (DAT_0002d4f8 != 0) {\n          fVar3 = ((float)DAT_0002d4f4 * _DAT_000221d8) / (float)DAT_0002d4f8;\n        }\n        dVar18 = (double)fVar3;\n        pcVar7 = (char *)dcgettext("gprof","%9.2f   Percent of the file executed\n",5,piVar14,dVar18\n                                  );\n        fprintf(__stream,pcVar7,SUB84(dVar18,0),(int)((ulonglong)dVar18 >> 0x20));\n        iVar6 = piVar13[2];\n        pcVar7 = (char *)dcgettext("gprof","\n%9lu   Total number of line executions\n",5);\n        fprintf(__stream,pcVar7,iVar6);\n        if (DAT_0002d4f8 == 0) {\n          dVar18 = 0.0;\n        }\n        else {\n          dVar18 = (double)(uint)piVar13[2] / (double)DAT_0002d4f8;\n        }\n        pcVar7 = (char *)dcgettext("gprof","%9.2f   Average executions per line\n",5,piVar14,dVar18)\n        ;\n        fprintf(__stream,pcVar7,SUB84(dVar18,0),(int)((ulonglong)dVar18 >> 0x20));\n        if (*(FILE **)puVar5 != __stream) {\n          fclose(__stream);\n        }\n      }" if (parenthesized_expression "(__stream != (FILE *)0x0)" ( (binary_expression "__stream != (FILE *)0x0" identifier != (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if ((int)DAT_0002d148 < 1) {\n          piVar9 = (int *)piVar13[5];\n        }\n        else {\n          pcVar7 = (char *)dcgettext("gprof","\n\nTop %d Lines:\n\n     Line      Count\n\n",5);\n          fprintf(__stream,pcVar7,uVar8);\n          qsort((void *)piVar13[5],piVar13[3],4,FUN_00013170);\n          uVar8 = DAT_0002d148;\n          if (piVar13[3] <= (int)DAT_0002d148) {\n            uVar8 = piVar13[3];\n          }\n          piVar9 = (int *)piVar13[5];\n          uVar19 = (ulonglong)uVar8;\n          if (((0 < (int)uVar8) && (iVar6 = *piVar9, iVar6 != 0)) &&\n             (piVar10 = *(int **)(iVar6 + 0x20), piVar10 != (int *)0x0)) {\n            iVar12 = 0;\n            do {\n              iVar12 = iVar12 + 1;\n              piVar14 = piVar10;\n              fprintf(__stream,"%9d %10lu\n",*(undefined4 *)(iVar6 + 0x18),piVar10);\n              piVar9 = (int *)piVar13[5];\n              if ((iVar12 == (int)uVar19) || (iVar6 = piVar9[iVar12], iVar6 == 0)) break;\n              piVar10 = *(int **)(iVar6 + 0x20);\n            } while (piVar10 != (int *)0x0);\n          }\n        }\n        free(piVar9);\n        piVar13[5] = 0;\n        uVar16 = 5;\n        pcVar7 = (char *)dcgettext("gprof","\nExecution Summary:\n\n",5);\n        fprintf(__stream,pcVar7,uVar16,piVar14);\n        iVar6 = DAT_0002d4f8;\n        pcVar7 = (char *)dcgettext("gprof","%9ld   Executable lines in this file\n",5);\n        fprintf(__stream,pcVar7,iVar6);\n        iVar6 = DAT_0002d4f4;\n        pcVar7 = (char *)dcgettext("gprof","%9ld   Lines executed\n",5);\n        fprintf(__stream,pcVar7,iVar6);\n        fVar3 = _DAT_000221d8;\n        if (DAT_0002d4f8 != 0) {\n          fVar3 = ((float)DAT_0002d4f4 * _DAT_000221d8) / (float)DAT_0002d4f8;\n        }\n        dVar18 = (double)fVar3;\n        pcVar7 = (char *)dcgettext("gprof","%9.2f   Percent of the file executed\n",5,piVar14,dVar18\n                                  );\n        fprintf(__stream,pcVar7,SUB84(dVar18,0),(int)((ulonglong)dVar18 >> 0x20));\n        iVar6 = piVar13[2];\n        pcVar7 = (char *)dcgettext("gprof","\n%9lu   Total number of line executions\n",5);\n        fprintf(__stream,pcVar7,iVar6);\n        if (DAT_0002d4f8 == 0) {\n          dVar18 = 0.0;\n        }\n        else {\n          dVar18 = (double)(uint)piVar13[2] / (double)DAT_0002d4f8;\n        }\n        pcVar7 = (char *)dcgettext("gprof","%9.2f   Average executions per line\n",5,piVar14,dVar18)\n        ;\n        fprintf(__stream,pcVar7,SUB84(dVar18,0),(int)((ulonglong)dVar18 >> 0x20));\n        if (*(FILE **)puVar5 != __stream) {\n          fclose(__stream);\n        }\n      }" { (if_statement "if ((int)DAT_0002d148 < 1) {\n          piVar9 = (int *)piVar13[5];\n        }\n        else {\n          pcVar7 = (char *)dcgettext("gprof","\n\nTop %d Lines:\n\n     Line      Count\n\n",5);\n          fprintf(__stream,pcVar7,uVar8);\n          qsort((void *)piVar13[5],piVar13[3],4,FUN_00013170);\n          uVar8 = DAT_0002d148;\n          if (piVar13[3] <= (int)DAT_0002d148) {\n            uVar8 = piVar13[3];\n          }\n          piVar9 = (int *)piVar13[5];\n          uVar19 = (ulonglong)uVar8;\n          if (((0 < (int)uVar8) && (iVar6 = *piVar9, iVar6 != 0)) &&\n             (piVar10 = *(int **)(iVar6 + 0x20), piVar10 != (int *)0x0)) {\n            iVar12 = 0;\n            do {\n              iVar12 = iVar12 + 1;\n              piVar14 = piVar10;\n              fprintf(__stream,"%9d %10lu\n",*(undefined4 *)(iVar6 + 0x18),piVar10);\n              piVar9 = (int *)piVar13[5];\n              if ((iVar12 == (int)uVar19) || (iVar6 = piVar9[iVar12], iVar6 == 0)) break;\n              piVar10 = *(int **)(iVar6 + 0x20);\n            } while (piVar10 != (int *)0x0);\n          }\n        }" if (parenthesized_expression "((int)DAT_0002d148 < 1)" ( (binary_expression "(int)DAT_0002d148 < 1" (cast_expression "(int)DAT_0002d148" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          piVar9 = (int *)piVar13[5];\n        }" { (expression_statement "piVar9 = (int *)piVar13[5];" (assignment_expression "piVar9 = (int *)piVar13[5]" identifier = (cast_expression "(int *)piVar13[5]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar13[5]" identifier [ number_literal ]))) ;) }) (else_clause "else {\n          pcVar7 = (char *)dcgettext("gprof","\n\nTop %d Lines:\n\n     Line      Count\n\n",5);\n          fprintf(__stream,pcVar7,uVar8);\n          qsort((void *)piVar13[5],piVar13[3],4,FUN_00013170);\n          uVar8 = DAT_0002d148;\n          if (piVar13[3] <= (int)DAT_0002d148) {\n            uVar8 = piVar13[3];\n          }\n          piVar9 = (int *)piVar13[5];\n          uVar19 = (ulonglong)uVar8;\n          if (((0 < (int)uVar8) && (iVar6 = *piVar9, iVar6 != 0)) &&\n             (piVar10 = *(int **)(iVar6 + 0x20), piVar10 != (int *)0x0)) {\n            iVar12 = 0;\n            do {\n              iVar12 = iVar12 + 1;\n              piVar14 = piVar10;\n              fprintf(__stream,"%9d %10lu\n",*(undefined4 *)(iVar6 + 0x18),piVar10);\n              piVar9 = (int *)piVar13[5];\n              if ((iVar12 == (int)uVar19) || (iVar6 = piVar9[iVar12], iVar6 == 0)) break;\n              piVar10 = *(int **)(iVar6 + 0x20);\n            } while (piVar10 != (int *)0x0);\n          }\n        }" else (compound_statement "{\n          pcVar7 = (char *)dcgettext("gprof","\n\nTop %d Lines:\n\n     Line      Count\n\n",5);\n          fprintf(__stream,pcVar7,uVar8);\n          qsort((void *)piVar13[5],piVar13[3],4,FUN_00013170);\n          uVar8 = DAT_0002d148;\n          if (piVar13[3] <= (int)DAT_0002d148) {\n            uVar8 = piVar13[3];\n          }\n          piVar9 = (int *)piVar13[5];\n          uVar19 = (ulonglong)uVar8;\n          if (((0 < (int)uVar8) && (iVar6 = *piVar9, iVar6 != 0)) &&\n             (piVar10 = *(int **)(iVar6 + 0x20), piVar10 != (int *)0x0)) {\n            iVar12 = 0;\n            do {\n              iVar12 = iVar12 + 1;\n              piVar14 = piVar10;\n              fprintf(__stream,"%9d %10lu\n",*(undefined4 *)(iVar6 + 0x18),piVar10);\n              piVar9 = (int *)piVar13[5];\n              if ((iVar12 == (int)uVar19) || (iVar6 = piVar9[iVar12], iVar6 == 0)) break;\n              piVar10 = *(int **)(iVar6 + 0x20);\n            } while (piVar10 != (int *)0x0);\n          }\n        }" { (expression_statement "pcVar7 = (char *)dcgettext("gprof","\n\nTop %d Lines:\n\n     Line      Count\n\n",5);" (assignment_expression "pcVar7 = (char *)dcgettext("gprof","\n\nTop %d Lines:\n\n     Line      Count\n\n",5)" identifier = (cast_expression "(char *)dcgettext("gprof","\n\nTop %d Lines:\n\n     Line      Count\n\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext("gprof","\n\nTop %d Lines:\n\n     Line      Count\n\n",5)" identifier (argument_list "("gprof","\n\nTop %d Lines:\n\n     Line      Count\n\n",5)" ( (string_literal ""gprof"" " string_content ") , (string_literal ""\n\nTop %d Lines:\n\n     Line      Count\n\n"" " escape_sequence escape_sequence string_content escape_sequence escape_sequence string_content escape_sequence escape_sequence ") , number_literal ))))) ;) (expression_statement "fprintf(__stream,pcVar7,uVar8);" (call_expression "fprintf(__stream,pcVar7,uVar8)" identifier (argument_list "(__stream,pcVar7,uVar8)" ( identifier , identifier , identifier ))) ;) (expression_statement "qsort((void *)piVar13[5],piVar13[3],4,FUN_00013170);" (call_expression "qsort((void *)piVar13[5],piVar13[3],4,FUN_00013170)" identifier (argument_list "((void *)piVar13[5],piVar13[3],4,FUN_00013170)" ( (cast_expression "(void *)piVar13[5]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar13[5]" identifier [ number_literal ])) , (subscript_expression "piVar13[3]" identifier [ number_literal ]) , number_literal , identifier ))) ;) (expression_statement "uVar8 = DAT_0002d148;" (assignment_expression "uVar8 = DAT_0002d148" identifier = identifier) ;) (if_statement "if (piVar13[3] <= (int)DAT_0002d148) {\n            uVar8 = piVar13[3];\n          }" if (parenthesized_expression "(piVar13[3] <= (int)DAT_0002d148)" ( (binary_expression "piVar13[3] <= (int)DAT_0002d148" (subscript_expression "piVar13[3]" identifier [ number_literal ]) <= (cast_expression "(int)DAT_0002d148" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            uVar8 = piVar13[3];\n          }" { (expression_statement "uVar8 = piVar13[3];" (assignment_expression "uVar8 = piVar13[3]" identifier = (subscript_expression "piVar13[3]" identifier [ number_literal ])) ;) })) (expression_statement "piVar9 = (int *)piVar13[5];" (assignment_expression "piVar9 = (int *)piVar13[5]" identifier = (cast_expression "(int *)piVar13[5]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar13[5]" identifier [ number_literal ]))) ;) (expression_statement "uVar19 = (ulonglong)uVar8;" (assignment_expression "uVar19 = (ulonglong)uVar8" identifier = (cast_expression "(ulonglong)uVar8" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) ;) (if_statement "if (((0 < (int)uVar8) && (iVar6 = *piVar9, iVar6 != 0)) &&\n             (piVar10 = *(int **)(iVar6 + 0x20), piVar10 != (int *)0x0)) {\n            iVar12 = 0;\n            do {\n              iVar12 = iVar12 + 1;\n              piVar14 = piVar10;\n              fprintf(__stream,"%9d %10lu\n",*(undefined4 *)(iVar6 + 0x18),piVar10);\n              piVar9 = (int *)piVar13[5];\n              if ((iVar12 == (int)uVar19) || (iVar6 = piVar9[iVar12], iVar6 == 0)) break;\n              piVar10 = *(int **)(iVar6 + 0x20);\n            } while (piVar10 != (int *)0x0);\n          }" if (parenthesized_expression "(((0 < (int)uVar8) && (iVar6 = *piVar9, iVar6 != 0)) &&\n             (piVar10 = *(int **)(iVar6 + 0x20), piVar10 != (int *)0x0))" ( (binary_expression "((0 < (int)uVar8) && (iVar6 = *piVar9, iVar6 != 0)) &&\n             (piVar10 = *(int **)(iVar6 + 0x20), piVar10 != (int *)0x0)" (parenthesized_expression "((0 < (int)uVar8) && (iVar6 = *piVar9, iVar6 != 0))" ( (binary_expression "(0 < (int)uVar8) && (iVar6 = *piVar9, iVar6 != 0)" (parenthesized_expression "(0 < (int)uVar8)" ( (binary_expression "0 < (int)uVar8" number_literal < (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "(iVar6 = *piVar9, iVar6 != 0)" ( (comma_expression "iVar6 = *piVar9, iVar6 != 0" (assignment_expression "iVar6 = *piVar9" identifier = (pointer_expression "*piVar9" * identifier)) , (binary_expression "iVar6 != 0" identifier != number_literal)) ))) )) && (parenthesized_expression "(piVar10 = *(int **)(iVar6 + 0x20), piVar10 != (int *)0x0)" ( (comma_expression "piVar10 = *(int **)(iVar6 + 0x20), piVar10 != (int *)0x0" (assignment_expression "piVar10 = *(int **)(iVar6 + 0x20)" identifier = (pointer_expression "*(int **)(iVar6 + 0x20)" * (cast_expression "(int **)(iVar6 + 0x20)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar6 + 0x20)" ( (binary_expression "iVar6 + 0x20" identifier + number_literal) ))))) , (binary_expression "piVar10 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n            iVar12 = 0;\n            do {\n              iVar12 = iVar12 + 1;\n              piVar14 = piVar10;\n              fprintf(__stream,"%9d %10lu\n",*(undefined4 *)(iVar6 + 0x18),piVar10);\n              piVar9 = (int *)piVar13[5];\n              if ((iVar12 == (int)uVar19) || (iVar6 = piVar9[iVar12], iVar6 == 0)) break;\n              piVar10 = *(int **)(iVar6 + 0x20);\n            } while (piVar10 != (int *)0x0);\n          }" { (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (do_statement "do {\n              iVar12 = iVar12 + 1;\n              piVar14 = piVar10;\n              fprintf(__stream,"%9d %10lu\n",*(undefined4 *)(iVar6 + 0x18),piVar10);\n              piVar9 = (int *)piVar13[5];\n              if ((iVar12 == (int)uVar19) || (iVar6 = piVar9[iVar12], iVar6 == 0)) break;\n              piVar10 = *(int **)(iVar6 + 0x20);\n            } while (piVar10 != (int *)0x0);" do (compound_statement "{\n              iVar12 = iVar12 + 1;\n              piVar14 = piVar10;\n              fprintf(__stream,"%9d %10lu\n",*(undefined4 *)(iVar6 + 0x18),piVar10);\n              piVar9 = (int *)piVar13[5];\n              if ((iVar12 == (int)uVar19) || (iVar6 = piVar9[iVar12], iVar6 == 0)) break;\n              piVar10 = *(int **)(iVar6 + 0x20);\n            }" { (expression_statement "iVar12 = iVar12 + 1;" (assignment_expression "iVar12 = iVar12 + 1" identifier = (binary_expression "iVar12 + 1" identifier + number_literal)) ;) (expression_statement "piVar14 = piVar10;" (assignment_expression "piVar14 = piVar10" identifier = identifier) ;) (expression_statement "fprintf(__stream,"%9d %10lu\n",*(undefined4 *)(iVar6 + 0x18),piVar10);" (call_expression "fprintf(__stream,"%9d %10lu\n",*(undefined4 *)(iVar6 + 0x18),piVar10)" identifier (argument_list "(__stream,"%9d %10lu\n",*(undefined4 *)(iVar6 + 0x18),piVar10)" ( identifier , (string_literal ""%9d %10lu\n"" " string_content escape_sequence ") , (pointer_expression "*(undefined4 *)(iVar6 + 0x18)" * (cast_expression "(undefined4 *)(iVar6 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x18)" ( (binary_expression "iVar6 + 0x18" identifier + number_literal) )))) , identifier ))) ;) (expression_statement "piVar9 = (int *)piVar13[5];" (assignment_expression "piVar9 = (int *)piVar13[5]" identifier = (cast_expression "(int *)piVar13[5]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar13[5]" identifier [ number_literal ]))) ;) (if_statement "if ((iVar12 == (int)uVar19) || (iVar6 = piVar9[iVar12], iVar6 == 0)) break;" if (parenthesized_expression "((iVar12 == (int)uVar19) || (iVar6 = piVar9[iVar12], iVar6 == 0))" ( (binary_expression "(iVar12 == (int)uVar19) || (iVar6 = piVar9[iVar12], iVar6 == 0)" (parenthesized_expression "(iVar12 == (int)uVar19)" ( (binary_expression "iVar12 == (int)uVar19" identifier == (cast_expression "(int)uVar19" ( (type_descriptor "int" primitive_type) ) identifier)) )) || (parenthesized_expression "(iVar6 = piVar9[iVar12], iVar6 == 0)" ( (comma_expression "iVar6 = piVar9[iVar12], iVar6 == 0" (assignment_expression "iVar6 = piVar9[iVar12]" identifier = (subscript_expression "piVar9[iVar12]" identifier [ identifier ])) , (binary_expression "iVar6 == 0" identifier == number_literal)) ))) )) (break_statement "break;" break ;)) (expression_statement "piVar10 = *(int **)(iVar6 + 0x20);" (assignment_expression "piVar10 = *(int **)(iVar6 + 0x20)" identifier = (pointer_expression "*(int **)(iVar6 + 0x20)" * (cast_expression "(int **)(iVar6 + 0x20)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar6 + 0x20)" ( (binary_expression "iVar6 + 0x20" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(piVar10 != (int *)0x0)" ( (binary_expression "piVar10 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) }))) (expression_statement "free(piVar9);" (call_expression "free(piVar9)" identifier (argument_list "(piVar9)" ( identifier ))) ;) (expression_statement "piVar13[5] = 0;" (assignment_expression "piVar13[5] = 0" (subscript_expression "piVar13[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar16 = 5;" (assignment_expression "uVar16 = 5" identifier = number_literal) ;) (expression_statement "pcVar7 = (char *)dcgettext("gprof","\nExecution Summary:\n\n",5);" (assignment_expression "pcVar7 = (char *)dcgettext("gprof","\nExecution Summary:\n\n",5)" identifier = (cast_expression "(char *)dcgettext("gprof","\nExecution Summary:\n\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext("gprof","\nExecution Summary:\n\n",5)" identifier (argument_list "("gprof","\nExecution Summary:\n\n",5)" ( (string_literal ""gprof"" " string_content ") , (string_literal ""\nExecution Summary:\n\n"" " escape_sequence string_content escape_sequence escape_sequence ") , number_literal ))))) ;) (expression_statement "fprintf(__stream,pcVar7,uVar16,piVar14);" (call_expression "fprintf(__stream,pcVar7,uVar16,piVar14)" identifier (argument_list "(__stream,pcVar7,uVar16,piVar14)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar6 = DAT_0002d4f8;" (assignment_expression "iVar6 = DAT_0002d4f8" identifier = identifier) ;) (expression_statement "pcVar7 = (char *)dcgettext("gprof","%9ld   Executable lines in this file\n",5);" (assignment_expression "pcVar7 = (char *)dcgettext("gprof","%9ld   Executable lines in this file\n",5)" identifier = (cast_expression "(char *)dcgettext("gprof","%9ld   Executable lines in this file\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext("gprof","%9ld   Executable lines in this file\n",5)" identifier (argument_list "("gprof","%9ld   Executable lines in this file\n",5)" ( (string_literal ""gprof"" " string_content ") , (string_literal ""%9ld   Executable lines in this file\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "fprintf(__stream,pcVar7,iVar6);" (call_expression "fprintf(__stream,pcVar7,iVar6)" identifier (argument_list "(__stream,pcVar7,iVar6)" ( identifier , identifier , identifier ))) ;) (expression_statement "iVar6 = DAT_0002d4f4;" (assignment_expression "iVar6 = DAT_0002d4f4" identifier = identifier) ;) (expression_statement "pcVar7 = (char *)dcgettext("gprof","%9ld   Lines executed\n",5);" (assignment_expression "pcVar7 = (char *)dcgettext("gprof","%9ld   Lines executed\n",5)" identifier = (cast_expression "(char *)dcgettext("gprof","%9ld   Lines executed\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext("gprof","%9ld   Lines executed\n",5)" identifier (argument_list "("gprof","%9ld   Lines executed\n",5)" ( (string_literal ""gprof"" " string_content ") , (string_literal ""%9ld   Lines executed\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "fprintf(__stream,pcVar7,iVar6);" (call_expression "fprintf(__stream,pcVar7,iVar6)" identifier (argument_list "(__stream,pcVar7,iVar6)" ( identifier , identifier , identifier ))) ;) (expression_statement "fVar3 = _DAT_000221d8;" (assignment_expression "fVar3 = _DAT_000221d8" identifier = identifier) ;) (if_statement "if (DAT_0002d4f8 != 0) {\n          fVar3 = ((float)DAT_0002d4f4 * _DAT_000221d8) / (float)DAT_0002d4f8;\n        }" if (parenthesized_expression "(DAT_0002d4f8 != 0)" ( (binary_expression "DAT_0002d4f8 != 0" identifier != number_literal) )) (compound_statement "{\n          fVar3 = ((float)DAT_0002d4f4 * _DAT_000221d8) / (float)DAT_0002d4f8;\n        }" { (expression_statement "fVar3 = ((float)DAT_0002d4f4 * _DAT_000221d8) / (float)DAT_0002d4f8;" (assignment_expression "fVar3 = ((float)DAT_0002d4f4 * _DAT_000221d8) / (float)DAT_0002d4f8" identifier = (binary_expression "((float)DAT_0002d4f4 * _DAT_000221d8) / (float)DAT_0002d4f8" (parenthesized_expression "((float)DAT_0002d4f4 * _DAT_000221d8)" ( (binary_expression "(float)DAT_0002d4f4 * _DAT_000221d8" (cast_expression "(float)DAT_0002d4f4" ( (type_descriptor "float" primitive_type) ) identifier) * identifier) )) / (cast_expression "(float)DAT_0002d4f8" ( (type_descriptor "float" primitive_type) ) identifier))) ;) })) (expression_statement "dVar18 = (double)fVar3;" (assignment_expression "dVar18 = (double)fVar3" identifier = (cast_expression "(double)fVar3" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (expression_statement "pcVar7 = (char *)dcgettext("gprof","%9.2f   Percent of the file executed\n",5,piVar14,dVar18\n                                  );" (assignment_expression "pcVar7 = (char *)dcgettext("gprof","%9.2f   Percent of the file executed\n",5,piVar14,dVar18\n                                  )" identifier = (cast_expression "(char *)dcgettext("gprof","%9.2f   Percent of the file executed\n",5,piVar14,dVar18\n                                  )" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext("gprof","%9.2f   Percent of the file executed\n",5,piVar14,dVar18\n                                  )" identifier (argument_list "("gprof","%9.2f   Percent of the file executed\n",5,piVar14,dVar18\n                                  )" ( (string_literal ""gprof"" " string_content ") , (string_literal ""%9.2f   Percent of the file executed\n"" " string_content escape_sequence ") , number_literal , identifier , identifier ))))) ;) (expression_statement "fprintf(__stream,pcVar7,SUB84(dVar18,0),(int)((ulonglong)dVar18 >> 0x20));" (call_expression "fprintf(__stream,pcVar7,SUB84(dVar18,0),(int)((ulonglong)dVar18 >> 0x20))" identifier (argument_list "(__stream,pcVar7,SUB84(dVar18,0),(int)((ulonglong)dVar18 >> 0x20))" ( identifier , identifier , (call_expression "SUB84(dVar18,0)" identifier (argument_list "(dVar18,0)" ( identifier , number_literal ))) , (cast_expression "(int)((ulonglong)dVar18 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar18 >> 0x20)" ( (binary_expression "(ulonglong)dVar18 >> 0x20" (cast_expression "(ulonglong)dVar18" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) ))) ;) (expression_statement "iVar6 = piVar13[2];" (assignment_expression "iVar6 = piVar13[2]" identifier = (subscript_expression "piVar13[2]" identifier [ number_literal ])) ;) (expression_statement "pcVar7 = (char *)dcgettext("gprof","\n%9lu   Total number of line executions\n",5);" (assignment_expression "pcVar7 = (char *)dcgettext("gprof","\n%9lu   Total number of line executions\n",5)" identifier = (cast_expression "(char *)dcgettext("gprof","\n%9lu   Total number of line executions\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext("gprof","\n%9lu   Total number of line executions\n",5)" identifier (argument_list "("gprof","\n%9lu   Total number of line executions\n",5)" ( (string_literal ""gprof"" " string_content ") , (string_literal ""\n%9lu   Total number of line executions\n"" " escape_sequence string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "fprintf(__stream,pcVar7,iVar6);" (call_expression "fprintf(__stream,pcVar7,iVar6)" identifier (argument_list "(__stream,pcVar7,iVar6)" ( identifier , identifier , identifier ))) ;) (if_statement "if (DAT_0002d4f8 == 0) {\n          dVar18 = 0.0;\n        }\n        else {\n          dVar18 = (double)(uint)piVar13[2] / (double)DAT_0002d4f8;\n        }" if (parenthesized_expression "(DAT_0002d4f8 == 0)" ( (binary_expression "DAT_0002d4f8 == 0" identifier == number_literal) )) (compound_statement "{\n          dVar18 = 0.0;\n        }" { (expression_statement "dVar18 = 0.0;" (assignment_expression "dVar18 = 0.0" identifier = number_literal) ;) }) (else_clause "else {\n          dVar18 = (double)(uint)piVar13[2] / (double)DAT_0002d4f8;\n        }" else (compound_statement "{\n          dVar18 = (double)(uint)piVar13[2] / (double)DAT_0002d4f8;\n        }" { (expression_statement "dVar18 = (double)(uint)piVar13[2] / (double)DAT_0002d4f8;" (assignment_expression "dVar18 = (double)(uint)piVar13[2] / (double)DAT_0002d4f8" identifier = (binary_expression "(double)(uint)piVar13[2] / (double)DAT_0002d4f8" (cast_expression "(double)(uint)piVar13[2]" ( (type_descriptor "double" primitive_type) ) (cast_expression "(uint)piVar13[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar13[2]" identifier [ number_literal ]))) / (cast_expression "(double)DAT_0002d4f8" ( (type_descriptor "double" primitive_type) ) identifier))) ;) }))) (expression_statement "pcVar7 = (char *)dcgettext("gprof","%9.2f   Average executions per line\n",5,piVar14,dVar18)\n        ;" (assignment_expression "pcVar7 = (char *)dcgettext("gprof","%9.2f   Average executions per line\n",5,piVar14,dVar18)" identifier = (cast_expression "(char *)dcgettext("gprof","%9.2f   Average executions per line\n",5,piVar14,dVar18)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext("gprof","%9.2f   Average executions per line\n",5,piVar14,dVar18)" identifier (argument_list "("gprof","%9.2f   Average executions per line\n",5,piVar14,dVar18)" ( (string_literal ""gprof"" " string_content ") , (string_literal ""%9.2f   Average executions per line\n"" " string_content escape_sequence ") , number_literal , identifier , identifier ))))) ;) (expression_statement "fprintf(__stream,pcVar7,SUB84(dVar18,0),(int)((ulonglong)dVar18 >> 0x20));" (call_expression "fprintf(__stream,pcVar7,SUB84(dVar18,0),(int)((ulonglong)dVar18 >> 0x20))" identifier (argument_list "(__stream,pcVar7,SUB84(dVar18,0),(int)((ulonglong)dVar18 >> 0x20))" ( identifier , identifier , (call_expression "SUB84(dVar18,0)" identifier (argument_list "(dVar18,0)" ( identifier , number_literal ))) , (cast_expression "(int)((ulonglong)dVar18 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar18 >> 0x20)" ( (binary_expression "(ulonglong)dVar18 >> 0x20" (cast_expression "(ulonglong)dVar18" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) ))) ;) (if_statement "if (*(FILE **)puVar5 != __stream) {\n          fclose(__stream);\n        }" if (parenthesized_expression "(*(FILE **)puVar5 != __stream)" ( (binary_expression "*(FILE **)puVar5 != __stream" (pointer_expression "*(FILE **)puVar5" * (cast_expression "(FILE **)puVar5" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) != identifier) )) (compound_statement "{\n          fclose(__stream);\n        }" { (expression_statement "fclose(__stream);" (call_expression "fclose(__stream)" identifier (argument_list "(__stream)" ( identifier ))) ;) })) })) })) (expression_statement "puVar4 = PTR_stdout_0002cfec;" (assignment_expression "puVar4 = PTR_stdout_0002cfec" identifier = identifier) ;) (expression_statement "piVar13 = (int *)*piVar13;" (assignment_expression "piVar13 = (int *)*piVar13" identifier = (cast_expression "(int *)*piVar13" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar13" * identifier))) ;) (expression_statement "PTR_stdout_0002cfec = puVar5;" (assignment_expression "PTR_stdout_0002cfec = puVar5" identifier = identifier) ;) }) while (parenthesized_expression "( true )" ( true )) ;)) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ))) )) && (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression * IDENT) , (subscript_expression IDENT [ LIT ]) )))) , (binary_expression (binary_expression IDENT != LIT) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT == LIT) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression * IDENT) , (subscript_expression IDENT [ LIT ]) )))) , (binary_expression IDENT == LIT)) ))) )) )))) )) ))) )) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (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 (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (return_statement return ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (return_statement return ;) })) (labeled_statement statement_identifier : (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < (subscript_expression IDENT [ LIT ])) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression (subscript_expression IDENT [ LIT ]) << LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , (binary_expression (subscript_expression IDENT [ LIT ]) << LIT) ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) != LIT) ))) )) && (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE) ) IDENT) , (pointer_expression * IDENT) , (subscript_expression IDENT [ LIT ]) )))) , (binary_expression (binary_expression IDENT != LIT) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT == LIT) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression * IDENT) , (subscript_expression IDENT [ LIT ]) )))) , (binary_expression IDENT == LIT)) ))) )) )))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) + (binary_expression IDENT * LIT)) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) && (binary_expression (pointer_expression * IDENT) == LIT)) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (break_statement break ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (for_statement for ( (assignment_expression IDENT = LIT) ; (binary_expression IDENT != LIT) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) + (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) + LIT) + (binary_expression (subscript_expression IDENT [ LIT ]) * LIT)) )))) = IDENT) ;) }))) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;)) (labeled_statement statement_identifier : (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (return_statement return ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT == LIT) || (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , LIT , IDENT , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " escape_sequence escape_sequence string_content escape_sequence escape_sequence string_content escape_sequence escape_sequence ") , LIT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) , (subscript_expression IDENT [ LIT ]) , LIT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) <= (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * IDENT)) , (binary_expression IDENT != LIT)) ))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content escape_sequence ") , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (subscript_expression IDENT [ IDENT ])) , (binary_expression IDENT == LIT)) ))) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;) })) }))) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " escape_sequence string_content escape_sequence escape_sequence ") , LIT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content escape_sequence ") , LIT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content escape_sequence ") , LIT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * IDENT) )) / (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) })) (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 escape_sequence ") , LIT , IDENT , IDENT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (call_expression IDENT (argument_list ( IDENT , LIT ))) , (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " escape_sequence string_content escape_sequence ") , LIT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (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 (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) / (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 ") , LIT , IDENT , IDENT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (call_expression IDENT (argument_list ( IDENT , LIT ))) , (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) != IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) })) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( BOOL )) ;)) })))
(function_definition "void FUN_00013de0(void)\n\n{\n  undefined4 *puVar1;\n  int iVar2;\n  float fVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  void *__s;\n  int iVar6;\n  FILE *__stream;\n  char *pcVar7;\n  uint uVar8;\n  int *piVar9;\n  int *piVar10;\n  undefined4 *puVar11;\n  int iVar12;\n  int *piVar13;\n  int *piVar14;\n  byte bVar15;\n  undefined4 uVar16;\n  undefined8 uVar17;\n  double dVar18;\n  ulonglong uVar19;\n  \n  bVar15 = 0;\n  puVar11 = DAT_0002e524;\n  if (DAT_0002e524 < DAT_0002e528) {\n    do {\n      while (((puVar11[5] != 0 && (*(int *)(puVar11[5] + 0xc) < (int)puVar11[6])) &&\n             ((iVar6 = FUN_0001d480(&DAT_0002e5a0,*puVar11,puVar11[1]), iVar6 != 0 ||\n              ((DAT_0002e5a0 == 0 &&\n               (iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0))))))) {\n        puVar1 = puVar11 + 6;\n        piVar13 = puVar11 + 5;\n        puVar11 = puVar11 + 0x3f;\n        *(undefined4 *)(*piVar13 + 0xc) = *puVar1;\n        if (DAT_0002e528 <= puVar11) goto LAB_00013e60;\n      }\n      puVar11 = puVar11 + 0x3f;\n    } while (puVar11 < DAT_0002e528);\nLAB_00013e60:\n    piVar13 = DAT_0002e178;\n    if (DAT_0002e178 != (int *)0x0) goto LAB_00013e78;\n    if (DAT_0002e528 <= DAT_0002e524) {\n      return;\n    }\n  }\n  else {\n    piVar13 = DAT_0002e178;\n    if (DAT_0002e178 == (int *)0x0) {\n      return;\n    }\nLAB_00013e78:\n    do {\n      if (0 < piVar13[3]) {\n        __s = (void *)xmalloc(piVar13[3] << 2);\n        piVar13[5] = (int)__s;\n        memset(__s,0,piVar13[3] << 2);\n      }\n      piVar13 = (int *)*piVar13;\n    } while (piVar13 != (int *)0x0);\n    puVar4 = PTR_stdout_0002cfec;\n    piVar13 = DAT_0002e178;\n    if (DAT_0002e528 <= DAT_0002e524) goto joined_r0x00013f50;\n  }\n  uVar17 = 0x2e5a0;\n  puVar11 = DAT_0002e524;\nLAB_00013edb:\n  do {\n    if (((puVar11[5] != 0) && (*(int *)(puVar11[5] + 0xc) != 0)) &&\n       ((iVar6 = FUN_0001d480((int)uVar17,*puVar11,puVar11[1]), iVar6 != 0 ||\n        ((DAT_0002e5a0 == 0 && (iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0)\n         ))))) {\n      iVar6 = puVar11[5];\n      iVar12 = puVar11[6];\n      iVar2 = puVar11[8];\n      piVar13 = (int *)(iVar6 + 8);\n      *piVar13 = *piVar13 + iVar2;\n      puVar1 = (undefined4 *)(*(int *)(iVar6 + 0x14) + -4 + iVar12 * 4);\n      piVar13 = (int *)*puVar1;\n      if (piVar13 == (int *)0x0) {\n        *puVar1 = puVar11;\n      }\n      else {\n        if (piVar13[1] == 0 && *piVar13 == 0) {\n          piVar13[8] = piVar13[8] + iVar2;\n          puVar11 = puVar11 + 0x3f;\n          puVar4 = PTR_stdout_0002cfec;\n          piVar13 = DAT_0002e178;\n          if (DAT_0002e528 <= puVar11) break;\n          goto LAB_00013edb;\n        }\n        piVar9 = (int *)xmalloc(0xfc);\n        piVar14 = piVar9;\n        for (iVar6 = 0x3f; iVar6 != 0; iVar6 = iVar6 + -1) {\n          *piVar14 = *piVar13;\n          piVar13 = piVar13 + (uint)bVar15 * -2 + 1;\n          piVar14 = piVar14 + (uint)bVar15 * -2 + 1;\n        }\n        *piVar9 = 0;\n        piVar9[1] = 0;\n        piVar9[8] = piVar9[8] + puVar11[8];\n        *(int **)(*(int *)(puVar11[5] + 0x14) + -4 + puVar11[6] * 4) = piVar9;\n      }\n    }\n    puVar11 = puVar11 + 0x3f;\n    puVar4 = PTR_stdout_0002cfec;\n    piVar13 = DAT_0002e178;\n  } while (puVar11 < DAT_0002e528);\njoined_r0x00013f50:\n  do {\n    puVar5 = PTR_stdout_0002cfec;\n    if (piVar13 == (int *)0x0) {\n      PTR_stdout_0002cfec = puVar4;\n      return;\n    }\n    PTR_stdout_0002cfec = puVar4;\n    if ((piVar13[3] != 0) && ((DAT_0002d1c0 == 0 || (piVar13[2] != 0)))) {\n      DAT_0002d4f4 = 0;\n      DAT_0002d4f8 = 0;\n      piVar14 = piVar13;\n      __stream = (FILE *)FUN_0001c940(piVar13,0x10,FUN_00013230,piVar13);\n      uVar8 = DAT_0002d148;\n      if (__stream != (FILE *)0x0) {\n        if ((int)DAT_0002d148 < 1) {\n          piVar9 = (int *)piVar13[5];\n        }\n        else {\n          pcVar7 = (char *)dcgettext("gprof","\n\nTop %d Lines:\n\n     Line      Count\n\n",5);\n          fprintf(__stream,pcVar7,uVar8);\n          qsort((void *)piVar13[5],piVar13[3],4,FUN_00013170);\n          uVar8 = DAT_0002d148;\n          if (piVar13[3] <= (int)DAT_0002d148) {\n            uVar8 = piVar13[3];\n          }\n          piVar9 = (int *)piVar13[5];\n          uVar19 = (ulonglong)uVar8;\n          if (((0 < (int)uVar8) && (iVar6 = *piVar9, iVar6 != 0)) &&\n             (piVar10 = *(int **)(iVar6 + 0x20), piVar10 != (int *)0x0)) {\n            iVar12 = 0;\n            do {\n              iVar12 = iVar12 + 1;\n              piVar14 = piVar10;\n              fprintf(__stream,"%9d %10lu\n",*(undefined4 *)(iVar6 + 0x18),piVar10);\n              piVar9 = (int *)piVar13[5];\n              if ((iVar12 == (int)uVar19) || (iVar6 = piVar9[iVar12], iVar6 == 0)) break;\n              piVar10 = *(int **)(iVar6 + 0x20);\n            } while (piVar10 != (int *)0x0);\n          }\n        }\n        free(piVar9);\n        piVar13[5] = 0;\n        uVar16 = 5;\n        pcVar7 = (char *)dcgettext("gprof","\nExecution Summary:\n\n",5);\n        fprintf(__stream,pcVar7,uVar16,piVar14);\n        iVar6 = DAT_0002d4f8;\n        pcVar7 = (char *)dcgettext("gprof","%9ld   Executable lines in this file\n",5);\n        fprintf(__stream,pcVar7,iVar6);\n        iVar6 = DAT_0002d4f4;\n        pcVar7 = (char *)dcgettext("gprof","%9ld   Lines executed\n",5);\n        fprintf(__stream,pcVar7,iVar6);\n        fVar3 = _DAT_000221d8;\n        if (DAT_0002d4f8 != 0) {\n          fVar3 = ((float)DAT_0002d4f4 * _DAT_000221d8) / (float)DAT_0002d4f8;\n        }\n        dVar18 = (double)fVar3;\n        pcVar7 = (char *)dcgettext("gprof","%9.2f   Percent of the file executed\n",5,piVar14,dVar18\n                                  );\n        fprintf(__stream,pcVar7,SUB84(dVar18,0),(int)((ulonglong)dVar18 >> 0x20));\n        iVar6 = piVar13[2];\n        pcVar7 = (char *)dcgettext("gprof","\n%9lu   Total number of line executions\n",5);\n        fprintf(__stream,pcVar7,iVar6);\n        if (DAT_0002d4f8 == 0) {\n          dVar18 = 0.0;\n        }\n        else {\n          dVar18 = (double)(uint)piVar13[2] / (double)DAT_0002d4f8;\n        }\n        pcVar7 = (char *)dcgettext("gprof","%9.2f   Average executions per line\n",5,piVar14,dVar18)\n        ;\n        fprintf(__stream,pcVar7,SUB84(dVar18,0),(int)((ulonglong)dVar18 >> 0x20));\n        if (*(FILE **)puVar5 != __stream) {\n          fclose(__stream);\n        }\n      }\n    }\n    puVar4 = PTR_stdout_0002cfec;\n    piVar13 = (int *)*piVar13;\n    PTR_stdout_0002cfec = puVar5;\n  } while( true );\n}" (primitive_type "void") (function_declarator "FUN_00013de0(void)" (identifier "FUN_00013de0") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")"))) (compound_statement "{\n  undefined4 *puVar1;\n  int iVar2;\n  float fVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  void *__s;\n  int iVar6;\n  FILE *__stream;\n  char *pcVar7;\n  uint uVar8;\n  int *piVar9;\n  int *piVar10;\n  undefined4 *puVar11;\n  int iVar12;\n  int *piVar13;\n  int *piVar14;\n  byte bVar15;\n  undefined4 uVar16;\n  undefined8 uVar17;\n  double dVar18;\n  ulonglong uVar19;\n  \n  bVar15 = 0;\n  puVar11 = DAT_0002e524;\n  if (DAT_0002e524 < DAT_0002e528) {\n    do {\n      while (((puVar11[5] != 0 && (*(int *)(puVar11[5] + 0xc) < (int)puVar11[6])) &&\n             ((iVar6 = FUN_0001d480(&DAT_0002e5a0,*puVar11,puVar11[1]), iVar6 != 0 ||\n              ((DAT_0002e5a0 == 0 &&\n               (iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0))))))) {\n        puVar1 = puVar11 + 6;\n        piVar13 = puVar11 + 5;\n        puVar11 = puVar11 + 0x3f;\n        *(undefined4 *)(*piVar13 + 0xc) = *puVar1;\n        if (DAT_0002e528 <= puVar11) goto LAB_00013e60;\n      }\n      puVar11 = puVar11 + 0x3f;\n    } while (puVar11 < DAT_0002e528);\nLAB_00013e60:\n    piVar13 = DAT_0002e178;\n    if (DAT_0002e178 != (int *)0x0) goto LAB_00013e78;\n    if (DAT_0002e528 <= DAT_0002e524) {\n      return;\n    }\n  }\n  else {\n    piVar13 = DAT_0002e178;\n    if (DAT_0002e178 == (int *)0x0) {\n      return;\n    }\nLAB_00013e78:\n    do {\n      if (0 < piVar13[3]) {\n        __s = (void *)xmalloc(piVar13[3] << 2);\n        piVar13[5] = (int)__s;\n        memset(__s,0,piVar13[3] << 2);\n      }\n      piVar13 = (int *)*piVar13;\n    } while (piVar13 != (int *)0x0);\n    puVar4 = PTR_stdout_0002cfec;\n    piVar13 = DAT_0002e178;\n    if (DAT_0002e528 <= DAT_0002e524) goto joined_r0x00013f50;\n  }\n  uVar17 = 0x2e5a0;\n  puVar11 = DAT_0002e524;\nLAB_00013edb:\n  do {\n    if (((puVar11[5] != 0) && (*(int *)(puVar11[5] + 0xc) != 0)) &&\n       ((iVar6 = FUN_0001d480((int)uVar17,*puVar11,puVar11[1]), iVar6 != 0 ||\n        ((DAT_0002e5a0 == 0 && (iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0)\n         ))))) {\n      iVar6 = puVar11[5];\n      iVar12 = puVar11[6];\n      iVar2 = puVar11[8];\n      piVar13 = (int *)(iVar6 + 8);\n      *piVar13 = *piVar13 + iVar2;\n      puVar1 = (undefined4 *)(*(int *)(iVar6 + 0x14) + -4 + iVar12 * 4);\n      piVar13 = (int *)*puVar1;\n      if (piVar13 == (int *)0x0) {\n        *puVar1 = puVar11;\n      }\n      else {\n        if (piVar13[1] == 0 && *piVar13 == 0) {\n          piVar13[8] = piVar13[8] + iVar2;\n          puVar11 = puVar11 + 0x3f;\n          puVar4 = PTR_stdout_0002cfec;\n          piVar13 = DAT_0002e178;\n          if (DAT_0002e528 <= puVar11) break;\n          goto LAB_00013edb;\n        }\n        piVar9 = (int *)xmalloc(0xfc);\n        piVar14 = piVar9;\n        for (iVar6 = 0x3f; iVar6 != 0; iVar6 = iVar6 + -1) {\n          *piVar14 = *piVar13;\n          piVar13 = piVar13 + (uint)bVar15 * -2 + 1;\n          piVar14 = piVar14 + (uint)bVar15 * -2 + 1;\n        }\n        *piVar9 = 0;\n        piVar9[1] = 0;\n        piVar9[8] = piVar9[8] + puVar11[8];\n        *(int **)(*(int *)(puVar11[5] + 0x14) + -4 + puVar11[6] * 4) = piVar9;\n      }\n    }\n    puVar11 = puVar11 + 0x3f;\n    puVar4 = PTR_stdout_0002cfec;\n    piVar13 = DAT_0002e178;\n  } while (puVar11 < DAT_0002e528);\njoined_r0x00013f50:\n  do {\n    puVar5 = PTR_stdout_0002cfec;\n    if (piVar13 == (int *)0x0) {\n      PTR_stdout_0002cfec = puVar4;\n      return;\n    }\n    PTR_stdout_0002cfec = puVar4;\n    if ((piVar13[3] != 0) && ((DAT_0002d1c0 == 0 || (piVar13[2] != 0)))) {\n      DAT_0002d4f4 = 0;\n      DAT_0002d4f8 = 0;\n      piVar14 = piVar13;\n      __stream = (FILE *)FUN_0001c940(piVar13,0x10,FUN_00013230,piVar13);\n      uVar8 = DAT_0002d148;\n      if (__stream != (FILE *)0x0) {\n        if ((int)DAT_0002d148 < 1) {\n          piVar9 = (int *)piVar13[5];\n        }\n        else {\n          pcVar7 = (char *)dcgettext("gprof","\n\nTop %d Lines:\n\n     Line      Count\n\n",5);\n          fprintf(__stream,pcVar7,uVar8);\n          qsort((void *)piVar13[5],piVar13[3],4,FUN_00013170);\n          uVar8 = DAT_0002d148;\n          if (piVar13[3] <= (int)DAT_0002d148) {\n            uVar8 = piVar13[3];\n          }\n          piVar9 = (int *)piVar13[5];\n          uVar19 = (ulonglong)uVar8;\n          if (((0 < (int)uVar8) && (iVar6 = *piVar9, iVar6 != 0)) &&\n             (piVar10 = *(int **)(iVar6 + 0x20), piVar10 != (int *)0x0)) {\n            iVar12 = 0;\n            do {\n              iVar12 = iVar12 + 1;\n              piVar14 = piVar10;\n              fprintf(__stream,"%9d %10lu\n",*(undefined4 *)(iVar6 + 0x18),piVar10);\n              piVar9 = (int *)piVar13[5];\n              if ((iVar12 == (int)uVar19) || (iVar6 = piVar9[iVar12], iVar6 == 0)) break;\n              piVar10 = *(int **)(iVar6 + 0x20);\n            } while (piVar10 != (int *)0x0);\n          }\n        }\n        free(piVar9);\n        piVar13[5] = 0;\n        uVar16 = 5;\n        pcVar7 = (char *)dcgettext("gprof","\nExecution Summary:\n\n",5);\n        fprintf(__stream,pcVar7,uVar16,piVar14);\n        iVar6 = DAT_0002d4f8;\n        pcVar7 = (char *)dcgettext("gprof","%9ld   Executable lines in this file\n",5);\n        fprintf(__stream,pcVar7,iVar6);\n        iVar6 = DAT_0002d4f4;\n        pcVar7 = (char *)dcgettext("gprof","%9ld   Lines executed\n",5);\n        fprintf(__stream,pcVar7,iVar6);\n        fVar3 = _DAT_000221d8;\n        if (DAT_0002d4f8 != 0) {\n          fVar3 = ((float)DAT_0002d4f4 * _DAT_000221d8) / (float)DAT_0002d4f8;\n        }\n        dVar18 = (double)fVar3;\n        pcVar7 = (char *)dcgettext("gprof","%9.2f   Percent of the file executed\n",5,piVar14,dVar18\n                                  );\n        fprintf(__stream,pcVar7,SUB84(dVar18,0),(int)((ulonglong)dVar18 >> 0x20));\n        iVar6 = piVar13[2];\n        pcVar7 = (char *)dcgettext("gprof","\n%9lu   Total number of line executions\n",5);\n        fprintf(__stream,pcVar7,iVar6);\n        if (DAT_0002d4f8 == 0) {\n          dVar18 = 0.0;\n        }\n        else {\n          dVar18 = (double)(uint)piVar13[2] / (double)DAT_0002d4f8;\n        }\n        pcVar7 = (char *)dcgettext("gprof","%9.2f   Average executions per line\n",5,piVar14,dVar18)\n        ;\n        fprintf(__stream,pcVar7,SUB84(dVar18,0),(int)((ulonglong)dVar18 >> 0x20));\n        if (*(FILE **)puVar5 != __stream) {\n          fclose(__stream);\n        }\n      }\n    }\n    puVar4 = PTR_stdout_0002cfec;\n    piVar13 = (int *)*piVar13;\n    PTR_stdout_0002cfec = puVar5;\n  } while( true );\n}" ({ "{") (declaration "undefined4 *puVar1;" (type_identifier "undefined4") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "float fVar3;" (primitive_type "float") (identifier "fVar3") (; ";")) (declaration "undefined *puVar4;" (type_identifier "undefined") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "undefined *puVar5;" (type_identifier "undefined") (pointer_declarator "*puVar5" (* "*") (identifier "puVar5")) (; ";")) (declaration "void *__s;" (primitive_type "void") (pointer_declarator "*__s" (* "*") (identifier "__s")) (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "FILE *__stream;" (type_identifier "FILE") (pointer_declarator "*__stream" (* "*") (identifier "__stream")) (; ";")) (declaration "char *pcVar7;" (primitive_type "char") (pointer_declarator "*pcVar7" (* "*") (identifier "pcVar7")) (; ";")) (declaration "uint uVar8;" (type_identifier "uint") (identifier "uVar8") (; ";")) (declaration "int *piVar9;" (primitive_type "int") (pointer_declarator "*piVar9" (* "*") (identifier "piVar9")) (; ";")) (declaration "int *piVar10;" (primitive_type "int") (pointer_declarator "*piVar10" (* "*") (identifier "piVar10")) (; ";")) (declaration "undefined4 *puVar11;" (type_identifier "undefined4") (pointer_declarator "*puVar11" (* "*") (identifier "puVar11")) (; ";")) (declaration "int iVar12;" (primitive_type "int") (identifier "iVar12") (; ";")) (declaration "int *piVar13;" (primitive_type "int") (pointer_declarator "*piVar13" (* "*") (identifier "piVar13")) (; ";")) (declaration "int *piVar14;" (primitive_type "int") (pointer_declarator "*piVar14" (* "*") (identifier "piVar14")) (; ";")) (declaration "byte bVar15;" (type_identifier "byte") (identifier "bVar15") (; ";")) (declaration "undefined4 uVar16;" (type_identifier "undefined4") (identifier "uVar16") (; ";")) (declaration "undefined8 uVar17;" (type_identifier "undefined8") (identifier "uVar17") (; ";")) (declaration "double dVar18;" (primitive_type "double") (identifier "dVar18") (; ";")) (declaration "ulonglong uVar19;" (type_identifier "ulonglong") (identifier "uVar19") (; ";")) (expression_statement "bVar15 = 0;" (assignment_expression "bVar15 = 0" (identifier "bVar15") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar11 = DAT_0002e524;" (assignment_expression "puVar11 = DAT_0002e524" (identifier "puVar11") (= "=") (identifier "DAT_0002e524")) (; ";")) (if_statement "if (DAT_0002e524 < DAT_0002e528) {\n    do {\n      while (((puVar11[5] != 0 && (*(int *)(puVar11[5] + 0xc) < (int)puVar11[6])) &&\n             ((iVar6 = FUN_0001d480(&DAT_0002e5a0,*puVar11,puVar11[1]), iVar6 != 0 ||\n              ((DAT_0002e5a0 == 0 &&\n               (iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0))))))) {\n        puVar1 = puVar11 + 6;\n        piVar13 = puVar11 + 5;\n        puVar11 = puVar11 + 0x3f;\n        *(undefined4 *)(*piVar13 + 0xc) = *puVar1;\n        if (DAT_0002e528 <= puVar11) goto LAB_00013e60;\n      }\n      puVar11 = puVar11 + 0x3f;\n    } while (puVar11 < DAT_0002e528);\nLAB_00013e60:\n    piVar13 = DAT_0002e178;\n    if (DAT_0002e178 != (int *)0x0) goto LAB_00013e78;\n    if (DAT_0002e528 <= DAT_0002e524) {\n      return;\n    }\n  }\n  else {\n    piVar13 = DAT_0002e178;\n    if (DAT_0002e178 == (int *)0x0) {\n      return;\n    }\nLAB_00013e78:\n    do {\n      if (0 < piVar13[3]) {\n        __s = (void *)xmalloc(piVar13[3] << 2);\n        piVar13[5] = (int)__s;\n        memset(__s,0,piVar13[3] << 2);\n      }\n      piVar13 = (int *)*piVar13;\n    } while (piVar13 != (int *)0x0);\n    puVar4 = PTR_stdout_0002cfec;\n    piVar13 = DAT_0002e178;\n    if (DAT_0002e528 <= DAT_0002e524) goto joined_r0x00013f50;\n  }" (if "if") (parenthesized_expression "(DAT_0002e524 < DAT_0002e528)" (( "(") (binary_expression "DAT_0002e524 < DAT_0002e528" (identifier "DAT_0002e524") (< "<") (identifier "DAT_0002e528")) () ")")) (compound_statement "{\n    do {\n      while (((puVar11[5] != 0 && (*(int *)(puVar11[5] + 0xc) < (int)puVar11[6])) &&\n             ((iVar6 = FUN_0001d480(&DAT_0002e5a0,*puVar11,puVar11[1]), iVar6 != 0 ||\n              ((DAT_0002e5a0 == 0 &&\n               (iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0))))))) {\n        puVar1 = puVar11 + 6;\n        piVar13 = puVar11 + 5;\n        puVar11 = puVar11 + 0x3f;\n        *(undefined4 *)(*piVar13 + 0xc) = *puVar1;\n        if (DAT_0002e528 <= puVar11) goto LAB_00013e60;\n      }\n      puVar11 = puVar11 + 0x3f;\n    } while (puVar11 < DAT_0002e528);\nLAB_00013e60:\n    piVar13 = DAT_0002e178;\n    if (DAT_0002e178 != (int *)0x0) goto LAB_00013e78;\n    if (DAT_0002e528 <= DAT_0002e524) {\n      return;\n    }\n  }" ({ "{") (do_statement "do {\n      while (((puVar11[5] != 0 && (*(int *)(puVar11[5] + 0xc) < (int)puVar11[6])) &&\n             ((iVar6 = FUN_0001d480(&DAT_0002e5a0,*puVar11,puVar11[1]), iVar6 != 0 ||\n              ((DAT_0002e5a0 == 0 &&\n               (iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0))))))) {\n        puVar1 = puVar11 + 6;\n        piVar13 = puVar11 + 5;\n        puVar11 = puVar11 + 0x3f;\n        *(undefined4 *)(*piVar13 + 0xc) = *puVar1;\n        if (DAT_0002e528 <= puVar11) goto LAB_00013e60;\n      }\n      puVar11 = puVar11 + 0x3f;\n    } while (puVar11 < DAT_0002e528);" (do "do") (compound_statement "{\n      while (((puVar11[5] != 0 && (*(int *)(puVar11[5] + 0xc) < (int)puVar11[6])) &&\n             ((iVar6 = FUN_0001d480(&DAT_0002e5a0,*puVar11,puVar11[1]), iVar6 != 0 ||\n              ((DAT_0002e5a0 == 0 &&\n               (iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0))))))) {\n        puVar1 = puVar11 + 6;\n        piVar13 = puVar11 + 5;\n        puVar11 = puVar11 + 0x3f;\n        *(undefined4 *)(*piVar13 + 0xc) = *puVar1;\n        if (DAT_0002e528 <= puVar11) goto LAB_00013e60;\n      }\n      puVar11 = puVar11 + 0x3f;\n    }" ({ "{") (while_statement "while (((puVar11[5] != 0 && (*(int *)(puVar11[5] + 0xc) < (int)puVar11[6])) &&\n             ((iVar6 = FUN_0001d480(&DAT_0002e5a0,*puVar11,puVar11[1]), iVar6 != 0 ||\n              ((DAT_0002e5a0 == 0 &&\n               (iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0))))))) {\n        puVar1 = puVar11 + 6;\n        piVar13 = puVar11 + 5;\n        puVar11 = puVar11 + 0x3f;\n        *(undefined4 *)(*piVar13 + 0xc) = *puVar1;\n        if (DAT_0002e528 <= puVar11) goto LAB_00013e60;\n      }" (while "while") (parenthesized_expression "(((puVar11[5] != 0 && (*(int *)(puVar11[5] + 0xc) < (int)puVar11[6])) &&\n             ((iVar6 = FUN_0001d480(&DAT_0002e5a0,*puVar11,puVar11[1]), iVar6 != 0 ||\n              ((DAT_0002e5a0 == 0 &&\n               (iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0)))))))" (( "(") (parenthesized_expression "((puVar11[5] != 0 && (*(int *)(puVar11[5] + 0xc) < (int)puVar11[6])) &&\n             ((iVar6 = FUN_0001d480(&DAT_0002e5a0,*puVar11,puVar11[1]), iVar6 != 0 ||\n              ((DAT_0002e5a0 == 0 &&\n               (iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0))))))" (( "(") (binary_expression "(puVar11[5] != 0 && (*(int *)(puVar11[5] + 0xc) < (int)puVar11[6])) &&\n             ((iVar6 = FUN_0001d480(&DAT_0002e5a0,*puVar11,puVar11[1]), iVar6 != 0 ||\n              ((DAT_0002e5a0 == 0 &&\n               (iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0)))))" (parenthesized_expression "(puVar11[5] != 0 && (*(int *)(puVar11[5] + 0xc) < (int)puVar11[6]))" (( "(") (binary_expression "puVar11[5] != 0 && (*(int *)(puVar11[5] + 0xc) < (int)puVar11[6])" (binary_expression "puVar11[5] != 0" (subscript_expression "puVar11[5]" (identifier "puVar11") ([ "[") (number_literal "5") (] "]")) (!= "!=") (number_literal "0")) (&& "&&") (parenthesized_expression "(*(int *)(puVar11[5] + 0xc) < (int)puVar11[6])" (( "(") (binary_expression "*(int *)(puVar11[5] + 0xc) < (int)puVar11[6]" (pointer_expression "*(int *)(puVar11[5] + 0xc)" (* "*") (cast_expression "(int *)(puVar11[5] + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11[5] + 0xc)" (( "(") (binary_expression "puVar11[5] + 0xc" (subscript_expression "puVar11[5]" (identifier "puVar11") ([ "[") (number_literal "5") (] "]")) (+ "+") (number_literal "0xc")) () ")")))) (< "<") (cast_expression "(int)puVar11[6]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "puVar11[6]" (identifier "puVar11") ([ "[") (number_literal "6") (] "]")))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((iVar6 = FUN_0001d480(&DAT_0002e5a0,*puVar11,puVar11[1]), iVar6 != 0 ||\n              ((DAT_0002e5a0 == 0 &&\n               (iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0)))))" (( "(") (parenthesized_expression "(iVar6 = FUN_0001d480(&DAT_0002e5a0,*puVar11,puVar11[1]), iVar6 != 0 ||\n              ((DAT_0002e5a0 == 0 &&\n               (iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0))))" (( "(") (comma_expression "iVar6 = FUN_0001d480(&DAT_0002e5a0,*puVar11,puVar11[1]), iVar6 != 0 ||\n              ((DAT_0002e5a0 == 0 &&\n               (iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0)))" (assignment_expression "iVar6 = FUN_0001d480(&DAT_0002e5a0,*puVar11,puVar11[1])" (identifier "iVar6") (= "=") (call_expression "FUN_0001d480(&DAT_0002e5a0,*puVar11,puVar11[1])" (identifier "FUN_0001d480") (argument_list "(&DAT_0002e5a0,*puVar11,puVar11[1])" (( "(") (pointer_expression "&DAT_0002e5a0" (& "&") (identifier "DAT_0002e5a0")) (, ",") (pointer_expression "*puVar11" (* "*") (identifier "puVar11")) (, ",") (subscript_expression "puVar11[1]" (identifier "puVar11") ([ "[") (number_literal "1") (] "]")) () ")")))) (, ",") (binary_expression "iVar6 != 0 ||\n              ((DAT_0002e5a0 == 0 &&\n               (iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0)))" (binary_expression "iVar6 != 0" (identifier "iVar6") (!= "!=") (number_literal "0")) (|| "||") (parenthesized_expression "((DAT_0002e5a0 == 0 &&\n               (iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0)))" (( "(") (parenthesized_expression "(DAT_0002e5a0 == 0 &&\n               (iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0))" (( "(") (binary_expression "DAT_0002e5a0 == 0 &&\n               (iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0)" (binary_expression "DAT_0002e5a0 == 0" (identifier "DAT_0002e5a0") (== "==") (number_literal "0")) (&& "&&") (parenthesized_expression "(iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0)" (( "(") (comma_expression "iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0" (assignment_expression "iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1])" (identifier "iVar6") (= "=") (call_expression "FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1])" (identifier "FUN_0001d480") (argument_list "(&DAT_0002e5ac,*puVar11,puVar11[1])" (( "(") (pointer_expression "&DAT_0002e5ac" (& "&") (identifier "DAT_0002e5ac")) (, ",") (pointer_expression "*puVar11" (* "*") (identifier "puVar11")) (, ",") (subscript_expression "puVar11[1]" (identifier "puVar11") ([ "[") (number_literal "1") (] "]")) () ")")))) (, ",") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0"))) () ")"))) () ")")) () ")")))) () ")")) () ")"))) () ")")) () ")")) (compound_statement "{\n        puVar1 = puVar11 + 6;\n        piVar13 = puVar11 + 5;\n        puVar11 = puVar11 + 0x3f;\n        *(undefined4 *)(*piVar13 + 0xc) = *puVar1;\n        if (DAT_0002e528 <= puVar11) goto LAB_00013e60;\n      }" ({ "{") (expression_statement "puVar1 = puVar11 + 6;" (assignment_expression "puVar1 = puVar11 + 6" (identifier "puVar1") (= "=") (binary_expression "puVar11 + 6" (identifier "puVar11") (+ "+") (number_literal "6"))) (; ";")) (expression_statement "piVar13 = puVar11 + 5;" (assignment_expression "piVar13 = puVar11 + 5" (identifier "piVar13") (= "=") (binary_expression "puVar11 + 5" (identifier "puVar11") (+ "+") (number_literal "5"))) (; ";")) (expression_statement "puVar11 = puVar11 + 0x3f;" (assignment_expression "puVar11 = puVar11 + 0x3f" (identifier "puVar11") (= "=") (binary_expression "puVar11 + 0x3f" (identifier "puVar11") (+ "+") (number_literal "0x3f"))) (; ";")) (expression_statement "*(undefined4 *)(*piVar13 + 0xc) = *puVar1;" (assignment_expression "*(undefined4 *)(*piVar13 + 0xc) = *puVar1" (pointer_expression "*(undefined4 *)(*piVar13 + 0xc)" (* "*") (cast_expression "(undefined4 *)(*piVar13 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar13 + 0xc)" (( "(") (binary_expression "*piVar13 + 0xc" (pointer_expression "*piVar13" (* "*") (identifier "piVar13")) (+ "+") (number_literal "0xc")) () ")")))) (= "=") (pointer_expression "*puVar1" (* "*") (identifier "puVar1"))) (; ";")) (if_statement "if (DAT_0002e528 <= puVar11) goto LAB_00013e60;" (if "if") (parenthesized_expression "(DAT_0002e528 <= puVar11)" (( "(") (binary_expression "DAT_0002e528 <= puVar11" (identifier "DAT_0002e528") (<= "<=") (identifier "puVar11")) () ")")) (goto_statement "goto LAB_00013e60;" (goto "goto") (statement_identifier "LAB_00013e60") (; ";"))) (} "}"))) (expression_statement "puVar11 = puVar11 + 0x3f;" (assignment_expression "puVar11 = puVar11 + 0x3f" (identifier "puVar11") (= "=") (binary_expression "puVar11 + 0x3f" (identifier "puVar11") (+ "+") (number_literal "0x3f"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar11 < DAT_0002e528)" (( "(") (binary_expression "puVar11 < DAT_0002e528" (identifier "puVar11") (< "<") (identifier "DAT_0002e528")) () ")")) (; ";")) (labeled_statement "LAB_00013e60:\n    piVar13 = DAT_0002e178;" (statement_identifier "LAB_00013e60") (: ":") (expression_statement "piVar13 = DAT_0002e178;" (assignment_expression "piVar13 = DAT_0002e178" (identifier "piVar13") (= "=") (identifier "DAT_0002e178")) (; ";"))) (if_statement "if (DAT_0002e178 != (int *)0x0) goto LAB_00013e78;" (if "if") (parenthesized_expression "(DAT_0002e178 != (int *)0x0)" (( "(") (binary_expression "DAT_0002e178 != (int *)0x0" (identifier "DAT_0002e178") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00013e78;" (goto "goto") (statement_identifier "LAB_00013e78") (; ";"))) (if_statement "if (DAT_0002e528 <= DAT_0002e524) {\n      return;\n    }" (if "if") (parenthesized_expression "(DAT_0002e528 <= DAT_0002e524)" (( "(") (binary_expression "DAT_0002e528 <= DAT_0002e524" (identifier "DAT_0002e528") (<= "<=") (identifier "DAT_0002e524")) () ")")) (compound_statement "{\n      return;\n    }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    piVar13 = DAT_0002e178;\n    if (DAT_0002e178 == (int *)0x0) {\n      return;\n    }\nLAB_00013e78:\n    do {\n      if (0 < piVar13[3]) {\n        __s = (void *)xmalloc(piVar13[3] << 2);\n        piVar13[5] = (int)__s;\n        memset(__s,0,piVar13[3] << 2);\n      }\n      piVar13 = (int *)*piVar13;\n    } while (piVar13 != (int *)0x0);\n    puVar4 = PTR_stdout_0002cfec;\n    piVar13 = DAT_0002e178;\n    if (DAT_0002e528 <= DAT_0002e524) goto joined_r0x00013f50;\n  }" (else "else") (compound_statement "{\n    piVar13 = DAT_0002e178;\n    if (DAT_0002e178 == (int *)0x0) {\n      return;\n    }\nLAB_00013e78:\n    do {\n      if (0 < piVar13[3]) {\n        __s = (void *)xmalloc(piVar13[3] << 2);\n        piVar13[5] = (int)__s;\n        memset(__s,0,piVar13[3] << 2);\n      }\n      piVar13 = (int *)*piVar13;\n    } while (piVar13 != (int *)0x0);\n    puVar4 = PTR_stdout_0002cfec;\n    piVar13 = DAT_0002e178;\n    if (DAT_0002e528 <= DAT_0002e524) goto joined_r0x00013f50;\n  }" ({ "{") (expression_statement "piVar13 = DAT_0002e178;" (assignment_expression "piVar13 = DAT_0002e178" (identifier "piVar13") (= "=") (identifier "DAT_0002e178")) (; ";")) (if_statement "if (DAT_0002e178 == (int *)0x0) {\n      return;\n    }" (if "if") (parenthesized_expression "(DAT_0002e178 == (int *)0x0)" (( "(") (binary_expression "DAT_0002e178 == (int *)0x0" (identifier "DAT_0002e178") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      return;\n    }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (labeled_statement "LAB_00013e78:\n    do {\n      if (0 < piVar13[3]) {\n        __s = (void *)xmalloc(piVar13[3] << 2);\n        piVar13[5] = (int)__s;\n        memset(__s,0,piVar13[3] << 2);\n      }\n      piVar13 = (int *)*piVar13;\n    } while (piVar13 != (int *)0x0);" (statement_identifier "LAB_00013e78") (: ":") (do_statement "do {\n      if (0 < piVar13[3]) {\n        __s = (void *)xmalloc(piVar13[3] << 2);\n        piVar13[5] = (int)__s;\n        memset(__s,0,piVar13[3] << 2);\n      }\n      piVar13 = (int *)*piVar13;\n    } while (piVar13 != (int *)0x0);" (do "do") (compound_statement "{\n      if (0 < piVar13[3]) {\n        __s = (void *)xmalloc(piVar13[3] << 2);\n        piVar13[5] = (int)__s;\n        memset(__s,0,piVar13[3] << 2);\n      }\n      piVar13 = (int *)*piVar13;\n    }" ({ "{") (if_statement "if (0 < piVar13[3]) {\n        __s = (void *)xmalloc(piVar13[3] << 2);\n        piVar13[5] = (int)__s;\n        memset(__s,0,piVar13[3] << 2);\n      }" (if "if") (parenthesized_expression "(0 < piVar13[3])" (( "(") (binary_expression "0 < piVar13[3]" (number_literal "0") (< "<") (subscript_expression "piVar13[3]" (identifier "piVar13") ([ "[") (number_literal "3") (] "]"))) () ")")) (compound_statement "{\n        __s = (void *)xmalloc(piVar13[3] << 2);\n        piVar13[5] = (int)__s;\n        memset(__s,0,piVar13[3] << 2);\n      }" ({ "{") (expression_statement "__s = (void *)xmalloc(piVar13[3] << 2);" (assignment_expression "__s = (void *)xmalloc(piVar13[3] << 2)" (identifier "__s") (= "=") (cast_expression "(void *)xmalloc(piVar13[3] << 2)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(piVar13[3] << 2)" (identifier "xmalloc") (argument_list "(piVar13[3] << 2)" (( "(") (binary_expression "piVar13[3] << 2" (subscript_expression "piVar13[3]" (identifier "piVar13") ([ "[") (number_literal "3") (] "]")) (<< "<<") (number_literal "2")) () ")"))))) (; ";")) (expression_statement "piVar13[5] = (int)__s;" (assignment_expression "piVar13[5] = (int)__s" (subscript_expression "piVar13[5]" (identifier "piVar13") ([ "[") (number_literal "5") (] "]")) (= "=") (cast_expression "(int)__s" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "__s"))) (; ";")) (expression_statement "memset(__s,0,piVar13[3] << 2);" (call_expression "memset(__s,0,piVar13[3] << 2)" (identifier "memset") (argument_list "(__s,0,piVar13[3] << 2)" (( "(") (identifier "__s") (, ",") (number_literal "0") (, ",") (binary_expression "piVar13[3] << 2" (subscript_expression "piVar13[3]" (identifier "piVar13") ([ "[") (number_literal "3") (] "]")) (<< "<<") (number_literal "2")) () ")"))) (; ";")) (} "}"))) (expression_statement "piVar13 = (int *)*piVar13;" (assignment_expression "piVar13 = (int *)*piVar13" (identifier "piVar13") (= "=") (cast_expression "(int *)*piVar13" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar13" (* "*") (identifier "piVar13")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(piVar13 != (int *)0x0)" (( "(") (binary_expression "piVar13 != (int *)0x0" (identifier "piVar13") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";"))) (expression_statement "puVar4 = PTR_stdout_0002cfec;" (assignment_expression "puVar4 = PTR_stdout_0002cfec" (identifier "puVar4") (= "=") (identifier "PTR_stdout_0002cfec")) (; ";")) (expression_statement "piVar13 = DAT_0002e178;" (assignment_expression "piVar13 = DAT_0002e178" (identifier "piVar13") (= "=") (identifier "DAT_0002e178")) (; ";")) (if_statement "if (DAT_0002e528 <= DAT_0002e524) goto joined_r0x00013f50;" (if "if") (parenthesized_expression "(DAT_0002e528 <= DAT_0002e524)" (( "(") (binary_expression "DAT_0002e528 <= DAT_0002e524" (identifier "DAT_0002e528") (<= "<=") (identifier "DAT_0002e524")) () ")")) (goto_statement "goto joined_r0x00013f50;" (goto "goto") (statement_identifier "joined_r0x00013f50") (; ";"))) (} "}")))) (expression_statement "uVar17 = 0x2e5a0;" (assignment_expression "uVar17 = 0x2e5a0" (identifier "uVar17") (= "=") (number_literal "0x2e5a0")) (; ";")) (expression_statement "puVar11 = DAT_0002e524;" (assignment_expression "puVar11 = DAT_0002e524" (identifier "puVar11") (= "=") (identifier "DAT_0002e524")) (; ";")) (labeled_statement "LAB_00013edb:\n  do {\n    if (((puVar11[5] != 0) && (*(int *)(puVar11[5] + 0xc) != 0)) &&\n       ((iVar6 = FUN_0001d480((int)uVar17,*puVar11,puVar11[1]), iVar6 != 0 ||\n        ((DAT_0002e5a0 == 0 && (iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0)\n         ))))) {\n      iVar6 = puVar11[5];\n      iVar12 = puVar11[6];\n      iVar2 = puVar11[8];\n      piVar13 = (int *)(iVar6 + 8);\n      *piVar13 = *piVar13 + iVar2;\n      puVar1 = (undefined4 *)(*(int *)(iVar6 + 0x14) + -4 + iVar12 * 4);\n      piVar13 = (int *)*puVar1;\n      if (piVar13 == (int *)0x0) {\n        *puVar1 = puVar11;\n      }\n      else {\n        if (piVar13[1] == 0 && *piVar13 == 0) {\n          piVar13[8] = piVar13[8] + iVar2;\n          puVar11 = puVar11 + 0x3f;\n          puVar4 = PTR_stdout_0002cfec;\n          piVar13 = DAT_0002e178;\n          if (DAT_0002e528 <= puVar11) break;\n          goto LAB_00013edb;\n        }\n        piVar9 = (int *)xmalloc(0xfc);\n        piVar14 = piVar9;\n        for (iVar6 = 0x3f; iVar6 != 0; iVar6 = iVar6 + -1) {\n          *piVar14 = *piVar13;\n          piVar13 = piVar13 + (uint)bVar15 * -2 + 1;\n          piVar14 = piVar14 + (uint)bVar15 * -2 + 1;\n        }\n        *piVar9 = 0;\n        piVar9[1] = 0;\n        piVar9[8] = piVar9[8] + puVar11[8];\n        *(int **)(*(int *)(puVar11[5] + 0x14) + -4 + puVar11[6] * 4) = piVar9;\n      }\n    }\n    puVar11 = puVar11 + 0x3f;\n    puVar4 = PTR_stdout_0002cfec;\n    piVar13 = DAT_0002e178;\n  } while (puVar11 < DAT_0002e528);" (statement_identifier "LAB_00013edb") (: ":") (do_statement "do {\n    if (((puVar11[5] != 0) && (*(int *)(puVar11[5] + 0xc) != 0)) &&\n       ((iVar6 = FUN_0001d480((int)uVar17,*puVar11,puVar11[1]), iVar6 != 0 ||\n        ((DAT_0002e5a0 == 0 && (iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0)\n         ))))) {\n      iVar6 = puVar11[5];\n      iVar12 = puVar11[6];\n      iVar2 = puVar11[8];\n      piVar13 = (int *)(iVar6 + 8);\n      *piVar13 = *piVar13 + iVar2;\n      puVar1 = (undefined4 *)(*(int *)(iVar6 + 0x14) + -4 + iVar12 * 4);\n      piVar13 = (int *)*puVar1;\n      if (piVar13 == (int *)0x0) {\n        *puVar1 = puVar11;\n      }\n      else {\n        if (piVar13[1] == 0 && *piVar13 == 0) {\n          piVar13[8] = piVar13[8] + iVar2;\n          puVar11 = puVar11 + 0x3f;\n          puVar4 = PTR_stdout_0002cfec;\n          piVar13 = DAT_0002e178;\n          if (DAT_0002e528 <= puVar11) break;\n          goto LAB_00013edb;\n        }\n        piVar9 = (int *)xmalloc(0xfc);\n        piVar14 = piVar9;\n        for (iVar6 = 0x3f; iVar6 != 0; iVar6 = iVar6 + -1) {\n          *piVar14 = *piVar13;\n          piVar13 = piVar13 + (uint)bVar15 * -2 + 1;\n          piVar14 = piVar14 + (uint)bVar15 * -2 + 1;\n        }\n        *piVar9 = 0;\n        piVar9[1] = 0;\n        piVar9[8] = piVar9[8] + puVar11[8];\n        *(int **)(*(int *)(puVar11[5] + 0x14) + -4 + puVar11[6] * 4) = piVar9;\n      }\n    }\n    puVar11 = puVar11 + 0x3f;\n    puVar4 = PTR_stdout_0002cfec;\n    piVar13 = DAT_0002e178;\n  } while (puVar11 < DAT_0002e528);" (do "do") (compound_statement "{\n    if (((puVar11[5] != 0) && (*(int *)(puVar11[5] + 0xc) != 0)) &&\n       ((iVar6 = FUN_0001d480((int)uVar17,*puVar11,puVar11[1]), iVar6 != 0 ||\n        ((DAT_0002e5a0 == 0 && (iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0)\n         ))))) {\n      iVar6 = puVar11[5];\n      iVar12 = puVar11[6];\n      iVar2 = puVar11[8];\n      piVar13 = (int *)(iVar6 + 8);\n      *piVar13 = *piVar13 + iVar2;\n      puVar1 = (undefined4 *)(*(int *)(iVar6 + 0x14) + -4 + iVar12 * 4);\n      piVar13 = (int *)*puVar1;\n      if (piVar13 == (int *)0x0) {\n        *puVar1 = puVar11;\n      }\n      else {\n        if (piVar13[1] == 0 && *piVar13 == 0) {\n          piVar13[8] = piVar13[8] + iVar2;\n          puVar11 = puVar11 + 0x3f;\n          puVar4 = PTR_stdout_0002cfec;\n          piVar13 = DAT_0002e178;\n          if (DAT_0002e528 <= puVar11) break;\n          goto LAB_00013edb;\n        }\n        piVar9 = (int *)xmalloc(0xfc);\n        piVar14 = piVar9;\n        for (iVar6 = 0x3f; iVar6 != 0; iVar6 = iVar6 + -1) {\n          *piVar14 = *piVar13;\n          piVar13 = piVar13 + (uint)bVar15 * -2 + 1;\n          piVar14 = piVar14 + (uint)bVar15 * -2 + 1;\n        }\n        *piVar9 = 0;\n        piVar9[1] = 0;\n        piVar9[8] = piVar9[8] + puVar11[8];\n        *(int **)(*(int *)(puVar11[5] + 0x14) + -4 + puVar11[6] * 4) = piVar9;\n      }\n    }\n    puVar11 = puVar11 + 0x3f;\n    puVar4 = PTR_stdout_0002cfec;\n    piVar13 = DAT_0002e178;\n  }" ({ "{") (if_statement "if (((puVar11[5] != 0) && (*(int *)(puVar11[5] + 0xc) != 0)) &&\n       ((iVar6 = FUN_0001d480((int)uVar17,*puVar11,puVar11[1]), iVar6 != 0 ||\n        ((DAT_0002e5a0 == 0 && (iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0)\n         ))))) {\n      iVar6 = puVar11[5];\n      iVar12 = puVar11[6];\n      iVar2 = puVar11[8];\n      piVar13 = (int *)(iVar6 + 8);\n      *piVar13 = *piVar13 + iVar2;\n      puVar1 = (undefined4 *)(*(int *)(iVar6 + 0x14) + -4 + iVar12 * 4);\n      piVar13 = (int *)*puVar1;\n      if (piVar13 == (int *)0x0) {\n        *puVar1 = puVar11;\n      }\n      else {\n        if (piVar13[1] == 0 && *piVar13 == 0) {\n          piVar13[8] = piVar13[8] + iVar2;\n          puVar11 = puVar11 + 0x3f;\n          puVar4 = PTR_stdout_0002cfec;\n          piVar13 = DAT_0002e178;\n          if (DAT_0002e528 <= puVar11) break;\n          goto LAB_00013edb;\n        }\n        piVar9 = (int *)xmalloc(0xfc);\n        piVar14 = piVar9;\n        for (iVar6 = 0x3f; iVar6 != 0; iVar6 = iVar6 + -1) {\n          *piVar14 = *piVar13;\n          piVar13 = piVar13 + (uint)bVar15 * -2 + 1;\n          piVar14 = piVar14 + (uint)bVar15 * -2 + 1;\n        }\n        *piVar9 = 0;\n        piVar9[1] = 0;\n        piVar9[8] = piVar9[8] + puVar11[8];\n        *(int **)(*(int *)(puVar11[5] + 0x14) + -4 + puVar11[6] * 4) = piVar9;\n      }\n    }" (if "if") (parenthesized_expression "(((puVar11[5] != 0) && (*(int *)(puVar11[5] + 0xc) != 0)) &&\n       ((iVar6 = FUN_0001d480((int)uVar17,*puVar11,puVar11[1]), iVar6 != 0 ||\n        ((DAT_0002e5a0 == 0 && (iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0)\n         )))))" (( "(") (binary_expression "((puVar11[5] != 0) && (*(int *)(puVar11[5] + 0xc) != 0)) &&\n       ((iVar6 = FUN_0001d480((int)uVar17,*puVar11,puVar11[1]), iVar6 != 0 ||\n        ((DAT_0002e5a0 == 0 && (iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0)\n         ))))" (parenthesized_expression "((puVar11[5] != 0) && (*(int *)(puVar11[5] + 0xc) != 0))" (( "(") (binary_expression "(puVar11[5] != 0) && (*(int *)(puVar11[5] + 0xc) != 0)" (parenthesized_expression "(puVar11[5] != 0)" (( "(") (binary_expression "puVar11[5] != 0" (subscript_expression "puVar11[5]" (identifier "puVar11") ([ "[") (number_literal "5") (] "]")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(puVar11[5] + 0xc) != 0)" (( "(") (binary_expression "*(int *)(puVar11[5] + 0xc) != 0" (pointer_expression "*(int *)(puVar11[5] + 0xc)" (* "*") (cast_expression "(int *)(puVar11[5] + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11[5] + 0xc)" (( "(") (binary_expression "puVar11[5] + 0xc" (subscript_expression "puVar11[5]" (identifier "puVar11") ([ "[") (number_literal "5") (] "]")) (+ "+") (number_literal "0xc")) () ")")))) (!= "!=") (number_literal "0")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((iVar6 = FUN_0001d480((int)uVar17,*puVar11,puVar11[1]), iVar6 != 0 ||\n        ((DAT_0002e5a0 == 0 && (iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0)\n         ))))" (( "(") (parenthesized_expression "(iVar6 = FUN_0001d480((int)uVar17,*puVar11,puVar11[1]), iVar6 != 0 ||\n        ((DAT_0002e5a0 == 0 && (iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0)\n         )))" (( "(") (comma_expression "iVar6 = FUN_0001d480((int)uVar17,*puVar11,puVar11[1]), iVar6 != 0 ||\n        ((DAT_0002e5a0 == 0 && (iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0)\n         ))" (assignment_expression "iVar6 = FUN_0001d480((int)uVar17,*puVar11,puVar11[1])" (identifier "iVar6") (= "=") (call_expression "FUN_0001d480((int)uVar17,*puVar11,puVar11[1])" (identifier "FUN_0001d480") (argument_list "((int)uVar17,*puVar11,puVar11[1])" (( "(") (cast_expression "(int)uVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar17")) (, ",") (pointer_expression "*puVar11" (* "*") (identifier "puVar11")) (, ",") (subscript_expression "puVar11[1]" (identifier "puVar11") ([ "[") (number_literal "1") (] "]")) () ")")))) (, ",") (binary_expression "iVar6 != 0 ||\n        ((DAT_0002e5a0 == 0 && (iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0)\n         ))" (binary_expression "iVar6 != 0" (identifier "iVar6") (!= "!=") (number_literal "0")) (|| "||") (parenthesized_expression "((DAT_0002e5a0 == 0 && (iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0)\n         ))" (( "(") (parenthesized_expression "(DAT_0002e5a0 == 0 && (iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0)\n         )" (( "(") (binary_expression "DAT_0002e5a0 == 0 && (iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0)" (binary_expression "DAT_0002e5a0 == 0" (identifier "DAT_0002e5a0") (== "==") (number_literal "0")) (&& "&&") (parenthesized_expression "(iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0)" (( "(") (comma_expression "iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0" (assignment_expression "iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1])" (identifier "iVar6") (= "=") (call_expression "FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1])" (identifier "FUN_0001d480") (argument_list "(&DAT_0002e5ac,*puVar11,puVar11[1])" (( "(") (pointer_expression "&DAT_0002e5ac" (& "&") (identifier "DAT_0002e5ac")) (, ",") (pointer_expression "*puVar11" (* "*") (identifier "puVar11")) (, ",") (subscript_expression "puVar11[1]" (identifier "puVar11") ([ "[") (number_literal "1") (] "]")) () ")")))) (, ",") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0"))) () ")"))) () ")")) () ")")))) () ")")) () ")"))) () ")")) (compound_statement "{\n      iVar6 = puVar11[5];\n      iVar12 = puVar11[6];\n      iVar2 = puVar11[8];\n      piVar13 = (int *)(iVar6 + 8);\n      *piVar13 = *piVar13 + iVar2;\n      puVar1 = (undefined4 *)(*(int *)(iVar6 + 0x14) + -4 + iVar12 * 4);\n      piVar13 = (int *)*puVar1;\n      if (piVar13 == (int *)0x0) {\n        *puVar1 = puVar11;\n      }\n      else {\n        if (piVar13[1] == 0 && *piVar13 == 0) {\n          piVar13[8] = piVar13[8] + iVar2;\n          puVar11 = puVar11 + 0x3f;\n          puVar4 = PTR_stdout_0002cfec;\n          piVar13 = DAT_0002e178;\n          if (DAT_0002e528 <= puVar11) break;\n          goto LAB_00013edb;\n        }\n        piVar9 = (int *)xmalloc(0xfc);\n        piVar14 = piVar9;\n        for (iVar6 = 0x3f; iVar6 != 0; iVar6 = iVar6 + -1) {\n          *piVar14 = *piVar13;\n          piVar13 = piVar13 + (uint)bVar15 * -2 + 1;\n          piVar14 = piVar14 + (uint)bVar15 * -2 + 1;\n        }\n        *piVar9 = 0;\n        piVar9[1] = 0;\n        piVar9[8] = piVar9[8] + puVar11[8];\n        *(int **)(*(int *)(puVar11[5] + 0x14) + -4 + puVar11[6] * 4) = piVar9;\n      }\n    }" ({ "{") (expression_statement "iVar6 = puVar11[5];" (assignment_expression "iVar6 = puVar11[5]" (identifier "iVar6") (= "=") (subscript_expression "puVar11[5]" (identifier "puVar11") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "iVar12 = puVar11[6];" (assignment_expression "iVar12 = puVar11[6]" (identifier "iVar12") (= "=") (subscript_expression "puVar11[6]" (identifier "puVar11") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "iVar2 = puVar11[8];" (assignment_expression "iVar2 = puVar11[8]" (identifier "iVar2") (= "=") (subscript_expression "puVar11[8]" (identifier "puVar11") ([ "[") (number_literal "8") (] "]"))) (; ";")) (expression_statement "piVar13 = (int *)(iVar6 + 8);" (assignment_expression "piVar13 = (int *)(iVar6 + 8)" (identifier "piVar13") (= "=") (cast_expression "(int *)(iVar6 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 8)" (( "(") (binary_expression "iVar6 + 8" (identifier "iVar6") (+ "+") (number_literal "8")) () ")")))) (; ";")) (expression_statement "*piVar13 = *piVar13 + iVar2;" (assignment_expression "*piVar13 = *piVar13 + iVar2" (pointer_expression "*piVar13" (* "*") (identifier "piVar13")) (= "=") (binary_expression "*piVar13 + iVar2" (pointer_expression "*piVar13" (* "*") (identifier "piVar13")) (+ "+") (identifier "iVar2"))) (; ";")) (expression_statement "puVar1 = (undefined4 *)(*(int *)(iVar6 + 0x14) + -4 + iVar12 * 4);" (assignment_expression "puVar1 = (undefined4 *)(*(int *)(iVar6 + 0x14) + -4 + iVar12 * 4)" (identifier "puVar1") (= "=") (cast_expression "(undefined4 *)(*(int *)(iVar6 + 0x14) + -4 + iVar12 * 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar6 + 0x14) + -4 + iVar12 * 4)" (( "(") (binary_expression "*(int *)(iVar6 + 0x14) + -4 + iVar12 * 4" (binary_expression "*(int *)(iVar6 + 0x14) + -4" (pointer_expression "*(int *)(iVar6 + 0x14)" (* "*") (cast_expression "(int *)(iVar6 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x14)" (( "(") (binary_expression "iVar6 + 0x14" (identifier "iVar6") (+ "+") (number_literal "0x14")) () ")")))) (+ "+") (number_literal "-4")) (+ "+") (binary_expression "iVar12 * 4" (identifier "iVar12") (* "*") (number_literal "4"))) () ")")))) (; ";")) (expression_statement "piVar13 = (int *)*puVar1;" (assignment_expression "piVar13 = (int *)*puVar1" (identifier "piVar13") (= "=") (cast_expression "(int *)*puVar1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar1" (* "*") (identifier "puVar1")))) (; ";")) (if_statement "if (piVar13 == (int *)0x0) {\n        *puVar1 = puVar11;\n      }\n      else {\n        if (piVar13[1] == 0 && *piVar13 == 0) {\n          piVar13[8] = piVar13[8] + iVar2;\n          puVar11 = puVar11 + 0x3f;\n          puVar4 = PTR_stdout_0002cfec;\n          piVar13 = DAT_0002e178;\n          if (DAT_0002e528 <= puVar11) break;\n          goto LAB_00013edb;\n        }\n        piVar9 = (int *)xmalloc(0xfc);\n        piVar14 = piVar9;\n        for (iVar6 = 0x3f; iVar6 != 0; iVar6 = iVar6 + -1) {\n          *piVar14 = *piVar13;\n          piVar13 = piVar13 + (uint)bVar15 * -2 + 1;\n          piVar14 = piVar14 + (uint)bVar15 * -2 + 1;\n        }\n        *piVar9 = 0;\n        piVar9[1] = 0;\n        piVar9[8] = piVar9[8] + puVar11[8];\n        *(int **)(*(int *)(puVar11[5] + 0x14) + -4 + puVar11[6] * 4) = piVar9;\n      }" (if "if") (parenthesized_expression "(piVar13 == (int *)0x0)" (( "(") (binary_expression "piVar13 == (int *)0x0" (identifier "piVar13") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        *puVar1 = puVar11;\n      }" ({ "{") (expression_statement "*puVar1 = puVar11;" (assignment_expression "*puVar1 = puVar11" (pointer_expression "*puVar1" (* "*") (identifier "puVar1")) (= "=") (identifier "puVar11")) (; ";")) (} "}")) (else_clause "else {\n        if (piVar13[1] == 0 && *piVar13 == 0) {\n          piVar13[8] = piVar13[8] + iVar2;\n          puVar11 = puVar11 + 0x3f;\n          puVar4 = PTR_stdout_0002cfec;\n          piVar13 = DAT_0002e178;\n          if (DAT_0002e528 <= puVar11) break;\n          goto LAB_00013edb;\n        }\n        piVar9 = (int *)xmalloc(0xfc);\n        piVar14 = piVar9;\n        for (iVar6 = 0x3f; iVar6 != 0; iVar6 = iVar6 + -1) {\n          *piVar14 = *piVar13;\n          piVar13 = piVar13 + (uint)bVar15 * -2 + 1;\n          piVar14 = piVar14 + (uint)bVar15 * -2 + 1;\n        }\n        *piVar9 = 0;\n        piVar9[1] = 0;\n        piVar9[8] = piVar9[8] + puVar11[8];\n        *(int **)(*(int *)(puVar11[5] + 0x14) + -4 + puVar11[6] * 4) = piVar9;\n      }" (else "else") (compound_statement "{\n        if (piVar13[1] == 0 && *piVar13 == 0) {\n          piVar13[8] = piVar13[8] + iVar2;\n          puVar11 = puVar11 + 0x3f;\n          puVar4 = PTR_stdout_0002cfec;\n          piVar13 = DAT_0002e178;\n          if (DAT_0002e528 <= puVar11) break;\n          goto LAB_00013edb;\n        }\n        piVar9 = (int *)xmalloc(0xfc);\n        piVar14 = piVar9;\n        for (iVar6 = 0x3f; iVar6 != 0; iVar6 = iVar6 + -1) {\n          *piVar14 = *piVar13;\n          piVar13 = piVar13 + (uint)bVar15 * -2 + 1;\n          piVar14 = piVar14 + (uint)bVar15 * -2 + 1;\n        }\n        *piVar9 = 0;\n        piVar9[1] = 0;\n        piVar9[8] = piVar9[8] + puVar11[8];\n        *(int **)(*(int *)(puVar11[5] + 0x14) + -4 + puVar11[6] * 4) = piVar9;\n      }" ({ "{") (if_statement "if (piVar13[1] == 0 && *piVar13 == 0) {\n          piVar13[8] = piVar13[8] + iVar2;\n          puVar11 = puVar11 + 0x3f;\n          puVar4 = PTR_stdout_0002cfec;\n          piVar13 = DAT_0002e178;\n          if (DAT_0002e528 <= puVar11) break;\n          goto LAB_00013edb;\n        }" (if "if") (parenthesized_expression "(piVar13[1] == 0 && *piVar13 == 0)" (( "(") (binary_expression "piVar13[1] == 0 && *piVar13 == 0" (binary_expression "piVar13[1] == 0" (subscript_expression "piVar13[1]" (identifier "piVar13") ([ "[") (number_literal "1") (] "]")) (== "==") (number_literal "0")) (&& "&&") (binary_expression "*piVar13 == 0" (pointer_expression "*piVar13" (* "*") (identifier "piVar13")) (== "==") (number_literal "0"))) () ")")) (compound_statement "{\n          piVar13[8] = piVar13[8] + iVar2;\n          puVar11 = puVar11 + 0x3f;\n          puVar4 = PTR_stdout_0002cfec;\n          piVar13 = DAT_0002e178;\n          if (DAT_0002e528 <= puVar11) break;\n          goto LAB_00013edb;\n        }" ({ "{") (expression_statement "piVar13[8] = piVar13[8] + iVar2;" (assignment_expression "piVar13[8] = piVar13[8] + iVar2" (subscript_expression "piVar13[8]" (identifier "piVar13") ([ "[") (number_literal "8") (] "]")) (= "=") (binary_expression "piVar13[8] + iVar2" (subscript_expression "piVar13[8]" (identifier "piVar13") ([ "[") (number_literal "8") (] "]")) (+ "+") (identifier "iVar2"))) (; ";")) (expression_statement "puVar11 = puVar11 + 0x3f;" (assignment_expression "puVar11 = puVar11 + 0x3f" (identifier "puVar11") (= "=") (binary_expression "puVar11 + 0x3f" (identifier "puVar11") (+ "+") (number_literal "0x3f"))) (; ";")) (expression_statement "puVar4 = PTR_stdout_0002cfec;" (assignment_expression "puVar4 = PTR_stdout_0002cfec" (identifier "puVar4") (= "=") (identifier "PTR_stdout_0002cfec")) (; ";")) (expression_statement "piVar13 = DAT_0002e178;" (assignment_expression "piVar13 = DAT_0002e178" (identifier "piVar13") (= "=") (identifier "DAT_0002e178")) (; ";")) (if_statement "if (DAT_0002e528 <= puVar11) break;" (if "if") (parenthesized_expression "(DAT_0002e528 <= puVar11)" (( "(") (binary_expression "DAT_0002e528 <= puVar11" (identifier "DAT_0002e528") (<= "<=") (identifier "puVar11")) () ")")) (break_statement "break;" (break "break") (; ";"))) (goto_statement "goto LAB_00013edb;" (goto "goto") (statement_identifier "LAB_00013edb") (; ";")) (} "}"))) (expression_statement "piVar9 = (int *)xmalloc(0xfc);" (assignment_expression "piVar9 = (int *)xmalloc(0xfc)" (identifier "piVar9") (= "=") (cast_expression "(int *)xmalloc(0xfc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(0xfc)" (identifier "xmalloc") (argument_list "(0xfc)" (( "(") (number_literal "0xfc") () ")"))))) (; ";")) (expression_statement "piVar14 = piVar9;" (assignment_expression "piVar14 = piVar9" (identifier "piVar14") (= "=") (identifier "piVar9")) (; ";")) (for_statement "for (iVar6 = 0x3f; iVar6 != 0; iVar6 = iVar6 + -1) {\n          *piVar14 = *piVar13;\n          piVar13 = piVar13 + (uint)bVar15 * -2 + 1;\n          piVar14 = piVar14 + (uint)bVar15 * -2 + 1;\n        }" (for "for") (( "(") (assignment_expression "iVar6 = 0x3f" (identifier "iVar6") (= "=") (number_literal "0x3f")) (; ";") (binary_expression "iVar6 != 0" (identifier "iVar6") (!= "!=") (number_literal "0")) (; ";") (assignment_expression "iVar6 = iVar6 + -1" (identifier "iVar6") (= "=") (binary_expression "iVar6 + -1" (identifier "iVar6") (+ "+") (number_literal "-1"))) () ")") (compound_statement "{\n          *piVar14 = *piVar13;\n          piVar13 = piVar13 + (uint)bVar15 * -2 + 1;\n          piVar14 = piVar14 + (uint)bVar15 * -2 + 1;\n        }" ({ "{") (expression_statement "*piVar14 = *piVar13;" (assignment_expression "*piVar14 = *piVar13" (pointer_expression "*piVar14" (* "*") (identifier "piVar14")) (= "=") (pointer_expression "*piVar13" (* "*") (identifier "piVar13"))) (; ";")) (expression_statement "piVar13 = piVar13 + (uint)bVar15 * -2 + 1;" (assignment_expression "piVar13 = piVar13 + (uint)bVar15 * -2 + 1" (identifier "piVar13") (= "=") (binary_expression "piVar13 + (uint)bVar15 * -2 + 1" (binary_expression "piVar13 + (uint)bVar15 * -2" (identifier "piVar13") (+ "+") (binary_expression "(uint)bVar15 * -2" (cast_expression "(uint)bVar15" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar15")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar14 = piVar14 + (uint)bVar15 * -2 + 1;" (assignment_expression "piVar14 = piVar14 + (uint)bVar15 * -2 + 1" (identifier "piVar14") (= "=") (binary_expression "piVar14 + (uint)bVar15 * -2 + 1" (binary_expression "piVar14 + (uint)bVar15 * -2" (identifier "piVar14") (+ "+") (binary_expression "(uint)bVar15 * -2" (cast_expression "(uint)bVar15" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar15")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "*piVar9 = 0;" (assignment_expression "*piVar9 = 0" (pointer_expression "*piVar9" (* "*") (identifier "piVar9")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar9[1] = 0;" (assignment_expression "piVar9[1] = 0" (subscript_expression "piVar9[1]" (identifier "piVar9") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar9[8] = piVar9[8] + puVar11[8];" (assignment_expression "piVar9[8] = piVar9[8] + puVar11[8]" (subscript_expression "piVar9[8]" (identifier "piVar9") ([ "[") (number_literal "8") (] "]")) (= "=") (binary_expression "piVar9[8] + puVar11[8]" (subscript_expression "piVar9[8]" (identifier "piVar9") ([ "[") (number_literal "8") (] "]")) (+ "+") (subscript_expression "puVar11[8]" (identifier "puVar11") ([ "[") (number_literal "8") (] "]")))) (; ";")) (expression_statement "*(int **)(*(int *)(puVar11[5] + 0x14) + -4 + puVar11[6] * 4) = piVar9;" (assignment_expression "*(int **)(*(int *)(puVar11[5] + 0x14) + -4 + puVar11[6] * 4) = piVar9" (pointer_expression "*(int **)(*(int *)(puVar11[5] + 0x14) + -4 + puVar11[6] * 4)" (* "*") (cast_expression "(int **)(*(int *)(puVar11[5] + 0x14) + -4 + puVar11[6] * 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(puVar11[5] + 0x14) + -4 + puVar11[6] * 4)" (( "(") (binary_expression "*(int *)(puVar11[5] + 0x14) + -4 + puVar11[6] * 4" (binary_expression "*(int *)(puVar11[5] + 0x14) + -4" (pointer_expression "*(int *)(puVar11[5] + 0x14)" (* "*") (cast_expression "(int *)(puVar11[5] + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11[5] + 0x14)" (( "(") (binary_expression "puVar11[5] + 0x14" (subscript_expression "puVar11[5]" (identifier "puVar11") ([ "[") (number_literal "5") (] "]")) (+ "+") (number_literal "0x14")) () ")")))) (+ "+") (number_literal "-4")) (+ "+") (binary_expression "puVar11[6] * 4" (subscript_expression "puVar11[6]" (identifier "puVar11") ([ "[") (number_literal "6") (] "]")) (* "*") (number_literal "4"))) () ")")))) (= "=") (identifier "piVar9")) (; ";")) (} "}")))) (} "}"))) (expression_statement "puVar11 = puVar11 + 0x3f;" (assignment_expression "puVar11 = puVar11 + 0x3f" (identifier "puVar11") (= "=") (binary_expression "puVar11 + 0x3f" (identifier "puVar11") (+ "+") (number_literal "0x3f"))) (; ";")) (expression_statement "puVar4 = PTR_stdout_0002cfec;" (assignment_expression "puVar4 = PTR_stdout_0002cfec" (identifier "puVar4") (= "=") (identifier "PTR_stdout_0002cfec")) (; ";")) (expression_statement "piVar13 = DAT_0002e178;" (assignment_expression "piVar13 = DAT_0002e178" (identifier "piVar13") (= "=") (identifier "DAT_0002e178")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar11 < DAT_0002e528)" (( "(") (binary_expression "puVar11 < DAT_0002e528" (identifier "puVar11") (< "<") (identifier "DAT_0002e528")) () ")")) (; ";"))) (labeled_statement "joined_r0x00013f50:\n  do {\n    puVar5 = PTR_stdout_0002cfec;\n    if (piVar13 == (int *)0x0) {\n      PTR_stdout_0002cfec = puVar4;\n      return;\n    }\n    PTR_stdout_0002cfec = puVar4;\n    if ((piVar13[3] != 0) && ((DAT_0002d1c0 == 0 || (piVar13[2] != 0)))) {\n      DAT_0002d4f4 = 0;\n      DAT_0002d4f8 = 0;\n      piVar14 = piVar13;\n      __stream = (FILE *)FUN_0001c940(piVar13,0x10,FUN_00013230,piVar13);\n      uVar8 = DAT_0002d148;\n      if (__stream != (FILE *)0x0) {\n        if ((int)DAT_0002d148 < 1) {\n          piVar9 = (int *)piVar13[5];\n        }\n        else {\n          pcVar7 = (char *)dcgettext("gprof","\n\nTop %d Lines:\n\n     Line      Count\n\n",5);\n          fprintf(__stream,pcVar7,uVar8);\n          qsort((void *)piVar13[5],piVar13[3],4,FUN_00013170);\n          uVar8 = DAT_0002d148;\n          if (piVar13[3] <= (int)DAT_0002d148) {\n            uVar8 = piVar13[3];\n          }\n          piVar9 = (int *)piVar13[5];\n          uVar19 = (ulonglong)uVar8;\n          if (((0 < (int)uVar8) && (iVar6 = *piVar9, iVar6 != 0)) &&\n             (piVar10 = *(int **)(iVar6 + 0x20), piVar10 != (int *)0x0)) {\n            iVar12 = 0;\n            do {\n              iVar12 = iVar12 + 1;\n              piVar14 = piVar10;\n              fprintf(__stream,"%9d %10lu\n",*(undefined4 *)(iVar6 + 0x18),piVar10);\n              piVar9 = (int *)piVar13[5];\n              if ((iVar12 == (int)uVar19) || (iVar6 = piVar9[iVar12], iVar6 == 0)) break;\n              piVar10 = *(int **)(iVar6 + 0x20);\n            } while (piVar10 != (int *)0x0);\n          }\n        }\n        free(piVar9);\n        piVar13[5] = 0;\n        uVar16 = 5;\n        pcVar7 = (char *)dcgettext("gprof","\nExecution Summary:\n\n",5);\n        fprintf(__stream,pcVar7,uVar16,piVar14);\n        iVar6 = DAT_0002d4f8;\n        pcVar7 = (char *)dcgettext("gprof","%9ld   Executable lines in this file\n",5);\n        fprintf(__stream,pcVar7,iVar6);\n        iVar6 = DAT_0002d4f4;\n        pcVar7 = (char *)dcgettext("gprof","%9ld   Lines executed\n",5);\n        fprintf(__stream,pcVar7,iVar6);\n        fVar3 = _DAT_000221d8;\n        if (DAT_0002d4f8 != 0) {\n          fVar3 = ((float)DAT_0002d4f4 * _DAT_000221d8) / (float)DAT_0002d4f8;\n        }\n        dVar18 = (double)fVar3;\n        pcVar7 = (char *)dcgettext("gprof","%9.2f   Percent of the file executed\n",5,piVar14,dVar18\n                                  );\n        fprintf(__stream,pcVar7,SUB84(dVar18,0),(int)((ulonglong)dVar18 >> 0x20));\n        iVar6 = piVar13[2];\n        pcVar7 = (char *)dcgettext("gprof","\n%9lu   Total number of line executions\n",5);\n        fprintf(__stream,pcVar7,iVar6);\n        if (DAT_0002d4f8 == 0) {\n          dVar18 = 0.0;\n        }\n        else {\n          dVar18 = (double)(uint)piVar13[2] / (double)DAT_0002d4f8;\n        }\n        pcVar7 = (char *)dcgettext("gprof","%9.2f   Average executions per line\n",5,piVar14,dVar18)\n        ;\n        fprintf(__stream,pcVar7,SUB84(dVar18,0),(int)((ulonglong)dVar18 >> 0x20));\n        if (*(FILE **)puVar5 != __stream) {\n          fclose(__stream);\n        }\n      }\n    }\n    puVar4 = PTR_stdout_0002cfec;\n    piVar13 = (int *)*piVar13;\n    PTR_stdout_0002cfec = puVar5;\n  } while( true );" (statement_identifier "joined_r0x00013f50") (: ":") (do_statement "do {\n    puVar5 = PTR_stdout_0002cfec;\n    if (piVar13 == (int *)0x0) {\n      PTR_stdout_0002cfec = puVar4;\n      return;\n    }\n    PTR_stdout_0002cfec = puVar4;\n    if ((piVar13[3] != 0) && ((DAT_0002d1c0 == 0 || (piVar13[2] != 0)))) {\n      DAT_0002d4f4 = 0;\n      DAT_0002d4f8 = 0;\n      piVar14 = piVar13;\n      __stream = (FILE *)FUN_0001c940(piVar13,0x10,FUN_00013230,piVar13);\n      uVar8 = DAT_0002d148;\n      if (__stream != (FILE *)0x0) {\n        if ((int)DAT_0002d148 < 1) {\n          piVar9 = (int *)piVar13[5];\n        }\n        else {\n          pcVar7 = (char *)dcgettext("gprof","\n\nTop %d Lines:\n\n     Line      Count\n\n",5);\n          fprintf(__stream,pcVar7,uVar8);\n          qsort((void *)piVar13[5],piVar13[3],4,FUN_00013170);\n          uVar8 = DAT_0002d148;\n          if (piVar13[3] <= (int)DAT_0002d148) {\n            uVar8 = piVar13[3];\n          }\n          piVar9 = (int *)piVar13[5];\n          uVar19 = (ulonglong)uVar8;\n          if (((0 < (int)uVar8) && (iVar6 = *piVar9, iVar6 != 0)) &&\n             (piVar10 = *(int **)(iVar6 + 0x20), piVar10 != (int *)0x0)) {\n            iVar12 = 0;\n            do {\n              iVar12 = iVar12 + 1;\n              piVar14 = piVar10;\n              fprintf(__stream,"%9d %10lu\n",*(undefined4 *)(iVar6 + 0x18),piVar10);\n              piVar9 = (int *)piVar13[5];\n              if ((iVar12 == (int)uVar19) || (iVar6 = piVar9[iVar12], iVar6 == 0)) break;\n              piVar10 = *(int **)(iVar6 + 0x20);\n            } while (piVar10 != (int *)0x0);\n          }\n        }\n        free(piVar9);\n        piVar13[5] = 0;\n        uVar16 = 5;\n        pcVar7 = (char *)dcgettext("gprof","\nExecution Summary:\n\n",5);\n        fprintf(__stream,pcVar7,uVar16,piVar14);\n        iVar6 = DAT_0002d4f8;\n        pcVar7 = (char *)dcgettext("gprof","%9ld   Executable lines in this file\n",5);\n        fprintf(__stream,pcVar7,iVar6);\n        iVar6 = DAT_0002d4f4;\n        pcVar7 = (char *)dcgettext("gprof","%9ld   Lines executed\n",5);\n        fprintf(__stream,pcVar7,iVar6);\n        fVar3 = _DAT_000221d8;\n        if (DAT_0002d4f8 != 0) {\n          fVar3 = ((float)DAT_0002d4f4 * _DAT_000221d8) / (float)DAT_0002d4f8;\n        }\n        dVar18 = (double)fVar3;\n        pcVar7 = (char *)dcgettext("gprof","%9.2f   Percent of the file executed\n",5,piVar14,dVar18\n                                  );\n        fprintf(__stream,pcVar7,SUB84(dVar18,0),(int)((ulonglong)dVar18 >> 0x20));\n        iVar6 = piVar13[2];\n        pcVar7 = (char *)dcgettext("gprof","\n%9lu   Total number of line executions\n",5);\n        fprintf(__stream,pcVar7,iVar6);\n        if (DAT_0002d4f8 == 0) {\n          dVar18 = 0.0;\n        }\n        else {\n          dVar18 = (double)(uint)piVar13[2] / (double)DAT_0002d4f8;\n        }\n        pcVar7 = (char *)dcgettext("gprof","%9.2f   Average executions per line\n",5,piVar14,dVar18)\n        ;\n        fprintf(__stream,pcVar7,SUB84(dVar18,0),(int)((ulonglong)dVar18 >> 0x20));\n        if (*(FILE **)puVar5 != __stream) {\n          fclose(__stream);\n        }\n      }\n    }\n    puVar4 = PTR_stdout_0002cfec;\n    piVar13 = (int *)*piVar13;\n    PTR_stdout_0002cfec = puVar5;\n  } while( true );" (do "do") (compound_statement "{\n    puVar5 = PTR_stdout_0002cfec;\n    if (piVar13 == (int *)0x0) {\n      PTR_stdout_0002cfec = puVar4;\n      return;\n    }\n    PTR_stdout_0002cfec = puVar4;\n    if ((piVar13[3] != 0) && ((DAT_0002d1c0 == 0 || (piVar13[2] != 0)))) {\n      DAT_0002d4f4 = 0;\n      DAT_0002d4f8 = 0;\n      piVar14 = piVar13;\n      __stream = (FILE *)FUN_0001c940(piVar13,0x10,FUN_00013230,piVar13);\n      uVar8 = DAT_0002d148;\n      if (__stream != (FILE *)0x0) {\n        if ((int)DAT_0002d148 < 1) {\n          piVar9 = (int *)piVar13[5];\n        }\n        else {\n          pcVar7 = (char *)dcgettext("gprof","\n\nTop %d Lines:\n\n     Line      Count\n\n",5);\n          fprintf(__stream,pcVar7,uVar8);\n          qsort((void *)piVar13[5],piVar13[3],4,FUN_00013170);\n          uVar8 = DAT_0002d148;\n          if (piVar13[3] <= (int)DAT_0002d148) {\n            uVar8 = piVar13[3];\n          }\n          piVar9 = (int *)piVar13[5];\n          uVar19 = (ulonglong)uVar8;\n          if (((0 < (int)uVar8) && (iVar6 = *piVar9, iVar6 != 0)) &&\n             (piVar10 = *(int **)(iVar6 + 0x20), piVar10 != (int *)0x0)) {\n            iVar12 = 0;\n            do {\n              iVar12 = iVar12 + 1;\n              piVar14 = piVar10;\n              fprintf(__stream,"%9d %10lu\n",*(undefined4 *)(iVar6 + 0x18),piVar10);\n              piVar9 = (int *)piVar13[5];\n              if ((iVar12 == (int)uVar19) || (iVar6 = piVar9[iVar12], iVar6 == 0)) break;\n              piVar10 = *(int **)(iVar6 + 0x20);\n            } while (piVar10 != (int *)0x0);\n          }\n        }\n        free(piVar9);\n        piVar13[5] = 0;\n        uVar16 = 5;\n        pcVar7 = (char *)dcgettext("gprof","\nExecution Summary:\n\n",5);\n        fprintf(__stream,pcVar7,uVar16,piVar14);\n        iVar6 = DAT_0002d4f8;\n        pcVar7 = (char *)dcgettext("gprof","%9ld   Executable lines in this file\n",5);\n        fprintf(__stream,pcVar7,iVar6);\n        iVar6 = DAT_0002d4f4;\n        pcVar7 = (char *)dcgettext("gprof","%9ld   Lines executed\n",5);\n        fprintf(__stream,pcVar7,iVar6);\n        fVar3 = _DAT_000221d8;\n        if (DAT_0002d4f8 != 0) {\n          fVar3 = ((float)DAT_0002d4f4 * _DAT_000221d8) / (float)DAT_0002d4f8;\n        }\n        dVar18 = (double)fVar3;\n        pcVar7 = (char *)dcgettext("gprof","%9.2f   Percent of the file executed\n",5,piVar14,dVar18\n                                  );\n        fprintf(__stream,pcVar7,SUB84(dVar18,0),(int)((ulonglong)dVar18 >> 0x20));\n        iVar6 = piVar13[2];\n        pcVar7 = (char *)dcgettext("gprof","\n%9lu   Total number of line executions\n",5);\n        fprintf(__stream,pcVar7,iVar6);\n        if (DAT_0002d4f8 == 0) {\n          dVar18 = 0.0;\n        }\n        else {\n          dVar18 = (double)(uint)piVar13[2] / (double)DAT_0002d4f8;\n        }\n        pcVar7 = (char *)dcgettext("gprof","%9.2f   Average executions per line\n",5,piVar14,dVar18)\n        ;\n        fprintf(__stream,pcVar7,SUB84(dVar18,0),(int)((ulonglong)dVar18 >> 0x20));\n        if (*(FILE **)puVar5 != __stream) {\n          fclose(__stream);\n        }\n      }\n    }\n    puVar4 = PTR_stdout_0002cfec;\n    piVar13 = (int *)*piVar13;\n    PTR_stdout_0002cfec = puVar5;\n  }" ({ "{") (expression_statement "puVar5 = PTR_stdout_0002cfec;" (assignment_expression "puVar5 = PTR_stdout_0002cfec" (identifier "puVar5") (= "=") (identifier "PTR_stdout_0002cfec")) (; ";")) (if_statement "if (piVar13 == (int *)0x0) {\n      PTR_stdout_0002cfec = puVar4;\n      return;\n    }" (if "if") (parenthesized_expression "(piVar13 == (int *)0x0)" (( "(") (binary_expression "piVar13 == (int *)0x0" (identifier "piVar13") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      PTR_stdout_0002cfec = puVar4;\n      return;\n    }" ({ "{") (expression_statement "PTR_stdout_0002cfec = puVar4;" (assignment_expression "PTR_stdout_0002cfec = puVar4" (identifier "PTR_stdout_0002cfec") (= "=") (identifier "puVar4")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "PTR_stdout_0002cfec = puVar4;" (assignment_expression "PTR_stdout_0002cfec = puVar4" (identifier "PTR_stdout_0002cfec") (= "=") (identifier "puVar4")) (; ";")) (if_statement "if ((piVar13[3] != 0) && ((DAT_0002d1c0 == 0 || (piVar13[2] != 0)))) {\n      DAT_0002d4f4 = 0;\n      DAT_0002d4f8 = 0;\n      piVar14 = piVar13;\n      __stream = (FILE *)FUN_0001c940(piVar13,0x10,FUN_00013230,piVar13);\n      uVar8 = DAT_0002d148;\n      if (__stream != (FILE *)0x0) {\n        if ((int)DAT_0002d148 < 1) {\n          piVar9 = (int *)piVar13[5];\n        }\n        else {\n          pcVar7 = (char *)dcgettext("gprof","\n\nTop %d Lines:\n\n     Line      Count\n\n",5);\n          fprintf(__stream,pcVar7,uVar8);\n          qsort((void *)piVar13[5],piVar13[3],4,FUN_00013170);\n          uVar8 = DAT_0002d148;\n          if (piVar13[3] <= (int)DAT_0002d148) {\n            uVar8 = piVar13[3];\n          }\n          piVar9 = (int *)piVar13[5];\n          uVar19 = (ulonglong)uVar8;\n          if (((0 < (int)uVar8) && (iVar6 = *piVar9, iVar6 != 0)) &&\n             (piVar10 = *(int **)(iVar6 + 0x20), piVar10 != (int *)0x0)) {\n            iVar12 = 0;\n            do {\n              iVar12 = iVar12 + 1;\n              piVar14 = piVar10;\n              fprintf(__stream,"%9d %10lu\n",*(undefined4 *)(iVar6 + 0x18),piVar10);\n              piVar9 = (int *)piVar13[5];\n              if ((iVar12 == (int)uVar19) || (iVar6 = piVar9[iVar12], iVar6 == 0)) break;\n              piVar10 = *(int **)(iVar6 + 0x20);\n            } while (piVar10 != (int *)0x0);\n          }\n        }\n        free(piVar9);\n        piVar13[5] = 0;\n        uVar16 = 5;\n        pcVar7 = (char *)dcgettext("gprof","\nExecution Summary:\n\n",5);\n        fprintf(__stream,pcVar7,uVar16,piVar14);\n        iVar6 = DAT_0002d4f8;\n        pcVar7 = (char *)dcgettext("gprof","%9ld   Executable lines in this file\n",5);\n        fprintf(__stream,pcVar7,iVar6);\n        iVar6 = DAT_0002d4f4;\n        pcVar7 = (char *)dcgettext("gprof","%9ld   Lines executed\n",5);\n        fprintf(__stream,pcVar7,iVar6);\n        fVar3 = _DAT_000221d8;\n        if (DAT_0002d4f8 != 0) {\n          fVar3 = ((float)DAT_0002d4f4 * _DAT_000221d8) / (float)DAT_0002d4f8;\n        }\n        dVar18 = (double)fVar3;\n        pcVar7 = (char *)dcgettext("gprof","%9.2f   Percent of the file executed\n",5,piVar14,dVar18\n                                  );\n        fprintf(__stream,pcVar7,SUB84(dVar18,0),(int)((ulonglong)dVar18 >> 0x20));\n        iVar6 = piVar13[2];\n        pcVar7 = (char *)dcgettext("gprof","\n%9lu   Total number of line executions\n",5);\n        fprintf(__stream,pcVar7,iVar6);\n        if (DAT_0002d4f8 == 0) {\n          dVar18 = 0.0;\n        }\n        else {\n          dVar18 = (double)(uint)piVar13[2] / (double)DAT_0002d4f8;\n        }\n        pcVar7 = (char *)dcgettext("gprof","%9.2f   Average executions per line\n",5,piVar14,dVar18)\n        ;\n        fprintf(__stream,pcVar7,SUB84(dVar18,0),(int)((ulonglong)dVar18 >> 0x20));\n        if (*(FILE **)puVar5 != __stream) {\n          fclose(__stream);\n        }\n      }\n    }" (if "if") (parenthesized_expression "((piVar13[3] != 0) && ((DAT_0002d1c0 == 0 || (piVar13[2] != 0))))" (( "(") (binary_expression "(piVar13[3] != 0) && ((DAT_0002d1c0 == 0 || (piVar13[2] != 0)))" (parenthesized_expression "(piVar13[3] != 0)" (( "(") (binary_expression "piVar13[3] != 0" (subscript_expression "piVar13[3]" (identifier "piVar13") ([ "[") (number_literal "3") (] "]")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((DAT_0002d1c0 == 0 || (piVar13[2] != 0)))" (( "(") (parenthesized_expression "(DAT_0002d1c0 == 0 || (piVar13[2] != 0))" (( "(") (binary_expression "DAT_0002d1c0 == 0 || (piVar13[2] != 0)" (binary_expression "DAT_0002d1c0 == 0" (identifier "DAT_0002d1c0") (== "==") (number_literal "0")) (|| "||") (parenthesized_expression "(piVar13[2] != 0)" (( "(") (binary_expression "piVar13[2] != 0" (subscript_expression "piVar13[2]" (identifier "piVar13") ([ "[") (number_literal "2") (] "]")) (!= "!=") (number_literal "0")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n      DAT_0002d4f4 = 0;\n      DAT_0002d4f8 = 0;\n      piVar14 = piVar13;\n      __stream = (FILE *)FUN_0001c940(piVar13,0x10,FUN_00013230,piVar13);\n      uVar8 = DAT_0002d148;\n      if (__stream != (FILE *)0x0) {\n        if ((int)DAT_0002d148 < 1) {\n          piVar9 = (int *)piVar13[5];\n        }\n        else {\n          pcVar7 = (char *)dcgettext("gprof","\n\nTop %d Lines:\n\n     Line      Count\n\n",5);\n          fprintf(__stream,pcVar7,uVar8);\n          qsort((void *)piVar13[5],piVar13[3],4,FUN_00013170);\n          uVar8 = DAT_0002d148;\n          if (piVar13[3] <= (int)DAT_0002d148) {\n            uVar8 = piVar13[3];\n          }\n          piVar9 = (int *)piVar13[5];\n          uVar19 = (ulonglong)uVar8;\n          if (((0 < (int)uVar8) && (iVar6 = *piVar9, iVar6 != 0)) &&\n             (piVar10 = *(int **)(iVar6 + 0x20), piVar10 != (int *)0x0)) {\n            iVar12 = 0;\n            do {\n              iVar12 = iVar12 + 1;\n              piVar14 = piVar10;\n              fprintf(__stream,"%9d %10lu\n",*(undefined4 *)(iVar6 + 0x18),piVar10);\n              piVar9 = (int *)piVar13[5];\n              if ((iVar12 == (int)uVar19) || (iVar6 = piVar9[iVar12], iVar6 == 0)) break;\n              piVar10 = *(int **)(iVar6 + 0x20);\n            } while (piVar10 != (int *)0x0);\n          }\n        }\n        free(piVar9);\n        piVar13[5] = 0;\n        uVar16 = 5;\n        pcVar7 = (char *)dcgettext("gprof","\nExecution Summary:\n\n",5);\n        fprintf(__stream,pcVar7,uVar16,piVar14);\n        iVar6 = DAT_0002d4f8;\n        pcVar7 = (char *)dcgettext("gprof","%9ld   Executable lines in this file\n",5);\n        fprintf(__stream,pcVar7,iVar6);\n        iVar6 = DAT_0002d4f4;\n        pcVar7 = (char *)dcgettext("gprof","%9ld   Lines executed\n",5);\n        fprintf(__stream,pcVar7,iVar6);\n        fVar3 = _DAT_000221d8;\n        if (DAT_0002d4f8 != 0) {\n          fVar3 = ((float)DAT_0002d4f4 * _DAT_000221d8) / (float)DAT_0002d4f8;\n        }\n        dVar18 = (double)fVar3;\n        pcVar7 = (char *)dcgettext("gprof","%9.2f   Percent of the file executed\n",5,piVar14,dVar18\n                                  );\n        fprintf(__stream,pcVar7,SUB84(dVar18,0),(int)((ulonglong)dVar18 >> 0x20));\n        iVar6 = piVar13[2];\n        pcVar7 = (char *)dcgettext("gprof","\n%9lu   Total number of line executions\n",5);\n        fprintf(__stream,pcVar7,iVar6);\n        if (DAT_0002d4f8 == 0) {\n          dVar18 = 0.0;\n        }\n        else {\n          dVar18 = (double)(uint)piVar13[2] / (double)DAT_0002d4f8;\n        }\n        pcVar7 = (char *)dcgettext("gprof","%9.2f   Average executions per line\n",5,piVar14,dVar18)\n        ;\n        fprintf(__stream,pcVar7,SUB84(dVar18,0),(int)((ulonglong)dVar18 >> 0x20));\n        if (*(FILE **)puVar5 != __stream) {\n          fclose(__stream);\n        }\n      }\n    }" ({ "{") (expression_statement "DAT_0002d4f4 = 0;" (assignment_expression "DAT_0002d4f4 = 0" (identifier "DAT_0002d4f4") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_0002d4f8 = 0;" (assignment_expression "DAT_0002d4f8 = 0" (identifier "DAT_0002d4f8") (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar14 = piVar13;" (assignment_expression "piVar14 = piVar13" (identifier "piVar14") (= "=") (identifier "piVar13")) (; ";")) (expression_statement "__stream = (FILE *)FUN_0001c940(piVar13,0x10,FUN_00013230,piVar13);" (assignment_expression "__stream = (FILE *)FUN_0001c940(piVar13,0x10,FUN_00013230,piVar13)" (identifier "__stream") (= "=") (cast_expression "(FILE *)FUN_0001c940(piVar13,0x10,FUN_00013230,piVar13)" (( "(") (type_descriptor "FILE *" (type_identifier "FILE") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0001c940(piVar13,0x10,FUN_00013230,piVar13)" (identifier "FUN_0001c940") (argument_list "(piVar13,0x10,FUN_00013230,piVar13)" (( "(") (identifier "piVar13") (, ",") (number_literal "0x10") (, ",") (identifier "FUN_00013230") (, ",") (identifier "piVar13") () ")"))))) (; ";")) (expression_statement "uVar8 = DAT_0002d148;" (assignment_expression "uVar8 = DAT_0002d148" (identifier "uVar8") (= "=") (identifier "DAT_0002d148")) (; ";")) (if_statement "if (__stream != (FILE *)0x0) {\n        if ((int)DAT_0002d148 < 1) {\n          piVar9 = (int *)piVar13[5];\n        }\n        else {\n          pcVar7 = (char *)dcgettext("gprof","\n\nTop %d Lines:\n\n     Line      Count\n\n",5);\n          fprintf(__stream,pcVar7,uVar8);\n          qsort((void *)piVar13[5],piVar13[3],4,FUN_00013170);\n          uVar8 = DAT_0002d148;\n          if (piVar13[3] <= (int)DAT_0002d148) {\n            uVar8 = piVar13[3];\n          }\n          piVar9 = (int *)piVar13[5];\n          uVar19 = (ulonglong)uVar8;\n          if (((0 < (int)uVar8) && (iVar6 = *piVar9, iVar6 != 0)) &&\n             (piVar10 = *(int **)(iVar6 + 0x20), piVar10 != (int *)0x0)) {\n            iVar12 = 0;\n            do {\n              iVar12 = iVar12 + 1;\n              piVar14 = piVar10;\n              fprintf(__stream,"%9d %10lu\n",*(undefined4 *)(iVar6 + 0x18),piVar10);\n              piVar9 = (int *)piVar13[5];\n              if ((iVar12 == (int)uVar19) || (iVar6 = piVar9[iVar12], iVar6 == 0)) break;\n              piVar10 = *(int **)(iVar6 + 0x20);\n            } while (piVar10 != (int *)0x0);\n          }\n        }\n        free(piVar9);\n        piVar13[5] = 0;\n        uVar16 = 5;\n        pcVar7 = (char *)dcgettext("gprof","\nExecution Summary:\n\n",5);\n        fprintf(__stream,pcVar7,uVar16,piVar14);\n        iVar6 = DAT_0002d4f8;\n        pcVar7 = (char *)dcgettext("gprof","%9ld   Executable lines in this file\n",5);\n        fprintf(__stream,pcVar7,iVar6);\n        iVar6 = DAT_0002d4f4;\n        pcVar7 = (char *)dcgettext("gprof","%9ld   Lines executed\n",5);\n        fprintf(__stream,pcVar7,iVar6);\n        fVar3 = _DAT_000221d8;\n        if (DAT_0002d4f8 != 0) {\n          fVar3 = ((float)DAT_0002d4f4 * _DAT_000221d8) / (float)DAT_0002d4f8;\n        }\n        dVar18 = (double)fVar3;\n        pcVar7 = (char *)dcgettext("gprof","%9.2f   Percent of the file executed\n",5,piVar14,dVar18\n                                  );\n        fprintf(__stream,pcVar7,SUB84(dVar18,0),(int)((ulonglong)dVar18 >> 0x20));\n        iVar6 = piVar13[2];\n        pcVar7 = (char *)dcgettext("gprof","\n%9lu   Total number of line executions\n",5);\n        fprintf(__stream,pcVar7,iVar6);\n        if (DAT_0002d4f8 == 0) {\n          dVar18 = 0.0;\n        }\n        else {\n          dVar18 = (double)(uint)piVar13[2] / (double)DAT_0002d4f8;\n        }\n        pcVar7 = (char *)dcgettext("gprof","%9.2f   Average executions per line\n",5,piVar14,dVar18)\n        ;\n        fprintf(__stream,pcVar7,SUB84(dVar18,0),(int)((ulonglong)dVar18 >> 0x20));\n        if (*(FILE **)puVar5 != __stream) {\n          fclose(__stream);\n        }\n      }" (if "if") (parenthesized_expression "(__stream != (FILE *)0x0)" (( "(") (binary_expression "__stream != (FILE *)0x0" (identifier "__stream") (!= "!=") (cast_expression "(FILE *)0x0" (( "(") (type_descriptor "FILE *" (type_identifier "FILE") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        if ((int)DAT_0002d148 < 1) {\n          piVar9 = (int *)piVar13[5];\n        }\n        else {\n          pcVar7 = (char *)dcgettext("gprof","\n\nTop %d Lines:\n\n     Line      Count\n\n",5);\n          fprintf(__stream,pcVar7,uVar8);\n          qsort((void *)piVar13[5],piVar13[3],4,FUN_00013170);\n          uVar8 = DAT_0002d148;\n          if (piVar13[3] <= (int)DAT_0002d148) {\n            uVar8 = piVar13[3];\n          }\n          piVar9 = (int *)piVar13[5];\n          uVar19 = (ulonglong)uVar8;\n          if (((0 < (int)uVar8) && (iVar6 = *piVar9, iVar6 != 0)) &&\n             (piVar10 = *(int **)(iVar6 + 0x20), piVar10 != (int *)0x0)) {\n            iVar12 = 0;\n            do {\n              iVar12 = iVar12 + 1;\n              piVar14 = piVar10;\n              fprintf(__stream,"%9d %10lu\n",*(undefined4 *)(iVar6 + 0x18),piVar10);\n              piVar9 = (int *)piVar13[5];\n              if ((iVar12 == (int)uVar19) || (iVar6 = piVar9[iVar12], iVar6 == 0)) break;\n              piVar10 = *(int **)(iVar6 + 0x20);\n            } while (piVar10 != (int *)0x0);\n          }\n        }\n        free(piVar9);\n        piVar13[5] = 0;\n        uVar16 = 5;\n        pcVar7 = (char *)dcgettext("gprof","\nExecution Summary:\n\n",5);\n        fprintf(__stream,pcVar7,uVar16,piVar14);\n        iVar6 = DAT_0002d4f8;\n        pcVar7 = (char *)dcgettext("gprof","%9ld   Executable lines in this file\n",5);\n        fprintf(__stream,pcVar7,iVar6);\n        iVar6 = DAT_0002d4f4;\n        pcVar7 = (char *)dcgettext("gprof","%9ld   Lines executed\n",5);\n        fprintf(__stream,pcVar7,iVar6);\n        fVar3 = _DAT_000221d8;\n        if (DAT_0002d4f8 != 0) {\n          fVar3 = ((float)DAT_0002d4f4 * _DAT_000221d8) / (float)DAT_0002d4f8;\n        }\n        dVar18 = (double)fVar3;\n        pcVar7 = (char *)dcgettext("gprof","%9.2f   Percent of the file executed\n",5,piVar14,dVar18\n                                  );\n        fprintf(__stream,pcVar7,SUB84(dVar18,0),(int)((ulonglong)dVar18 >> 0x20));\n        iVar6 = piVar13[2];\n        pcVar7 = (char *)dcgettext("gprof","\n%9lu   Total number of line executions\n",5);\n        fprintf(__stream,pcVar7,iVar6);\n        if (DAT_0002d4f8 == 0) {\n          dVar18 = 0.0;\n        }\n        else {\n          dVar18 = (double)(uint)piVar13[2] / (double)DAT_0002d4f8;\n        }\n        pcVar7 = (char *)dcgettext("gprof","%9.2f   Average executions per line\n",5,piVar14,dVar18)\n        ;\n        fprintf(__stream,pcVar7,SUB84(dVar18,0),(int)((ulonglong)dVar18 >> 0x20));\n        if (*(FILE **)puVar5 != __stream) {\n          fclose(__stream);\n        }\n      }" ({ "{") (if_statement "if ((int)DAT_0002d148 < 1) {\n          piVar9 = (int *)piVar13[5];\n        }\n        else {\n          pcVar7 = (char *)dcgettext("gprof","\n\nTop %d Lines:\n\n     Line      Count\n\n",5);\n          fprintf(__stream,pcVar7,uVar8);\n          qsort((void *)piVar13[5],piVar13[3],4,FUN_00013170);\n          uVar8 = DAT_0002d148;\n          if (piVar13[3] <= (int)DAT_0002d148) {\n            uVar8 = piVar13[3];\n          }\n          piVar9 = (int *)piVar13[5];\n          uVar19 = (ulonglong)uVar8;\n          if (((0 < (int)uVar8) && (iVar6 = *piVar9, iVar6 != 0)) &&\n             (piVar10 = *(int **)(iVar6 + 0x20), piVar10 != (int *)0x0)) {\n            iVar12 = 0;\n            do {\n              iVar12 = iVar12 + 1;\n              piVar14 = piVar10;\n              fprintf(__stream,"%9d %10lu\n",*(undefined4 *)(iVar6 + 0x18),piVar10);\n              piVar9 = (int *)piVar13[5];\n              if ((iVar12 == (int)uVar19) || (iVar6 = piVar9[iVar12], iVar6 == 0)) break;\n              piVar10 = *(int **)(iVar6 + 0x20);\n            } while (piVar10 != (int *)0x0);\n          }\n        }" (if "if") (parenthesized_expression "((int)DAT_0002d148 < 1)" (( "(") (binary_expression "(int)DAT_0002d148 < 1" (cast_expression "(int)DAT_0002d148" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "DAT_0002d148")) (< "<") (number_literal "1")) () ")")) (compound_statement "{\n          piVar9 = (int *)piVar13[5];\n        }" ({ "{") (expression_statement "piVar9 = (int *)piVar13[5];" (assignment_expression "piVar9 = (int *)piVar13[5]" (identifier "piVar9") (= "=") (cast_expression "(int *)piVar13[5]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar13[5]" (identifier "piVar13") ([ "[") (number_literal "5") (] "]")))) (; ";")) (} "}")) (else_clause "else {\n          pcVar7 = (char *)dcgettext("gprof","\n\nTop %d Lines:\n\n     Line      Count\n\n",5);\n          fprintf(__stream,pcVar7,uVar8);\n          qsort((void *)piVar13[5],piVar13[3],4,FUN_00013170);\n          uVar8 = DAT_0002d148;\n          if (piVar13[3] <= (int)DAT_0002d148) {\n            uVar8 = piVar13[3];\n          }\n          piVar9 = (int *)piVar13[5];\n          uVar19 = (ulonglong)uVar8;\n          if (((0 < (int)uVar8) && (iVar6 = *piVar9, iVar6 != 0)) &&\n             (piVar10 = *(int **)(iVar6 + 0x20), piVar10 != (int *)0x0)) {\n            iVar12 = 0;\n            do {\n              iVar12 = iVar12 + 1;\n              piVar14 = piVar10;\n              fprintf(__stream,"%9d %10lu\n",*(undefined4 *)(iVar6 + 0x18),piVar10);\n              piVar9 = (int *)piVar13[5];\n              if ((iVar12 == (int)uVar19) || (iVar6 = piVar9[iVar12], iVar6 == 0)) break;\n              piVar10 = *(int **)(iVar6 + 0x20);\n            } while (piVar10 != (int *)0x0);\n          }\n        }" (else "else") (compound_statement "{\n          pcVar7 = (char *)dcgettext("gprof","\n\nTop %d Lines:\n\n     Line      Count\n\n",5);\n          fprintf(__stream,pcVar7,uVar8);\n          qsort((void *)piVar13[5],piVar13[3],4,FUN_00013170);\n          uVar8 = DAT_0002d148;\n          if (piVar13[3] <= (int)DAT_0002d148) {\n            uVar8 = piVar13[3];\n          }\n          piVar9 = (int *)piVar13[5];\n          uVar19 = (ulonglong)uVar8;\n          if (((0 < (int)uVar8) && (iVar6 = *piVar9, iVar6 != 0)) &&\n             (piVar10 = *(int **)(iVar6 + 0x20), piVar10 != (int *)0x0)) {\n            iVar12 = 0;\n            do {\n              iVar12 = iVar12 + 1;\n              piVar14 = piVar10;\n              fprintf(__stream,"%9d %10lu\n",*(undefined4 *)(iVar6 + 0x18),piVar10);\n              piVar9 = (int *)piVar13[5];\n              if ((iVar12 == (int)uVar19) || (iVar6 = piVar9[iVar12], iVar6 == 0)) break;\n              piVar10 = *(int **)(iVar6 + 0x20);\n            } while (piVar10 != (int *)0x0);\n          }\n        }" ({ "{") (expression_statement "pcVar7 = (char *)dcgettext("gprof","\n\nTop %d Lines:\n\n     Line      Count\n\n",5);" (assignment_expression "pcVar7 = (char *)dcgettext("gprof","\n\nTop %d Lines:\n\n     Line      Count\n\n",5)" (identifier "pcVar7") (= "=") (cast_expression "(char *)dcgettext("gprof","\n\nTop %d Lines:\n\n     Line      Count\n\n",5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext("gprof","\n\nTop %d Lines:\n\n     Line      Count\n\n",5)" (identifier "dcgettext") (argument_list "("gprof","\n\nTop %d Lines:\n\n     Line      Count\n\n",5)" (( "(") (string_literal ""gprof"" (" """) (string_content "gprof") (" """)) (, ",") (string_literal ""\n\nTop %d Lines:\n\n     Line      Count\n\n"" (" """) (escape_sequence "\n") (escape_sequence "\n") (string_content "Top %d Lines:") (escape_sequence "\n") (escape_sequence "\n") (string_content "     Line      Count") (escape_sequence "\n") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")"))))) (; ";")) (expression_statement "fprintf(__stream,pcVar7,uVar8);" (call_expression "fprintf(__stream,pcVar7,uVar8)" (identifier "fprintf") (argument_list "(__stream,pcVar7,uVar8)" (( "(") (identifier "__stream") (, ",") (identifier "pcVar7") (, ",") (identifier "uVar8") () ")"))) (; ";")) (expression_statement "qsort((void *)piVar13[5],piVar13[3],4,FUN_00013170);" (call_expression "qsort((void *)piVar13[5],piVar13[3],4,FUN_00013170)" (identifier "qsort") (argument_list "((void *)piVar13[5],piVar13[3],4,FUN_00013170)" (( "(") (cast_expression "(void *)piVar13[5]" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar13[5]" (identifier "piVar13") ([ "[") (number_literal "5") (] "]"))) (, ",") (subscript_expression "piVar13[3]" (identifier "piVar13") ([ "[") (number_literal "3") (] "]")) (, ",") (number_literal "4") (, ",") (identifier "FUN_00013170") () ")"))) (; ";")) (expression_statement "uVar8 = DAT_0002d148;" (assignment_expression "uVar8 = DAT_0002d148" (identifier "uVar8") (= "=") (identifier "DAT_0002d148")) (; ";")) (if_statement "if (piVar13[3] <= (int)DAT_0002d148) {\n            uVar8 = piVar13[3];\n          }" (if "if") (parenthesized_expression "(piVar13[3] <= (int)DAT_0002d148)" (( "(") (binary_expression "piVar13[3] <= (int)DAT_0002d148" (subscript_expression "piVar13[3]" (identifier "piVar13") ([ "[") (number_literal "3") (] "]")) (<= "<=") (cast_expression "(int)DAT_0002d148" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "DAT_0002d148"))) () ")")) (compound_statement "{\n            uVar8 = piVar13[3];\n          }" ({ "{") (expression_statement "uVar8 = piVar13[3];" (assignment_expression "uVar8 = piVar13[3]" (identifier "uVar8") (= "=") (subscript_expression "piVar13[3]" (identifier "piVar13") ([ "[") (number_literal "3") (] "]"))) (; ";")) (} "}"))) (expression_statement "piVar9 = (int *)piVar13[5];" (assignment_expression "piVar9 = (int *)piVar13[5]" (identifier "piVar9") (= "=") (cast_expression "(int *)piVar13[5]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar13[5]" (identifier "piVar13") ([ "[") (number_literal "5") (] "]")))) (; ";")) (expression_statement "uVar19 = (ulonglong)uVar8;" (assignment_expression "uVar19 = (ulonglong)uVar8" (identifier "uVar19") (= "=") (cast_expression "(ulonglong)uVar8" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar8"))) (; ";")) (if_statement "if (((0 < (int)uVar8) && (iVar6 = *piVar9, iVar6 != 0)) &&\n             (piVar10 = *(int **)(iVar6 + 0x20), piVar10 != (int *)0x0)) {\n            iVar12 = 0;\n            do {\n              iVar12 = iVar12 + 1;\n              piVar14 = piVar10;\n              fprintf(__stream,"%9d %10lu\n",*(undefined4 *)(iVar6 + 0x18),piVar10);\n              piVar9 = (int *)piVar13[5];\n              if ((iVar12 == (int)uVar19) || (iVar6 = piVar9[iVar12], iVar6 == 0)) break;\n              piVar10 = *(int **)(iVar6 + 0x20);\n            } while (piVar10 != (int *)0x0);\n          }" (if "if") (parenthesized_expression "(((0 < (int)uVar8) && (iVar6 = *piVar9, iVar6 != 0)) &&\n             (piVar10 = *(int **)(iVar6 + 0x20), piVar10 != (int *)0x0))" (( "(") (binary_expression "((0 < (int)uVar8) && (iVar6 = *piVar9, iVar6 != 0)) &&\n             (piVar10 = *(int **)(iVar6 + 0x20), piVar10 != (int *)0x0)" (parenthesized_expression "((0 < (int)uVar8) && (iVar6 = *piVar9, iVar6 != 0))" (( "(") (binary_expression "(0 < (int)uVar8) && (iVar6 = *piVar9, iVar6 != 0)" (parenthesized_expression "(0 < (int)uVar8)" (( "(") (binary_expression "0 < (int)uVar8" (number_literal "0") (< "<") (cast_expression "(int)uVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar8"))) () ")")) (&& "&&") (parenthesized_expression "(iVar6 = *piVar9, iVar6 != 0)" (( "(") (comma_expression "iVar6 = *piVar9, iVar6 != 0" (assignment_expression "iVar6 = *piVar9" (identifier "iVar6") (= "=") (pointer_expression "*piVar9" (* "*") (identifier "piVar9"))) (, ",") (binary_expression "iVar6 != 0" (identifier "iVar6") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(piVar10 = *(int **)(iVar6 + 0x20), piVar10 != (int *)0x0)" (( "(") (comma_expression "piVar10 = *(int **)(iVar6 + 0x20), piVar10 != (int *)0x0" (assignment_expression "piVar10 = *(int **)(iVar6 + 0x20)" (identifier "piVar10") (= "=") (pointer_expression "*(int **)(iVar6 + 0x20)" (* "*") (cast_expression "(int **)(iVar6 + 0x20)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar6 + 0x20)" (( "(") (binary_expression "iVar6 + 0x20" (identifier "iVar6") (+ "+") (number_literal "0x20")) () ")"))))) (, ",") (binary_expression "piVar10 != (int *)0x0" (identifier "piVar10") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (compound_statement "{\n            iVar12 = 0;\n            do {\n              iVar12 = iVar12 + 1;\n              piVar14 = piVar10;\n              fprintf(__stream,"%9d %10lu\n",*(undefined4 *)(iVar6 + 0x18),piVar10);\n              piVar9 = (int *)piVar13[5];\n              if ((iVar12 == (int)uVar19) || (iVar6 = piVar9[iVar12], iVar6 == 0)) break;\n              piVar10 = *(int **)(iVar6 + 0x20);\n            } while (piVar10 != (int *)0x0);\n          }" ({ "{") (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" (identifier "iVar12") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n              iVar12 = iVar12 + 1;\n              piVar14 = piVar10;\n              fprintf(__stream,"%9d %10lu\n",*(undefined4 *)(iVar6 + 0x18),piVar10);\n              piVar9 = (int *)piVar13[5];\n              if ((iVar12 == (int)uVar19) || (iVar6 = piVar9[iVar12], iVar6 == 0)) break;\n              piVar10 = *(int **)(iVar6 + 0x20);\n            } while (piVar10 != (int *)0x0);" (do "do") (compound_statement "{\n              iVar12 = iVar12 + 1;\n              piVar14 = piVar10;\n              fprintf(__stream,"%9d %10lu\n",*(undefined4 *)(iVar6 + 0x18),piVar10);\n              piVar9 = (int *)piVar13[5];\n              if ((iVar12 == (int)uVar19) || (iVar6 = piVar9[iVar12], iVar6 == 0)) break;\n              piVar10 = *(int **)(iVar6 + 0x20);\n            }" ({ "{") (expression_statement "iVar12 = iVar12 + 1;" (assignment_expression "iVar12 = iVar12 + 1" (identifier "iVar12") (= "=") (binary_expression "iVar12 + 1" (identifier "iVar12") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar14 = piVar10;" (assignment_expression "piVar14 = piVar10" (identifier "piVar14") (= "=") (identifier "piVar10")) (; ";")) (expression_statement "fprintf(__stream,"%9d %10lu\n",*(undefined4 *)(iVar6 + 0x18),piVar10);" (call_expression "fprintf(__stream,"%9d %10lu\n",*(undefined4 *)(iVar6 + 0x18),piVar10)" (identifier "fprintf") (argument_list "(__stream,"%9d %10lu\n",*(undefined4 *)(iVar6 + 0x18),piVar10)" (( "(") (identifier "__stream") (, ",") (string_literal ""%9d %10lu\n"" (" """) (string_content "%9d %10lu") (escape_sequence "\n") (" """)) (, ",") (pointer_expression "*(undefined4 *)(iVar6 + 0x18)" (* "*") (cast_expression "(undefined4 *)(iVar6 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x18)" (( "(") (binary_expression "iVar6 + 0x18" (identifier "iVar6") (+ "+") (number_literal "0x18")) () ")")))) (, ",") (identifier "piVar10") () ")"))) (; ";")) (expression_statement "piVar9 = (int *)piVar13[5];" (assignment_expression "piVar9 = (int *)piVar13[5]" (identifier "piVar9") (= "=") (cast_expression "(int *)piVar13[5]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar13[5]" (identifier "piVar13") ([ "[") (number_literal "5") (] "]")))) (; ";")) (if_statement "if ((iVar12 == (int)uVar19) || (iVar6 = piVar9[iVar12], iVar6 == 0)) break;" (if "if") (parenthesized_expression "((iVar12 == (int)uVar19) || (iVar6 = piVar9[iVar12], iVar6 == 0))" (( "(") (binary_expression "(iVar12 == (int)uVar19) || (iVar6 = piVar9[iVar12], iVar6 == 0)" (parenthesized_expression "(iVar12 == (int)uVar19)" (( "(") (binary_expression "iVar12 == (int)uVar19" (identifier "iVar12") (== "==") (cast_expression "(int)uVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar19"))) () ")")) (|| "||") (parenthesized_expression "(iVar6 = piVar9[iVar12], iVar6 == 0)" (( "(") (comma_expression "iVar6 = piVar9[iVar12], iVar6 == 0" (assignment_expression "iVar6 = piVar9[iVar12]" (identifier "iVar6") (= "=") (subscript_expression "piVar9[iVar12]" (identifier "piVar9") ([ "[") (identifier "iVar12") (] "]"))) (, ",") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0"))) () ")"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "piVar10 = *(int **)(iVar6 + 0x20);" (assignment_expression "piVar10 = *(int **)(iVar6 + 0x20)" (identifier "piVar10") (= "=") (pointer_expression "*(int **)(iVar6 + 0x20)" (* "*") (cast_expression "(int **)(iVar6 + 0x20)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar6 + 0x20)" (( "(") (binary_expression "iVar6 + 0x20" (identifier "iVar6") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(piVar10 != (int *)0x0)" (( "(") (binary_expression "piVar10 != (int *)0x0" (identifier "piVar10") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (} "}"))) (} "}")))) (expression_statement "free(piVar9);" (call_expression "free(piVar9)" (identifier "free") (argument_list "(piVar9)" (( "(") (identifier "piVar9") () ")"))) (; ";")) (expression_statement "piVar13[5] = 0;" (assignment_expression "piVar13[5] = 0" (subscript_expression "piVar13[5]" (identifier "piVar13") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar16 = 5;" (assignment_expression "uVar16 = 5" (identifier "uVar16") (= "=") (number_literal "5")) (; ";")) (expression_statement "pcVar7 = (char *)dcgettext("gprof","\nExecution Summary:\n\n",5);" (assignment_expression "pcVar7 = (char *)dcgettext("gprof","\nExecution Summary:\n\n",5)" (identifier "pcVar7") (= "=") (cast_expression "(char *)dcgettext("gprof","\nExecution Summary:\n\n",5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext("gprof","\nExecution Summary:\n\n",5)" (identifier "dcgettext") (argument_list "("gprof","\nExecution Summary:\n\n",5)" (( "(") (string_literal ""gprof"" (" """) (string_content "gprof") (" """)) (, ",") (string_literal ""\nExecution Summary:\n\n"" (" """) (escape_sequence "\n") (string_content "Execution Summary:") (escape_sequence "\n") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")"))))) (; ";")) (expression_statement "fprintf(__stream,pcVar7,uVar16,piVar14);" (call_expression "fprintf(__stream,pcVar7,uVar16,piVar14)" (identifier "fprintf") (argument_list "(__stream,pcVar7,uVar16,piVar14)" (( "(") (identifier "__stream") (, ",") (identifier "pcVar7") (, ",") (identifier "uVar16") (, ",") (identifier "piVar14") () ")"))) (; ";")) (expression_statement "iVar6 = DAT_0002d4f8;" (assignment_expression "iVar6 = DAT_0002d4f8" (identifier "iVar6") (= "=") (identifier "DAT_0002d4f8")) (; ";")) (expression_statement "pcVar7 = (char *)dcgettext("gprof","%9ld   Executable lines in this file\n",5);" (assignment_expression "pcVar7 = (char *)dcgettext("gprof","%9ld   Executable lines in this file\n",5)" (identifier "pcVar7") (= "=") (cast_expression "(char *)dcgettext("gprof","%9ld   Executable lines in this file\n",5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext("gprof","%9ld   Executable lines in this file\n",5)" (identifier "dcgettext") (argument_list "("gprof","%9ld   Executable lines in this file\n",5)" (( "(") (string_literal ""gprof"" (" """) (string_content "gprof") (" """)) (, ",") (string_literal ""%9ld   Executable lines in this file\n"" (" """) (string_content "%9ld   Executable lines in this file") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")"))))) (; ";")) (expression_statement "fprintf(__stream,pcVar7,iVar6);" (call_expression "fprintf(__stream,pcVar7,iVar6)" (identifier "fprintf") (argument_list "(__stream,pcVar7,iVar6)" (( "(") (identifier "__stream") (, ",") (identifier "pcVar7") (, ",") (identifier "iVar6") () ")"))) (; ";")) (expression_statement "iVar6 = DAT_0002d4f4;" (assignment_expression "iVar6 = DAT_0002d4f4" (identifier "iVar6") (= "=") (identifier "DAT_0002d4f4")) (; ";")) (expression_statement "pcVar7 = (char *)dcgettext("gprof","%9ld   Lines executed\n",5);" (assignment_expression "pcVar7 = (char *)dcgettext("gprof","%9ld   Lines executed\n",5)" (identifier "pcVar7") (= "=") (cast_expression "(char *)dcgettext("gprof","%9ld   Lines executed\n",5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext("gprof","%9ld   Lines executed\n",5)" (identifier "dcgettext") (argument_list "("gprof","%9ld   Lines executed\n",5)" (( "(") (string_literal ""gprof"" (" """) (string_content "gprof") (" """)) (, ",") (string_literal ""%9ld   Lines executed\n"" (" """) (string_content "%9ld   Lines executed") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")"))))) (; ";")) (expression_statement "fprintf(__stream,pcVar7,iVar6);" (call_expression "fprintf(__stream,pcVar7,iVar6)" (identifier "fprintf") (argument_list "(__stream,pcVar7,iVar6)" (( "(") (identifier "__stream") (, ",") (identifier "pcVar7") (, ",") (identifier "iVar6") () ")"))) (; ";")) (expression_statement "fVar3 = _DAT_000221d8;" (assignment_expression "fVar3 = _DAT_000221d8" (identifier "fVar3") (= "=") (identifier "_DAT_000221d8")) (; ";")) (if_statement "if (DAT_0002d4f8 != 0) {\n          fVar3 = ((float)DAT_0002d4f4 * _DAT_000221d8) / (float)DAT_0002d4f8;\n        }" (if "if") (parenthesized_expression "(DAT_0002d4f8 != 0)" (( "(") (binary_expression "DAT_0002d4f8 != 0" (identifier "DAT_0002d4f8") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          fVar3 = ((float)DAT_0002d4f4 * _DAT_000221d8) / (float)DAT_0002d4f8;\n        }" ({ "{") (expression_statement "fVar3 = ((float)DAT_0002d4f4 * _DAT_000221d8) / (float)DAT_0002d4f8;" (assignment_expression "fVar3 = ((float)DAT_0002d4f4 * _DAT_000221d8) / (float)DAT_0002d4f8" (identifier "fVar3") (= "=") (binary_expression "((float)DAT_0002d4f4 * _DAT_000221d8) / (float)DAT_0002d4f8" (parenthesized_expression "((float)DAT_0002d4f4 * _DAT_000221d8)" (( "(") (binary_expression "(float)DAT_0002d4f4 * _DAT_000221d8" (cast_expression "(float)DAT_0002d4f4" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "DAT_0002d4f4")) (* "*") (identifier "_DAT_000221d8")) () ")")) (/ "/") (cast_expression "(float)DAT_0002d4f8" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "DAT_0002d4f8")))) (; ";")) (} "}"))) (expression_statement "dVar18 = (double)fVar3;" (assignment_expression "dVar18 = (double)fVar3" (identifier "dVar18") (= "=") (cast_expression "(double)fVar3" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar3"))) (; ";")) (expression_statement "pcVar7 = (char *)dcgettext("gprof","%9.2f   Percent of the file executed\n",5,piVar14,dVar18\n                                  );" (assignment_expression "pcVar7 = (char *)dcgettext("gprof","%9.2f   Percent of the file executed\n",5,piVar14,dVar18\n                                  )" (identifier "pcVar7") (= "=") (cast_expression "(char *)dcgettext("gprof","%9.2f   Percent of the file executed\n",5,piVar14,dVar18\n                                  )" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext("gprof","%9.2f   Percent of the file executed\n",5,piVar14,dVar18\n                                  )" (identifier "dcgettext") (argument_list "("gprof","%9.2f   Percent of the file executed\n",5,piVar14,dVar18\n                                  )" (( "(") (string_literal ""gprof"" (" """) (string_content "gprof") (" """)) (, ",") (string_literal ""%9.2f   Percent of the file executed\n"" (" """) (string_content "%9.2f   Percent of the file executed") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") (, ",") (identifier "piVar14") (, ",") (identifier "dVar18") () ")"))))) (; ";")) (expression_statement "fprintf(__stream,pcVar7,SUB84(dVar18,0),(int)((ulonglong)dVar18 >> 0x20));" (call_expression "fprintf(__stream,pcVar7,SUB84(dVar18,0),(int)((ulonglong)dVar18 >> 0x20))" (identifier "fprintf") (argument_list "(__stream,pcVar7,SUB84(dVar18,0),(int)((ulonglong)dVar18 >> 0x20))" (( "(") (identifier "__stream") (, ",") (identifier "pcVar7") (, ",") (call_expression "SUB84(dVar18,0)" (identifier "SUB84") (argument_list "(dVar18,0)" (( "(") (identifier "dVar18") (, ",") (number_literal "0") () ")"))) (, ",") (cast_expression "(int)((ulonglong)dVar18 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)dVar18 >> 0x20)" (( "(") (binary_expression "(ulonglong)dVar18 >> 0x20" (cast_expression "(ulonglong)dVar18" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar18")) (>> ">>") (number_literal "0x20")) () ")"))) () ")"))) (; ";")) (expression_statement "iVar6 = piVar13[2];" (assignment_expression "iVar6 = piVar13[2]" (identifier "iVar6") (= "=") (subscript_expression "piVar13[2]" (identifier "piVar13") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "pcVar7 = (char *)dcgettext("gprof","\n%9lu   Total number of line executions\n",5);" (assignment_expression "pcVar7 = (char *)dcgettext("gprof","\n%9lu   Total number of line executions\n",5)" (identifier "pcVar7") (= "=") (cast_expression "(char *)dcgettext("gprof","\n%9lu   Total number of line executions\n",5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext("gprof","\n%9lu   Total number of line executions\n",5)" (identifier "dcgettext") (argument_list "("gprof","\n%9lu   Total number of line executions\n",5)" (( "(") (string_literal ""gprof"" (" """) (string_content "gprof") (" """)) (, ",") (string_literal ""\n%9lu   Total number of line executions\n"" (" """) (escape_sequence "\n") (string_content "%9lu   Total number of line executions") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")"))))) (; ";")) (expression_statement "fprintf(__stream,pcVar7,iVar6);" (call_expression "fprintf(__stream,pcVar7,iVar6)" (identifier "fprintf") (argument_list "(__stream,pcVar7,iVar6)" (( "(") (identifier "__stream") (, ",") (identifier "pcVar7") (, ",") (identifier "iVar6") () ")"))) (; ";")) (if_statement "if (DAT_0002d4f8 == 0) {\n          dVar18 = 0.0;\n        }\n        else {\n          dVar18 = (double)(uint)piVar13[2] / (double)DAT_0002d4f8;\n        }" (if "if") (parenthesized_expression "(DAT_0002d4f8 == 0)" (( "(") (binary_expression "DAT_0002d4f8 == 0" (identifier "DAT_0002d4f8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          dVar18 = 0.0;\n        }" ({ "{") (expression_statement "dVar18 = 0.0;" (assignment_expression "dVar18 = 0.0" (identifier "dVar18") (= "=") (number_literal "0.0")) (; ";")) (} "}")) (else_clause "else {\n          dVar18 = (double)(uint)piVar13[2] / (double)DAT_0002d4f8;\n        }" (else "else") (compound_statement "{\n          dVar18 = (double)(uint)piVar13[2] / (double)DAT_0002d4f8;\n        }" ({ "{") (expression_statement "dVar18 = (double)(uint)piVar13[2] / (double)DAT_0002d4f8;" (assignment_expression "dVar18 = (double)(uint)piVar13[2] / (double)DAT_0002d4f8" (identifier "dVar18") (= "=") (binary_expression "(double)(uint)piVar13[2] / (double)DAT_0002d4f8" (cast_expression "(double)(uint)piVar13[2]" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (cast_expression "(uint)piVar13[2]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "piVar13[2]" (identifier "piVar13") ([ "[") (number_literal "2") (] "]")))) (/ "/") (cast_expression "(double)DAT_0002d4f8" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0002d4f8")))) (; ";")) (} "}")))) (expression_statement "pcVar7 = (char *)dcgettext("gprof","%9.2f   Average executions per line\n",5,piVar14,dVar18)\n        ;" (assignment_expression "pcVar7 = (char *)dcgettext("gprof","%9.2f   Average executions per line\n",5,piVar14,dVar18)" (identifier "pcVar7") (= "=") (cast_expression "(char *)dcgettext("gprof","%9.2f   Average executions per line\n",5,piVar14,dVar18)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext("gprof","%9.2f   Average executions per line\n",5,piVar14,dVar18)" (identifier "dcgettext") (argument_list "("gprof","%9.2f   Average executions per line\n",5,piVar14,dVar18)" (( "(") (string_literal ""gprof"" (" """) (string_content "gprof") (" """)) (, ",") (string_literal ""%9.2f   Average executions per line\n"" (" """) (string_content "%9.2f   Average executions per line") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") (, ",") (identifier "piVar14") (, ",") (identifier "dVar18") () ")"))))) (; ";")) (expression_statement "fprintf(__stream,pcVar7,SUB84(dVar18,0),(int)((ulonglong)dVar18 >> 0x20));" (call_expression "fprintf(__stream,pcVar7,SUB84(dVar18,0),(int)((ulonglong)dVar18 >> 0x20))" (identifier "fprintf") (argument_list "(__stream,pcVar7,SUB84(dVar18,0),(int)((ulonglong)dVar18 >> 0x20))" (( "(") (identifier "__stream") (, ",") (identifier "pcVar7") (, ",") (call_expression "SUB84(dVar18,0)" (identifier "SUB84") (argument_list "(dVar18,0)" (( "(") (identifier "dVar18") (, ",") (number_literal "0") () ")"))) (, ",") (cast_expression "(int)((ulonglong)dVar18 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)dVar18 >> 0x20)" (( "(") (binary_expression "(ulonglong)dVar18 >> 0x20" (cast_expression "(ulonglong)dVar18" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar18")) (>> ">>") (number_literal "0x20")) () ")"))) () ")"))) (; ";")) (if_statement "if (*(FILE **)puVar5 != __stream) {\n          fclose(__stream);\n        }" (if "if") (parenthesized_expression "(*(FILE **)puVar5 != __stream)" (( "(") (binary_expression "*(FILE **)puVar5 != __stream" (pointer_expression "*(FILE **)puVar5" (* "*") (cast_expression "(FILE **)puVar5" (( "(") (type_descriptor "FILE **" (type_identifier "FILE") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "puVar5"))) (!= "!=") (identifier "__stream")) () ")")) (compound_statement "{\n          fclose(__stream);\n        }" ({ "{") (expression_statement "fclose(__stream);" (call_expression "fclose(__stream)" (identifier "fclose") (argument_list "(__stream)" (( "(") (identifier "__stream") () ")"))) (; ";")) (} "}"))) (} "}"))) (} "}"))) (expression_statement "puVar4 = PTR_stdout_0002cfec;" (assignment_expression "puVar4 = PTR_stdout_0002cfec" (identifier "puVar4") (= "=") (identifier "PTR_stdout_0002cfec")) (; ";")) (expression_statement "piVar13 = (int *)*piVar13;" (assignment_expression "piVar13 = (int *)*piVar13" (identifier "piVar13") (= "=") (cast_expression "(int *)*piVar13" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar13" (* "*") (identifier "piVar13")))) (; ";")) (expression_statement "PTR_stdout_0002cfec = puVar5;" (assignment_expression "PTR_stdout_0002cfec = puVar5" (identifier "PTR_stdout_0002cfec") (= "=") (identifier "puVar5")) (; ";")) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";"))) (} "}")))

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

void function_1(void)

{
  type_1 **ppSVar1;
  type_2 *puVar2;
  type_2 var_8;
  float fVar4;
  type_3 **ppsVar5;
  type_4 *puVar6;
  type_4 *puVar7;
  long lVar8;
  void **ppvVar9;
  type_5 *var_3;
  type_6 *var_15;
  char *pcVar11;
  type_7 uVar12;
  void *var_20;
  int *piVar14;
  type_1 *var_21;
  type_5 *var_4;
  type_1 *var_12;
  int var_9;
  int *var_10;
  int *var_11;
  type_8 bVar21;
  type_9 uVar22;
  type_1 *pSVar23;
  type_10 uVar24;
  double dVar25;
  type_11 uVar26;
  
  bVar21 = 0;
  var_4 = symtab.base;
  if (symtab.base < symtab.limit) {
    do {
      while (((var_4->file != (type_1 *)0x0 && (var_4->file->num_lines < var_4->line_num)
              ) && ((var_3 = var_1(var_2 + 8,var_4->addr), var_3 != (type_5 *)0x0 ||
                    ((var_2[8].len == 0 &&
                     (var_3 = var_1(var_2 + 9,var_4->addr), var_3 == (type_5 *)0x0))))))) {
        var_10 = &var_4->line_num;
        ppSVar1 = &var_4->file;
        var_4 = var_4 + 1;
        (*ppSVar1)->num_lines = *var_10;
        if (symtab.limit <= var_4) goto LAB_00013e60;
      }
      var_4 = var_4 + 1;
    } while (var_4 < symtab.limit);
LAB_00013e60:
    var_12 = var_5;
    if (var_5 != (type_1 *)0x0) goto LAB_00013e78;
    if (symtab.limit <= symtab.base) {
      return;
    }
  }
  else {
    var_12 = var_5;
    if (var_5 == (type_1 *)0x0) {
      return;
    }
LAB_00013e78:
    do {
      if (0 < var_12->num_lines) {
        ppvVar9 = (void **)var_6(var_12->num_lines << 2);
        var_12->line = ppvVar9;
        var_7(ppvVar9,0,var_12->num_lines << 2);
      }
      ppsVar5 = &var_12->next;
      var_12 = *ppsVar5;
    } while (*ppsVar5 != (type_3 *)0x0);
    puVar6 = PTR_stdout_0002cfec;
    var_12 = var_5;
    if (symtab.limit <= symtab.base) goto joined_r0x00013f50;
  }
  uVar24 = 0x2e5a0;
  var_4 = symtab.base;
LAB_00013edb:
  do {
    if (((var_4->file != (type_1 *)0x0) && (var_4->file->num_lines != 0)) &&
       ((var_3 = var_1((type_12 *)uVar24,var_4->addr), var_3 != (type_5 *)0x0 ||
        ((var_2[8].len == 0 && (var_3 = var_1(var_2 + 9,var_4->addr), var_3 == (type_5 *)0x0))
        )))) {
      var_12 = var_4->file;
      var_9 = var_4->line_num;
      var_8 = var_4->ncalls;
      puVar2 = &var_12->ncalls;
      *puVar2 = *puVar2 + var_8;
      ppvVar9 = var_12->line + var_9 + -1;
      var_10 = (int *)*ppvVar9;
      if (var_10 == (int *)0x0) {
        *ppvVar9 = var_4;
      }
      else {
        if (var_10[1] == 0 && *var_10 == 0) {
          var_10[8] = var_10[8] + var_8;
          var_4 = var_4 + 1;
          puVar6 = PTR_stdout_0002cfec;
          var_12 = var_5;
          if (symtab.limit <= var_4) break;
          goto LAB_00013edb;
        }
        piVar14 = (int *)var_6(0xfc);
        var_11 = piVar14;
        for (var_9 = 0x3f; var_9 != 0; var_9 = var_9 + -1) {
          *var_11 = *var_10;
          var_10 = var_10 + (type_7)bVar21 * -2 + 1;
          var_11 = var_11 + (type_7)bVar21 * -2 + 1;
        }
        *piVar14 = 0;
        piVar14[1] = 0;
        piVar14[8] = piVar14[8] + var_4->ncalls;
        var_4->file->line[var_4->line_num + -1] = piVar14;
      }
    }
    var_4 = var_4 + 1;
    puVar6 = PTR_stdout_0002cfec;
    var_12 = var_5;
  } while (var_4 < symtab.limit);
joined_r0x00013f50:
  do {
    puVar7 = PTR_stdout_0002cfec;
    if (var_12 == (type_1 *)0x0) {
      PTR_stdout_0002cfec = puVar6;
      return;
    }
    PTR_stdout_0002cfec = puVar6;
    if ((var_12->num_lines != 0) && ((var_13 == 0 || (var_12->ncalls != 0)))) {
      num_lines_executed = 0;
      var_23 = 0;
      pSVar23 = var_12;
      var_15 = (type_6 *)var_14(var_12,0x10,annotate_with_count,var_12);
      var_9 = var_16;
      if (var_15 != (type_6 *)0x0) {
        if (var_16 < 1) {
          ppvVar9 = var_12->line;
        }
        else {
          pcVar11 = (char *)var_17("gprof","\n\nTop %d Lines:\n\n     Line      Count\n\n",5);
          var_18(var_15,pcVar11,var_9);
          var_19(var_12->line,var_12->num_lines,4,cmp_ncalls);
          uVar12 = var_16;
          if (var_12->num_lines <= var_16) {
            uVar12 = var_12->num_lines;
          }
          ppvVar9 = var_12->line;
          uVar26 = (type_11)uVar12;
          if (((0 < (int)uVar12) && (var_20 = *ppvVar9, var_20 != (void *)0x0)) &&
             (var_21 = *(type_1 **)((int)var_20 + 0x20), var_21 != (type_1 *)0x0)) {
            var_9 = 0;
            do {
              var_9 = var_9 + 1;
              pSVar23 = var_21;
              var_18(var_15,"%9d %10lu\n",*(type_9 *)((int)var_20 + 0x18),var_21);
              ppvVar9 = var_12->line;
              if ((var_9 == (int)uVar26) || (var_20 = ppvVar9[var_9], var_20 == (void *)0x0))
              break;
              var_21 = *(type_1 **)((int)var_20 + 0x20);
            } while (var_21 != (type_1 *)0x0);
          }
        }
        var_22(ppvVar9);
        var_12->line = (void **)0x0;
        uVar22 = 5;
        pcVar11 = (char *)var_17("gprof","\nExecution Summary:\n\n",5);
        var_18(var_15,pcVar11,uVar22,pSVar23);
        lVar8 = var_23;
        pcVar11 = (char *)var_17("gprof","%9ld   Executable lines in this file\n",5);
        var_18(var_15,pcVar11,lVar8);
        lVar8 = num_lines_executed;
        pcVar11 = (char *)var_17("gprof","%9ld   Lines executed\n",5);
        var_18(var_15,pcVar11,lVar8);
        fVar4 = var_24;
        if (var_23 != 0) {
          fVar4 = ((float)num_lines_executed * var_24) / (float)var_23;
        }
        dVar25 = (double)fVar4;
        pcVar11 = (char *)var_17("gprof","%9.2f   Percent of the file executed\n",5,pSVar23,
                                    dVar25);
        var_18(var_15,pcVar11,var_25(dVar25,0),(int)((type_11)dVar25 >> 0x20));
        var_8 = var_12->ncalls;
        pcVar11 = (char *)var_17("gprof","\n%9lu   Total number of line executions\n",5);
        var_18(var_15,pcVar11,var_8);
        if (var_23 == 0) {
          dVar25 = 0.0;
        }
        else {
          dVar25 = (double)var_12->ncalls / (double)var_23;
        }
        pcVar11 = (char *)var_17("gprof","%9.2f   Average executions per line\n",5,pSVar23,dVar25
                                   );
        var_18(var_15,pcVar11,var_25(dVar25,0),(int)((type_11)dVar25 >> 0x20));
        if (*(type_6 **)puVar7 != var_15) {
          var_26(var_15);
        }
      }
    }
    puVar6 = PTR_stdout_0002cfec;
    var_12 = var_12->next;
    PTR_stdout_0002cfec = puVar7;
  } while( true );
}


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

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

void MASKED(void)

{
  undefined4 *puVar1;
  int iVar2;
  float fVar3;
  undefined *puVar4;
  undefined *puVar5;
  void *__s;
  int iVar6;
  FILE *__stream;
  char *pcVar7;
  uint uVar8;
  int *piVar9;
  int *piVar10;
  undefined4 *puVar11;
  int iVar12;
  int *piVar13;
  int *piVar14;
  byte bVar15;
  undefined4 uVar16;
  undefined8 uVar17;
  double dVar18;
  ulonglong uVar19;
  
  bVar15 = 0;
  puVar11 = DAT_0002e524;
  if (DAT_0002e524 < DAT_0002e528) {
    do {
      while (((puVar11[5] != 0 && (*(int *)(puVar11[5] + 0xc) < (int)puVar11[6])) &&
             ((iVar6 = FUN_0001d480(&DAT_0002e5a0,*puVar11,puVar11[1]), iVar6 != 0 ||
              ((DAT_0002e5a0 == 0 &&
               (iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0))))))) {
        puVar1 = puVar11 + 6;
        piVar13 = puVar11 + 5;
        puVar11 = puVar11 + 0x3f;
        *(undefined4 *)(*piVar13 + 0xc) = *puVar1;
        if (DAT_0002e528 <= puVar11) goto LAB_00013e60;
      }
      puVar11 = puVar11 + 0x3f;
    } while (puVar11 < DAT_0002e528);
LAB_00013e60:
    piVar13 = DAT_0002e178;
    if (DAT_0002e178 != (int *)0x0) goto LAB_00013e78;
    if (DAT_0002e528 <= DAT_0002e524) {
      return;
    }
  }
  else {
    piVar13 = DAT_0002e178;
    if (DAT_0002e178 == (int *)0x0) {
      return;
    }
LAB_00013e78:
    do {
      if (0 < piVar13[3]) {
        __s = (void *)xmalloc(piVar13[3] << 2);
        piVar13[5] = (int)__s;
        memset(__s,0,piVar13[3] << 2);
      }
      piVar13 = (int *)*piVar13;
    } while (piVar13 != (int *)0x0);
    puVar4 = PTR_stdout_0002cfec;
    piVar13 = DAT_0002e178;
    if (DAT_0002e528 <= DAT_0002e524) goto joined_r0x00013f50;
  }
  uVar17 = 0x2e5a0;
  puVar11 = DAT_0002e524;
LAB_00013edb:
  do {
    if (((puVar11[5] != 0) && (*(int *)(puVar11[5] + 0xc) != 0)) &&
       ((iVar6 = FUN_0001d480((int)uVar17,*puVar11,puVar11[1]), iVar6 != 0 ||
        ((DAT_0002e5a0 == 0 && (iVar6 = FUN_0001d480(&DAT_0002e5ac,*puVar11,puVar11[1]), iVar6 == 0)
         ))))) {
      iVar6 = puVar11[5];
      iVar12 = puVar11[6];
      iVar2 = puVar11[8];
      piVar13 = (int *)(iVar6 + 8);
      *piVar13 = *piVar13 + iVar2;
      puVar1 = (undefined4 *)(*(int *)(iVar6 + 0x14) + -4 + iVar12 * 4);
      piVar13 = (int *)*puVar1;
      if (piVar13 == (int *)0x0) {
        *puVar1 = puVar11;
      }
      else {
        if (piVar13[1] == 0 && *piVar13 == 0) {
          piVar13[8] = piVar13[8] + iVar2;
          puVar11 = puVar11 + 0x3f;
          puVar4 = PTR_stdout_0002cfec;
          piVar13 = DAT_0002e178;
          if (DAT_0002e528 <= puVar11) break;
          goto LAB_00013edb;
        }
        piVar9 = (int *)xmalloc(0xfc);
        piVar14 = piVar9;
        for (iVar6 = 0x3f; iVar6 != 0; iVar6 = iVar6 + -1) {
          *piVar14 = *piVar13;
          piVar13 = piVar13 + (uint)bVar15 * -2 + 1;
          piVar14 = piVar14 + (uint)bVar15 * -2 + 1;
        }
        *piVar9 = 0;
        piVar9[1] = 0;
        piVar9[8] = piVar9[8] + puVar11[8];
        *(int **)(*(int *)(puVar11[5] + 0x14) + -4 + puVar11[6] * 4) = piVar9;
      }
    }
    puVar11 = puVar11 + 0x3f;
    puVar4 = PTR_stdout_0002cfec;
    piVar13 = DAT_0002e178;
  } while (puVar11 < DAT_0002e528);
joined_r0x00013f50:
  do {
    puVar5 = PTR_stdout_0002cfec;
    if (piVar13 == (int *)0x0) {
      PTR_stdout_0002cfec = puVar4;
      return;
    }
    PTR_stdout_0002cfec = puVar4;
    if ((piVar13[3] != 0) && ((DAT_0002d1c0 == 0 || (piVar13[2] != 0)))) {
      DAT_0002d4f4 = 0;
      DAT_0002d4f8 = 0;
      piVar14 = piVar13;
      __stream = (FILE *)FUN_0001c940(piVar13,0x10,FUN_00013230,piVar13);
      uVar8 = DAT_0002d148;
      if (__stream != (FILE *)0x0) {
        if ((int)DAT_0002d148 < 1) {
          piVar9 = (int *)piVar13[5];
        }
        else {
          pcVar7 = (char *)dcgettext("gprof","\n\nTop %d Lines:\n\n     Line      Count\n\n",5);
          fprintf(__stream,pcVar7,uVar8);
          qsort((void *)piVar13[5],piVar13[3],4,FUN_00013170);
          uVar8 = DAT_0002d148;
          if (piVar13[3] <= (int)DAT_0002d148) {
            uVar8 = piVar13[3];
          }
          piVar9 = (int *)piVar13[5];
          uVar19 = (ulonglong)uVar8;
          if (((0 < (int)uVar8) && (iVar6 = *piVar9, iVar6 != 0)) &&
             (piVar10 = *(int **)(iVar6 + 0x20), piVar10 != (int *)0x0)) {
            iVar12 = 0;
            do {
              iVar12 = iVar12 + 1;
              piVar14 = piVar10;
              fprintf(__stream,"%9d %10lu\n",*(undefined4 *)(iVar6 + 0x18),piVar10);
              piVar9 = (int *)piVar13[5];
              if ((iVar12 == (int)uVar19) || (iVar6 = piVar9[iVar12], iVar6 == 0)) break;
              piVar10 = *(int **)(iVar6 + 0x20);
            } while (piVar10 != (int *)0x0);
          }
        }
        free(piVar9);
        piVar13[5] = 0;
        uVar16 = 5;
        pcVar7 = (char *)dcgettext("gprof","\nExecution Summary:\n\n",5);
        fprintf(__stream,pcVar7,uVar16,piVar14);
        iVar6 = DAT_0002d4f8;
        pcVar7 = (char *)dcgettext("gprof","%9ld   Executable lines in this file\n",5);
        fprintf(__stream,pcVar7,iVar6);
        iVar6 = DAT_0002d4f4;
        pcVar7 = (char *)dcgettext("gprof","%9ld   Lines executed\n",5);
        fprintf(__stream,pcVar7,iVar6);
        fVar3 = _DAT_000221d8;
        if (DAT_0002d4f8 != 0) {
          fVar3 = ((float)DAT_0002d4f4 * _DAT_000221d8) / (float)DAT_0002d4f8;
        }
        dVar18 = (double)fVar3;
        pcVar7 = (char *)dcgettext("gprof","%9.2f   Percent of the file executed\n",5,piVar14,dVar18
                                  );
        fprintf(__stream,pcVar7,SUB84(dVar18,0),(int)((ulonglong)dVar18 >> 0x20));
        iVar6 = piVar13[2];
        pcVar7 = (char *)dcgettext("gprof","\n%9lu   Total number of line executions\n",5);
        fprintf(__stream,pcVar7,iVar6);
        if (DAT_0002d4f8 == 0) {
          dVar18 = 0.0;
        }
        else {
          dVar18 = (double)(uint)piVar13[2] / (double)DAT_0002d4f8;
        }
        pcVar7 = (char *)dcgettext("gprof","%9.2f   Average executions per line\n",5,piVar14,dVar18)
        ;
        fprintf(__stream,pcVar7,SUB84(dVar18,0),(int)((ulonglong)dVar18 >> 0x20));
        if (*(FILE **)puVar5 != __stream) {
          fclose(__stream);
        }
      }
    }
    puVar4 = PTR_stdout_0002cfec;
    piVar13 = (int *)*piVar13;
    PTR_stdout_0002cfec = puVar5;
  } while( true );
}

