
/* WARNING: Type propagation algorithm not settling */

int fd_read_body(char *downloaded_filename,int fd,FILE *out,wgint toread,wgint startpos,
                wgint *qtyread,wgint *qtywritten,double *elapsed,int flags,FILE *out2)

{
  bool bVar1;
  undefined3 extraout_var;
  int iVar2;
  Bytef *buf;
  uint uVar3;
  int iVar4;
  void *progress;
  _Bool _Var12;
  undefined4 uVar5;
  undefined4 *puVar6;
  undefined4 *puVar7;
  char *pcVar8;
  Bytef *pBVar9;
  int iVar10;
  int *piVar11;
  Bytef *pBVar13;
  int iVar14;
  FILE *pFVar15;
  undefined4 uVar16;
  FILE *pFVar17;
  int iVar18;
  code *pcVar19;
  FILE *pFVar20;
  undefined *puVar21;
  undefined *puVar22;
  double dVar23;
  double dVar24;
  double dVar25;
  double dVar26;
  double dVar27;
  double in_f12_13;
  double dVar28;
  double dVar29;
  double dVar30;
  double dVar31;
  wgint wVar32;
  FILE *in_stack_00000030;
  undefined4 in_stack_fffffeac;
  double in_stack_fffffee0;
  wgint in_stack_fffffee8;
  ptimer *local_104;
  Bytef *local_100;
  Bytef *local_fc;
  Bytef *local_f0;
  int local_e4;
  Bytef *local_e0;
  char *endl;
  wgint skip;
  wgint sum_written;
  z_stream gzstream;
  
  iVar2 = *(int *)PTR___stack_chk_guard_000b7c68;
  pFVar17 = out;
  buf = (Bytef *)(*(code *)PTR_xmalloc_000b7480)(0x2000);
  uVar3 = (uint)out2 & 4;
  skip._4_4_ = 0;
  skip._0_4_ = 0;
  sum_written._4_4_ = 0;
  sum_written._0_4_ = 0;
  if (((uint)out2 & 8) == 0) {
    local_100 = (Bytef *)0x0;
LAB_00050b74:
    dVar23 = (double)CONCAT44(pFVar17,qtyread);
    skip = CONCAT44(skip._0_4_,skip._4_4_);
    if (((uint)out2 & 2) != 0) {
      skip = startpos;
    }
    if (*(int *)(PTR_opt_000b746c + 0x10c) == 0) {
      progress = (void *)0x0;
      if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {
        local_e4 = 0;
        goto LAB_00051950;
      }
      local_e4 = 0;
LAB_00051978:
      if (flags != 0) goto LAB_00050c48;
      local_104 = (ptimer *)flags;
      local_e0 = (Bytef *)0x2000;
    }
    else {
      if (skip != 0) {
        startpos = 0;
      }
      if (*(int *)(PTR_opt_000b746c + 0x30) != 0) {
        iVar4 = (*(code *)PTR_strlen_000b7c94)();
        downloaded_filename = downloaded_filename + iVar4 + 1;
      }
      in_stack_fffffee0 = (double)(toread + startpos);
      progress = progress_create(downloaded_filename,(wgint)in_stack_fffffee0,in_stack_fffffee8);
      _Var12 = progress_interactive_p(progress);
      local_e4 = CONCAT31(extraout_var,_Var12);
      dVar23 = (double)startpos;
      if (*(int *)(PTR_opt_000b746c + 0x158) == 0 && *(int *)(PTR_opt_000b746c + 0x15c) == 0) {
        if (progress == (void *)0x0) goto LAB_00051978;
      }
      else {
LAB_00051950:
        puVar21 = PTR_DAT_000b7720;
        *(undefined4 *)(PTR_DAT_000b7720 + -0x2fe8) = 0;
        *(undefined4 *)(puVar21 + -0x2fe4) = 0;
        *(undefined4 *)(puVar21 + -0x2fe0) = 0;
        *(undefined4 *)(puVar21 + -0x2fdc) = 0;
        *(undefined4 *)(puVar21 + -0x2fd8) = 0;
        *(undefined4 *)(puVar21 + -0x2fd4) = 0;
      }
LAB_00050c48:
      local_104 = ptimer_new();
      iVar4 = *(int *)(PTR_opt_000b746c + 0x158);
      local_e0 = *(Bytef **)(PTR_opt_000b746c + 0x15c);
      if (iVar4 == 0 && local_e0 == (Bytef *)0x0) {
        local_e0 = (Bytef *)0x2000;
      }
      else if ((0 < iVar4) || ((iVar4 == 0 && ((Bytef *)0x1fff < local_e0)))) {
        local_e0 = (Bytef *)0x2000;
      }
    }
    puVar21 = PTR_DAT_000b758c;
    iVar18 = 0;
    local_f0 = (Bytef *)0x0;
    iVar4 = 0;
    local_fc = (Bytef *)0x0;
    dVar27 = 0.0;
    pFVar20 = (FILE *)0x0;
    dVar29 = *(double *)(PTR_DAT_000b758c + -0x2340);
    dVar30 = *(double *)(PTR_DAT_000b758c + -0x2580);
    dVar31 = *(double *)(PTR_DAT_000b758c + -0x15d0);
    dVar26 = *(double *)(PTR_DAT_000b758c + -0x15d8);
    while( true ) {
      uVar5 = SUB84(dVar23,0);
      iVar14 = (int)local_e0 >> 0x1f;
      pBVar9 = local_e0;
      if (((uint)out2 & 1) == 0) break;
      if (toread._0_4_ <= iVar4) {
        if (toread._0_4_ != iVar4) goto LAB_000518d4;
        if (local_fc < toread._4_4_) goto LAB_000517b0;
        bVar1 = (int)pFVar20 < 0;
        dVar24 = dVar23;
        goto LAB_000518d8;
      }
LAB_000517b0:
      dVar28 = *(double *)(PTR_opt_000b746c + 0x120);
      if (uVar3 != 0) goto LAB_00051820;
      pBVar13 = toread._4_4_ + -(int)local_fc;
      iVar10 = (toread._0_4_ - iVar4) - (uint)(toread._4_4_ < pBVar13);
      dVar23 = (double)CONCAT44(iVar10,uVar5);
      if ((iVar14 < iVar10) ||
         ((dVar24 = (double)CONCAT44(iVar10,uVar5), iVar10 == iVar14 &&
          (dVar24 = (double)CONCAT44(iVar10,uVar5), local_e0 < pBVar13)))) goto LAB_00051864;
LAB_00051868:
      pFVar15 = SUB84(dVar24,0);
      if (local_e4 == 0) {
        pFVar20 = (FILE *)(*(code *)PTR_fd_read_000b7770)(fd,buf);
        in_stack_fffffee0 = dVar28;
LAB_000516fc:
        bVar1 = (int)pFVar20 < 0;
        dVar24 = (double)CONCAT44(pBVar13,pFVar15);
        if ((int)pFVar20 < 1) goto LAB_000518d8;
        if (progress == (void *)0x0) {
          if (*(int *)(PTR_opt_000b746c + 0x158) == 0 && *(int *)(PTR_opt_000b746c + 0x15c) == 0)
          goto LAB_00051720;
          ptimer_measure(local_104);
        }
        else {
          ptimer_measure(local_104);
        }
LAB_000515b0:
        dVar27 = ptimer_read(local_104);
LAB_000515c4:
        pBVar9 = local_fc + (int)pFVar20;
        iVar4 = (uint)(pBVar9 < local_fc) + iVar4 + ((int)pFVar20 >> 0x1f);
        pBVar13 = buf;
        pFVar15 = pFVar20;
        local_fc = pBVar9;
        if (local_100 == (Bytef *)0x0) {
          in_stack_fffffee0 = (double)CONCAT44(&skip,&sum_written);
          pFVar17 = (FILE *)write_data(out,in_stack_00000030,(char *)buf,(int)pFVar20,&skip,
                                       &sum_written);
          dVar24 = (double)CONCAT44(pBVar13,pFVar15);
          if ((int)pFVar17 < 0) goto LAB_00051040;
        }
        else {
          in_stack_fffffee0 = 0.0;
          pFVar17 = (FILE *)write_data((FILE *)0x0,in_stack_00000030,(char *)buf,(int)pFVar20,
                                       (wgint *)0x0,(wgint *)0x0);
          dVar24 = (double)CONCAT44(pBVar13,pFVar15);
          if ((int)pFVar17 < 0) goto LAB_00051040;
          pcVar8 = PTR_DAT_000b758c + -0x1898;
          pcVar19 = (code *)(PTR_LAB_000b78e4 + 0x3a4);
          gzstream.next_in = buf;
          gzstream.avail_in = (uInt)pFVar20;
          do {
            gzstream.avail_out = 0x8000;
            gzstream.next_out = local_100;
            iVar14 = (*(code *)PTR_inflate_000b7d40)(&gzstream,0);
            if (iVar14 == -3) {
LAB_000511f4:
              puVar7 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();
              dVar24 = (double)CONCAT44(pBVar13,pFVar15);
              *puVar7 = 0x16;
              pFVar17 = (FILE *)0xffffffff;
              goto LAB_00051040;
            }
            if (iVar14 < -2) {
              if (iVar14 == -4) {
                puVar7 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();
                dVar24 = (double)CONCAT44(pBVar13,pFVar15);
                *puVar7 = 0xc;
                pFVar17 = (FILE *)0xffffffff;
                goto LAB_00051040;
              }
            }
            else if (iVar14 == 1) {
              if (((((uint)out2 & 1) != 0) && (toread != CONCAT44(iVar4,pBVar9))) &&
                 (PTR_opt_000b746c[0x16b] != '\0')) {
                debug_logprintf(pcVar8);
              }
            }
            else if (iVar14 == 2) goto LAB_000511f4;
            in_stack_fffffee0 = (double)CONCAT44(&skip,&sum_written);
            pFVar15 = (FILE *)(0x8000 - gzstream.avail_out);
            pBVar13 = local_100;
            pFVar17 = (FILE *)(*pcVar19)(out,0);
            dVar24 = (double)CONCAT44(pBVar13,pFVar15);
            if ((int)pFVar17 < 0) goto LAB_00051040;
          } while (gzstream.avail_out == 0);
        }
        if (uVar3 != 0) {
          pBVar9 = local_f0 + -(int)pFVar20;
          iVar18 = (iVar18 - ((int)pFVar20 >> 0x1f)) - (uint)(local_f0 < pBVar9);
          local_f0 = pBVar9;
          if (iVar18 == 0 && pBVar9 == (Bytef *)0x0) {
            pcVar8 = fd_read_line(fd);
            dVar23 = (double)CONCAT44(pBVar13,pFVar15);
            if (pcVar8 == (char *)0x0) {
              pFVar20 = (FILE *)0xffffffff;
              goto LAB_000518d4;
            }
            if (in_stack_00000030 != (FILE *)0x0) {
              pBVar13 = (Bytef *)(*(code *)PTR_strlen_000b7c94)(pcVar8);
              pFVar15 = in_stack_00000030;
              (*(code *)PTR_fwrite_000b7c24)(pcVar8,1);
            }
            (*(code *)PTR_free_000b7d34)(pcVar8);
          }
        }
LAB_00051748:
        dVar23 = (double)CONCAT44(pBVar13,pFVar15);
        if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {
          dVar24 = ptimer_read(local_104);
          puVar22 = PTR_DAT_000b7720;
          dVar24 = dVar24 - *(double *)(PTR_DAT_000b7720 + -0x2fe0);
          pFVar17 = (FILE *)(pFVar20->_shortbuf + *(int *)(PTR_DAT_000b7720 + -0x2fe4) + -0x47);
          iVar14 = (uint)(pFVar17 < pFVar20) +
                   ((int)pFVar20 >> 0x1f) + *(int *)(PTR_DAT_000b7720 + -0x2fe8);
          *(int *)(PTR_DAT_000b7720 + -0x2fe8) = iVar14;
          *(FILE **)(puVar22 + -0x2fe4) = pFVar17;
          dVar28 = (double)(*(code *)PTR___floatdidf_000b78f4)(iVar14,pFVar17);
          dVar25 = (double)(*(code *)PTR___floatdidf_000b78f4)
                                     (*(undefined4 *)(PTR_opt_000b746c + 0x158),
                                      *(undefined4 *)(PTR_opt_000b746c + 0x15c));
          dVar23 = (double)CONCAT44(pBVar13,pFVar15);
          if (dVar24 < dVar28 / dVar25) {
            dVar24 = (dVar28 / dVar25 - dVar24) + *(double *)(PTR_DAT_000b7720 + -0x2fd8);
            if (dVar24 < dVar29) {
              if (PTR_opt_000b746c[0x16b] != '\0') {
                pcVar8 = number_to_static_string((wgint)in_stack_fffffee0);
                in_stack_fffffee0 = (double)(ZEXT48(pcVar8) << 0x20);
                dVar23 = dVar24 * *(double *)(puVar21 + -0x15d8);
                debug_logprintf(PTR_DAT_000b758c + -0x1864);
              }
              goto LAB_0005175c;
            }
            in_f12_13 = dVar24;
            if (PTR_opt_000b746c[0x16b] != '\0') {
              pcVar8 = number_to_static_string((wgint)in_stack_fffffee0);
              in_stack_fffffee0 = (double)(ZEXT48(pcVar8) << 0x20);
              dVar23 = dVar24 * dVar26;
              debug_logprintf(PTR_DAT_000b758c + -0x183c);
              in_f12_13 = dVar24;
            }
            dVar28 = ptimer_read(local_104);
            dVar24 = in_f12_13;
            xsleep(in_f12_13);
            dVar25 = ptimer_measure(local_104);
            dVar24 = dVar24 - (dVar25 - dVar28);
            if (dVar30 < dVar24) {
              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar21 + -0x2580);
            }
            else if (dVar31 <= dVar24) {
              *(double *)(PTR_DAT_000b7720 + -0x2fd8) = dVar24;
            }
            else {
              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar21 + -0x15d0);
            }
          }
          puVar22 = PTR_DAT_000b7720;
          *(undefined4 *)(PTR_DAT_000b7720 + -0x2fe4) = 0;
          *(undefined4 *)(puVar22 + -0x2fe8) = 0;
          dVar24 = ptimer_read(local_104);
          *(double *)(puVar22 + -0x2fe0) = dVar24;
        }
      }
      else {
        if (*(double *)(PTR_opt_000b746c + 0x120) == 0.0) {
          dVar28 = *(double *)(PTR_DAT_000b758c + -0x15e0);
        }
        else {
          dVar23 = ptimer_read(local_104);
          pFVar15 = SUB84(dVar24,0);
          if (*(double *)(PTR_opt_000b746c + 0x120) <
              (dVar23 - dVar27) + *(double *)(PTR_DAT_000b758c + -0x15e0)) {
            dVar28 = *(double *)(PTR_opt_000b746c + 0x120) - (dVar23 - dVar27);
            if (dVar28 < 0.0) {
              puVar7 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();
              *puVar7 = 0x91;
              pFVar17 = (FILE *)0xffffffff;
              goto LAB_00051040;
            }
          }
          else {
            dVar28 = *(double *)(PTR_DAT_000b758c + -0x15e0);
          }
        }
        pFVar20 = (FILE *)(*(code *)PTR_fd_read_000b7770)(fd,buf);
        in_stack_fffffee0 = dVar28;
        if (-1 < (int)pFVar20) goto LAB_000516fc;
        piVar11 = (int *)(*(code *)PTR___errno_location_000b7eb8)();
        dVar23 = (double)CONCAT44(pBVar13,pFVar15);
        in_stack_fffffee0 = dVar28;
        if (*piVar11 != 0x91) goto LAB_000518d4;
        if (progress != (void *)0x0) {
          ptimer_measure(local_104);
          iVar2 = FUN_00051744();
          return iVar2;
        }
        if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {
          ptimer_measure(local_104);
          iVar2 = FUN_00051744();
          return iVar2;
        }
        pFVar20 = (FILE *)0x0;
LAB_00051720:
        dVar23 = (double)CONCAT44(pBVar13,pFVar15);
        if (flags != 0) {
          ptimer_measure(local_104);
          if (0 < (int)pFVar20) goto LAB_000515b0;
          goto LAB_00051748;
        }
        if (0 < (int)pFVar20) goto LAB_000515c4;
      }
LAB_0005175c:
      if (progress != (void *)0x0) {
        in_stack_fffffee0 = ptimer_read(local_104);
        iVar14 = (int)pFVar20 >> 0x1f;
        pFVar17 = pFVar20;
        progress_update(progress,(wgint)in_stack_fffffee0,in_f12_13);
        dVar23 = (double)CONCAT44(iVar14,pFVar17);
      }
    }
    dVar28 = *(double *)(PTR_opt_000b746c + 0x120);
    if (uVar3 == 0) {
LAB_00051864:
      pBVar13 = pBVar9;
      dVar24 = dVar23;
      goto LAB_00051868;
    }
LAB_00051820:
    if (iVar18 != 0 || local_f0 != (Bytef *)0x0) {
LAB_00051830:
      pBVar9 = local_f0;
      if ((iVar14 <= iVar18) &&
         ((pBVar13 = local_e0, dVar24 = dVar23, iVar14 != iVar18 ||
          (pBVar9 = local_f0, local_e0 <= local_f0)))) goto LAB_00051868;
      goto LAB_00051864;
    }
    pcVar8 = fd_read_line(fd);
    pFVar17 = SUB84(dVar23,0);
    if (pcVar8 == (char *)0x0) {
LAB_00050e90:
      pFVar20 = (FILE *)0xffffffff;
LAB_000518d4:
      bVar1 = (int)pFVar20 < 0;
      dVar24 = dVar23;
LAB_000518d8:
      pFVar17 = (FILE *)0xffffffff;
      if (!bVar1) {
        pFVar17 = pFVar20;
      }
    }
    else {
      if (in_stack_00000030 != (FILE *)0x0) {
        uVar5 = (*(code *)PTR_strlen_000b7c94)(pcVar8);
        pFVar17 = in_stack_00000030;
        (*(code *)PTR_fwrite_000b7c24)(pcVar8,1,uVar5);
      }
      uVar5 = 0x10;
      local_f0 = (Bytef *)(*(code *)PTR_strtol_000b7d3c)(pcVar8,&endl);
      iVar18 = (int)local_f0 >> 0x1f;
      (*(code *)PTR_free_000b7d34)(pcVar8);
      dVar23 = (double)CONCAT44(uVar5,pFVar17);
      if (iVar18 < 0) goto LAB_00050e90;
      if (local_f0 != (Bytef *)0x0) goto LAB_00051830;
      pcVar8 = fd_read_line(fd);
      dVar24 = (double)CONCAT44(uVar5,pFVar17);
      if (pcVar8 == (char *)0x0) {
        pFVar17 = (FILE *)0xffffffff;
      }
      else {
        if (in_stack_00000030 != (FILE *)0x0) {
          uVar5 = (*(code *)PTR_strlen_000b7c94)(pcVar8);
          (*(code *)PTR_fwrite_000b7c24)(pcVar8,1);
          pFVar17 = in_stack_00000030;
        }
        (*(code *)PTR_free_000b7d34)(pcVar8);
        dVar24 = (double)CONCAT44(uVar5,pFVar17);
        pFVar17 = (FILE *)0x0;
      }
    }
LAB_00051040:
    puVar7 = (undefined4 *)((ulonglong)in_stack_fffffee0 >> 0x20);
    if (progress != (void *)0x0) {
      dVar24 = ptimer_read(local_104);
      uVar16 = SUB84(dVar24,0);
      uVar5 = (undefined4)((ulonglong)dVar24 >> 0x20);
      progress_finish(progress,in_f12_13);
      dVar24 = (double)CONCAT44(uVar5,uVar16);
    }
    if (flags != 0) goto LAB_00051080;
  }
  else {
    local_100 = (Bytef *)(*(code *)PTR_xmalloc_000b7480)(0x8000);
    puVar7 = (undefined4 *)((ulonglong)in_stack_fffffee0 >> 0x20);
    if (local_100 == (Bytef *)0x0) {
      puVar6 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();
      *puVar6 = 0xc;
    }
    else {
      gzstream.zalloc = (alloc_func)(PTR_LAB_000b78e4 + 0x368);
      gzstream.zfree = (free_func)(PTR_LAB_000b78e4 + 0x330);
      gzstream.opaque = (voidpf)0x0;
      gzstream.next_in = (Bytef *)0x0;
      gzstream.avail_in = 0;
      qtyread = (wgint *)0x38;
      pFVar17 = (FILE *)(PTR_DAT_000b758c + -0x18a0);
      iVar4 = (*(code *)PTR_inflateInit2__000b7d68)(&gzstream,0x2f);
      puVar7 = (undefined4 *)((ulonglong)in_stack_fffffee0 >> 0x20);
      if (iVar4 == 0) goto LAB_00050b74;
      (*(code *)PTR_free_000b7d34)(local_100);
      uVar5 = 0x16;
      if (iVar4 == -4) {
        uVar5 = 0xc;
      }
      puVar6 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();
      *puVar6 = uVar5;
    }
    dVar24 = (double)CONCAT44(pFVar17,qtyread);
    local_100 = (Bytef *)flags;
    if (flags == 0) {
      iVar4 = 0;
      local_fc = (Bytef *)0x0;
      pFVar17 = (FILE *)0xffffffff;
      goto LAB_000510b8;
    }
    local_100 = (Bytef *)0x0;
    iVar4 = 0;
    local_fc = (Bytef *)0x0;
    local_104 = (ptimer *)0x0;
    pFVar17 = (FILE *)0xffffffff;
LAB_00051080:
    dVar23 = ptimer_read(local_104);
    *(double *)flags = dVar23;
  }
  if (local_104 != (ptimer *)0x0) {
    ptimer_destroy(local_104);
  }
LAB_000510b8:
  if (local_100 != (Bytef *)0x0) {
    pFVar20 = (FILE *)(*(code *)PTR_inflateEnd_000b7e58)(&gzstream);
    if ((-1 < (int)pFVar17) && (pFVar17 = pFVar20, pFVar20 != (FILE *)0x0)) {
      puVar6 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)(local_100);
      *puVar6 = 0x16;
      pFVar17 = (FILE *)0xffffffff;
    }
    (*(code *)PTR_free_000b7d34)(local_100);
    if (((iVar4 != 0) || ((Bytef *)gzstream.total_in != local_fc)) &&
       (dVar24 = (double)CONCAT44(iVar4,SUB84(dVar24,0)), PTR_opt_000b746c[0x16b] != '\0')) {
      iVar18 = iVar4;
      pBVar9 = local_fc;
      debug_logprintf(PTR_DAT_000b758c + -0x180c);
      dVar24 = (double)CONCAT44(iVar18,pBVar9);
    }
  }
  if (qtywritten != (wgint *)0x0) {
    local_fc = *(Bytef **)((int)qtywritten + 4) + (int)local_fc;
    *(uint *)qtywritten =
         (uint)(local_fc < *(Bytef **)((int)qtywritten + 4)) + *(int *)qtywritten + iVar4;
    *(Bytef **)((int)qtywritten + 4) = local_fc;
  }
  if (elapsed != (double *)0x0) {
    uVar3 = *(uint *)((int)elapsed + 4) + sum_written._4_4_;
    *(uint *)elapsed =
         (uint)(uVar3 < *(uint *)((int)elapsed + 4)) + *(int *)elapsed + sum_written._0_4_;
    *(uint *)((int)elapsed + 4) = uVar3;
  }
  (*(code *)PTR_free_000b7d34)(buf);
  if (iVar2 != *(int *)PTR___stack_chk_guard_000b7c68) {
    puVar21 = PTR___stack_chk_fail_000b7bfc;
    (*(code *)PTR___stack_chk_fail_000b7bfc)();
    puVar22 = puVar21 + 0x6da90;
    if (*(char *)(*(int *)(puVar21 + 0x65acc) + 0x223) == '\0') {
      dVar23 = *(double *)(*(int *)(puVar21 + 0x65bec) + -0x6f98);
    }
    else {
      dVar23 = *(double *)(*(int *)(puVar21 + 0x65bec) + -0x15d8);
    }
    if (dVar24 == 0.0) {
      dVar24 = ptimer_resolution();
      dVar24 = dVar24 * *(double *)(*(int *)(puVar22 + -0x7ea4) + -0x2580);
    }
    wVar32 = convert_to_bits(CONCAT44(puVar22,in_stack_fffffeac));
    dVar26 = (double)(**(code **)(puVar22 + -0x7b3c))((int)((ulonglong)wVar32 >> 0x20),(int)wVar32);
    dVar26 = dVar26 / dVar24;
    if (dVar26 < dVar23) {
      *puVar7 = 0;
    }
    else if (dVar26 < dVar23 * dVar23) {
      *puVar7 = 1;
      puVar7 = (undefined4 *)&DAT_00000001;
    }
    else if (dVar26 < dVar23 * dVar23 * dVar23) {
      *puVar7 = 2;
      puVar7 = (undefined4 *)0x2;
    }
    else {
      *puVar7 = 3;
      puVar7 = (undefined4 *)0x3;
    }
    return (int)puVar7;
  }
  return (int)pFVar17;
}



/* WARNING: Type propagation algorithm not settling */

undefined8 *
fd_read_body(int param_1,undefined8 *param_2,undefined *param_3,undefined1 *param_4,int param_5,
            undefined8 *param_6,undefined *param_7,undefined1 *param_8,int *param_9,int *param_10,
            undefined8 *param_11,uint param_12,undefined8 *param_13)

{
  bool bVar1;
  undefined *puVar2;
  undefined8 *puVar3;
  undefined8 *puVar4;
  uint uVar5;
  int iVar6;
  int iVar7;
  undefined4 uVar8;
  undefined8 *puVar9;
  undefined4 *puVar10;
  uint uVar11;
  undefined8 *puVar12;
  int iVar13;
  int *piVar14;
  undefined8 *puVar15;
  undefined1 *puVar16;
  int iVar17;
  undefined8 *puVar18;
  undefined4 uVar19;
  undefined8 *puVar20;
  undefined *puVar21;
  int iVar22;
  code *pcVar23;
  undefined8 *puVar24;
  double dVar25;
  undefined8 uVar26;
  double dVar27;
  double dVar28;
  double dVar29;
  double dVar30;
  double dVar31;
  double dVar32;
  double dVar33;
  double dVar34;
  undefined8 local_120;
  undefined8 *local_104;
  undefined8 *local_100;
  undefined8 *local_fc;
  undefined8 *local_f0;
  int local_e4;
  undefined8 *local_e0;
  undefined1 auStack_ac [8];
  undefined1 *local_a4;
  undefined8 *local_a0;
  int local_9c;
  undefined8 *local_94;
  undefined8 *local_90;
  undefined8 *local_8c;
  undefined8 *local_88;
  int local_84;
  undefined *local_74;
  undefined *local_70;
  undefined4 local_6c;
  int local_5c;
  
  local_5c = *(int *)PTR___stack_chk_guard_000b7c68;
  puVar9 = param_2;
  puVar21 = param_3;
  puVar4 = (undefined8 *)(*(code *)PTR_xmalloc_000b7480)(0x2000);
  uVar5 = param_12 & 4;
  local_a4 = (undefined1 *)0x0;
  auStack_ac._4_4_ = (undefined *)0x0;
  local_9c = 0;
  local_a0 = (undefined8 *)0x0;
  if ((param_12 & 8) == 0) {
    local_100 = (undefined8 *)0x0;
LAB_00050b74:
    if ((param_12 & 2) != 0) {
      auStack_ac._4_4_ = param_7;
      local_a4 = param_8;
    }
    if (*(int *)(PTR_opt_000b746c + 0x10c) == 0) {
      iVar7 = 0;
      if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {
        local_e4 = 0;
        goto LAB_00051950;
      }
      local_e4 = 0;
LAB_00051978:
      if (param_11 != (undefined8 *)0x0) goto LAB_00050c48;
      local_104 = param_11;
      local_e0 = (undefined8 *)0x2000;
    }
    else {
      param_4 = param_8;
      puVar21 = param_7;
      if ((undefined *)auStack_ac._4_4_ != (undefined *)0x0 || local_a4 != (undefined1 *)0x0) {
        puVar21 = (undefined *)0x0;
        param_4 = (undefined1 *)0x0;
      }
      if (*(int *)(PTR_opt_000b746c + 0x30) != 0) {
        iVar6 = (*(code *)PTR_strlen_000b7c94)();
        param_1 = param_1 + iVar6 + 1;
      }
      local_120 = (double)CONCAT44(puVar21 + (uint)(param_4 + (int)param_6 < param_4) + param_5,
                                   param_4 + (int)param_6);
      iVar7 = progress_create(param_1);
      local_e4 = progress_interactive_p(iVar7);
      if (*(int *)(PTR_opt_000b746c + 0x158) == 0 && *(int *)(PTR_opt_000b746c + 0x15c) == 0) {
        if (iVar7 == 0) goto LAB_00051978;
      }
      else {
LAB_00051950:
        puVar2 = PTR_DAT_000b7720;
        *(undefined4 *)(PTR_DAT_000b7720 + -0x2fe8) = 0;
        *(undefined4 *)(puVar2 + -0x2fe4) = 0;
        *(undefined4 *)(puVar2 + -0x2fe0) = 0;
        *(undefined4 *)(puVar2 + -0x2fdc) = 0;
        *(undefined4 *)(puVar2 + -0x2fd8) = 0;
        *(undefined4 *)(puVar2 + -0x2fd4) = 0;
      }
LAB_00050c48:
      local_104 = (undefined8 *)ptimer_new();
      iVar6 = *(int *)(PTR_opt_000b746c + 0x158);
      local_e0 = *(undefined8 **)(PTR_opt_000b746c + 0x15c);
      if (iVar6 == 0 && local_e0 == (undefined8 *)0x0) {
        local_e0 = (undefined8 *)0x2000;
      }
      else if ((0 < iVar6) || ((iVar6 == 0 && ((undefined8 *)0x1fff < local_e0)))) {
        local_e0 = (undefined8 *)0x2000;
      }
    }
    puVar2 = PTR_DAT_000b758c;
    dVar25 = (double)CONCAT44(puVar21,param_4);
    iVar22 = 0;
    local_f0 = (undefined8 *)0x0;
    iVar6 = 0;
    local_fc = (undefined8 *)0x0;
    dVar29 = 0.0;
    puVar24 = (undefined8 *)0x0;
    dVar32 = *(double *)(PTR_DAT_000b758c + -0x2340);
    dVar33 = *(double *)(PTR_DAT_000b758c + -0x2580);
    dVar34 = *(double *)(PTR_DAT_000b758c + -0x15d0);
    dVar28 = *(double *)(PTR_DAT_000b758c + -0x15d8);
    while( true ) {
      uVar8 = SUB84(dVar25,0);
      iVar17 = (int)local_e0 >> 0x1f;
      puVar20 = local_e0;
      puVar3 = local_120._0_4_;
      if ((param_12 & 1) == 0) break;
      if (param_5 <= iVar6) {
        if (param_5 != iVar6) goto LAB_000518d4;
        if (local_fc < param_6) goto LAB_000517b0;
        bVar1 = (int)puVar24 < 0;
        dVar30 = dVar25;
        goto LAB_000518d8;
      }
LAB_000517b0:
      dVar31 = *(double *)(PTR_opt_000b746c + 0x120);
      if (uVar5 != 0) goto LAB_00051820;
      puVar15 = (undefined8 *)((int)param_6 - (int)local_fc);
      iVar13 = (param_5 - iVar6) - (uint)(param_6 < puVar15);
      dVar25 = (double)CONCAT44(iVar13,uVar8);
      puVar9 = local_e0;
      if ((iVar17 < iVar13) ||
         ((dVar30 = (double)CONCAT44(iVar13,uVar8), iVar13 == iVar17 &&
          (dVar30 = (double)CONCAT44(iVar13,uVar8), local_e0 < puVar15)))) goto LAB_00051864;
LAB_00051868:
      puVar18 = SUB84(dVar30,0);
      if (local_e4 == 0) {
        puVar9 = puVar4;
        puVar24 = (undefined8 *)(*(code *)PTR_fd_read_000b7770)(param_2,puVar4);
        local_120 = dVar31;
LAB_000516fc:
        bVar1 = (int)puVar24 < 0;
        dVar30 = (double)CONCAT44(puVar15,puVar18);
        if ((int)puVar24 < 1) goto LAB_000518d8;
        if (iVar7 == 0) {
          if (*(int *)(PTR_opt_000b746c + 0x158) == 0 && *(int *)(PTR_opt_000b746c + 0x15c) == 0)
          goto LAB_00051720;
          ptimer_measure(local_104);
        }
        else {
          ptimer_measure(local_104);
        }
LAB_000515b0:
        dVar29 = (double)ptimer_read(local_104);
LAB_000515c4:
        puVar12 = (undefined8 *)((int)local_fc + (int)puVar24);
        iVar6 = (uint)(puVar12 < local_fc) + iVar6 + ((int)puVar24 >> 0x1f);
        puVar9 = param_13;
        puVar15 = puVar4;
        puVar18 = puVar24;
        local_fc = puVar12;
        if (local_100 == (undefined8 *)0x0) {
          local_120 = (double)(ZEXT48(auStack_ac + 4) << 0x20);
          puVar20 = (undefined8 *)FUN_000503a4(param_3,param_13);
          dVar30 = (double)CONCAT44(puVar15,puVar18);
          puVar3 = (undefined8 *)(auStack_ac + 4);
          if ((int)puVar20 < 0) goto LAB_00051040;
        }
        else {
          local_120 = 0.0;
          local_120._0_4_ = (undefined8 *)0x0;
          puVar20 = (undefined8 *)FUN_000503a4(0,param_13);
          dVar30 = (double)CONCAT44(puVar15,puVar18);
          puVar3 = local_120._0_4_;
          if ((int)puVar20 < 0) goto LAB_00051040;
          puVar21 = PTR_DAT_000b758c + -0x1898;
          pcVar23 = (code *)(PTR_LAB_000b78e4 + 0x3a4);
          local_94 = puVar4;
          local_90 = puVar24;
          do {
            local_84 = 0x8000;
            local_88 = local_100;
            puVar9 = (undefined8 *)0x0;
            iVar17 = (*(code *)PTR_inflate_000b7d40)(&local_94,0);
            puVar3 = local_120._0_4_;
            if (iVar17 == -3) {
LAB_000511f4:
              puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();
              dVar30 = (double)CONCAT44(puVar15,puVar18);
              *puVar10 = 0x16;
              puVar20 = (undefined8 *)0xffffffff;
              goto LAB_00051040;
            }
            if (iVar17 < -2) {
              if (iVar17 == -4) {
                puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();
                dVar30 = (double)CONCAT44(puVar15,puVar18);
                *puVar10 = 0xc;
                puVar20 = (undefined8 *)0xffffffff;
                goto LAB_00051040;
              }
            }
            else if (iVar17 == 1) {
              if (((param_12 & 1) != 0) &&
                 (((param_5 != iVar6 || (param_6 != puVar12)) && (PTR_opt_000b746c[0x16b] != '\0')))
                 ) {
                debug_logprintf(puVar21);
              }
            }
            else if (iVar17 == 2) goto LAB_000511f4;
            local_120 = (double)(ZEXT48(auStack_ac + 4) << 0x20);
            puVar18 = (undefined8 *)(0x8000 - local_84);
            puVar9 = (undefined8 *)0x0;
            puVar15 = local_100;
            puVar20 = (undefined8 *)(*pcVar23)(param_3,0);
            dVar30 = (double)CONCAT44(puVar15,puVar18);
            puVar3 = (undefined8 *)(auStack_ac + 4);
            if ((int)puVar20 < 0) goto LAB_00051040;
          } while (local_84 == 0);
        }
        dVar31 = local_120;
        if (uVar5 != 0) {
          puVar20 = (undefined8 *)((int)local_f0 - (int)puVar24);
          iVar22 = (iVar22 - ((int)puVar24 >> 0x1f)) - (uint)(local_f0 < puVar20);
          local_f0 = puVar20;
          if (iVar22 == 0 && puVar20 == (undefined8 *)0x0) {
            iVar17 = fd_read_line(param_2);
            dVar25 = (double)CONCAT44(puVar15,puVar18);
            if (iVar17 == 0) {
              puVar24 = (undefined8 *)0xffffffff;
              goto LAB_000518d4;
            }
            if (param_13 != (undefined8 *)0x0) {
              puVar15 = (undefined8 *)(*(code *)PTR_strlen_000b7c94)(iVar17);
              puVar9 = (undefined8 *)&DAT_00000001;
              puVar18 = param_13;
              (*(code *)PTR_fwrite_000b7c24)(iVar17,1);
            }
            (*(code *)PTR_free_000b7d34)(iVar17);
          }
        }
        goto LAB_00051748;
      }
      if (*(double *)(PTR_opt_000b746c + 0x120) == 0.0) {
        dVar31 = *(double *)(PTR_DAT_000b758c + -0x15e0);
      }
      else {
        dVar25 = (double)ptimer_read(local_104);
        puVar18 = SUB84(dVar30,0);
        if (*(double *)(PTR_opt_000b746c + 0x120) <
            (dVar25 - dVar29) + *(double *)(PTR_DAT_000b758c + -0x15e0)) {
          dVar31 = *(double *)(PTR_opt_000b746c + 0x120) - (dVar25 - dVar29);
          if (dVar31 < 0.0) {
            puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();
            *puVar10 = 0x91;
            puVar20 = (undefined8 *)0xffffffff;
            goto LAB_00051040;
          }
        }
        else {
          dVar31 = *(double *)(PTR_DAT_000b758c + -0x15e0);
        }
      }
      puVar9 = puVar4;
      puVar24 = (undefined8 *)(*(code *)PTR_fd_read_000b7770)(param_2,puVar4);
      local_120 = dVar31;
      if (-1 < (int)puVar24) goto LAB_000516fc;
      piVar14 = (int *)(*(code *)PTR___errno_location_000b7eb8)();
      dVar25 = (double)CONCAT44(puVar15,puVar18);
      local_120._0_4_ = (undefined8 *)((ulonglong)dVar31 >> 0x20);
      if (*piVar14 != 0x91) goto LAB_000518d4;
      if (iVar7 == 0) {
        if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {
          ptimer_measure(local_104);
          puVar24 = (undefined8 *)0x0;
          goto LAB_00051748;
        }
        puVar24 = (undefined8 *)0x0;
LAB_00051720:
        dVar25 = (double)CONCAT44(puVar15,puVar18);
        if (param_11 != (undefined8 *)0x0) {
          ptimer_measure(local_104);
          dVar31 = local_120;
          if (0 < (int)puVar24) goto LAB_000515b0;
          goto LAB_00051748;
        }
        if (0 < (int)puVar24) goto LAB_000515c4;
      }
      else {
        ptimer_measure(local_104);
        puVar24 = (undefined8 *)0x0;
LAB_00051748:
        local_120 = dVar31;
        dVar25 = (double)CONCAT44(puVar15,puVar18);
        if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {
          dVar30 = (double)ptimer_read(local_104);
          puVar21 = PTR_DAT_000b7720;
          dVar30 = dVar30 - *(double *)(PTR_DAT_000b7720 + -0x2fe0);
          puVar20 = (undefined8 *)((int)puVar24 + *(int *)(PTR_DAT_000b7720 + -0x2fe4));
          iVar17 = (uint)(puVar20 < puVar24) +
                   ((int)puVar24 >> 0x1f) + *(int *)(PTR_DAT_000b7720 + -0x2fe8);
          *(int *)(PTR_DAT_000b7720 + -0x2fe8) = iVar17;
          *(undefined8 **)(puVar21 + -0x2fe4) = puVar20;
          dVar31 = (double)(*(code *)PTR_FUN_000b78f4)(iVar17,puVar20);
          puVar9 = *(undefined8 **)(PTR_opt_000b746c + 0x15c);
          dVar27 = (double)(*(code *)PTR_FUN_000b78f4)
                                     (*(undefined4 *)(PTR_opt_000b746c + 0x158),puVar9);
          dVar25 = (double)CONCAT44(puVar15,puVar18);
          if (dVar30 < dVar31 / dVar27) {
            dVar30 = (dVar31 / dVar27 - dVar30) + *(double *)(PTR_DAT_000b7720 + -0x2fd8);
            if (dVar30 < dVar32) {
              if (PTR_opt_000b746c[0x16b] != '\0') {
                uVar11 = number_to_static_string(iVar17,puVar20);
                local_120 = (double)((ulonglong)uVar11 << 0x20);
                dVar25 = dVar30 * *(double *)(puVar2 + -0x15d8);
                debug_logprintf(PTR_DAT_000b758c + -0x1864);
                puVar9 = puVar20;
              }
              goto LAB_0005175c;
            }
            if (PTR_opt_000b746c[0x16b] != '\0') {
              uVar11 = number_to_static_string(iVar17,puVar20);
              local_120 = (double)((ulonglong)uVar11 << 0x20);
              dVar25 = dVar30 * dVar28;
              debug_logprintf(PTR_DAT_000b758c + -0x183c);
              puVar9 = puVar20;
            }
            dVar31 = (double)ptimer_read(local_104);
            xsleep(dVar30);
            dVar27 = (double)ptimer_measure(local_104);
            dVar30 = dVar30 - (dVar27 - dVar31);
            if (dVar33 < dVar30) {
              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x2580);
            }
            else if (dVar34 <= dVar30) {
              *(double *)(PTR_DAT_000b7720 + -0x2fd8) = dVar30;
            }
            else {
              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x15d0);
            }
          }
          puVar21 = PTR_DAT_000b7720;
          *(undefined4 *)(PTR_DAT_000b7720 + -0x2fe4) = 0;
          *(undefined4 *)(puVar21 + -0x2fe8) = 0;
          uVar26 = ptimer_read(local_104);
          *(undefined8 *)(puVar21 + -0x2fe0) = uVar26;
        }
      }
LAB_0005175c:
      if (iVar7 != 0) {
        local_120 = (double)ptimer_read(local_104);
        iVar17 = (int)puVar24 >> 0x1f;
        puVar20 = puVar24;
        progress_update(iVar7);
        dVar25 = (double)CONCAT44(iVar17,puVar20);
      }
    }
    dVar31 = *(double *)(PTR_opt_000b746c + 0x120);
    if (uVar5 == 0) {
LAB_00051864:
      puVar15 = puVar20;
      dVar30 = dVar25;
      goto LAB_00051868;
    }
LAB_00051820:
    if (iVar22 != 0 || local_f0 != (undefined8 *)0x0) {
LAB_00051830:
      puVar20 = local_f0;
      if ((iVar17 <= iVar22) &&
         ((puVar15 = local_e0, dVar30 = dVar25, iVar17 != iVar22 ||
          (puVar20 = local_f0, local_e0 <= local_f0)))) goto LAB_00051868;
      goto LAB_00051864;
    }
    iVar13 = fd_read_line(param_2);
    puVar20 = SUB84(dVar25,0);
    if (iVar13 == 0) {
LAB_00050e90:
      puVar24 = (undefined8 *)0xffffffff;
LAB_000518d4:
      bVar1 = (int)puVar24 < 0;
      dVar30 = dVar25;
LAB_000518d8:
      puVar20 = (undefined8 *)0xffffffff;
      puVar3 = local_120._0_4_;
      if (!bVar1) {
        puVar20 = puVar24;
      }
    }
    else {
      if (param_13 != (undefined8 *)0x0) {
        uVar8 = (*(code *)PTR_strlen_000b7c94)(iVar13);
        puVar20 = param_13;
        (*(code *)PTR_fwrite_000b7c24)(iVar13,1,uVar8);
      }
      uVar8 = 0x10;
      puVar9 = (undefined8 *)auStack_ac;
      local_f0 = (undefined8 *)(*(code *)PTR_strtol_000b7d3c)(iVar13,puVar9);
      iVar22 = (int)local_f0 >> 0x1f;
      (*(code *)PTR_free_000b7d34)(iVar13);
      dVar25 = (double)CONCAT44(uVar8,puVar20);
      if (iVar22 < 0) goto LAB_00050e90;
      if (local_f0 != (undefined8 *)0x0) goto LAB_00051830;
      iVar22 = fd_read_line(param_2);
      dVar30 = (double)CONCAT44(uVar8,puVar20);
      if (iVar22 == 0) {
        puVar20 = (undefined8 *)0xffffffff;
      }
      else {
        if (param_13 != (undefined8 *)0x0) {
          uVar8 = (*(code *)PTR_strlen_000b7c94)(iVar22);
          puVar9 = (undefined8 *)&DAT_00000001;
          (*(code *)PTR_fwrite_000b7c24)(iVar22,1);
          puVar20 = param_13;
        }
        (*(code *)PTR_free_000b7d34)(iVar22);
        dVar30 = (double)CONCAT44(uVar8,puVar20);
        puVar20 = (undefined8 *)0x0;
      }
    }
LAB_00051040:
    local_120._0_4_ = puVar3;
    if (iVar7 != 0) {
      uVar26 = ptimer_read(local_104);
      uVar19 = (undefined4)uVar26;
      uVar8 = (undefined4)((ulonglong)uVar26 >> 0x20);
      progress_finish(iVar7);
      dVar30 = (double)CONCAT44(uVar8,uVar19);
    }
    if (param_11 != (undefined8 *)0x0) goto LAB_00051080;
  }
  else {
    local_100 = (undefined8 *)(*(code *)PTR_xmalloc_000b7480)(0x8000);
    if (local_100 == (undefined8 *)0x0) {
      puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();
      *puVar10 = 0xc;
    }
    else {
      local_74 = PTR_LAB_000b78e4 + 0x368;
      local_70 = PTR_LAB_000b78e4 + 0x330;
      local_6c = 0;
      local_94 = (undefined8 *)0x0;
      local_90 = (undefined8 *)0x0;
      param_4 = (undefined1 *)0x38;
      puVar21 = PTR_DAT_000b758c + -0x18a0;
      puVar9 = (undefined8 *)0x2f;
      iVar6 = (*(code *)PTR_inflateInit2__000b7d68)(&local_94,0x2f);
      if (iVar6 == 0) goto LAB_00050b74;
      (*(code *)PTR_free_000b7d34)(local_100);
      uVar8 = 0x16;
      if (iVar6 == -4) {
        uVar8 = 0xc;
      }
      puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();
      *puVar10 = uVar8;
    }
    dVar30 = (double)CONCAT44(puVar21,param_4);
    local_100 = param_11;
    if (param_11 == (undefined8 *)0x0) {
      iVar6 = 0;
      local_fc = (undefined8 *)0x0;
      puVar20 = (undefined8 *)0xffffffff;
      goto LAB_000510b8;
    }
    local_100 = (undefined8 *)0x0;
    iVar6 = 0;
    local_fc = (undefined8 *)0x0;
    local_104 = (undefined8 *)0x0;
    puVar20 = (undefined8 *)0xffffffff;
LAB_00051080:
    uVar26 = ptimer_read(local_104);
    *param_11 = uVar26;
  }
  if (local_104 != (undefined8 *)0x0) {
    ptimer_destroy(local_104);
  }
LAB_000510b8:
  if (local_100 != (undefined8 *)0x0) {
    puVar9 = (undefined8 *)(*(code *)PTR_inflateEnd_000b7e58)(&local_94);
    if ((-1 < (int)puVar20) && (puVar20 = puVar9, puVar9 != (undefined8 *)0x0)) {
      puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)(local_100);
      *puVar10 = 0x16;
      puVar20 = (undefined8 *)0xffffffff;
    }
    (*(code *)PTR_free_000b7d34)(local_100);
    puVar9 = local_8c;
    if (((iVar6 != 0) || (local_8c != local_fc)) &&
       (dVar30 = (double)CONCAT44(iVar6,SUB84(dVar30,0)), PTR_opt_000b746c[0x16b] != '\0')) {
      iVar7 = iVar6;
      puVar9 = local_fc;
      debug_logprintf(PTR_DAT_000b758c + -0x180c);
      dVar30 = (double)CONCAT44(iVar7,puVar9);
      puVar9 = local_8c;
    }
  }
  if (param_9 != (int *)0x0) {
    puVar16 = (undefined1 *)param_9[1] + (int)local_fc;
    *param_9 = (uint)(puVar16 < (undefined1 *)param_9[1]) + *param_9 + iVar6;
    param_9[1] = (int)puVar16;
  }
  if (param_10 != (int *)0x0) {
    uVar5 = param_10[1] + local_9c;
    *param_10 = (int)((int)local_a0 + (uint)(uVar5 < (uint)param_10[1]) + *param_10);
    param_10[1] = uVar5;
    puVar9 = local_a0;
  }
  (*(code *)PTR_free_000b7d34)(puVar4);
  if (local_5c == *(int *)PTR___stack_chk_guard_000b7c68) {
    return puVar20;
  }
  iVar6 = local_5c;
  puVar21 = PTR___stack_chk_fail_000b7bfc;
  (*(code *)PTR___stack_chk_fail_000b7bfc)();
  if (*(char *)(*(int *)(puVar21 + 0x65acc) + 0x223) == '\0') {
    dVar25 = *(double *)(*(int *)(puVar21 + 0x65bec) + -0x6f98);
  }
  else {
    dVar25 = *(double *)(*(int *)(puVar21 + 0x65bec) + -0x15d8);
  }
  if (dVar30 == 0.0) {
    dVar30 = (double)ptimer_resolution();
    dVar30 = dVar30 * *(double *)(*(int *)(puVar21 + 0x65bec) + -0x2580);
  }
  uVar26 = convert_to_bits(iVar6,puVar9);
  dVar28 = (double)(**(code **)(puVar21 + 0x65f54))((int)((ulonglong)uVar26 >> 0x20),(int)uVar26);
  dVar28 = dVar28 / dVar30;
  if (dVar28 < dVar25) {
    *(undefined4 *)local_120._0_4_ = 0;
  }
  else if (dVar28 < dVar25 * dVar25) {
    *(undefined4 *)local_120._0_4_ = 1;
    local_120._0_4_ = (undefined8 *)&DAT_00000001;
  }
  else if (dVar28 < dVar25 * dVar25 * dVar25) {
    *(undefined4 *)local_120._0_4_ = 2;
    local_120._0_4_ = (undefined8 *)0x2;
  }
  else {
    *(undefined4 *)local_120._0_4_ = 3;
    local_120._0_4_ = (undefined8 *)0x3;
  }
  return local_120._0_4_;
}


lui gp,0x7
addiu gp,gp,-0x1654
addu gp,gp,t9
addiu sp,sp,-0x130
sw ra,0xfc(sp)
sw s8,0xf8(sp)
sw s7,0xf4(sp)
sw s6,0xf0(sp)
sw s5,0xec(sp)
sw s4,0xe8(sp)
sw s3,0xe4(sp)
sw s2,0xe0(sp)
sw s1,0xdc(sp)
sw s0,0xd8(sp)
sdc1 f30,0x128(sp)
sdc1 f28,0x120(sp)
sdc1 f26,0x118(sp)
sdc1 f24,0x110(sp)
sdc1 f22,0x108(sp)
sdc1 f20,0x100(sp)
sw gp,0x20(sp)
or s3,a0,zero
sw a1,0x134(sp)
sw a2,0x5c(sp)
lw v0,0x140(sp)
sw v0,0x48(sp)
lw v0,0x144(sp)
sw v0,0x60(sp)
lw s2,0x148(sp)
lw s1,0x14c(sp)
lw s4,0x150(sp)
lw s5,0x154(sp)
lw v0,0x158(sp)
sw v0,0x54(sp)
lw s0,0x15c(sp)
lw v0,0x160(sp)
sw v0,0x58(sp)
lw v0,-0x77c8(gp)
lw v0,0x0(v0)
sw v0,0xd4(sp)
li a0,0x2000
lw t9,-0x7fb0(gp)
jalr t9
_nop
lw gp,0x20(sp)
sw v0,0x38(sp)
andi v0,s0,0x1
sw v0,0x44(sp)
andi v0,s0,0x4
sw v0,0x3c(sp)
or v1,zero,zero
or v0,zero,zero
sw v1,0x8c(sp)
sw v0,0x88(sp)
sw v1,0x94(sp)
sw v0,0x90(sp)
andi v0,s0,0x8
bne v0,zero,0x00050c90
_ori a0,zero,0x8000
sw zero,0x30(sp)
andi s0,s0,0x2
beq s0,zero,0x00050b88
_lw v0,-0x7fc4(gp)
sw s2,0x88(sp)
sw s1,0x8c(sp)
lw v0,0x10c(v0)
beq v0,zero,0x00051934
_lw v1,-0x7fc4(gp)
lw v0,0x88(sp)
lw v1,0x8c(sp)
or v0,v0,v1
movn s2,zero,v0
movn s1,zero,v0
lw v0,-0x7fc4(gp)
lw a0,0x30(v0)
beq a0,zero,0x00050bcc
_lw t9,-0x779c(gp)
jalr t9
_nop
lw gp,0x20(sp)
addiu v0,v0,0x1
addu s3,s3,v0
lw v0,0x60(sp)
addu v1,s1,v0
sltu v0,v1,s1
lw a0,0x48(sp)
addu a0,s2,a0
addu v0,v0,a0
sw v0,0x10(sp)
sw v1,0x14(sp)
or a2,s2,zero
or a3,s1,zero
or a0,s3,zero
lw t9,-0x7aec(gp)
bal 0x0004cc30
_nop
lw gp,0x20(sp)
or s7,v0,zero
or a0,v0,zero
lw t9,-0x7ae8(gp)
bal 0x0004ccec
_nop
lw gp,0x20(sp)
sw v0,0x4c(sp)
lw v1,-0x7fc4(gp)
lw v0,0x158(v1)
lw v1,0x15c(v1)
or v0,v0,v1
bne v0,zero,0x00051950
_lw v0,-0x7d10(gp)
beq s7,zero,0x00051978
_lw v0,0x54(sp)
lw t9,-0x7ed8(gp)
bal 0x0004ce50
_nop
lw gp,0x20(sp)
sw v0,0x2c(sp)
lw v0,-0x7fc4(gp)
lw v1,0x158(v0)
lw v0,0x15c(v0)
or a0,v1,v0
beq a0,zero,0x0005149c
_nop
bgtz v1,0x000514f4
_nop
bne v1,zero,0x00050c88
_sltiu v1,v0,0x2000
beq v1,zero,0x000514f4
_nop
b 0x000514a4
_sw v0,0x50(sp)
lw t9,-0x7fb0(gp)
jalr t9
_nop
lw gp,0x20(sp)
beq v0,zero,0x00050d3c
_sw v0,0x30(sp)
lw v0,-0x7b4c(gp)
addiu v0,v0,0x368
sw v0,0xbc(sp)
lw v0,-0x7b4c(gp)
addiu v0,v0,0x330
sw v0,0xc0(sp)
sw zero,0xc4(sp)
sw zero,0x9c(sp)
sw zero,0xa0(sp)
li a3,0x38
lw a2,-0x7ea4(gp)
addiu a2,a2,-0x18a0
li a1,0x2f
addiu a0,sp,0x9c
lw t9,-0x76c8(gp)
jalr t9
_nop
lw gp,0x20(sp)
beq v0,zero,0x00050b74
_or s6,v0,zero
lw a0,0x30(sp)
lw t9,-0x76fc(gp)
jalr t9
_nop
lw gp,0x20(sp)
li v0,-0x4
xor a0,s6,v0
li v1,0xc
li v0,0x16
movz v0,v1,a0
or s0,v0,zero
lw t9,-0x7578(gp)
jalr t9
_nop
lw gp,0x20(sp)
b 0x00050d54
_sw s0,0x0(v0)
lw t9,-0x7578(gp)
jalr t9
_nop
lw gp,0x20(sp)
li v1,0xc
sw v1,0x0(v0)
lw v0,0x54(sp)
beq v0,zero,0x00051574
_nop
sw zero,0x30(sp)
or s8,zero,zero
sw zero,0x34(sp)
sw zero,0x2c(sp)
b 0x00051080
_li s0,-0x1
lw t9,-0x7d44(gp)
bal 0x00050a40
_nop
lw gp,0x20(sp)
beq v0,zero,0x00050e90
_or s0,v0,zero
lw s1,0x58(sp)
beq s1,zero,0x00050dcc
_or a0,v0,zero
lw t9,-0x779c(gp)
jalr t9
_nop
lw gp,0x20(sp)
or a3,s1,zero
or a2,v0,zero
li a1,0x1
or a0,s0,zero
lw t9,-0x780c(gp)
jalr t9
_nop
lw gp,0x20(sp)
li a2,0x10
addiu a1,sp,0x84
or a0,s0,zero
lw t9,-0x76f4(gp)
jalr t9
_nop
lw gp,0x20(sp)
or s1,v0,zero
sw v0,0x40(sp)
sra s2,v0,0x1f
or a0,s0,zero
lw t9,-0x76fc(gp)
jalr t9
_nop
lw gp,0x20(sp)
bltz s2,0x00050e90
_or v0,s2,s1
bne v0,zero,0x00051830
_lw a0,0x134(sp)
lw t9,-0x7d44(gp)
bal 0x00050a40
_nop
lw gp,0x20(sp)
beq v0,zero,0x00050e88
_or s0,v0,zero
lw s1,0x58(sp)
beq s1,zero,0x00050e6c
_or a0,v0,zero
lw t9,-0x779c(gp)
jalr t9
_nop
lw gp,0x20(sp)
or a3,s1,zero
or a2,v0,zero
li a1,0x1
or a0,s0,zero
lw t9,-0x780c(gp)
jalr t9
_nop
lw gp,0x20(sp)
or a0,s0,zero
lw t9,-0x76fc(gp)
jalr t9
_nop
lw gp,0x20(sp)
b 0x00051040
_or s0,zero,zero
b 0x00051040
_li s0,-0x1
b 0x000518d4
_li s6,-0x1
lw a0,0x2c(sp)
lw t9,-0x7ae4(gp)
bal 0x0004d100
_nop
lw gp,0x20(sp)
sub.D D f0,f0,f28
lw v0,-0x7fc4(gp)
ldc1 f2,0x120(v0)
lw v0,-0x7ea4(gp)
ldc1 f4,-0x15e0(v0)
add.D f4,f0,f4
c.lt.D f2,f4
bc1f 0x1,0x000516d0
_nop
sub.D D f0,f2,f0
mtc1 zero,f2
mthc1 zero,f2
c.lt.D f0,f2
bc1f 0x2,0x0005188c
_lw t9,-0x7578(gp)
jalr t9
_nop
lw gp,0x20(sp)
li v1,0x91
sw v1,0x0(v0)
b 0x00051040
_li s0,-0x1
beq s7,zero,0x000518fc
_lw a0,0x2c(sp)
lw t9,-0x7ed4(gp)
bal 0x0004d024
_nop
lw gp,0x20(sp)
b 0x00051744
_or s6,zero,zero
sw zero,0x14(sp)
sw zero,0x10(sp)
or a3,s6,zero
lw s0,0x38(sp)
or a2,s0,zero
lw a1,0x58(sp)
or a0,zero,zero
lw t9,-0x7b4c(gp)
addiu t9,t9,0x3a4
bal 0x000503a4
_nop
lw gp,0x20(sp)
bltz v0,0x0005152c
_nop
sw s6,0xa0(sp)
sw s0,0x9c(sp)
addiu s0,sp,0x9c
lw v0,-0x7ea4(gp)
addiu v0,v0,-0x1898
sw v0,0x7c(sp)
lw s3,-0x7b4c(gp)
addiu s3,s3,0x3a4
ori v0,zero,0x8000
sw v0,0xac(sp)
lw v0,0x30(sp)
sw v0,0xa8(sp)
or a1,zero,zero
or a0,s0,zero
lw t9,-0x76f0(gp)
jalr t9
_nop
lw gp,0x20(sp)
li v1,-0x3
beq v0,v1,0x000511f0
_slti v1,v0,-0x2
bne v1,zero,0x0005101c
_li v1,0x1
beq v0,v1,0x00051210
_li v1,0x2
beq v0,v1,0x000511f4
_lw t9,-0x7578(gp)
addiu v0,sp,0x90
sw v0,0x14(sp)
addiu v0,sp,0x88
sw v0,0x10(sp)
ori a3,zero,0x8000
lw v0,0xac(sp)
subu a3,a3,v0
lw a2,0x30(sp)
or a1,zero,zero
lw a0,0x5c(sp)
or t9,s3,zero
jalr t9
_nop
lw gp,0x20(sp)
bltz v0,0x00051534
_nop
lw v0,0xac(sp)
beq v0,zero,0x00050f7c
_lw v0,0x3c(sp)
b 0x0005162c
_nop
li v1,-0x4
bne v0,v1,0x00050fc8
_lw t9,-0x7578(gp)
jalr t9
_nop
lw gp,0x20(sp)
li v1,0xc
sw v1,0x0(v0)
li s0,-0x1
beq s7,zero,0x00051074
_lw a0,0x2c(sp)
lw t9,-0x7ae4(gp)
bal 0x0004d100
_nop
lw gp,0x20(sp)
mfc1 a3,f0
mfhc1 a2,f0
or a0,s7,zero
lw t9,-0x7ae0(gp)
bal 0x0004cd78
_nop
lw gp,0x20(sp)
lw v0,0x54(sp)
beq v0,zero,0x000510a0
_lw v0,0x2c(sp)
lw a0,0x2c(sp)
lw t9,-0x7ae4(gp)
bal 0x0004d100
_nop
lw gp,0x20(sp)
lw v0,0x54(sp)
sdc1 f0,0x0(v0)
lw v0,0x2c(sp)
beq v0,zero,0x000510b8
_or a0,v0,zero
lw t9,-0x7ecc(gp)
bal 0x0004cdc0
_nop
lw gp,0x20(sp)
lw v0,0x30(sp)
beq v0,zero,0x0005112c
_addiu a0,sp,0x9c
lw t9,-0x75d8(gp)
jalr t9
_nop
lw gp,0x20(sp)
bltz s0,0x00051104
_lw a0,0x30(sp)
beq v0,zero,0x00051104
_or s0,v0,zero
lw t9,-0x7578(gp)
jalr t9
_nop
lw gp,0x20(sp)
li v1,0x16
sw v1,0x0(v0)
li s0,-0x1
lw a0,0x30(sp)
lw t9,-0x76fc(gp)
jalr t9
_nop
lw gp,0x20(sp)
beq s8,zero,0x0005153c
_lw a1,0xa4(sp)
lw v0,-0x7fc4(gp)
lbu v0,0x16b(v0)
bne v0,zero,0x00051550
_or a2,s8,zero
beq s4,zero,0x00051154
_lw a0,0x34(sp)
lw v1,0x0(s4)
lw v0,0x4(s4)
addu a0,v0,a0
sltu v0,a0,v0
addu v1,v1,s8
addu v0,v0,v1
sw v0,0x0(s4)
sw a0,0x4(s4)
beq s5,zero,0x00051180
_lw v1,0x94(sp)
lw a0,0x0(s5)
lw v0,0x4(s5)
addu v1,v0,v1
sltu v0,v1,v0
lw a1,0x90(sp)
addu a0,a0,a1
addu v0,v0,a0
sw v0,0x0(s5)
sw v1,0x4(s5)
lw a0,0x38(sp)
lw t9,-0x76fc(gp)
jalr t9
_nop
lw gp,0x20(sp)
or v0,s0,zero
lw a0,0xd4(sp)
lw v1,-0x77c8(gp)
lw v1,0x0(v1)
bne a0,v1,0x00051994
_lw ra,0xfc(sp)
lw s8,0xf8(sp)
lw s7,0xf4(sp)
lw s6,0xf0(sp)
lw s5,0xec(sp)
lw s4,0xe8(sp)
lw s3,0xe4(sp)
lw s2,0xe0(sp)
lw s1,0xdc(sp)
lw s0,0xd8(sp)
ldc1 f30,0x128(sp)
ldc1 f28,0x120(sp)
ldc1 f26,0x118(sp)
ldc1 f24,0x110(sp)
ldc1 f22,0x108(sp)
ldc1 f20,0x100(sp)
jr ra
_addiu sp,sp,0x130
lw t9,-0x7578(gp)
jalr t9
_nop
lw gp,0x20(sp)
li v1,0x16
sw v1,0x0(v0)
b 0x00051040
_li s0,-0x1
lw v0,0x44(sp)
beq v0,zero,0x00050fcc
_addiu v0,sp,0x90
lw v0,0x48(sp)
beq v0,s8,0x00051268
_lw v0,0x60(sp)
lw v0,-0x7fc4(gp)
lbu v0,0x16b(v0)
beq v0,zero,0x00050fc8
_lw v0,0x48(sp)
sw v0,0x10(sp)
lw v0,0x60(sp)
sw v0,0x14(sp)
or a2,s8,zero
lw a3,0x34(sp)
lw a0,0x7c(sp)
lw t9,-0x7fbc(gp)
bal 0x00045938
_nop
lw gp,0x20(sp)
b 0x00050fcc
_addiu v0,sp,0x90
lw v1,0x34(sp)
bne v0,v1,0x00051228
_addiu v0,sp,0x90
b 0x00050fd0
_sw v0,0x14(sp)
lw t9,-0x7ae4(gp)
bal 0x0004d100
_nop
lw gp,0x20(sp)
lw v0,-0x7d10(gp)
addiu v1,v0,-0x2fe8
ldc1 f22,0x8(v1)
sub.D D f22,f0,f22
sra v1,s6,0x1f
lw a0,-0x2fe8(v0)
lw s0,-0x2fe4(v0)
addu s0,s6,s0
sltu s1,s0,s6
addu v1,v1,a0
addu s1,s1,v1
sw s1,-0x2fe8(v0)
sw s0,-0x2fe4(v0)
lw t9,-0x7b3c(gp)
or a0,s1,zero
or a1,s0,zero
jalr t9
_nop
lw gp,0x20(sp)
mov.D f20,f0
lw t9,-0x7b3c(gp)
lw v0,-0x7fc4(gp)
lw a1,0x15c(v0)
lw a0,0x158(v0)
jalr t9
_nop
lw gp,0x20(sp)
div.D f0,f20,f0
c.lt.D f22,f0
bc1f 0x3,0x00051390
_lw v0,-0x7d10(gp)
sub.D D f20,f0,f22
ldc1 f0,-0x2fd8(v0)
add.D f20,f20,f0
c.lt.D f20,f24
bc1t 0x4,0x000513c4
_lw v0,-0x7fc4(gp)
lbu v0,0x16b(v0)
bne v0,zero,0x00051420
_or a0,s1,zero
lw s0,0x2c(sp)
or a0,s0,zero
lw t9,-0x7ae4(gp)
bal 0x0004d100
_nop
lw gp,0x20(sp)
mov.D f22,f0
mov.D f12,f20
lw t9,-0x7adc(gp)
bal 0x00061fcc
_nop
lw gp,0x20(sp)
or a0,s0,zero
lw t9,-0x7ed4(gp)
bal 0x0004d024
_nop
lw gp,0x20(sp)
sub.D D f0,f0,f22
sub.D D f20,f20,f0
c.lt.D f26,f20
bc1f 0x5,0x00051474
_lw v0,0x68(sp)
ldc1 f0,-0x2580(v0)
lw v0,-0x7d10(gp)
sdc1 f0,-0x2fd8(v0)
lw s0,-0x7d10(gp)
or v1,zero,zero
or v0,zero,zero
sw v1,-0x2fe4(s0)
sw v0,-0x2fe8(s0)
lw a0,0x2c(sp)
lw t9,-0x7ae4(gp)
bal 0x0004d100
_nop
lw gp,0x20(sp)
addiu s0,s0,-0x2fe8
b 0x0005175c
_sdc1 f0,0x8(s0)
lbu v0,0x16b(v0)
beq v0,zero,0x0005175c
_or a0,s1,zero
or a1,s0,zero
lw t9,-0x7e8c(gp)
bal 0x00061b54
_nop
lw gp,0x20(sp)
lw v1,0x78(sp)
ldc1 f0,-0x15d8(v1)
sdc1 f22,0x18(sp)
sw v0,0x10(sp)
mul.D f0,f20,f0
mfc1 a3,f0
mfhc1 a2,f0
lw a0,-0x7ea4(gp)
addiu a0,a0,-0x1864
lw t9,-0x7fbc(gp)
bal 0x00045938
_nop
lw gp,0x20(sp)
b 0x0005175c
_nop
or a1,s0,zero
lw t9,-0x7e8c(gp)
bal 0x00061b54
_nop
lw gp,0x20(sp)
lw v1,-0x7d10(gp)
ldc1 f0,-0x2fd8(v1)
sdc1 f0,0x18(sp)
sw v0,0x10(sp)
ldc1 f0,0x70(sp)
mul.D f0,f20,f0
mfc1 a3,f0
mfhc1 a2,f0
lw a0,-0x7ea4(gp)
addiu a0,a0,-0x183c
lw t9,-0x7fbc(gp)
bal 0x00045938
_nop
lw gp,0x20(sp)
b 0x00051330
_lw s0,0x2c(sp)
c.lt.D f20,f30
bc1t 0x6,0x0005148c
_lw v0,0x6c(sp)
lw v0,-0x7d10(gp)
b 0x00051390
_sdc1 f20,-0x2fd8(v0)
ldc1 f0,-0x15d0(v0)
lw v0,-0x7d10(gp)
b 0x00051390
_sdc1 f0,-0x2fd8(v0)
li v0,0x2000
sw v0,0x50(sp)
or s2,zero,zero
sw zero,0x40(sp)
or s8,zero,zero
sw zero,0x34(sp)
mtc1 zero,f28
mthc1 zero,f28
or s6,zero,zero
lw v0,-0x7ea4(gp)
ldc1 f24,-0x2340(v0)
lw v0,-0x7ea4(gp)
sw v0,0x68(sp)
ldc1 f26,-0x2580(v0)
lw v0,-0x7ea4(gp)
sw v0,0x6c(sp)
ldc1 f30,-0x15d0(v0)
lw v0,-0x7ea4(gp)
sw v0,0x78(sp)
ldc1 f0,-0x15d8(v0)
b 0x00051794
_sdc1 f0,0x70(sp)
li v0,0x2000
b 0x000514a4
_sw v0,0x50(sp)
lw v0,0x48(sp)
bne v0,s8,0x000518d4
_lw v0,0x60(sp)
lw v1,0x34(sp)
sltu v0,v1,v0
bne v0,zero,0x000517b0
_lw v0,-0x7fc4(gp)
b 0x000518d8
_slti s0,s6,0x0
b 0x000518d4
_li s6,-0x1
b 0x00051040
_or s0,v0,zero
b 0x00051040
_or s0,v0,zero
lw v1,0x34(sp)
bne a1,v1,0x0005111c
_nop
b 0x0005112c
_nop
lw a3,0x34(sp)
lw a0,-0x7ea4(gp)
addiu a0,a0,-0x180c
lw t9,-0x7fbc(gp)
bal 0x00045938
_nop
lw gp,0x20(sp)
b 0x0005112c
_nop
sw v0,0x30(sp)
or s8,zero,zero
sw zero,0x34(sp)
b 0x000510b8
_li s0,-0x1
bgtz s6,0x000515c4
_nop
b 0x0005175c
_nop
lw a0,0x2c(sp)
lw t9,-0x7ed4(gp)
bal 0x0004d024
_nop
lw gp,0x20(sp)
lw a0,0x2c(sp)
lw t9,-0x7ae4(gp)
bal 0x0004d100
_nop
lw gp,0x20(sp)
mov.D f28,f0
sw s6,0x64(sp)
sra s1,s6,0x1f
lw v1,0x34(sp)
addu v0,v1,s6
sltu v1,v0,v1
addu s8,s8,s1
sw v0,0x34(sp)
lw v0,0x30(sp)
bne v0,zero,0x00050f24
_addu s8,v1,s8
addiu v0,sp,0x90
sw v0,0x14(sp)
addiu v0,sp,0x88
sw v0,0x10(sp)
or a3,s6,zero
lw a2,0x38(sp)
lw a1,0x58(sp)
lw a0,0x5c(sp)
lw t9,-0x7b4c(gp)
addiu t9,t9,0x3a4
bal 0x000503a4
_nop
lw gp,0x20(sp)
bltz v0,0x00051040
_or s0,v0,zero
lw v0,0x3c(sp)
beq v0,zero,0x00051748
_lw v1,-0x7fc4(gp)
lw v1,0x40(sp)
lw v0,0x64(sp)
subu v0,v1,v0
sltu v1,v1,v0
subu s1,s2,s1
subu s1,s1,v1
or s2,s1,zero
or s1,s1,v0
bne s1,zero,0x00051744
_sw v0,0x40(sp)
lw a0,0x134(sp)
lw t9,-0x7d44(gp)
bal 0x00050a40
_nop
lw gp,0x20(sp)
beq v0,zero,0x00051524
_or s0,v0,zero
lw s1,0x58(sp)
beq s1,zero,0x000516b4
_or a0,v0,zero
lw t9,-0x779c(gp)
jalr t9
_nop
lw gp,0x20(sp)
or a3,s1,zero
or a2,v0,zero
li a1,0x1
or a0,s0,zero
lw t9,-0x780c(gp)
jalr t9
_nop
lw gp,0x20(sp)
or a0,s0,zero
lw t9,-0x76fc(gp)
jalr t9
_nop
lw gp,0x20(sp)
b 0x00051748
_lw v1,-0x7fc4(gp)
b 0x0005188c
_ldc1 f0,-0x15e0(v0)
sdc1 f20,0x10(sp)
or a2,s0,zero
lw a1,0x38(sp)
lw a0,0x134(sp)
lw t9,-0x7cc0(gp)
jalr t9
_nop
lw gp,0x20(sp)
or s6,v0,zero
blez s6,0x000518d8
_slti s0,s6,0x0
bne s7,zero,0x00051598
_lw v1,-0x7fc4(gp)
lw v0,0x158(v1)
lw v1,0x15c(v1)
or v0,v0,v1
bne v0,zero,0x0005191c
_lw a0,0x2c(sp)
lw v0,0x54(sp)
beq v0,zero,0x00051588
_lw a0,0x2c(sp)
lw t9,-0x7ed4(gp)
bal 0x0004d024
_nop
lw gp,0x20(sp)
bgtz s6,0x000515b0
_lw a0,0x2c(sp)
lw v1,-0x7fc4(gp)
lw v0,0x158(v1)
lw v1,0x15c(v1)
or v0,v0,v1
bne v0,zero,0x0005127c
_lw a0,0x2c(sp)
beq s7,zero,0x00051794
_lw a0,0x2c(sp)
lw t9,-0x7ae4(gp)
bal 0x0004d100
_nop
lw gp,0x20(sp)
sdc1 f0,0x10(sp)
sra a2,s6,0x1f
or a3,s6,zero
or a0,s7,zero
lw t9,-0x7ad8(gp)
bal 0x0004cd08
_nop
lw gp,0x20(sp)
lw v0,0x44(sp)
beq v0,zero,0x00051810
_lw v0,-0x7fc4(gp)
lw v0,0x48(sp)
slt v0,s8,v0
beq v0,zero,0x00051500
_lw v0,-0x7fc4(gp)
ldc1 f20,0x120(v0)
lw v0,0x3c(sp)
bne v0,zero,0x00051820
_lw v0,0x60(sp)
lw v1,0x34(sp)
subu v1,v0,v1
sltu a0,v0,v1
lw v0,0x48(sp)
subu v0,v0,s8
subu v0,v0,a0
lw a0,0x50(sp)
or a1,a0,zero
sra a0,a0,0x1f
or a2,v0,zero
slt v0,a0,v0
bne v0,zero,0x00051808
_or s0,v1,zero
bne a2,a0,0x00051868
_lw v0,0x4c(sp)
sltu v1,a1,v1
beq v1,zero,0x00051868
_nop
b 0x00051864
_or s0,a1,zero
ldc1 f20,0x120(v0)
lw v0,0x3c(sp)
beq v0,zero,0x00051864
_lw s0,0x50(sp)
lw v0,0x40(sp)
or v0,s2,v0
beq v0,zero,0x00050d78
_lw a0,0x134(sp)
lw s0,0x50(sp)
sra v0,s0,0x1f
or v1,v0,zero
slt v0,s2,v0
bne v0,zero,0x00051860
_nop
bne v1,s2,0x00051868
_lw v0,0x4c(sp)
lw v0,0x40(sp)
sltu v0,v0,s0
beq v0,zero,0x00051868
_lw v0,0x4c(sp)
lw s0,0x40(sp)
lw v0,0x4c(sp)
beq v0,zero,0x000516d8
_lw v0,-0x7fc4(gp)
ldc1 f2,0x120(v0)
mtc1 zero,f0
mthc1 zero,f0
c.eq.D f2,f0
bc1f 0x00050e98
_lw v0,-0x7ea4(gp)
ldc1 f0,-0x15e0(v0)
sdc1 f0,0x10(sp)
or a2,s0,zero
lw a1,0x38(sp)
lw a0,0x134(sp)
lw t9,-0x7cc0(gp)
jalr t9
_nop
lw gp,0x20(sp)
bgez v0,0x000516fc
_or s6,v0,zero
lw t9,-0x7578(gp)
jalr t9
_nop
lw gp,0x20(sp)
lw v1,0x0(v0)
li v0,0x91
beq v1,v0,0x00050f04
_nop
slti s0,s6,0x0
li v0,-0x1
movz v0,s6,s0
b 0x00051040
_or s0,v0,zero
bal 0x0004d024
_nop
lw gp,0x20(sp)
b 0x00051744
_or s6,zero,zero
lw v1,-0x7fc4(gp)
lw v0,0x158(v1)
lw v1,0x15c(v1)
or v0,v0,v1
bne v0,zero,0x000518e8
_lw t9,-0x7ed4(gp)
b 0x00051720
_or s6,zero,zero
lw t9,-0x7ed4(gp)
bal 0x0004d024
_nop
lw gp,0x20(sp)
b 0x000515b0
_lw a0,0x2c(sp)
lw v0,0x158(v1)
lw v1,0x15c(v1)
or v0,v0,v1
beq v0,zero,0x00051970
_or s7,zero,zero
sw zero,0x4c(sp)
lw v0,-0x7d10(gp)
sw zero,-0x2fe8(v0)
addiu v0,v0,-0x2fe8
sw zero,0x4(v0)
sw zero,0x8(v0)
sw zero,0xc(v0)
sw zero,0x10(v0)
b 0x00050c44
_sw zero,0x14(v0)
sw zero,0x4c(sp)
lw v0,0x54(sp)
bne v0,zero,0x00050c48
_lw t9,-0x7ed8(gp)
lw v0,0x54(sp)
sw v0,0x2c(sp)
li v0,0x2000
b 0x000514a4
_sw v0,0x50(sp)
lw t9,-0x7834(gp)
jalr t9
_nop
(translation_unit "/* WARNING: Type propagation algorithm not settling */\n\nundefined8 *\nfd_read_body(int param_1,undefined8 *param_2,undefined *param_3,undefined1 *param_4,int param_5,\n            undefined8 *param_6,undefined *param_7,undefined1 *param_8,int *param_9,int *param_10,\n            undefined8 *param_11,uint param_12,undefined8 *param_13)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  undefined8 *puVar3;\n  undefined8 *puVar4;\n  uint uVar5;\n  int iVar6;\n  int iVar7;\n  undefined4 uVar8;\n  undefined8 *puVar9;\n  undefined4 *puVar10;\n  uint uVar11;\n  undefined8 *puVar12;\n  int iVar13;\n  int *piVar14;\n  undefined8 *puVar15;\n  undefined1 *puVar16;\n  int iVar17;\n  undefined8 *puVar18;\n  undefined4 uVar19;\n  undefined8 *puVar20;\n  undefined *puVar21;\n  int iVar22;\n  code *pcVar23;\n  undefined8 *puVar24;\n  double dVar25;\n  undefined8 uVar26;\n  double dVar27;\n  double dVar28;\n  double dVar29;\n  double dVar30;\n  double dVar31;\n  double dVar32;\n  double dVar33;\n  double dVar34;\n  undefined8 local_120;\n  undefined8 *local_104;\n  undefined8 *local_100;\n  undefined8 *local_fc;\n  undefined8 *local_f0;\n  int local_e4;\n  undefined8 *local_e0;\n  undefined1 auStack_ac [8];\n  undefined1 *local_a4;\n  undefined8 *local_a0;\n  int local_9c;\n  undefined8 *local_94;\n  undefined8 *local_90;\n  undefined8 *local_8c;\n  undefined8 *local_88;\n  int local_84;\n  undefined *local_74;\n  undefined *local_70;\n  undefined4 local_6c;\n  int local_5c;\n  \n  local_5c = *(int *)PTR___stack_chk_guard_000b7c68;\n  puVar9 = param_2;\n  puVar21 = param_3;\n  puVar4 = (undefined8 *)(*(code *)PTR_xmalloc_000b7480)(0x2000);\n  uVar5 = param_12 & 4;\n  local_a4 = (undefined1 *)0x0;\n  auStack_ac._4_4_ = (undefined *)0x0;\n  local_9c = 0;\n  local_a0 = (undefined8 *)0x0;\n  if ((param_12 & 8) == 0) {\n    local_100 = (undefined8 *)0x0;\nLAB_00050b74:\n    if ((param_12 & 2) != 0) {\n      auStack_ac._4_4_ = param_7;\n      local_a4 = param_8;\n    }\n    if (*(int *)(PTR_opt_000b746c + 0x10c) == 0) {\n      iVar7 = 0;\n      if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n        local_e4 = 0;\n        goto LAB_00051950;\n      }\n      local_e4 = 0;\nLAB_00051978:\n      if (param_11 != (undefined8 *)0x0) goto LAB_00050c48;\n      local_104 = param_11;\n      local_e0 = (undefined8 *)0x2000;\n    }\n    else {\n      param_4 = param_8;\n      puVar21 = param_7;\n      if ((undefined *)auStack_ac._4_4_ != (undefined *)0x0 || local_a4 != (undefined1 *)0x0) {\n        puVar21 = (undefined *)0x0;\n        param_4 = (undefined1 *)0x0;\n      }\n      if (*(int *)(PTR_opt_000b746c + 0x30) != 0) {\n        iVar6 = (*(code *)PTR_strlen_000b7c94)();\n        param_1 = param_1 + iVar6 + 1;\n      }\n      local_120 = (double)CONCAT44(puVar21 + (uint)(param_4 + (int)param_6 < param_4) + param_5,\n                                   param_4 + (int)param_6);\n      iVar7 = progress_create(param_1);\n      local_e4 = progress_interactive_p(iVar7);\n      if (*(int *)(PTR_opt_000b746c + 0x158) == 0 && *(int *)(PTR_opt_000b746c + 0x15c) == 0) {\n        if (iVar7 == 0) goto LAB_00051978;\n      }\n      else {\nLAB_00051950:\n        puVar2 = PTR_DAT_000b7720;\n        *(undefined4 *)(PTR_DAT_000b7720 + -0x2fe8) = 0;\n        *(undefined4 *)(puVar2 + -0x2fe4) = 0;\n        *(undefined4 *)(puVar2 + -0x2fe0) = 0;\n        *(undefined4 *)(puVar2 + -0x2fdc) = 0;\n        *(undefined4 *)(puVar2 + -0x2fd8) = 0;\n        *(undefined4 *)(puVar2 + -0x2fd4) = 0;\n      }\nLAB_00050c48:\n      local_104 = (undefined8 *)ptimer_new();\n      iVar6 = *(int *)(PTR_opt_000b746c + 0x158);\n      local_e0 = *(undefined8 **)(PTR_opt_000b746c + 0x15c);\n      if (iVar6 == 0 && local_e0 == (undefined8 *)0x0) {\n        local_e0 = (undefined8 *)0x2000;\n      }\n      else if ((0 < iVar6) || ((iVar6 == 0 && ((undefined8 *)0x1fff < local_e0)))) {\n        local_e0 = (undefined8 *)0x2000;\n      }\n    }\n    puVar2 = PTR_DAT_000b758c;\n    dVar25 = (double)CONCAT44(puVar21,param_4);\n    iVar22 = 0;\n    local_f0 = (undefined8 *)0x0;\n    iVar6 = 0;\n    local_fc = (undefined8 *)0x0;\n    dVar29 = 0.0;\n    puVar24 = (undefined8 *)0x0;\n    dVar32 = *(double *)(PTR_DAT_000b758c + -0x2340);\n    dVar33 = *(double *)(PTR_DAT_000b758c + -0x2580);\n    dVar34 = *(double *)(PTR_DAT_000b758c + -0x15d0);\n    dVar28 = *(double *)(PTR_DAT_000b758c + -0x15d8);\n    while( true ) {\n      uVar8 = SUB84(dVar25,0);\n      iVar17 = (int)local_e0 >> 0x1f;\n      puVar20 = local_e0;\n      puVar3 = local_120._0_4_;\n      if ((param_12 & 1) == 0) break;\n      if (param_5 <= iVar6) {\n        if (param_5 != iVar6) goto LAB_000518d4;\n        if (local_fc < param_6) goto LAB_000517b0;\n        bVar1 = (int)puVar24 < 0;\n        dVar30 = dVar25;\n        goto LAB_000518d8;\n      }\nLAB_000517b0:\n      dVar31 = *(double *)(PTR_opt_000b746c + 0x120);\n      if (uVar5 != 0) goto LAB_00051820;\n      puVar15 = (undefined8 *)((int)param_6 - (int)local_fc);\n      iVar13 = (param_5 - iVar6) - (uint)(param_6 < puVar15);\n      dVar25 = (double)CONCAT44(iVar13,uVar8);\n      puVar9 = local_e0;\n      if ((iVar17 < iVar13) ||\n         ((dVar30 = (double)CONCAT44(iVar13,uVar8), iVar13 == iVar17 &&\n          (dVar30 = (double)CONCAT44(iVar13,uVar8), local_e0 < puVar15)))) goto LAB_00051864;\nLAB_00051868:\n      puVar18 = SUB84(dVar30,0);\n      if (local_e4 == 0) {\n        puVar9 = puVar4;\n        puVar24 = (undefined8 *)(*(code *)PTR_fd_read_000b7770)(param_2,puVar4);\n        local_120 = dVar31;\nLAB_000516fc:\n        bVar1 = (int)puVar24 < 0;\n        dVar30 = (double)CONCAT44(puVar15,puVar18);\n        if ((int)puVar24 < 1) goto LAB_000518d8;\n        if (iVar7 == 0) {\n          if (*(int *)(PTR_opt_000b746c + 0x158) == 0 && *(int *)(PTR_opt_000b746c + 0x15c) == 0)\n          goto LAB_00051720;\n          ptimer_measure(local_104);\n        }\n        else {\n          ptimer_measure(local_104);\n        }\nLAB_000515b0:\n        dVar29 = (double)ptimer_read(local_104);\nLAB_000515c4:\n        puVar12 = (undefined8 *)((int)local_fc + (int)puVar24);\n        iVar6 = (uint)(puVar12 < local_fc) + iVar6 + ((int)puVar24 >> 0x1f);\n        puVar9 = param_13;\n        puVar15 = puVar4;\n        puVar18 = puVar24;\n        local_fc = puVar12;\n        if (local_100 == (undefined8 *)0x0) {\n          local_120 = (double)(ZEXT48(auStack_ac + 4) << 0x20);\n          puVar20 = (undefined8 *)FUN_000503a4(param_3,param_13);\n          dVar30 = (double)CONCAT44(puVar15,puVar18);\n          puVar3 = (undefined8 *)(auStack_ac + 4);\n          if ((int)puVar20 < 0) goto LAB_00051040;\n        }\n        else {\n          local_120 = 0.0;\n          local_120._0_4_ = (undefined8 *)0x0;\n          puVar20 = (undefined8 *)FUN_000503a4(0,param_13);\n          dVar30 = (double)CONCAT44(puVar15,puVar18);\n          puVar3 = local_120._0_4_;\n          if ((int)puVar20 < 0) goto LAB_00051040;\n          puVar21 = PTR_DAT_000b758c + -0x1898;\n          pcVar23 = (code *)(PTR_LAB_000b78e4 + 0x3a4);\n          local_94 = puVar4;\n          local_90 = puVar24;\n          do {\n            local_84 = 0x8000;\n            local_88 = local_100;\n            puVar9 = (undefined8 *)0x0;\n            iVar17 = (*(code *)PTR_inflate_000b7d40)(&local_94,0);\n            puVar3 = local_120._0_4_;\n            if (iVar17 == -3) {\nLAB_000511f4:\n              puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n              dVar30 = (double)CONCAT44(puVar15,puVar18);\n              *puVar10 = 0x16;\n              puVar20 = (undefined8 *)0xffffffff;\n              goto LAB_00051040;\n            }\n            if (iVar17 < -2) {\n              if (iVar17 == -4) {\n                puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n                dVar30 = (double)CONCAT44(puVar15,puVar18);\n                *puVar10 = 0xc;\n                puVar20 = (undefined8 *)0xffffffff;\n                goto LAB_00051040;\n              }\n            }\n            else if (iVar17 == 1) {\n              if (((param_12 & 1) != 0) &&\n                 (((param_5 != iVar6 || (param_6 != puVar12)) && (PTR_opt_000b746c[0x16b] != '\0')))\n                 ) {\n                debug_logprintf(puVar21);\n              }\n            }\n            else if (iVar17 == 2) goto LAB_000511f4;\n            local_120 = (double)(ZEXT48(auStack_ac + 4) << 0x20);\n            puVar18 = (undefined8 *)(0x8000 - local_84);\n            puVar9 = (undefined8 *)0x0;\n            puVar15 = local_100;\n            puVar20 = (undefined8 *)(*pcVar23)(param_3,0);\n            dVar30 = (double)CONCAT44(puVar15,puVar18);\n            puVar3 = (undefined8 *)(auStack_ac + 4);\n            if ((int)puVar20 < 0) goto LAB_00051040;\n          } while (local_84 == 0);\n        }\n        dVar31 = local_120;\n        if (uVar5 != 0) {\n          puVar20 = (undefined8 *)((int)local_f0 - (int)puVar24);\n          iVar22 = (iVar22 - ((int)puVar24 >> 0x1f)) - (uint)(local_f0 < puVar20);\n          local_f0 = puVar20;\n          if (iVar22 == 0 && puVar20 == (undefined8 *)0x0) {\n            iVar17 = fd_read_line(param_2);\n            dVar25 = (double)CONCAT44(puVar15,puVar18);\n            if (iVar17 == 0) {\n              puVar24 = (undefined8 *)0xffffffff;\n              goto LAB_000518d4;\n            }\n            if (param_13 != (undefined8 *)0x0) {\n              puVar15 = (undefined8 *)(*(code *)PTR_strlen_000b7c94)(iVar17);\n              puVar9 = (undefined8 *)&DAT_00000001;\n              puVar18 = param_13;\n              (*(code *)PTR_fwrite_000b7c24)(iVar17,1);\n            }\n            (*(code *)PTR_free_000b7d34)(iVar17);\n          }\n        }\n        goto LAB_00051748;\n      }\n      if (*(double *)(PTR_opt_000b746c + 0x120) == 0.0) {\n        dVar31 = *(double *)(PTR_DAT_000b758c + -0x15e0);\n      }\n      else {\n        dVar25 = (double)ptimer_read(local_104);\n        puVar18 = SUB84(dVar30,0);\n        if (*(double *)(PTR_opt_000b746c + 0x120) <\n            (dVar25 - dVar29) + *(double *)(PTR_DAT_000b758c + -0x15e0)) {\n          dVar31 = *(double *)(PTR_opt_000b746c + 0x120) - (dVar25 - dVar29);\n          if (dVar31 < 0.0) {\n            puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n            *puVar10 = 0x91;\n            puVar20 = (undefined8 *)0xffffffff;\n            goto LAB_00051040;\n          }\n        }\n        else {\n          dVar31 = *(double *)(PTR_DAT_000b758c + -0x15e0);\n        }\n      }\n      puVar9 = puVar4;\n      puVar24 = (undefined8 *)(*(code *)PTR_fd_read_000b7770)(param_2,puVar4);\n      local_120 = dVar31;\n      if (-1 < (int)puVar24) goto LAB_000516fc;\n      piVar14 = (int *)(*(code *)PTR___errno_location_000b7eb8)();\n      dVar25 = (double)CONCAT44(puVar15,puVar18);\n      local_120._0_4_ = (undefined8 *)((ulonglong)dVar31 >> 0x20);\n      if (*piVar14 != 0x91) goto LAB_000518d4;\n      if (iVar7 == 0) {\n        if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n          ptimer_measure(local_104);\n          puVar24 = (undefined8 *)0x0;\n          goto LAB_00051748;\n        }\n        puVar24 = (undefined8 *)0x0;\nLAB_00051720:\n        dVar25 = (double)CONCAT44(puVar15,puVar18);\n        if (param_11 != (undefined8 *)0x0) {\n          ptimer_measure(local_104);\n          dVar31 = local_120;\n          if (0 < (int)puVar24) goto LAB_000515b0;\n          goto LAB_00051748;\n        }\n        if (0 < (int)puVar24) goto LAB_000515c4;\n      }\n      else {\n        ptimer_measure(local_104);\n        puVar24 = (undefined8 *)0x0;\nLAB_00051748:\n        local_120 = dVar31;\n        dVar25 = (double)CONCAT44(puVar15,puVar18);\n        if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n          dVar30 = (double)ptimer_read(local_104);\n          puVar21 = PTR_DAT_000b7720;\n          dVar30 = dVar30 - *(double *)(PTR_DAT_000b7720 + -0x2fe0);\n          puVar20 = (undefined8 *)((int)puVar24 + *(int *)(PTR_DAT_000b7720 + -0x2fe4));\n          iVar17 = (uint)(puVar20 < puVar24) +\n                   ((int)puVar24 >> 0x1f) + *(int *)(PTR_DAT_000b7720 + -0x2fe8);\n          *(int *)(PTR_DAT_000b7720 + -0x2fe8) = iVar17;\n          *(undefined8 **)(puVar21 + -0x2fe4) = puVar20;\n          dVar31 = (double)(*(code *)PTR_FUN_000b78f4)(iVar17,puVar20);\n          puVar9 = *(undefined8 **)(PTR_opt_000b746c + 0x15c);\n          dVar27 = (double)(*(code *)PTR_FUN_000b78f4)\n                                     (*(undefined4 *)(PTR_opt_000b746c + 0x158),puVar9);\n          dVar25 = (double)CONCAT44(puVar15,puVar18);\n          if (dVar30 < dVar31 / dVar27) {\n            dVar30 = (dVar31 / dVar27 - dVar30) + *(double *)(PTR_DAT_000b7720 + -0x2fd8);\n            if (dVar30 < dVar32) {\n              if (PTR_opt_000b746c[0x16b] != '\0') {\n                uVar11 = number_to_static_string(iVar17,puVar20);\n                local_120 = (double)((ulonglong)uVar11 << 0x20);\n                dVar25 = dVar30 * *(double *)(puVar2 + -0x15d8);\n                debug_logprintf(PTR_DAT_000b758c + -0x1864);\n                puVar9 = puVar20;\n              }\n              goto LAB_0005175c;\n            }\n            if (PTR_opt_000b746c[0x16b] != '\0') {\n              uVar11 = number_to_static_string(iVar17,puVar20);\n              local_120 = (double)((ulonglong)uVar11 << 0x20);\n              dVar25 = dVar30 * dVar28;\n              debug_logprintf(PTR_DAT_000b758c + -0x183c);\n              puVar9 = puVar20;\n            }\n            dVar31 = (double)ptimer_read(local_104);\n            xsleep(dVar30);\n            dVar27 = (double)ptimer_measure(local_104);\n            dVar30 = dVar30 - (dVar27 - dVar31);\n            if (dVar33 < dVar30) {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x2580);\n            }\n            else if (dVar34 <= dVar30) {\n              *(double *)(PTR_DAT_000b7720 + -0x2fd8) = dVar30;\n            }\n            else {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x15d0);\n            }\n          }\n          puVar21 = PTR_DAT_000b7720;\n          *(undefined4 *)(PTR_DAT_000b7720 + -0x2fe4) = 0;\n          *(undefined4 *)(puVar21 + -0x2fe8) = 0;\n          uVar26 = ptimer_read(local_104);\n          *(undefined8 *)(puVar21 + -0x2fe0) = uVar26;\n        }\n      }\nLAB_0005175c:\n      if (iVar7 != 0) {\n        local_120 = (double)ptimer_read(local_104);\n        iVar17 = (int)puVar24 >> 0x1f;\n        puVar20 = puVar24;\n        progress_update(iVar7);\n        dVar25 = (double)CONCAT44(iVar17,puVar20);\n      }\n    }\n    dVar31 = *(double *)(PTR_opt_000b746c + 0x120);\n    if (uVar5 == 0) {\nLAB_00051864:\n      puVar15 = puVar20;\n      dVar30 = dVar25;\n      goto LAB_00051868;\n    }\nLAB_00051820:\n    if (iVar22 != 0 || local_f0 != (undefined8 *)0x0) {\nLAB_00051830:\n      puVar20 = local_f0;\n      if ((iVar17 <= iVar22) &&\n         ((puVar15 = local_e0, dVar30 = dVar25, iVar17 != iVar22 ||\n          (puVar20 = local_f0, local_e0 <= local_f0)))) goto LAB_00051868;\n      goto LAB_00051864;\n    }\n    iVar13 = fd_read_line(param_2);\n    puVar20 = SUB84(dVar25,0);\n    if (iVar13 == 0) {\nLAB_00050e90:\n      puVar24 = (undefined8 *)0xffffffff;\nLAB_000518d4:\n      bVar1 = (int)puVar24 < 0;\n      dVar30 = dVar25;\nLAB_000518d8:\n      puVar20 = (undefined8 *)0xffffffff;\n      puVar3 = local_120._0_4_;\n      if (!bVar1) {\n        puVar20 = puVar24;\n      }\n    }\n    else {\n      if (param_13 != (undefined8 *)0x0) {\n        uVar8 = (*(code *)PTR_strlen_000b7c94)(iVar13);\n        puVar20 = param_13;\n        (*(code *)PTR_fwrite_000b7c24)(iVar13,1,uVar8);\n      }\n      uVar8 = 0x10;\n      puVar9 = (undefined8 *)auStack_ac;\n      local_f0 = (undefined8 *)(*(code *)PTR_strtol_000b7d3c)(iVar13,puVar9);\n      iVar22 = (int)local_f0 >> 0x1f;\n      (*(code *)PTR_free_000b7d34)(iVar13);\n      dVar25 = (double)CONCAT44(uVar8,puVar20);\n      if (iVar22 < 0) goto LAB_00050e90;\n      if (local_f0 != (undefined8 *)0x0) goto LAB_00051830;\n      iVar22 = fd_read_line(param_2);\n      dVar30 = (double)CONCAT44(uVar8,puVar20);\n      if (iVar22 == 0) {\n        puVar20 = (undefined8 *)0xffffffff;\n      }\n      else {\n        if (param_13 != (undefined8 *)0x0) {\n          uVar8 = (*(code *)PTR_strlen_000b7c94)(iVar22);\n          puVar9 = (undefined8 *)&DAT_00000001;\n          (*(code *)PTR_fwrite_000b7c24)(iVar22,1);\n          puVar20 = param_13;\n        }\n        (*(code *)PTR_free_000b7d34)(iVar22);\n        dVar30 = (double)CONCAT44(uVar8,puVar20);\n        puVar20 = (undefined8 *)0x0;\n      }\n    }\nLAB_00051040:\n    local_120._0_4_ = puVar3;\n    if (iVar7 != 0) {\n      uVar26 = ptimer_read(local_104);\n      uVar19 = (undefined4)uVar26;\n      uVar8 = (undefined4)((ulonglong)uVar26 >> 0x20);\n      progress_finish(iVar7);\n      dVar30 = (double)CONCAT44(uVar8,uVar19);\n    }\n    if (param_11 != (undefined8 *)0x0) goto LAB_00051080;\n  }\n  else {\n    local_100 = (undefined8 *)(*(code *)PTR_xmalloc_000b7480)(0x8000);\n    if (local_100 == (undefined8 *)0x0) {\n      puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n      *puVar10 = 0xc;\n    }\n    else {\n      local_74 = PTR_LAB_000b78e4 + 0x368;\n      local_70 = PTR_LAB_000b78e4 + 0x330;\n      local_6c = 0;\n      local_94 = (undefined8 *)0x0;\n      local_90 = (undefined8 *)0x0;\n      param_4 = (undefined1 *)0x38;\n      puVar21 = PTR_DAT_000b758c + -0x18a0;\n      puVar9 = (undefined8 *)0x2f;\n      iVar6 = (*(code *)PTR_inflateInit2__000b7d68)(&local_94,0x2f);\n      if (iVar6 == 0) goto LAB_00050b74;\n      (*(code *)PTR_free_000b7d34)(local_100);\n      uVar8 = 0x16;\n      if (iVar6 == -4) {\n        uVar8 = 0xc;\n      }\n      puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n      *puVar10 = uVar8;\n    }\n    dVar30 = (double)CONCAT44(puVar21,param_4);\n    local_100 = param_11;\n    if (param_11 == (undefined8 *)0x0) {\n      iVar6 = 0;\n      local_fc = (undefined8 *)0x0;\n      puVar20 = (undefined8 *)0xffffffff;\n      goto LAB_000510b8;\n    }\n    local_100 = (undefined8 *)0x0;\n    iVar6 = 0;\n    local_fc = (undefined8 *)0x0;\n    local_104 = (undefined8 *)0x0;\n    puVar20 = (undefined8 *)0xffffffff;\nLAB_00051080:\n    uVar26 = ptimer_read(local_104);\n    *param_11 = uVar26;\n  }\n  if (local_104 != (undefined8 *)0x0) {\n    ptimer_destroy(local_104);\n  }\nLAB_000510b8:\n  if (local_100 != (undefined8 *)0x0) {\n    puVar9 = (undefined8 *)(*(code *)PTR_inflateEnd_000b7e58)(&local_94);\n    if ((-1 < (int)puVar20) && (puVar20 = puVar9, puVar9 != (undefined8 *)0x0)) {\n      puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)(local_100);\n      *puVar10 = 0x16;\n      puVar20 = (undefined8 *)0xffffffff;\n    }\n    (*(code *)PTR_free_000b7d34)(local_100);\n    puVar9 = local_8c;\n    if (((iVar6 != 0) || (local_8c != local_fc)) &&\n       (dVar30 = (double)CONCAT44(iVar6,SUB84(dVar30,0)), PTR_opt_000b746c[0x16b] != '\0')) {\n      iVar7 = iVar6;\n      puVar9 = local_fc;\n      debug_logprintf(PTR_DAT_000b758c + -0x180c);\n      dVar30 = (double)CONCAT44(iVar7,puVar9);\n      puVar9 = local_8c;\n    }\n  }\n  if (param_9 != (int *)0x0) {\n    puVar16 = (undefined1 *)param_9[1] + (int)local_fc;\n    *param_9 = (uint)(puVar16 < (undefined1 *)param_9[1]) + *param_9 + iVar6;\n    param_9[1] = (int)puVar16;\n  }\n  if (param_10 != (int *)0x0) {\n    uVar5 = param_10[1] + local_9c;\n    *param_10 = (int)((int)local_a0 + (uint)(uVar5 < (uint)param_10[1]) + *param_10);\n    param_10[1] = uVar5;\n    puVar9 = local_a0;\n  }\n  (*(code *)PTR_free_000b7d34)(puVar4);\n  if (local_5c == *(int *)PTR___stack_chk_guard_000b7c68) {\n    return puVar20;\n  }\n  iVar6 = local_5c;\n  puVar21 = PTR___stack_chk_fail_000b7bfc;\n  (*(code *)PTR___stack_chk_fail_000b7bfc)();\n  if (*(char *)(*(int *)(puVar21 + 0x65acc) + 0x223) == '\0') {\n    dVar25 = *(double *)(*(int *)(puVar21 + 0x65bec) + -0x6f98);\n  }\n  else {\n    dVar25 = *(double *)(*(int *)(puVar21 + 0x65bec) + -0x15d8);\n  }\n  if (dVar30 == 0.0) {\n    dVar30 = (double)ptimer_resolution();\n    dVar30 = dVar30 * *(double *)(*(int *)(puVar21 + 0x65bec) + -0x2580);\n  }\n  uVar26 = convert_to_bits(iVar6,puVar9);\n  dVar28 = (double)(**(code **)(puVar21 + 0x65f54))((int)((ulonglong)uVar26 >> 0x20),(int)uVar26);\n  dVar28 = dVar28 / dVar30;\n  if (dVar28 < dVar25) {\n    *(undefined4 *)local_120._0_4_ = 0;\n  }\n  else if (dVar28 < dVar25 * dVar25) {\n    *(undefined4 *)local_120._0_4_ = 1;\n    local_120._0_4_ = (undefined8 *)&DAT_00000001;\n  }\n  else if (dVar28 < dVar25 * dVar25 * dVar25) {\n    *(undefined4 *)local_120._0_4_ = 2;\n    local_120._0_4_ = (undefined8 *)0x2;\n  }\n  else {\n    *(undefined4 *)local_120._0_4_ = 3;\n    local_120._0_4_ = (undefined8 *)0x3;\n  }\n  return local_120._0_4_;\n}\n\n" comment (function_definition "undefined8 *\nfd_read_body(int param_1,undefined8 *param_2,undefined *param_3,undefined1 *param_4,int param_5,\n            undefined8 *param_6,undefined *param_7,undefined1 *param_8,int *param_9,int *param_10,\n            undefined8 *param_11,uint param_12,undefined8 *param_13)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  undefined8 *puVar3;\n  undefined8 *puVar4;\n  uint uVar5;\n  int iVar6;\n  int iVar7;\n  undefined4 uVar8;\n  undefined8 *puVar9;\n  undefined4 *puVar10;\n  uint uVar11;\n  undefined8 *puVar12;\n  int iVar13;\n  int *piVar14;\n  undefined8 *puVar15;\n  undefined1 *puVar16;\n  int iVar17;\n  undefined8 *puVar18;\n  undefined4 uVar19;\n  undefined8 *puVar20;\n  undefined *puVar21;\n  int iVar22;\n  code *pcVar23;\n  undefined8 *puVar24;\n  double dVar25;\n  undefined8 uVar26;\n  double dVar27;\n  double dVar28;\n  double dVar29;\n  double dVar30;\n  double dVar31;\n  double dVar32;\n  double dVar33;\n  double dVar34;\n  undefined8 local_120;\n  undefined8 *local_104;\n  undefined8 *local_100;\n  undefined8 *local_fc;\n  undefined8 *local_f0;\n  int local_e4;\n  undefined8 *local_e0;\n  undefined1 auStack_ac [8];\n  undefined1 *local_a4;\n  undefined8 *local_a0;\n  int local_9c;\n  undefined8 *local_94;\n  undefined8 *local_90;\n  undefined8 *local_8c;\n  undefined8 *local_88;\n  int local_84;\n  undefined *local_74;\n  undefined *local_70;\n  undefined4 local_6c;\n  int local_5c;\n  \n  local_5c = *(int *)PTR___stack_chk_guard_000b7c68;\n  puVar9 = param_2;\n  puVar21 = param_3;\n  puVar4 = (undefined8 *)(*(code *)PTR_xmalloc_000b7480)(0x2000);\n  uVar5 = param_12 & 4;\n  local_a4 = (undefined1 *)0x0;\n  auStack_ac._4_4_ = (undefined *)0x0;\n  local_9c = 0;\n  local_a0 = (undefined8 *)0x0;\n  if ((param_12 & 8) == 0) {\n    local_100 = (undefined8 *)0x0;\nLAB_00050b74:\n    if ((param_12 & 2) != 0) {\n      auStack_ac._4_4_ = param_7;\n      local_a4 = param_8;\n    }\n    if (*(int *)(PTR_opt_000b746c + 0x10c) == 0) {\n      iVar7 = 0;\n      if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n        local_e4 = 0;\n        goto LAB_00051950;\n      }\n      local_e4 = 0;\nLAB_00051978:\n      if (param_11 != (undefined8 *)0x0) goto LAB_00050c48;\n      local_104 = param_11;\n      local_e0 = (undefined8 *)0x2000;\n    }\n    else {\n      param_4 = param_8;\n      puVar21 = param_7;\n      if ((undefined *)auStack_ac._4_4_ != (undefined *)0x0 || local_a4 != (undefined1 *)0x0) {\n        puVar21 = (undefined *)0x0;\n        param_4 = (undefined1 *)0x0;\n      }\n      if (*(int *)(PTR_opt_000b746c + 0x30) != 0) {\n        iVar6 = (*(code *)PTR_strlen_000b7c94)();\n        param_1 = param_1 + iVar6 + 1;\n      }\n      local_120 = (double)CONCAT44(puVar21 + (uint)(param_4 + (int)param_6 < param_4) + param_5,\n                                   param_4 + (int)param_6);\n      iVar7 = progress_create(param_1);\n      local_e4 = progress_interactive_p(iVar7);\n      if (*(int *)(PTR_opt_000b746c + 0x158) == 0 && *(int *)(PTR_opt_000b746c + 0x15c) == 0) {\n        if (iVar7 == 0) goto LAB_00051978;\n      }\n      else {\nLAB_00051950:\n        puVar2 = PTR_DAT_000b7720;\n        *(undefined4 *)(PTR_DAT_000b7720 + -0x2fe8) = 0;\n        *(undefined4 *)(puVar2 + -0x2fe4) = 0;\n        *(undefined4 *)(puVar2 + -0x2fe0) = 0;\n        *(undefined4 *)(puVar2 + -0x2fdc) = 0;\n        *(undefined4 *)(puVar2 + -0x2fd8) = 0;\n        *(undefined4 *)(puVar2 + -0x2fd4) = 0;\n      }\nLAB_00050c48:\n      local_104 = (undefined8 *)ptimer_new();\n      iVar6 = *(int *)(PTR_opt_000b746c + 0x158);\n      local_e0 = *(undefined8 **)(PTR_opt_000b746c + 0x15c);\n      if (iVar6 == 0 && local_e0 == (undefined8 *)0x0) {\n        local_e0 = (undefined8 *)0x2000;\n      }\n      else if ((0 < iVar6) || ((iVar6 == 0 && ((undefined8 *)0x1fff < local_e0)))) {\n        local_e0 = (undefined8 *)0x2000;\n      }\n    }\n    puVar2 = PTR_DAT_000b758c;\n    dVar25 = (double)CONCAT44(puVar21,param_4);\n    iVar22 = 0;\n    local_f0 = (undefined8 *)0x0;\n    iVar6 = 0;\n    local_fc = (undefined8 *)0x0;\n    dVar29 = 0.0;\n    puVar24 = (undefined8 *)0x0;\n    dVar32 = *(double *)(PTR_DAT_000b758c + -0x2340);\n    dVar33 = *(double *)(PTR_DAT_000b758c + -0x2580);\n    dVar34 = *(double *)(PTR_DAT_000b758c + -0x15d0);\n    dVar28 = *(double *)(PTR_DAT_000b758c + -0x15d8);\n    while( true ) {\n      uVar8 = SUB84(dVar25,0);\n      iVar17 = (int)local_e0 >> 0x1f;\n      puVar20 = local_e0;\n      puVar3 = local_120._0_4_;\n      if ((param_12 & 1) == 0) break;\n      if (param_5 <= iVar6) {\n        if (param_5 != iVar6) goto LAB_000518d4;\n        if (local_fc < param_6) goto LAB_000517b0;\n        bVar1 = (int)puVar24 < 0;\n        dVar30 = dVar25;\n        goto LAB_000518d8;\n      }\nLAB_000517b0:\n      dVar31 = *(double *)(PTR_opt_000b746c + 0x120);\n      if (uVar5 != 0) goto LAB_00051820;\n      puVar15 = (undefined8 *)((int)param_6 - (int)local_fc);\n      iVar13 = (param_5 - iVar6) - (uint)(param_6 < puVar15);\n      dVar25 = (double)CONCAT44(iVar13,uVar8);\n      puVar9 = local_e0;\n      if ((iVar17 < iVar13) ||\n         ((dVar30 = (double)CONCAT44(iVar13,uVar8), iVar13 == iVar17 &&\n          (dVar30 = (double)CONCAT44(iVar13,uVar8), local_e0 < puVar15)))) goto LAB_00051864;\nLAB_00051868:\n      puVar18 = SUB84(dVar30,0);\n      if (local_e4 == 0) {\n        puVar9 = puVar4;\n        puVar24 = (undefined8 *)(*(code *)PTR_fd_read_000b7770)(param_2,puVar4);\n        local_120 = dVar31;\nLAB_000516fc:\n        bVar1 = (int)puVar24 < 0;\n        dVar30 = (double)CONCAT44(puVar15,puVar18);\n        if ((int)puVar24 < 1) goto LAB_000518d8;\n        if (iVar7 == 0) {\n          if (*(int *)(PTR_opt_000b746c + 0x158) == 0 && *(int *)(PTR_opt_000b746c + 0x15c) == 0)\n          goto LAB_00051720;\n          ptimer_measure(local_104);\n        }\n        else {\n          ptimer_measure(local_104);\n        }\nLAB_000515b0:\n        dVar29 = (double)ptimer_read(local_104);\nLAB_000515c4:\n        puVar12 = (undefined8 *)((int)local_fc + (int)puVar24);\n        iVar6 = (uint)(puVar12 < local_fc) + iVar6 + ((int)puVar24 >> 0x1f);\n        puVar9 = param_13;\n        puVar15 = puVar4;\n        puVar18 = puVar24;\n        local_fc = puVar12;\n        if (local_100 == (undefined8 *)0x0) {\n          local_120 = (double)(ZEXT48(auStack_ac + 4) << 0x20);\n          puVar20 = (undefined8 *)FUN_000503a4(param_3,param_13);\n          dVar30 = (double)CONCAT44(puVar15,puVar18);\n          puVar3 = (undefined8 *)(auStack_ac + 4);\n          if ((int)puVar20 < 0) goto LAB_00051040;\n        }\n        else {\n          local_120 = 0.0;\n          local_120._0_4_ = (undefined8 *)0x0;\n          puVar20 = (undefined8 *)FUN_000503a4(0,param_13);\n          dVar30 = (double)CONCAT44(puVar15,puVar18);\n          puVar3 = local_120._0_4_;\n          if ((int)puVar20 < 0) goto LAB_00051040;\n          puVar21 = PTR_DAT_000b758c + -0x1898;\n          pcVar23 = (code *)(PTR_LAB_000b78e4 + 0x3a4);\n          local_94 = puVar4;\n          local_90 = puVar24;\n          do {\n            local_84 = 0x8000;\n            local_88 = local_100;\n            puVar9 = (undefined8 *)0x0;\n            iVar17 = (*(code *)PTR_inflate_000b7d40)(&local_94,0);\n            puVar3 = local_120._0_4_;\n            if (iVar17 == -3) {\nLAB_000511f4:\n              puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n              dVar30 = (double)CONCAT44(puVar15,puVar18);\n              *puVar10 = 0x16;\n              puVar20 = (undefined8 *)0xffffffff;\n              goto LAB_00051040;\n            }\n            if (iVar17 < -2) {\n              if (iVar17 == -4) {\n                puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n                dVar30 = (double)CONCAT44(puVar15,puVar18);\n                *puVar10 = 0xc;\n                puVar20 = (undefined8 *)0xffffffff;\n                goto LAB_00051040;\n              }\n            }\n            else if (iVar17 == 1) {\n              if (((param_12 & 1) != 0) &&\n                 (((param_5 != iVar6 || (param_6 != puVar12)) && (PTR_opt_000b746c[0x16b] != '\0')))\n                 ) {\n                debug_logprintf(puVar21);\n              }\n            }\n            else if (iVar17 == 2) goto LAB_000511f4;\n            local_120 = (double)(ZEXT48(auStack_ac + 4) << 0x20);\n            puVar18 = (undefined8 *)(0x8000 - local_84);\n            puVar9 = (undefined8 *)0x0;\n            puVar15 = local_100;\n            puVar20 = (undefined8 *)(*pcVar23)(param_3,0);\n            dVar30 = (double)CONCAT44(puVar15,puVar18);\n            puVar3 = (undefined8 *)(auStack_ac + 4);\n            if ((int)puVar20 < 0) goto LAB_00051040;\n          } while (local_84 == 0);\n        }\n        dVar31 = local_120;\n        if (uVar5 != 0) {\n          puVar20 = (undefined8 *)((int)local_f0 - (int)puVar24);\n          iVar22 = (iVar22 - ((int)puVar24 >> 0x1f)) - (uint)(local_f0 < puVar20);\n          local_f0 = puVar20;\n          if (iVar22 == 0 && puVar20 == (undefined8 *)0x0) {\n            iVar17 = fd_read_line(param_2);\n            dVar25 = (double)CONCAT44(puVar15,puVar18);\n            if (iVar17 == 0) {\n              puVar24 = (undefined8 *)0xffffffff;\n              goto LAB_000518d4;\n            }\n            if (param_13 != (undefined8 *)0x0) {\n              puVar15 = (undefined8 *)(*(code *)PTR_strlen_000b7c94)(iVar17);\n              puVar9 = (undefined8 *)&DAT_00000001;\n              puVar18 = param_13;\n              (*(code *)PTR_fwrite_000b7c24)(iVar17,1);\n            }\n            (*(code *)PTR_free_000b7d34)(iVar17);\n          }\n        }\n        goto LAB_00051748;\n      }\n      if (*(double *)(PTR_opt_000b746c + 0x120) == 0.0) {\n        dVar31 = *(double *)(PTR_DAT_000b758c + -0x15e0);\n      }\n      else {\n        dVar25 = (double)ptimer_read(local_104);\n        puVar18 = SUB84(dVar30,0);\n        if (*(double *)(PTR_opt_000b746c + 0x120) <\n            (dVar25 - dVar29) + *(double *)(PTR_DAT_000b758c + -0x15e0)) {\n          dVar31 = *(double *)(PTR_opt_000b746c + 0x120) - (dVar25 - dVar29);\n          if (dVar31 < 0.0) {\n            puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n            *puVar10 = 0x91;\n            puVar20 = (undefined8 *)0xffffffff;\n            goto LAB_00051040;\n          }\n        }\n        else {\n          dVar31 = *(double *)(PTR_DAT_000b758c + -0x15e0);\n        }\n      }\n      puVar9 = puVar4;\n      puVar24 = (undefined8 *)(*(code *)PTR_fd_read_000b7770)(param_2,puVar4);\n      local_120 = dVar31;\n      if (-1 < (int)puVar24) goto LAB_000516fc;\n      piVar14 = (int *)(*(code *)PTR___errno_location_000b7eb8)();\n      dVar25 = (double)CONCAT44(puVar15,puVar18);\n      local_120._0_4_ = (undefined8 *)((ulonglong)dVar31 >> 0x20);\n      if (*piVar14 != 0x91) goto LAB_000518d4;\n      if (iVar7 == 0) {\n        if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n          ptimer_measure(local_104);\n          puVar24 = (undefined8 *)0x0;\n          goto LAB_00051748;\n        }\n        puVar24 = (undefined8 *)0x0;\nLAB_00051720:\n        dVar25 = (double)CONCAT44(puVar15,puVar18);\n        if (param_11 != (undefined8 *)0x0) {\n          ptimer_measure(local_104);\n          dVar31 = local_120;\n          if (0 < (int)puVar24) goto LAB_000515b0;\n          goto LAB_00051748;\n        }\n        if (0 < (int)puVar24) goto LAB_000515c4;\n      }\n      else {\n        ptimer_measure(local_104);\n        puVar24 = (undefined8 *)0x0;\nLAB_00051748:\n        local_120 = dVar31;\n        dVar25 = (double)CONCAT44(puVar15,puVar18);\n        if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n          dVar30 = (double)ptimer_read(local_104);\n          puVar21 = PTR_DAT_000b7720;\n          dVar30 = dVar30 - *(double *)(PTR_DAT_000b7720 + -0x2fe0);\n          puVar20 = (undefined8 *)((int)puVar24 + *(int *)(PTR_DAT_000b7720 + -0x2fe4));\n          iVar17 = (uint)(puVar20 < puVar24) +\n                   ((int)puVar24 >> 0x1f) + *(int *)(PTR_DAT_000b7720 + -0x2fe8);\n          *(int *)(PTR_DAT_000b7720 + -0x2fe8) = iVar17;\n          *(undefined8 **)(puVar21 + -0x2fe4) = puVar20;\n          dVar31 = (double)(*(code *)PTR_FUN_000b78f4)(iVar17,puVar20);\n          puVar9 = *(undefined8 **)(PTR_opt_000b746c + 0x15c);\n          dVar27 = (double)(*(code *)PTR_FUN_000b78f4)\n                                     (*(undefined4 *)(PTR_opt_000b746c + 0x158),puVar9);\n          dVar25 = (double)CONCAT44(puVar15,puVar18);\n          if (dVar30 < dVar31 / dVar27) {\n            dVar30 = (dVar31 / dVar27 - dVar30) + *(double *)(PTR_DAT_000b7720 + -0x2fd8);\n            if (dVar30 < dVar32) {\n              if (PTR_opt_000b746c[0x16b] != '\0') {\n                uVar11 = number_to_static_string(iVar17,puVar20);\n                local_120 = (double)((ulonglong)uVar11 << 0x20);\n                dVar25 = dVar30 * *(double *)(puVar2 + -0x15d8);\n                debug_logprintf(PTR_DAT_000b758c + -0x1864);\n                puVar9 = puVar20;\n              }\n              goto LAB_0005175c;\n            }\n            if (PTR_opt_000b746c[0x16b] != '\0') {\n              uVar11 = number_to_static_string(iVar17,puVar20);\n              local_120 = (double)((ulonglong)uVar11 << 0x20);\n              dVar25 = dVar30 * dVar28;\n              debug_logprintf(PTR_DAT_000b758c + -0x183c);\n              puVar9 = puVar20;\n            }\n            dVar31 = (double)ptimer_read(local_104);\n            xsleep(dVar30);\n            dVar27 = (double)ptimer_measure(local_104);\n            dVar30 = dVar30 - (dVar27 - dVar31);\n            if (dVar33 < dVar30) {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x2580);\n            }\n            else if (dVar34 <= dVar30) {\n              *(double *)(PTR_DAT_000b7720 + -0x2fd8) = dVar30;\n            }\n            else {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x15d0);\n            }\n          }\n          puVar21 = PTR_DAT_000b7720;\n          *(undefined4 *)(PTR_DAT_000b7720 + -0x2fe4) = 0;\n          *(undefined4 *)(puVar21 + -0x2fe8) = 0;\n          uVar26 = ptimer_read(local_104);\n          *(undefined8 *)(puVar21 + -0x2fe0) = uVar26;\n        }\n      }\nLAB_0005175c:\n      if (iVar7 != 0) {\n        local_120 = (double)ptimer_read(local_104);\n        iVar17 = (int)puVar24 >> 0x1f;\n        puVar20 = puVar24;\n        progress_update(iVar7);\n        dVar25 = (double)CONCAT44(iVar17,puVar20);\n      }\n    }\n    dVar31 = *(double *)(PTR_opt_000b746c + 0x120);\n    if (uVar5 == 0) {\nLAB_00051864:\n      puVar15 = puVar20;\n      dVar30 = dVar25;\n      goto LAB_00051868;\n    }\nLAB_00051820:\n    if (iVar22 != 0 || local_f0 != (undefined8 *)0x0) {\nLAB_00051830:\n      puVar20 = local_f0;\n      if ((iVar17 <= iVar22) &&\n         ((puVar15 = local_e0, dVar30 = dVar25, iVar17 != iVar22 ||\n          (puVar20 = local_f0, local_e0 <= local_f0)))) goto LAB_00051868;\n      goto LAB_00051864;\n    }\n    iVar13 = fd_read_line(param_2);\n    puVar20 = SUB84(dVar25,0);\n    if (iVar13 == 0) {\nLAB_00050e90:\n      puVar24 = (undefined8 *)0xffffffff;\nLAB_000518d4:\n      bVar1 = (int)puVar24 < 0;\n      dVar30 = dVar25;\nLAB_000518d8:\n      puVar20 = (undefined8 *)0xffffffff;\n      puVar3 = local_120._0_4_;\n      if (!bVar1) {\n        puVar20 = puVar24;\n      }\n    }\n    else {\n      if (param_13 != (undefined8 *)0x0) {\n        uVar8 = (*(code *)PTR_strlen_000b7c94)(iVar13);\n        puVar20 = param_13;\n        (*(code *)PTR_fwrite_000b7c24)(iVar13,1,uVar8);\n      }\n      uVar8 = 0x10;\n      puVar9 = (undefined8 *)auStack_ac;\n      local_f0 = (undefined8 *)(*(code *)PTR_strtol_000b7d3c)(iVar13,puVar9);\n      iVar22 = (int)local_f0 >> 0x1f;\n      (*(code *)PTR_free_000b7d34)(iVar13);\n      dVar25 = (double)CONCAT44(uVar8,puVar20);\n      if (iVar22 < 0) goto LAB_00050e90;\n      if (local_f0 != (undefined8 *)0x0) goto LAB_00051830;\n      iVar22 = fd_read_line(param_2);\n      dVar30 = (double)CONCAT44(uVar8,puVar20);\n      if (iVar22 == 0) {\n        puVar20 = (undefined8 *)0xffffffff;\n      }\n      else {\n        if (param_13 != (undefined8 *)0x0) {\n          uVar8 = (*(code *)PTR_strlen_000b7c94)(iVar22);\n          puVar9 = (undefined8 *)&DAT_00000001;\n          (*(code *)PTR_fwrite_000b7c24)(iVar22,1);\n          puVar20 = param_13;\n        }\n        (*(code *)PTR_free_000b7d34)(iVar22);\n        dVar30 = (double)CONCAT44(uVar8,puVar20);\n        puVar20 = (undefined8 *)0x0;\n      }\n    }\nLAB_00051040:\n    local_120._0_4_ = puVar3;\n    if (iVar7 != 0) {\n      uVar26 = ptimer_read(local_104);\n      uVar19 = (undefined4)uVar26;\n      uVar8 = (undefined4)((ulonglong)uVar26 >> 0x20);\n      progress_finish(iVar7);\n      dVar30 = (double)CONCAT44(uVar8,uVar19);\n    }\n    if (param_11 != (undefined8 *)0x0) goto LAB_00051080;\n  }\n  else {\n    local_100 = (undefined8 *)(*(code *)PTR_xmalloc_000b7480)(0x8000);\n    if (local_100 == (undefined8 *)0x0) {\n      puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n      *puVar10 = 0xc;\n    }\n    else {\n      local_74 = PTR_LAB_000b78e4 + 0x368;\n      local_70 = PTR_LAB_000b78e4 + 0x330;\n      local_6c = 0;\n      local_94 = (undefined8 *)0x0;\n      local_90 = (undefined8 *)0x0;\n      param_4 = (undefined1 *)0x38;\n      puVar21 = PTR_DAT_000b758c + -0x18a0;\n      puVar9 = (undefined8 *)0x2f;\n      iVar6 = (*(code *)PTR_inflateInit2__000b7d68)(&local_94,0x2f);\n      if (iVar6 == 0) goto LAB_00050b74;\n      (*(code *)PTR_free_000b7d34)(local_100);\n      uVar8 = 0x16;\n      if (iVar6 == -4) {\n        uVar8 = 0xc;\n      }\n      puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n      *puVar10 = uVar8;\n    }\n    dVar30 = (double)CONCAT44(puVar21,param_4);\n    local_100 = param_11;\n    if (param_11 == (undefined8 *)0x0) {\n      iVar6 = 0;\n      local_fc = (undefined8 *)0x0;\n      puVar20 = (undefined8 *)0xffffffff;\n      goto LAB_000510b8;\n    }\n    local_100 = (undefined8 *)0x0;\n    iVar6 = 0;\n    local_fc = (undefined8 *)0x0;\n    local_104 = (undefined8 *)0x0;\n    puVar20 = (undefined8 *)0xffffffff;\nLAB_00051080:\n    uVar26 = ptimer_read(local_104);\n    *param_11 = uVar26;\n  }\n  if (local_104 != (undefined8 *)0x0) {\n    ptimer_destroy(local_104);\n  }\nLAB_000510b8:\n  if (local_100 != (undefined8 *)0x0) {\n    puVar9 = (undefined8 *)(*(code *)PTR_inflateEnd_000b7e58)(&local_94);\n    if ((-1 < (int)puVar20) && (puVar20 = puVar9, puVar9 != (undefined8 *)0x0)) {\n      puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)(local_100);\n      *puVar10 = 0x16;\n      puVar20 = (undefined8 *)0xffffffff;\n    }\n    (*(code *)PTR_free_000b7d34)(local_100);\n    puVar9 = local_8c;\n    if (((iVar6 != 0) || (local_8c != local_fc)) &&\n       (dVar30 = (double)CONCAT44(iVar6,SUB84(dVar30,0)), PTR_opt_000b746c[0x16b] != '\0')) {\n      iVar7 = iVar6;\n      puVar9 = local_fc;\n      debug_logprintf(PTR_DAT_000b758c + -0x180c);\n      dVar30 = (double)CONCAT44(iVar7,puVar9);\n      puVar9 = local_8c;\n    }\n  }\n  if (param_9 != (int *)0x0) {\n    puVar16 = (undefined1 *)param_9[1] + (int)local_fc;\n    *param_9 = (uint)(puVar16 < (undefined1 *)param_9[1]) + *param_9 + iVar6;\n    param_9[1] = (int)puVar16;\n  }\n  if (param_10 != (int *)0x0) {\n    uVar5 = param_10[1] + local_9c;\n    *param_10 = (int)((int)local_a0 + (uint)(uVar5 < (uint)param_10[1]) + *param_10);\n    param_10[1] = uVar5;\n    puVar9 = local_a0;\n  }\n  (*(code *)PTR_free_000b7d34)(puVar4);\n  if (local_5c == *(int *)PTR___stack_chk_guard_000b7c68) {\n    return puVar20;\n  }\n  iVar6 = local_5c;\n  puVar21 = PTR___stack_chk_fail_000b7bfc;\n  (*(code *)PTR___stack_chk_fail_000b7bfc)();\n  if (*(char *)(*(int *)(puVar21 + 0x65acc) + 0x223) == '\0') {\n    dVar25 = *(double *)(*(int *)(puVar21 + 0x65bec) + -0x6f98);\n  }\n  else {\n    dVar25 = *(double *)(*(int *)(puVar21 + 0x65bec) + -0x15d8);\n  }\n  if (dVar30 == 0.0) {\n    dVar30 = (double)ptimer_resolution();\n    dVar30 = dVar30 * *(double *)(*(int *)(puVar21 + 0x65bec) + -0x2580);\n  }\n  uVar26 = convert_to_bits(iVar6,puVar9);\n  dVar28 = (double)(**(code **)(puVar21 + 0x65f54))((int)((ulonglong)uVar26 >> 0x20),(int)uVar26);\n  dVar28 = dVar28 / dVar30;\n  if (dVar28 < dVar25) {\n    *(undefined4 *)local_120._0_4_ = 0;\n  }\n  else if (dVar28 < dVar25 * dVar25) {\n    *(undefined4 *)local_120._0_4_ = 1;\n    local_120._0_4_ = (undefined8 *)&DAT_00000001;\n  }\n  else if (dVar28 < dVar25 * dVar25 * dVar25) {\n    *(undefined4 *)local_120._0_4_ = 2;\n    local_120._0_4_ = (undefined8 *)0x2;\n  }\n  else {\n    *(undefined4 *)local_120._0_4_ = 3;\n    local_120._0_4_ = (undefined8 *)0x3;\n  }\n  return local_120._0_4_;\n}" type_identifier (pointer_declarator "*\nfd_read_body(int param_1,undefined8 *param_2,undefined *param_3,undefined1 *param_4,int param_5,\n            undefined8 *param_6,undefined *param_7,undefined1 *param_8,int *param_9,int *param_10,\n            undefined8 *param_11,uint param_12,undefined8 *param_13)" * (function_declarator "fd_read_body(int param_1,undefined8 *param_2,undefined *param_3,undefined1 *param_4,int param_5,\n            undefined8 *param_6,undefined *param_7,undefined1 *param_8,int *param_9,int *param_10,\n            undefined8 *param_11,uint param_12,undefined8 *param_13)" identifier (parameter_list "(int param_1,undefined8 *param_2,undefined *param_3,undefined1 *param_4,int param_5,\n            undefined8 *param_6,undefined *param_7,undefined1 *param_8,int *param_9,int *param_10,\n            undefined8 *param_11,uint param_12,undefined8 *param_13)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "undefined8 *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "undefined *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "undefined1 *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "int param_5" primitive_type identifier) , (parameter_declaration "undefined8 *param_6" type_identifier (pointer_declarator "*param_6" * identifier)) , (parameter_declaration "undefined *param_7" type_identifier (pointer_declarator "*param_7" * identifier)) , (parameter_declaration "undefined1 *param_8" type_identifier (pointer_declarator "*param_8" * identifier)) , (parameter_declaration "int *param_9" primitive_type (pointer_declarator "*param_9" * identifier)) , (parameter_declaration "int *param_10" primitive_type (pointer_declarator "*param_10" * identifier)) , (parameter_declaration "undefined8 *param_11" type_identifier (pointer_declarator "*param_11" * identifier)) , (parameter_declaration "uint param_12" type_identifier identifier) , (parameter_declaration "undefined8 *param_13" type_identifier (pointer_declarator "*param_13" * identifier)) )))) (compound_statement "{\n  bool bVar1;\n  undefined *puVar2;\n  undefined8 *puVar3;\n  undefined8 *puVar4;\n  uint uVar5;\n  int iVar6;\n  int iVar7;\n  undefined4 uVar8;\n  undefined8 *puVar9;\n  undefined4 *puVar10;\n  uint uVar11;\n  undefined8 *puVar12;\n  int iVar13;\n  int *piVar14;\n  undefined8 *puVar15;\n  undefined1 *puVar16;\n  int iVar17;\n  undefined8 *puVar18;\n  undefined4 uVar19;\n  undefined8 *puVar20;\n  undefined *puVar21;\n  int iVar22;\n  code *pcVar23;\n  undefined8 *puVar24;\n  double dVar25;\n  undefined8 uVar26;\n  double dVar27;\n  double dVar28;\n  double dVar29;\n  double dVar30;\n  double dVar31;\n  double dVar32;\n  double dVar33;\n  double dVar34;\n  undefined8 local_120;\n  undefined8 *local_104;\n  undefined8 *local_100;\n  undefined8 *local_fc;\n  undefined8 *local_f0;\n  int local_e4;\n  undefined8 *local_e0;\n  undefined1 auStack_ac [8];\n  undefined1 *local_a4;\n  undefined8 *local_a0;\n  int local_9c;\n  undefined8 *local_94;\n  undefined8 *local_90;\n  undefined8 *local_8c;\n  undefined8 *local_88;\n  int local_84;\n  undefined *local_74;\n  undefined *local_70;\n  undefined4 local_6c;\n  int local_5c;\n  \n  local_5c = *(int *)PTR___stack_chk_guard_000b7c68;\n  puVar9 = param_2;\n  puVar21 = param_3;\n  puVar4 = (undefined8 *)(*(code *)PTR_xmalloc_000b7480)(0x2000);\n  uVar5 = param_12 & 4;\n  local_a4 = (undefined1 *)0x0;\n  auStack_ac._4_4_ = (undefined *)0x0;\n  local_9c = 0;\n  local_a0 = (undefined8 *)0x0;\n  if ((param_12 & 8) == 0) {\n    local_100 = (undefined8 *)0x0;\nLAB_00050b74:\n    if ((param_12 & 2) != 0) {\n      auStack_ac._4_4_ = param_7;\n      local_a4 = param_8;\n    }\n    if (*(int *)(PTR_opt_000b746c + 0x10c) == 0) {\n      iVar7 = 0;\n      if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n        local_e4 = 0;\n        goto LAB_00051950;\n      }\n      local_e4 = 0;\nLAB_00051978:\n      if (param_11 != (undefined8 *)0x0) goto LAB_00050c48;\n      local_104 = param_11;\n      local_e0 = (undefined8 *)0x2000;\n    }\n    else {\n      param_4 = param_8;\n      puVar21 = param_7;\n      if ((undefined *)auStack_ac._4_4_ != (undefined *)0x0 || local_a4 != (undefined1 *)0x0) {\n        puVar21 = (undefined *)0x0;\n        param_4 = (undefined1 *)0x0;\n      }\n      if (*(int *)(PTR_opt_000b746c + 0x30) != 0) {\n        iVar6 = (*(code *)PTR_strlen_000b7c94)();\n        param_1 = param_1 + iVar6 + 1;\n      }\n      local_120 = (double)CONCAT44(puVar21 + (uint)(param_4 + (int)param_6 < param_4) + param_5,\n                                   param_4 + (int)param_6);\n      iVar7 = progress_create(param_1);\n      local_e4 = progress_interactive_p(iVar7);\n      if (*(int *)(PTR_opt_000b746c + 0x158) == 0 && *(int *)(PTR_opt_000b746c + 0x15c) == 0) {\n        if (iVar7 == 0) goto LAB_00051978;\n      }\n      else {\nLAB_00051950:\n        puVar2 = PTR_DAT_000b7720;\n        *(undefined4 *)(PTR_DAT_000b7720 + -0x2fe8) = 0;\n        *(undefined4 *)(puVar2 + -0x2fe4) = 0;\n        *(undefined4 *)(puVar2 + -0x2fe0) = 0;\n        *(undefined4 *)(puVar2 + -0x2fdc) = 0;\n        *(undefined4 *)(puVar2 + -0x2fd8) = 0;\n        *(undefined4 *)(puVar2 + -0x2fd4) = 0;\n      }\nLAB_00050c48:\n      local_104 = (undefined8 *)ptimer_new();\n      iVar6 = *(int *)(PTR_opt_000b746c + 0x158);\n      local_e0 = *(undefined8 **)(PTR_opt_000b746c + 0x15c);\n      if (iVar6 == 0 && local_e0 == (undefined8 *)0x0) {\n        local_e0 = (undefined8 *)0x2000;\n      }\n      else if ((0 < iVar6) || ((iVar6 == 0 && ((undefined8 *)0x1fff < local_e0)))) {\n        local_e0 = (undefined8 *)0x2000;\n      }\n    }\n    puVar2 = PTR_DAT_000b758c;\n    dVar25 = (double)CONCAT44(puVar21,param_4);\n    iVar22 = 0;\n    local_f0 = (undefined8 *)0x0;\n    iVar6 = 0;\n    local_fc = (undefined8 *)0x0;\n    dVar29 = 0.0;\n    puVar24 = (undefined8 *)0x0;\n    dVar32 = *(double *)(PTR_DAT_000b758c + -0x2340);\n    dVar33 = *(double *)(PTR_DAT_000b758c + -0x2580);\n    dVar34 = *(double *)(PTR_DAT_000b758c + -0x15d0);\n    dVar28 = *(double *)(PTR_DAT_000b758c + -0x15d8);\n    while( true ) {\n      uVar8 = SUB84(dVar25,0);\n      iVar17 = (int)local_e0 >> 0x1f;\n      puVar20 = local_e0;\n      puVar3 = local_120._0_4_;\n      if ((param_12 & 1) == 0) break;\n      if (param_5 <= iVar6) {\n        if (param_5 != iVar6) goto LAB_000518d4;\n        if (local_fc < param_6) goto LAB_000517b0;\n        bVar1 = (int)puVar24 < 0;\n        dVar30 = dVar25;\n        goto LAB_000518d8;\n      }\nLAB_000517b0:\n      dVar31 = *(double *)(PTR_opt_000b746c + 0x120);\n      if (uVar5 != 0) goto LAB_00051820;\n      puVar15 = (undefined8 *)((int)param_6 - (int)local_fc);\n      iVar13 = (param_5 - iVar6) - (uint)(param_6 < puVar15);\n      dVar25 = (double)CONCAT44(iVar13,uVar8);\n      puVar9 = local_e0;\n      if ((iVar17 < iVar13) ||\n         ((dVar30 = (double)CONCAT44(iVar13,uVar8), iVar13 == iVar17 &&\n          (dVar30 = (double)CONCAT44(iVar13,uVar8), local_e0 < puVar15)))) goto LAB_00051864;\nLAB_00051868:\n      puVar18 = SUB84(dVar30,0);\n      if (local_e4 == 0) {\n        puVar9 = puVar4;\n        puVar24 = (undefined8 *)(*(code *)PTR_fd_read_000b7770)(param_2,puVar4);\n        local_120 = dVar31;\nLAB_000516fc:\n        bVar1 = (int)puVar24 < 0;\n        dVar30 = (double)CONCAT44(puVar15,puVar18);\n        if ((int)puVar24 < 1) goto LAB_000518d8;\n        if (iVar7 == 0) {\n          if (*(int *)(PTR_opt_000b746c + 0x158) == 0 && *(int *)(PTR_opt_000b746c + 0x15c) == 0)\n          goto LAB_00051720;\n          ptimer_measure(local_104);\n        }\n        else {\n          ptimer_measure(local_104);\n        }\nLAB_000515b0:\n        dVar29 = (double)ptimer_read(local_104);\nLAB_000515c4:\n        puVar12 = (undefined8 *)((int)local_fc + (int)puVar24);\n        iVar6 = (uint)(puVar12 < local_fc) + iVar6 + ((int)puVar24 >> 0x1f);\n        puVar9 = param_13;\n        puVar15 = puVar4;\n        puVar18 = puVar24;\n        local_fc = puVar12;\n        if (local_100 == (undefined8 *)0x0) {\n          local_120 = (double)(ZEXT48(auStack_ac + 4) << 0x20);\n          puVar20 = (undefined8 *)FUN_000503a4(param_3,param_13);\n          dVar30 = (double)CONCAT44(puVar15,puVar18);\n          puVar3 = (undefined8 *)(auStack_ac + 4);\n          if ((int)puVar20 < 0) goto LAB_00051040;\n        }\n        else {\n          local_120 = 0.0;\n          local_120._0_4_ = (undefined8 *)0x0;\n          puVar20 = (undefined8 *)FUN_000503a4(0,param_13);\n          dVar30 = (double)CONCAT44(puVar15,puVar18);\n          puVar3 = local_120._0_4_;\n          if ((int)puVar20 < 0) goto LAB_00051040;\n          puVar21 = PTR_DAT_000b758c + -0x1898;\n          pcVar23 = (code *)(PTR_LAB_000b78e4 + 0x3a4);\n          local_94 = puVar4;\n          local_90 = puVar24;\n          do {\n            local_84 = 0x8000;\n            local_88 = local_100;\n            puVar9 = (undefined8 *)0x0;\n            iVar17 = (*(code *)PTR_inflate_000b7d40)(&local_94,0);\n            puVar3 = local_120._0_4_;\n            if (iVar17 == -3) {\nLAB_000511f4:\n              puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n              dVar30 = (double)CONCAT44(puVar15,puVar18);\n              *puVar10 = 0x16;\n              puVar20 = (undefined8 *)0xffffffff;\n              goto LAB_00051040;\n            }\n            if (iVar17 < -2) {\n              if (iVar17 == -4) {\n                puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n                dVar30 = (double)CONCAT44(puVar15,puVar18);\n                *puVar10 = 0xc;\n                puVar20 = (undefined8 *)0xffffffff;\n                goto LAB_00051040;\n              }\n            }\n            else if (iVar17 == 1) {\n              if (((param_12 & 1) != 0) &&\n                 (((param_5 != iVar6 || (param_6 != puVar12)) && (PTR_opt_000b746c[0x16b] != '\0')))\n                 ) {\n                debug_logprintf(puVar21);\n              }\n            }\n            else if (iVar17 == 2) goto LAB_000511f4;\n            local_120 = (double)(ZEXT48(auStack_ac + 4) << 0x20);\n            puVar18 = (undefined8 *)(0x8000 - local_84);\n            puVar9 = (undefined8 *)0x0;\n            puVar15 = local_100;\n            puVar20 = (undefined8 *)(*pcVar23)(param_3,0);\n            dVar30 = (double)CONCAT44(puVar15,puVar18);\n            puVar3 = (undefined8 *)(auStack_ac + 4);\n            if ((int)puVar20 < 0) goto LAB_00051040;\n          } while (local_84 == 0);\n        }\n        dVar31 = local_120;\n        if (uVar5 != 0) {\n          puVar20 = (undefined8 *)((int)local_f0 - (int)puVar24);\n          iVar22 = (iVar22 - ((int)puVar24 >> 0x1f)) - (uint)(local_f0 < puVar20);\n          local_f0 = puVar20;\n          if (iVar22 == 0 && puVar20 == (undefined8 *)0x0) {\n            iVar17 = fd_read_line(param_2);\n            dVar25 = (double)CONCAT44(puVar15,puVar18);\n            if (iVar17 == 0) {\n              puVar24 = (undefined8 *)0xffffffff;\n              goto LAB_000518d4;\n            }\n            if (param_13 != (undefined8 *)0x0) {\n              puVar15 = (undefined8 *)(*(code *)PTR_strlen_000b7c94)(iVar17);\n              puVar9 = (undefined8 *)&DAT_00000001;\n              puVar18 = param_13;\n              (*(code *)PTR_fwrite_000b7c24)(iVar17,1);\n            }\n            (*(code *)PTR_free_000b7d34)(iVar17);\n          }\n        }\n        goto LAB_00051748;\n      }\n      if (*(double *)(PTR_opt_000b746c + 0x120) == 0.0) {\n        dVar31 = *(double *)(PTR_DAT_000b758c + -0x15e0);\n      }\n      else {\n        dVar25 = (double)ptimer_read(local_104);\n        puVar18 = SUB84(dVar30,0);\n        if (*(double *)(PTR_opt_000b746c + 0x120) <\n            (dVar25 - dVar29) + *(double *)(PTR_DAT_000b758c + -0x15e0)) {\n          dVar31 = *(double *)(PTR_opt_000b746c + 0x120) - (dVar25 - dVar29);\n          if (dVar31 < 0.0) {\n            puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n            *puVar10 = 0x91;\n            puVar20 = (undefined8 *)0xffffffff;\n            goto LAB_00051040;\n          }\n        }\n        else {\n          dVar31 = *(double *)(PTR_DAT_000b758c + -0x15e0);\n        }\n      }\n      puVar9 = puVar4;\n      puVar24 = (undefined8 *)(*(code *)PTR_fd_read_000b7770)(param_2,puVar4);\n      local_120 = dVar31;\n      if (-1 < (int)puVar24) goto LAB_000516fc;\n      piVar14 = (int *)(*(code *)PTR___errno_location_000b7eb8)();\n      dVar25 = (double)CONCAT44(puVar15,puVar18);\n      local_120._0_4_ = (undefined8 *)((ulonglong)dVar31 >> 0x20);\n      if (*piVar14 != 0x91) goto LAB_000518d4;\n      if (iVar7 == 0) {\n        if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n          ptimer_measure(local_104);\n          puVar24 = (undefined8 *)0x0;\n          goto LAB_00051748;\n        }\n        puVar24 = (undefined8 *)0x0;\nLAB_00051720:\n        dVar25 = (double)CONCAT44(puVar15,puVar18);\n        if (param_11 != (undefined8 *)0x0) {\n          ptimer_measure(local_104);\n          dVar31 = local_120;\n          if (0 < (int)puVar24) goto LAB_000515b0;\n          goto LAB_00051748;\n        }\n        if (0 < (int)puVar24) goto LAB_000515c4;\n      }\n      else {\n        ptimer_measure(local_104);\n        puVar24 = (undefined8 *)0x0;\nLAB_00051748:\n        local_120 = dVar31;\n        dVar25 = (double)CONCAT44(puVar15,puVar18);\n        if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n          dVar30 = (double)ptimer_read(local_104);\n          puVar21 = PTR_DAT_000b7720;\n          dVar30 = dVar30 - *(double *)(PTR_DAT_000b7720 + -0x2fe0);\n          puVar20 = (undefined8 *)((int)puVar24 + *(int *)(PTR_DAT_000b7720 + -0x2fe4));\n          iVar17 = (uint)(puVar20 < puVar24) +\n                   ((int)puVar24 >> 0x1f) + *(int *)(PTR_DAT_000b7720 + -0x2fe8);\n          *(int *)(PTR_DAT_000b7720 + -0x2fe8) = iVar17;\n          *(undefined8 **)(puVar21 + -0x2fe4) = puVar20;\n          dVar31 = (double)(*(code *)PTR_FUN_000b78f4)(iVar17,puVar20);\n          puVar9 = *(undefined8 **)(PTR_opt_000b746c + 0x15c);\n          dVar27 = (double)(*(code *)PTR_FUN_000b78f4)\n                                     (*(undefined4 *)(PTR_opt_000b746c + 0x158),puVar9);\n          dVar25 = (double)CONCAT44(puVar15,puVar18);\n          if (dVar30 < dVar31 / dVar27) {\n            dVar30 = (dVar31 / dVar27 - dVar30) + *(double *)(PTR_DAT_000b7720 + -0x2fd8);\n            if (dVar30 < dVar32) {\n              if (PTR_opt_000b746c[0x16b] != '\0') {\n                uVar11 = number_to_static_string(iVar17,puVar20);\n                local_120 = (double)((ulonglong)uVar11 << 0x20);\n                dVar25 = dVar30 * *(double *)(puVar2 + -0x15d8);\n                debug_logprintf(PTR_DAT_000b758c + -0x1864);\n                puVar9 = puVar20;\n              }\n              goto LAB_0005175c;\n            }\n            if (PTR_opt_000b746c[0x16b] != '\0') {\n              uVar11 = number_to_static_string(iVar17,puVar20);\n              local_120 = (double)((ulonglong)uVar11 << 0x20);\n              dVar25 = dVar30 * dVar28;\n              debug_logprintf(PTR_DAT_000b758c + -0x183c);\n              puVar9 = puVar20;\n            }\n            dVar31 = (double)ptimer_read(local_104);\n            xsleep(dVar30);\n            dVar27 = (double)ptimer_measure(local_104);\n            dVar30 = dVar30 - (dVar27 - dVar31);\n            if (dVar33 < dVar30) {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x2580);\n            }\n            else if (dVar34 <= dVar30) {\n              *(double *)(PTR_DAT_000b7720 + -0x2fd8) = dVar30;\n            }\n            else {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x15d0);\n            }\n          }\n          puVar21 = PTR_DAT_000b7720;\n          *(undefined4 *)(PTR_DAT_000b7720 + -0x2fe4) = 0;\n          *(undefined4 *)(puVar21 + -0x2fe8) = 0;\n          uVar26 = ptimer_read(local_104);\n          *(undefined8 *)(puVar21 + -0x2fe0) = uVar26;\n        }\n      }\nLAB_0005175c:\n      if (iVar7 != 0) {\n        local_120 = (double)ptimer_read(local_104);\n        iVar17 = (int)puVar24 >> 0x1f;\n        puVar20 = puVar24;\n        progress_update(iVar7);\n        dVar25 = (double)CONCAT44(iVar17,puVar20);\n      }\n    }\n    dVar31 = *(double *)(PTR_opt_000b746c + 0x120);\n    if (uVar5 == 0) {\nLAB_00051864:\n      puVar15 = puVar20;\n      dVar30 = dVar25;\n      goto LAB_00051868;\n    }\nLAB_00051820:\n    if (iVar22 != 0 || local_f0 != (undefined8 *)0x0) {\nLAB_00051830:\n      puVar20 = local_f0;\n      if ((iVar17 <= iVar22) &&\n         ((puVar15 = local_e0, dVar30 = dVar25, iVar17 != iVar22 ||\n          (puVar20 = local_f0, local_e0 <= local_f0)))) goto LAB_00051868;\n      goto LAB_00051864;\n    }\n    iVar13 = fd_read_line(param_2);\n    puVar20 = SUB84(dVar25,0);\n    if (iVar13 == 0) {\nLAB_00050e90:\n      puVar24 = (undefined8 *)0xffffffff;\nLAB_000518d4:\n      bVar1 = (int)puVar24 < 0;\n      dVar30 = dVar25;\nLAB_000518d8:\n      puVar20 = (undefined8 *)0xffffffff;\n      puVar3 = local_120._0_4_;\n      if (!bVar1) {\n        puVar20 = puVar24;\n      }\n    }\n    else {\n      if (param_13 != (undefined8 *)0x0) {\n        uVar8 = (*(code *)PTR_strlen_000b7c94)(iVar13);\n        puVar20 = param_13;\n        (*(code *)PTR_fwrite_000b7c24)(iVar13,1,uVar8);\n      }\n      uVar8 = 0x10;\n      puVar9 = (undefined8 *)auStack_ac;\n      local_f0 = (undefined8 *)(*(code *)PTR_strtol_000b7d3c)(iVar13,puVar9);\n      iVar22 = (int)local_f0 >> 0x1f;\n      (*(code *)PTR_free_000b7d34)(iVar13);\n      dVar25 = (double)CONCAT44(uVar8,puVar20);\n      if (iVar22 < 0) goto LAB_00050e90;\n      if (local_f0 != (undefined8 *)0x0) goto LAB_00051830;\n      iVar22 = fd_read_line(param_2);\n      dVar30 = (double)CONCAT44(uVar8,puVar20);\n      if (iVar22 == 0) {\n        puVar20 = (undefined8 *)0xffffffff;\n      }\n      else {\n        if (param_13 != (undefined8 *)0x0) {\n          uVar8 = (*(code *)PTR_strlen_000b7c94)(iVar22);\n          puVar9 = (undefined8 *)&DAT_00000001;\n          (*(code *)PTR_fwrite_000b7c24)(iVar22,1);\n          puVar20 = param_13;\n        }\n        (*(code *)PTR_free_000b7d34)(iVar22);\n        dVar30 = (double)CONCAT44(uVar8,puVar20);\n        puVar20 = (undefined8 *)0x0;\n      }\n    }\nLAB_00051040:\n    local_120._0_4_ = puVar3;\n    if (iVar7 != 0) {\n      uVar26 = ptimer_read(local_104);\n      uVar19 = (undefined4)uVar26;\n      uVar8 = (undefined4)((ulonglong)uVar26 >> 0x20);\n      progress_finish(iVar7);\n      dVar30 = (double)CONCAT44(uVar8,uVar19);\n    }\n    if (param_11 != (undefined8 *)0x0) goto LAB_00051080;\n  }\n  else {\n    local_100 = (undefined8 *)(*(code *)PTR_xmalloc_000b7480)(0x8000);\n    if (local_100 == (undefined8 *)0x0) {\n      puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n      *puVar10 = 0xc;\n    }\n    else {\n      local_74 = PTR_LAB_000b78e4 + 0x368;\n      local_70 = PTR_LAB_000b78e4 + 0x330;\n      local_6c = 0;\n      local_94 = (undefined8 *)0x0;\n      local_90 = (undefined8 *)0x0;\n      param_4 = (undefined1 *)0x38;\n      puVar21 = PTR_DAT_000b758c + -0x18a0;\n      puVar9 = (undefined8 *)0x2f;\n      iVar6 = (*(code *)PTR_inflateInit2__000b7d68)(&local_94,0x2f);\n      if (iVar6 == 0) goto LAB_00050b74;\n      (*(code *)PTR_free_000b7d34)(local_100);\n      uVar8 = 0x16;\n      if (iVar6 == -4) {\n        uVar8 = 0xc;\n      }\n      puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n      *puVar10 = uVar8;\n    }\n    dVar30 = (double)CONCAT44(puVar21,param_4);\n    local_100 = param_11;\n    if (param_11 == (undefined8 *)0x0) {\n      iVar6 = 0;\n      local_fc = (undefined8 *)0x0;\n      puVar20 = (undefined8 *)0xffffffff;\n      goto LAB_000510b8;\n    }\n    local_100 = (undefined8 *)0x0;\n    iVar6 = 0;\n    local_fc = (undefined8 *)0x0;\n    local_104 = (undefined8 *)0x0;\n    puVar20 = (undefined8 *)0xffffffff;\nLAB_00051080:\n    uVar26 = ptimer_read(local_104);\n    *param_11 = uVar26;\n  }\n  if (local_104 != (undefined8 *)0x0) {\n    ptimer_destroy(local_104);\n  }\nLAB_000510b8:\n  if (local_100 != (undefined8 *)0x0) {\n    puVar9 = (undefined8 *)(*(code *)PTR_inflateEnd_000b7e58)(&local_94);\n    if ((-1 < (int)puVar20) && (puVar20 = puVar9, puVar9 != (undefined8 *)0x0)) {\n      puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)(local_100);\n      *puVar10 = 0x16;\n      puVar20 = (undefined8 *)0xffffffff;\n    }\n    (*(code *)PTR_free_000b7d34)(local_100);\n    puVar9 = local_8c;\n    if (((iVar6 != 0) || (local_8c != local_fc)) &&\n       (dVar30 = (double)CONCAT44(iVar6,SUB84(dVar30,0)), PTR_opt_000b746c[0x16b] != '\0')) {\n      iVar7 = iVar6;\n      puVar9 = local_fc;\n      debug_logprintf(PTR_DAT_000b758c + -0x180c);\n      dVar30 = (double)CONCAT44(iVar7,puVar9);\n      puVar9 = local_8c;\n    }\n  }\n  if (param_9 != (int *)0x0) {\n    puVar16 = (undefined1 *)param_9[1] + (int)local_fc;\n    *param_9 = (uint)(puVar16 < (undefined1 *)param_9[1]) + *param_9 + iVar6;\n    param_9[1] = (int)puVar16;\n  }\n  if (param_10 != (int *)0x0) {\n    uVar5 = param_10[1] + local_9c;\n    *param_10 = (int)((int)local_a0 + (uint)(uVar5 < (uint)param_10[1]) + *param_10);\n    param_10[1] = uVar5;\n    puVar9 = local_a0;\n  }\n  (*(code *)PTR_free_000b7d34)(puVar4);\n  if (local_5c == *(int *)PTR___stack_chk_guard_000b7c68) {\n    return puVar20;\n  }\n  iVar6 = local_5c;\n  puVar21 = PTR___stack_chk_fail_000b7bfc;\n  (*(code *)PTR___stack_chk_fail_000b7bfc)();\n  if (*(char *)(*(int *)(puVar21 + 0x65acc) + 0x223) == '\0') {\n    dVar25 = *(double *)(*(int *)(puVar21 + 0x65bec) + -0x6f98);\n  }\n  else {\n    dVar25 = *(double *)(*(int *)(puVar21 + 0x65bec) + -0x15d8);\n  }\n  if (dVar30 == 0.0) {\n    dVar30 = (double)ptimer_resolution();\n    dVar30 = dVar30 * *(double *)(*(int *)(puVar21 + 0x65bec) + -0x2580);\n  }\n  uVar26 = convert_to_bits(iVar6,puVar9);\n  dVar28 = (double)(**(code **)(puVar21 + 0x65f54))((int)((ulonglong)uVar26 >> 0x20),(int)uVar26);\n  dVar28 = dVar28 / dVar30;\n  if (dVar28 < dVar25) {\n    *(undefined4 *)local_120._0_4_ = 0;\n  }\n  else if (dVar28 < dVar25 * dVar25) {\n    *(undefined4 *)local_120._0_4_ = 1;\n    local_120._0_4_ = (undefined8 *)&DAT_00000001;\n  }\n  else if (dVar28 < dVar25 * dVar25 * dVar25) {\n    *(undefined4 *)local_120._0_4_ = 2;\n    local_120._0_4_ = (undefined8 *)0x2;\n  }\n  else {\n    *(undefined4 *)local_120._0_4_ = 3;\n    local_120._0_4_ = (undefined8 *)0x3;\n  }\n  return local_120._0_4_;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined8 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined8 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "undefined8 *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "undefined4 *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "undefined8 *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "int *piVar14;" primitive_type (pointer_declarator "*piVar14" * identifier) ;) (declaration "undefined8 *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "undefined1 *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "undefined8 *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "undefined4 uVar19;" type_identifier identifier ;) (declaration "undefined8 *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "undefined *puVar21;" type_identifier (pointer_declarator "*puVar21" * identifier) ;) (declaration "int iVar22;" primitive_type identifier ;) (declaration "code *pcVar23;" type_identifier (pointer_declarator "*pcVar23" * identifier) ;) (declaration "undefined8 *puVar24;" type_identifier (pointer_declarator "*puVar24" * identifier) ;) (declaration "double dVar25;" primitive_type identifier ;) (declaration "undefined8 uVar26;" type_identifier identifier ;) (declaration "double dVar27;" primitive_type identifier ;) (declaration "double dVar28;" primitive_type identifier ;) (declaration "double dVar29;" primitive_type identifier ;) (declaration "double dVar30;" primitive_type identifier ;) (declaration "double dVar31;" primitive_type identifier ;) (declaration "double dVar32;" primitive_type identifier ;) (declaration "double dVar33;" primitive_type identifier ;) (declaration "double dVar34;" primitive_type identifier ;) (declaration "undefined8 local_120;" type_identifier identifier ;) (declaration "undefined8 *local_104;" type_identifier (pointer_declarator "*local_104" * identifier) ;) (declaration "undefined8 *local_100;" type_identifier (pointer_declarator "*local_100" * identifier) ;) (declaration "undefined8 *local_fc;" type_identifier (pointer_declarator "*local_fc" * identifier) ;) (declaration "undefined8 *local_f0;" type_identifier (pointer_declarator "*local_f0" * identifier) ;) (declaration "int local_e4;" primitive_type identifier ;) (declaration "undefined8 *local_e0;" type_identifier (pointer_declarator "*local_e0" * identifier) ;) (declaration "undefined1 auStack_ac [8];" type_identifier (array_declarator "auStack_ac [8]" identifier [ number_literal ]) ;) (declaration "undefined1 *local_a4;" type_identifier (pointer_declarator "*local_a4" * identifier) ;) (declaration "undefined8 *local_a0;" type_identifier (pointer_declarator "*local_a0" * identifier) ;) (declaration "int local_9c;" primitive_type identifier ;) (declaration "undefined8 *local_94;" type_identifier (pointer_declarator "*local_94" * identifier) ;) (declaration "undefined8 *local_90;" type_identifier (pointer_declarator "*local_90" * identifier) ;) (declaration "undefined8 *local_8c;" type_identifier (pointer_declarator "*local_8c" * identifier) ;) (declaration "undefined8 *local_88;" type_identifier (pointer_declarator "*local_88" * identifier) ;) (declaration "int local_84;" primitive_type identifier ;) (declaration "undefined *local_74;" type_identifier (pointer_declarator "*local_74" * identifier) ;) (declaration "undefined *local_70;" type_identifier (pointer_declarator "*local_70" * identifier) ;) (declaration "undefined4 local_6c;" type_identifier identifier ;) (declaration "int local_5c;" primitive_type identifier ;) (expression_statement "local_5c = *(int *)PTR___stack_chk_guard_000b7c68;" (assignment_expression "local_5c = *(int *)PTR___stack_chk_guard_000b7c68" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_000b7c68" * (cast_expression "(int *)PTR___stack_chk_guard_000b7c68" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "puVar9 = param_2;" (assignment_expression "puVar9 = param_2" identifier = identifier) ;) (expression_statement "puVar21 = param_3;" (assignment_expression "puVar21 = param_3" identifier = identifier) ;) (expression_statement "puVar4 = (undefined8 *)(*(code *)PTR_xmalloc_000b7480)(0x2000);" (assignment_expression "puVar4 = (undefined8 *)(*(code *)PTR_xmalloc_000b7480)(0x2000)" identifier = (cast_expression "(undefined8 *)(*(code *)PTR_xmalloc_000b7480)(0x2000)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_xmalloc_000b7480)(0x2000)" (parenthesized_expression "(*(code *)PTR_xmalloc_000b7480)" ( (pointer_expression "*(code *)PTR_xmalloc_000b7480" * (cast_expression "(code *)PTR_xmalloc_000b7480" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x2000)" ( number_literal ))))) ;) (expression_statement "uVar5 = param_12 & 4;" (assignment_expression "uVar5 = param_12 & 4" identifier = (binary_expression "param_12 & 4" identifier & number_literal)) ;) (expression_statement "local_a4 = (undefined1 *)0x0;" (assignment_expression "local_a4 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "auStack_ac._4_4_ = (undefined *)0x0;" (assignment_expression "auStack_ac._4_4_ = (undefined *)0x0" (field_expression "auStack_ac._4_4_" identifier . field_identifier) = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_9c = 0;" (assignment_expression "local_9c = 0" identifier = number_literal) ;) (expression_statement "local_a0 = (undefined8 *)0x0;" (assignment_expression "local_a0 = (undefined8 *)0x0" identifier = (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if ((param_12 & 8) == 0) {\n    local_100 = (undefined8 *)0x0;\nLAB_00050b74:\n    if ((param_12 & 2) != 0) {\n      auStack_ac._4_4_ = param_7;\n      local_a4 = param_8;\n    }\n    if (*(int *)(PTR_opt_000b746c + 0x10c) == 0) {\n      iVar7 = 0;\n      if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n        local_e4 = 0;\n        goto LAB_00051950;\n      }\n      local_e4 = 0;\nLAB_00051978:\n      if (param_11 != (undefined8 *)0x0) goto LAB_00050c48;\n      local_104 = param_11;\n      local_e0 = (undefined8 *)0x2000;\n    }\n    else {\n      param_4 = param_8;\n      puVar21 = param_7;\n      if ((undefined *)auStack_ac._4_4_ != (undefined *)0x0 || local_a4 != (undefined1 *)0x0) {\n        puVar21 = (undefined *)0x0;\n        param_4 = (undefined1 *)0x0;\n      }\n      if (*(int *)(PTR_opt_000b746c + 0x30) != 0) {\n        iVar6 = (*(code *)PTR_strlen_000b7c94)();\n        param_1 = param_1 + iVar6 + 1;\n      }\n      local_120 = (double)CONCAT44(puVar21 + (uint)(param_4 + (int)param_6 < param_4) + param_5,\n                                   param_4 + (int)param_6);\n      iVar7 = progress_create(param_1);\n      local_e4 = progress_interactive_p(iVar7);\n      if (*(int *)(PTR_opt_000b746c + 0x158) == 0 && *(int *)(PTR_opt_000b746c + 0x15c) == 0) {\n        if (iVar7 == 0) goto LAB_00051978;\n      }\n      else {\nLAB_00051950:\n        puVar2 = PTR_DAT_000b7720;\n        *(undefined4 *)(PTR_DAT_000b7720 + -0x2fe8) = 0;\n        *(undefined4 *)(puVar2 + -0x2fe4) = 0;\n        *(undefined4 *)(puVar2 + -0x2fe0) = 0;\n        *(undefined4 *)(puVar2 + -0x2fdc) = 0;\n        *(undefined4 *)(puVar2 + -0x2fd8) = 0;\n        *(undefined4 *)(puVar2 + -0x2fd4) = 0;\n      }\nLAB_00050c48:\n      local_104 = (undefined8 *)ptimer_new();\n      iVar6 = *(int *)(PTR_opt_000b746c + 0x158);\n      local_e0 = *(undefined8 **)(PTR_opt_000b746c + 0x15c);\n      if (iVar6 == 0 && local_e0 == (undefined8 *)0x0) {\n        local_e0 = (undefined8 *)0x2000;\n      }\n      else if ((0 < iVar6) || ((iVar6 == 0 && ((undefined8 *)0x1fff < local_e0)))) {\n        local_e0 = (undefined8 *)0x2000;\n      }\n    }\n    puVar2 = PTR_DAT_000b758c;\n    dVar25 = (double)CONCAT44(puVar21,param_4);\n    iVar22 = 0;\n    local_f0 = (undefined8 *)0x0;\n    iVar6 = 0;\n    local_fc = (undefined8 *)0x0;\n    dVar29 = 0.0;\n    puVar24 = (undefined8 *)0x0;\n    dVar32 = *(double *)(PTR_DAT_000b758c + -0x2340);\n    dVar33 = *(double *)(PTR_DAT_000b758c + -0x2580);\n    dVar34 = *(double *)(PTR_DAT_000b758c + -0x15d0);\n    dVar28 = *(double *)(PTR_DAT_000b758c + -0x15d8);\n    while( true ) {\n      uVar8 = SUB84(dVar25,0);\n      iVar17 = (int)local_e0 >> 0x1f;\n      puVar20 = local_e0;\n      puVar3 = local_120._0_4_;\n      if ((param_12 & 1) == 0) break;\n      if (param_5 <= iVar6) {\n        if (param_5 != iVar6) goto LAB_000518d4;\n        if (local_fc < param_6) goto LAB_000517b0;\n        bVar1 = (int)puVar24 < 0;\n        dVar30 = dVar25;\n        goto LAB_000518d8;\n      }\nLAB_000517b0:\n      dVar31 = *(double *)(PTR_opt_000b746c + 0x120);\n      if (uVar5 != 0) goto LAB_00051820;\n      puVar15 = (undefined8 *)((int)param_6 - (int)local_fc);\n      iVar13 = (param_5 - iVar6) - (uint)(param_6 < puVar15);\n      dVar25 = (double)CONCAT44(iVar13,uVar8);\n      puVar9 = local_e0;\n      if ((iVar17 < iVar13) ||\n         ((dVar30 = (double)CONCAT44(iVar13,uVar8), iVar13 == iVar17 &&\n          (dVar30 = (double)CONCAT44(iVar13,uVar8), local_e0 < puVar15)))) goto LAB_00051864;\nLAB_00051868:\n      puVar18 = SUB84(dVar30,0);\n      if (local_e4 == 0) {\n        puVar9 = puVar4;\n        puVar24 = (undefined8 *)(*(code *)PTR_fd_read_000b7770)(param_2,puVar4);\n        local_120 = dVar31;\nLAB_000516fc:\n        bVar1 = (int)puVar24 < 0;\n        dVar30 = (double)CONCAT44(puVar15,puVar18);\n        if ((int)puVar24 < 1) goto LAB_000518d8;\n        if (iVar7 == 0) {\n          if (*(int *)(PTR_opt_000b746c + 0x158) == 0 && *(int *)(PTR_opt_000b746c + 0x15c) == 0)\n          goto LAB_00051720;\n          ptimer_measure(local_104);\n        }\n        else {\n          ptimer_measure(local_104);\n        }\nLAB_000515b0:\n        dVar29 = (double)ptimer_read(local_104);\nLAB_000515c4:\n        puVar12 = (undefined8 *)((int)local_fc + (int)puVar24);\n        iVar6 = (uint)(puVar12 < local_fc) + iVar6 + ((int)puVar24 >> 0x1f);\n        puVar9 = param_13;\n        puVar15 = puVar4;\n        puVar18 = puVar24;\n        local_fc = puVar12;\n        if (local_100 == (undefined8 *)0x0) {\n          local_120 = (double)(ZEXT48(auStack_ac + 4) << 0x20);\n          puVar20 = (undefined8 *)FUN_000503a4(param_3,param_13);\n          dVar30 = (double)CONCAT44(puVar15,puVar18);\n          puVar3 = (undefined8 *)(auStack_ac + 4);\n          if ((int)puVar20 < 0) goto LAB_00051040;\n        }\n        else {\n          local_120 = 0.0;\n          local_120._0_4_ = (undefined8 *)0x0;\n          puVar20 = (undefined8 *)FUN_000503a4(0,param_13);\n          dVar30 = (double)CONCAT44(puVar15,puVar18);\n          puVar3 = local_120._0_4_;\n          if ((int)puVar20 < 0) goto LAB_00051040;\n          puVar21 = PTR_DAT_000b758c + -0x1898;\n          pcVar23 = (code *)(PTR_LAB_000b78e4 + 0x3a4);\n          local_94 = puVar4;\n          local_90 = puVar24;\n          do {\n            local_84 = 0x8000;\n            local_88 = local_100;\n            puVar9 = (undefined8 *)0x0;\n            iVar17 = (*(code *)PTR_inflate_000b7d40)(&local_94,0);\n            puVar3 = local_120._0_4_;\n            if (iVar17 == -3) {\nLAB_000511f4:\n              puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n              dVar30 = (double)CONCAT44(puVar15,puVar18);\n              *puVar10 = 0x16;\n              puVar20 = (undefined8 *)0xffffffff;\n              goto LAB_00051040;\n            }\n            if (iVar17 < -2) {\n              if (iVar17 == -4) {\n                puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n                dVar30 = (double)CONCAT44(puVar15,puVar18);\n                *puVar10 = 0xc;\n                puVar20 = (undefined8 *)0xffffffff;\n                goto LAB_00051040;\n              }\n            }\n            else if (iVar17 == 1) {\n              if (((param_12 & 1) != 0) &&\n                 (((param_5 != iVar6 || (param_6 != puVar12)) && (PTR_opt_000b746c[0x16b] != '\0')))\n                 ) {\n                debug_logprintf(puVar21);\n              }\n            }\n            else if (iVar17 == 2) goto LAB_000511f4;\n            local_120 = (double)(ZEXT48(auStack_ac + 4) << 0x20);\n            puVar18 = (undefined8 *)(0x8000 - local_84);\n            puVar9 = (undefined8 *)0x0;\n            puVar15 = local_100;\n            puVar20 = (undefined8 *)(*pcVar23)(param_3,0);\n            dVar30 = (double)CONCAT44(puVar15,puVar18);\n            puVar3 = (undefined8 *)(auStack_ac + 4);\n            if ((int)puVar20 < 0) goto LAB_00051040;\n          } while (local_84 == 0);\n        }\n        dVar31 = local_120;\n        if (uVar5 != 0) {\n          puVar20 = (undefined8 *)((int)local_f0 - (int)puVar24);\n          iVar22 = (iVar22 - ((int)puVar24 >> 0x1f)) - (uint)(local_f0 < puVar20);\n          local_f0 = puVar20;\n          if (iVar22 == 0 && puVar20 == (undefined8 *)0x0) {\n            iVar17 = fd_read_line(param_2);\n            dVar25 = (double)CONCAT44(puVar15,puVar18);\n            if (iVar17 == 0) {\n              puVar24 = (undefined8 *)0xffffffff;\n              goto LAB_000518d4;\n            }\n            if (param_13 != (undefined8 *)0x0) {\n              puVar15 = (undefined8 *)(*(code *)PTR_strlen_000b7c94)(iVar17);\n              puVar9 = (undefined8 *)&DAT_00000001;\n              puVar18 = param_13;\n              (*(code *)PTR_fwrite_000b7c24)(iVar17,1);\n            }\n            (*(code *)PTR_free_000b7d34)(iVar17);\n          }\n        }\n        goto LAB_00051748;\n      }\n      if (*(double *)(PTR_opt_000b746c + 0x120) == 0.0) {\n        dVar31 = *(double *)(PTR_DAT_000b758c + -0x15e0);\n      }\n      else {\n        dVar25 = (double)ptimer_read(local_104);\n        puVar18 = SUB84(dVar30,0);\n        if (*(double *)(PTR_opt_000b746c + 0x120) <\n            (dVar25 - dVar29) + *(double *)(PTR_DAT_000b758c + -0x15e0)) {\n          dVar31 = *(double *)(PTR_opt_000b746c + 0x120) - (dVar25 - dVar29);\n          if (dVar31 < 0.0) {\n            puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n            *puVar10 = 0x91;\n            puVar20 = (undefined8 *)0xffffffff;\n            goto LAB_00051040;\n          }\n        }\n        else {\n          dVar31 = *(double *)(PTR_DAT_000b758c + -0x15e0);\n        }\n      }\n      puVar9 = puVar4;\n      puVar24 = (undefined8 *)(*(code *)PTR_fd_read_000b7770)(param_2,puVar4);\n      local_120 = dVar31;\n      if (-1 < (int)puVar24) goto LAB_000516fc;\n      piVar14 = (int *)(*(code *)PTR___errno_location_000b7eb8)();\n      dVar25 = (double)CONCAT44(puVar15,puVar18);\n      local_120._0_4_ = (undefined8 *)((ulonglong)dVar31 >> 0x20);\n      if (*piVar14 != 0x91) goto LAB_000518d4;\n      if (iVar7 == 0) {\n        if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n          ptimer_measure(local_104);\n          puVar24 = (undefined8 *)0x0;\n          goto LAB_00051748;\n        }\n        puVar24 = (undefined8 *)0x0;\nLAB_00051720:\n        dVar25 = (double)CONCAT44(puVar15,puVar18);\n        if (param_11 != (undefined8 *)0x0) {\n          ptimer_measure(local_104);\n          dVar31 = local_120;\n          if (0 < (int)puVar24) goto LAB_000515b0;\n          goto LAB_00051748;\n        }\n        if (0 < (int)puVar24) goto LAB_000515c4;\n      }\n      else {\n        ptimer_measure(local_104);\n        puVar24 = (undefined8 *)0x0;\nLAB_00051748:\n        local_120 = dVar31;\n        dVar25 = (double)CONCAT44(puVar15,puVar18);\n        if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n          dVar30 = (double)ptimer_read(local_104);\n          puVar21 = PTR_DAT_000b7720;\n          dVar30 = dVar30 - *(double *)(PTR_DAT_000b7720 + -0x2fe0);\n          puVar20 = (undefined8 *)((int)puVar24 + *(int *)(PTR_DAT_000b7720 + -0x2fe4));\n          iVar17 = (uint)(puVar20 < puVar24) +\n                   ((int)puVar24 >> 0x1f) + *(int *)(PTR_DAT_000b7720 + -0x2fe8);\n          *(int *)(PTR_DAT_000b7720 + -0x2fe8) = iVar17;\n          *(undefined8 **)(puVar21 + -0x2fe4) = puVar20;\n          dVar31 = (double)(*(code *)PTR_FUN_000b78f4)(iVar17,puVar20);\n          puVar9 = *(undefined8 **)(PTR_opt_000b746c + 0x15c);\n          dVar27 = (double)(*(code *)PTR_FUN_000b78f4)\n                                     (*(undefined4 *)(PTR_opt_000b746c + 0x158),puVar9);\n          dVar25 = (double)CONCAT44(puVar15,puVar18);\n          if (dVar30 < dVar31 / dVar27) {\n            dVar30 = (dVar31 / dVar27 - dVar30) + *(double *)(PTR_DAT_000b7720 + -0x2fd8);\n            if (dVar30 < dVar32) {\n              if (PTR_opt_000b746c[0x16b] != '\0') {\n                uVar11 = number_to_static_string(iVar17,puVar20);\n                local_120 = (double)((ulonglong)uVar11 << 0x20);\n                dVar25 = dVar30 * *(double *)(puVar2 + -0x15d8);\n                debug_logprintf(PTR_DAT_000b758c + -0x1864);\n                puVar9 = puVar20;\n              }\n              goto LAB_0005175c;\n            }\n            if (PTR_opt_000b746c[0x16b] != '\0') {\n              uVar11 = number_to_static_string(iVar17,puVar20);\n              local_120 = (double)((ulonglong)uVar11 << 0x20);\n              dVar25 = dVar30 * dVar28;\n              debug_logprintf(PTR_DAT_000b758c + -0x183c);\n              puVar9 = puVar20;\n            }\n            dVar31 = (double)ptimer_read(local_104);\n            xsleep(dVar30);\n            dVar27 = (double)ptimer_measure(local_104);\n            dVar30 = dVar30 - (dVar27 - dVar31);\n            if (dVar33 < dVar30) {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x2580);\n            }\n            else if (dVar34 <= dVar30) {\n              *(double *)(PTR_DAT_000b7720 + -0x2fd8) = dVar30;\n            }\n            else {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x15d0);\n            }\n          }\n          puVar21 = PTR_DAT_000b7720;\n          *(undefined4 *)(PTR_DAT_000b7720 + -0x2fe4) = 0;\n          *(undefined4 *)(puVar21 + -0x2fe8) = 0;\n          uVar26 = ptimer_read(local_104);\n          *(undefined8 *)(puVar21 + -0x2fe0) = uVar26;\n        }\n      }\nLAB_0005175c:\n      if (iVar7 != 0) {\n        local_120 = (double)ptimer_read(local_104);\n        iVar17 = (int)puVar24 >> 0x1f;\n        puVar20 = puVar24;\n        progress_update(iVar7);\n        dVar25 = (double)CONCAT44(iVar17,puVar20);\n      }\n    }\n    dVar31 = *(double *)(PTR_opt_000b746c + 0x120);\n    if (uVar5 == 0) {\nLAB_00051864:\n      puVar15 = puVar20;\n      dVar30 = dVar25;\n      goto LAB_00051868;\n    }\nLAB_00051820:\n    if (iVar22 != 0 || local_f0 != (undefined8 *)0x0) {\nLAB_00051830:\n      puVar20 = local_f0;\n      if ((iVar17 <= iVar22) &&\n         ((puVar15 = local_e0, dVar30 = dVar25, iVar17 != iVar22 ||\n          (puVar20 = local_f0, local_e0 <= local_f0)))) goto LAB_00051868;\n      goto LAB_00051864;\n    }\n    iVar13 = fd_read_line(param_2);\n    puVar20 = SUB84(dVar25,0);\n    if (iVar13 == 0) {\nLAB_00050e90:\n      puVar24 = (undefined8 *)0xffffffff;\nLAB_000518d4:\n      bVar1 = (int)puVar24 < 0;\n      dVar30 = dVar25;\nLAB_000518d8:\n      puVar20 = (undefined8 *)0xffffffff;\n      puVar3 = local_120._0_4_;\n      if (!bVar1) {\n        puVar20 = puVar24;\n      }\n    }\n    else {\n      if (param_13 != (undefined8 *)0x0) {\n        uVar8 = (*(code *)PTR_strlen_000b7c94)(iVar13);\n        puVar20 = param_13;\n        (*(code *)PTR_fwrite_000b7c24)(iVar13,1,uVar8);\n      }\n      uVar8 = 0x10;\n      puVar9 = (undefined8 *)auStack_ac;\n      local_f0 = (undefined8 *)(*(code *)PTR_strtol_000b7d3c)(iVar13,puVar9);\n      iVar22 = (int)local_f0 >> 0x1f;\n      (*(code *)PTR_free_000b7d34)(iVar13);\n      dVar25 = (double)CONCAT44(uVar8,puVar20);\n      if (iVar22 < 0) goto LAB_00050e90;\n      if (local_f0 != (undefined8 *)0x0) goto LAB_00051830;\n      iVar22 = fd_read_line(param_2);\n      dVar30 = (double)CONCAT44(uVar8,puVar20);\n      if (iVar22 == 0) {\n        puVar20 = (undefined8 *)0xffffffff;\n      }\n      else {\n        if (param_13 != (undefined8 *)0x0) {\n          uVar8 = (*(code *)PTR_strlen_000b7c94)(iVar22);\n          puVar9 = (undefined8 *)&DAT_00000001;\n          (*(code *)PTR_fwrite_000b7c24)(iVar22,1);\n          puVar20 = param_13;\n        }\n        (*(code *)PTR_free_000b7d34)(iVar22);\n        dVar30 = (double)CONCAT44(uVar8,puVar20);\n        puVar20 = (undefined8 *)0x0;\n      }\n    }\nLAB_00051040:\n    local_120._0_4_ = puVar3;\n    if (iVar7 != 0) {\n      uVar26 = ptimer_read(local_104);\n      uVar19 = (undefined4)uVar26;\n      uVar8 = (undefined4)((ulonglong)uVar26 >> 0x20);\n      progress_finish(iVar7);\n      dVar30 = (double)CONCAT44(uVar8,uVar19);\n    }\n    if (param_11 != (undefined8 *)0x0) goto LAB_00051080;\n  }\n  else {\n    local_100 = (undefined8 *)(*(code *)PTR_xmalloc_000b7480)(0x8000);\n    if (local_100 == (undefined8 *)0x0) {\n      puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n      *puVar10 = 0xc;\n    }\n    else {\n      local_74 = PTR_LAB_000b78e4 + 0x368;\n      local_70 = PTR_LAB_000b78e4 + 0x330;\n      local_6c = 0;\n      local_94 = (undefined8 *)0x0;\n      local_90 = (undefined8 *)0x0;\n      param_4 = (undefined1 *)0x38;\n      puVar21 = PTR_DAT_000b758c + -0x18a0;\n      puVar9 = (undefined8 *)0x2f;\n      iVar6 = (*(code *)PTR_inflateInit2__000b7d68)(&local_94,0x2f);\n      if (iVar6 == 0) goto LAB_00050b74;\n      (*(code *)PTR_free_000b7d34)(local_100);\n      uVar8 = 0x16;\n      if (iVar6 == -4) {\n        uVar8 = 0xc;\n      }\n      puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n      *puVar10 = uVar8;\n    }\n    dVar30 = (double)CONCAT44(puVar21,param_4);\n    local_100 = param_11;\n    if (param_11 == (undefined8 *)0x0) {\n      iVar6 = 0;\n      local_fc = (undefined8 *)0x0;\n      puVar20 = (undefined8 *)0xffffffff;\n      goto LAB_000510b8;\n    }\n    local_100 = (undefined8 *)0x0;\n    iVar6 = 0;\n    local_fc = (undefined8 *)0x0;\n    local_104 = (undefined8 *)0x0;\n    puVar20 = (undefined8 *)0xffffffff;\nLAB_00051080:\n    uVar26 = ptimer_read(local_104);\n    *param_11 = uVar26;\n  }" if (parenthesized_expression "((param_12 & 8) == 0)" ( (binary_expression "(param_12 & 8) == 0" (parenthesized_expression "(param_12 & 8)" ( (binary_expression "param_12 & 8" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    local_100 = (undefined8 *)0x0;\nLAB_00050b74:\n    if ((param_12 & 2) != 0) {\n      auStack_ac._4_4_ = param_7;\n      local_a4 = param_8;\n    }\n    if (*(int *)(PTR_opt_000b746c + 0x10c) == 0) {\n      iVar7 = 0;\n      if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n        local_e4 = 0;\n        goto LAB_00051950;\n      }\n      local_e4 = 0;\nLAB_00051978:\n      if (param_11 != (undefined8 *)0x0) goto LAB_00050c48;\n      local_104 = param_11;\n      local_e0 = (undefined8 *)0x2000;\n    }\n    else {\n      param_4 = param_8;\n      puVar21 = param_7;\n      if ((undefined *)auStack_ac._4_4_ != (undefined *)0x0 || local_a4 != (undefined1 *)0x0) {\n        puVar21 = (undefined *)0x0;\n        param_4 = (undefined1 *)0x0;\n      }\n      if (*(int *)(PTR_opt_000b746c + 0x30) != 0) {\n        iVar6 = (*(code *)PTR_strlen_000b7c94)();\n        param_1 = param_1 + iVar6 + 1;\n      }\n      local_120 = (double)CONCAT44(puVar21 + (uint)(param_4 + (int)param_6 < param_4) + param_5,\n                                   param_4 + (int)param_6);\n      iVar7 = progress_create(param_1);\n      local_e4 = progress_interactive_p(iVar7);\n      if (*(int *)(PTR_opt_000b746c + 0x158) == 0 && *(int *)(PTR_opt_000b746c + 0x15c) == 0) {\n        if (iVar7 == 0) goto LAB_00051978;\n      }\n      else {\nLAB_00051950:\n        puVar2 = PTR_DAT_000b7720;\n        *(undefined4 *)(PTR_DAT_000b7720 + -0x2fe8) = 0;\n        *(undefined4 *)(puVar2 + -0x2fe4) = 0;\n        *(undefined4 *)(puVar2 + -0x2fe0) = 0;\n        *(undefined4 *)(puVar2 + -0x2fdc) = 0;\n        *(undefined4 *)(puVar2 + -0x2fd8) = 0;\n        *(undefined4 *)(puVar2 + -0x2fd4) = 0;\n      }\nLAB_00050c48:\n      local_104 = (undefined8 *)ptimer_new();\n      iVar6 = *(int *)(PTR_opt_000b746c + 0x158);\n      local_e0 = *(undefined8 **)(PTR_opt_000b746c + 0x15c);\n      if (iVar6 == 0 && local_e0 == (undefined8 *)0x0) {\n        local_e0 = (undefined8 *)0x2000;\n      }\n      else if ((0 < iVar6) || ((iVar6 == 0 && ((undefined8 *)0x1fff < local_e0)))) {\n        local_e0 = (undefined8 *)0x2000;\n      }\n    }\n    puVar2 = PTR_DAT_000b758c;\n    dVar25 = (double)CONCAT44(puVar21,param_4);\n    iVar22 = 0;\n    local_f0 = (undefined8 *)0x0;\n    iVar6 = 0;\n    local_fc = (undefined8 *)0x0;\n    dVar29 = 0.0;\n    puVar24 = (undefined8 *)0x0;\n    dVar32 = *(double *)(PTR_DAT_000b758c + -0x2340);\n    dVar33 = *(double *)(PTR_DAT_000b758c + -0x2580);\n    dVar34 = *(double *)(PTR_DAT_000b758c + -0x15d0);\n    dVar28 = *(double *)(PTR_DAT_000b758c + -0x15d8);\n    while( true ) {\n      uVar8 = SUB84(dVar25,0);\n      iVar17 = (int)local_e0 >> 0x1f;\n      puVar20 = local_e0;\n      puVar3 = local_120._0_4_;\n      if ((param_12 & 1) == 0) break;\n      if (param_5 <= iVar6) {\n        if (param_5 != iVar6) goto LAB_000518d4;\n        if (local_fc < param_6) goto LAB_000517b0;\n        bVar1 = (int)puVar24 < 0;\n        dVar30 = dVar25;\n        goto LAB_000518d8;\n      }\nLAB_000517b0:\n      dVar31 = *(double *)(PTR_opt_000b746c + 0x120);\n      if (uVar5 != 0) goto LAB_00051820;\n      puVar15 = (undefined8 *)((int)param_6 - (int)local_fc);\n      iVar13 = (param_5 - iVar6) - (uint)(param_6 < puVar15);\n      dVar25 = (double)CONCAT44(iVar13,uVar8);\n      puVar9 = local_e0;\n      if ((iVar17 < iVar13) ||\n         ((dVar30 = (double)CONCAT44(iVar13,uVar8), iVar13 == iVar17 &&\n          (dVar30 = (double)CONCAT44(iVar13,uVar8), local_e0 < puVar15)))) goto LAB_00051864;\nLAB_00051868:\n      puVar18 = SUB84(dVar30,0);\n      if (local_e4 == 0) {\n        puVar9 = puVar4;\n        puVar24 = (undefined8 *)(*(code *)PTR_fd_read_000b7770)(param_2,puVar4);\n        local_120 = dVar31;\nLAB_000516fc:\n        bVar1 = (int)puVar24 < 0;\n        dVar30 = (double)CONCAT44(puVar15,puVar18);\n        if ((int)puVar24 < 1) goto LAB_000518d8;\n        if (iVar7 == 0) {\n          if (*(int *)(PTR_opt_000b746c + 0x158) == 0 && *(int *)(PTR_opt_000b746c + 0x15c) == 0)\n          goto LAB_00051720;\n          ptimer_measure(local_104);\n        }\n        else {\n          ptimer_measure(local_104);\n        }\nLAB_000515b0:\n        dVar29 = (double)ptimer_read(local_104);\nLAB_000515c4:\n        puVar12 = (undefined8 *)((int)local_fc + (int)puVar24);\n        iVar6 = (uint)(puVar12 < local_fc) + iVar6 + ((int)puVar24 >> 0x1f);\n        puVar9 = param_13;\n        puVar15 = puVar4;\n        puVar18 = puVar24;\n        local_fc = puVar12;\n        if (local_100 == (undefined8 *)0x0) {\n          local_120 = (double)(ZEXT48(auStack_ac + 4) << 0x20);\n          puVar20 = (undefined8 *)FUN_000503a4(param_3,param_13);\n          dVar30 = (double)CONCAT44(puVar15,puVar18);\n          puVar3 = (undefined8 *)(auStack_ac + 4);\n          if ((int)puVar20 < 0) goto LAB_00051040;\n        }\n        else {\n          local_120 = 0.0;\n          local_120._0_4_ = (undefined8 *)0x0;\n          puVar20 = (undefined8 *)FUN_000503a4(0,param_13);\n          dVar30 = (double)CONCAT44(puVar15,puVar18);\n          puVar3 = local_120._0_4_;\n          if ((int)puVar20 < 0) goto LAB_00051040;\n          puVar21 = PTR_DAT_000b758c + -0x1898;\n          pcVar23 = (code *)(PTR_LAB_000b78e4 + 0x3a4);\n          local_94 = puVar4;\n          local_90 = puVar24;\n          do {\n            local_84 = 0x8000;\n            local_88 = local_100;\n            puVar9 = (undefined8 *)0x0;\n            iVar17 = (*(code *)PTR_inflate_000b7d40)(&local_94,0);\n            puVar3 = local_120._0_4_;\n            if (iVar17 == -3) {\nLAB_000511f4:\n              puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n              dVar30 = (double)CONCAT44(puVar15,puVar18);\n              *puVar10 = 0x16;\n              puVar20 = (undefined8 *)0xffffffff;\n              goto LAB_00051040;\n            }\n            if (iVar17 < -2) {\n              if (iVar17 == -4) {\n                puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n                dVar30 = (double)CONCAT44(puVar15,puVar18);\n                *puVar10 = 0xc;\n                puVar20 = (undefined8 *)0xffffffff;\n                goto LAB_00051040;\n              }\n            }\n            else if (iVar17 == 1) {\n              if (((param_12 & 1) != 0) &&\n                 (((param_5 != iVar6 || (param_6 != puVar12)) && (PTR_opt_000b746c[0x16b] != '\0')))\n                 ) {\n                debug_logprintf(puVar21);\n              }\n            }\n            else if (iVar17 == 2) goto LAB_000511f4;\n            local_120 = (double)(ZEXT48(auStack_ac + 4) << 0x20);\n            puVar18 = (undefined8 *)(0x8000 - local_84);\n            puVar9 = (undefined8 *)0x0;\n            puVar15 = local_100;\n            puVar20 = (undefined8 *)(*pcVar23)(param_3,0);\n            dVar30 = (double)CONCAT44(puVar15,puVar18);\n            puVar3 = (undefined8 *)(auStack_ac + 4);\n            if ((int)puVar20 < 0) goto LAB_00051040;\n          } while (local_84 == 0);\n        }\n        dVar31 = local_120;\n        if (uVar5 != 0) {\n          puVar20 = (undefined8 *)((int)local_f0 - (int)puVar24);\n          iVar22 = (iVar22 - ((int)puVar24 >> 0x1f)) - (uint)(local_f0 < puVar20);\n          local_f0 = puVar20;\n          if (iVar22 == 0 && puVar20 == (undefined8 *)0x0) {\n            iVar17 = fd_read_line(param_2);\n            dVar25 = (double)CONCAT44(puVar15,puVar18);\n            if (iVar17 == 0) {\n              puVar24 = (undefined8 *)0xffffffff;\n              goto LAB_000518d4;\n            }\n            if (param_13 != (undefined8 *)0x0) {\n              puVar15 = (undefined8 *)(*(code *)PTR_strlen_000b7c94)(iVar17);\n              puVar9 = (undefined8 *)&DAT_00000001;\n              puVar18 = param_13;\n              (*(code *)PTR_fwrite_000b7c24)(iVar17,1);\n            }\n            (*(code *)PTR_free_000b7d34)(iVar17);\n          }\n        }\n        goto LAB_00051748;\n      }\n      if (*(double *)(PTR_opt_000b746c + 0x120) == 0.0) {\n        dVar31 = *(double *)(PTR_DAT_000b758c + -0x15e0);\n      }\n      else {\n        dVar25 = (double)ptimer_read(local_104);\n        puVar18 = SUB84(dVar30,0);\n        if (*(double *)(PTR_opt_000b746c + 0x120) <\n            (dVar25 - dVar29) + *(double *)(PTR_DAT_000b758c + -0x15e0)) {\n          dVar31 = *(double *)(PTR_opt_000b746c + 0x120) - (dVar25 - dVar29);\n          if (dVar31 < 0.0) {\n            puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n            *puVar10 = 0x91;\n            puVar20 = (undefined8 *)0xffffffff;\n            goto LAB_00051040;\n          }\n        }\n        else {\n          dVar31 = *(double *)(PTR_DAT_000b758c + -0x15e0);\n        }\n      }\n      puVar9 = puVar4;\n      puVar24 = (undefined8 *)(*(code *)PTR_fd_read_000b7770)(param_2,puVar4);\n      local_120 = dVar31;\n      if (-1 < (int)puVar24) goto LAB_000516fc;\n      piVar14 = (int *)(*(code *)PTR___errno_location_000b7eb8)();\n      dVar25 = (double)CONCAT44(puVar15,puVar18);\n      local_120._0_4_ = (undefined8 *)((ulonglong)dVar31 >> 0x20);\n      if (*piVar14 != 0x91) goto LAB_000518d4;\n      if (iVar7 == 0) {\n        if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n          ptimer_measure(local_104);\n          puVar24 = (undefined8 *)0x0;\n          goto LAB_00051748;\n        }\n        puVar24 = (undefined8 *)0x0;\nLAB_00051720:\n        dVar25 = (double)CONCAT44(puVar15,puVar18);\n        if (param_11 != (undefined8 *)0x0) {\n          ptimer_measure(local_104);\n          dVar31 = local_120;\n          if (0 < (int)puVar24) goto LAB_000515b0;\n          goto LAB_00051748;\n        }\n        if (0 < (int)puVar24) goto LAB_000515c4;\n      }\n      else {\n        ptimer_measure(local_104);\n        puVar24 = (undefined8 *)0x0;\nLAB_00051748:\n        local_120 = dVar31;\n        dVar25 = (double)CONCAT44(puVar15,puVar18);\n        if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n          dVar30 = (double)ptimer_read(local_104);\n          puVar21 = PTR_DAT_000b7720;\n          dVar30 = dVar30 - *(double *)(PTR_DAT_000b7720 + -0x2fe0);\n          puVar20 = (undefined8 *)((int)puVar24 + *(int *)(PTR_DAT_000b7720 + -0x2fe4));\n          iVar17 = (uint)(puVar20 < puVar24) +\n                   ((int)puVar24 >> 0x1f) + *(int *)(PTR_DAT_000b7720 + -0x2fe8);\n          *(int *)(PTR_DAT_000b7720 + -0x2fe8) = iVar17;\n          *(undefined8 **)(puVar21 + -0x2fe4) = puVar20;\n          dVar31 = (double)(*(code *)PTR_FUN_000b78f4)(iVar17,puVar20);\n          puVar9 = *(undefined8 **)(PTR_opt_000b746c + 0x15c);\n          dVar27 = (double)(*(code *)PTR_FUN_000b78f4)\n                                     (*(undefined4 *)(PTR_opt_000b746c + 0x158),puVar9);\n          dVar25 = (double)CONCAT44(puVar15,puVar18);\n          if (dVar30 < dVar31 / dVar27) {\n            dVar30 = (dVar31 / dVar27 - dVar30) + *(double *)(PTR_DAT_000b7720 + -0x2fd8);\n            if (dVar30 < dVar32) {\n              if (PTR_opt_000b746c[0x16b] != '\0') {\n                uVar11 = number_to_static_string(iVar17,puVar20);\n                local_120 = (double)((ulonglong)uVar11 << 0x20);\n                dVar25 = dVar30 * *(double *)(puVar2 + -0x15d8);\n                debug_logprintf(PTR_DAT_000b758c + -0x1864);\n                puVar9 = puVar20;\n              }\n              goto LAB_0005175c;\n            }\n            if (PTR_opt_000b746c[0x16b] != '\0') {\n              uVar11 = number_to_static_string(iVar17,puVar20);\n              local_120 = (double)((ulonglong)uVar11 << 0x20);\n              dVar25 = dVar30 * dVar28;\n              debug_logprintf(PTR_DAT_000b758c + -0x183c);\n              puVar9 = puVar20;\n            }\n            dVar31 = (double)ptimer_read(local_104);\n            xsleep(dVar30);\n            dVar27 = (double)ptimer_measure(local_104);\n            dVar30 = dVar30 - (dVar27 - dVar31);\n            if (dVar33 < dVar30) {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x2580);\n            }\n            else if (dVar34 <= dVar30) {\n              *(double *)(PTR_DAT_000b7720 + -0x2fd8) = dVar30;\n            }\n            else {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x15d0);\n            }\n          }\n          puVar21 = PTR_DAT_000b7720;\n          *(undefined4 *)(PTR_DAT_000b7720 + -0x2fe4) = 0;\n          *(undefined4 *)(puVar21 + -0x2fe8) = 0;\n          uVar26 = ptimer_read(local_104);\n          *(undefined8 *)(puVar21 + -0x2fe0) = uVar26;\n        }\n      }\nLAB_0005175c:\n      if (iVar7 != 0) {\n        local_120 = (double)ptimer_read(local_104);\n        iVar17 = (int)puVar24 >> 0x1f;\n        puVar20 = puVar24;\n        progress_update(iVar7);\n        dVar25 = (double)CONCAT44(iVar17,puVar20);\n      }\n    }\n    dVar31 = *(double *)(PTR_opt_000b746c + 0x120);\n    if (uVar5 == 0) {\nLAB_00051864:\n      puVar15 = puVar20;\n      dVar30 = dVar25;\n      goto LAB_00051868;\n    }\nLAB_00051820:\n    if (iVar22 != 0 || local_f0 != (undefined8 *)0x0) {\nLAB_00051830:\n      puVar20 = local_f0;\n      if ((iVar17 <= iVar22) &&\n         ((puVar15 = local_e0, dVar30 = dVar25, iVar17 != iVar22 ||\n          (puVar20 = local_f0, local_e0 <= local_f0)))) goto LAB_00051868;\n      goto LAB_00051864;\n    }\n    iVar13 = fd_read_line(param_2);\n    puVar20 = SUB84(dVar25,0);\n    if (iVar13 == 0) {\nLAB_00050e90:\n      puVar24 = (undefined8 *)0xffffffff;\nLAB_000518d4:\n      bVar1 = (int)puVar24 < 0;\n      dVar30 = dVar25;\nLAB_000518d8:\n      puVar20 = (undefined8 *)0xffffffff;\n      puVar3 = local_120._0_4_;\n      if (!bVar1) {\n        puVar20 = puVar24;\n      }\n    }\n    else {\n      if (param_13 != (undefined8 *)0x0) {\n        uVar8 = (*(code *)PTR_strlen_000b7c94)(iVar13);\n        puVar20 = param_13;\n        (*(code *)PTR_fwrite_000b7c24)(iVar13,1,uVar8);\n      }\n      uVar8 = 0x10;\n      puVar9 = (undefined8 *)auStack_ac;\n      local_f0 = (undefined8 *)(*(code *)PTR_strtol_000b7d3c)(iVar13,puVar9);\n      iVar22 = (int)local_f0 >> 0x1f;\n      (*(code *)PTR_free_000b7d34)(iVar13);\n      dVar25 = (double)CONCAT44(uVar8,puVar20);\n      if (iVar22 < 0) goto LAB_00050e90;\n      if (local_f0 != (undefined8 *)0x0) goto LAB_00051830;\n      iVar22 = fd_read_line(param_2);\n      dVar30 = (double)CONCAT44(uVar8,puVar20);\n      if (iVar22 == 0) {\n        puVar20 = (undefined8 *)0xffffffff;\n      }\n      else {\n        if (param_13 != (undefined8 *)0x0) {\n          uVar8 = (*(code *)PTR_strlen_000b7c94)(iVar22);\n          puVar9 = (undefined8 *)&DAT_00000001;\n          (*(code *)PTR_fwrite_000b7c24)(iVar22,1);\n          puVar20 = param_13;\n        }\n        (*(code *)PTR_free_000b7d34)(iVar22);\n        dVar30 = (double)CONCAT44(uVar8,puVar20);\n        puVar20 = (undefined8 *)0x0;\n      }\n    }\nLAB_00051040:\n    local_120._0_4_ = puVar3;\n    if (iVar7 != 0) {\n      uVar26 = ptimer_read(local_104);\n      uVar19 = (undefined4)uVar26;\n      uVar8 = (undefined4)((ulonglong)uVar26 >> 0x20);\n      progress_finish(iVar7);\n      dVar30 = (double)CONCAT44(uVar8,uVar19);\n    }\n    if (param_11 != (undefined8 *)0x0) goto LAB_00051080;\n  }" { (expression_statement "local_100 = (undefined8 *)0x0;" (assignment_expression "local_100 = (undefined8 *)0x0" identifier = (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_00050b74:\n    if ((param_12 & 2) != 0) {\n      auStack_ac._4_4_ = param_7;\n      local_a4 = param_8;\n    }" statement_identifier : (if_statement "if ((param_12 & 2) != 0) {\n      auStack_ac._4_4_ = param_7;\n      local_a4 = param_8;\n    }" if (parenthesized_expression "((param_12 & 2) != 0)" ( (binary_expression "(param_12 & 2) != 0" (parenthesized_expression "(param_12 & 2)" ( (binary_expression "param_12 & 2" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      auStack_ac._4_4_ = param_7;\n      local_a4 = param_8;\n    }" { (expression_statement "auStack_ac._4_4_ = param_7;" (assignment_expression "auStack_ac._4_4_ = param_7" (field_expression "auStack_ac._4_4_" identifier . field_identifier) = identifier) ;) (expression_statement "local_a4 = param_8;" (assignment_expression "local_a4 = param_8" identifier = identifier) ;) }))) (if_statement "if (*(int *)(PTR_opt_000b746c + 0x10c) == 0) {\n      iVar7 = 0;\n      if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n        local_e4 = 0;\n        goto LAB_00051950;\n      }\n      local_e4 = 0;\nLAB_00051978:\n      if (param_11 != (undefined8 *)0x0) goto LAB_00050c48;\n      local_104 = param_11;\n      local_e0 = (undefined8 *)0x2000;\n    }\n    else {\n      param_4 = param_8;\n      puVar21 = param_7;\n      if ((undefined *)auStack_ac._4_4_ != (undefined *)0x0 || local_a4 != (undefined1 *)0x0) {\n        puVar21 = (undefined *)0x0;\n        param_4 = (undefined1 *)0x0;\n      }\n      if (*(int *)(PTR_opt_000b746c + 0x30) != 0) {\n        iVar6 = (*(code *)PTR_strlen_000b7c94)();\n        param_1 = param_1 + iVar6 + 1;\n      }\n      local_120 = (double)CONCAT44(puVar21 + (uint)(param_4 + (int)param_6 < param_4) + param_5,\n                                   param_4 + (int)param_6);\n      iVar7 = progress_create(param_1);\n      local_e4 = progress_interactive_p(iVar7);\n      if (*(int *)(PTR_opt_000b746c + 0x158) == 0 && *(int *)(PTR_opt_000b746c + 0x15c) == 0) {\n        if (iVar7 == 0) goto LAB_00051978;\n      }\n      else {\nLAB_00051950:\n        puVar2 = PTR_DAT_000b7720;\n        *(undefined4 *)(PTR_DAT_000b7720 + -0x2fe8) = 0;\n        *(undefined4 *)(puVar2 + -0x2fe4) = 0;\n        *(undefined4 *)(puVar2 + -0x2fe0) = 0;\n        *(undefined4 *)(puVar2 + -0x2fdc) = 0;\n        *(undefined4 *)(puVar2 + -0x2fd8) = 0;\n        *(undefined4 *)(puVar2 + -0x2fd4) = 0;\n      }\nLAB_00050c48:\n      local_104 = (undefined8 *)ptimer_new();\n      iVar6 = *(int *)(PTR_opt_000b746c + 0x158);\n      local_e0 = *(undefined8 **)(PTR_opt_000b746c + 0x15c);\n      if (iVar6 == 0 && local_e0 == (undefined8 *)0x0) {\n        local_e0 = (undefined8 *)0x2000;\n      }\n      else if ((0 < iVar6) || ((iVar6 == 0 && ((undefined8 *)0x1fff < local_e0)))) {\n        local_e0 = (undefined8 *)0x2000;\n      }\n    }" if (parenthesized_expression "(*(int *)(PTR_opt_000b746c + 0x10c) == 0)" ( (binary_expression "*(int *)(PTR_opt_000b746c + 0x10c) == 0" (pointer_expression "*(int *)(PTR_opt_000b746c + 0x10c)" * (cast_expression "(int *)(PTR_opt_000b746c + 0x10c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_opt_000b746c + 0x10c)" ( (binary_expression "PTR_opt_000b746c + 0x10c" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      iVar7 = 0;\n      if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n        local_e4 = 0;\n        goto LAB_00051950;\n      }\n      local_e4 = 0;\nLAB_00051978:\n      if (param_11 != (undefined8 *)0x0) goto LAB_00050c48;\n      local_104 = param_11;\n      local_e0 = (undefined8 *)0x2000;\n    }" { (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) (if_statement "if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n        local_e4 = 0;\n        goto LAB_00051950;\n      }" if (parenthesized_expression "(*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0)" ( (binary_expression "*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0" (binary_expression "*(int *)(PTR_opt_000b746c + 0x158) != 0" (pointer_expression "*(int *)(PTR_opt_000b746c + 0x158)" * (cast_expression "(int *)(PTR_opt_000b746c + 0x158)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_opt_000b746c + 0x158)" ( (binary_expression "PTR_opt_000b746c + 0x158" identifier + number_literal) )))) != number_literal) || (binary_expression "*(int *)(PTR_opt_000b746c + 0x15c) != 0" (pointer_expression "*(int *)(PTR_opt_000b746c + 0x15c)" * (cast_expression "(int *)(PTR_opt_000b746c + 0x15c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_opt_000b746c + 0x15c)" ( (binary_expression "PTR_opt_000b746c + 0x15c" identifier + number_literal) )))) != number_literal)) )) (compound_statement "{\n        local_e4 = 0;\n        goto LAB_00051950;\n      }" { (expression_statement "local_e4 = 0;" (assignment_expression "local_e4 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00051950;" goto statement_identifier ;) })) (expression_statement "local_e4 = 0;" (assignment_expression "local_e4 = 0" identifier = number_literal) ;) (labeled_statement "LAB_00051978:\n      if (param_11 != (undefined8 *)0x0) goto LAB_00050c48;" statement_identifier : (if_statement "if (param_11 != (undefined8 *)0x0) goto LAB_00050c48;" if (parenthesized_expression "(param_11 != (undefined8 *)0x0)" ( (binary_expression "param_11 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00050c48;" goto statement_identifier ;))) (expression_statement "local_104 = param_11;" (assignment_expression "local_104 = param_11" identifier = identifier) ;) (expression_statement "local_e0 = (undefined8 *)0x2000;" (assignment_expression "local_e0 = (undefined8 *)0x2000" identifier = (cast_expression "(undefined8 *)0x2000" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n      param_4 = param_8;\n      puVar21 = param_7;\n      if ((undefined *)auStack_ac._4_4_ != (undefined *)0x0 || local_a4 != (undefined1 *)0x0) {\n        puVar21 = (undefined *)0x0;\n        param_4 = (undefined1 *)0x0;\n      }\n      if (*(int *)(PTR_opt_000b746c + 0x30) != 0) {\n        iVar6 = (*(code *)PTR_strlen_000b7c94)();\n        param_1 = param_1 + iVar6 + 1;\n      }\n      local_120 = (double)CONCAT44(puVar21 + (uint)(param_4 + (int)param_6 < param_4) + param_5,\n                                   param_4 + (int)param_6);\n      iVar7 = progress_create(param_1);\n      local_e4 = progress_interactive_p(iVar7);\n      if (*(int *)(PTR_opt_000b746c + 0x158) == 0 && *(int *)(PTR_opt_000b746c + 0x15c) == 0) {\n        if (iVar7 == 0) goto LAB_00051978;\n      }\n      else {\nLAB_00051950:\n        puVar2 = PTR_DAT_000b7720;\n        *(undefined4 *)(PTR_DAT_000b7720 + -0x2fe8) = 0;\n        *(undefined4 *)(puVar2 + -0x2fe4) = 0;\n        *(undefined4 *)(puVar2 + -0x2fe0) = 0;\n        *(undefined4 *)(puVar2 + -0x2fdc) = 0;\n        *(undefined4 *)(puVar2 + -0x2fd8) = 0;\n        *(undefined4 *)(puVar2 + -0x2fd4) = 0;\n      }\nLAB_00050c48:\n      local_104 = (undefined8 *)ptimer_new();\n      iVar6 = *(int *)(PTR_opt_000b746c + 0x158);\n      local_e0 = *(undefined8 **)(PTR_opt_000b746c + 0x15c);\n      if (iVar6 == 0 && local_e0 == (undefined8 *)0x0) {\n        local_e0 = (undefined8 *)0x2000;\n      }\n      else if ((0 < iVar6) || ((iVar6 == 0 && ((undefined8 *)0x1fff < local_e0)))) {\n        local_e0 = (undefined8 *)0x2000;\n      }\n    }" else (compound_statement "{\n      param_4 = param_8;\n      puVar21 = param_7;\n      if ((undefined *)auStack_ac._4_4_ != (undefined *)0x0 || local_a4 != (undefined1 *)0x0) {\n        puVar21 = (undefined *)0x0;\n        param_4 = (undefined1 *)0x0;\n      }\n      if (*(int *)(PTR_opt_000b746c + 0x30) != 0) {\n        iVar6 = (*(code *)PTR_strlen_000b7c94)();\n        param_1 = param_1 + iVar6 + 1;\n      }\n      local_120 = (double)CONCAT44(puVar21 + (uint)(param_4 + (int)param_6 < param_4) + param_5,\n                                   param_4 + (int)param_6);\n      iVar7 = progress_create(param_1);\n      local_e4 = progress_interactive_p(iVar7);\n      if (*(int *)(PTR_opt_000b746c + 0x158) == 0 && *(int *)(PTR_opt_000b746c + 0x15c) == 0) {\n        if (iVar7 == 0) goto LAB_00051978;\n      }\n      else {\nLAB_00051950:\n        puVar2 = PTR_DAT_000b7720;\n        *(undefined4 *)(PTR_DAT_000b7720 + -0x2fe8) = 0;\n        *(undefined4 *)(puVar2 + -0x2fe4) = 0;\n        *(undefined4 *)(puVar2 + -0x2fe0) = 0;\n        *(undefined4 *)(puVar2 + -0x2fdc) = 0;\n        *(undefined4 *)(puVar2 + -0x2fd8) = 0;\n        *(undefined4 *)(puVar2 + -0x2fd4) = 0;\n      }\nLAB_00050c48:\n      local_104 = (undefined8 *)ptimer_new();\n      iVar6 = *(int *)(PTR_opt_000b746c + 0x158);\n      local_e0 = *(undefined8 **)(PTR_opt_000b746c + 0x15c);\n      if (iVar6 == 0 && local_e0 == (undefined8 *)0x0) {\n        local_e0 = (undefined8 *)0x2000;\n      }\n      else if ((0 < iVar6) || ((iVar6 == 0 && ((undefined8 *)0x1fff < local_e0)))) {\n        local_e0 = (undefined8 *)0x2000;\n      }\n    }" { (expression_statement "param_4 = param_8;" (assignment_expression "param_4 = param_8" identifier = identifier) ;) (expression_statement "puVar21 = param_7;" (assignment_expression "puVar21 = param_7" identifier = identifier) ;) (if_statement "if ((undefined *)auStack_ac._4_4_ != (undefined *)0x0 || local_a4 != (undefined1 *)0x0) {\n        puVar21 = (undefined *)0x0;\n        param_4 = (undefined1 *)0x0;\n      }" if (parenthesized_expression "((undefined *)auStack_ac._4_4_ != (undefined *)0x0 || local_a4 != (undefined1 *)0x0)" ( (binary_expression "(undefined *)auStack_ac._4_4_ != (undefined *)0x0 || local_a4 != (undefined1 *)0x0" (binary_expression "(undefined *)auStack_ac._4_4_ != (undefined *)0x0" (cast_expression "(undefined *)auStack_ac._4_4_" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "auStack_ac._4_4_" identifier . field_identifier)) != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) || (binary_expression "local_a4 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n        puVar21 = (undefined *)0x0;\n        param_4 = (undefined1 *)0x0;\n      }" { (expression_statement "puVar21 = (undefined *)0x0;" (assignment_expression "puVar21 = (undefined *)0x0" identifier = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "param_4 = (undefined1 *)0x0;" (assignment_expression "param_4 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (if_statement "if (*(int *)(PTR_opt_000b746c + 0x30) != 0) {\n        iVar6 = (*(code *)PTR_strlen_000b7c94)();\n        param_1 = param_1 + iVar6 + 1;\n      }" if (parenthesized_expression "(*(int *)(PTR_opt_000b746c + 0x30) != 0)" ( (binary_expression "*(int *)(PTR_opt_000b746c + 0x30) != 0" (pointer_expression "*(int *)(PTR_opt_000b746c + 0x30)" * (cast_expression "(int *)(PTR_opt_000b746c + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_opt_000b746c + 0x30)" ( (binary_expression "PTR_opt_000b746c + 0x30" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n        iVar6 = (*(code *)PTR_strlen_000b7c94)();\n        param_1 = param_1 + iVar6 + 1;\n      }" { (expression_statement "iVar6 = (*(code *)PTR_strlen_000b7c94)();" (assignment_expression "iVar6 = (*(code *)PTR_strlen_000b7c94)()" identifier = (call_expression "(*(code *)PTR_strlen_000b7c94)()" (parenthesized_expression "(*(code *)PTR_strlen_000b7c94)" ( (pointer_expression "*(code *)PTR_strlen_000b7c94" * (cast_expression "(code *)PTR_strlen_000b7c94" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "param_1 = param_1 + iVar6 + 1;" (assignment_expression "param_1 = param_1 + iVar6 + 1" identifier = (binary_expression "param_1 + iVar6 + 1" (binary_expression "param_1 + iVar6" identifier + identifier) + number_literal)) ;) })) (expression_statement "local_120 = (double)CONCAT44(puVar21 + (uint)(param_4 + (int)param_6 < param_4) + param_5,\n                                   param_4 + (int)param_6);" (assignment_expression "local_120 = (double)CONCAT44(puVar21 + (uint)(param_4 + (int)param_6 < param_4) + param_5,\n                                   param_4 + (int)param_6)" identifier = (cast_expression "(double)CONCAT44(puVar21 + (uint)(param_4 + (int)param_6 < param_4) + param_5,\n                                   param_4 + (int)param_6)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(puVar21 + (uint)(param_4 + (int)param_6 < param_4) + param_5,\n                                   param_4 + (int)param_6)" identifier (argument_list "(puVar21 + (uint)(param_4 + (int)param_6 < param_4) + param_5,\n                                   param_4 + (int)param_6)" ( (binary_expression "puVar21 + (uint)(param_4 + (int)param_6 < param_4) + param_5" (binary_expression "puVar21 + (uint)(param_4 + (int)param_6 < param_4)" identifier + (call_expression "(uint)(param_4 + (int)param_6 < param_4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_4 + (int)param_6 < param_4)" ( (binary_expression "param_4 + (int)param_6 < param_4" (binary_expression "param_4 + (int)param_6" identifier + (cast_expression "(int)param_6" ( (type_descriptor "int" primitive_type) ) identifier)) < identifier) )))) + identifier) , (binary_expression "param_4 + (int)param_6" identifier + (cast_expression "(int)param_6" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) ;) (expression_statement "iVar7 = progress_create(param_1);" (assignment_expression "iVar7 = progress_create(param_1)" identifier = (call_expression "progress_create(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "local_e4 = progress_interactive_p(iVar7);" (assignment_expression "local_e4 = progress_interactive_p(iVar7)" identifier = (call_expression "progress_interactive_p(iVar7)" identifier (argument_list "(iVar7)" ( identifier )))) ;) (if_statement "if (*(int *)(PTR_opt_000b746c + 0x158) == 0 && *(int *)(PTR_opt_000b746c + 0x15c) == 0) {\n        if (iVar7 == 0) goto LAB_00051978;\n      }\n      else {\nLAB_00051950:\n        puVar2 = PTR_DAT_000b7720;\n        *(undefined4 *)(PTR_DAT_000b7720 + -0x2fe8) = 0;\n        *(undefined4 *)(puVar2 + -0x2fe4) = 0;\n        *(undefined4 *)(puVar2 + -0x2fe0) = 0;\n        *(undefined4 *)(puVar2 + -0x2fdc) = 0;\n        *(undefined4 *)(puVar2 + -0x2fd8) = 0;\n        *(undefined4 *)(puVar2 + -0x2fd4) = 0;\n      }" if (parenthesized_expression "(*(int *)(PTR_opt_000b746c + 0x158) == 0 && *(int *)(PTR_opt_000b746c + 0x15c) == 0)" ( (binary_expression "*(int *)(PTR_opt_000b746c + 0x158) == 0 && *(int *)(PTR_opt_000b746c + 0x15c) == 0" (binary_expression "*(int *)(PTR_opt_000b746c + 0x158) == 0" (pointer_expression "*(int *)(PTR_opt_000b746c + 0x158)" * (cast_expression "(int *)(PTR_opt_000b746c + 0x158)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_opt_000b746c + 0x158)" ( (binary_expression "PTR_opt_000b746c + 0x158" identifier + number_literal) )))) == number_literal) && (binary_expression "*(int *)(PTR_opt_000b746c + 0x15c) == 0" (pointer_expression "*(int *)(PTR_opt_000b746c + 0x15c)" * (cast_expression "(int *)(PTR_opt_000b746c + 0x15c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_opt_000b746c + 0x15c)" ( (binary_expression "PTR_opt_000b746c + 0x15c" identifier + number_literal) )))) == number_literal)) )) (compound_statement "{\n        if (iVar7 == 0) goto LAB_00051978;\n      }" { (if_statement "if (iVar7 == 0) goto LAB_00051978;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00051978;" goto statement_identifier ;)) }) (else_clause "else {\nLAB_00051950:\n        puVar2 = PTR_DAT_000b7720;\n        *(undefined4 *)(PTR_DAT_000b7720 + -0x2fe8) = 0;\n        *(undefined4 *)(puVar2 + -0x2fe4) = 0;\n        *(undefined4 *)(puVar2 + -0x2fe0) = 0;\n        *(undefined4 *)(puVar2 + -0x2fdc) = 0;\n        *(undefined4 *)(puVar2 + -0x2fd8) = 0;\n        *(undefined4 *)(puVar2 + -0x2fd4) = 0;\n      }" else (compound_statement "{\nLAB_00051950:\n        puVar2 = PTR_DAT_000b7720;\n        *(undefined4 *)(PTR_DAT_000b7720 + -0x2fe8) = 0;\n        *(undefined4 *)(puVar2 + -0x2fe4) = 0;\n        *(undefined4 *)(puVar2 + -0x2fe0) = 0;\n        *(undefined4 *)(puVar2 + -0x2fdc) = 0;\n        *(undefined4 *)(puVar2 + -0x2fd8) = 0;\n        *(undefined4 *)(puVar2 + -0x2fd4) = 0;\n      }" { (labeled_statement "LAB_00051950:\n        puVar2 = PTR_DAT_000b7720;" statement_identifier : (expression_statement "puVar2 = PTR_DAT_000b7720;" (assignment_expression "puVar2 = PTR_DAT_000b7720" identifier = identifier) ;)) (expression_statement "*(undefined4 *)(PTR_DAT_000b7720 + -0x2fe8) = 0;" (assignment_expression "*(undefined4 *)(PTR_DAT_000b7720 + -0x2fe8) = 0" (pointer_expression "*(undefined4 *)(PTR_DAT_000b7720 + -0x2fe8)" * (cast_expression "(undefined4 *)(PTR_DAT_000b7720 + -0x2fe8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000b7720 + -0x2fe8)" ( (binary_expression "PTR_DAT_000b7720 + -0x2fe8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar2 + -0x2fe4) = 0;" (assignment_expression "*(undefined4 *)(puVar2 + -0x2fe4) = 0" (pointer_expression "*(undefined4 *)(puVar2 + -0x2fe4)" * (cast_expression "(undefined4 *)(puVar2 + -0x2fe4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + -0x2fe4)" ( (binary_expression "puVar2 + -0x2fe4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar2 + -0x2fe0) = 0;" (assignment_expression "*(undefined4 *)(puVar2 + -0x2fe0) = 0" (pointer_expression "*(undefined4 *)(puVar2 + -0x2fe0)" * (cast_expression "(undefined4 *)(puVar2 + -0x2fe0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + -0x2fe0)" ( (binary_expression "puVar2 + -0x2fe0" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar2 + -0x2fdc) = 0;" (assignment_expression "*(undefined4 *)(puVar2 + -0x2fdc) = 0" (pointer_expression "*(undefined4 *)(puVar2 + -0x2fdc)" * (cast_expression "(undefined4 *)(puVar2 + -0x2fdc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + -0x2fdc)" ( (binary_expression "puVar2 + -0x2fdc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar2 + -0x2fd8) = 0;" (assignment_expression "*(undefined4 *)(puVar2 + -0x2fd8) = 0" (pointer_expression "*(undefined4 *)(puVar2 + -0x2fd8)" * (cast_expression "(undefined4 *)(puVar2 + -0x2fd8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + -0x2fd8)" ( (binary_expression "puVar2 + -0x2fd8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar2 + -0x2fd4) = 0;" (assignment_expression "*(undefined4 *)(puVar2 + -0x2fd4) = 0" (pointer_expression "*(undefined4 *)(puVar2 + -0x2fd4)" * (cast_expression "(undefined4 *)(puVar2 + -0x2fd4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + -0x2fd4)" ( (binary_expression "puVar2 + -0x2fd4" identifier + number_literal) )))) = number_literal) ;) }))) (labeled_statement "LAB_00050c48:\n      local_104 = (undefined8 *)ptimer_new();" statement_identifier : (expression_statement "local_104 = (undefined8 *)ptimer_new();" (assignment_expression "local_104 = (undefined8 *)ptimer_new()" identifier = (cast_expression "(undefined8 *)ptimer_new()" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "ptimer_new()" identifier (argument_list "()" ( ))))) ;)) (expression_statement "iVar6 = *(int *)(PTR_opt_000b746c + 0x158);" (assignment_expression "iVar6 = *(int *)(PTR_opt_000b746c + 0x158)" identifier = (pointer_expression "*(int *)(PTR_opt_000b746c + 0x158)" * (cast_expression "(int *)(PTR_opt_000b746c + 0x158)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_opt_000b746c + 0x158)" ( (binary_expression "PTR_opt_000b746c + 0x158" identifier + number_literal) ))))) ;) (expression_statement "local_e0 = *(undefined8 **)(PTR_opt_000b746c + 0x15c);" (assignment_expression "local_e0 = *(undefined8 **)(PTR_opt_000b746c + 0x15c)" identifier = (pointer_expression "*(undefined8 **)(PTR_opt_000b746c + 0x15c)" * (cast_expression "(undefined8 **)(PTR_opt_000b746c + 0x15c)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_opt_000b746c + 0x15c)" ( (binary_expression "PTR_opt_000b746c + 0x15c" identifier + number_literal) ))))) ;) (if_statement "if (iVar6 == 0 && local_e0 == (undefined8 *)0x0) {\n        local_e0 = (undefined8 *)0x2000;\n      }\n      else if ((0 < iVar6) || ((iVar6 == 0 && ((undefined8 *)0x1fff < local_e0)))) {\n        local_e0 = (undefined8 *)0x2000;\n      }" if (parenthesized_expression "(iVar6 == 0 && local_e0 == (undefined8 *)0x0)" ( (binary_expression "iVar6 == 0 && local_e0 == (undefined8 *)0x0" (binary_expression "iVar6 == 0" identifier == number_literal) && (binary_expression "local_e0 == (undefined8 *)0x0" identifier == (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n        local_e0 = (undefined8 *)0x2000;\n      }" { (expression_statement "local_e0 = (undefined8 *)0x2000;" (assignment_expression "local_e0 = (undefined8 *)0x2000" identifier = (cast_expression "(undefined8 *)0x2000" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else if ((0 < iVar6) || ((iVar6 == 0 && ((undefined8 *)0x1fff < local_e0)))) {\n        local_e0 = (undefined8 *)0x2000;\n      }" else (if_statement "if ((0 < iVar6) || ((iVar6 == 0 && ((undefined8 *)0x1fff < local_e0)))) {\n        local_e0 = (undefined8 *)0x2000;\n      }" if (parenthesized_expression "((0 < iVar6) || ((iVar6 == 0 && ((undefined8 *)0x1fff < local_e0))))" ( (binary_expression "(0 < iVar6) || ((iVar6 == 0 && ((undefined8 *)0x1fff < local_e0)))" (parenthesized_expression "(0 < iVar6)" ( (binary_expression "0 < iVar6" number_literal < identifier) )) || (parenthesized_expression "((iVar6 == 0 && ((undefined8 *)0x1fff < local_e0)))" ( (parenthesized_expression "(iVar6 == 0 && ((undefined8 *)0x1fff < local_e0))" ( (binary_expression "iVar6 == 0 && ((undefined8 *)0x1fff < local_e0)" (binary_expression "iVar6 == 0" identifier == number_literal) && (parenthesized_expression "((undefined8 *)0x1fff < local_e0)" ( (binary_expression "(undefined8 *)0x1fff < local_e0" (cast_expression "(undefined8 *)0x1fff" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < identifier) ))) )) ))) )) (compound_statement "{\n        local_e0 = (undefined8 *)0x2000;\n      }" { (expression_statement "local_e0 = (undefined8 *)0x2000;" (assignment_expression "local_e0 = (undefined8 *)0x2000" identifier = (cast_expression "(undefined8 *)0x2000" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })))) }))) (expression_statement "puVar2 = PTR_DAT_000b758c;" (assignment_expression "puVar2 = PTR_DAT_000b758c" identifier = identifier) ;) (expression_statement "dVar25 = (double)CONCAT44(puVar21,param_4);" (assignment_expression "dVar25 = (double)CONCAT44(puVar21,param_4)" identifier = (cast_expression "(double)CONCAT44(puVar21,param_4)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(puVar21,param_4)" identifier (argument_list "(puVar21,param_4)" ( identifier , identifier ))))) ;) (expression_statement "iVar22 = 0;" (assignment_expression "iVar22 = 0" identifier = number_literal) ;) (expression_statement "local_f0 = (undefined8 *)0x0;" (assignment_expression "local_f0 = (undefined8 *)0x0" identifier = (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) (expression_statement "local_fc = (undefined8 *)0x0;" (assignment_expression "local_fc = (undefined8 *)0x0" identifier = (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "dVar29 = 0.0;" (assignment_expression "dVar29 = 0.0" identifier = number_literal) ;) (expression_statement "puVar24 = (undefined8 *)0x0;" (assignment_expression "puVar24 = (undefined8 *)0x0" identifier = (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "dVar32 = *(double *)(PTR_DAT_000b758c + -0x2340);" (assignment_expression "dVar32 = *(double *)(PTR_DAT_000b758c + -0x2340)" identifier = (pointer_expression "*(double *)(PTR_DAT_000b758c + -0x2340)" * (cast_expression "(double *)(PTR_DAT_000b758c + -0x2340)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000b758c + -0x2340)" ( (binary_expression "PTR_DAT_000b758c + -0x2340" identifier + number_literal) ))))) ;) (expression_statement "dVar33 = *(double *)(PTR_DAT_000b758c + -0x2580);" (assignment_expression "dVar33 = *(double *)(PTR_DAT_000b758c + -0x2580)" identifier = (pointer_expression "*(double *)(PTR_DAT_000b758c + -0x2580)" * (cast_expression "(double *)(PTR_DAT_000b758c + -0x2580)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000b758c + -0x2580)" ( (binary_expression "PTR_DAT_000b758c + -0x2580" identifier + number_literal) ))))) ;) (expression_statement "dVar34 = *(double *)(PTR_DAT_000b758c + -0x15d0);" (assignment_expression "dVar34 = *(double *)(PTR_DAT_000b758c + -0x15d0)" identifier = (pointer_expression "*(double *)(PTR_DAT_000b758c + -0x15d0)" * (cast_expression "(double *)(PTR_DAT_000b758c + -0x15d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000b758c + -0x15d0)" ( (binary_expression "PTR_DAT_000b758c + -0x15d0" identifier + number_literal) ))))) ;) (expression_statement "dVar28 = *(double *)(PTR_DAT_000b758c + -0x15d8);" (assignment_expression "dVar28 = *(double *)(PTR_DAT_000b758c + -0x15d8)" identifier = (pointer_expression "*(double *)(PTR_DAT_000b758c + -0x15d8)" * (cast_expression "(double *)(PTR_DAT_000b758c + -0x15d8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000b758c + -0x15d8)" ( (binary_expression "PTR_DAT_000b758c + -0x15d8" identifier + number_literal) ))))) ;) (while_statement "while( true ) {\n      uVar8 = SUB84(dVar25,0);\n      iVar17 = (int)local_e0 >> 0x1f;\n      puVar20 = local_e0;\n      puVar3 = local_120._0_4_;\n      if ((param_12 & 1) == 0) break;\n      if (param_5 <= iVar6) {\n        if (param_5 != iVar6) goto LAB_000518d4;\n        if (local_fc < param_6) goto LAB_000517b0;\n        bVar1 = (int)puVar24 < 0;\n        dVar30 = dVar25;\n        goto LAB_000518d8;\n      }\nLAB_000517b0:\n      dVar31 = *(double *)(PTR_opt_000b746c + 0x120);\n      if (uVar5 != 0) goto LAB_00051820;\n      puVar15 = (undefined8 *)((int)param_6 - (int)local_fc);\n      iVar13 = (param_5 - iVar6) - (uint)(param_6 < puVar15);\n      dVar25 = (double)CONCAT44(iVar13,uVar8);\n      puVar9 = local_e0;\n      if ((iVar17 < iVar13) ||\n         ((dVar30 = (double)CONCAT44(iVar13,uVar8), iVar13 == iVar17 &&\n          (dVar30 = (double)CONCAT44(iVar13,uVar8), local_e0 < puVar15)))) goto LAB_00051864;\nLAB_00051868:\n      puVar18 = SUB84(dVar30,0);\n      if (local_e4 == 0) {\n        puVar9 = puVar4;\n        puVar24 = (undefined8 *)(*(code *)PTR_fd_read_000b7770)(param_2,puVar4);\n        local_120 = dVar31;\nLAB_000516fc:\n        bVar1 = (int)puVar24 < 0;\n        dVar30 = (double)CONCAT44(puVar15,puVar18);\n        if ((int)puVar24 < 1) goto LAB_000518d8;\n        if (iVar7 == 0) {\n          if (*(int *)(PTR_opt_000b746c + 0x158) == 0 && *(int *)(PTR_opt_000b746c + 0x15c) == 0)\n          goto LAB_00051720;\n          ptimer_measure(local_104);\n        }\n        else {\n          ptimer_measure(local_104);\n        }\nLAB_000515b0:\n        dVar29 = (double)ptimer_read(local_104);\nLAB_000515c4:\n        puVar12 = (undefined8 *)((int)local_fc + (int)puVar24);\n        iVar6 = (uint)(puVar12 < local_fc) + iVar6 + ((int)puVar24 >> 0x1f);\n        puVar9 = param_13;\n        puVar15 = puVar4;\n        puVar18 = puVar24;\n        local_fc = puVar12;\n        if (local_100 == (undefined8 *)0x0) {\n          local_120 = (double)(ZEXT48(auStack_ac + 4) << 0x20);\n          puVar20 = (undefined8 *)FUN_000503a4(param_3,param_13);\n          dVar30 = (double)CONCAT44(puVar15,puVar18);\n          puVar3 = (undefined8 *)(auStack_ac + 4);\n          if ((int)puVar20 < 0) goto LAB_00051040;\n        }\n        else {\n          local_120 = 0.0;\n          local_120._0_4_ = (undefined8 *)0x0;\n          puVar20 = (undefined8 *)FUN_000503a4(0,param_13);\n          dVar30 = (double)CONCAT44(puVar15,puVar18);\n          puVar3 = local_120._0_4_;\n          if ((int)puVar20 < 0) goto LAB_00051040;\n          puVar21 = PTR_DAT_000b758c + -0x1898;\n          pcVar23 = (code *)(PTR_LAB_000b78e4 + 0x3a4);\n          local_94 = puVar4;\n          local_90 = puVar24;\n          do {\n            local_84 = 0x8000;\n            local_88 = local_100;\n            puVar9 = (undefined8 *)0x0;\n            iVar17 = (*(code *)PTR_inflate_000b7d40)(&local_94,0);\n            puVar3 = local_120._0_4_;\n            if (iVar17 == -3) {\nLAB_000511f4:\n              puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n              dVar30 = (double)CONCAT44(puVar15,puVar18);\n              *puVar10 = 0x16;\n              puVar20 = (undefined8 *)0xffffffff;\n              goto LAB_00051040;\n            }\n            if (iVar17 < -2) {\n              if (iVar17 == -4) {\n                puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n                dVar30 = (double)CONCAT44(puVar15,puVar18);\n                *puVar10 = 0xc;\n                puVar20 = (undefined8 *)0xffffffff;\n                goto LAB_00051040;\n              }\n            }\n            else if (iVar17 == 1) {\n              if (((param_12 & 1) != 0) &&\n                 (((param_5 != iVar6 || (param_6 != puVar12)) && (PTR_opt_000b746c[0x16b] != '\0')))\n                 ) {\n                debug_logprintf(puVar21);\n              }\n            }\n            else if (iVar17 == 2) goto LAB_000511f4;\n            local_120 = (double)(ZEXT48(auStack_ac + 4) << 0x20);\n            puVar18 = (undefined8 *)(0x8000 - local_84);\n            puVar9 = (undefined8 *)0x0;\n            puVar15 = local_100;\n            puVar20 = (undefined8 *)(*pcVar23)(param_3,0);\n            dVar30 = (double)CONCAT44(puVar15,puVar18);\n            puVar3 = (undefined8 *)(auStack_ac + 4);\n            if ((int)puVar20 < 0) goto LAB_00051040;\n          } while (local_84 == 0);\n        }\n        dVar31 = local_120;\n        if (uVar5 != 0) {\n          puVar20 = (undefined8 *)((int)local_f0 - (int)puVar24);\n          iVar22 = (iVar22 - ((int)puVar24 >> 0x1f)) - (uint)(local_f0 < puVar20);\n          local_f0 = puVar20;\n          if (iVar22 == 0 && puVar20 == (undefined8 *)0x0) {\n            iVar17 = fd_read_line(param_2);\n            dVar25 = (double)CONCAT44(puVar15,puVar18);\n            if (iVar17 == 0) {\n              puVar24 = (undefined8 *)0xffffffff;\n              goto LAB_000518d4;\n            }\n            if (param_13 != (undefined8 *)0x0) {\n              puVar15 = (undefined8 *)(*(code *)PTR_strlen_000b7c94)(iVar17);\n              puVar9 = (undefined8 *)&DAT_00000001;\n              puVar18 = param_13;\n              (*(code *)PTR_fwrite_000b7c24)(iVar17,1);\n            }\n            (*(code *)PTR_free_000b7d34)(iVar17);\n          }\n        }\n        goto LAB_00051748;\n      }\n      if (*(double *)(PTR_opt_000b746c + 0x120) == 0.0) {\n        dVar31 = *(double *)(PTR_DAT_000b758c + -0x15e0);\n      }\n      else {\n        dVar25 = (double)ptimer_read(local_104);\n        puVar18 = SUB84(dVar30,0);\n        if (*(double *)(PTR_opt_000b746c + 0x120) <\n            (dVar25 - dVar29) + *(double *)(PTR_DAT_000b758c + -0x15e0)) {\n          dVar31 = *(double *)(PTR_opt_000b746c + 0x120) - (dVar25 - dVar29);\n          if (dVar31 < 0.0) {\n            puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n            *puVar10 = 0x91;\n            puVar20 = (undefined8 *)0xffffffff;\n            goto LAB_00051040;\n          }\n        }\n        else {\n          dVar31 = *(double *)(PTR_DAT_000b758c + -0x15e0);\n        }\n      }\n      puVar9 = puVar4;\n      puVar24 = (undefined8 *)(*(code *)PTR_fd_read_000b7770)(param_2,puVar4);\n      local_120 = dVar31;\n      if (-1 < (int)puVar24) goto LAB_000516fc;\n      piVar14 = (int *)(*(code *)PTR___errno_location_000b7eb8)();\n      dVar25 = (double)CONCAT44(puVar15,puVar18);\n      local_120._0_4_ = (undefined8 *)((ulonglong)dVar31 >> 0x20);\n      if (*piVar14 != 0x91) goto LAB_000518d4;\n      if (iVar7 == 0) {\n        if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n          ptimer_measure(local_104);\n          puVar24 = (undefined8 *)0x0;\n          goto LAB_00051748;\n        }\n        puVar24 = (undefined8 *)0x0;\nLAB_00051720:\n        dVar25 = (double)CONCAT44(puVar15,puVar18);\n        if (param_11 != (undefined8 *)0x0) {\n          ptimer_measure(local_104);\n          dVar31 = local_120;\n          if (0 < (int)puVar24) goto LAB_000515b0;\n          goto LAB_00051748;\n        }\n        if (0 < (int)puVar24) goto LAB_000515c4;\n      }\n      else {\n        ptimer_measure(local_104);\n        puVar24 = (undefined8 *)0x0;\nLAB_00051748:\n        local_120 = dVar31;\n        dVar25 = (double)CONCAT44(puVar15,puVar18);\n        if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n          dVar30 = (double)ptimer_read(local_104);\n          puVar21 = PTR_DAT_000b7720;\n          dVar30 = dVar30 - *(double *)(PTR_DAT_000b7720 + -0x2fe0);\n          puVar20 = (undefined8 *)((int)puVar24 + *(int *)(PTR_DAT_000b7720 + -0x2fe4));\n          iVar17 = (uint)(puVar20 < puVar24) +\n                   ((int)puVar24 >> 0x1f) + *(int *)(PTR_DAT_000b7720 + -0x2fe8);\n          *(int *)(PTR_DAT_000b7720 + -0x2fe8) = iVar17;\n          *(undefined8 **)(puVar21 + -0x2fe4) = puVar20;\n          dVar31 = (double)(*(code *)PTR_FUN_000b78f4)(iVar17,puVar20);\n          puVar9 = *(undefined8 **)(PTR_opt_000b746c + 0x15c);\n          dVar27 = (double)(*(code *)PTR_FUN_000b78f4)\n                                     (*(undefined4 *)(PTR_opt_000b746c + 0x158),puVar9);\n          dVar25 = (double)CONCAT44(puVar15,puVar18);\n          if (dVar30 < dVar31 / dVar27) {\n            dVar30 = (dVar31 / dVar27 - dVar30) + *(double *)(PTR_DAT_000b7720 + -0x2fd8);\n            if (dVar30 < dVar32) {\n              if (PTR_opt_000b746c[0x16b] != '\0') {\n                uVar11 = number_to_static_string(iVar17,puVar20);\n                local_120 = (double)((ulonglong)uVar11 << 0x20);\n                dVar25 = dVar30 * *(double *)(puVar2 + -0x15d8);\n                debug_logprintf(PTR_DAT_000b758c + -0x1864);\n                puVar9 = puVar20;\n              }\n              goto LAB_0005175c;\n            }\n            if (PTR_opt_000b746c[0x16b] != '\0') {\n              uVar11 = number_to_static_string(iVar17,puVar20);\n              local_120 = (double)((ulonglong)uVar11 << 0x20);\n              dVar25 = dVar30 * dVar28;\n              debug_logprintf(PTR_DAT_000b758c + -0x183c);\n              puVar9 = puVar20;\n            }\n            dVar31 = (double)ptimer_read(local_104);\n            xsleep(dVar30);\n            dVar27 = (double)ptimer_measure(local_104);\n            dVar30 = dVar30 - (dVar27 - dVar31);\n            if (dVar33 < dVar30) {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x2580);\n            }\n            else if (dVar34 <= dVar30) {\n              *(double *)(PTR_DAT_000b7720 + -0x2fd8) = dVar30;\n            }\n            else {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x15d0);\n            }\n          }\n          puVar21 = PTR_DAT_000b7720;\n          *(undefined4 *)(PTR_DAT_000b7720 + -0x2fe4) = 0;\n          *(undefined4 *)(puVar21 + -0x2fe8) = 0;\n          uVar26 = ptimer_read(local_104);\n          *(undefined8 *)(puVar21 + -0x2fe0) = uVar26;\n        }\n      }\nLAB_0005175c:\n      if (iVar7 != 0) {\n        local_120 = (double)ptimer_read(local_104);\n        iVar17 = (int)puVar24 >> 0x1f;\n        puVar20 = puVar24;\n        progress_update(iVar7);\n        dVar25 = (double)CONCAT44(iVar17,puVar20);\n      }\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      uVar8 = SUB84(dVar25,0);\n      iVar17 = (int)local_e0 >> 0x1f;\n      puVar20 = local_e0;\n      puVar3 = local_120._0_4_;\n      if ((param_12 & 1) == 0) break;\n      if (param_5 <= iVar6) {\n        if (param_5 != iVar6) goto LAB_000518d4;\n        if (local_fc < param_6) goto LAB_000517b0;\n        bVar1 = (int)puVar24 < 0;\n        dVar30 = dVar25;\n        goto LAB_000518d8;\n      }\nLAB_000517b0:\n      dVar31 = *(double *)(PTR_opt_000b746c + 0x120);\n      if (uVar5 != 0) goto LAB_00051820;\n      puVar15 = (undefined8 *)((int)param_6 - (int)local_fc);\n      iVar13 = (param_5 - iVar6) - (uint)(param_6 < puVar15);\n      dVar25 = (double)CONCAT44(iVar13,uVar8);\n      puVar9 = local_e0;\n      if ((iVar17 < iVar13) ||\n         ((dVar30 = (double)CONCAT44(iVar13,uVar8), iVar13 == iVar17 &&\n          (dVar30 = (double)CONCAT44(iVar13,uVar8), local_e0 < puVar15)))) goto LAB_00051864;\nLAB_00051868:\n      puVar18 = SUB84(dVar30,0);\n      if (local_e4 == 0) {\n        puVar9 = puVar4;\n        puVar24 = (undefined8 *)(*(code *)PTR_fd_read_000b7770)(param_2,puVar4);\n        local_120 = dVar31;\nLAB_000516fc:\n        bVar1 = (int)puVar24 < 0;\n        dVar30 = (double)CONCAT44(puVar15,puVar18);\n        if ((int)puVar24 < 1) goto LAB_000518d8;\n        if (iVar7 == 0) {\n          if (*(int *)(PTR_opt_000b746c + 0x158) == 0 && *(int *)(PTR_opt_000b746c + 0x15c) == 0)\n          goto LAB_00051720;\n          ptimer_measure(local_104);\n        }\n        else {\n          ptimer_measure(local_104);\n        }\nLAB_000515b0:\n        dVar29 = (double)ptimer_read(local_104);\nLAB_000515c4:\n        puVar12 = (undefined8 *)((int)local_fc + (int)puVar24);\n        iVar6 = (uint)(puVar12 < local_fc) + iVar6 + ((int)puVar24 >> 0x1f);\n        puVar9 = param_13;\n        puVar15 = puVar4;\n        puVar18 = puVar24;\n        local_fc = puVar12;\n        if (local_100 == (undefined8 *)0x0) {\n          local_120 = (double)(ZEXT48(auStack_ac + 4) << 0x20);\n          puVar20 = (undefined8 *)FUN_000503a4(param_3,param_13);\n          dVar30 = (double)CONCAT44(puVar15,puVar18);\n          puVar3 = (undefined8 *)(auStack_ac + 4);\n          if ((int)puVar20 < 0) goto LAB_00051040;\n        }\n        else {\n          local_120 = 0.0;\n          local_120._0_4_ = (undefined8 *)0x0;\n          puVar20 = (undefined8 *)FUN_000503a4(0,param_13);\n          dVar30 = (double)CONCAT44(puVar15,puVar18);\n          puVar3 = local_120._0_4_;\n          if ((int)puVar20 < 0) goto LAB_00051040;\n          puVar21 = PTR_DAT_000b758c + -0x1898;\n          pcVar23 = (code *)(PTR_LAB_000b78e4 + 0x3a4);\n          local_94 = puVar4;\n          local_90 = puVar24;\n          do {\n            local_84 = 0x8000;\n            local_88 = local_100;\n            puVar9 = (undefined8 *)0x0;\n            iVar17 = (*(code *)PTR_inflate_000b7d40)(&local_94,0);\n            puVar3 = local_120._0_4_;\n            if (iVar17 == -3) {\nLAB_000511f4:\n              puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n              dVar30 = (double)CONCAT44(puVar15,puVar18);\n              *puVar10 = 0x16;\n              puVar20 = (undefined8 *)0xffffffff;\n              goto LAB_00051040;\n            }\n            if (iVar17 < -2) {\n              if (iVar17 == -4) {\n                puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n                dVar30 = (double)CONCAT44(puVar15,puVar18);\n                *puVar10 = 0xc;\n                puVar20 = (undefined8 *)0xffffffff;\n                goto LAB_00051040;\n              }\n            }\n            else if (iVar17 == 1) {\n              if (((param_12 & 1) != 0) &&\n                 (((param_5 != iVar6 || (param_6 != puVar12)) && (PTR_opt_000b746c[0x16b] != '\0')))\n                 ) {\n                debug_logprintf(puVar21);\n              }\n            }\n            else if (iVar17 == 2) goto LAB_000511f4;\n            local_120 = (double)(ZEXT48(auStack_ac + 4) << 0x20);\n            puVar18 = (undefined8 *)(0x8000 - local_84);\n            puVar9 = (undefined8 *)0x0;\n            puVar15 = local_100;\n            puVar20 = (undefined8 *)(*pcVar23)(param_3,0);\n            dVar30 = (double)CONCAT44(puVar15,puVar18);\n            puVar3 = (undefined8 *)(auStack_ac + 4);\n            if ((int)puVar20 < 0) goto LAB_00051040;\n          } while (local_84 == 0);\n        }\n        dVar31 = local_120;\n        if (uVar5 != 0) {\n          puVar20 = (undefined8 *)((int)local_f0 - (int)puVar24);\n          iVar22 = (iVar22 - ((int)puVar24 >> 0x1f)) - (uint)(local_f0 < puVar20);\n          local_f0 = puVar20;\n          if (iVar22 == 0 && puVar20 == (undefined8 *)0x0) {\n            iVar17 = fd_read_line(param_2);\n            dVar25 = (double)CONCAT44(puVar15,puVar18);\n            if (iVar17 == 0) {\n              puVar24 = (undefined8 *)0xffffffff;\n              goto LAB_000518d4;\n            }\n            if (param_13 != (undefined8 *)0x0) {\n              puVar15 = (undefined8 *)(*(code *)PTR_strlen_000b7c94)(iVar17);\n              puVar9 = (undefined8 *)&DAT_00000001;\n              puVar18 = param_13;\n              (*(code *)PTR_fwrite_000b7c24)(iVar17,1);\n            }\n            (*(code *)PTR_free_000b7d34)(iVar17);\n          }\n        }\n        goto LAB_00051748;\n      }\n      if (*(double *)(PTR_opt_000b746c + 0x120) == 0.0) {\n        dVar31 = *(double *)(PTR_DAT_000b758c + -0x15e0);\n      }\n      else {\n        dVar25 = (double)ptimer_read(local_104);\n        puVar18 = SUB84(dVar30,0);\n        if (*(double *)(PTR_opt_000b746c + 0x120) <\n            (dVar25 - dVar29) + *(double *)(PTR_DAT_000b758c + -0x15e0)) {\n          dVar31 = *(double *)(PTR_opt_000b746c + 0x120) - (dVar25 - dVar29);\n          if (dVar31 < 0.0) {\n            puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n            *puVar10 = 0x91;\n            puVar20 = (undefined8 *)0xffffffff;\n            goto LAB_00051040;\n          }\n        }\n        else {\n          dVar31 = *(double *)(PTR_DAT_000b758c + -0x15e0);\n        }\n      }\n      puVar9 = puVar4;\n      puVar24 = (undefined8 *)(*(code *)PTR_fd_read_000b7770)(param_2,puVar4);\n      local_120 = dVar31;\n      if (-1 < (int)puVar24) goto LAB_000516fc;\n      piVar14 = (int *)(*(code *)PTR___errno_location_000b7eb8)();\n      dVar25 = (double)CONCAT44(puVar15,puVar18);\n      local_120._0_4_ = (undefined8 *)((ulonglong)dVar31 >> 0x20);\n      if (*piVar14 != 0x91) goto LAB_000518d4;\n      if (iVar7 == 0) {\n        if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n          ptimer_measure(local_104);\n          puVar24 = (undefined8 *)0x0;\n          goto LAB_00051748;\n        }\n        puVar24 = (undefined8 *)0x0;\nLAB_00051720:\n        dVar25 = (double)CONCAT44(puVar15,puVar18);\n        if (param_11 != (undefined8 *)0x0) {\n          ptimer_measure(local_104);\n          dVar31 = local_120;\n          if (0 < (int)puVar24) goto LAB_000515b0;\n          goto LAB_00051748;\n        }\n        if (0 < (int)puVar24) goto LAB_000515c4;\n      }\n      else {\n        ptimer_measure(local_104);\n        puVar24 = (undefined8 *)0x0;\nLAB_00051748:\n        local_120 = dVar31;\n        dVar25 = (double)CONCAT44(puVar15,puVar18);\n        if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n          dVar30 = (double)ptimer_read(local_104);\n          puVar21 = PTR_DAT_000b7720;\n          dVar30 = dVar30 - *(double *)(PTR_DAT_000b7720 + -0x2fe0);\n          puVar20 = (undefined8 *)((int)puVar24 + *(int *)(PTR_DAT_000b7720 + -0x2fe4));\n          iVar17 = (uint)(puVar20 < puVar24) +\n                   ((int)puVar24 >> 0x1f) + *(int *)(PTR_DAT_000b7720 + -0x2fe8);\n          *(int *)(PTR_DAT_000b7720 + -0x2fe8) = iVar17;\n          *(undefined8 **)(puVar21 + -0x2fe4) = puVar20;\n          dVar31 = (double)(*(code *)PTR_FUN_000b78f4)(iVar17,puVar20);\n          puVar9 = *(undefined8 **)(PTR_opt_000b746c + 0x15c);\n          dVar27 = (double)(*(code *)PTR_FUN_000b78f4)\n                                     (*(undefined4 *)(PTR_opt_000b746c + 0x158),puVar9);\n          dVar25 = (double)CONCAT44(puVar15,puVar18);\n          if (dVar30 < dVar31 / dVar27) {\n            dVar30 = (dVar31 / dVar27 - dVar30) + *(double *)(PTR_DAT_000b7720 + -0x2fd8);\n            if (dVar30 < dVar32) {\n              if (PTR_opt_000b746c[0x16b] != '\0') {\n                uVar11 = number_to_static_string(iVar17,puVar20);\n                local_120 = (double)((ulonglong)uVar11 << 0x20);\n                dVar25 = dVar30 * *(double *)(puVar2 + -0x15d8);\n                debug_logprintf(PTR_DAT_000b758c + -0x1864);\n                puVar9 = puVar20;\n              }\n              goto LAB_0005175c;\n            }\n            if (PTR_opt_000b746c[0x16b] != '\0') {\n              uVar11 = number_to_static_string(iVar17,puVar20);\n              local_120 = (double)((ulonglong)uVar11 << 0x20);\n              dVar25 = dVar30 * dVar28;\n              debug_logprintf(PTR_DAT_000b758c + -0x183c);\n              puVar9 = puVar20;\n            }\n            dVar31 = (double)ptimer_read(local_104);\n            xsleep(dVar30);\n            dVar27 = (double)ptimer_measure(local_104);\n            dVar30 = dVar30 - (dVar27 - dVar31);\n            if (dVar33 < dVar30) {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x2580);\n            }\n            else if (dVar34 <= dVar30) {\n              *(double *)(PTR_DAT_000b7720 + -0x2fd8) = dVar30;\n            }\n            else {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x15d0);\n            }\n          }\n          puVar21 = PTR_DAT_000b7720;\n          *(undefined4 *)(PTR_DAT_000b7720 + -0x2fe4) = 0;\n          *(undefined4 *)(puVar21 + -0x2fe8) = 0;\n          uVar26 = ptimer_read(local_104);\n          *(undefined8 *)(puVar21 + -0x2fe0) = uVar26;\n        }\n      }\nLAB_0005175c:\n      if (iVar7 != 0) {\n        local_120 = (double)ptimer_read(local_104);\n        iVar17 = (int)puVar24 >> 0x1f;\n        puVar20 = puVar24;\n        progress_update(iVar7);\n        dVar25 = (double)CONCAT44(iVar17,puVar20);\n      }\n    }" { (expression_statement "uVar8 = SUB84(dVar25,0);" (assignment_expression "uVar8 = SUB84(dVar25,0)" identifier = (call_expression "SUB84(dVar25,0)" identifier (argument_list "(dVar25,0)" ( identifier , number_literal )))) ;) (expression_statement "iVar17 = (int)local_e0 >> 0x1f;" (assignment_expression "iVar17 = (int)local_e0 >> 0x1f" identifier = (binary_expression "(int)local_e0 >> 0x1f" (cast_expression "(int)local_e0" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (expression_statement "puVar20 = local_e0;" (assignment_expression "puVar20 = local_e0" identifier = identifier) ;) (expression_statement "puVar3 = local_120._0_4_;" (assignment_expression "puVar3 = local_120._0_4_" identifier = (field_expression "local_120._0_4_" identifier . field_identifier)) ;) (if_statement "if ((param_12 & 1) == 0) break;" if (parenthesized_expression "((param_12 & 1) == 0)" ( (binary_expression "(param_12 & 1) == 0" (parenthesized_expression "(param_12 & 1)" ( (binary_expression "param_12 & 1" identifier & number_literal) )) == number_literal) )) (break_statement "break;" break ;)) (if_statement "if (param_5 <= iVar6) {\n        if (param_5 != iVar6) goto LAB_000518d4;\n        if (local_fc < param_6) goto LAB_000517b0;\n        bVar1 = (int)puVar24 < 0;\n        dVar30 = dVar25;\n        goto LAB_000518d8;\n      }" if (parenthesized_expression "(param_5 <= iVar6)" ( (binary_expression "param_5 <= iVar6" identifier <= identifier) )) (compound_statement "{\n        if (param_5 != iVar6) goto LAB_000518d4;\n        if (local_fc < param_6) goto LAB_000517b0;\n        bVar1 = (int)puVar24 < 0;\n        dVar30 = dVar25;\n        goto LAB_000518d8;\n      }" { (if_statement "if (param_5 != iVar6) goto LAB_000518d4;" if (parenthesized_expression "(param_5 != iVar6)" ( (binary_expression "param_5 != iVar6" identifier != identifier) )) (goto_statement "goto LAB_000518d4;" goto statement_identifier ;)) (if_statement "if (local_fc < param_6) goto LAB_000517b0;" if (parenthesized_expression "(local_fc < param_6)" ( (binary_expression "local_fc < param_6" identifier < identifier) )) (goto_statement "goto LAB_000517b0;" goto statement_identifier ;)) (expression_statement "bVar1 = (int)puVar24 < 0;" (assignment_expression "bVar1 = (int)puVar24 < 0" identifier = (binary_expression "(int)puVar24 < 0" (cast_expression "(int)puVar24" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal)) ;) (expression_statement "dVar30 = dVar25;" (assignment_expression "dVar30 = dVar25" identifier = identifier) ;) (goto_statement "goto LAB_000518d8;" goto statement_identifier ;) })) (labeled_statement "LAB_000517b0:\n      dVar31 = *(double *)(PTR_opt_000b746c + 0x120);" statement_identifier : (expression_statement "dVar31 = *(double *)(PTR_opt_000b746c + 0x120);" (assignment_expression "dVar31 = *(double *)(PTR_opt_000b746c + 0x120)" identifier = (pointer_expression "*(double *)(PTR_opt_000b746c + 0x120)" * (cast_expression "(double *)(PTR_opt_000b746c + 0x120)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_opt_000b746c + 0x120)" ( (binary_expression "PTR_opt_000b746c + 0x120" identifier + number_literal) ))))) ;)) (if_statement "if (uVar5 != 0) goto LAB_00051820;" if (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00051820;" goto statement_identifier ;)) (expression_statement "puVar15 = (undefined8 *)((int)param_6 - (int)local_fc);" (assignment_expression "puVar15 = (undefined8 *)((int)param_6 - (int)local_fc)" identifier = (cast_expression "(undefined8 *)((int)param_6 - (int)local_fc)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_6 - (int)local_fc)" ( (binary_expression "(int)param_6 - (int)local_fc" (cast_expression "(int)param_6" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_fc" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "iVar13 = (param_5 - iVar6) - (uint)(param_6 < puVar15);" (assignment_expression "iVar13 = (param_5 - iVar6) - (uint)(param_6 < puVar15)" identifier = (binary_expression "(param_5 - iVar6) - (uint)(param_6 < puVar15)" (parenthesized_expression "(param_5 - iVar6)" ( (binary_expression "param_5 - iVar6" identifier - identifier) )) - (call_expression "(uint)(param_6 < puVar15)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_6 < puVar15)" ( (binary_expression "param_6 < puVar15" identifier < identifier) ))))) ;) (expression_statement "dVar25 = (double)CONCAT44(iVar13,uVar8);" (assignment_expression "dVar25 = (double)CONCAT44(iVar13,uVar8)" identifier = (cast_expression "(double)CONCAT44(iVar13,uVar8)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(iVar13,uVar8)" identifier (argument_list "(iVar13,uVar8)" ( identifier , identifier ))))) ;) (expression_statement "puVar9 = local_e0;" (assignment_expression "puVar9 = local_e0" identifier = identifier) ;) (if_statement "if ((iVar17 < iVar13) ||\n         ((dVar30 = (double)CONCAT44(iVar13,uVar8), iVar13 == iVar17 &&\n          (dVar30 = (double)CONCAT44(iVar13,uVar8), local_e0 < puVar15)))) goto LAB_00051864;" if (parenthesized_expression "((iVar17 < iVar13) ||\n         ((dVar30 = (double)CONCAT44(iVar13,uVar8), iVar13 == iVar17 &&\n          (dVar30 = (double)CONCAT44(iVar13,uVar8), local_e0 < puVar15))))" ( (binary_expression "(iVar17 < iVar13) ||\n         ((dVar30 = (double)CONCAT44(iVar13,uVar8), iVar13 == iVar17 &&\n          (dVar30 = (double)CONCAT44(iVar13,uVar8), local_e0 < puVar15)))" (parenthesized_expression "(iVar17 < iVar13)" ( (binary_expression "iVar17 < iVar13" identifier < identifier) )) || (parenthesized_expression "((dVar30 = (double)CONCAT44(iVar13,uVar8), iVar13 == iVar17 &&\n          (dVar30 = (double)CONCAT44(iVar13,uVar8), local_e0 < puVar15)))" ( (parenthesized_expression "(dVar30 = (double)CONCAT44(iVar13,uVar8), iVar13 == iVar17 &&\n          (dVar30 = (double)CONCAT44(iVar13,uVar8), local_e0 < puVar15))" ( (comma_expression "dVar30 = (double)CONCAT44(iVar13,uVar8), iVar13 == iVar17 &&\n          (dVar30 = (double)CONCAT44(iVar13,uVar8), local_e0 < puVar15)" (assignment_expression "dVar30 = (double)CONCAT44(iVar13,uVar8)" identifier = (cast_expression "(double)CONCAT44(iVar13,uVar8)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(iVar13,uVar8)" identifier (argument_list "(iVar13,uVar8)" ( identifier , identifier ))))) , (binary_expression "iVar13 == iVar17 &&\n          (dVar30 = (double)CONCAT44(iVar13,uVar8), local_e0 < puVar15)" (binary_expression "iVar13 == iVar17" identifier == identifier) && (parenthesized_expression "(dVar30 = (double)CONCAT44(iVar13,uVar8), local_e0 < puVar15)" ( (comma_expression "dVar30 = (double)CONCAT44(iVar13,uVar8), local_e0 < puVar15" (assignment_expression "dVar30 = (double)CONCAT44(iVar13,uVar8)" identifier = (cast_expression "(double)CONCAT44(iVar13,uVar8)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(iVar13,uVar8)" identifier (argument_list "(iVar13,uVar8)" ( identifier , identifier ))))) , (binary_expression "local_e0 < puVar15" identifier < identifier)) )))) )) ))) )) (goto_statement "goto LAB_00051864;" goto statement_identifier ;)) (labeled_statement "LAB_00051868:\n      puVar18 = SUB84(dVar30,0);" statement_identifier : (expression_statement "puVar18 = SUB84(dVar30,0);" (assignment_expression "puVar18 = SUB84(dVar30,0)" identifier = (call_expression "SUB84(dVar30,0)" identifier (argument_list "(dVar30,0)" ( identifier , number_literal )))) ;)) (if_statement "if (local_e4 == 0) {\n        puVar9 = puVar4;\n        puVar24 = (undefined8 *)(*(code *)PTR_fd_read_000b7770)(param_2,puVar4);\n        local_120 = dVar31;\nLAB_000516fc:\n        bVar1 = (int)puVar24 < 0;\n        dVar30 = (double)CONCAT44(puVar15,puVar18);\n        if ((int)puVar24 < 1) goto LAB_000518d8;\n        if (iVar7 == 0) {\n          if (*(int *)(PTR_opt_000b746c + 0x158) == 0 && *(int *)(PTR_opt_000b746c + 0x15c) == 0)\n          goto LAB_00051720;\n          ptimer_measure(local_104);\n        }\n        else {\n          ptimer_measure(local_104);\n        }\nLAB_000515b0:\n        dVar29 = (double)ptimer_read(local_104);\nLAB_000515c4:\n        puVar12 = (undefined8 *)((int)local_fc + (int)puVar24);\n        iVar6 = (uint)(puVar12 < local_fc) + iVar6 + ((int)puVar24 >> 0x1f);\n        puVar9 = param_13;\n        puVar15 = puVar4;\n        puVar18 = puVar24;\n        local_fc = puVar12;\n        if (local_100 == (undefined8 *)0x0) {\n          local_120 = (double)(ZEXT48(auStack_ac + 4) << 0x20);\n          puVar20 = (undefined8 *)FUN_000503a4(param_3,param_13);\n          dVar30 = (double)CONCAT44(puVar15,puVar18);\n          puVar3 = (undefined8 *)(auStack_ac + 4);\n          if ((int)puVar20 < 0) goto LAB_00051040;\n        }\n        else {\n          local_120 = 0.0;\n          local_120._0_4_ = (undefined8 *)0x0;\n          puVar20 = (undefined8 *)FUN_000503a4(0,param_13);\n          dVar30 = (double)CONCAT44(puVar15,puVar18);\n          puVar3 = local_120._0_4_;\n          if ((int)puVar20 < 0) goto LAB_00051040;\n          puVar21 = PTR_DAT_000b758c + -0x1898;\n          pcVar23 = (code *)(PTR_LAB_000b78e4 + 0x3a4);\n          local_94 = puVar4;\n          local_90 = puVar24;\n          do {\n            local_84 = 0x8000;\n            local_88 = local_100;\n            puVar9 = (undefined8 *)0x0;\n            iVar17 = (*(code *)PTR_inflate_000b7d40)(&local_94,0);\n            puVar3 = local_120._0_4_;\n            if (iVar17 == -3) {\nLAB_000511f4:\n              puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n              dVar30 = (double)CONCAT44(puVar15,puVar18);\n              *puVar10 = 0x16;\n              puVar20 = (undefined8 *)0xffffffff;\n              goto LAB_00051040;\n            }\n            if (iVar17 < -2) {\n              if (iVar17 == -4) {\n                puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n                dVar30 = (double)CONCAT44(puVar15,puVar18);\n                *puVar10 = 0xc;\n                puVar20 = (undefined8 *)0xffffffff;\n                goto LAB_00051040;\n              }\n            }\n            else if (iVar17 == 1) {\n              if (((param_12 & 1) != 0) &&\n                 (((param_5 != iVar6 || (param_6 != puVar12)) && (PTR_opt_000b746c[0x16b] != '\0')))\n                 ) {\n                debug_logprintf(puVar21);\n              }\n            }\n            else if (iVar17 == 2) goto LAB_000511f4;\n            local_120 = (double)(ZEXT48(auStack_ac + 4) << 0x20);\n            puVar18 = (undefined8 *)(0x8000 - local_84);\n            puVar9 = (undefined8 *)0x0;\n            puVar15 = local_100;\n            puVar20 = (undefined8 *)(*pcVar23)(param_3,0);\n            dVar30 = (double)CONCAT44(puVar15,puVar18);\n            puVar3 = (undefined8 *)(auStack_ac + 4);\n            if ((int)puVar20 < 0) goto LAB_00051040;\n          } while (local_84 == 0);\n        }\n        dVar31 = local_120;\n        if (uVar5 != 0) {\n          puVar20 = (undefined8 *)((int)local_f0 - (int)puVar24);\n          iVar22 = (iVar22 - ((int)puVar24 >> 0x1f)) - (uint)(local_f0 < puVar20);\n          local_f0 = puVar20;\n          if (iVar22 == 0 && puVar20 == (undefined8 *)0x0) {\n            iVar17 = fd_read_line(param_2);\n            dVar25 = (double)CONCAT44(puVar15,puVar18);\n            if (iVar17 == 0) {\n              puVar24 = (undefined8 *)0xffffffff;\n              goto LAB_000518d4;\n            }\n            if (param_13 != (undefined8 *)0x0) {\n              puVar15 = (undefined8 *)(*(code *)PTR_strlen_000b7c94)(iVar17);\n              puVar9 = (undefined8 *)&DAT_00000001;\n              puVar18 = param_13;\n              (*(code *)PTR_fwrite_000b7c24)(iVar17,1);\n            }\n            (*(code *)PTR_free_000b7d34)(iVar17);\n          }\n        }\n        goto LAB_00051748;\n      }" if (parenthesized_expression "(local_e4 == 0)" ( (binary_expression "local_e4 == 0" identifier == number_literal) )) (compound_statement "{\n        puVar9 = puVar4;\n        puVar24 = (undefined8 *)(*(code *)PTR_fd_read_000b7770)(param_2,puVar4);\n        local_120 = dVar31;\nLAB_000516fc:\n        bVar1 = (int)puVar24 < 0;\n        dVar30 = (double)CONCAT44(puVar15,puVar18);\n        if ((int)puVar24 < 1) goto LAB_000518d8;\n        if (iVar7 == 0) {\n          if (*(int *)(PTR_opt_000b746c + 0x158) == 0 && *(int *)(PTR_opt_000b746c + 0x15c) == 0)\n          goto LAB_00051720;\n          ptimer_measure(local_104);\n        }\n        else {\n          ptimer_measure(local_104);\n        }\nLAB_000515b0:\n        dVar29 = (double)ptimer_read(local_104);\nLAB_000515c4:\n        puVar12 = (undefined8 *)((int)local_fc + (int)puVar24);\n        iVar6 = (uint)(puVar12 < local_fc) + iVar6 + ((int)puVar24 >> 0x1f);\n        puVar9 = param_13;\n        puVar15 = puVar4;\n        puVar18 = puVar24;\n        local_fc = puVar12;\n        if (local_100 == (undefined8 *)0x0) {\n          local_120 = (double)(ZEXT48(auStack_ac + 4) << 0x20);\n          puVar20 = (undefined8 *)FUN_000503a4(param_3,param_13);\n          dVar30 = (double)CONCAT44(puVar15,puVar18);\n          puVar3 = (undefined8 *)(auStack_ac + 4);\n          if ((int)puVar20 < 0) goto LAB_00051040;\n        }\n        else {\n          local_120 = 0.0;\n          local_120._0_4_ = (undefined8 *)0x0;\n          puVar20 = (undefined8 *)FUN_000503a4(0,param_13);\n          dVar30 = (double)CONCAT44(puVar15,puVar18);\n          puVar3 = local_120._0_4_;\n          if ((int)puVar20 < 0) goto LAB_00051040;\n          puVar21 = PTR_DAT_000b758c + -0x1898;\n          pcVar23 = (code *)(PTR_LAB_000b78e4 + 0x3a4);\n          local_94 = puVar4;\n          local_90 = puVar24;\n          do {\n            local_84 = 0x8000;\n            local_88 = local_100;\n            puVar9 = (undefined8 *)0x0;\n            iVar17 = (*(code *)PTR_inflate_000b7d40)(&local_94,0);\n            puVar3 = local_120._0_4_;\n            if (iVar17 == -3) {\nLAB_000511f4:\n              puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n              dVar30 = (double)CONCAT44(puVar15,puVar18);\n              *puVar10 = 0x16;\n              puVar20 = (undefined8 *)0xffffffff;\n              goto LAB_00051040;\n            }\n            if (iVar17 < -2) {\n              if (iVar17 == -4) {\n                puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n                dVar30 = (double)CONCAT44(puVar15,puVar18);\n                *puVar10 = 0xc;\n                puVar20 = (undefined8 *)0xffffffff;\n                goto LAB_00051040;\n              }\n            }\n            else if (iVar17 == 1) {\n              if (((param_12 & 1) != 0) &&\n                 (((param_5 != iVar6 || (param_6 != puVar12)) && (PTR_opt_000b746c[0x16b] != '\0')))\n                 ) {\n                debug_logprintf(puVar21);\n              }\n            }\n            else if (iVar17 == 2) goto LAB_000511f4;\n            local_120 = (double)(ZEXT48(auStack_ac + 4) << 0x20);\n            puVar18 = (undefined8 *)(0x8000 - local_84);\n            puVar9 = (undefined8 *)0x0;\n            puVar15 = local_100;\n            puVar20 = (undefined8 *)(*pcVar23)(param_3,0);\n            dVar30 = (double)CONCAT44(puVar15,puVar18);\n            puVar3 = (undefined8 *)(auStack_ac + 4);\n            if ((int)puVar20 < 0) goto LAB_00051040;\n          } while (local_84 == 0);\n        }\n        dVar31 = local_120;\n        if (uVar5 != 0) {\n          puVar20 = (undefined8 *)((int)local_f0 - (int)puVar24);\n          iVar22 = (iVar22 - ((int)puVar24 >> 0x1f)) - (uint)(local_f0 < puVar20);\n          local_f0 = puVar20;\n          if (iVar22 == 0 && puVar20 == (undefined8 *)0x0) {\n            iVar17 = fd_read_line(param_2);\n            dVar25 = (double)CONCAT44(puVar15,puVar18);\n            if (iVar17 == 0) {\n              puVar24 = (undefined8 *)0xffffffff;\n              goto LAB_000518d4;\n            }\n            if (param_13 != (undefined8 *)0x0) {\n              puVar15 = (undefined8 *)(*(code *)PTR_strlen_000b7c94)(iVar17);\n              puVar9 = (undefined8 *)&DAT_00000001;\n              puVar18 = param_13;\n              (*(code *)PTR_fwrite_000b7c24)(iVar17,1);\n            }\n            (*(code *)PTR_free_000b7d34)(iVar17);\n          }\n        }\n        goto LAB_00051748;\n      }" { (expression_statement "puVar9 = puVar4;" (assignment_expression "puVar9 = puVar4" identifier = identifier) ;) (expression_statement "puVar24 = (undefined8 *)(*(code *)PTR_fd_read_000b7770)(param_2,puVar4);" (assignment_expression "puVar24 = (undefined8 *)(*(code *)PTR_fd_read_000b7770)(param_2,puVar4)" identifier = (cast_expression "(undefined8 *)(*(code *)PTR_fd_read_000b7770)(param_2,puVar4)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_fd_read_000b7770)(param_2,puVar4)" (parenthesized_expression "(*(code *)PTR_fd_read_000b7770)" ( (pointer_expression "*(code *)PTR_fd_read_000b7770" * (cast_expression "(code *)PTR_fd_read_000b7770" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2,puVar4)" ( identifier , identifier ))))) ;) (expression_statement "local_120 = dVar31;" (assignment_expression "local_120 = dVar31" identifier = identifier) ;) (labeled_statement "LAB_000516fc:\n        bVar1 = (int)puVar24 < 0;" statement_identifier : (expression_statement "bVar1 = (int)puVar24 < 0;" (assignment_expression "bVar1 = (int)puVar24 < 0" identifier = (binary_expression "(int)puVar24 < 0" (cast_expression "(int)puVar24" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal)) ;)) (expression_statement "dVar30 = (double)CONCAT44(puVar15,puVar18);" (assignment_expression "dVar30 = (double)CONCAT44(puVar15,puVar18)" identifier = (cast_expression "(double)CONCAT44(puVar15,puVar18)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(puVar15,puVar18)" identifier (argument_list "(puVar15,puVar18)" ( identifier , identifier ))))) ;) (if_statement "if ((int)puVar24 < 1) goto LAB_000518d8;" if (parenthesized_expression "((int)puVar24 < 1)" ( (binary_expression "(int)puVar24 < 1" (cast_expression "(int)puVar24" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_000518d8;" goto statement_identifier ;)) (if_statement "if (iVar7 == 0) {\n          if (*(int *)(PTR_opt_000b746c + 0x158) == 0 && *(int *)(PTR_opt_000b746c + 0x15c) == 0)\n          goto LAB_00051720;\n          ptimer_measure(local_104);\n        }\n        else {\n          ptimer_measure(local_104);\n        }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n          if (*(int *)(PTR_opt_000b746c + 0x158) == 0 && *(int *)(PTR_opt_000b746c + 0x15c) == 0)\n          goto LAB_00051720;\n          ptimer_measure(local_104);\n        }" { (if_statement "if (*(int *)(PTR_opt_000b746c + 0x158) == 0 && *(int *)(PTR_opt_000b746c + 0x15c) == 0)\n          goto LAB_00051720;" if (parenthesized_expression "(*(int *)(PTR_opt_000b746c + 0x158) == 0 && *(int *)(PTR_opt_000b746c + 0x15c) == 0)" ( (binary_expression "*(int *)(PTR_opt_000b746c + 0x158) == 0 && *(int *)(PTR_opt_000b746c + 0x15c) == 0" (binary_expression "*(int *)(PTR_opt_000b746c + 0x158) == 0" (pointer_expression "*(int *)(PTR_opt_000b746c + 0x158)" * (cast_expression "(int *)(PTR_opt_000b746c + 0x158)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_opt_000b746c + 0x158)" ( (binary_expression "PTR_opt_000b746c + 0x158" identifier + number_literal) )))) == number_literal) && (binary_expression "*(int *)(PTR_opt_000b746c + 0x15c) == 0" (pointer_expression "*(int *)(PTR_opt_000b746c + 0x15c)" * (cast_expression "(int *)(PTR_opt_000b746c + 0x15c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_opt_000b746c + 0x15c)" ( (binary_expression "PTR_opt_000b746c + 0x15c" identifier + number_literal) )))) == number_literal)) )) (goto_statement "goto LAB_00051720;" goto statement_identifier ;)) (expression_statement "ptimer_measure(local_104);" (call_expression "ptimer_measure(local_104)" identifier (argument_list "(local_104)" ( identifier ))) ;) }) (else_clause "else {\n          ptimer_measure(local_104);\n        }" else (compound_statement "{\n          ptimer_measure(local_104);\n        }" { (expression_statement "ptimer_measure(local_104);" (call_expression "ptimer_measure(local_104)" identifier (argument_list "(local_104)" ( identifier ))) ;) }))) (labeled_statement "LAB_000515b0:\n        dVar29 = (double)ptimer_read(local_104);" statement_identifier : (expression_statement "dVar29 = (double)ptimer_read(local_104);" (assignment_expression "dVar29 = (double)ptimer_read(local_104)" identifier = (cast_expression "(double)ptimer_read(local_104)" ( (type_descriptor "double" primitive_type) ) (call_expression "ptimer_read(local_104)" identifier (argument_list "(local_104)" ( identifier ))))) ;)) (labeled_statement "LAB_000515c4:\n        puVar12 = (undefined8 *)((int)local_fc + (int)puVar24);" statement_identifier : (expression_statement "puVar12 = (undefined8 *)((int)local_fc + (int)puVar24);" (assignment_expression "puVar12 = (undefined8 *)((int)local_fc + (int)puVar24)" identifier = (cast_expression "(undefined8 *)((int)local_fc + (int)puVar24)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_fc + (int)puVar24)" ( (binary_expression "(int)local_fc + (int)puVar24" (cast_expression "(int)local_fc" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)puVar24" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;)) (expression_statement "iVar6 = (uint)(puVar12 < local_fc) + iVar6 + ((int)puVar24 >> 0x1f);" (assignment_expression "iVar6 = (uint)(puVar12 < local_fc) + iVar6 + ((int)puVar24 >> 0x1f)" identifier = (binary_expression "(uint)(puVar12 < local_fc) + iVar6 + ((int)puVar24 >> 0x1f)" (binary_expression "(uint)(puVar12 < local_fc) + iVar6" (call_expression "(uint)(puVar12 < local_fc)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar12 < local_fc)" ( (binary_expression "puVar12 < local_fc" identifier < identifier) ))) + identifier) + (parenthesized_expression "((int)puVar24 >> 0x1f)" ( (binary_expression "(int)puVar24 >> 0x1f" (cast_expression "(int)puVar24" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )))) ;) (expression_statement "puVar9 = param_13;" (assignment_expression "puVar9 = param_13" identifier = identifier) ;) (expression_statement "puVar15 = puVar4;" (assignment_expression "puVar15 = puVar4" identifier = identifier) ;) (expression_statement "puVar18 = puVar24;" (assignment_expression "puVar18 = puVar24" identifier = identifier) ;) (expression_statement "local_fc = puVar12;" (assignment_expression "local_fc = puVar12" identifier = identifier) ;) (if_statement "if (local_100 == (undefined8 *)0x0) {\n          local_120 = (double)(ZEXT48(auStack_ac + 4) << 0x20);\n          puVar20 = (undefined8 *)FUN_000503a4(param_3,param_13);\n          dVar30 = (double)CONCAT44(puVar15,puVar18);\n          puVar3 = (undefined8 *)(auStack_ac + 4);\n          if ((int)puVar20 < 0) goto LAB_00051040;\n        }\n        else {\n          local_120 = 0.0;\n          local_120._0_4_ = (undefined8 *)0x0;\n          puVar20 = (undefined8 *)FUN_000503a4(0,param_13);\n          dVar30 = (double)CONCAT44(puVar15,puVar18);\n          puVar3 = local_120._0_4_;\n          if ((int)puVar20 < 0) goto LAB_00051040;\n          puVar21 = PTR_DAT_000b758c + -0x1898;\n          pcVar23 = (code *)(PTR_LAB_000b78e4 + 0x3a4);\n          local_94 = puVar4;\n          local_90 = puVar24;\n          do {\n            local_84 = 0x8000;\n            local_88 = local_100;\n            puVar9 = (undefined8 *)0x0;\n            iVar17 = (*(code *)PTR_inflate_000b7d40)(&local_94,0);\n            puVar3 = local_120._0_4_;\n            if (iVar17 == -3) {\nLAB_000511f4:\n              puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n              dVar30 = (double)CONCAT44(puVar15,puVar18);\n              *puVar10 = 0x16;\n              puVar20 = (undefined8 *)0xffffffff;\n              goto LAB_00051040;\n            }\n            if (iVar17 < -2) {\n              if (iVar17 == -4) {\n                puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n                dVar30 = (double)CONCAT44(puVar15,puVar18);\n                *puVar10 = 0xc;\n                puVar20 = (undefined8 *)0xffffffff;\n                goto LAB_00051040;\n              }\n            }\n            else if (iVar17 == 1) {\n              if (((param_12 & 1) != 0) &&\n                 (((param_5 != iVar6 || (param_6 != puVar12)) && (PTR_opt_000b746c[0x16b] != '\0')))\n                 ) {\n                debug_logprintf(puVar21);\n              }\n            }\n            else if (iVar17 == 2) goto LAB_000511f4;\n            local_120 = (double)(ZEXT48(auStack_ac + 4) << 0x20);\n            puVar18 = (undefined8 *)(0x8000 - local_84);\n            puVar9 = (undefined8 *)0x0;\n            puVar15 = local_100;\n            puVar20 = (undefined8 *)(*pcVar23)(param_3,0);\n            dVar30 = (double)CONCAT44(puVar15,puVar18);\n            puVar3 = (undefined8 *)(auStack_ac + 4);\n            if ((int)puVar20 < 0) goto LAB_00051040;\n          } while (local_84 == 0);\n        }" if (parenthesized_expression "(local_100 == (undefined8 *)0x0)" ( (binary_expression "local_100 == (undefined8 *)0x0" identifier == (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          local_120 = (double)(ZEXT48(auStack_ac + 4) << 0x20);\n          puVar20 = (undefined8 *)FUN_000503a4(param_3,param_13);\n          dVar30 = (double)CONCAT44(puVar15,puVar18);\n          puVar3 = (undefined8 *)(auStack_ac + 4);\n          if ((int)puVar20 < 0) goto LAB_00051040;\n        }" { (expression_statement "local_120 = (double)(ZEXT48(auStack_ac + 4) << 0x20);" (assignment_expression "local_120 = (double)(ZEXT48(auStack_ac + 4) << 0x20)" identifier = (cast_expression "(double)(ZEXT48(auStack_ac + 4) << 0x20)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "(ZEXT48(auStack_ac + 4) << 0x20)" ( (binary_expression "ZEXT48(auStack_ac + 4) << 0x20" (call_expression "ZEXT48(auStack_ac + 4)" identifier (argument_list "(auStack_ac + 4)" ( (binary_expression "auStack_ac + 4" identifier + number_literal) ))) << number_literal) )))) ;) (expression_statement "puVar20 = (undefined8 *)FUN_000503a4(param_3,param_13);" (assignment_expression "puVar20 = (undefined8 *)FUN_000503a4(param_3,param_13)" identifier = (cast_expression "(undefined8 *)FUN_000503a4(param_3,param_13)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000503a4(param_3,param_13)" identifier (argument_list "(param_3,param_13)" ( identifier , identifier ))))) ;) (expression_statement "dVar30 = (double)CONCAT44(puVar15,puVar18);" (assignment_expression "dVar30 = (double)CONCAT44(puVar15,puVar18)" identifier = (cast_expression "(double)CONCAT44(puVar15,puVar18)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(puVar15,puVar18)" identifier (argument_list "(puVar15,puVar18)" ( identifier , identifier ))))) ;) (expression_statement "puVar3 = (undefined8 *)(auStack_ac + 4);" (assignment_expression "puVar3 = (undefined8 *)(auStack_ac + 4)" identifier = (cast_expression "(undefined8 *)(auStack_ac + 4)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(auStack_ac + 4)" ( (binary_expression "auStack_ac + 4" identifier + number_literal) )))) ;) (if_statement "if ((int)puVar20 < 0) goto LAB_00051040;" if (parenthesized_expression "((int)puVar20 < 0)" ( (binary_expression "(int)puVar20 < 0" (cast_expression "(int)puVar20" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_00051040;" goto statement_identifier ;)) }) (else_clause "else {\n          local_120 = 0.0;\n          local_120._0_4_ = (undefined8 *)0x0;\n          puVar20 = (undefined8 *)FUN_000503a4(0,param_13);\n          dVar30 = (double)CONCAT44(puVar15,puVar18);\n          puVar3 = local_120._0_4_;\n          if ((int)puVar20 < 0) goto LAB_00051040;\n          puVar21 = PTR_DAT_000b758c + -0x1898;\n          pcVar23 = (code *)(PTR_LAB_000b78e4 + 0x3a4);\n          local_94 = puVar4;\n          local_90 = puVar24;\n          do {\n            local_84 = 0x8000;\n            local_88 = local_100;\n            puVar9 = (undefined8 *)0x0;\n            iVar17 = (*(code *)PTR_inflate_000b7d40)(&local_94,0);\n            puVar3 = local_120._0_4_;\n            if (iVar17 == -3) {\nLAB_000511f4:\n              puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n              dVar30 = (double)CONCAT44(puVar15,puVar18);\n              *puVar10 = 0x16;\n              puVar20 = (undefined8 *)0xffffffff;\n              goto LAB_00051040;\n            }\n            if (iVar17 < -2) {\n              if (iVar17 == -4) {\n                puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n                dVar30 = (double)CONCAT44(puVar15,puVar18);\n                *puVar10 = 0xc;\n                puVar20 = (undefined8 *)0xffffffff;\n                goto LAB_00051040;\n              }\n            }\n            else if (iVar17 == 1) {\n              if (((param_12 & 1) != 0) &&\n                 (((param_5 != iVar6 || (param_6 != puVar12)) && (PTR_opt_000b746c[0x16b] != '\0')))\n                 ) {\n                debug_logprintf(puVar21);\n              }\n            }\n            else if (iVar17 == 2) goto LAB_000511f4;\n            local_120 = (double)(ZEXT48(auStack_ac + 4) << 0x20);\n            puVar18 = (undefined8 *)(0x8000 - local_84);\n            puVar9 = (undefined8 *)0x0;\n            puVar15 = local_100;\n            puVar20 = (undefined8 *)(*pcVar23)(param_3,0);\n            dVar30 = (double)CONCAT44(puVar15,puVar18);\n            puVar3 = (undefined8 *)(auStack_ac + 4);\n            if ((int)puVar20 < 0) goto LAB_00051040;\n          } while (local_84 == 0);\n        }" else (compound_statement "{\n          local_120 = 0.0;\n          local_120._0_4_ = (undefined8 *)0x0;\n          puVar20 = (undefined8 *)FUN_000503a4(0,param_13);\n          dVar30 = (double)CONCAT44(puVar15,puVar18);\n          puVar3 = local_120._0_4_;\n          if ((int)puVar20 < 0) goto LAB_00051040;\n          puVar21 = PTR_DAT_000b758c + -0x1898;\n          pcVar23 = (code *)(PTR_LAB_000b78e4 + 0x3a4);\n          local_94 = puVar4;\n          local_90 = puVar24;\n          do {\n            local_84 = 0x8000;\n            local_88 = local_100;\n            puVar9 = (undefined8 *)0x0;\n            iVar17 = (*(code *)PTR_inflate_000b7d40)(&local_94,0);\n            puVar3 = local_120._0_4_;\n            if (iVar17 == -3) {\nLAB_000511f4:\n              puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n              dVar30 = (double)CONCAT44(puVar15,puVar18);\n              *puVar10 = 0x16;\n              puVar20 = (undefined8 *)0xffffffff;\n              goto LAB_00051040;\n            }\n            if (iVar17 < -2) {\n              if (iVar17 == -4) {\n                puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n                dVar30 = (double)CONCAT44(puVar15,puVar18);\n                *puVar10 = 0xc;\n                puVar20 = (undefined8 *)0xffffffff;\n                goto LAB_00051040;\n              }\n            }\n            else if (iVar17 == 1) {\n              if (((param_12 & 1) != 0) &&\n                 (((param_5 != iVar6 || (param_6 != puVar12)) && (PTR_opt_000b746c[0x16b] != '\0')))\n                 ) {\n                debug_logprintf(puVar21);\n              }\n            }\n            else if (iVar17 == 2) goto LAB_000511f4;\n            local_120 = (double)(ZEXT48(auStack_ac + 4) << 0x20);\n            puVar18 = (undefined8 *)(0x8000 - local_84);\n            puVar9 = (undefined8 *)0x0;\n            puVar15 = local_100;\n            puVar20 = (undefined8 *)(*pcVar23)(param_3,0);\n            dVar30 = (double)CONCAT44(puVar15,puVar18);\n            puVar3 = (undefined8 *)(auStack_ac + 4);\n            if ((int)puVar20 < 0) goto LAB_00051040;\n          } while (local_84 == 0);\n        }" { (expression_statement "local_120 = 0.0;" (assignment_expression "local_120 = 0.0" identifier = number_literal) ;) (expression_statement "local_120._0_4_ = (undefined8 *)0x0;" (assignment_expression "local_120._0_4_ = (undefined8 *)0x0" (field_expression "local_120._0_4_" identifier . field_identifier) = (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar20 = (undefined8 *)FUN_000503a4(0,param_13);" (assignment_expression "puVar20 = (undefined8 *)FUN_000503a4(0,param_13)" identifier = (cast_expression "(undefined8 *)FUN_000503a4(0,param_13)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000503a4(0,param_13)" identifier (argument_list "(0,param_13)" ( number_literal , identifier ))))) ;) (expression_statement "dVar30 = (double)CONCAT44(puVar15,puVar18);" (assignment_expression "dVar30 = (double)CONCAT44(puVar15,puVar18)" identifier = (cast_expression "(double)CONCAT44(puVar15,puVar18)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(puVar15,puVar18)" identifier (argument_list "(puVar15,puVar18)" ( identifier , identifier ))))) ;) (expression_statement "puVar3 = local_120._0_4_;" (assignment_expression "puVar3 = local_120._0_4_" identifier = (field_expression "local_120._0_4_" identifier . field_identifier)) ;) (if_statement "if ((int)puVar20 < 0) goto LAB_00051040;" if (parenthesized_expression "((int)puVar20 < 0)" ( (binary_expression "(int)puVar20 < 0" (cast_expression "(int)puVar20" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_00051040;" goto statement_identifier ;)) (expression_statement "puVar21 = PTR_DAT_000b758c + -0x1898;" (assignment_expression "puVar21 = PTR_DAT_000b758c + -0x1898" identifier = (binary_expression "PTR_DAT_000b758c + -0x1898" identifier + number_literal)) ;) (expression_statement "pcVar23 = (code *)(PTR_LAB_000b78e4 + 0x3a4);" (assignment_expression "pcVar23 = (code *)(PTR_LAB_000b78e4 + 0x3a4)" identifier = (cast_expression "(code *)(PTR_LAB_000b78e4 + 0x3a4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000b78e4 + 0x3a4)" ( (binary_expression "PTR_LAB_000b78e4 + 0x3a4" identifier + number_literal) )))) ;) (expression_statement "local_94 = puVar4;" (assignment_expression "local_94 = puVar4" identifier = identifier) ;) (expression_statement "local_90 = puVar24;" (assignment_expression "local_90 = puVar24" identifier = identifier) ;) (do_statement "do {\n            local_84 = 0x8000;\n            local_88 = local_100;\n            puVar9 = (undefined8 *)0x0;\n            iVar17 = (*(code *)PTR_inflate_000b7d40)(&local_94,0);\n            puVar3 = local_120._0_4_;\n            if (iVar17 == -3) {\nLAB_000511f4:\n              puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n              dVar30 = (double)CONCAT44(puVar15,puVar18);\n              *puVar10 = 0x16;\n              puVar20 = (undefined8 *)0xffffffff;\n              goto LAB_00051040;\n            }\n            if (iVar17 < -2) {\n              if (iVar17 == -4) {\n                puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n                dVar30 = (double)CONCAT44(puVar15,puVar18);\n                *puVar10 = 0xc;\n                puVar20 = (undefined8 *)0xffffffff;\n                goto LAB_00051040;\n              }\n            }\n            else if (iVar17 == 1) {\n              if (((param_12 & 1) != 0) &&\n                 (((param_5 != iVar6 || (param_6 != puVar12)) && (PTR_opt_000b746c[0x16b] != '\0')))\n                 ) {\n                debug_logprintf(puVar21);\n              }\n            }\n            else if (iVar17 == 2) goto LAB_000511f4;\n            local_120 = (double)(ZEXT48(auStack_ac + 4) << 0x20);\n            puVar18 = (undefined8 *)(0x8000 - local_84);\n            puVar9 = (undefined8 *)0x0;\n            puVar15 = local_100;\n            puVar20 = (undefined8 *)(*pcVar23)(param_3,0);\n            dVar30 = (double)CONCAT44(puVar15,puVar18);\n            puVar3 = (undefined8 *)(auStack_ac + 4);\n            if ((int)puVar20 < 0) goto LAB_00051040;\n          } while (local_84 == 0);" do (compound_statement "{\n            local_84 = 0x8000;\n            local_88 = local_100;\n            puVar9 = (undefined8 *)0x0;\n            iVar17 = (*(code *)PTR_inflate_000b7d40)(&local_94,0);\n            puVar3 = local_120._0_4_;\n            if (iVar17 == -3) {\nLAB_000511f4:\n              puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n              dVar30 = (double)CONCAT44(puVar15,puVar18);\n              *puVar10 = 0x16;\n              puVar20 = (undefined8 *)0xffffffff;\n              goto LAB_00051040;\n            }\n            if (iVar17 < -2) {\n              if (iVar17 == -4) {\n                puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n                dVar30 = (double)CONCAT44(puVar15,puVar18);\n                *puVar10 = 0xc;\n                puVar20 = (undefined8 *)0xffffffff;\n                goto LAB_00051040;\n              }\n            }\n            else if (iVar17 == 1) {\n              if (((param_12 & 1) != 0) &&\n                 (((param_5 != iVar6 || (param_6 != puVar12)) && (PTR_opt_000b746c[0x16b] != '\0')))\n                 ) {\n                debug_logprintf(puVar21);\n              }\n            }\n            else if (iVar17 == 2) goto LAB_000511f4;\n            local_120 = (double)(ZEXT48(auStack_ac + 4) << 0x20);\n            puVar18 = (undefined8 *)(0x8000 - local_84);\n            puVar9 = (undefined8 *)0x0;\n            puVar15 = local_100;\n            puVar20 = (undefined8 *)(*pcVar23)(param_3,0);\n            dVar30 = (double)CONCAT44(puVar15,puVar18);\n            puVar3 = (undefined8 *)(auStack_ac + 4);\n            if ((int)puVar20 < 0) goto LAB_00051040;\n          }" { (expression_statement "local_84 = 0x8000;" (assignment_expression "local_84 = 0x8000" identifier = number_literal) ;) (expression_statement "local_88 = local_100;" (assignment_expression "local_88 = local_100" identifier = identifier) ;) (expression_statement "puVar9 = (undefined8 *)0x0;" (assignment_expression "puVar9 = (undefined8 *)0x0" identifier = (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar17 = (*(code *)PTR_inflate_000b7d40)(&local_94,0);" (assignment_expression "iVar17 = (*(code *)PTR_inflate_000b7d40)(&local_94,0)" identifier = (call_expression "(*(code *)PTR_inflate_000b7d40)(&local_94,0)" (parenthesized_expression "(*(code *)PTR_inflate_000b7d40)" ( (pointer_expression "*(code *)PTR_inflate_000b7d40" * (cast_expression "(code *)PTR_inflate_000b7d40" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_94,0)" ( (pointer_expression "&local_94" & identifier) , number_literal )))) ;) (expression_statement "puVar3 = local_120._0_4_;" (assignment_expression "puVar3 = local_120._0_4_" identifier = (field_expression "local_120._0_4_" identifier . field_identifier)) ;) (if_statement "if (iVar17 == -3) {\nLAB_000511f4:\n              puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n              dVar30 = (double)CONCAT44(puVar15,puVar18);\n              *puVar10 = 0x16;\n              puVar20 = (undefined8 *)0xffffffff;\n              goto LAB_00051040;\n            }" if (parenthesized_expression "(iVar17 == -3)" ( (binary_expression "iVar17 == -3" identifier == number_literal) )) (compound_statement "{\nLAB_000511f4:\n              puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n              dVar30 = (double)CONCAT44(puVar15,puVar18);\n              *puVar10 = 0x16;\n              puVar20 = (undefined8 *)0xffffffff;\n              goto LAB_00051040;\n            }" { (labeled_statement "LAB_000511f4:\n              puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();" statement_identifier : (expression_statement "puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();" (assignment_expression "puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_000b7eb8)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_000b7eb8)()" (parenthesized_expression "(*(code *)PTR___errno_location_000b7eb8)" ( (pointer_expression "*(code *)PTR___errno_location_000b7eb8" * (cast_expression "(code *)PTR___errno_location_000b7eb8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;)) (expression_statement "dVar30 = (double)CONCAT44(puVar15,puVar18);" (assignment_expression "dVar30 = (double)CONCAT44(puVar15,puVar18)" identifier = (cast_expression "(double)CONCAT44(puVar15,puVar18)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(puVar15,puVar18)" identifier (argument_list "(puVar15,puVar18)" ( identifier , identifier ))))) ;) (expression_statement "*puVar10 = 0x16;" (assignment_expression "*puVar10 = 0x16" (pointer_expression "*puVar10" * identifier) = number_literal) ;) (expression_statement "puVar20 = (undefined8 *)0xffffffff;" (assignment_expression "puVar20 = (undefined8 *)0xffffffff" identifier = (cast_expression "(undefined8 *)0xffffffff" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_00051040;" goto statement_identifier ;) })) (if_statement "if (iVar17 < -2) {\n              if (iVar17 == -4) {\n                puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n                dVar30 = (double)CONCAT44(puVar15,puVar18);\n                *puVar10 = 0xc;\n                puVar20 = (undefined8 *)0xffffffff;\n                goto LAB_00051040;\n              }\n            }\n            else if (iVar17 == 1) {\n              if (((param_12 & 1) != 0) &&\n                 (((param_5 != iVar6 || (param_6 != puVar12)) && (PTR_opt_000b746c[0x16b] != '\0')))\n                 ) {\n                debug_logprintf(puVar21);\n              }\n            }\n            else if (iVar17 == 2) goto LAB_000511f4;" if (parenthesized_expression "(iVar17 < -2)" ( (binary_expression "iVar17 < -2" identifier < number_literal) )) (compound_statement "{\n              if (iVar17 == -4) {\n                puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n                dVar30 = (double)CONCAT44(puVar15,puVar18);\n                *puVar10 = 0xc;\n                puVar20 = (undefined8 *)0xffffffff;\n                goto LAB_00051040;\n              }\n            }" { (if_statement "if (iVar17 == -4) {\n                puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n                dVar30 = (double)CONCAT44(puVar15,puVar18);\n                *puVar10 = 0xc;\n                puVar20 = (undefined8 *)0xffffffff;\n                goto LAB_00051040;\n              }" if (parenthesized_expression "(iVar17 == -4)" ( (binary_expression "iVar17 == -4" identifier == number_literal) )) (compound_statement "{\n                puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n                dVar30 = (double)CONCAT44(puVar15,puVar18);\n                *puVar10 = 0xc;\n                puVar20 = (undefined8 *)0xffffffff;\n                goto LAB_00051040;\n              }" { (expression_statement "puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();" (assignment_expression "puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_000b7eb8)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_000b7eb8)()" (parenthesized_expression "(*(code *)PTR___errno_location_000b7eb8)" ( (pointer_expression "*(code *)PTR___errno_location_000b7eb8" * (cast_expression "(code *)PTR___errno_location_000b7eb8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "dVar30 = (double)CONCAT44(puVar15,puVar18);" (assignment_expression "dVar30 = (double)CONCAT44(puVar15,puVar18)" identifier = (cast_expression "(double)CONCAT44(puVar15,puVar18)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(puVar15,puVar18)" identifier (argument_list "(puVar15,puVar18)" ( identifier , identifier ))))) ;) (expression_statement "*puVar10 = 0xc;" (assignment_expression "*puVar10 = 0xc" (pointer_expression "*puVar10" * identifier) = number_literal) ;) (expression_statement "puVar20 = (undefined8 *)0xffffffff;" (assignment_expression "puVar20 = (undefined8 *)0xffffffff" identifier = (cast_expression "(undefined8 *)0xffffffff" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_00051040;" goto statement_identifier ;) })) }) (else_clause "else if (iVar17 == 1) {\n              if (((param_12 & 1) != 0) &&\n                 (((param_5 != iVar6 || (param_6 != puVar12)) && (PTR_opt_000b746c[0x16b] != '\0')))\n                 ) {\n                debug_logprintf(puVar21);\n              }\n            }\n            else if (iVar17 == 2) goto LAB_000511f4;" else (if_statement "if (iVar17 == 1) {\n              if (((param_12 & 1) != 0) &&\n                 (((param_5 != iVar6 || (param_6 != puVar12)) && (PTR_opt_000b746c[0x16b] != '\0')))\n                 ) {\n                debug_logprintf(puVar21);\n              }\n            }\n            else if (iVar17 == 2) goto LAB_000511f4;" if (parenthesized_expression "(iVar17 == 1)" ( (binary_expression "iVar17 == 1" identifier == number_literal) )) (compound_statement "{\n              if (((param_12 & 1) != 0) &&\n                 (((param_5 != iVar6 || (param_6 != puVar12)) && (PTR_opt_000b746c[0x16b] != '\0')))\n                 ) {\n                debug_logprintf(puVar21);\n              }\n            }" { (if_statement "if (((param_12 & 1) != 0) &&\n                 (((param_5 != iVar6 || (param_6 != puVar12)) && (PTR_opt_000b746c[0x16b] != '\0')))\n                 ) {\n                debug_logprintf(puVar21);\n              }" if (parenthesized_expression "(((param_12 & 1) != 0) &&\n                 (((param_5 != iVar6 || (param_6 != puVar12)) && (PTR_opt_000b746c[0x16b] != '\0')))\n                 )" ( (binary_expression "((param_12 & 1) != 0) &&\n                 (((param_5 != iVar6 || (param_6 != puVar12)) && (PTR_opt_000b746c[0x16b] != '\0')))" (parenthesized_expression "((param_12 & 1) != 0)" ( (binary_expression "(param_12 & 1) != 0" (parenthesized_expression "(param_12 & 1)" ( (binary_expression "param_12 & 1" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(((param_5 != iVar6 || (param_6 != puVar12)) && (PTR_opt_000b746c[0x16b] != '\0')))" ( (parenthesized_expression "((param_5 != iVar6 || (param_6 != puVar12)) && (PTR_opt_000b746c[0x16b] != '\0'))" ( (binary_expression "(param_5 != iVar6 || (param_6 != puVar12)) && (PTR_opt_000b746c[0x16b] != '\0')" (parenthesized_expression "(param_5 != iVar6 || (param_6 != puVar12))" ( (binary_expression "param_5 != iVar6 || (param_6 != puVar12)" (binary_expression "param_5 != iVar6" identifier != identifier) || (parenthesized_expression "(param_6 != puVar12)" ( (binary_expression "param_6 != puVar12" identifier != identifier) ))) )) && (parenthesized_expression "(PTR_opt_000b746c[0x16b] != '\0')" ( (binary_expression "PTR_opt_000b746c[0x16b] != '\0'" (subscript_expression "PTR_opt_000b746c[0x16b]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) ))) )) ))) )) (compound_statement "{\n                debug_logprintf(puVar21);\n              }" { (expression_statement "debug_logprintf(puVar21);" (call_expression "debug_logprintf(puVar21)" identifier (argument_list "(puVar21)" ( identifier ))) ;) })) }) (else_clause "else if (iVar17 == 2) goto LAB_000511f4;" else (if_statement "if (iVar17 == 2) goto LAB_000511f4;" if (parenthesized_expression "(iVar17 == 2)" ( (binary_expression "iVar17 == 2" identifier == number_literal) )) (goto_statement "goto LAB_000511f4;" goto statement_identifier ;)))))) (expression_statement "local_120 = (double)(ZEXT48(auStack_ac + 4) << 0x20);" (assignment_expression "local_120 = (double)(ZEXT48(auStack_ac + 4) << 0x20)" identifier = (cast_expression "(double)(ZEXT48(auStack_ac + 4) << 0x20)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "(ZEXT48(auStack_ac + 4) << 0x20)" ( (binary_expression "ZEXT48(auStack_ac + 4) << 0x20" (call_expression "ZEXT48(auStack_ac + 4)" identifier (argument_list "(auStack_ac + 4)" ( (binary_expression "auStack_ac + 4" identifier + number_literal) ))) << number_literal) )))) ;) (expression_statement "puVar18 = (undefined8 *)(0x8000 - local_84);" (assignment_expression "puVar18 = (undefined8 *)(0x8000 - local_84)" identifier = (cast_expression "(undefined8 *)(0x8000 - local_84)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(0x8000 - local_84)" ( (binary_expression "0x8000 - local_84" number_literal - identifier) )))) ;) (expression_statement "puVar9 = (undefined8 *)0x0;" (assignment_expression "puVar9 = (undefined8 *)0x0" identifier = (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar15 = local_100;" (assignment_expression "puVar15 = local_100" identifier = identifier) ;) (expression_statement "puVar20 = (undefined8 *)(*pcVar23)(param_3,0);" (assignment_expression "puVar20 = (undefined8 *)(*pcVar23)(param_3,0)" identifier = (cast_expression "(undefined8 *)(*pcVar23)(param_3,0)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar23)(param_3,0)" (parenthesized_expression "(*pcVar23)" ( (pointer_expression "*pcVar23" * identifier) )) (argument_list "(param_3,0)" ( identifier , number_literal ))))) ;) (expression_statement "dVar30 = (double)CONCAT44(puVar15,puVar18);" (assignment_expression "dVar30 = (double)CONCAT44(puVar15,puVar18)" identifier = (cast_expression "(double)CONCAT44(puVar15,puVar18)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(puVar15,puVar18)" identifier (argument_list "(puVar15,puVar18)" ( identifier , identifier ))))) ;) (expression_statement "puVar3 = (undefined8 *)(auStack_ac + 4);" (assignment_expression "puVar3 = (undefined8 *)(auStack_ac + 4)" identifier = (cast_expression "(undefined8 *)(auStack_ac + 4)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(auStack_ac + 4)" ( (binary_expression "auStack_ac + 4" identifier + number_literal) )))) ;) (if_statement "if ((int)puVar20 < 0) goto LAB_00051040;" if (parenthesized_expression "((int)puVar20 < 0)" ( (binary_expression "(int)puVar20 < 0" (cast_expression "(int)puVar20" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_00051040;" goto statement_identifier ;)) }) while (parenthesized_expression "(local_84 == 0)" ( (binary_expression "local_84 == 0" identifier == number_literal) )) ;) }))) (expression_statement "dVar31 = local_120;" (assignment_expression "dVar31 = local_120" identifier = identifier) ;) (if_statement "if (uVar5 != 0) {\n          puVar20 = (undefined8 *)((int)local_f0 - (int)puVar24);\n          iVar22 = (iVar22 - ((int)puVar24 >> 0x1f)) - (uint)(local_f0 < puVar20);\n          local_f0 = puVar20;\n          if (iVar22 == 0 && puVar20 == (undefined8 *)0x0) {\n            iVar17 = fd_read_line(param_2);\n            dVar25 = (double)CONCAT44(puVar15,puVar18);\n            if (iVar17 == 0) {\n              puVar24 = (undefined8 *)0xffffffff;\n              goto LAB_000518d4;\n            }\n            if (param_13 != (undefined8 *)0x0) {\n              puVar15 = (undefined8 *)(*(code *)PTR_strlen_000b7c94)(iVar17);\n              puVar9 = (undefined8 *)&DAT_00000001;\n              puVar18 = param_13;\n              (*(code *)PTR_fwrite_000b7c24)(iVar17,1);\n            }\n            (*(code *)PTR_free_000b7d34)(iVar17);\n          }\n        }" if (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) (compound_statement "{\n          puVar20 = (undefined8 *)((int)local_f0 - (int)puVar24);\n          iVar22 = (iVar22 - ((int)puVar24 >> 0x1f)) - (uint)(local_f0 < puVar20);\n          local_f0 = puVar20;\n          if (iVar22 == 0 && puVar20 == (undefined8 *)0x0) {\n            iVar17 = fd_read_line(param_2);\n            dVar25 = (double)CONCAT44(puVar15,puVar18);\n            if (iVar17 == 0) {\n              puVar24 = (undefined8 *)0xffffffff;\n              goto LAB_000518d4;\n            }\n            if (param_13 != (undefined8 *)0x0) {\n              puVar15 = (undefined8 *)(*(code *)PTR_strlen_000b7c94)(iVar17);\n              puVar9 = (undefined8 *)&DAT_00000001;\n              puVar18 = param_13;\n              (*(code *)PTR_fwrite_000b7c24)(iVar17,1);\n            }\n            (*(code *)PTR_free_000b7d34)(iVar17);\n          }\n        }" { (expression_statement "puVar20 = (undefined8 *)((int)local_f0 - (int)puVar24);" (assignment_expression "puVar20 = (undefined8 *)((int)local_f0 - (int)puVar24)" identifier = (cast_expression "(undefined8 *)((int)local_f0 - (int)puVar24)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_f0 - (int)puVar24)" ( (binary_expression "(int)local_f0 - (int)puVar24" (cast_expression "(int)local_f0" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar24" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "iVar22 = (iVar22 - ((int)puVar24 >> 0x1f)) - (uint)(local_f0 < puVar20);" (assignment_expression "iVar22 = (iVar22 - ((int)puVar24 >> 0x1f)) - (uint)(local_f0 < puVar20)" identifier = (binary_expression "(iVar22 - ((int)puVar24 >> 0x1f)) - (uint)(local_f0 < puVar20)" (parenthesized_expression "(iVar22 - ((int)puVar24 >> 0x1f))" ( (binary_expression "iVar22 - ((int)puVar24 >> 0x1f)" identifier - (parenthesized_expression "((int)puVar24 >> 0x1f)" ( (binary_expression "(int)puVar24 >> 0x1f" (cast_expression "(int)puVar24" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ))) )) - (call_expression "(uint)(local_f0 < puVar20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_f0 < puVar20)" ( (binary_expression "local_f0 < puVar20" identifier < identifier) ))))) ;) (expression_statement "local_f0 = puVar20;" (assignment_expression "local_f0 = puVar20" identifier = identifier) ;) (if_statement "if (iVar22 == 0 && puVar20 == (undefined8 *)0x0) {\n            iVar17 = fd_read_line(param_2);\n            dVar25 = (double)CONCAT44(puVar15,puVar18);\n            if (iVar17 == 0) {\n              puVar24 = (undefined8 *)0xffffffff;\n              goto LAB_000518d4;\n            }\n            if (param_13 != (undefined8 *)0x0) {\n              puVar15 = (undefined8 *)(*(code *)PTR_strlen_000b7c94)(iVar17);\n              puVar9 = (undefined8 *)&DAT_00000001;\n              puVar18 = param_13;\n              (*(code *)PTR_fwrite_000b7c24)(iVar17,1);\n            }\n            (*(code *)PTR_free_000b7d34)(iVar17);\n          }" if (parenthesized_expression "(iVar22 == 0 && puVar20 == (undefined8 *)0x0)" ( (binary_expression "iVar22 == 0 && puVar20 == (undefined8 *)0x0" (binary_expression "iVar22 == 0" identifier == number_literal) && (binary_expression "puVar20 == (undefined8 *)0x0" identifier == (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n            iVar17 = fd_read_line(param_2);\n            dVar25 = (double)CONCAT44(puVar15,puVar18);\n            if (iVar17 == 0) {\n              puVar24 = (undefined8 *)0xffffffff;\n              goto LAB_000518d4;\n            }\n            if (param_13 != (undefined8 *)0x0) {\n              puVar15 = (undefined8 *)(*(code *)PTR_strlen_000b7c94)(iVar17);\n              puVar9 = (undefined8 *)&DAT_00000001;\n              puVar18 = param_13;\n              (*(code *)PTR_fwrite_000b7c24)(iVar17,1);\n            }\n            (*(code *)PTR_free_000b7d34)(iVar17);\n          }" { (expression_statement "iVar17 = fd_read_line(param_2);" (assignment_expression "iVar17 = fd_read_line(param_2)" identifier = (call_expression "fd_read_line(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "dVar25 = (double)CONCAT44(puVar15,puVar18);" (assignment_expression "dVar25 = (double)CONCAT44(puVar15,puVar18)" identifier = (cast_expression "(double)CONCAT44(puVar15,puVar18)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(puVar15,puVar18)" identifier (argument_list "(puVar15,puVar18)" ( identifier , identifier ))))) ;) (if_statement "if (iVar17 == 0) {\n              puVar24 = (undefined8 *)0xffffffff;\n              goto LAB_000518d4;\n            }" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (compound_statement "{\n              puVar24 = (undefined8 *)0xffffffff;\n              goto LAB_000518d4;\n            }" { (expression_statement "puVar24 = (undefined8 *)0xffffffff;" (assignment_expression "puVar24 = (undefined8 *)0xffffffff" identifier = (cast_expression "(undefined8 *)0xffffffff" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_000518d4;" goto statement_identifier ;) })) (if_statement "if (param_13 != (undefined8 *)0x0) {\n              puVar15 = (undefined8 *)(*(code *)PTR_strlen_000b7c94)(iVar17);\n              puVar9 = (undefined8 *)&DAT_00000001;\n              puVar18 = param_13;\n              (*(code *)PTR_fwrite_000b7c24)(iVar17,1);\n            }" if (parenthesized_expression "(param_13 != (undefined8 *)0x0)" ( (binary_expression "param_13 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              puVar15 = (undefined8 *)(*(code *)PTR_strlen_000b7c94)(iVar17);\n              puVar9 = (undefined8 *)&DAT_00000001;\n              puVar18 = param_13;\n              (*(code *)PTR_fwrite_000b7c24)(iVar17,1);\n            }" { (expression_statement "puVar15 = (undefined8 *)(*(code *)PTR_strlen_000b7c94)(iVar17);" (assignment_expression "puVar15 = (undefined8 *)(*(code *)PTR_strlen_000b7c94)(iVar17)" identifier = (cast_expression "(undefined8 *)(*(code *)PTR_strlen_000b7c94)(iVar17)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_strlen_000b7c94)(iVar17)" (parenthesized_expression "(*(code *)PTR_strlen_000b7c94)" ( (pointer_expression "*(code *)PTR_strlen_000b7c94" * (cast_expression "(code *)PTR_strlen_000b7c94" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar17)" ( identifier ))))) ;) (expression_statement "puVar9 = (undefined8 *)&DAT_00000001;" (assignment_expression "puVar9 = (undefined8 *)&DAT_00000001" identifier = (cast_expression "(undefined8 *)&DAT_00000001" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000001" & identifier))) ;) (expression_statement "puVar18 = param_13;" (assignment_expression "puVar18 = param_13" identifier = identifier) ;) (expression_statement "(*(code *)PTR_fwrite_000b7c24)(iVar17,1);" (call_expression "(*(code *)PTR_fwrite_000b7c24)(iVar17,1)" (parenthesized_expression "(*(code *)PTR_fwrite_000b7c24)" ( (pointer_expression "*(code *)PTR_fwrite_000b7c24" * (cast_expression "(code *)PTR_fwrite_000b7c24" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar17,1)" ( identifier , number_literal ))) ;) })) (expression_statement "(*(code *)PTR_free_000b7d34)(iVar17);" (call_expression "(*(code *)PTR_free_000b7d34)(iVar17)" (parenthesized_expression "(*(code *)PTR_free_000b7d34)" ( (pointer_expression "*(code *)PTR_free_000b7d34" * (cast_expression "(code *)PTR_free_000b7d34" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar17)" ( identifier ))) ;) })) })) (goto_statement "goto LAB_00051748;" goto statement_identifier ;) })) (if_statement "if (*(double *)(PTR_opt_000b746c + 0x120) == 0.0) {\n        dVar31 = *(double *)(PTR_DAT_000b758c + -0x15e0);\n      }\n      else {\n        dVar25 = (double)ptimer_read(local_104);\n        puVar18 = SUB84(dVar30,0);\n        if (*(double *)(PTR_opt_000b746c + 0x120) <\n            (dVar25 - dVar29) + *(double *)(PTR_DAT_000b758c + -0x15e0)) {\n          dVar31 = *(double *)(PTR_opt_000b746c + 0x120) - (dVar25 - dVar29);\n          if (dVar31 < 0.0) {\n            puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n            *puVar10 = 0x91;\n            puVar20 = (undefined8 *)0xffffffff;\n            goto LAB_00051040;\n          }\n        }\n        else {\n          dVar31 = *(double *)(PTR_DAT_000b758c + -0x15e0);\n        }\n      }" if (parenthesized_expression "(*(double *)(PTR_opt_000b746c + 0x120) == 0.0)" ( (binary_expression "*(double *)(PTR_opt_000b746c + 0x120) == 0.0" (pointer_expression "*(double *)(PTR_opt_000b746c + 0x120)" * (cast_expression "(double *)(PTR_opt_000b746c + 0x120)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_opt_000b746c + 0x120)" ( (binary_expression "PTR_opt_000b746c + 0x120" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        dVar31 = *(double *)(PTR_DAT_000b758c + -0x15e0);\n      }" { (expression_statement "dVar31 = *(double *)(PTR_DAT_000b758c + -0x15e0);" (assignment_expression "dVar31 = *(double *)(PTR_DAT_000b758c + -0x15e0)" identifier = (pointer_expression "*(double *)(PTR_DAT_000b758c + -0x15e0)" * (cast_expression "(double *)(PTR_DAT_000b758c + -0x15e0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000b758c + -0x15e0)" ( (binary_expression "PTR_DAT_000b758c + -0x15e0" identifier + number_literal) ))))) ;) }) (else_clause "else {\n        dVar25 = (double)ptimer_read(local_104);\n        puVar18 = SUB84(dVar30,0);\n        if (*(double *)(PTR_opt_000b746c + 0x120) <\n            (dVar25 - dVar29) + *(double *)(PTR_DAT_000b758c + -0x15e0)) {\n          dVar31 = *(double *)(PTR_opt_000b746c + 0x120) - (dVar25 - dVar29);\n          if (dVar31 < 0.0) {\n            puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n            *puVar10 = 0x91;\n            puVar20 = (undefined8 *)0xffffffff;\n            goto LAB_00051040;\n          }\n        }\n        else {\n          dVar31 = *(double *)(PTR_DAT_000b758c + -0x15e0);\n        }\n      }" else (compound_statement "{\n        dVar25 = (double)ptimer_read(local_104);\n        puVar18 = SUB84(dVar30,0);\n        if (*(double *)(PTR_opt_000b746c + 0x120) <\n            (dVar25 - dVar29) + *(double *)(PTR_DAT_000b758c + -0x15e0)) {\n          dVar31 = *(double *)(PTR_opt_000b746c + 0x120) - (dVar25 - dVar29);\n          if (dVar31 < 0.0) {\n            puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n            *puVar10 = 0x91;\n            puVar20 = (undefined8 *)0xffffffff;\n            goto LAB_00051040;\n          }\n        }\n        else {\n          dVar31 = *(double *)(PTR_DAT_000b758c + -0x15e0);\n        }\n      }" { (expression_statement "dVar25 = (double)ptimer_read(local_104);" (assignment_expression "dVar25 = (double)ptimer_read(local_104)" identifier = (cast_expression "(double)ptimer_read(local_104)" ( (type_descriptor "double" primitive_type) ) (call_expression "ptimer_read(local_104)" identifier (argument_list "(local_104)" ( identifier ))))) ;) (expression_statement "puVar18 = SUB84(dVar30,0);" (assignment_expression "puVar18 = SUB84(dVar30,0)" identifier = (call_expression "SUB84(dVar30,0)" identifier (argument_list "(dVar30,0)" ( identifier , number_literal )))) ;) (if_statement "if (*(double *)(PTR_opt_000b746c + 0x120) <\n            (dVar25 - dVar29) + *(double *)(PTR_DAT_000b758c + -0x15e0)) {\n          dVar31 = *(double *)(PTR_opt_000b746c + 0x120) - (dVar25 - dVar29);\n          if (dVar31 < 0.0) {\n            puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n            *puVar10 = 0x91;\n            puVar20 = (undefined8 *)0xffffffff;\n            goto LAB_00051040;\n          }\n        }\n        else {\n          dVar31 = *(double *)(PTR_DAT_000b758c + -0x15e0);\n        }" if (parenthesized_expression "(*(double *)(PTR_opt_000b746c + 0x120) <\n            (dVar25 - dVar29) + *(double *)(PTR_DAT_000b758c + -0x15e0))" ( (binary_expression "*(double *)(PTR_opt_000b746c + 0x120) <\n            (dVar25 - dVar29) + *(double *)(PTR_DAT_000b758c + -0x15e0)" (pointer_expression "*(double *)(PTR_opt_000b746c + 0x120)" * (cast_expression "(double *)(PTR_opt_000b746c + 0x120)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_opt_000b746c + 0x120)" ( (binary_expression "PTR_opt_000b746c + 0x120" identifier + number_literal) )))) < (binary_expression "(dVar25 - dVar29) + *(double *)(PTR_DAT_000b758c + -0x15e0)" (parenthesized_expression "(dVar25 - dVar29)" ( (binary_expression "dVar25 - dVar29" identifier - identifier) )) + (pointer_expression "*(double *)(PTR_DAT_000b758c + -0x15e0)" * (cast_expression "(double *)(PTR_DAT_000b758c + -0x15e0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000b758c + -0x15e0)" ( (binary_expression "PTR_DAT_000b758c + -0x15e0" identifier + number_literal) )))))) )) (compound_statement "{\n          dVar31 = *(double *)(PTR_opt_000b746c + 0x120) - (dVar25 - dVar29);\n          if (dVar31 < 0.0) {\n            puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n            *puVar10 = 0x91;\n            puVar20 = (undefined8 *)0xffffffff;\n            goto LAB_00051040;\n          }\n        }" { (expression_statement "dVar31 = *(double *)(PTR_opt_000b746c + 0x120) - (dVar25 - dVar29);" (assignment_expression "dVar31 = *(double *)(PTR_opt_000b746c + 0x120) - (dVar25 - dVar29)" identifier = (binary_expression "*(double *)(PTR_opt_000b746c + 0x120) - (dVar25 - dVar29)" (pointer_expression "*(double *)(PTR_opt_000b746c + 0x120)" * (cast_expression "(double *)(PTR_opt_000b746c + 0x120)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_opt_000b746c + 0x120)" ( (binary_expression "PTR_opt_000b746c + 0x120" identifier + number_literal) )))) - (parenthesized_expression "(dVar25 - dVar29)" ( (binary_expression "dVar25 - dVar29" identifier - identifier) )))) ;) (if_statement "if (dVar31 < 0.0) {\n            puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n            *puVar10 = 0x91;\n            puVar20 = (undefined8 *)0xffffffff;\n            goto LAB_00051040;\n          }" if (parenthesized_expression "(dVar31 < 0.0)" ( (binary_expression "dVar31 < 0.0" identifier < number_literal) )) (compound_statement "{\n            puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n            *puVar10 = 0x91;\n            puVar20 = (undefined8 *)0xffffffff;\n            goto LAB_00051040;\n          }" { (expression_statement "puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();" (assignment_expression "puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_000b7eb8)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_000b7eb8)()" (parenthesized_expression "(*(code *)PTR___errno_location_000b7eb8)" ( (pointer_expression "*(code *)PTR___errno_location_000b7eb8" * (cast_expression "(code *)PTR___errno_location_000b7eb8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "*puVar10 = 0x91;" (assignment_expression "*puVar10 = 0x91" (pointer_expression "*puVar10" * identifier) = number_literal) ;) (expression_statement "puVar20 = (undefined8 *)0xffffffff;" (assignment_expression "puVar20 = (undefined8 *)0xffffffff" identifier = (cast_expression "(undefined8 *)0xffffffff" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_00051040;" goto statement_identifier ;) })) }) (else_clause "else {\n          dVar31 = *(double *)(PTR_DAT_000b758c + -0x15e0);\n        }" else (compound_statement "{\n          dVar31 = *(double *)(PTR_DAT_000b758c + -0x15e0);\n        }" { (expression_statement "dVar31 = *(double *)(PTR_DAT_000b758c + -0x15e0);" (assignment_expression "dVar31 = *(double *)(PTR_DAT_000b758c + -0x15e0)" identifier = (pointer_expression "*(double *)(PTR_DAT_000b758c + -0x15e0)" * (cast_expression "(double *)(PTR_DAT_000b758c + -0x15e0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000b758c + -0x15e0)" ( (binary_expression "PTR_DAT_000b758c + -0x15e0" identifier + number_literal) ))))) ;) }))) }))) (expression_statement "puVar9 = puVar4;" (assignment_expression "puVar9 = puVar4" identifier = identifier) ;) (expression_statement "puVar24 = (undefined8 *)(*(code *)PTR_fd_read_000b7770)(param_2,puVar4);" (assignment_expression "puVar24 = (undefined8 *)(*(code *)PTR_fd_read_000b7770)(param_2,puVar4)" identifier = (cast_expression "(undefined8 *)(*(code *)PTR_fd_read_000b7770)(param_2,puVar4)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_fd_read_000b7770)(param_2,puVar4)" (parenthesized_expression "(*(code *)PTR_fd_read_000b7770)" ( (pointer_expression "*(code *)PTR_fd_read_000b7770" * (cast_expression "(code *)PTR_fd_read_000b7770" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2,puVar4)" ( identifier , identifier ))))) ;) (expression_statement "local_120 = dVar31;" (assignment_expression "local_120 = dVar31" identifier = identifier) ;) (if_statement "if (-1 < (int)puVar24) goto LAB_000516fc;" if (parenthesized_expression "(-1 < (int)puVar24)" ( (binary_expression "-1 < (int)puVar24" number_literal < (cast_expression "(int)puVar24" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_000516fc;" goto statement_identifier ;)) (expression_statement "piVar14 = (int *)(*(code *)PTR___errno_location_000b7eb8)();" (assignment_expression "piVar14 = (int *)(*(code *)PTR___errno_location_000b7eb8)()" identifier = (cast_expression "(int *)(*(code *)PTR___errno_location_000b7eb8)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_000b7eb8)()" (parenthesized_expression "(*(code *)PTR___errno_location_000b7eb8)" ( (pointer_expression "*(code *)PTR___errno_location_000b7eb8" * (cast_expression "(code *)PTR___errno_location_000b7eb8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "dVar25 = (double)CONCAT44(puVar15,puVar18);" (assignment_expression "dVar25 = (double)CONCAT44(puVar15,puVar18)" identifier = (cast_expression "(double)CONCAT44(puVar15,puVar18)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(puVar15,puVar18)" identifier (argument_list "(puVar15,puVar18)" ( identifier , identifier ))))) ;) (expression_statement "local_120._0_4_ = (undefined8 *)((ulonglong)dVar31 >> 0x20);" (assignment_expression "local_120._0_4_ = (undefined8 *)((ulonglong)dVar31 >> 0x20)" (field_expression "local_120._0_4_" identifier . field_identifier) = (cast_expression "(undefined8 *)((ulonglong)dVar31 >> 0x20)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulonglong)dVar31 >> 0x20)" ( (binary_expression "(ulonglong)dVar31 >> 0x20" (cast_expression "(ulonglong)dVar31" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (*piVar14 != 0x91) goto LAB_000518d4;" if (parenthesized_expression "(*piVar14 != 0x91)" ( (binary_expression "*piVar14 != 0x91" (pointer_expression "*piVar14" * identifier) != number_literal) )) (goto_statement "goto LAB_000518d4;" goto statement_identifier ;)) (if_statement "if (iVar7 == 0) {\n        if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n          ptimer_measure(local_104);\n          puVar24 = (undefined8 *)0x0;\n          goto LAB_00051748;\n        }\n        puVar24 = (undefined8 *)0x0;\nLAB_00051720:\n        dVar25 = (double)CONCAT44(puVar15,puVar18);\n        if (param_11 != (undefined8 *)0x0) {\n          ptimer_measure(local_104);\n          dVar31 = local_120;\n          if (0 < (int)puVar24) goto LAB_000515b0;\n          goto LAB_00051748;\n        }\n        if (0 < (int)puVar24) goto LAB_000515c4;\n      }\n      else {\n        ptimer_measure(local_104);\n        puVar24 = (undefined8 *)0x0;\nLAB_00051748:\n        local_120 = dVar31;\n        dVar25 = (double)CONCAT44(puVar15,puVar18);\n        if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n          dVar30 = (double)ptimer_read(local_104);\n          puVar21 = PTR_DAT_000b7720;\n          dVar30 = dVar30 - *(double *)(PTR_DAT_000b7720 + -0x2fe0);\n          puVar20 = (undefined8 *)((int)puVar24 + *(int *)(PTR_DAT_000b7720 + -0x2fe4));\n          iVar17 = (uint)(puVar20 < puVar24) +\n                   ((int)puVar24 >> 0x1f) + *(int *)(PTR_DAT_000b7720 + -0x2fe8);\n          *(int *)(PTR_DAT_000b7720 + -0x2fe8) = iVar17;\n          *(undefined8 **)(puVar21 + -0x2fe4) = puVar20;\n          dVar31 = (double)(*(code *)PTR_FUN_000b78f4)(iVar17,puVar20);\n          puVar9 = *(undefined8 **)(PTR_opt_000b746c + 0x15c);\n          dVar27 = (double)(*(code *)PTR_FUN_000b78f4)\n                                     (*(undefined4 *)(PTR_opt_000b746c + 0x158),puVar9);\n          dVar25 = (double)CONCAT44(puVar15,puVar18);\n          if (dVar30 < dVar31 / dVar27) {\n            dVar30 = (dVar31 / dVar27 - dVar30) + *(double *)(PTR_DAT_000b7720 + -0x2fd8);\n            if (dVar30 < dVar32) {\n              if (PTR_opt_000b746c[0x16b] != '\0') {\n                uVar11 = number_to_static_string(iVar17,puVar20);\n                local_120 = (double)((ulonglong)uVar11 << 0x20);\n                dVar25 = dVar30 * *(double *)(puVar2 + -0x15d8);\n                debug_logprintf(PTR_DAT_000b758c + -0x1864);\n                puVar9 = puVar20;\n              }\n              goto LAB_0005175c;\n            }\n            if (PTR_opt_000b746c[0x16b] != '\0') {\n              uVar11 = number_to_static_string(iVar17,puVar20);\n              local_120 = (double)((ulonglong)uVar11 << 0x20);\n              dVar25 = dVar30 * dVar28;\n              debug_logprintf(PTR_DAT_000b758c + -0x183c);\n              puVar9 = puVar20;\n            }\n            dVar31 = (double)ptimer_read(local_104);\n            xsleep(dVar30);\n            dVar27 = (double)ptimer_measure(local_104);\n            dVar30 = dVar30 - (dVar27 - dVar31);\n            if (dVar33 < dVar30) {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x2580);\n            }\n            else if (dVar34 <= dVar30) {\n              *(double *)(PTR_DAT_000b7720 + -0x2fd8) = dVar30;\n            }\n            else {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x15d0);\n            }\n          }\n          puVar21 = PTR_DAT_000b7720;\n          *(undefined4 *)(PTR_DAT_000b7720 + -0x2fe4) = 0;\n          *(undefined4 *)(puVar21 + -0x2fe8) = 0;\n          uVar26 = ptimer_read(local_104);\n          *(undefined8 *)(puVar21 + -0x2fe0) = uVar26;\n        }\n      }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n        if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n          ptimer_measure(local_104);\n          puVar24 = (undefined8 *)0x0;\n          goto LAB_00051748;\n        }\n        puVar24 = (undefined8 *)0x0;\nLAB_00051720:\n        dVar25 = (double)CONCAT44(puVar15,puVar18);\n        if (param_11 != (undefined8 *)0x0) {\n          ptimer_measure(local_104);\n          dVar31 = local_120;\n          if (0 < (int)puVar24) goto LAB_000515b0;\n          goto LAB_00051748;\n        }\n        if (0 < (int)puVar24) goto LAB_000515c4;\n      }" { (if_statement "if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n          ptimer_measure(local_104);\n          puVar24 = (undefined8 *)0x0;\n          goto LAB_00051748;\n        }" if (parenthesized_expression "(*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0)" ( (binary_expression "*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0" (binary_expression "*(int *)(PTR_opt_000b746c + 0x158) != 0" (pointer_expression "*(int *)(PTR_opt_000b746c + 0x158)" * (cast_expression "(int *)(PTR_opt_000b746c + 0x158)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_opt_000b746c + 0x158)" ( (binary_expression "PTR_opt_000b746c + 0x158" identifier + number_literal) )))) != number_literal) || (binary_expression "*(int *)(PTR_opt_000b746c + 0x15c) != 0" (pointer_expression "*(int *)(PTR_opt_000b746c + 0x15c)" * (cast_expression "(int *)(PTR_opt_000b746c + 0x15c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_opt_000b746c + 0x15c)" ( (binary_expression "PTR_opt_000b746c + 0x15c" identifier + number_literal) )))) != number_literal)) )) (compound_statement "{\n          ptimer_measure(local_104);\n          puVar24 = (undefined8 *)0x0;\n          goto LAB_00051748;\n        }" { (expression_statement "ptimer_measure(local_104);" (call_expression "ptimer_measure(local_104)" identifier (argument_list "(local_104)" ( identifier ))) ;) (expression_statement "puVar24 = (undefined8 *)0x0;" (assignment_expression "puVar24 = (undefined8 *)0x0" identifier = (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_00051748;" goto statement_identifier ;) })) (expression_statement "puVar24 = (undefined8 *)0x0;" (assignment_expression "puVar24 = (undefined8 *)0x0" identifier = (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_00051720:\n        dVar25 = (double)CONCAT44(puVar15,puVar18);" statement_identifier : (expression_statement "dVar25 = (double)CONCAT44(puVar15,puVar18);" (assignment_expression "dVar25 = (double)CONCAT44(puVar15,puVar18)" identifier = (cast_expression "(double)CONCAT44(puVar15,puVar18)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(puVar15,puVar18)" identifier (argument_list "(puVar15,puVar18)" ( identifier , identifier ))))) ;)) (if_statement "if (param_11 != (undefined8 *)0x0) {\n          ptimer_measure(local_104);\n          dVar31 = local_120;\n          if (0 < (int)puVar24) goto LAB_000515b0;\n          goto LAB_00051748;\n        }" if (parenthesized_expression "(param_11 != (undefined8 *)0x0)" ( (binary_expression "param_11 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          ptimer_measure(local_104);\n          dVar31 = local_120;\n          if (0 < (int)puVar24) goto LAB_000515b0;\n          goto LAB_00051748;\n        }" { (expression_statement "ptimer_measure(local_104);" (call_expression "ptimer_measure(local_104)" identifier (argument_list "(local_104)" ( identifier ))) ;) (expression_statement "dVar31 = local_120;" (assignment_expression "dVar31 = local_120" identifier = identifier) ;) (if_statement "if (0 < (int)puVar24) goto LAB_000515b0;" if (parenthesized_expression "(0 < (int)puVar24)" ( (binary_expression "0 < (int)puVar24" number_literal < (cast_expression "(int)puVar24" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_000515b0;" goto statement_identifier ;)) (goto_statement "goto LAB_00051748;" goto statement_identifier ;) })) (if_statement "if (0 < (int)puVar24) goto LAB_000515c4;" if (parenthesized_expression "(0 < (int)puVar24)" ( (binary_expression "0 < (int)puVar24" number_literal < (cast_expression "(int)puVar24" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_000515c4;" goto statement_identifier ;)) }) (else_clause "else {\n        ptimer_measure(local_104);\n        puVar24 = (undefined8 *)0x0;\nLAB_00051748:\n        local_120 = dVar31;\n        dVar25 = (double)CONCAT44(puVar15,puVar18);\n        if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n          dVar30 = (double)ptimer_read(local_104);\n          puVar21 = PTR_DAT_000b7720;\n          dVar30 = dVar30 - *(double *)(PTR_DAT_000b7720 + -0x2fe0);\n          puVar20 = (undefined8 *)((int)puVar24 + *(int *)(PTR_DAT_000b7720 + -0x2fe4));\n          iVar17 = (uint)(puVar20 < puVar24) +\n                   ((int)puVar24 >> 0x1f) + *(int *)(PTR_DAT_000b7720 + -0x2fe8);\n          *(int *)(PTR_DAT_000b7720 + -0x2fe8) = iVar17;\n          *(undefined8 **)(puVar21 + -0x2fe4) = puVar20;\n          dVar31 = (double)(*(code *)PTR_FUN_000b78f4)(iVar17,puVar20);\n          puVar9 = *(undefined8 **)(PTR_opt_000b746c + 0x15c);\n          dVar27 = (double)(*(code *)PTR_FUN_000b78f4)\n                                     (*(undefined4 *)(PTR_opt_000b746c + 0x158),puVar9);\n          dVar25 = (double)CONCAT44(puVar15,puVar18);\n          if (dVar30 < dVar31 / dVar27) {\n            dVar30 = (dVar31 / dVar27 - dVar30) + *(double *)(PTR_DAT_000b7720 + -0x2fd8);\n            if (dVar30 < dVar32) {\n              if (PTR_opt_000b746c[0x16b] != '\0') {\n                uVar11 = number_to_static_string(iVar17,puVar20);\n                local_120 = (double)((ulonglong)uVar11 << 0x20);\n                dVar25 = dVar30 * *(double *)(puVar2 + -0x15d8);\n                debug_logprintf(PTR_DAT_000b758c + -0x1864);\n                puVar9 = puVar20;\n              }\n              goto LAB_0005175c;\n            }\n            if (PTR_opt_000b746c[0x16b] != '\0') {\n              uVar11 = number_to_static_string(iVar17,puVar20);\n              local_120 = (double)((ulonglong)uVar11 << 0x20);\n              dVar25 = dVar30 * dVar28;\n              debug_logprintf(PTR_DAT_000b758c + -0x183c);\n              puVar9 = puVar20;\n            }\n            dVar31 = (double)ptimer_read(local_104);\n            xsleep(dVar30);\n            dVar27 = (double)ptimer_measure(local_104);\n            dVar30 = dVar30 - (dVar27 - dVar31);\n            if (dVar33 < dVar30) {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x2580);\n            }\n            else if (dVar34 <= dVar30) {\n              *(double *)(PTR_DAT_000b7720 + -0x2fd8) = dVar30;\n            }\n            else {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x15d0);\n            }\n          }\n          puVar21 = PTR_DAT_000b7720;\n          *(undefined4 *)(PTR_DAT_000b7720 + -0x2fe4) = 0;\n          *(undefined4 *)(puVar21 + -0x2fe8) = 0;\n          uVar26 = ptimer_read(local_104);\n          *(undefined8 *)(puVar21 + -0x2fe0) = uVar26;\n        }\n      }" else (compound_statement "{\n        ptimer_measure(local_104);\n        puVar24 = (undefined8 *)0x0;\nLAB_00051748:\n        local_120 = dVar31;\n        dVar25 = (double)CONCAT44(puVar15,puVar18);\n        if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n          dVar30 = (double)ptimer_read(local_104);\n          puVar21 = PTR_DAT_000b7720;\n          dVar30 = dVar30 - *(double *)(PTR_DAT_000b7720 + -0x2fe0);\n          puVar20 = (undefined8 *)((int)puVar24 + *(int *)(PTR_DAT_000b7720 + -0x2fe4));\n          iVar17 = (uint)(puVar20 < puVar24) +\n                   ((int)puVar24 >> 0x1f) + *(int *)(PTR_DAT_000b7720 + -0x2fe8);\n          *(int *)(PTR_DAT_000b7720 + -0x2fe8) = iVar17;\n          *(undefined8 **)(puVar21 + -0x2fe4) = puVar20;\n          dVar31 = (double)(*(code *)PTR_FUN_000b78f4)(iVar17,puVar20);\n          puVar9 = *(undefined8 **)(PTR_opt_000b746c + 0x15c);\n          dVar27 = (double)(*(code *)PTR_FUN_000b78f4)\n                                     (*(undefined4 *)(PTR_opt_000b746c + 0x158),puVar9);\n          dVar25 = (double)CONCAT44(puVar15,puVar18);\n          if (dVar30 < dVar31 / dVar27) {\n            dVar30 = (dVar31 / dVar27 - dVar30) + *(double *)(PTR_DAT_000b7720 + -0x2fd8);\n            if (dVar30 < dVar32) {\n              if (PTR_opt_000b746c[0x16b] != '\0') {\n                uVar11 = number_to_static_string(iVar17,puVar20);\n                local_120 = (double)((ulonglong)uVar11 << 0x20);\n                dVar25 = dVar30 * *(double *)(puVar2 + -0x15d8);\n                debug_logprintf(PTR_DAT_000b758c + -0x1864);\n                puVar9 = puVar20;\n              }\n              goto LAB_0005175c;\n            }\n            if (PTR_opt_000b746c[0x16b] != '\0') {\n              uVar11 = number_to_static_string(iVar17,puVar20);\n              local_120 = (double)((ulonglong)uVar11 << 0x20);\n              dVar25 = dVar30 * dVar28;\n              debug_logprintf(PTR_DAT_000b758c + -0x183c);\n              puVar9 = puVar20;\n            }\n            dVar31 = (double)ptimer_read(local_104);\n            xsleep(dVar30);\n            dVar27 = (double)ptimer_measure(local_104);\n            dVar30 = dVar30 - (dVar27 - dVar31);\n            if (dVar33 < dVar30) {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x2580);\n            }\n            else if (dVar34 <= dVar30) {\n              *(double *)(PTR_DAT_000b7720 + -0x2fd8) = dVar30;\n            }\n            else {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x15d0);\n            }\n          }\n          puVar21 = PTR_DAT_000b7720;\n          *(undefined4 *)(PTR_DAT_000b7720 + -0x2fe4) = 0;\n          *(undefined4 *)(puVar21 + -0x2fe8) = 0;\n          uVar26 = ptimer_read(local_104);\n          *(undefined8 *)(puVar21 + -0x2fe0) = uVar26;\n        }\n      }" { (expression_statement "ptimer_measure(local_104);" (call_expression "ptimer_measure(local_104)" identifier (argument_list "(local_104)" ( identifier ))) ;) (expression_statement "puVar24 = (undefined8 *)0x0;" (assignment_expression "puVar24 = (undefined8 *)0x0" identifier = (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_00051748:\n        local_120 = dVar31;" statement_identifier : (expression_statement "local_120 = dVar31;" (assignment_expression "local_120 = dVar31" identifier = identifier) ;)) (expression_statement "dVar25 = (double)CONCAT44(puVar15,puVar18);" (assignment_expression "dVar25 = (double)CONCAT44(puVar15,puVar18)" identifier = (cast_expression "(double)CONCAT44(puVar15,puVar18)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(puVar15,puVar18)" identifier (argument_list "(puVar15,puVar18)" ( identifier , identifier ))))) ;) (if_statement "if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n          dVar30 = (double)ptimer_read(local_104);\n          puVar21 = PTR_DAT_000b7720;\n          dVar30 = dVar30 - *(double *)(PTR_DAT_000b7720 + -0x2fe0);\n          puVar20 = (undefined8 *)((int)puVar24 + *(int *)(PTR_DAT_000b7720 + -0x2fe4));\n          iVar17 = (uint)(puVar20 < puVar24) +\n                   ((int)puVar24 >> 0x1f) + *(int *)(PTR_DAT_000b7720 + -0x2fe8);\n          *(int *)(PTR_DAT_000b7720 + -0x2fe8) = iVar17;\n          *(undefined8 **)(puVar21 + -0x2fe4) = puVar20;\n          dVar31 = (double)(*(code *)PTR_FUN_000b78f4)(iVar17,puVar20);\n          puVar9 = *(undefined8 **)(PTR_opt_000b746c + 0x15c);\n          dVar27 = (double)(*(code *)PTR_FUN_000b78f4)\n                                     (*(undefined4 *)(PTR_opt_000b746c + 0x158),puVar9);\n          dVar25 = (double)CONCAT44(puVar15,puVar18);\n          if (dVar30 < dVar31 / dVar27) {\n            dVar30 = (dVar31 / dVar27 - dVar30) + *(double *)(PTR_DAT_000b7720 + -0x2fd8);\n            if (dVar30 < dVar32) {\n              if (PTR_opt_000b746c[0x16b] != '\0') {\n                uVar11 = number_to_static_string(iVar17,puVar20);\n                local_120 = (double)((ulonglong)uVar11 << 0x20);\n                dVar25 = dVar30 * *(double *)(puVar2 + -0x15d8);\n                debug_logprintf(PTR_DAT_000b758c + -0x1864);\n                puVar9 = puVar20;\n              }\n              goto LAB_0005175c;\n            }\n            if (PTR_opt_000b746c[0x16b] != '\0') {\n              uVar11 = number_to_static_string(iVar17,puVar20);\n              local_120 = (double)((ulonglong)uVar11 << 0x20);\n              dVar25 = dVar30 * dVar28;\n              debug_logprintf(PTR_DAT_000b758c + -0x183c);\n              puVar9 = puVar20;\n            }\n            dVar31 = (double)ptimer_read(local_104);\n            xsleep(dVar30);\n            dVar27 = (double)ptimer_measure(local_104);\n            dVar30 = dVar30 - (dVar27 - dVar31);\n            if (dVar33 < dVar30) {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x2580);\n            }\n            else if (dVar34 <= dVar30) {\n              *(double *)(PTR_DAT_000b7720 + -0x2fd8) = dVar30;\n            }\n            else {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x15d0);\n            }\n          }\n          puVar21 = PTR_DAT_000b7720;\n          *(undefined4 *)(PTR_DAT_000b7720 + -0x2fe4) = 0;\n          *(undefined4 *)(puVar21 + -0x2fe8) = 0;\n          uVar26 = ptimer_read(local_104);\n          *(undefined8 *)(puVar21 + -0x2fe0) = uVar26;\n        }" if (parenthesized_expression "(*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0)" ( (binary_expression "*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0" (binary_expression "*(int *)(PTR_opt_000b746c + 0x158) != 0" (pointer_expression "*(int *)(PTR_opt_000b746c + 0x158)" * (cast_expression "(int *)(PTR_opt_000b746c + 0x158)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_opt_000b746c + 0x158)" ( (binary_expression "PTR_opt_000b746c + 0x158" identifier + number_literal) )))) != number_literal) || (binary_expression "*(int *)(PTR_opt_000b746c + 0x15c) != 0" (pointer_expression "*(int *)(PTR_opt_000b746c + 0x15c)" * (cast_expression "(int *)(PTR_opt_000b746c + 0x15c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_opt_000b746c + 0x15c)" ( (binary_expression "PTR_opt_000b746c + 0x15c" identifier + number_literal) )))) != number_literal)) )) (compound_statement "{\n          dVar30 = (double)ptimer_read(local_104);\n          puVar21 = PTR_DAT_000b7720;\n          dVar30 = dVar30 - *(double *)(PTR_DAT_000b7720 + -0x2fe0);\n          puVar20 = (undefined8 *)((int)puVar24 + *(int *)(PTR_DAT_000b7720 + -0x2fe4));\n          iVar17 = (uint)(puVar20 < puVar24) +\n                   ((int)puVar24 >> 0x1f) + *(int *)(PTR_DAT_000b7720 + -0x2fe8);\n          *(int *)(PTR_DAT_000b7720 + -0x2fe8) = iVar17;\n          *(undefined8 **)(puVar21 + -0x2fe4) = puVar20;\n          dVar31 = (double)(*(code *)PTR_FUN_000b78f4)(iVar17,puVar20);\n          puVar9 = *(undefined8 **)(PTR_opt_000b746c + 0x15c);\n          dVar27 = (double)(*(code *)PTR_FUN_000b78f4)\n                                     (*(undefined4 *)(PTR_opt_000b746c + 0x158),puVar9);\n          dVar25 = (double)CONCAT44(puVar15,puVar18);\n          if (dVar30 < dVar31 / dVar27) {\n            dVar30 = (dVar31 / dVar27 - dVar30) + *(double *)(PTR_DAT_000b7720 + -0x2fd8);\n            if (dVar30 < dVar32) {\n              if (PTR_opt_000b746c[0x16b] != '\0') {\n                uVar11 = number_to_static_string(iVar17,puVar20);\n                local_120 = (double)((ulonglong)uVar11 << 0x20);\n                dVar25 = dVar30 * *(double *)(puVar2 + -0x15d8);\n                debug_logprintf(PTR_DAT_000b758c + -0x1864);\n                puVar9 = puVar20;\n              }\n              goto LAB_0005175c;\n            }\n            if (PTR_opt_000b746c[0x16b] != '\0') {\n              uVar11 = number_to_static_string(iVar17,puVar20);\n              local_120 = (double)((ulonglong)uVar11 << 0x20);\n              dVar25 = dVar30 * dVar28;\n              debug_logprintf(PTR_DAT_000b758c + -0x183c);\n              puVar9 = puVar20;\n            }\n            dVar31 = (double)ptimer_read(local_104);\n            xsleep(dVar30);\n            dVar27 = (double)ptimer_measure(local_104);\n            dVar30 = dVar30 - (dVar27 - dVar31);\n            if (dVar33 < dVar30) {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x2580);\n            }\n            else if (dVar34 <= dVar30) {\n              *(double *)(PTR_DAT_000b7720 + -0x2fd8) = dVar30;\n            }\n            else {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x15d0);\n            }\n          }\n          puVar21 = PTR_DAT_000b7720;\n          *(undefined4 *)(PTR_DAT_000b7720 + -0x2fe4) = 0;\n          *(undefined4 *)(puVar21 + -0x2fe8) = 0;\n          uVar26 = ptimer_read(local_104);\n          *(undefined8 *)(puVar21 + -0x2fe0) = uVar26;\n        }" { (expression_statement "dVar30 = (double)ptimer_read(local_104);" (assignment_expression "dVar30 = (double)ptimer_read(local_104)" identifier = (cast_expression "(double)ptimer_read(local_104)" ( (type_descriptor "double" primitive_type) ) (call_expression "ptimer_read(local_104)" identifier (argument_list "(local_104)" ( identifier ))))) ;) (expression_statement "puVar21 = PTR_DAT_000b7720;" (assignment_expression "puVar21 = PTR_DAT_000b7720" identifier = identifier) ;) (expression_statement "dVar30 = dVar30 - *(double *)(PTR_DAT_000b7720 + -0x2fe0);" (assignment_expression "dVar30 = dVar30 - *(double *)(PTR_DAT_000b7720 + -0x2fe0)" identifier = (binary_expression "dVar30 - *(double *)(PTR_DAT_000b7720 + -0x2fe0)" identifier - (pointer_expression "*(double *)(PTR_DAT_000b7720 + -0x2fe0)" * (cast_expression "(double *)(PTR_DAT_000b7720 + -0x2fe0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000b7720 + -0x2fe0)" ( (binary_expression "PTR_DAT_000b7720 + -0x2fe0" identifier + number_literal) )))))) ;) (expression_statement "puVar20 = (undefined8 *)((int)puVar24 + *(int *)(PTR_DAT_000b7720 + -0x2fe4));" (assignment_expression "puVar20 = (undefined8 *)((int)puVar24 + *(int *)(PTR_DAT_000b7720 + -0x2fe4))" identifier = (cast_expression "(undefined8 *)((int)puVar24 + *(int *)(PTR_DAT_000b7720 + -0x2fe4))" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar24 + *(int *)(PTR_DAT_000b7720 + -0x2fe4))" ( (binary_expression "(int)puVar24 + *(int *)(PTR_DAT_000b7720 + -0x2fe4)" (cast_expression "(int)puVar24" ( (type_descriptor "int" primitive_type) ) identifier) + (pointer_expression "*(int *)(PTR_DAT_000b7720 + -0x2fe4)" * (cast_expression "(int *)(PTR_DAT_000b7720 + -0x2fe4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000b7720 + -0x2fe4)" ( (binary_expression "PTR_DAT_000b7720 + -0x2fe4" identifier + number_literal) ))))) )))) ;) (expression_statement "iVar17 = (uint)(puVar20 < puVar24) +\n                   ((int)puVar24 >> 0x1f) + *(int *)(PTR_DAT_000b7720 + -0x2fe8);" (assignment_expression "iVar17 = (uint)(puVar20 < puVar24) +\n                   ((int)puVar24 >> 0x1f) + *(int *)(PTR_DAT_000b7720 + -0x2fe8)" identifier = (binary_expression "(uint)(puVar20 < puVar24) +\n                   ((int)puVar24 >> 0x1f) + *(int *)(PTR_DAT_000b7720 + -0x2fe8)" (binary_expression "(uint)(puVar20 < puVar24) +\n                   ((int)puVar24 >> 0x1f)" (call_expression "(uint)(puVar20 < puVar24)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar20 < puVar24)" ( (binary_expression "puVar20 < puVar24" identifier < identifier) ))) + (parenthesized_expression "((int)puVar24 >> 0x1f)" ( (binary_expression "(int)puVar24 >> 0x1f" (cast_expression "(int)puVar24" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ))) + (pointer_expression "*(int *)(PTR_DAT_000b7720 + -0x2fe8)" * (cast_expression "(int *)(PTR_DAT_000b7720 + -0x2fe8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000b7720 + -0x2fe8)" ( (binary_expression "PTR_DAT_000b7720 + -0x2fe8" identifier + number_literal) )))))) ;) (expression_statement "*(int *)(PTR_DAT_000b7720 + -0x2fe8) = iVar17;" (assignment_expression "*(int *)(PTR_DAT_000b7720 + -0x2fe8) = iVar17" (pointer_expression "*(int *)(PTR_DAT_000b7720 + -0x2fe8)" * (cast_expression "(int *)(PTR_DAT_000b7720 + -0x2fe8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000b7720 + -0x2fe8)" ( (binary_expression "PTR_DAT_000b7720 + -0x2fe8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined8 **)(puVar21 + -0x2fe4) = puVar20;" (assignment_expression "*(undefined8 **)(puVar21 + -0x2fe4) = puVar20" (pointer_expression "*(undefined8 **)(puVar21 + -0x2fe4)" * (cast_expression "(undefined8 **)(puVar21 + -0x2fe4)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x2fe4)" ( (binary_expression "puVar21 + -0x2fe4" identifier + number_literal) )))) = identifier) ;) (expression_statement "dVar31 = (double)(*(code *)PTR_FUN_000b78f4)(iVar17,puVar20);" (assignment_expression "dVar31 = (double)(*(code *)PTR_FUN_000b78f4)(iVar17,puVar20)" identifier = (cast_expression "(double)(*(code *)PTR_FUN_000b78f4)(iVar17,puVar20)" ( (type_descriptor "double" primitive_type) ) (call_expression "(*(code *)PTR_FUN_000b78f4)(iVar17,puVar20)" (parenthesized_expression "(*(code *)PTR_FUN_000b78f4)" ( (pointer_expression "*(code *)PTR_FUN_000b78f4" * (cast_expression "(code *)PTR_FUN_000b78f4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar17,puVar20)" ( identifier , identifier ))))) ;) (expression_statement "puVar9 = *(undefined8 **)(PTR_opt_000b746c + 0x15c);" (assignment_expression "puVar9 = *(undefined8 **)(PTR_opt_000b746c + 0x15c)" identifier = (pointer_expression "*(undefined8 **)(PTR_opt_000b746c + 0x15c)" * (cast_expression "(undefined8 **)(PTR_opt_000b746c + 0x15c)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_opt_000b746c + 0x15c)" ( (binary_expression "PTR_opt_000b746c + 0x15c" identifier + number_literal) ))))) ;) (expression_statement "dVar27 = (double)(*(code *)PTR_FUN_000b78f4)\n                                     (*(undefined4 *)(PTR_opt_000b746c + 0x158),puVar9);" (assignment_expression "dVar27 = (double)(*(code *)PTR_FUN_000b78f4)\n                                     (*(undefined4 *)(PTR_opt_000b746c + 0x158),puVar9)" identifier = (cast_expression "(double)(*(code *)PTR_FUN_000b78f4)\n                                     (*(undefined4 *)(PTR_opt_000b746c + 0x158),puVar9)" ( (type_descriptor "double" primitive_type) ) (call_expression "(*(code *)PTR_FUN_000b78f4)\n                                     (*(undefined4 *)(PTR_opt_000b746c + 0x158),puVar9)" (parenthesized_expression "(*(code *)PTR_FUN_000b78f4)" ( (pointer_expression "*(code *)PTR_FUN_000b78f4" * (cast_expression "(code *)PTR_FUN_000b78f4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(PTR_opt_000b746c + 0x158),puVar9)" ( (pointer_expression "*(undefined4 *)(PTR_opt_000b746c + 0x158)" * (cast_expression "(undefined4 *)(PTR_opt_000b746c + 0x158)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_opt_000b746c + 0x158)" ( (binary_expression "PTR_opt_000b746c + 0x158" identifier + number_literal) )))) , identifier ))))) ;) (expression_statement "dVar25 = (double)CONCAT44(puVar15,puVar18);" (assignment_expression "dVar25 = (double)CONCAT44(puVar15,puVar18)" identifier = (cast_expression "(double)CONCAT44(puVar15,puVar18)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(puVar15,puVar18)" identifier (argument_list "(puVar15,puVar18)" ( identifier , identifier ))))) ;) (if_statement "if (dVar30 < dVar31 / dVar27) {\n            dVar30 = (dVar31 / dVar27 - dVar30) + *(double *)(PTR_DAT_000b7720 + -0x2fd8);\n            if (dVar30 < dVar32) {\n              if (PTR_opt_000b746c[0x16b] != '\0') {\n                uVar11 = number_to_static_string(iVar17,puVar20);\n                local_120 = (double)((ulonglong)uVar11 << 0x20);\n                dVar25 = dVar30 * *(double *)(puVar2 + -0x15d8);\n                debug_logprintf(PTR_DAT_000b758c + -0x1864);\n                puVar9 = puVar20;\n              }\n              goto LAB_0005175c;\n            }\n            if (PTR_opt_000b746c[0x16b] != '\0') {\n              uVar11 = number_to_static_string(iVar17,puVar20);\n              local_120 = (double)((ulonglong)uVar11 << 0x20);\n              dVar25 = dVar30 * dVar28;\n              debug_logprintf(PTR_DAT_000b758c + -0x183c);\n              puVar9 = puVar20;\n            }\n            dVar31 = (double)ptimer_read(local_104);\n            xsleep(dVar30);\n            dVar27 = (double)ptimer_measure(local_104);\n            dVar30 = dVar30 - (dVar27 - dVar31);\n            if (dVar33 < dVar30) {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x2580);\n            }\n            else if (dVar34 <= dVar30) {\n              *(double *)(PTR_DAT_000b7720 + -0x2fd8) = dVar30;\n            }\n            else {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x15d0);\n            }\n          }" if (parenthesized_expression "(dVar30 < dVar31 / dVar27)" ( (binary_expression "dVar30 < dVar31 / dVar27" identifier < (binary_expression "dVar31 / dVar27" identifier / identifier)) )) (compound_statement "{\n            dVar30 = (dVar31 / dVar27 - dVar30) + *(double *)(PTR_DAT_000b7720 + -0x2fd8);\n            if (dVar30 < dVar32) {\n              if (PTR_opt_000b746c[0x16b] != '\0') {\n                uVar11 = number_to_static_string(iVar17,puVar20);\n                local_120 = (double)((ulonglong)uVar11 << 0x20);\n                dVar25 = dVar30 * *(double *)(puVar2 + -0x15d8);\n                debug_logprintf(PTR_DAT_000b758c + -0x1864);\n                puVar9 = puVar20;\n              }\n              goto LAB_0005175c;\n            }\n            if (PTR_opt_000b746c[0x16b] != '\0') {\n              uVar11 = number_to_static_string(iVar17,puVar20);\n              local_120 = (double)((ulonglong)uVar11 << 0x20);\n              dVar25 = dVar30 * dVar28;\n              debug_logprintf(PTR_DAT_000b758c + -0x183c);\n              puVar9 = puVar20;\n            }\n            dVar31 = (double)ptimer_read(local_104);\n            xsleep(dVar30);\n            dVar27 = (double)ptimer_measure(local_104);\n            dVar30 = dVar30 - (dVar27 - dVar31);\n            if (dVar33 < dVar30) {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x2580);\n            }\n            else if (dVar34 <= dVar30) {\n              *(double *)(PTR_DAT_000b7720 + -0x2fd8) = dVar30;\n            }\n            else {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x15d0);\n            }\n          }" { (expression_statement "dVar30 = (dVar31 / dVar27 - dVar30) + *(double *)(PTR_DAT_000b7720 + -0x2fd8);" (assignment_expression "dVar30 = (dVar31 / dVar27 - dVar30) + *(double *)(PTR_DAT_000b7720 + -0x2fd8)" identifier = (binary_expression "(dVar31 / dVar27 - dVar30) + *(double *)(PTR_DAT_000b7720 + -0x2fd8)" (parenthesized_expression "(dVar31 / dVar27 - dVar30)" ( (binary_expression "dVar31 / dVar27 - dVar30" (binary_expression "dVar31 / dVar27" identifier / identifier) - identifier) )) + (pointer_expression "*(double *)(PTR_DAT_000b7720 + -0x2fd8)" * (cast_expression "(double *)(PTR_DAT_000b7720 + -0x2fd8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000b7720 + -0x2fd8)" ( (binary_expression "PTR_DAT_000b7720 + -0x2fd8" identifier + number_literal) )))))) ;) (if_statement "if (dVar30 < dVar32) {\n              if (PTR_opt_000b746c[0x16b] != '\0') {\n                uVar11 = number_to_static_string(iVar17,puVar20);\n                local_120 = (double)((ulonglong)uVar11 << 0x20);\n                dVar25 = dVar30 * *(double *)(puVar2 + -0x15d8);\n                debug_logprintf(PTR_DAT_000b758c + -0x1864);\n                puVar9 = puVar20;\n              }\n              goto LAB_0005175c;\n            }" if (parenthesized_expression "(dVar30 < dVar32)" ( (binary_expression "dVar30 < dVar32" identifier < identifier) )) (compound_statement "{\n              if (PTR_opt_000b746c[0x16b] != '\0') {\n                uVar11 = number_to_static_string(iVar17,puVar20);\n                local_120 = (double)((ulonglong)uVar11 << 0x20);\n                dVar25 = dVar30 * *(double *)(puVar2 + -0x15d8);\n                debug_logprintf(PTR_DAT_000b758c + -0x1864);\n                puVar9 = puVar20;\n              }\n              goto LAB_0005175c;\n            }" { (if_statement "if (PTR_opt_000b746c[0x16b] != '\0') {\n                uVar11 = number_to_static_string(iVar17,puVar20);\n                local_120 = (double)((ulonglong)uVar11 << 0x20);\n                dVar25 = dVar30 * *(double *)(puVar2 + -0x15d8);\n                debug_logprintf(PTR_DAT_000b758c + -0x1864);\n                puVar9 = puVar20;\n              }" if (parenthesized_expression "(PTR_opt_000b746c[0x16b] != '\0')" ( (binary_expression "PTR_opt_000b746c[0x16b] != '\0'" (subscript_expression "PTR_opt_000b746c[0x16b]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                uVar11 = number_to_static_string(iVar17,puVar20);\n                local_120 = (double)((ulonglong)uVar11 << 0x20);\n                dVar25 = dVar30 * *(double *)(puVar2 + -0x15d8);\n                debug_logprintf(PTR_DAT_000b758c + -0x1864);\n                puVar9 = puVar20;\n              }" { (expression_statement "uVar11 = number_to_static_string(iVar17,puVar20);" (assignment_expression "uVar11 = number_to_static_string(iVar17,puVar20)" identifier = (call_expression "number_to_static_string(iVar17,puVar20)" identifier (argument_list "(iVar17,puVar20)" ( identifier , identifier )))) ;) (expression_statement "local_120 = (double)((ulonglong)uVar11 << 0x20);" (assignment_expression "local_120 = (double)((ulonglong)uVar11 << 0x20)" identifier = (cast_expression "(double)((ulonglong)uVar11 << 0x20)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "((ulonglong)uVar11 << 0x20)" ( (binary_expression "(ulonglong)uVar11 << 0x20" (cast_expression "(ulonglong)uVar11" ( (type_descriptor "ulonglong" type_identifier) ) identifier) << number_literal) )))) ;) (expression_statement "dVar25 = dVar30 * *(double *)(puVar2 + -0x15d8);" (assignment_expression "dVar25 = dVar30 * *(double *)(puVar2 + -0x15d8)" identifier = (binary_expression "dVar30 * *(double *)(puVar2 + -0x15d8)" identifier * (pointer_expression "*(double *)(puVar2 + -0x15d8)" * (cast_expression "(double *)(puVar2 + -0x15d8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + -0x15d8)" ( (binary_expression "puVar2 + -0x15d8" identifier + number_literal) )))))) ;) (expression_statement "debug_logprintf(PTR_DAT_000b758c + -0x1864);" (call_expression "debug_logprintf(PTR_DAT_000b758c + -0x1864)" identifier (argument_list "(PTR_DAT_000b758c + -0x1864)" ( (binary_expression "PTR_DAT_000b758c + -0x1864" identifier + number_literal) ))) ;) (expression_statement "puVar9 = puVar20;" (assignment_expression "puVar9 = puVar20" identifier = identifier) ;) })) (goto_statement "goto LAB_0005175c;" goto statement_identifier ;) })) (if_statement "if (PTR_opt_000b746c[0x16b] != '\0') {\n              uVar11 = number_to_static_string(iVar17,puVar20);\n              local_120 = (double)((ulonglong)uVar11 << 0x20);\n              dVar25 = dVar30 * dVar28;\n              debug_logprintf(PTR_DAT_000b758c + -0x183c);\n              puVar9 = puVar20;\n            }" if (parenthesized_expression "(PTR_opt_000b746c[0x16b] != '\0')" ( (binary_expression "PTR_opt_000b746c[0x16b] != '\0'" (subscript_expression "PTR_opt_000b746c[0x16b]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              uVar11 = number_to_static_string(iVar17,puVar20);\n              local_120 = (double)((ulonglong)uVar11 << 0x20);\n              dVar25 = dVar30 * dVar28;\n              debug_logprintf(PTR_DAT_000b758c + -0x183c);\n              puVar9 = puVar20;\n            }" { (expression_statement "uVar11 = number_to_static_string(iVar17,puVar20);" (assignment_expression "uVar11 = number_to_static_string(iVar17,puVar20)" identifier = (call_expression "number_to_static_string(iVar17,puVar20)" identifier (argument_list "(iVar17,puVar20)" ( identifier , identifier )))) ;) (expression_statement "local_120 = (double)((ulonglong)uVar11 << 0x20);" (assignment_expression "local_120 = (double)((ulonglong)uVar11 << 0x20)" identifier = (cast_expression "(double)((ulonglong)uVar11 << 0x20)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "((ulonglong)uVar11 << 0x20)" ( (binary_expression "(ulonglong)uVar11 << 0x20" (cast_expression "(ulonglong)uVar11" ( (type_descriptor "ulonglong" type_identifier) ) identifier) << number_literal) )))) ;) (expression_statement "dVar25 = dVar30 * dVar28;" (assignment_expression "dVar25 = dVar30 * dVar28" identifier = (binary_expression "dVar30 * dVar28" identifier * identifier)) ;) (expression_statement "debug_logprintf(PTR_DAT_000b758c + -0x183c);" (call_expression "debug_logprintf(PTR_DAT_000b758c + -0x183c)" identifier (argument_list "(PTR_DAT_000b758c + -0x183c)" ( (binary_expression "PTR_DAT_000b758c + -0x183c" identifier + number_literal) ))) ;) (expression_statement "puVar9 = puVar20;" (assignment_expression "puVar9 = puVar20" identifier = identifier) ;) })) (expression_statement "dVar31 = (double)ptimer_read(local_104);" (assignment_expression "dVar31 = (double)ptimer_read(local_104)" identifier = (cast_expression "(double)ptimer_read(local_104)" ( (type_descriptor "double" primitive_type) ) (call_expression "ptimer_read(local_104)" identifier (argument_list "(local_104)" ( identifier ))))) ;) (expression_statement "xsleep(dVar30);" (call_expression "xsleep(dVar30)" identifier (argument_list "(dVar30)" ( identifier ))) ;) (expression_statement "dVar27 = (double)ptimer_measure(local_104);" (assignment_expression "dVar27 = (double)ptimer_measure(local_104)" identifier = (cast_expression "(double)ptimer_measure(local_104)" ( (type_descriptor "double" primitive_type) ) (call_expression "ptimer_measure(local_104)" identifier (argument_list "(local_104)" ( identifier ))))) ;) (expression_statement "dVar30 = dVar30 - (dVar27 - dVar31);" (assignment_expression "dVar30 = dVar30 - (dVar27 - dVar31)" identifier = (binary_expression "dVar30 - (dVar27 - dVar31)" identifier - (parenthesized_expression "(dVar27 - dVar31)" ( (binary_expression "dVar27 - dVar31" identifier - identifier) )))) ;) (if_statement "if (dVar33 < dVar30) {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x2580);\n            }\n            else if (dVar34 <= dVar30) {\n              *(double *)(PTR_DAT_000b7720 + -0x2fd8) = dVar30;\n            }\n            else {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x15d0);\n            }" if (parenthesized_expression "(dVar33 < dVar30)" ( (binary_expression "dVar33 < dVar30" identifier < identifier) )) (compound_statement "{\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x2580);\n            }" { (expression_statement "*(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x2580);" (assignment_expression "*(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x2580)" (pointer_expression "*(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8)" * (cast_expression "(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000b7720 + -0x2fd8)" ( (binary_expression "PTR_DAT_000b7720 + -0x2fd8" identifier + number_literal) )))) = (pointer_expression "*(undefined8 *)(puVar2 + -0x2580)" * (cast_expression "(undefined8 *)(puVar2 + -0x2580)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + -0x2580)" ( (binary_expression "puVar2 + -0x2580" identifier + number_literal) ))))) ;) }) (else_clause "else if (dVar34 <= dVar30) {\n              *(double *)(PTR_DAT_000b7720 + -0x2fd8) = dVar30;\n            }\n            else {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x15d0);\n            }" else (if_statement "if (dVar34 <= dVar30) {\n              *(double *)(PTR_DAT_000b7720 + -0x2fd8) = dVar30;\n            }\n            else {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x15d0);\n            }" if (parenthesized_expression "(dVar34 <= dVar30)" ( (binary_expression "dVar34 <= dVar30" identifier <= identifier) )) (compound_statement "{\n              *(double *)(PTR_DAT_000b7720 + -0x2fd8) = dVar30;\n            }" { (expression_statement "*(double *)(PTR_DAT_000b7720 + -0x2fd8) = dVar30;" (assignment_expression "*(double *)(PTR_DAT_000b7720 + -0x2fd8) = dVar30" (pointer_expression "*(double *)(PTR_DAT_000b7720 + -0x2fd8)" * (cast_expression "(double *)(PTR_DAT_000b7720 + -0x2fd8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000b7720 + -0x2fd8)" ( (binary_expression "PTR_DAT_000b7720 + -0x2fd8" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x15d0);\n            }" else (compound_statement "{\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x15d0);\n            }" { (expression_statement "*(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x15d0);" (assignment_expression "*(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x15d0)" (pointer_expression "*(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8)" * (cast_expression "(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000b7720 + -0x2fd8)" ( (binary_expression "PTR_DAT_000b7720 + -0x2fd8" identifier + number_literal) )))) = (pointer_expression "*(undefined8 *)(puVar2 + -0x15d0)" * (cast_expression "(undefined8 *)(puVar2 + -0x15d0)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + -0x15d0)" ( (binary_expression "puVar2 + -0x15d0" identifier + number_literal) ))))) ;) }))))) })) (expression_statement "puVar21 = PTR_DAT_000b7720;" (assignment_expression "puVar21 = PTR_DAT_000b7720" identifier = identifier) ;) (expression_statement "*(undefined4 *)(PTR_DAT_000b7720 + -0x2fe4) = 0;" (assignment_expression "*(undefined4 *)(PTR_DAT_000b7720 + -0x2fe4) = 0" (pointer_expression "*(undefined4 *)(PTR_DAT_000b7720 + -0x2fe4)" * (cast_expression "(undefined4 *)(PTR_DAT_000b7720 + -0x2fe4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000b7720 + -0x2fe4)" ( (binary_expression "PTR_DAT_000b7720 + -0x2fe4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x2fe8) = 0;" (assignment_expression "*(undefined4 *)(puVar21 + -0x2fe8) = 0" (pointer_expression "*(undefined4 *)(puVar21 + -0x2fe8)" * (cast_expression "(undefined4 *)(puVar21 + -0x2fe8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x2fe8)" ( (binary_expression "puVar21 + -0x2fe8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar26 = ptimer_read(local_104);" (assignment_expression "uVar26 = ptimer_read(local_104)" identifier = (call_expression "ptimer_read(local_104)" identifier (argument_list "(local_104)" ( identifier )))) ;) (expression_statement "*(undefined8 *)(puVar21 + -0x2fe0) = uVar26;" (assignment_expression "*(undefined8 *)(puVar21 + -0x2fe0) = uVar26" (pointer_expression "*(undefined8 *)(puVar21 + -0x2fe0)" * (cast_expression "(undefined8 *)(puVar21 + -0x2fe0)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x2fe0)" ( (binary_expression "puVar21 + -0x2fe0" identifier + number_literal) )))) = identifier) ;) })) }))) (labeled_statement "LAB_0005175c:\n      if (iVar7 != 0) {\n        local_120 = (double)ptimer_read(local_104);\n        iVar17 = (int)puVar24 >> 0x1f;\n        puVar20 = puVar24;\n        progress_update(iVar7);\n        dVar25 = (double)CONCAT44(iVar17,puVar20);\n      }" statement_identifier : (if_statement "if (iVar7 != 0) {\n        local_120 = (double)ptimer_read(local_104);\n        iVar17 = (int)puVar24 >> 0x1f;\n        puVar20 = puVar24;\n        progress_update(iVar7);\n        dVar25 = (double)CONCAT44(iVar17,puVar20);\n      }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n        local_120 = (double)ptimer_read(local_104);\n        iVar17 = (int)puVar24 >> 0x1f;\n        puVar20 = puVar24;\n        progress_update(iVar7);\n        dVar25 = (double)CONCAT44(iVar17,puVar20);\n      }" { (expression_statement "local_120 = (double)ptimer_read(local_104);" (assignment_expression "local_120 = (double)ptimer_read(local_104)" identifier = (cast_expression "(double)ptimer_read(local_104)" ( (type_descriptor "double" primitive_type) ) (call_expression "ptimer_read(local_104)" identifier (argument_list "(local_104)" ( identifier ))))) ;) (expression_statement "iVar17 = (int)puVar24 >> 0x1f;" (assignment_expression "iVar17 = (int)puVar24 >> 0x1f" identifier = (binary_expression "(int)puVar24 >> 0x1f" (cast_expression "(int)puVar24" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (expression_statement "puVar20 = puVar24;" (assignment_expression "puVar20 = puVar24" identifier = identifier) ;) (expression_statement "progress_update(iVar7);" (call_expression "progress_update(iVar7)" identifier (argument_list "(iVar7)" ( identifier ))) ;) (expression_statement "dVar25 = (double)CONCAT44(iVar17,puVar20);" (assignment_expression "dVar25 = (double)CONCAT44(iVar17,puVar20)" identifier = (cast_expression "(double)CONCAT44(iVar17,puVar20)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(iVar17,puVar20)" identifier (argument_list "(iVar17,puVar20)" ( identifier , identifier ))))) ;) }))) })) (expression_statement "dVar31 = *(double *)(PTR_opt_000b746c + 0x120);" (assignment_expression "dVar31 = *(double *)(PTR_opt_000b746c + 0x120)" identifier = (pointer_expression "*(double *)(PTR_opt_000b746c + 0x120)" * (cast_expression "(double *)(PTR_opt_000b746c + 0x120)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_opt_000b746c + 0x120)" ( (binary_expression "PTR_opt_000b746c + 0x120" identifier + number_literal) ))))) ;) (if_statement "if (uVar5 == 0) {\nLAB_00051864:\n      puVar15 = puVar20;\n      dVar30 = dVar25;\n      goto LAB_00051868;\n    }" if (parenthesized_expression "(uVar5 == 0)" ( (binary_expression "uVar5 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00051864:\n      puVar15 = puVar20;\n      dVar30 = dVar25;\n      goto LAB_00051868;\n    }" { (labeled_statement "LAB_00051864:\n      puVar15 = puVar20;" statement_identifier : (expression_statement "puVar15 = puVar20;" (assignment_expression "puVar15 = puVar20" identifier = identifier) ;)) (expression_statement "dVar30 = dVar25;" (assignment_expression "dVar30 = dVar25" identifier = identifier) ;) (goto_statement "goto LAB_00051868;" goto statement_identifier ;) })) (labeled_statement "LAB_00051820:\n    if (iVar22 != 0 || local_f0 != (undefined8 *)0x0) {\nLAB_00051830:\n      puVar20 = local_f0;\n      if ((iVar17 <= iVar22) &&\n         ((puVar15 = local_e0, dVar30 = dVar25, iVar17 != iVar22 ||\n          (puVar20 = local_f0, local_e0 <= local_f0)))) goto LAB_00051868;\n      goto LAB_00051864;\n    }" statement_identifier : (if_statement "if (iVar22 != 0 || local_f0 != (undefined8 *)0x0) {\nLAB_00051830:\n      puVar20 = local_f0;\n      if ((iVar17 <= iVar22) &&\n         ((puVar15 = local_e0, dVar30 = dVar25, iVar17 != iVar22 ||\n          (puVar20 = local_f0, local_e0 <= local_f0)))) goto LAB_00051868;\n      goto LAB_00051864;\n    }" if (parenthesized_expression "(iVar22 != 0 || local_f0 != (undefined8 *)0x0)" ( (binary_expression "iVar22 != 0 || local_f0 != (undefined8 *)0x0" (binary_expression "iVar22 != 0" identifier != number_literal) || (binary_expression "local_f0 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\nLAB_00051830:\n      puVar20 = local_f0;\n      if ((iVar17 <= iVar22) &&\n         ((puVar15 = local_e0, dVar30 = dVar25, iVar17 != iVar22 ||\n          (puVar20 = local_f0, local_e0 <= local_f0)))) goto LAB_00051868;\n      goto LAB_00051864;\n    }" { (labeled_statement "LAB_00051830:\n      puVar20 = local_f0;" statement_identifier : (expression_statement "puVar20 = local_f0;" (assignment_expression "puVar20 = local_f0" identifier = identifier) ;)) (if_statement "if ((iVar17 <= iVar22) &&\n         ((puVar15 = local_e0, dVar30 = dVar25, iVar17 != iVar22 ||\n          (puVar20 = local_f0, local_e0 <= local_f0)))) goto LAB_00051868;" if (parenthesized_expression "((iVar17 <= iVar22) &&\n         ((puVar15 = local_e0, dVar30 = dVar25, iVar17 != iVar22 ||\n          (puVar20 = local_f0, local_e0 <= local_f0))))" ( (binary_expression "(iVar17 <= iVar22) &&\n         ((puVar15 = local_e0, dVar30 = dVar25, iVar17 != iVar22 ||\n          (puVar20 = local_f0, local_e0 <= local_f0)))" (parenthesized_expression "(iVar17 <= iVar22)" ( (binary_expression "iVar17 <= iVar22" identifier <= identifier) )) && (parenthesized_expression "((puVar15 = local_e0, dVar30 = dVar25, iVar17 != iVar22 ||\n          (puVar20 = local_f0, local_e0 <= local_f0)))" ( (parenthesized_expression "(puVar15 = local_e0, dVar30 = dVar25, iVar17 != iVar22 ||\n          (puVar20 = local_f0, local_e0 <= local_f0))" ( (comma_expression "puVar15 = local_e0, dVar30 = dVar25, iVar17 != iVar22 ||\n          (puVar20 = local_f0, local_e0 <= local_f0)" (assignment_expression "puVar15 = local_e0" identifier = identifier) , (comma_expression "dVar30 = dVar25, iVar17 != iVar22 ||\n          (puVar20 = local_f0, local_e0 <= local_f0)" (assignment_expression "dVar30 = dVar25" identifier = identifier) , (binary_expression "iVar17 != iVar22 ||\n          (puVar20 = local_f0, local_e0 <= local_f0)" (binary_expression "iVar17 != iVar22" identifier != identifier) || (parenthesized_expression "(puVar20 = local_f0, local_e0 <= local_f0)" ( (comma_expression "puVar20 = local_f0, local_e0 <= local_f0" (assignment_expression "puVar20 = local_f0" identifier = identifier) , (binary_expression "local_e0 <= local_f0" identifier <= identifier)) ))))) )) ))) )) (goto_statement "goto LAB_00051868;" goto statement_identifier ;)) (goto_statement "goto LAB_00051864;" goto statement_identifier ;) }))) (expression_statement "iVar13 = fd_read_line(param_2);" (assignment_expression "iVar13 = fd_read_line(param_2)" identifier = (call_expression "fd_read_line(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "puVar20 = SUB84(dVar25,0);" (assignment_expression "puVar20 = SUB84(dVar25,0)" identifier = (call_expression "SUB84(dVar25,0)" identifier (argument_list "(dVar25,0)" ( identifier , number_literal )))) ;) (if_statement "if (iVar13 == 0) {\nLAB_00050e90:\n      puVar24 = (undefined8 *)0xffffffff;\nLAB_000518d4:\n      bVar1 = (int)puVar24 < 0;\n      dVar30 = dVar25;\nLAB_000518d8:\n      puVar20 = (undefined8 *)0xffffffff;\n      puVar3 = local_120._0_4_;\n      if (!bVar1) {\n        puVar20 = puVar24;\n      }\n    }\n    else {\n      if (param_13 != (undefined8 *)0x0) {\n        uVar8 = (*(code *)PTR_strlen_000b7c94)(iVar13);\n        puVar20 = param_13;\n        (*(code *)PTR_fwrite_000b7c24)(iVar13,1,uVar8);\n      }\n      uVar8 = 0x10;\n      puVar9 = (undefined8 *)auStack_ac;\n      local_f0 = (undefined8 *)(*(code *)PTR_strtol_000b7d3c)(iVar13,puVar9);\n      iVar22 = (int)local_f0 >> 0x1f;\n      (*(code *)PTR_free_000b7d34)(iVar13);\n      dVar25 = (double)CONCAT44(uVar8,puVar20);\n      if (iVar22 < 0) goto LAB_00050e90;\n      if (local_f0 != (undefined8 *)0x0) goto LAB_00051830;\n      iVar22 = fd_read_line(param_2);\n      dVar30 = (double)CONCAT44(uVar8,puVar20);\n      if (iVar22 == 0) {\n        puVar20 = (undefined8 *)0xffffffff;\n      }\n      else {\n        if (param_13 != (undefined8 *)0x0) {\n          uVar8 = (*(code *)PTR_strlen_000b7c94)(iVar22);\n          puVar9 = (undefined8 *)&DAT_00000001;\n          (*(code *)PTR_fwrite_000b7c24)(iVar22,1);\n          puVar20 = param_13;\n        }\n        (*(code *)PTR_free_000b7d34)(iVar22);\n        dVar30 = (double)CONCAT44(uVar8,puVar20);\n        puVar20 = (undefined8 *)0x0;\n      }\n    }" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00050e90:\n      puVar24 = (undefined8 *)0xffffffff;\nLAB_000518d4:\n      bVar1 = (int)puVar24 < 0;\n      dVar30 = dVar25;\nLAB_000518d8:\n      puVar20 = (undefined8 *)0xffffffff;\n      puVar3 = local_120._0_4_;\n      if (!bVar1) {\n        puVar20 = puVar24;\n      }\n    }" { (labeled_statement "LAB_00050e90:\n      puVar24 = (undefined8 *)0xffffffff;" statement_identifier : (expression_statement "puVar24 = (undefined8 *)0xffffffff;" (assignment_expression "puVar24 = (undefined8 *)0xffffffff" identifier = (cast_expression "(undefined8 *)0xffffffff" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (labeled_statement "LAB_000518d4:\n      bVar1 = (int)puVar24 < 0;" statement_identifier : (expression_statement "bVar1 = (int)puVar24 < 0;" (assignment_expression "bVar1 = (int)puVar24 < 0" identifier = (binary_expression "(int)puVar24 < 0" (cast_expression "(int)puVar24" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal)) ;)) (expression_statement "dVar30 = dVar25;" (assignment_expression "dVar30 = dVar25" identifier = identifier) ;) (labeled_statement "LAB_000518d8:\n      puVar20 = (undefined8 *)0xffffffff;" statement_identifier : (expression_statement "puVar20 = (undefined8 *)0xffffffff;" (assignment_expression "puVar20 = (undefined8 *)0xffffffff" identifier = (cast_expression "(undefined8 *)0xffffffff" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "puVar3 = local_120._0_4_;" (assignment_expression "puVar3 = local_120._0_4_" identifier = (field_expression "local_120._0_4_" identifier . field_identifier)) ;) (if_statement "if (!bVar1) {\n        puVar20 = puVar24;\n      }" if (parenthesized_expression "(!bVar1)" ( (unary_expression "!bVar1" ! identifier) )) (compound_statement "{\n        puVar20 = puVar24;\n      }" { (expression_statement "puVar20 = puVar24;" (assignment_expression "puVar20 = puVar24" identifier = identifier) ;) })) }) (else_clause "else {\n      if (param_13 != (undefined8 *)0x0) {\n        uVar8 = (*(code *)PTR_strlen_000b7c94)(iVar13);\n        puVar20 = param_13;\n        (*(code *)PTR_fwrite_000b7c24)(iVar13,1,uVar8);\n      }\n      uVar8 = 0x10;\n      puVar9 = (undefined8 *)auStack_ac;\n      local_f0 = (undefined8 *)(*(code *)PTR_strtol_000b7d3c)(iVar13,puVar9);\n      iVar22 = (int)local_f0 >> 0x1f;\n      (*(code *)PTR_free_000b7d34)(iVar13);\n      dVar25 = (double)CONCAT44(uVar8,puVar20);\n      if (iVar22 < 0) goto LAB_00050e90;\n      if (local_f0 != (undefined8 *)0x0) goto LAB_00051830;\n      iVar22 = fd_read_line(param_2);\n      dVar30 = (double)CONCAT44(uVar8,puVar20);\n      if (iVar22 == 0) {\n        puVar20 = (undefined8 *)0xffffffff;\n      }\n      else {\n        if (param_13 != (undefined8 *)0x0) {\n          uVar8 = (*(code *)PTR_strlen_000b7c94)(iVar22);\n          puVar9 = (undefined8 *)&DAT_00000001;\n          (*(code *)PTR_fwrite_000b7c24)(iVar22,1);\n          puVar20 = param_13;\n        }\n        (*(code *)PTR_free_000b7d34)(iVar22);\n        dVar30 = (double)CONCAT44(uVar8,puVar20);\n        puVar20 = (undefined8 *)0x0;\n      }\n    }" else (compound_statement "{\n      if (param_13 != (undefined8 *)0x0) {\n        uVar8 = (*(code *)PTR_strlen_000b7c94)(iVar13);\n        puVar20 = param_13;\n        (*(code *)PTR_fwrite_000b7c24)(iVar13,1,uVar8);\n      }\n      uVar8 = 0x10;\n      puVar9 = (undefined8 *)auStack_ac;\n      local_f0 = (undefined8 *)(*(code *)PTR_strtol_000b7d3c)(iVar13,puVar9);\n      iVar22 = (int)local_f0 >> 0x1f;\n      (*(code *)PTR_free_000b7d34)(iVar13);\n      dVar25 = (double)CONCAT44(uVar8,puVar20);\n      if (iVar22 < 0) goto LAB_00050e90;\n      if (local_f0 != (undefined8 *)0x0) goto LAB_00051830;\n      iVar22 = fd_read_line(param_2);\n      dVar30 = (double)CONCAT44(uVar8,puVar20);\n      if (iVar22 == 0) {\n        puVar20 = (undefined8 *)0xffffffff;\n      }\n      else {\n        if (param_13 != (undefined8 *)0x0) {\n          uVar8 = (*(code *)PTR_strlen_000b7c94)(iVar22);\n          puVar9 = (undefined8 *)&DAT_00000001;\n          (*(code *)PTR_fwrite_000b7c24)(iVar22,1);\n          puVar20 = param_13;\n        }\n        (*(code *)PTR_free_000b7d34)(iVar22);\n        dVar30 = (double)CONCAT44(uVar8,puVar20);\n        puVar20 = (undefined8 *)0x0;\n      }\n    }" { (if_statement "if (param_13 != (undefined8 *)0x0) {\n        uVar8 = (*(code *)PTR_strlen_000b7c94)(iVar13);\n        puVar20 = param_13;\n        (*(code *)PTR_fwrite_000b7c24)(iVar13,1,uVar8);\n      }" if (parenthesized_expression "(param_13 != (undefined8 *)0x0)" ( (binary_expression "param_13 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar8 = (*(code *)PTR_strlen_000b7c94)(iVar13);\n        puVar20 = param_13;\n        (*(code *)PTR_fwrite_000b7c24)(iVar13,1,uVar8);\n      }" { (expression_statement "uVar8 = (*(code *)PTR_strlen_000b7c94)(iVar13);" (assignment_expression "uVar8 = (*(code *)PTR_strlen_000b7c94)(iVar13)" identifier = (call_expression "(*(code *)PTR_strlen_000b7c94)(iVar13)" (parenthesized_expression "(*(code *)PTR_strlen_000b7c94)" ( (pointer_expression "*(code *)PTR_strlen_000b7c94" * (cast_expression "(code *)PTR_strlen_000b7c94" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar13)" ( identifier )))) ;) (expression_statement "puVar20 = param_13;" (assignment_expression "puVar20 = param_13" identifier = identifier) ;) (expression_statement "(*(code *)PTR_fwrite_000b7c24)(iVar13,1,uVar8);" (call_expression "(*(code *)PTR_fwrite_000b7c24)(iVar13,1,uVar8)" (parenthesized_expression "(*(code *)PTR_fwrite_000b7c24)" ( (pointer_expression "*(code *)PTR_fwrite_000b7c24" * (cast_expression "(code *)PTR_fwrite_000b7c24" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar13,1,uVar8)" ( identifier , number_literal , identifier ))) ;) })) (expression_statement "uVar8 = 0x10;" (assignment_expression "uVar8 = 0x10" identifier = number_literal) ;) (expression_statement "puVar9 = (undefined8 *)auStack_ac;" (assignment_expression "puVar9 = (undefined8 *)auStack_ac" identifier = (cast_expression "(undefined8 *)auStack_ac" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "local_f0 = (undefined8 *)(*(code *)PTR_strtol_000b7d3c)(iVar13,puVar9);" (assignment_expression "local_f0 = (undefined8 *)(*(code *)PTR_strtol_000b7d3c)(iVar13,puVar9)" identifier = (cast_expression "(undefined8 *)(*(code *)PTR_strtol_000b7d3c)(iVar13,puVar9)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_strtol_000b7d3c)(iVar13,puVar9)" (parenthesized_expression "(*(code *)PTR_strtol_000b7d3c)" ( (pointer_expression "*(code *)PTR_strtol_000b7d3c" * (cast_expression "(code *)PTR_strtol_000b7d3c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar13,puVar9)" ( identifier , identifier ))))) ;) (expression_statement "iVar22 = (int)local_f0 >> 0x1f;" (assignment_expression "iVar22 = (int)local_f0 >> 0x1f" identifier = (binary_expression "(int)local_f0 >> 0x1f" (cast_expression "(int)local_f0" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (expression_statement "(*(code *)PTR_free_000b7d34)(iVar13);" (call_expression "(*(code *)PTR_free_000b7d34)(iVar13)" (parenthesized_expression "(*(code *)PTR_free_000b7d34)" ( (pointer_expression "*(code *)PTR_free_000b7d34" * (cast_expression "(code *)PTR_free_000b7d34" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar13)" ( identifier ))) ;) (expression_statement "dVar25 = (double)CONCAT44(uVar8,puVar20);" (assignment_expression "dVar25 = (double)CONCAT44(uVar8,puVar20)" identifier = (cast_expression "(double)CONCAT44(uVar8,puVar20)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(uVar8,puVar20)" identifier (argument_list "(uVar8,puVar20)" ( identifier , identifier ))))) ;) (if_statement "if (iVar22 < 0) goto LAB_00050e90;" if (parenthesized_expression "(iVar22 < 0)" ( (binary_expression "iVar22 < 0" identifier < number_literal) )) (goto_statement "goto LAB_00050e90;" goto statement_identifier ;)) (if_statement "if (local_f0 != (undefined8 *)0x0) goto LAB_00051830;" if (parenthesized_expression "(local_f0 != (undefined8 *)0x0)" ( (binary_expression "local_f0 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00051830;" goto statement_identifier ;)) (expression_statement "iVar22 = fd_read_line(param_2);" (assignment_expression "iVar22 = fd_read_line(param_2)" identifier = (call_expression "fd_read_line(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "dVar30 = (double)CONCAT44(uVar8,puVar20);" (assignment_expression "dVar30 = (double)CONCAT44(uVar8,puVar20)" identifier = (cast_expression "(double)CONCAT44(uVar8,puVar20)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(uVar8,puVar20)" identifier (argument_list "(uVar8,puVar20)" ( identifier , identifier ))))) ;) (if_statement "if (iVar22 == 0) {\n        puVar20 = (undefined8 *)0xffffffff;\n      }\n      else {\n        if (param_13 != (undefined8 *)0x0) {\n          uVar8 = (*(code *)PTR_strlen_000b7c94)(iVar22);\n          puVar9 = (undefined8 *)&DAT_00000001;\n          (*(code *)PTR_fwrite_000b7c24)(iVar22,1);\n          puVar20 = param_13;\n        }\n        (*(code *)PTR_free_000b7d34)(iVar22);\n        dVar30 = (double)CONCAT44(uVar8,puVar20);\n        puVar20 = (undefined8 *)0x0;\n      }" if (parenthesized_expression "(iVar22 == 0)" ( (binary_expression "iVar22 == 0" identifier == number_literal) )) (compound_statement "{\n        puVar20 = (undefined8 *)0xffffffff;\n      }" { (expression_statement "puVar20 = (undefined8 *)0xffffffff;" (assignment_expression "puVar20 = (undefined8 *)0xffffffff" identifier = (cast_expression "(undefined8 *)0xffffffff" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n        if (param_13 != (undefined8 *)0x0) {\n          uVar8 = (*(code *)PTR_strlen_000b7c94)(iVar22);\n          puVar9 = (undefined8 *)&DAT_00000001;\n          (*(code *)PTR_fwrite_000b7c24)(iVar22,1);\n          puVar20 = param_13;\n        }\n        (*(code *)PTR_free_000b7d34)(iVar22);\n        dVar30 = (double)CONCAT44(uVar8,puVar20);\n        puVar20 = (undefined8 *)0x0;\n      }" else (compound_statement "{\n        if (param_13 != (undefined8 *)0x0) {\n          uVar8 = (*(code *)PTR_strlen_000b7c94)(iVar22);\n          puVar9 = (undefined8 *)&DAT_00000001;\n          (*(code *)PTR_fwrite_000b7c24)(iVar22,1);\n          puVar20 = param_13;\n        }\n        (*(code *)PTR_free_000b7d34)(iVar22);\n        dVar30 = (double)CONCAT44(uVar8,puVar20);\n        puVar20 = (undefined8 *)0x0;\n      }" { (if_statement "if (param_13 != (undefined8 *)0x0) {\n          uVar8 = (*(code *)PTR_strlen_000b7c94)(iVar22);\n          puVar9 = (undefined8 *)&DAT_00000001;\n          (*(code *)PTR_fwrite_000b7c24)(iVar22,1);\n          puVar20 = param_13;\n        }" if (parenthesized_expression "(param_13 != (undefined8 *)0x0)" ( (binary_expression "param_13 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          uVar8 = (*(code *)PTR_strlen_000b7c94)(iVar22);\n          puVar9 = (undefined8 *)&DAT_00000001;\n          (*(code *)PTR_fwrite_000b7c24)(iVar22,1);\n          puVar20 = param_13;\n        }" { (expression_statement "uVar8 = (*(code *)PTR_strlen_000b7c94)(iVar22);" (assignment_expression "uVar8 = (*(code *)PTR_strlen_000b7c94)(iVar22)" identifier = (call_expression "(*(code *)PTR_strlen_000b7c94)(iVar22)" (parenthesized_expression "(*(code *)PTR_strlen_000b7c94)" ( (pointer_expression "*(code *)PTR_strlen_000b7c94" * (cast_expression "(code *)PTR_strlen_000b7c94" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar22)" ( identifier )))) ;) (expression_statement "puVar9 = (undefined8 *)&DAT_00000001;" (assignment_expression "puVar9 = (undefined8 *)&DAT_00000001" identifier = (cast_expression "(undefined8 *)&DAT_00000001" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000001" & identifier))) ;) (expression_statement "(*(code *)PTR_fwrite_000b7c24)(iVar22,1);" (call_expression "(*(code *)PTR_fwrite_000b7c24)(iVar22,1)" (parenthesized_expression "(*(code *)PTR_fwrite_000b7c24)" ( (pointer_expression "*(code *)PTR_fwrite_000b7c24" * (cast_expression "(code *)PTR_fwrite_000b7c24" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar22,1)" ( identifier , number_literal ))) ;) (expression_statement "puVar20 = param_13;" (assignment_expression "puVar20 = param_13" identifier = identifier) ;) })) (expression_statement "(*(code *)PTR_free_000b7d34)(iVar22);" (call_expression "(*(code *)PTR_free_000b7d34)(iVar22)" (parenthesized_expression "(*(code *)PTR_free_000b7d34)" ( (pointer_expression "*(code *)PTR_free_000b7d34" * (cast_expression "(code *)PTR_free_000b7d34" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar22)" ( identifier ))) ;) (expression_statement "dVar30 = (double)CONCAT44(uVar8,puVar20);" (assignment_expression "dVar30 = (double)CONCAT44(uVar8,puVar20)" identifier = (cast_expression "(double)CONCAT44(uVar8,puVar20)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(uVar8,puVar20)" identifier (argument_list "(uVar8,puVar20)" ( identifier , identifier ))))) ;) (expression_statement "puVar20 = (undefined8 *)0x0;" (assignment_expression "puVar20 = (undefined8 *)0x0" identifier = (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) }))) (labeled_statement "LAB_00051040:\n    local_120._0_4_ = puVar3;" statement_identifier : (expression_statement "local_120._0_4_ = puVar3;" (assignment_expression "local_120._0_4_ = puVar3" (field_expression "local_120._0_4_" identifier . field_identifier) = identifier) ;)) (if_statement "if (iVar7 != 0) {\n      uVar26 = ptimer_read(local_104);\n      uVar19 = (undefined4)uVar26;\n      uVar8 = (undefined4)((ulonglong)uVar26 >> 0x20);\n      progress_finish(iVar7);\n      dVar30 = (double)CONCAT44(uVar8,uVar19);\n    }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar26 = ptimer_read(local_104);\n      uVar19 = (undefined4)uVar26;\n      uVar8 = (undefined4)((ulonglong)uVar26 >> 0x20);\n      progress_finish(iVar7);\n      dVar30 = (double)CONCAT44(uVar8,uVar19);\n    }" { (expression_statement "uVar26 = ptimer_read(local_104);" (assignment_expression "uVar26 = ptimer_read(local_104)" identifier = (call_expression "ptimer_read(local_104)" identifier (argument_list "(local_104)" ( identifier )))) ;) (expression_statement "uVar19 = (undefined4)uVar26;" (assignment_expression "uVar19 = (undefined4)uVar26" identifier = (cast_expression "(undefined4)uVar26" ( (type_descriptor "undefined4" type_identifier) ) identifier)) ;) (expression_statement "uVar8 = (undefined4)((ulonglong)uVar26 >> 0x20);" (assignment_expression "uVar8 = (undefined4)((ulonglong)uVar26 >> 0x20)" identifier = (call_expression "(undefined4)((ulonglong)uVar26 >> 0x20)" (parenthesized_expression "(undefined4)" ( identifier )) (argument_list "((ulonglong)uVar26 >> 0x20)" ( (binary_expression "(ulonglong)uVar26 >> 0x20" (cast_expression "(ulonglong)uVar26" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "progress_finish(iVar7);" (call_expression "progress_finish(iVar7)" identifier (argument_list "(iVar7)" ( identifier ))) ;) (expression_statement "dVar30 = (double)CONCAT44(uVar8,uVar19);" (assignment_expression "dVar30 = (double)CONCAT44(uVar8,uVar19)" identifier = (cast_expression "(double)CONCAT44(uVar8,uVar19)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(uVar8,uVar19)" identifier (argument_list "(uVar8,uVar19)" ( identifier , identifier ))))) ;) })) (if_statement "if (param_11 != (undefined8 *)0x0) goto LAB_00051080;" if (parenthesized_expression "(param_11 != (undefined8 *)0x0)" ( (binary_expression "param_11 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00051080;" goto statement_identifier ;)) }) (else_clause "else {\n    local_100 = (undefined8 *)(*(code *)PTR_xmalloc_000b7480)(0x8000);\n    if (local_100 == (undefined8 *)0x0) {\n      puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n      *puVar10 = 0xc;\n    }\n    else {\n      local_74 = PTR_LAB_000b78e4 + 0x368;\n      local_70 = PTR_LAB_000b78e4 + 0x330;\n      local_6c = 0;\n      local_94 = (undefined8 *)0x0;\n      local_90 = (undefined8 *)0x0;\n      param_4 = (undefined1 *)0x38;\n      puVar21 = PTR_DAT_000b758c + -0x18a0;\n      puVar9 = (undefined8 *)0x2f;\n      iVar6 = (*(code *)PTR_inflateInit2__000b7d68)(&local_94,0x2f);\n      if (iVar6 == 0) goto LAB_00050b74;\n      (*(code *)PTR_free_000b7d34)(local_100);\n      uVar8 = 0x16;\n      if (iVar6 == -4) {\n        uVar8 = 0xc;\n      }\n      puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n      *puVar10 = uVar8;\n    }\n    dVar30 = (double)CONCAT44(puVar21,param_4);\n    local_100 = param_11;\n    if (param_11 == (undefined8 *)0x0) {\n      iVar6 = 0;\n      local_fc = (undefined8 *)0x0;\n      puVar20 = (undefined8 *)0xffffffff;\n      goto LAB_000510b8;\n    }\n    local_100 = (undefined8 *)0x0;\n    iVar6 = 0;\n    local_fc = (undefined8 *)0x0;\n    local_104 = (undefined8 *)0x0;\n    puVar20 = (undefined8 *)0xffffffff;\nLAB_00051080:\n    uVar26 = ptimer_read(local_104);\n    *param_11 = uVar26;\n  }" else (compound_statement "{\n    local_100 = (undefined8 *)(*(code *)PTR_xmalloc_000b7480)(0x8000);\n    if (local_100 == (undefined8 *)0x0) {\n      puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n      *puVar10 = 0xc;\n    }\n    else {\n      local_74 = PTR_LAB_000b78e4 + 0x368;\n      local_70 = PTR_LAB_000b78e4 + 0x330;\n      local_6c = 0;\n      local_94 = (undefined8 *)0x0;\n      local_90 = (undefined8 *)0x0;\n      param_4 = (undefined1 *)0x38;\n      puVar21 = PTR_DAT_000b758c + -0x18a0;\n      puVar9 = (undefined8 *)0x2f;\n      iVar6 = (*(code *)PTR_inflateInit2__000b7d68)(&local_94,0x2f);\n      if (iVar6 == 0) goto LAB_00050b74;\n      (*(code *)PTR_free_000b7d34)(local_100);\n      uVar8 = 0x16;\n      if (iVar6 == -4) {\n        uVar8 = 0xc;\n      }\n      puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n      *puVar10 = uVar8;\n    }\n    dVar30 = (double)CONCAT44(puVar21,param_4);\n    local_100 = param_11;\n    if (param_11 == (undefined8 *)0x0) {\n      iVar6 = 0;\n      local_fc = (undefined8 *)0x0;\n      puVar20 = (undefined8 *)0xffffffff;\n      goto LAB_000510b8;\n    }\n    local_100 = (undefined8 *)0x0;\n    iVar6 = 0;\n    local_fc = (undefined8 *)0x0;\n    local_104 = (undefined8 *)0x0;\n    puVar20 = (undefined8 *)0xffffffff;\nLAB_00051080:\n    uVar26 = ptimer_read(local_104);\n    *param_11 = uVar26;\n  }" { (expression_statement "local_100 = (undefined8 *)(*(code *)PTR_xmalloc_000b7480)(0x8000);" (assignment_expression "local_100 = (undefined8 *)(*(code *)PTR_xmalloc_000b7480)(0x8000)" identifier = (cast_expression "(undefined8 *)(*(code *)PTR_xmalloc_000b7480)(0x8000)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_xmalloc_000b7480)(0x8000)" (parenthesized_expression "(*(code *)PTR_xmalloc_000b7480)" ( (pointer_expression "*(code *)PTR_xmalloc_000b7480" * (cast_expression "(code *)PTR_xmalloc_000b7480" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x8000)" ( number_literal ))))) ;) (if_statement "if (local_100 == (undefined8 *)0x0) {\n      puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n      *puVar10 = 0xc;\n    }\n    else {\n      local_74 = PTR_LAB_000b78e4 + 0x368;\n      local_70 = PTR_LAB_000b78e4 + 0x330;\n      local_6c = 0;\n      local_94 = (undefined8 *)0x0;\n      local_90 = (undefined8 *)0x0;\n      param_4 = (undefined1 *)0x38;\n      puVar21 = PTR_DAT_000b758c + -0x18a0;\n      puVar9 = (undefined8 *)0x2f;\n      iVar6 = (*(code *)PTR_inflateInit2__000b7d68)(&local_94,0x2f);\n      if (iVar6 == 0) goto LAB_00050b74;\n      (*(code *)PTR_free_000b7d34)(local_100);\n      uVar8 = 0x16;\n      if (iVar6 == -4) {\n        uVar8 = 0xc;\n      }\n      puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n      *puVar10 = uVar8;\n    }" if (parenthesized_expression "(local_100 == (undefined8 *)0x0)" ( (binary_expression "local_100 == (undefined8 *)0x0" identifier == (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n      *puVar10 = 0xc;\n    }" { (expression_statement "puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();" (assignment_expression "puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_000b7eb8)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_000b7eb8)()" (parenthesized_expression "(*(code *)PTR___errno_location_000b7eb8)" ( (pointer_expression "*(code *)PTR___errno_location_000b7eb8" * (cast_expression "(code *)PTR___errno_location_000b7eb8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "*puVar10 = 0xc;" (assignment_expression "*puVar10 = 0xc" (pointer_expression "*puVar10" * identifier) = number_literal) ;) }) (else_clause "else {\n      local_74 = PTR_LAB_000b78e4 + 0x368;\n      local_70 = PTR_LAB_000b78e4 + 0x330;\n      local_6c = 0;\n      local_94 = (undefined8 *)0x0;\n      local_90 = (undefined8 *)0x0;\n      param_4 = (undefined1 *)0x38;\n      puVar21 = PTR_DAT_000b758c + -0x18a0;\n      puVar9 = (undefined8 *)0x2f;\n      iVar6 = (*(code *)PTR_inflateInit2__000b7d68)(&local_94,0x2f);\n      if (iVar6 == 0) goto LAB_00050b74;\n      (*(code *)PTR_free_000b7d34)(local_100);\n      uVar8 = 0x16;\n      if (iVar6 == -4) {\n        uVar8 = 0xc;\n      }\n      puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n      *puVar10 = uVar8;\n    }" else (compound_statement "{\n      local_74 = PTR_LAB_000b78e4 + 0x368;\n      local_70 = PTR_LAB_000b78e4 + 0x330;\n      local_6c = 0;\n      local_94 = (undefined8 *)0x0;\n      local_90 = (undefined8 *)0x0;\n      param_4 = (undefined1 *)0x38;\n      puVar21 = PTR_DAT_000b758c + -0x18a0;\n      puVar9 = (undefined8 *)0x2f;\n      iVar6 = (*(code *)PTR_inflateInit2__000b7d68)(&local_94,0x2f);\n      if (iVar6 == 0) goto LAB_00050b74;\n      (*(code *)PTR_free_000b7d34)(local_100);\n      uVar8 = 0x16;\n      if (iVar6 == -4) {\n        uVar8 = 0xc;\n      }\n      puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n      *puVar10 = uVar8;\n    }" { (expression_statement "local_74 = PTR_LAB_000b78e4 + 0x368;" (assignment_expression "local_74 = PTR_LAB_000b78e4 + 0x368" identifier = (binary_expression "PTR_LAB_000b78e4 + 0x368" identifier + number_literal)) ;) (expression_statement "local_70 = PTR_LAB_000b78e4 + 0x330;" (assignment_expression "local_70 = PTR_LAB_000b78e4 + 0x330" identifier = (binary_expression "PTR_LAB_000b78e4 + 0x330" identifier + number_literal)) ;) (expression_statement "local_6c = 0;" (assignment_expression "local_6c = 0" identifier = number_literal) ;) (expression_statement "local_94 = (undefined8 *)0x0;" (assignment_expression "local_94 = (undefined8 *)0x0" identifier = (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_90 = (undefined8 *)0x0;" (assignment_expression "local_90 = (undefined8 *)0x0" identifier = (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "param_4 = (undefined1 *)0x38;" (assignment_expression "param_4 = (undefined1 *)0x38" identifier = (cast_expression "(undefined1 *)0x38" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar21 = PTR_DAT_000b758c + -0x18a0;" (assignment_expression "puVar21 = PTR_DAT_000b758c + -0x18a0" identifier = (binary_expression "PTR_DAT_000b758c + -0x18a0" identifier + number_literal)) ;) (expression_statement "puVar9 = (undefined8 *)0x2f;" (assignment_expression "puVar9 = (undefined8 *)0x2f" identifier = (cast_expression "(undefined8 *)0x2f" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar6 = (*(code *)PTR_inflateInit2__000b7d68)(&local_94,0x2f);" (assignment_expression "iVar6 = (*(code *)PTR_inflateInit2__000b7d68)(&local_94,0x2f)" identifier = (call_expression "(*(code *)PTR_inflateInit2__000b7d68)(&local_94,0x2f)" (parenthesized_expression "(*(code *)PTR_inflateInit2__000b7d68)" ( (pointer_expression "*(code *)PTR_inflateInit2__000b7d68" * (cast_expression "(code *)PTR_inflateInit2__000b7d68" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_94,0x2f)" ( (pointer_expression "&local_94" & identifier) , number_literal )))) ;) (if_statement "if (iVar6 == 0) goto LAB_00050b74;" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00050b74;" goto statement_identifier ;)) (expression_statement "(*(code *)PTR_free_000b7d34)(local_100);" (call_expression "(*(code *)PTR_free_000b7d34)(local_100)" (parenthesized_expression "(*(code *)PTR_free_000b7d34)" ( (pointer_expression "*(code *)PTR_free_000b7d34" * (cast_expression "(code *)PTR_free_000b7d34" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_100)" ( identifier ))) ;) (expression_statement "uVar8 = 0x16;" (assignment_expression "uVar8 = 0x16" identifier = number_literal) ;) (if_statement "if (iVar6 == -4) {\n        uVar8 = 0xc;\n      }" if (parenthesized_expression "(iVar6 == -4)" ( (binary_expression "iVar6 == -4" identifier == number_literal) )) (compound_statement "{\n        uVar8 = 0xc;\n      }" { (expression_statement "uVar8 = 0xc;" (assignment_expression "uVar8 = 0xc" identifier = number_literal) ;) })) (expression_statement "puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();" (assignment_expression "puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_000b7eb8)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_000b7eb8)()" (parenthesized_expression "(*(code *)PTR___errno_location_000b7eb8)" ( (pointer_expression "*(code *)PTR___errno_location_000b7eb8" * (cast_expression "(code *)PTR___errno_location_000b7eb8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "*puVar10 = uVar8;" (assignment_expression "*puVar10 = uVar8" (pointer_expression "*puVar10" * identifier) = identifier) ;) }))) (expression_statement "dVar30 = (double)CONCAT44(puVar21,param_4);" (assignment_expression "dVar30 = (double)CONCAT44(puVar21,param_4)" identifier = (cast_expression "(double)CONCAT44(puVar21,param_4)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(puVar21,param_4)" identifier (argument_list "(puVar21,param_4)" ( identifier , identifier ))))) ;) (expression_statement "local_100 = param_11;" (assignment_expression "local_100 = param_11" identifier = identifier) ;) (if_statement "if (param_11 == (undefined8 *)0x0) {\n      iVar6 = 0;\n      local_fc = (undefined8 *)0x0;\n      puVar20 = (undefined8 *)0xffffffff;\n      goto LAB_000510b8;\n    }" if (parenthesized_expression "(param_11 == (undefined8 *)0x0)" ( (binary_expression "param_11 == (undefined8 *)0x0" identifier == (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      iVar6 = 0;\n      local_fc = (undefined8 *)0x0;\n      puVar20 = (undefined8 *)0xffffffff;\n      goto LAB_000510b8;\n    }" { (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) (expression_statement "local_fc = (undefined8 *)0x0;" (assignment_expression "local_fc = (undefined8 *)0x0" identifier = (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar20 = (undefined8 *)0xffffffff;" (assignment_expression "puVar20 = (undefined8 *)0xffffffff" identifier = (cast_expression "(undefined8 *)0xffffffff" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_000510b8;" goto statement_identifier ;) })) (expression_statement "local_100 = (undefined8 *)0x0;" (assignment_expression "local_100 = (undefined8 *)0x0" identifier = (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) (expression_statement "local_fc = (undefined8 *)0x0;" (assignment_expression "local_fc = (undefined8 *)0x0" identifier = (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_104 = (undefined8 *)0x0;" (assignment_expression "local_104 = (undefined8 *)0x0" identifier = (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar20 = (undefined8 *)0xffffffff;" (assignment_expression "puVar20 = (undefined8 *)0xffffffff" identifier = (cast_expression "(undefined8 *)0xffffffff" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_00051080:\n    uVar26 = ptimer_read(local_104);" statement_identifier : (expression_statement "uVar26 = ptimer_read(local_104);" (assignment_expression "uVar26 = ptimer_read(local_104)" identifier = (call_expression "ptimer_read(local_104)" identifier (argument_list "(local_104)" ( identifier )))) ;)) (expression_statement "*param_11 = uVar26;" (assignment_expression "*param_11 = uVar26" (pointer_expression "*param_11" * identifier) = identifier) ;) }))) (if_statement "if (local_104 != (undefined8 *)0x0) {\n    ptimer_destroy(local_104);\n  }" if (parenthesized_expression "(local_104 != (undefined8 *)0x0)" ( (binary_expression "local_104 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    ptimer_destroy(local_104);\n  }" { (expression_statement "ptimer_destroy(local_104);" (call_expression "ptimer_destroy(local_104)" identifier (argument_list "(local_104)" ( identifier ))) ;) })) (labeled_statement "LAB_000510b8:\n  if (local_100 != (undefined8 *)0x0) {\n    puVar9 = (undefined8 *)(*(code *)PTR_inflateEnd_000b7e58)(&local_94);\n    if ((-1 < (int)puVar20) && (puVar20 = puVar9, puVar9 != (undefined8 *)0x0)) {\n      puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)(local_100);\n      *puVar10 = 0x16;\n      puVar20 = (undefined8 *)0xffffffff;\n    }\n    (*(code *)PTR_free_000b7d34)(local_100);\n    puVar9 = local_8c;\n    if (((iVar6 != 0) || (local_8c != local_fc)) &&\n       (dVar30 = (double)CONCAT44(iVar6,SUB84(dVar30,0)), PTR_opt_000b746c[0x16b] != '\0')) {\n      iVar7 = iVar6;\n      puVar9 = local_fc;\n      debug_logprintf(PTR_DAT_000b758c + -0x180c);\n      dVar30 = (double)CONCAT44(iVar7,puVar9);\n      puVar9 = local_8c;\n    }\n  }" statement_identifier : (if_statement "if (local_100 != (undefined8 *)0x0) {\n    puVar9 = (undefined8 *)(*(code *)PTR_inflateEnd_000b7e58)(&local_94);\n    if ((-1 < (int)puVar20) && (puVar20 = puVar9, puVar9 != (undefined8 *)0x0)) {\n      puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)(local_100);\n      *puVar10 = 0x16;\n      puVar20 = (undefined8 *)0xffffffff;\n    }\n    (*(code *)PTR_free_000b7d34)(local_100);\n    puVar9 = local_8c;\n    if (((iVar6 != 0) || (local_8c != local_fc)) &&\n       (dVar30 = (double)CONCAT44(iVar6,SUB84(dVar30,0)), PTR_opt_000b746c[0x16b] != '\0')) {\n      iVar7 = iVar6;\n      puVar9 = local_fc;\n      debug_logprintf(PTR_DAT_000b758c + -0x180c);\n      dVar30 = (double)CONCAT44(iVar7,puVar9);\n      puVar9 = local_8c;\n    }\n  }" if (parenthesized_expression "(local_100 != (undefined8 *)0x0)" ( (binary_expression "local_100 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    puVar9 = (undefined8 *)(*(code *)PTR_inflateEnd_000b7e58)(&local_94);\n    if ((-1 < (int)puVar20) && (puVar20 = puVar9, puVar9 != (undefined8 *)0x0)) {\n      puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)(local_100);\n      *puVar10 = 0x16;\n      puVar20 = (undefined8 *)0xffffffff;\n    }\n    (*(code *)PTR_free_000b7d34)(local_100);\n    puVar9 = local_8c;\n    if (((iVar6 != 0) || (local_8c != local_fc)) &&\n       (dVar30 = (double)CONCAT44(iVar6,SUB84(dVar30,0)), PTR_opt_000b746c[0x16b] != '\0')) {\n      iVar7 = iVar6;\n      puVar9 = local_fc;\n      debug_logprintf(PTR_DAT_000b758c + -0x180c);\n      dVar30 = (double)CONCAT44(iVar7,puVar9);\n      puVar9 = local_8c;\n    }\n  }" { (expression_statement "puVar9 = (undefined8 *)(*(code *)PTR_inflateEnd_000b7e58)(&local_94);" (assignment_expression "puVar9 = (undefined8 *)(*(code *)PTR_inflateEnd_000b7e58)(&local_94)" identifier = (cast_expression "(undefined8 *)(*(code *)PTR_inflateEnd_000b7e58)(&local_94)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_inflateEnd_000b7e58)(&local_94)" (parenthesized_expression "(*(code *)PTR_inflateEnd_000b7e58)" ( (pointer_expression "*(code *)PTR_inflateEnd_000b7e58" * (cast_expression "(code *)PTR_inflateEnd_000b7e58" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_94)" ( (pointer_expression "&local_94" & identifier) ))))) ;) (if_statement "if ((-1 < (int)puVar20) && (puVar20 = puVar9, puVar9 != (undefined8 *)0x0)) {\n      puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)(local_100);\n      *puVar10 = 0x16;\n      puVar20 = (undefined8 *)0xffffffff;\n    }" if (parenthesized_expression "((-1 < (int)puVar20) && (puVar20 = puVar9, puVar9 != (undefined8 *)0x0))" ( (binary_expression "(-1 < (int)puVar20) && (puVar20 = puVar9, puVar9 != (undefined8 *)0x0)" (parenthesized_expression "(-1 < (int)puVar20)" ( (binary_expression "-1 < (int)puVar20" number_literal < (cast_expression "(int)puVar20" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "(puVar20 = puVar9, puVar9 != (undefined8 *)0x0)" ( (comma_expression "puVar20 = puVar9, puVar9 != (undefined8 *)0x0" (assignment_expression "puVar20 = puVar9" identifier = identifier) , (binary_expression "puVar9 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n      puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)(local_100);\n      *puVar10 = 0x16;\n      puVar20 = (undefined8 *)0xffffffff;\n    }" { (expression_statement "puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)(local_100);" (assignment_expression "puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)(local_100)" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_000b7eb8)(local_100)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_000b7eb8)(local_100)" (parenthesized_expression "(*(code *)PTR___errno_location_000b7eb8)" ( (pointer_expression "*(code *)PTR___errno_location_000b7eb8" * (cast_expression "(code *)PTR___errno_location_000b7eb8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_100)" ( identifier ))))) ;) (expression_statement "*puVar10 = 0x16;" (assignment_expression "*puVar10 = 0x16" (pointer_expression "*puVar10" * identifier) = number_literal) ;) (expression_statement "puVar20 = (undefined8 *)0xffffffff;" (assignment_expression "puVar20 = (undefined8 *)0xffffffff" identifier = (cast_expression "(undefined8 *)0xffffffff" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (expression_statement "(*(code *)PTR_free_000b7d34)(local_100);" (call_expression "(*(code *)PTR_free_000b7d34)(local_100)" (parenthesized_expression "(*(code *)PTR_free_000b7d34)" ( (pointer_expression "*(code *)PTR_free_000b7d34" * (cast_expression "(code *)PTR_free_000b7d34" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_100)" ( identifier ))) ;) (expression_statement "puVar9 = local_8c;" (assignment_expression "puVar9 = local_8c" identifier = identifier) ;) (if_statement "if (((iVar6 != 0) || (local_8c != local_fc)) &&\n       (dVar30 = (double)CONCAT44(iVar6,SUB84(dVar30,0)), PTR_opt_000b746c[0x16b] != '\0')) {\n      iVar7 = iVar6;\n      puVar9 = local_fc;\n      debug_logprintf(PTR_DAT_000b758c + -0x180c);\n      dVar30 = (double)CONCAT44(iVar7,puVar9);\n      puVar9 = local_8c;\n    }" if (parenthesized_expression "(((iVar6 != 0) || (local_8c != local_fc)) &&\n       (dVar30 = (double)CONCAT44(iVar6,SUB84(dVar30,0)), PTR_opt_000b746c[0x16b] != '\0'))" ( (binary_expression "((iVar6 != 0) || (local_8c != local_fc)) &&\n       (dVar30 = (double)CONCAT44(iVar6,SUB84(dVar30,0)), PTR_opt_000b746c[0x16b] != '\0')" (parenthesized_expression "((iVar6 != 0) || (local_8c != local_fc))" ( (binary_expression "(iVar6 != 0) || (local_8c != local_fc)" (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) || (parenthesized_expression "(local_8c != local_fc)" ( (binary_expression "local_8c != local_fc" identifier != identifier) ))) )) && (parenthesized_expression "(dVar30 = (double)CONCAT44(iVar6,SUB84(dVar30,0)), PTR_opt_000b746c[0x16b] != '\0')" ( (comma_expression "dVar30 = (double)CONCAT44(iVar6,SUB84(dVar30,0)), PTR_opt_000b746c[0x16b] != '\0'" (assignment_expression "dVar30 = (double)CONCAT44(iVar6,SUB84(dVar30,0))" identifier = (cast_expression "(double)CONCAT44(iVar6,SUB84(dVar30,0))" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(iVar6,SUB84(dVar30,0))" identifier (argument_list "(iVar6,SUB84(dVar30,0))" ( identifier , (call_expression "SUB84(dVar30,0)" identifier (argument_list "(dVar30,0)" ( identifier , number_literal ))) ))))) , (binary_expression "PTR_opt_000b746c[0x16b] != '\0'" (subscript_expression "PTR_opt_000b746c[0x16b]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence '))) ))) )) (compound_statement "{\n      iVar7 = iVar6;\n      puVar9 = local_fc;\n      debug_logprintf(PTR_DAT_000b758c + -0x180c);\n      dVar30 = (double)CONCAT44(iVar7,puVar9);\n      puVar9 = local_8c;\n    }" { (expression_statement "iVar7 = iVar6;" (assignment_expression "iVar7 = iVar6" identifier = identifier) ;) (expression_statement "puVar9 = local_fc;" (assignment_expression "puVar9 = local_fc" identifier = identifier) ;) (expression_statement "debug_logprintf(PTR_DAT_000b758c + -0x180c);" (call_expression "debug_logprintf(PTR_DAT_000b758c + -0x180c)" identifier (argument_list "(PTR_DAT_000b758c + -0x180c)" ( (binary_expression "PTR_DAT_000b758c + -0x180c" identifier + number_literal) ))) ;) (expression_statement "dVar30 = (double)CONCAT44(iVar7,puVar9);" (assignment_expression "dVar30 = (double)CONCAT44(iVar7,puVar9)" identifier = (cast_expression "(double)CONCAT44(iVar7,puVar9)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(iVar7,puVar9)" identifier (argument_list "(iVar7,puVar9)" ( identifier , identifier ))))) ;) (expression_statement "puVar9 = local_8c;" (assignment_expression "puVar9 = local_8c" identifier = identifier) ;) })) }))) (if_statement "if (param_9 != (int *)0x0) {\n    puVar16 = (undefined1 *)param_9[1] + (int)local_fc;\n    *param_9 = (uint)(puVar16 < (undefined1 *)param_9[1]) + *param_9 + iVar6;\n    param_9[1] = (int)puVar16;\n  }" if (parenthesized_expression "(param_9 != (int *)0x0)" ( (binary_expression "param_9 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    puVar16 = (undefined1 *)param_9[1] + (int)local_fc;\n    *param_9 = (uint)(puVar16 < (undefined1 *)param_9[1]) + *param_9 + iVar6;\n    param_9[1] = (int)puVar16;\n  }" { (expression_statement "puVar16 = (undefined1 *)param_9[1] + (int)local_fc;" (assignment_expression "puVar16 = (undefined1 *)param_9[1] + (int)local_fc" identifier = (binary_expression "(undefined1 *)param_9[1] + (int)local_fc" (cast_expression "(undefined1 *)param_9[1]" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_9[1]" identifier [ number_literal ])) + (cast_expression "(int)local_fc" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "*param_9 = (uint)(puVar16 < (undefined1 *)param_9[1]) + *param_9 + iVar6;" (assignment_expression "*param_9 = (uint)(puVar16 < (undefined1 *)param_9[1]) + *param_9 + iVar6" (pointer_expression "*param_9" * identifier) = (binary_expression "(uint)(puVar16 < (undefined1 *)param_9[1]) + *param_9 + iVar6" (binary_expression "(uint)(puVar16 < (undefined1 *)param_9[1]) + *param_9" (call_expression "(uint)(puVar16 < (undefined1 *)param_9[1])" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar16 < (undefined1 *)param_9[1])" ( (binary_expression "puVar16 < (undefined1 *)param_9[1]" identifier < (cast_expression "(undefined1 *)param_9[1]" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_9[1]" identifier [ number_literal ]))) ))) + (pointer_expression "*param_9" * identifier)) + identifier)) ;) (expression_statement "param_9[1] = (int)puVar16;" (assignment_expression "param_9[1] = (int)puVar16" (subscript_expression "param_9[1]" identifier [ number_literal ]) = (cast_expression "(int)puVar16" ( (type_descriptor "int" primitive_type) ) identifier)) ;) })) (if_statement "if (param_10 != (int *)0x0) {\n    uVar5 = param_10[1] + local_9c;\n    *param_10 = (int)((int)local_a0 + (uint)(uVar5 < (uint)param_10[1]) + *param_10);\n    param_10[1] = uVar5;\n    puVar9 = local_a0;\n  }" if (parenthesized_expression "(param_10 != (int *)0x0)" ( (binary_expression "param_10 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar5 = param_10[1] + local_9c;\n    *param_10 = (int)((int)local_a0 + (uint)(uVar5 < (uint)param_10[1]) + *param_10);\n    param_10[1] = uVar5;\n    puVar9 = local_a0;\n  }" { (expression_statement "uVar5 = param_10[1] + local_9c;" (assignment_expression "uVar5 = param_10[1] + local_9c" identifier = (binary_expression "param_10[1] + local_9c" (subscript_expression "param_10[1]" identifier [ number_literal ]) + identifier)) ;) (expression_statement "*param_10 = (int)((int)local_a0 + (uint)(uVar5 < (uint)param_10[1]) + *param_10);" (assignment_expression "*param_10 = (int)((int)local_a0 + (uint)(uVar5 < (uint)param_10[1]) + *param_10)" (pointer_expression "*param_10" * identifier) = (cast_expression "(int)((int)local_a0 + (uint)(uVar5 < (uint)param_10[1]) + *param_10)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)local_a0 + (uint)(uVar5 < (uint)param_10[1]) + *param_10)" ( (binary_expression "(int)local_a0 + (uint)(uVar5 < (uint)param_10[1]) + *param_10" (binary_expression "(int)local_a0 + (uint)(uVar5 < (uint)param_10[1])" (cast_expression "(int)local_a0" ( (type_descriptor "int" primitive_type) ) identifier) + (call_expression "(uint)(uVar5 < (uint)param_10[1])" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar5 < (uint)param_10[1])" ( (binary_expression "uVar5 < (uint)param_10[1]" identifier < (cast_expression "(uint)param_10[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_10[1]" identifier [ number_literal ]))) )))) + (pointer_expression "*param_10" * identifier)) )))) ;) (expression_statement "param_10[1] = uVar5;" (assignment_expression "param_10[1] = uVar5" (subscript_expression "param_10[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar9 = local_a0;" (assignment_expression "puVar9 = local_a0" identifier = identifier) ;) })) (expression_statement "(*(code *)PTR_free_000b7d34)(puVar4);" (call_expression "(*(code *)PTR_free_000b7d34)(puVar4)" (parenthesized_expression "(*(code *)PTR_free_000b7d34)" ( (pointer_expression "*(code *)PTR_free_000b7d34" * (cast_expression "(code *)PTR_free_000b7d34" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar4)" ( identifier ))) ;) (if_statement "if (local_5c == *(int *)PTR___stack_chk_guard_000b7c68) {\n    return puVar20;\n  }" if (parenthesized_expression "(local_5c == *(int *)PTR___stack_chk_guard_000b7c68)" ( (binary_expression "local_5c == *(int *)PTR___stack_chk_guard_000b7c68" identifier == (pointer_expression "*(int *)PTR___stack_chk_guard_000b7c68" * (cast_expression "(int *)PTR___stack_chk_guard_000b7c68" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return puVar20;\n  }" { (return_statement "return puVar20;" return identifier ;) })) (expression_statement "iVar6 = local_5c;" (assignment_expression "iVar6 = local_5c" identifier = identifier) ;) (expression_statement "puVar21 = PTR___stack_chk_fail_000b7bfc;" (assignment_expression "puVar21 = PTR___stack_chk_fail_000b7bfc" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_000b7bfc)();" (call_expression "(*(code *)PTR___stack_chk_fail_000b7bfc)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000b7bfc)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000b7bfc" * (cast_expression "(code *)PTR___stack_chk_fail_000b7bfc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (if_statement "if (*(char *)(*(int *)(puVar21 + 0x65acc) + 0x223) == '\0') {\n    dVar25 = *(double *)(*(int *)(puVar21 + 0x65bec) + -0x6f98);\n  }\n  else {\n    dVar25 = *(double *)(*(int *)(puVar21 + 0x65bec) + -0x15d8);\n  }" if (parenthesized_expression "(*(char *)(*(int *)(puVar21 + 0x65acc) + 0x223) == '\0')" ( (binary_expression "*(char *)(*(int *)(puVar21 + 0x65acc) + 0x223) == '\0'" (pointer_expression "*(char *)(*(int *)(puVar21 + 0x65acc) + 0x223)" * (cast_expression "(char *)(*(int *)(puVar21 + 0x65acc) + 0x223)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar21 + 0x65acc) + 0x223)" ( (binary_expression "*(int *)(puVar21 + 0x65acc) + 0x223" (pointer_expression "*(int *)(puVar21 + 0x65acc)" * (cast_expression "(int *)(puVar21 + 0x65acc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + 0x65acc)" ( (binary_expression "puVar21 + 0x65acc" identifier + number_literal) )))) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    dVar25 = *(double *)(*(int *)(puVar21 + 0x65bec) + -0x6f98);\n  }" { (expression_statement "dVar25 = *(double *)(*(int *)(puVar21 + 0x65bec) + -0x6f98);" (assignment_expression "dVar25 = *(double *)(*(int *)(puVar21 + 0x65bec) + -0x6f98)" identifier = (pointer_expression "*(double *)(*(int *)(puVar21 + 0x65bec) + -0x6f98)" * (cast_expression "(double *)(*(int *)(puVar21 + 0x65bec) + -0x6f98)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar21 + 0x65bec) + -0x6f98)" ( (binary_expression "*(int *)(puVar21 + 0x65bec) + -0x6f98" (pointer_expression "*(int *)(puVar21 + 0x65bec)" * (cast_expression "(int *)(puVar21 + 0x65bec)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + 0x65bec)" ( (binary_expression "puVar21 + 0x65bec" identifier + number_literal) )))) + number_literal) ))))) ;) }) (else_clause "else {\n    dVar25 = *(double *)(*(int *)(puVar21 + 0x65bec) + -0x15d8);\n  }" else (compound_statement "{\n    dVar25 = *(double *)(*(int *)(puVar21 + 0x65bec) + -0x15d8);\n  }" { (expression_statement "dVar25 = *(double *)(*(int *)(puVar21 + 0x65bec) + -0x15d8);" (assignment_expression "dVar25 = *(double *)(*(int *)(puVar21 + 0x65bec) + -0x15d8)" identifier = (pointer_expression "*(double *)(*(int *)(puVar21 + 0x65bec) + -0x15d8)" * (cast_expression "(double *)(*(int *)(puVar21 + 0x65bec) + -0x15d8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar21 + 0x65bec) + -0x15d8)" ( (binary_expression "*(int *)(puVar21 + 0x65bec) + -0x15d8" (pointer_expression "*(int *)(puVar21 + 0x65bec)" * (cast_expression "(int *)(puVar21 + 0x65bec)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + 0x65bec)" ( (binary_expression "puVar21 + 0x65bec" identifier + number_literal) )))) + number_literal) ))))) ;) }))) (if_statement "if (dVar30 == 0.0) {\n    dVar30 = (double)ptimer_resolution();\n    dVar30 = dVar30 * *(double *)(*(int *)(puVar21 + 0x65bec) + -0x2580);\n  }" if (parenthesized_expression "(dVar30 == 0.0)" ( (binary_expression "dVar30 == 0.0" identifier == number_literal) )) (compound_statement "{\n    dVar30 = (double)ptimer_resolution();\n    dVar30 = dVar30 * *(double *)(*(int *)(puVar21 + 0x65bec) + -0x2580);\n  }" { (expression_statement "dVar30 = (double)ptimer_resolution();" (assignment_expression "dVar30 = (double)ptimer_resolution()" identifier = (cast_expression "(double)ptimer_resolution()" ( (type_descriptor "double" primitive_type) ) (call_expression "ptimer_resolution()" identifier (argument_list "()" ( ))))) ;) (expression_statement "dVar30 = dVar30 * *(double *)(*(int *)(puVar21 + 0x65bec) + -0x2580);" (assignment_expression "dVar30 = dVar30 * *(double *)(*(int *)(puVar21 + 0x65bec) + -0x2580)" identifier = (binary_expression "dVar30 * *(double *)(*(int *)(puVar21 + 0x65bec) + -0x2580)" identifier * (pointer_expression "*(double *)(*(int *)(puVar21 + 0x65bec) + -0x2580)" * (cast_expression "(double *)(*(int *)(puVar21 + 0x65bec) + -0x2580)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar21 + 0x65bec) + -0x2580)" ( (binary_expression "*(int *)(puVar21 + 0x65bec) + -0x2580" (pointer_expression "*(int *)(puVar21 + 0x65bec)" * (cast_expression "(int *)(puVar21 + 0x65bec)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + 0x65bec)" ( (binary_expression "puVar21 + 0x65bec" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "uVar26 = convert_to_bits(iVar6,puVar9);" (assignment_expression "uVar26 = convert_to_bits(iVar6,puVar9)" identifier = (call_expression "convert_to_bits(iVar6,puVar9)" identifier (argument_list "(iVar6,puVar9)" ( identifier , identifier )))) ;) (expression_statement "dVar28 = (double)(**(code **)(puVar21 + 0x65f54))((int)((ulonglong)uVar26 >> 0x20),(int)uVar26);" (assignment_expression "dVar28 = (double)(**(code **)(puVar21 + 0x65f54))((int)((ulonglong)uVar26 >> 0x20),(int)uVar26)" identifier = (cast_expression "(double)(**(code **)(puVar21 + 0x65f54))((int)((ulonglong)uVar26 >> 0x20),(int)uVar26)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(puVar21 + 0x65f54))((int)((ulonglong)uVar26 >> 0x20),(int)uVar26)" (parenthesized_expression "(**(code **)(puVar21 + 0x65f54))" ( (pointer_expression "**(code **)(puVar21 + 0x65f54)" * (pointer_expression "*(code **)(puVar21 + 0x65f54)" * (cast_expression "(code **)(puVar21 + 0x65f54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + 0x65f54)" ( (binary_expression "puVar21 + 0x65f54" identifier + number_literal) ))))) )) (argument_list "((int)((ulonglong)uVar26 >> 0x20),(int)uVar26)" ( (cast_expression "(int)((ulonglong)uVar26 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar26 >> 0x20)" ( (binary_expression "(ulonglong)uVar26 >> 0x20" (cast_expression "(ulonglong)uVar26" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (cast_expression "(int)uVar26" ( (type_descriptor "int" primitive_type) ) identifier) ))))) ;) (expression_statement "dVar28 = dVar28 / dVar30;" (assignment_expression "dVar28 = dVar28 / dVar30" identifier = (binary_expression "dVar28 / dVar30" identifier / identifier)) ;) (if_statement "if (dVar28 < dVar25) {\n    *(undefined4 *)local_120._0_4_ = 0;\n  }\n  else if (dVar28 < dVar25 * dVar25) {\n    *(undefined4 *)local_120._0_4_ = 1;\n    local_120._0_4_ = (undefined8 *)&DAT_00000001;\n  }\n  else if (dVar28 < dVar25 * dVar25 * dVar25) {\n    *(undefined4 *)local_120._0_4_ = 2;\n    local_120._0_4_ = (undefined8 *)0x2;\n  }\n  else {\n    *(undefined4 *)local_120._0_4_ = 3;\n    local_120._0_4_ = (undefined8 *)0x3;\n  }" if (parenthesized_expression "(dVar28 < dVar25)" ( (binary_expression "dVar28 < dVar25" identifier < identifier) )) (compound_statement "{\n    *(undefined4 *)local_120._0_4_ = 0;\n  }" { (expression_statement "*(undefined4 *)local_120._0_4_ = 0;" (assignment_expression "*(undefined4 *)local_120._0_4_ = 0" (pointer_expression "*(undefined4 *)local_120._0_4_" * (cast_expression "(undefined4 *)local_120._0_4_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "local_120._0_4_" identifier . field_identifier))) = number_literal) ;) }) (else_clause "else if (dVar28 < dVar25 * dVar25) {\n    *(undefined4 *)local_120._0_4_ = 1;\n    local_120._0_4_ = (undefined8 *)&DAT_00000001;\n  }\n  else if (dVar28 < dVar25 * dVar25 * dVar25) {\n    *(undefined4 *)local_120._0_4_ = 2;\n    local_120._0_4_ = (undefined8 *)0x2;\n  }\n  else {\n    *(undefined4 *)local_120._0_4_ = 3;\n    local_120._0_4_ = (undefined8 *)0x3;\n  }" else (if_statement "if (dVar28 < dVar25 * dVar25) {\n    *(undefined4 *)local_120._0_4_ = 1;\n    local_120._0_4_ = (undefined8 *)&DAT_00000001;\n  }\n  else if (dVar28 < dVar25 * dVar25 * dVar25) {\n    *(undefined4 *)local_120._0_4_ = 2;\n    local_120._0_4_ = (undefined8 *)0x2;\n  }\n  else {\n    *(undefined4 *)local_120._0_4_ = 3;\n    local_120._0_4_ = (undefined8 *)0x3;\n  }" if (parenthesized_expression "(dVar28 < dVar25 * dVar25)" ( (binary_expression "dVar28 < dVar25 * dVar25" identifier < (binary_expression "dVar25 * dVar25" identifier * identifier)) )) (compound_statement "{\n    *(undefined4 *)local_120._0_4_ = 1;\n    local_120._0_4_ = (undefined8 *)&DAT_00000001;\n  }" { (expression_statement "*(undefined4 *)local_120._0_4_ = 1;" (assignment_expression "*(undefined4 *)local_120._0_4_ = 1" (pointer_expression "*(undefined4 *)local_120._0_4_" * (cast_expression "(undefined4 *)local_120._0_4_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "local_120._0_4_" identifier . field_identifier))) = number_literal) ;) (expression_statement "local_120._0_4_ = (undefined8 *)&DAT_00000001;" (assignment_expression "local_120._0_4_ = (undefined8 *)&DAT_00000001" (field_expression "local_120._0_4_" identifier . field_identifier) = (cast_expression "(undefined8 *)&DAT_00000001" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000001" & identifier))) ;) }) (else_clause "else if (dVar28 < dVar25 * dVar25 * dVar25) {\n    *(undefined4 *)local_120._0_4_ = 2;\n    local_120._0_4_ = (undefined8 *)0x2;\n  }\n  else {\n    *(undefined4 *)local_120._0_4_ = 3;\n    local_120._0_4_ = (undefined8 *)0x3;\n  }" else (if_statement "if (dVar28 < dVar25 * dVar25 * dVar25) {\n    *(undefined4 *)local_120._0_4_ = 2;\n    local_120._0_4_ = (undefined8 *)0x2;\n  }\n  else {\n    *(undefined4 *)local_120._0_4_ = 3;\n    local_120._0_4_ = (undefined8 *)0x3;\n  }" if (parenthesized_expression "(dVar28 < dVar25 * dVar25 * dVar25)" ( (binary_expression "dVar28 < dVar25 * dVar25 * dVar25" identifier < (binary_expression "dVar25 * dVar25 * dVar25" (binary_expression "dVar25 * dVar25" identifier * identifier) * identifier)) )) (compound_statement "{\n    *(undefined4 *)local_120._0_4_ = 2;\n    local_120._0_4_ = (undefined8 *)0x2;\n  }" { (expression_statement "*(undefined4 *)local_120._0_4_ = 2;" (assignment_expression "*(undefined4 *)local_120._0_4_ = 2" (pointer_expression "*(undefined4 *)local_120._0_4_" * (cast_expression "(undefined4 *)local_120._0_4_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "local_120._0_4_" identifier . field_identifier))) = number_literal) ;) (expression_statement "local_120._0_4_ = (undefined8 *)0x2;" (assignment_expression "local_120._0_4_ = (undefined8 *)0x2" (field_expression "local_120._0_4_" identifier . field_identifier) = (cast_expression "(undefined8 *)0x2" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    *(undefined4 *)local_120._0_4_ = 3;\n    local_120._0_4_ = (undefined8 *)0x3;\n  }" else (compound_statement "{\n    *(undefined4 *)local_120._0_4_ = 3;\n    local_120._0_4_ = (undefined8 *)0x3;\n  }" { (expression_statement "*(undefined4 *)local_120._0_4_ = 3;" (assignment_expression "*(undefined4 *)local_120._0_4_ = 3" (pointer_expression "*(undefined4 *)local_120._0_4_" * (cast_expression "(undefined4 *)local_120._0_4_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "local_120._0_4_" identifier . field_identifier))) = number_literal) ;) (expression_statement "local_120._0_4_ = (undefined8 *)0x3;" (assignment_expression "local_120._0_4_ = (undefined8 *)0x3" (field_expression "local_120._0_4_" identifier . field_identifier) = (cast_expression "(undefined8 *)0x3" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))))))) (return_statement "return local_120._0_4_;" return (field_expression "local_120._0_4_" identifier . field_identifier) ;) })))
(translation_unit "/* WARNING: Type propagation algorithm not settling */\n\nint fd_read_body(char *downloaded_filename,int fd,FILE *out,wgint toread,wgint startpos,\n                wgint *qtyread,wgint *qtywritten,double *elapsed,int flags,FILE *out2)\n\n{\n  bool bVar1;\n  undefined3 extraout_var;\n  int iVar2;\n  Bytef *buf;\n  uint uVar3;\n  int iVar4;\n  void *progress;\n  _Bool _Var12;\n  undefined4 uVar5;\n  undefined4 *puVar6;\n  undefined4 *puVar7;\n  char *pcVar8;\n  Bytef *pBVar9;\n  int iVar10;\n  int *piVar11;\n  Bytef *pBVar13;\n  int iVar14;\n  FILE *pFVar15;\n  undefined4 uVar16;\n  FILE *pFVar17;\n  int iVar18;\n  code *pcVar19;\n  FILE *pFVar20;\n  undefined *puVar21;\n  undefined *puVar22;\n  double dVar23;\n  double dVar24;\n  double dVar25;\n  double dVar26;\n  double dVar27;\n  double in_f12_13;\n  double dVar28;\n  double dVar29;\n  double dVar30;\n  double dVar31;\n  wgint wVar32;\n  FILE *in_stack_00000030;\n  undefined4 in_stack_fffffeac;\n  double in_stack_fffffee0;\n  wgint in_stack_fffffee8;\n  ptimer *local_104;\n  Bytef *local_100;\n  Bytef *local_fc;\n  Bytef *local_f0;\n  int local_e4;\n  Bytef *local_e0;\n  char *endl;\n  wgint skip;\n  wgint sum_written;\n  z_stream gzstream;\n  \n  iVar2 = *(int *)PTR___stack_chk_guard_000b7c68;\n  pFVar17 = out;\n  buf = (Bytef *)(*(code *)PTR_xmalloc_000b7480)(0x2000);\n  uVar3 = (uint)out2 & 4;\n  skip._4_4_ = 0;\n  skip._0_4_ = 0;\n  sum_written._4_4_ = 0;\n  sum_written._0_4_ = 0;\n  if (((uint)out2 & 8) == 0) {\n    local_100 = (Bytef *)0x0;\nLAB_00050b74:\n    dVar23 = (double)CONCAT44(pFVar17,qtyread);\n    skip = CONCAT44(skip._0_4_,skip._4_4_);\n    if (((uint)out2 & 2) != 0) {\n      skip = startpos;\n    }\n    if (*(int *)(PTR_opt_000b746c + 0x10c) == 0) {\n      progress = (void *)0x0;\n      if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n        local_e4 = 0;\n        goto LAB_00051950;\n      }\n      local_e4 = 0;\nLAB_00051978:\n      if (flags != 0) goto LAB_00050c48;\n      local_104 = (ptimer *)flags;\n      local_e0 = (Bytef *)0x2000;\n    }\n    else {\n      if (skip != 0) {\n        startpos = 0;\n      }\n      if (*(int *)(PTR_opt_000b746c + 0x30) != 0) {\n        iVar4 = (*(code *)PTR_strlen_000b7c94)();\n        downloaded_filename = downloaded_filename + iVar4 + 1;\n      }\n      in_stack_fffffee0 = (double)(toread + startpos);\n      progress = progress_create(downloaded_filename,(wgint)in_stack_fffffee0,in_stack_fffffee8);\n      _Var12 = progress_interactive_p(progress);\n      local_e4 = CONCAT31(extraout_var,_Var12);\n      dVar23 = (double)startpos;\n      if (*(int *)(PTR_opt_000b746c + 0x158) == 0 && *(int *)(PTR_opt_000b746c + 0x15c) == 0) {\n        if (progress == (void *)0x0) goto LAB_00051978;\n      }\n      else {\nLAB_00051950:\n        puVar21 = PTR_DAT_000b7720;\n        *(undefined4 *)(PTR_DAT_000b7720 + -0x2fe8) = 0;\n        *(undefined4 *)(puVar21 + -0x2fe4) = 0;\n        *(undefined4 *)(puVar21 + -0x2fe0) = 0;\n        *(undefined4 *)(puVar21 + -0x2fdc) = 0;\n        *(undefined4 *)(puVar21 + -0x2fd8) = 0;\n        *(undefined4 *)(puVar21 + -0x2fd4) = 0;\n      }\nLAB_00050c48:\n      local_104 = ptimer_new();\n      iVar4 = *(int *)(PTR_opt_000b746c + 0x158);\n      local_e0 = *(Bytef **)(PTR_opt_000b746c + 0x15c);\n      if (iVar4 == 0 && local_e0 == (Bytef *)0x0) {\n        local_e0 = (Bytef *)0x2000;\n      }\n      else if ((0 < iVar4) || ((iVar4 == 0 && ((Bytef *)0x1fff < local_e0)))) {\n        local_e0 = (Bytef *)0x2000;\n      }\n    }\n    puVar21 = PTR_DAT_000b758c;\n    iVar18 = 0;\n    local_f0 = (Bytef *)0x0;\n    iVar4 = 0;\n    local_fc = (Bytef *)0x0;\n    dVar27 = 0.0;\n    pFVar20 = (FILE *)0x0;\n    dVar29 = *(double *)(PTR_DAT_000b758c + -0x2340);\n    dVar30 = *(double *)(PTR_DAT_000b758c + -0x2580);\n    dVar31 = *(double *)(PTR_DAT_000b758c + -0x15d0);\n    dVar26 = *(double *)(PTR_DAT_000b758c + -0x15d8);\n    while( true ) {\n      uVar5 = SUB84(dVar23,0);\n      iVar14 = (int)local_e0 >> 0x1f;\n      pBVar9 = local_e0;\n      if (((uint)out2 & 1) == 0) break;\n      if (toread._0_4_ <= iVar4) {\n        if (toread._0_4_ != iVar4) goto LAB_000518d4;\n        if (local_fc < toread._4_4_) goto LAB_000517b0;\n        bVar1 = (int)pFVar20 < 0;\n        dVar24 = dVar23;\n        goto LAB_000518d8;\n      }\nLAB_000517b0:\n      dVar28 = *(double *)(PTR_opt_000b746c + 0x120);\n      if (uVar3 != 0) goto LAB_00051820;\n      pBVar13 = toread._4_4_ + -(int)local_fc;\n      iVar10 = (toread._0_4_ - iVar4) - (uint)(toread._4_4_ < pBVar13);\n      dVar23 = (double)CONCAT44(iVar10,uVar5);\n      if ((iVar14 < iVar10) ||\n         ((dVar24 = (double)CONCAT44(iVar10,uVar5), iVar10 == iVar14 &&\n          (dVar24 = (double)CONCAT44(iVar10,uVar5), local_e0 < pBVar13)))) goto LAB_00051864;\nLAB_00051868:\n      pFVar15 = SUB84(dVar24,0);\n      if (local_e4 == 0) {\n        pFVar20 = (FILE *)(*(code *)PTR_fd_read_000b7770)(fd,buf);\n        in_stack_fffffee0 = dVar28;\nLAB_000516fc:\n        bVar1 = (int)pFVar20 < 0;\n        dVar24 = (double)CONCAT44(pBVar13,pFVar15);\n        if ((int)pFVar20 < 1) goto LAB_000518d8;\n        if (progress == (void *)0x0) {\n          if (*(int *)(PTR_opt_000b746c + 0x158) == 0 && *(int *)(PTR_opt_000b746c + 0x15c) == 0)\n          goto LAB_00051720;\n          ptimer_measure(local_104);\n        }\n        else {\n          ptimer_measure(local_104);\n        }\nLAB_000515b0:\n        dVar27 = ptimer_read(local_104);\nLAB_000515c4:\n        pBVar9 = local_fc + (int)pFVar20;\n        iVar4 = (uint)(pBVar9 < local_fc) + iVar4 + ((int)pFVar20 >> 0x1f);\n        pBVar13 = buf;\n        pFVar15 = pFVar20;\n        local_fc = pBVar9;\n        if (local_100 == (Bytef *)0x0) {\n          in_stack_fffffee0 = (double)CONCAT44(&skip,&sum_written);\n          pFVar17 = (FILE *)write_data(out,in_stack_00000030,(char *)buf,(int)pFVar20,&skip,\n                                       &sum_written);\n          dVar24 = (double)CONCAT44(pBVar13,pFVar15);\n          if ((int)pFVar17 < 0) goto LAB_00051040;\n        }\n        else {\n          in_stack_fffffee0 = 0.0;\n          pFVar17 = (FILE *)write_data((FILE *)0x0,in_stack_00000030,(char *)buf,(int)pFVar20,\n                                       (wgint *)0x0,(wgint *)0x0);\n          dVar24 = (double)CONCAT44(pBVar13,pFVar15);\n          if ((int)pFVar17 < 0) goto LAB_00051040;\n          pcVar8 = PTR_DAT_000b758c + -0x1898;\n          pcVar19 = (code *)(PTR_LAB_000b78e4 + 0x3a4);\n          gzstream.next_in = buf;\n          gzstream.avail_in = (uInt)pFVar20;\n          do {\n            gzstream.avail_out = 0x8000;\n            gzstream.next_out = local_100;\n            iVar14 = (*(code *)PTR_inflate_000b7d40)(&gzstream,0);\n            if (iVar14 == -3) {\nLAB_000511f4:\n              puVar7 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n              dVar24 = (double)CONCAT44(pBVar13,pFVar15);\n              *puVar7 = 0x16;\n              pFVar17 = (FILE *)0xffffffff;\n              goto LAB_00051040;\n            }\n            if (iVar14 < -2) {\n              if (iVar14 == -4) {\n                puVar7 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n                dVar24 = (double)CONCAT44(pBVar13,pFVar15);\n                *puVar7 = 0xc;\n                pFVar17 = (FILE *)0xffffffff;\n                goto LAB_00051040;\n              }\n            }\n            else if (iVar14 == 1) {\n              if (((((uint)out2 & 1) != 0) && (toread != CONCAT44(iVar4,pBVar9))) &&\n                 (PTR_opt_000b746c[0x16b] != '\0')) {\n                debug_logprintf(pcVar8);\n              }\n            }\n            else if (iVar14 == 2) goto LAB_000511f4;\n            in_stack_fffffee0 = (double)CONCAT44(&skip,&sum_written);\n            pFVar15 = (FILE *)(0x8000 - gzstream.avail_out);\n            pBVar13 = local_100;\n            pFVar17 = (FILE *)(*pcVar19)(out,0);\n            dVar24 = (double)CONCAT44(pBVar13,pFVar15);\n            if ((int)pFVar17 < 0) goto LAB_00051040;\n          } while (gzstream.avail_out == 0);\n        }\n        if (uVar3 != 0) {\n          pBVar9 = local_f0 + -(int)pFVar20;\n          iVar18 = (iVar18 - ((int)pFVar20 >> 0x1f)) - (uint)(local_f0 < pBVar9);\n          local_f0 = pBVar9;\n          if (iVar18 == 0 && pBVar9 == (Bytef *)0x0) {\n            pcVar8 = fd_read_line(fd);\n            dVar23 = (double)CONCAT44(pBVar13,pFVar15);\n            if (pcVar8 == (char *)0x0) {\n              pFVar20 = (FILE *)0xffffffff;\n              goto LAB_000518d4;\n            }\n            if (in_stack_00000030 != (FILE *)0x0) {\n              pBVar13 = (Bytef *)(*(code *)PTR_strlen_000b7c94)(pcVar8);\n              pFVar15 = in_stack_00000030;\n              (*(code *)PTR_fwrite_000b7c24)(pcVar8,1);\n            }\n            (*(code *)PTR_free_000b7d34)(pcVar8);\n          }\n        }\nLAB_00051748:\n        dVar23 = (double)CONCAT44(pBVar13,pFVar15);\n        if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n          dVar24 = ptimer_read(local_104);\n          puVar22 = PTR_DAT_000b7720;\n          dVar24 = dVar24 - *(double *)(PTR_DAT_000b7720 + -0x2fe0);\n          pFVar17 = (FILE *)(pFVar20->_shortbuf + *(int *)(PTR_DAT_000b7720 + -0x2fe4) + -0x47);\n          iVar14 = (uint)(pFVar17 < pFVar20) +\n                   ((int)pFVar20 >> 0x1f) + *(int *)(PTR_DAT_000b7720 + -0x2fe8);\n          *(int *)(PTR_DAT_000b7720 + -0x2fe8) = iVar14;\n          *(FILE **)(puVar22 + -0x2fe4) = pFVar17;\n          dVar28 = (double)(*(code *)PTR___floatdidf_000b78f4)(iVar14,pFVar17);\n          dVar25 = (double)(*(code *)PTR___floatdidf_000b78f4)\n                                     (*(undefined4 *)(PTR_opt_000b746c + 0x158),\n                                      *(undefined4 *)(PTR_opt_000b746c + 0x15c));\n          dVar23 = (double)CONCAT44(pBVar13,pFVar15);\n          if (dVar24 < dVar28 / dVar25) {\n            dVar24 = (dVar28 / dVar25 - dVar24) + *(double *)(PTR_DAT_000b7720 + -0x2fd8);\n            if (dVar24 < dVar29) {\n              if (PTR_opt_000b746c[0x16b] != '\0') {\n                pcVar8 = number_to_static_string((wgint)in_stack_fffffee0);\n                in_stack_fffffee0 = (double)(ZEXT48(pcVar8) << 0x20);\n                dVar23 = dVar24 * *(double *)(puVar21 + -0x15d8);\n                debug_logprintf(PTR_DAT_000b758c + -0x1864);\n              }\n              goto LAB_0005175c;\n            }\n            in_f12_13 = dVar24;\n            if (PTR_opt_000b746c[0x16b] != '\0') {\n              pcVar8 = number_to_static_string((wgint)in_stack_fffffee0);\n              in_stack_fffffee0 = (double)(ZEXT48(pcVar8) << 0x20);\n              dVar23 = dVar24 * dVar26;\n              debug_logprintf(PTR_DAT_000b758c + -0x183c);\n              in_f12_13 = dVar24;\n            }\n            dVar28 = ptimer_read(local_104);\n            dVar24 = in_f12_13;\n            xsleep(in_f12_13);\n            dVar25 = ptimer_measure(local_104);\n            dVar24 = dVar24 - (dVar25 - dVar28);\n            if (dVar30 < dVar24) {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar21 + -0x2580);\n            }\n            else if (dVar31 <= dVar24) {\n              *(double *)(PTR_DAT_000b7720 + -0x2fd8) = dVar24;\n            }\n            else {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar21 + -0x15d0);\n            }\n          }\n          puVar22 = PTR_DAT_000b7720;\n          *(undefined4 *)(PTR_DAT_000b7720 + -0x2fe4) = 0;\n          *(undefined4 *)(puVar22 + -0x2fe8) = 0;\n          dVar24 = ptimer_read(local_104);\n          *(double *)(puVar22 + -0x2fe0) = dVar24;\n        }\n      }\n      else {\n        if (*(double *)(PTR_opt_000b746c + 0x120) == 0.0) {\n          dVar28 = *(double *)(PTR_DAT_000b758c + -0x15e0);\n        }\n        else {\n          dVar23 = ptimer_read(local_104);\n          pFVar15 = SUB84(dVar24,0);\n          if (*(double *)(PTR_opt_000b746c + 0x120) <\n              (dVar23 - dVar27) + *(double *)(PTR_DAT_000b758c + -0x15e0)) {\n            dVar28 = *(double *)(PTR_opt_000b746c + 0x120) - (dVar23 - dVar27);\n            if (dVar28 < 0.0) {\n              puVar7 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n              *puVar7 = 0x91;\n              pFVar17 = (FILE *)0xffffffff;\n              goto LAB_00051040;\n            }\n          }\n          else {\n            dVar28 = *(double *)(PTR_DAT_000b758c + -0x15e0);\n          }\n        }\n        pFVar20 = (FILE *)(*(code *)PTR_fd_read_000b7770)(fd,buf);\n        in_stack_fffffee0 = dVar28;\n        if (-1 < (int)pFVar20) goto LAB_000516fc;\n        piVar11 = (int *)(*(code *)PTR___errno_location_000b7eb8)();\n        dVar23 = (double)CONCAT44(pBVar13,pFVar15);\n        in_stack_fffffee0 = dVar28;\n        if (*piVar11 != 0x91) goto LAB_000518d4;\n        if (progress != (void *)0x0) {\n          ptimer_measure(local_104);\n          iVar2 = FUN_00051744();\n          return iVar2;\n        }\n        if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n          ptimer_measure(local_104);\n          iVar2 = FUN_00051744();\n          return iVar2;\n        }\n        pFVar20 = (FILE *)0x0;\nLAB_00051720:\n        dVar23 = (double)CONCAT44(pBVar13,pFVar15);\n        if (flags != 0) {\n          ptimer_measure(local_104);\n          if (0 < (int)pFVar20) goto LAB_000515b0;\n          goto LAB_00051748;\n        }\n        if (0 < (int)pFVar20) goto LAB_000515c4;\n      }\nLAB_0005175c:\n      if (progress != (void *)0x0) {\n        in_stack_fffffee0 = ptimer_read(local_104);\n        iVar14 = (int)pFVar20 >> 0x1f;\n        pFVar17 = pFVar20;\n        progress_update(progress,(wgint)in_stack_fffffee0,in_f12_13);\n        dVar23 = (double)CONCAT44(iVar14,pFVar17);\n      }\n    }\n    dVar28 = *(double *)(PTR_opt_000b746c + 0x120);\n    if (uVar3 == 0) {\nLAB_00051864:\n      pBVar13 = pBVar9;\n      dVar24 = dVar23;\n      goto LAB_00051868;\n    }\nLAB_00051820:\n    if (iVar18 != 0 || local_f0 != (Bytef *)0x0) {\nLAB_00051830:\n      pBVar9 = local_f0;\n      if ((iVar14 <= iVar18) &&\n         ((pBVar13 = local_e0, dVar24 = dVar23, iVar14 != iVar18 ||\n          (pBVar9 = local_f0, local_e0 <= local_f0)))) goto LAB_00051868;\n      goto LAB_00051864;\n    }\n    pcVar8 = fd_read_line(fd);\n    pFVar17 = SUB84(dVar23,0);\n    if (pcVar8 == (char *)0x0) {\nLAB_00050e90:\n      pFVar20 = (FILE *)0xffffffff;\nLAB_000518d4:\n      bVar1 = (int)pFVar20 < 0;\n      dVar24 = dVar23;\nLAB_000518d8:\n      pFVar17 = (FILE *)0xffffffff;\n      if (!bVar1) {\n        pFVar17 = pFVar20;\n      }\n    }\n    else {\n      if (in_stack_00000030 != (FILE *)0x0) {\n        uVar5 = (*(code *)PTR_strlen_000b7c94)(pcVar8);\n        pFVar17 = in_stack_00000030;\n        (*(code *)PTR_fwrite_000b7c24)(pcVar8,1,uVar5);\n      }\n      uVar5 = 0x10;\n      local_f0 = (Bytef *)(*(code *)PTR_strtol_000b7d3c)(pcVar8,&endl);\n      iVar18 = (int)local_f0 >> 0x1f;\n      (*(code *)PTR_free_000b7d34)(pcVar8);\n      dVar23 = (double)CONCAT44(uVar5,pFVar17);\n      if (iVar18 < 0) goto LAB_00050e90;\n      if (local_f0 != (Bytef *)0x0) goto LAB_00051830;\n      pcVar8 = fd_read_line(fd);\n      dVar24 = (double)CONCAT44(uVar5,pFVar17);\n      if (pcVar8 == (char *)0x0) {\n        pFVar17 = (FILE *)0xffffffff;\n      }\n      else {\n        if (in_stack_00000030 != (FILE *)0x0) {\n          uVar5 = (*(code *)PTR_strlen_000b7c94)(pcVar8);\n          (*(code *)PTR_fwrite_000b7c24)(pcVar8,1);\n          pFVar17 = in_stack_00000030;\n        }\n        (*(code *)PTR_free_000b7d34)(pcVar8);\n        dVar24 = (double)CONCAT44(uVar5,pFVar17);\n        pFVar17 = (FILE *)0x0;\n      }\n    }\nLAB_00051040:\n    puVar7 = (undefined4 *)((ulonglong)in_stack_fffffee0 >> 0x20);\n    if (progress != (void *)0x0) {\n      dVar24 = ptimer_read(local_104);\n      uVar16 = SUB84(dVar24,0);\n      uVar5 = (undefined4)((ulonglong)dVar24 >> 0x20);\n      progress_finish(progress,in_f12_13);\n      dVar24 = (double)CONCAT44(uVar5,uVar16);\n    }\n    if (flags != 0) goto LAB_00051080;\n  }\n  else {\n    local_100 = (Bytef *)(*(code *)PTR_xmalloc_000b7480)(0x8000);\n    puVar7 = (undefined4 *)((ulonglong)in_stack_fffffee0 >> 0x20);\n    if (local_100 == (Bytef *)0x0) {\n      puVar6 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n      *puVar6 = 0xc;\n    }\n    else {\n      gzstream.zalloc = (alloc_func)(PTR_LAB_000b78e4 + 0x368);\n      gzstream.zfree = (free_func)(PTR_LAB_000b78e4 + 0x330);\n      gzstream.opaque = (voidpf)0x0;\n      gzstream.next_in = (Bytef *)0x0;\n      gzstream.avail_in = 0;\n      qtyread = (wgint *)0x38;\n      pFVar17 = (FILE *)(PTR_DAT_000b758c + -0x18a0);\n      iVar4 = (*(code *)PTR_inflateInit2__000b7d68)(&gzstream,0x2f);\n      puVar7 = (undefined4 *)((ulonglong)in_stack_fffffee0 >> 0x20);\n      if (iVar4 == 0) goto LAB_00050b74;\n      (*(code *)PTR_free_000b7d34)(local_100);\n      uVar5 = 0x16;\n      if (iVar4 == -4) {\n        uVar5 = 0xc;\n      }\n      puVar6 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n      *puVar6 = uVar5;\n    }\n    dVar24 = (double)CONCAT44(pFVar17,qtyread);\n    local_100 = (Bytef *)flags;\n    if (flags == 0) {\n      iVar4 = 0;\n      local_fc = (Bytef *)0x0;\n      pFVar17 = (FILE *)0xffffffff;\n      goto LAB_000510b8;\n    }\n    local_100 = (Bytef *)0x0;\n    iVar4 = 0;\n    local_fc = (Bytef *)0x0;\n    local_104 = (ptimer *)0x0;\n    pFVar17 = (FILE *)0xffffffff;\nLAB_00051080:\n    dVar23 = ptimer_read(local_104);\n    *(double *)flags = dVar23;\n  }\n  if (local_104 != (ptimer *)0x0) {\n    ptimer_destroy(local_104);\n  }\nLAB_000510b8:\n  if (local_100 != (Bytef *)0x0) {\n    pFVar20 = (FILE *)(*(code *)PTR_inflateEnd_000b7e58)(&gzstream);\n    if ((-1 < (int)pFVar17) && (pFVar17 = pFVar20, pFVar20 != (FILE *)0x0)) {\n      puVar6 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)(local_100);\n      *puVar6 = 0x16;\n      pFVar17 = (FILE *)0xffffffff;\n    }\n    (*(code *)PTR_free_000b7d34)(local_100);\n    if (((iVar4 != 0) || ((Bytef *)gzstream.total_in != local_fc)) &&\n       (dVar24 = (double)CONCAT44(iVar4,SUB84(dVar24,0)), PTR_opt_000b746c[0x16b] != '\0')) {\n      iVar18 = iVar4;\n      pBVar9 = local_fc;\n      debug_logprintf(PTR_DAT_000b758c + -0x180c);\n      dVar24 = (double)CONCAT44(iVar18,pBVar9);\n    }\n  }\n  if (qtywritten != (wgint *)0x0) {\n    local_fc = *(Bytef **)((int)qtywritten + 4) + (int)local_fc;\n    *(uint *)qtywritten =\n         (uint)(local_fc < *(Bytef **)((int)qtywritten + 4)) + *(int *)qtywritten + iVar4;\n    *(Bytef **)((int)qtywritten + 4) = local_fc;\n  }\n  if (elapsed != (double *)0x0) {\n    uVar3 = *(uint *)((int)elapsed + 4) + sum_written._4_4_;\n    *(uint *)elapsed =\n         (uint)(uVar3 < *(uint *)((int)elapsed + 4)) + *(int *)elapsed + sum_written._0_4_;\n    *(uint *)((int)elapsed + 4) = uVar3;\n  }\n  (*(code *)PTR_free_000b7d34)(buf);\n  if (iVar2 != *(int *)PTR___stack_chk_guard_000b7c68) {\n    puVar21 = PTR___stack_chk_fail_000b7bfc;\n    (*(code *)PTR___stack_chk_fail_000b7bfc)();\n    puVar22 = puVar21 + 0x6da90;\n    if (*(char *)(*(int *)(puVar21 + 0x65acc) + 0x223) == '\0') {\n      dVar23 = *(double *)(*(int *)(puVar21 + 0x65bec) + -0x6f98);\n    }\n    else {\n      dVar23 = *(double *)(*(int *)(puVar21 + 0x65bec) + -0x15d8);\n    }\n    if (dVar24 == 0.0) {\n      dVar24 = ptimer_resolution();\n      dVar24 = dVar24 * *(double *)(*(int *)(puVar22 + -0x7ea4) + -0x2580);\n    }\n    wVar32 = convert_to_bits(CONCAT44(puVar22,in_stack_fffffeac));\n    dVar26 = (double)(**(code **)(puVar22 + -0x7b3c))((int)((ulonglong)wVar32 >> 0x20),(int)wVar32);\n    dVar26 = dVar26 / dVar24;\n    if (dVar26 < dVar23) {\n      *puVar7 = 0;\n    }\n    else if (dVar26 < dVar23 * dVar23) {\n      *puVar7 = 1;\n      puVar7 = (undefined4 *)&DAT_00000001;\n    }\n    else if (dVar26 < dVar23 * dVar23 * dVar23) {\n      *puVar7 = 2;\n      puVar7 = (undefined4 *)0x2;\n    }\n    else {\n      *puVar7 = 3;\n      puVar7 = (undefined4 *)0x3;\n    }\n    return (int)puVar7;\n  }\n  return (int)pFVar17;\n}\n\n" comment (function_definition "int fd_read_body(char *downloaded_filename,int fd,FILE *out,wgint toread,wgint startpos,\n                wgint *qtyread,wgint *qtywritten,double *elapsed,int flags,FILE *out2)\n\n{\n  bool bVar1;\n  undefined3 extraout_var;\n  int iVar2;\n  Bytef *buf;\n  uint uVar3;\n  int iVar4;\n  void *progress;\n  _Bool _Var12;\n  undefined4 uVar5;\n  undefined4 *puVar6;\n  undefined4 *puVar7;\n  char *pcVar8;\n  Bytef *pBVar9;\n  int iVar10;\n  int *piVar11;\n  Bytef *pBVar13;\n  int iVar14;\n  FILE *pFVar15;\n  undefined4 uVar16;\n  FILE *pFVar17;\n  int iVar18;\n  code *pcVar19;\n  FILE *pFVar20;\n  undefined *puVar21;\n  undefined *puVar22;\n  double dVar23;\n  double dVar24;\n  double dVar25;\n  double dVar26;\n  double dVar27;\n  double in_f12_13;\n  double dVar28;\n  double dVar29;\n  double dVar30;\n  double dVar31;\n  wgint wVar32;\n  FILE *in_stack_00000030;\n  undefined4 in_stack_fffffeac;\n  double in_stack_fffffee0;\n  wgint in_stack_fffffee8;\n  ptimer *local_104;\n  Bytef *local_100;\n  Bytef *local_fc;\n  Bytef *local_f0;\n  int local_e4;\n  Bytef *local_e0;\n  char *endl;\n  wgint skip;\n  wgint sum_written;\n  z_stream gzstream;\n  \n  iVar2 = *(int *)PTR___stack_chk_guard_000b7c68;\n  pFVar17 = out;\n  buf = (Bytef *)(*(code *)PTR_xmalloc_000b7480)(0x2000);\n  uVar3 = (uint)out2 & 4;\n  skip._4_4_ = 0;\n  skip._0_4_ = 0;\n  sum_written._4_4_ = 0;\n  sum_written._0_4_ = 0;\n  if (((uint)out2 & 8) == 0) {\n    local_100 = (Bytef *)0x0;\nLAB_00050b74:\n    dVar23 = (double)CONCAT44(pFVar17,qtyread);\n    skip = CONCAT44(skip._0_4_,skip._4_4_);\n    if (((uint)out2 & 2) != 0) {\n      skip = startpos;\n    }\n    if (*(int *)(PTR_opt_000b746c + 0x10c) == 0) {\n      progress = (void *)0x0;\n      if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n        local_e4 = 0;\n        goto LAB_00051950;\n      }\n      local_e4 = 0;\nLAB_00051978:\n      if (flags != 0) goto LAB_00050c48;\n      local_104 = (ptimer *)flags;\n      local_e0 = (Bytef *)0x2000;\n    }\n    else {\n      if (skip != 0) {\n        startpos = 0;\n      }\n      if (*(int *)(PTR_opt_000b746c + 0x30) != 0) {\n        iVar4 = (*(code *)PTR_strlen_000b7c94)();\n        downloaded_filename = downloaded_filename + iVar4 + 1;\n      }\n      in_stack_fffffee0 = (double)(toread + startpos);\n      progress = progress_create(downloaded_filename,(wgint)in_stack_fffffee0,in_stack_fffffee8);\n      _Var12 = progress_interactive_p(progress);\n      local_e4 = CONCAT31(extraout_var,_Var12);\n      dVar23 = (double)startpos;\n      if (*(int *)(PTR_opt_000b746c + 0x158) == 0 && *(int *)(PTR_opt_000b746c + 0x15c) == 0) {\n        if (progress == (void *)0x0) goto LAB_00051978;\n      }\n      else {\nLAB_00051950:\n        puVar21 = PTR_DAT_000b7720;\n        *(undefined4 *)(PTR_DAT_000b7720 + -0x2fe8) = 0;\n        *(undefined4 *)(puVar21 + -0x2fe4) = 0;\n        *(undefined4 *)(puVar21 + -0x2fe0) = 0;\n        *(undefined4 *)(puVar21 + -0x2fdc) = 0;\n        *(undefined4 *)(puVar21 + -0x2fd8) = 0;\n        *(undefined4 *)(puVar21 + -0x2fd4) = 0;\n      }\nLAB_00050c48:\n      local_104 = ptimer_new();\n      iVar4 = *(int *)(PTR_opt_000b746c + 0x158);\n      local_e0 = *(Bytef **)(PTR_opt_000b746c + 0x15c);\n      if (iVar4 == 0 && local_e0 == (Bytef *)0x0) {\n        local_e0 = (Bytef *)0x2000;\n      }\n      else if ((0 < iVar4) || ((iVar4 == 0 && ((Bytef *)0x1fff < local_e0)))) {\n        local_e0 = (Bytef *)0x2000;\n      }\n    }\n    puVar21 = PTR_DAT_000b758c;\n    iVar18 = 0;\n    local_f0 = (Bytef *)0x0;\n    iVar4 = 0;\n    local_fc = (Bytef *)0x0;\n    dVar27 = 0.0;\n    pFVar20 = (FILE *)0x0;\n    dVar29 = *(double *)(PTR_DAT_000b758c + -0x2340);\n    dVar30 = *(double *)(PTR_DAT_000b758c + -0x2580);\n    dVar31 = *(double *)(PTR_DAT_000b758c + -0x15d0);\n    dVar26 = *(double *)(PTR_DAT_000b758c + -0x15d8);\n    while( true ) {\n      uVar5 = SUB84(dVar23,0);\n      iVar14 = (int)local_e0 >> 0x1f;\n      pBVar9 = local_e0;\n      if (((uint)out2 & 1) == 0) break;\n      if (toread._0_4_ <= iVar4) {\n        if (toread._0_4_ != iVar4) goto LAB_000518d4;\n        if (local_fc < toread._4_4_) goto LAB_000517b0;\n        bVar1 = (int)pFVar20 < 0;\n        dVar24 = dVar23;\n        goto LAB_000518d8;\n      }\nLAB_000517b0:\n      dVar28 = *(double *)(PTR_opt_000b746c + 0x120);\n      if (uVar3 != 0) goto LAB_00051820;\n      pBVar13 = toread._4_4_ + -(int)local_fc;\n      iVar10 = (toread._0_4_ - iVar4) - (uint)(toread._4_4_ < pBVar13);\n      dVar23 = (double)CONCAT44(iVar10,uVar5);\n      if ((iVar14 < iVar10) ||\n         ((dVar24 = (double)CONCAT44(iVar10,uVar5), iVar10 == iVar14 &&\n          (dVar24 = (double)CONCAT44(iVar10,uVar5), local_e0 < pBVar13)))) goto LAB_00051864;\nLAB_00051868:\n      pFVar15 = SUB84(dVar24,0);\n      if (local_e4 == 0) {\n        pFVar20 = (FILE *)(*(code *)PTR_fd_read_000b7770)(fd,buf);\n        in_stack_fffffee0 = dVar28;\nLAB_000516fc:\n        bVar1 = (int)pFVar20 < 0;\n        dVar24 = (double)CONCAT44(pBVar13,pFVar15);\n        if ((int)pFVar20 < 1) goto LAB_000518d8;\n        if (progress == (void *)0x0) {\n          if (*(int *)(PTR_opt_000b746c + 0x158) == 0 && *(int *)(PTR_opt_000b746c + 0x15c) == 0)\n          goto LAB_00051720;\n          ptimer_measure(local_104);\n        }\n        else {\n          ptimer_measure(local_104);\n        }\nLAB_000515b0:\n        dVar27 = ptimer_read(local_104);\nLAB_000515c4:\n        pBVar9 = local_fc + (int)pFVar20;\n        iVar4 = (uint)(pBVar9 < local_fc) + iVar4 + ((int)pFVar20 >> 0x1f);\n        pBVar13 = buf;\n        pFVar15 = pFVar20;\n        local_fc = pBVar9;\n        if (local_100 == (Bytef *)0x0) {\n          in_stack_fffffee0 = (double)CONCAT44(&skip,&sum_written);\n          pFVar17 = (FILE *)write_data(out,in_stack_00000030,(char *)buf,(int)pFVar20,&skip,\n                                       &sum_written);\n          dVar24 = (double)CONCAT44(pBVar13,pFVar15);\n          if ((int)pFVar17 < 0) goto LAB_00051040;\n        }\n        else {\n          in_stack_fffffee0 = 0.0;\n          pFVar17 = (FILE *)write_data((FILE *)0x0,in_stack_00000030,(char *)buf,(int)pFVar20,\n                                       (wgint *)0x0,(wgint *)0x0);\n          dVar24 = (double)CONCAT44(pBVar13,pFVar15);\n          if ((int)pFVar17 < 0) goto LAB_00051040;\n          pcVar8 = PTR_DAT_000b758c + -0x1898;\n          pcVar19 = (code *)(PTR_LAB_000b78e4 + 0x3a4);\n          gzstream.next_in = buf;\n          gzstream.avail_in = (uInt)pFVar20;\n          do {\n            gzstream.avail_out = 0x8000;\n            gzstream.next_out = local_100;\n            iVar14 = (*(code *)PTR_inflate_000b7d40)(&gzstream,0);\n            if (iVar14 == -3) {\nLAB_000511f4:\n              puVar7 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n              dVar24 = (double)CONCAT44(pBVar13,pFVar15);\n              *puVar7 = 0x16;\n              pFVar17 = (FILE *)0xffffffff;\n              goto LAB_00051040;\n            }\n            if (iVar14 < -2) {\n              if (iVar14 == -4) {\n                puVar7 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n                dVar24 = (double)CONCAT44(pBVar13,pFVar15);\n                *puVar7 = 0xc;\n                pFVar17 = (FILE *)0xffffffff;\n                goto LAB_00051040;\n              }\n            }\n            else if (iVar14 == 1) {\n              if (((((uint)out2 & 1) != 0) && (toread != CONCAT44(iVar4,pBVar9))) &&\n                 (PTR_opt_000b746c[0x16b] != '\0')) {\n                debug_logprintf(pcVar8);\n              }\n            }\n            else if (iVar14 == 2) goto LAB_000511f4;\n            in_stack_fffffee0 = (double)CONCAT44(&skip,&sum_written);\n            pFVar15 = (FILE *)(0x8000 - gzstream.avail_out);\n            pBVar13 = local_100;\n            pFVar17 = (FILE *)(*pcVar19)(out,0);\n            dVar24 = (double)CONCAT44(pBVar13,pFVar15);\n            if ((int)pFVar17 < 0) goto LAB_00051040;\n          } while (gzstream.avail_out == 0);\n        }\n        if (uVar3 != 0) {\n          pBVar9 = local_f0 + -(int)pFVar20;\n          iVar18 = (iVar18 - ((int)pFVar20 >> 0x1f)) - (uint)(local_f0 < pBVar9);\n          local_f0 = pBVar9;\n          if (iVar18 == 0 && pBVar9 == (Bytef *)0x0) {\n            pcVar8 = fd_read_line(fd);\n            dVar23 = (double)CONCAT44(pBVar13,pFVar15);\n            if (pcVar8 == (char *)0x0) {\n              pFVar20 = (FILE *)0xffffffff;\n              goto LAB_000518d4;\n            }\n            if (in_stack_00000030 != (FILE *)0x0) {\n              pBVar13 = (Bytef *)(*(code *)PTR_strlen_000b7c94)(pcVar8);\n              pFVar15 = in_stack_00000030;\n              (*(code *)PTR_fwrite_000b7c24)(pcVar8,1);\n            }\n            (*(code *)PTR_free_000b7d34)(pcVar8);\n          }\n        }\nLAB_00051748:\n        dVar23 = (double)CONCAT44(pBVar13,pFVar15);\n        if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n          dVar24 = ptimer_read(local_104);\n          puVar22 = PTR_DAT_000b7720;\n          dVar24 = dVar24 - *(double *)(PTR_DAT_000b7720 + -0x2fe0);\n          pFVar17 = (FILE *)(pFVar20->_shortbuf + *(int *)(PTR_DAT_000b7720 + -0x2fe4) + -0x47);\n          iVar14 = (uint)(pFVar17 < pFVar20) +\n                   ((int)pFVar20 >> 0x1f) + *(int *)(PTR_DAT_000b7720 + -0x2fe8);\n          *(int *)(PTR_DAT_000b7720 + -0x2fe8) = iVar14;\n          *(FILE **)(puVar22 + -0x2fe4) = pFVar17;\n          dVar28 = (double)(*(code *)PTR___floatdidf_000b78f4)(iVar14,pFVar17);\n          dVar25 = (double)(*(code *)PTR___floatdidf_000b78f4)\n                                     (*(undefined4 *)(PTR_opt_000b746c + 0x158),\n                                      *(undefined4 *)(PTR_opt_000b746c + 0x15c));\n          dVar23 = (double)CONCAT44(pBVar13,pFVar15);\n          if (dVar24 < dVar28 / dVar25) {\n            dVar24 = (dVar28 / dVar25 - dVar24) + *(double *)(PTR_DAT_000b7720 + -0x2fd8);\n            if (dVar24 < dVar29) {\n              if (PTR_opt_000b746c[0x16b] != '\0') {\n                pcVar8 = number_to_static_string((wgint)in_stack_fffffee0);\n                in_stack_fffffee0 = (double)(ZEXT48(pcVar8) << 0x20);\n                dVar23 = dVar24 * *(double *)(puVar21 + -0x15d8);\n                debug_logprintf(PTR_DAT_000b758c + -0x1864);\n              }\n              goto LAB_0005175c;\n            }\n            in_f12_13 = dVar24;\n            if (PTR_opt_000b746c[0x16b] != '\0') {\n              pcVar8 = number_to_static_string((wgint)in_stack_fffffee0);\n              in_stack_fffffee0 = (double)(ZEXT48(pcVar8) << 0x20);\n              dVar23 = dVar24 * dVar26;\n              debug_logprintf(PTR_DAT_000b758c + -0x183c);\n              in_f12_13 = dVar24;\n            }\n            dVar28 = ptimer_read(local_104);\n            dVar24 = in_f12_13;\n            xsleep(in_f12_13);\n            dVar25 = ptimer_measure(local_104);\n            dVar24 = dVar24 - (dVar25 - dVar28);\n            if (dVar30 < dVar24) {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar21 + -0x2580);\n            }\n            else if (dVar31 <= dVar24) {\n              *(double *)(PTR_DAT_000b7720 + -0x2fd8) = dVar24;\n            }\n            else {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar21 + -0x15d0);\n            }\n          }\n          puVar22 = PTR_DAT_000b7720;\n          *(undefined4 *)(PTR_DAT_000b7720 + -0x2fe4) = 0;\n          *(undefined4 *)(puVar22 + -0x2fe8) = 0;\n          dVar24 = ptimer_read(local_104);\n          *(double *)(puVar22 + -0x2fe0) = dVar24;\n        }\n      }\n      else {\n        if (*(double *)(PTR_opt_000b746c + 0x120) == 0.0) {\n          dVar28 = *(double *)(PTR_DAT_000b758c + -0x15e0);\n        }\n        else {\n          dVar23 = ptimer_read(local_104);\n          pFVar15 = SUB84(dVar24,0);\n          if (*(double *)(PTR_opt_000b746c + 0x120) <\n              (dVar23 - dVar27) + *(double *)(PTR_DAT_000b758c + -0x15e0)) {\n            dVar28 = *(double *)(PTR_opt_000b746c + 0x120) - (dVar23 - dVar27);\n            if (dVar28 < 0.0) {\n              puVar7 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n              *puVar7 = 0x91;\n              pFVar17 = (FILE *)0xffffffff;\n              goto LAB_00051040;\n            }\n          }\n          else {\n            dVar28 = *(double *)(PTR_DAT_000b758c + -0x15e0);\n          }\n        }\n        pFVar20 = (FILE *)(*(code *)PTR_fd_read_000b7770)(fd,buf);\n        in_stack_fffffee0 = dVar28;\n        if (-1 < (int)pFVar20) goto LAB_000516fc;\n        piVar11 = (int *)(*(code *)PTR___errno_location_000b7eb8)();\n        dVar23 = (double)CONCAT44(pBVar13,pFVar15);\n        in_stack_fffffee0 = dVar28;\n        if (*piVar11 != 0x91) goto LAB_000518d4;\n        if (progress != (void *)0x0) {\n          ptimer_measure(local_104);\n          iVar2 = FUN_00051744();\n          return iVar2;\n        }\n        if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n          ptimer_measure(local_104);\n          iVar2 = FUN_00051744();\n          return iVar2;\n        }\n        pFVar20 = (FILE *)0x0;\nLAB_00051720:\n        dVar23 = (double)CONCAT44(pBVar13,pFVar15);\n        if (flags != 0) {\n          ptimer_measure(local_104);\n          if (0 < (int)pFVar20) goto LAB_000515b0;\n          goto LAB_00051748;\n        }\n        if (0 < (int)pFVar20) goto LAB_000515c4;\n      }\nLAB_0005175c:\n      if (progress != (void *)0x0) {\n        in_stack_fffffee0 = ptimer_read(local_104);\n        iVar14 = (int)pFVar20 >> 0x1f;\n        pFVar17 = pFVar20;\n        progress_update(progress,(wgint)in_stack_fffffee0,in_f12_13);\n        dVar23 = (double)CONCAT44(iVar14,pFVar17);\n      }\n    }\n    dVar28 = *(double *)(PTR_opt_000b746c + 0x120);\n    if (uVar3 == 0) {\nLAB_00051864:\n      pBVar13 = pBVar9;\n      dVar24 = dVar23;\n      goto LAB_00051868;\n    }\nLAB_00051820:\n    if (iVar18 != 0 || local_f0 != (Bytef *)0x0) {\nLAB_00051830:\n      pBVar9 = local_f0;\n      if ((iVar14 <= iVar18) &&\n         ((pBVar13 = local_e0, dVar24 = dVar23, iVar14 != iVar18 ||\n          (pBVar9 = local_f0, local_e0 <= local_f0)))) goto LAB_00051868;\n      goto LAB_00051864;\n    }\n    pcVar8 = fd_read_line(fd);\n    pFVar17 = SUB84(dVar23,0);\n    if (pcVar8 == (char *)0x0) {\nLAB_00050e90:\n      pFVar20 = (FILE *)0xffffffff;\nLAB_000518d4:\n      bVar1 = (int)pFVar20 < 0;\n      dVar24 = dVar23;\nLAB_000518d8:\n      pFVar17 = (FILE *)0xffffffff;\n      if (!bVar1) {\n        pFVar17 = pFVar20;\n      }\n    }\n    else {\n      if (in_stack_00000030 != (FILE *)0x0) {\n        uVar5 = (*(code *)PTR_strlen_000b7c94)(pcVar8);\n        pFVar17 = in_stack_00000030;\n        (*(code *)PTR_fwrite_000b7c24)(pcVar8,1,uVar5);\n      }\n      uVar5 = 0x10;\n      local_f0 = (Bytef *)(*(code *)PTR_strtol_000b7d3c)(pcVar8,&endl);\n      iVar18 = (int)local_f0 >> 0x1f;\n      (*(code *)PTR_free_000b7d34)(pcVar8);\n      dVar23 = (double)CONCAT44(uVar5,pFVar17);\n      if (iVar18 < 0) goto LAB_00050e90;\n      if (local_f0 != (Bytef *)0x0) goto LAB_00051830;\n      pcVar8 = fd_read_line(fd);\n      dVar24 = (double)CONCAT44(uVar5,pFVar17);\n      if (pcVar8 == (char *)0x0) {\n        pFVar17 = (FILE *)0xffffffff;\n      }\n      else {\n        if (in_stack_00000030 != (FILE *)0x0) {\n          uVar5 = (*(code *)PTR_strlen_000b7c94)(pcVar8);\n          (*(code *)PTR_fwrite_000b7c24)(pcVar8,1);\n          pFVar17 = in_stack_00000030;\n        }\n        (*(code *)PTR_free_000b7d34)(pcVar8);\n        dVar24 = (double)CONCAT44(uVar5,pFVar17);\n        pFVar17 = (FILE *)0x0;\n      }\n    }\nLAB_00051040:\n    puVar7 = (undefined4 *)((ulonglong)in_stack_fffffee0 >> 0x20);\n    if (progress != (void *)0x0) {\n      dVar24 = ptimer_read(local_104);\n      uVar16 = SUB84(dVar24,0);\n      uVar5 = (undefined4)((ulonglong)dVar24 >> 0x20);\n      progress_finish(progress,in_f12_13);\n      dVar24 = (double)CONCAT44(uVar5,uVar16);\n    }\n    if (flags != 0) goto LAB_00051080;\n  }\n  else {\n    local_100 = (Bytef *)(*(code *)PTR_xmalloc_000b7480)(0x8000);\n    puVar7 = (undefined4 *)((ulonglong)in_stack_fffffee0 >> 0x20);\n    if (local_100 == (Bytef *)0x0) {\n      puVar6 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n      *puVar6 = 0xc;\n    }\n    else {\n      gzstream.zalloc = (alloc_func)(PTR_LAB_000b78e4 + 0x368);\n      gzstream.zfree = (free_func)(PTR_LAB_000b78e4 + 0x330);\n      gzstream.opaque = (voidpf)0x0;\n      gzstream.next_in = (Bytef *)0x0;\n      gzstream.avail_in = 0;\n      qtyread = (wgint *)0x38;\n      pFVar17 = (FILE *)(PTR_DAT_000b758c + -0x18a0);\n      iVar4 = (*(code *)PTR_inflateInit2__000b7d68)(&gzstream,0x2f);\n      puVar7 = (undefined4 *)((ulonglong)in_stack_fffffee0 >> 0x20);\n      if (iVar4 == 0) goto LAB_00050b74;\n      (*(code *)PTR_free_000b7d34)(local_100);\n      uVar5 = 0x16;\n      if (iVar4 == -4) {\n        uVar5 = 0xc;\n      }\n      puVar6 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n      *puVar6 = uVar5;\n    }\n    dVar24 = (double)CONCAT44(pFVar17,qtyread);\n    local_100 = (Bytef *)flags;\n    if (flags == 0) {\n      iVar4 = 0;\n      local_fc = (Bytef *)0x0;\n      pFVar17 = (FILE *)0xffffffff;\n      goto LAB_000510b8;\n    }\n    local_100 = (Bytef *)0x0;\n    iVar4 = 0;\n    local_fc = (Bytef *)0x0;\n    local_104 = (ptimer *)0x0;\n    pFVar17 = (FILE *)0xffffffff;\nLAB_00051080:\n    dVar23 = ptimer_read(local_104);\n    *(double *)flags = dVar23;\n  }\n  if (local_104 != (ptimer *)0x0) {\n    ptimer_destroy(local_104);\n  }\nLAB_000510b8:\n  if (local_100 != (Bytef *)0x0) {\n    pFVar20 = (FILE *)(*(code *)PTR_inflateEnd_000b7e58)(&gzstream);\n    if ((-1 < (int)pFVar17) && (pFVar17 = pFVar20, pFVar20 != (FILE *)0x0)) {\n      puVar6 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)(local_100);\n      *puVar6 = 0x16;\n      pFVar17 = (FILE *)0xffffffff;\n    }\n    (*(code *)PTR_free_000b7d34)(local_100);\n    if (((iVar4 != 0) || ((Bytef *)gzstream.total_in != local_fc)) &&\n       (dVar24 = (double)CONCAT44(iVar4,SUB84(dVar24,0)), PTR_opt_000b746c[0x16b] != '\0')) {\n      iVar18 = iVar4;\n      pBVar9 = local_fc;\n      debug_logprintf(PTR_DAT_000b758c + -0x180c);\n      dVar24 = (double)CONCAT44(iVar18,pBVar9);\n    }\n  }\n  if (qtywritten != (wgint *)0x0) {\n    local_fc = *(Bytef **)((int)qtywritten + 4) + (int)local_fc;\n    *(uint *)qtywritten =\n         (uint)(local_fc < *(Bytef **)((int)qtywritten + 4)) + *(int *)qtywritten + iVar4;\n    *(Bytef **)((int)qtywritten + 4) = local_fc;\n  }\n  if (elapsed != (double *)0x0) {\n    uVar3 = *(uint *)((int)elapsed + 4) + sum_written._4_4_;\n    *(uint *)elapsed =\n         (uint)(uVar3 < *(uint *)((int)elapsed + 4)) + *(int *)elapsed + sum_written._0_4_;\n    *(uint *)((int)elapsed + 4) = uVar3;\n  }\n  (*(code *)PTR_free_000b7d34)(buf);\n  if (iVar2 != *(int *)PTR___stack_chk_guard_000b7c68) {\n    puVar21 = PTR___stack_chk_fail_000b7bfc;\n    (*(code *)PTR___stack_chk_fail_000b7bfc)();\n    puVar22 = puVar21 + 0x6da90;\n    if (*(char *)(*(int *)(puVar21 + 0x65acc) + 0x223) == '\0') {\n      dVar23 = *(double *)(*(int *)(puVar21 + 0x65bec) + -0x6f98);\n    }\n    else {\n      dVar23 = *(double *)(*(int *)(puVar21 + 0x65bec) + -0x15d8);\n    }\n    if (dVar24 == 0.0) {\n      dVar24 = ptimer_resolution();\n      dVar24 = dVar24 * *(double *)(*(int *)(puVar22 + -0x7ea4) + -0x2580);\n    }\n    wVar32 = convert_to_bits(CONCAT44(puVar22,in_stack_fffffeac));\n    dVar26 = (double)(**(code **)(puVar22 + -0x7b3c))((int)((ulonglong)wVar32 >> 0x20),(int)wVar32);\n    dVar26 = dVar26 / dVar24;\n    if (dVar26 < dVar23) {\n      *puVar7 = 0;\n    }\n    else if (dVar26 < dVar23 * dVar23) {\n      *puVar7 = 1;\n      puVar7 = (undefined4 *)&DAT_00000001;\n    }\n    else if (dVar26 < dVar23 * dVar23 * dVar23) {\n      *puVar7 = 2;\n      puVar7 = (undefined4 *)0x2;\n    }\n    else {\n      *puVar7 = 3;\n      puVar7 = (undefined4 *)0x3;\n    }\n    return (int)puVar7;\n  }\n  return (int)pFVar17;\n}" primitive_type (function_declarator "fd_read_body(char *downloaded_filename,int fd,FILE *out,wgint toread,wgint startpos,\n                wgint *qtyread,wgint *qtywritten,double *elapsed,int flags,FILE *out2)" identifier (parameter_list "(char *downloaded_filename,int fd,FILE *out,wgint toread,wgint startpos,\n                wgint *qtyread,wgint *qtywritten,double *elapsed,int flags,FILE *out2)" ( (parameter_declaration "char *downloaded_filename" primitive_type (pointer_declarator "*downloaded_filename" * identifier)) , (parameter_declaration "int fd" primitive_type identifier) , (parameter_declaration "FILE *out" type_identifier (pointer_declarator "*out" * identifier)) , (parameter_declaration "wgint toread" type_identifier identifier) , (parameter_declaration "wgint startpos" type_identifier identifier) , (parameter_declaration "wgint *qtyread" type_identifier (pointer_declarator "*qtyread" * identifier)) , (parameter_declaration "wgint *qtywritten" type_identifier (pointer_declarator "*qtywritten" * identifier)) , (parameter_declaration "double *elapsed" primitive_type (pointer_declarator "*elapsed" * identifier)) , (parameter_declaration "int flags" primitive_type identifier) , (parameter_declaration "FILE *out2" type_identifier (pointer_declarator "*out2" * identifier)) ))) (compound_statement "{\n  bool bVar1;\n  undefined3 extraout_var;\n  int iVar2;\n  Bytef *buf;\n  uint uVar3;\n  int iVar4;\n  void *progress;\n  _Bool _Var12;\n  undefined4 uVar5;\n  undefined4 *puVar6;\n  undefined4 *puVar7;\n  char *pcVar8;\n  Bytef *pBVar9;\n  int iVar10;\n  int *piVar11;\n  Bytef *pBVar13;\n  int iVar14;\n  FILE *pFVar15;\n  undefined4 uVar16;\n  FILE *pFVar17;\n  int iVar18;\n  code *pcVar19;\n  FILE *pFVar20;\n  undefined *puVar21;\n  undefined *puVar22;\n  double dVar23;\n  double dVar24;\n  double dVar25;\n  double dVar26;\n  double dVar27;\n  double in_f12_13;\n  double dVar28;\n  double dVar29;\n  double dVar30;\n  double dVar31;\n  wgint wVar32;\n  FILE *in_stack_00000030;\n  undefined4 in_stack_fffffeac;\n  double in_stack_fffffee0;\n  wgint in_stack_fffffee8;\n  ptimer *local_104;\n  Bytef *local_100;\n  Bytef *local_fc;\n  Bytef *local_f0;\n  int local_e4;\n  Bytef *local_e0;\n  char *endl;\n  wgint skip;\n  wgint sum_written;\n  z_stream gzstream;\n  \n  iVar2 = *(int *)PTR___stack_chk_guard_000b7c68;\n  pFVar17 = out;\n  buf = (Bytef *)(*(code *)PTR_xmalloc_000b7480)(0x2000);\n  uVar3 = (uint)out2 & 4;\n  skip._4_4_ = 0;\n  skip._0_4_ = 0;\n  sum_written._4_4_ = 0;\n  sum_written._0_4_ = 0;\n  if (((uint)out2 & 8) == 0) {\n    local_100 = (Bytef *)0x0;\nLAB_00050b74:\n    dVar23 = (double)CONCAT44(pFVar17,qtyread);\n    skip = CONCAT44(skip._0_4_,skip._4_4_);\n    if (((uint)out2 & 2) != 0) {\n      skip = startpos;\n    }\n    if (*(int *)(PTR_opt_000b746c + 0x10c) == 0) {\n      progress = (void *)0x0;\n      if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n        local_e4 = 0;\n        goto LAB_00051950;\n      }\n      local_e4 = 0;\nLAB_00051978:\n      if (flags != 0) goto LAB_00050c48;\n      local_104 = (ptimer *)flags;\n      local_e0 = (Bytef *)0x2000;\n    }\n    else {\n      if (skip != 0) {\n        startpos = 0;\n      }\n      if (*(int *)(PTR_opt_000b746c + 0x30) != 0) {\n        iVar4 = (*(code *)PTR_strlen_000b7c94)();\n        downloaded_filename = downloaded_filename + iVar4 + 1;\n      }\n      in_stack_fffffee0 = (double)(toread + startpos);\n      progress = progress_create(downloaded_filename,(wgint)in_stack_fffffee0,in_stack_fffffee8);\n      _Var12 = progress_interactive_p(progress);\n      local_e4 = CONCAT31(extraout_var,_Var12);\n      dVar23 = (double)startpos;\n      if (*(int *)(PTR_opt_000b746c + 0x158) == 0 && *(int *)(PTR_opt_000b746c + 0x15c) == 0) {\n        if (progress == (void *)0x0) goto LAB_00051978;\n      }\n      else {\nLAB_00051950:\n        puVar21 = PTR_DAT_000b7720;\n        *(undefined4 *)(PTR_DAT_000b7720 + -0x2fe8) = 0;\n        *(undefined4 *)(puVar21 + -0x2fe4) = 0;\n        *(undefined4 *)(puVar21 + -0x2fe0) = 0;\n        *(undefined4 *)(puVar21 + -0x2fdc) = 0;\n        *(undefined4 *)(puVar21 + -0x2fd8) = 0;\n        *(undefined4 *)(puVar21 + -0x2fd4) = 0;\n      }\nLAB_00050c48:\n      local_104 = ptimer_new();\n      iVar4 = *(int *)(PTR_opt_000b746c + 0x158);\n      local_e0 = *(Bytef **)(PTR_opt_000b746c + 0x15c);\n      if (iVar4 == 0 && local_e0 == (Bytef *)0x0) {\n        local_e0 = (Bytef *)0x2000;\n      }\n      else if ((0 < iVar4) || ((iVar4 == 0 && ((Bytef *)0x1fff < local_e0)))) {\n        local_e0 = (Bytef *)0x2000;\n      }\n    }\n    puVar21 = PTR_DAT_000b758c;\n    iVar18 = 0;\n    local_f0 = (Bytef *)0x0;\n    iVar4 = 0;\n    local_fc = (Bytef *)0x0;\n    dVar27 = 0.0;\n    pFVar20 = (FILE *)0x0;\n    dVar29 = *(double *)(PTR_DAT_000b758c + -0x2340);\n    dVar30 = *(double *)(PTR_DAT_000b758c + -0x2580);\n    dVar31 = *(double *)(PTR_DAT_000b758c + -0x15d0);\n    dVar26 = *(double *)(PTR_DAT_000b758c + -0x15d8);\n    while( true ) {\n      uVar5 = SUB84(dVar23,0);\n      iVar14 = (int)local_e0 >> 0x1f;\n      pBVar9 = local_e0;\n      if (((uint)out2 & 1) == 0) break;\n      if (toread._0_4_ <= iVar4) {\n        if (toread._0_4_ != iVar4) goto LAB_000518d4;\n        if (local_fc < toread._4_4_) goto LAB_000517b0;\n        bVar1 = (int)pFVar20 < 0;\n        dVar24 = dVar23;\n        goto LAB_000518d8;\n      }\nLAB_000517b0:\n      dVar28 = *(double *)(PTR_opt_000b746c + 0x120);\n      if (uVar3 != 0) goto LAB_00051820;\n      pBVar13 = toread._4_4_ + -(int)local_fc;\n      iVar10 = (toread._0_4_ - iVar4) - (uint)(toread._4_4_ < pBVar13);\n      dVar23 = (double)CONCAT44(iVar10,uVar5);\n      if ((iVar14 < iVar10) ||\n         ((dVar24 = (double)CONCAT44(iVar10,uVar5), iVar10 == iVar14 &&\n          (dVar24 = (double)CONCAT44(iVar10,uVar5), local_e0 < pBVar13)))) goto LAB_00051864;\nLAB_00051868:\n      pFVar15 = SUB84(dVar24,0);\n      if (local_e4 == 0) {\n        pFVar20 = (FILE *)(*(code *)PTR_fd_read_000b7770)(fd,buf);\n        in_stack_fffffee0 = dVar28;\nLAB_000516fc:\n        bVar1 = (int)pFVar20 < 0;\n        dVar24 = (double)CONCAT44(pBVar13,pFVar15);\n        if ((int)pFVar20 < 1) goto LAB_000518d8;\n        if (progress == (void *)0x0) {\n          if (*(int *)(PTR_opt_000b746c + 0x158) == 0 && *(int *)(PTR_opt_000b746c + 0x15c) == 0)\n          goto LAB_00051720;\n          ptimer_measure(local_104);\n        }\n        else {\n          ptimer_measure(local_104);\n        }\nLAB_000515b0:\n        dVar27 = ptimer_read(local_104);\nLAB_000515c4:\n        pBVar9 = local_fc + (int)pFVar20;\n        iVar4 = (uint)(pBVar9 < local_fc) + iVar4 + ((int)pFVar20 >> 0x1f);\n        pBVar13 = buf;\n        pFVar15 = pFVar20;\n        local_fc = pBVar9;\n        if (local_100 == (Bytef *)0x0) {\n          in_stack_fffffee0 = (double)CONCAT44(&skip,&sum_written);\n          pFVar17 = (FILE *)write_data(out,in_stack_00000030,(char *)buf,(int)pFVar20,&skip,\n                                       &sum_written);\n          dVar24 = (double)CONCAT44(pBVar13,pFVar15);\n          if ((int)pFVar17 < 0) goto LAB_00051040;\n        }\n        else {\n          in_stack_fffffee0 = 0.0;\n          pFVar17 = (FILE *)write_data((FILE *)0x0,in_stack_00000030,(char *)buf,(int)pFVar20,\n                                       (wgint *)0x0,(wgint *)0x0);\n          dVar24 = (double)CONCAT44(pBVar13,pFVar15);\n          if ((int)pFVar17 < 0) goto LAB_00051040;\n          pcVar8 = PTR_DAT_000b758c + -0x1898;\n          pcVar19 = (code *)(PTR_LAB_000b78e4 + 0x3a4);\n          gzstream.next_in = buf;\n          gzstream.avail_in = (uInt)pFVar20;\n          do {\n            gzstream.avail_out = 0x8000;\n            gzstream.next_out = local_100;\n            iVar14 = (*(code *)PTR_inflate_000b7d40)(&gzstream,0);\n            if (iVar14 == -3) {\nLAB_000511f4:\n              puVar7 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n              dVar24 = (double)CONCAT44(pBVar13,pFVar15);\n              *puVar7 = 0x16;\n              pFVar17 = (FILE *)0xffffffff;\n              goto LAB_00051040;\n            }\n            if (iVar14 < -2) {\n              if (iVar14 == -4) {\n                puVar7 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n                dVar24 = (double)CONCAT44(pBVar13,pFVar15);\n                *puVar7 = 0xc;\n                pFVar17 = (FILE *)0xffffffff;\n                goto LAB_00051040;\n              }\n            }\n            else if (iVar14 == 1) {\n              if (((((uint)out2 & 1) != 0) && (toread != CONCAT44(iVar4,pBVar9))) &&\n                 (PTR_opt_000b746c[0x16b] != '\0')) {\n                debug_logprintf(pcVar8);\n              }\n            }\n            else if (iVar14 == 2) goto LAB_000511f4;\n            in_stack_fffffee0 = (double)CONCAT44(&skip,&sum_written);\n            pFVar15 = (FILE *)(0x8000 - gzstream.avail_out);\n            pBVar13 = local_100;\n            pFVar17 = (FILE *)(*pcVar19)(out,0);\n            dVar24 = (double)CONCAT44(pBVar13,pFVar15);\n            if ((int)pFVar17 < 0) goto LAB_00051040;\n          } while (gzstream.avail_out == 0);\n        }\n        if (uVar3 != 0) {\n          pBVar9 = local_f0 + -(int)pFVar20;\n          iVar18 = (iVar18 - ((int)pFVar20 >> 0x1f)) - (uint)(local_f0 < pBVar9);\n          local_f0 = pBVar9;\n          if (iVar18 == 0 && pBVar9 == (Bytef *)0x0) {\n            pcVar8 = fd_read_line(fd);\n            dVar23 = (double)CONCAT44(pBVar13,pFVar15);\n            if (pcVar8 == (char *)0x0) {\n              pFVar20 = (FILE *)0xffffffff;\n              goto LAB_000518d4;\n            }\n            if (in_stack_00000030 != (FILE *)0x0) {\n              pBVar13 = (Bytef *)(*(code *)PTR_strlen_000b7c94)(pcVar8);\n              pFVar15 = in_stack_00000030;\n              (*(code *)PTR_fwrite_000b7c24)(pcVar8,1);\n            }\n            (*(code *)PTR_free_000b7d34)(pcVar8);\n          }\n        }\nLAB_00051748:\n        dVar23 = (double)CONCAT44(pBVar13,pFVar15);\n        if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n          dVar24 = ptimer_read(local_104);\n          puVar22 = PTR_DAT_000b7720;\n          dVar24 = dVar24 - *(double *)(PTR_DAT_000b7720 + -0x2fe0);\n          pFVar17 = (FILE *)(pFVar20->_shortbuf + *(int *)(PTR_DAT_000b7720 + -0x2fe4) + -0x47);\n          iVar14 = (uint)(pFVar17 < pFVar20) +\n                   ((int)pFVar20 >> 0x1f) + *(int *)(PTR_DAT_000b7720 + -0x2fe8);\n          *(int *)(PTR_DAT_000b7720 + -0x2fe8) = iVar14;\n          *(FILE **)(puVar22 + -0x2fe4) = pFVar17;\n          dVar28 = (double)(*(code *)PTR___floatdidf_000b78f4)(iVar14,pFVar17);\n          dVar25 = (double)(*(code *)PTR___floatdidf_000b78f4)\n                                     (*(undefined4 *)(PTR_opt_000b746c + 0x158),\n                                      *(undefined4 *)(PTR_opt_000b746c + 0x15c));\n          dVar23 = (double)CONCAT44(pBVar13,pFVar15);\n          if (dVar24 < dVar28 / dVar25) {\n            dVar24 = (dVar28 / dVar25 - dVar24) + *(double *)(PTR_DAT_000b7720 + -0x2fd8);\n            if (dVar24 < dVar29) {\n              if (PTR_opt_000b746c[0x16b] != '\0') {\n                pcVar8 = number_to_static_string((wgint)in_stack_fffffee0);\n                in_stack_fffffee0 = (double)(ZEXT48(pcVar8) << 0x20);\n                dVar23 = dVar24 * *(double *)(puVar21 + -0x15d8);\n                debug_logprintf(PTR_DAT_000b758c + -0x1864);\n              }\n              goto LAB_0005175c;\n            }\n            in_f12_13 = dVar24;\n            if (PTR_opt_000b746c[0x16b] != '\0') {\n              pcVar8 = number_to_static_string((wgint)in_stack_fffffee0);\n              in_stack_fffffee0 = (double)(ZEXT48(pcVar8) << 0x20);\n              dVar23 = dVar24 * dVar26;\n              debug_logprintf(PTR_DAT_000b758c + -0x183c);\n              in_f12_13 = dVar24;\n            }\n            dVar28 = ptimer_read(local_104);\n            dVar24 = in_f12_13;\n            xsleep(in_f12_13);\n            dVar25 = ptimer_measure(local_104);\n            dVar24 = dVar24 - (dVar25 - dVar28);\n            if (dVar30 < dVar24) {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar21 + -0x2580);\n            }\n            else if (dVar31 <= dVar24) {\n              *(double *)(PTR_DAT_000b7720 + -0x2fd8) = dVar24;\n            }\n            else {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar21 + -0x15d0);\n            }\n          }\n          puVar22 = PTR_DAT_000b7720;\n          *(undefined4 *)(PTR_DAT_000b7720 + -0x2fe4) = 0;\n          *(undefined4 *)(puVar22 + -0x2fe8) = 0;\n          dVar24 = ptimer_read(local_104);\n          *(double *)(puVar22 + -0x2fe0) = dVar24;\n        }\n      }\n      else {\n        if (*(double *)(PTR_opt_000b746c + 0x120) == 0.0) {\n          dVar28 = *(double *)(PTR_DAT_000b758c + -0x15e0);\n        }\n        else {\n          dVar23 = ptimer_read(local_104);\n          pFVar15 = SUB84(dVar24,0);\n          if (*(double *)(PTR_opt_000b746c + 0x120) <\n              (dVar23 - dVar27) + *(double *)(PTR_DAT_000b758c + -0x15e0)) {\n            dVar28 = *(double *)(PTR_opt_000b746c + 0x120) - (dVar23 - dVar27);\n            if (dVar28 < 0.0) {\n              puVar7 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n              *puVar7 = 0x91;\n              pFVar17 = (FILE *)0xffffffff;\n              goto LAB_00051040;\n            }\n          }\n          else {\n            dVar28 = *(double *)(PTR_DAT_000b758c + -0x15e0);\n          }\n        }\n        pFVar20 = (FILE *)(*(code *)PTR_fd_read_000b7770)(fd,buf);\n        in_stack_fffffee0 = dVar28;\n        if (-1 < (int)pFVar20) goto LAB_000516fc;\n        piVar11 = (int *)(*(code *)PTR___errno_location_000b7eb8)();\n        dVar23 = (double)CONCAT44(pBVar13,pFVar15);\n        in_stack_fffffee0 = dVar28;\n        if (*piVar11 != 0x91) goto LAB_000518d4;\n        if (progress != (void *)0x0) {\n          ptimer_measure(local_104);\n          iVar2 = FUN_00051744();\n          return iVar2;\n        }\n        if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n          ptimer_measure(local_104);\n          iVar2 = FUN_00051744();\n          return iVar2;\n        }\n        pFVar20 = (FILE *)0x0;\nLAB_00051720:\n        dVar23 = (double)CONCAT44(pBVar13,pFVar15);\n        if (flags != 0) {\n          ptimer_measure(local_104);\n          if (0 < (int)pFVar20) goto LAB_000515b0;\n          goto LAB_00051748;\n        }\n        if (0 < (int)pFVar20) goto LAB_000515c4;\n      }\nLAB_0005175c:\n      if (progress != (void *)0x0) {\n        in_stack_fffffee0 = ptimer_read(local_104);\n        iVar14 = (int)pFVar20 >> 0x1f;\n        pFVar17 = pFVar20;\n        progress_update(progress,(wgint)in_stack_fffffee0,in_f12_13);\n        dVar23 = (double)CONCAT44(iVar14,pFVar17);\n      }\n    }\n    dVar28 = *(double *)(PTR_opt_000b746c + 0x120);\n    if (uVar3 == 0) {\nLAB_00051864:\n      pBVar13 = pBVar9;\n      dVar24 = dVar23;\n      goto LAB_00051868;\n    }\nLAB_00051820:\n    if (iVar18 != 0 || local_f0 != (Bytef *)0x0) {\nLAB_00051830:\n      pBVar9 = local_f0;\n      if ((iVar14 <= iVar18) &&\n         ((pBVar13 = local_e0, dVar24 = dVar23, iVar14 != iVar18 ||\n          (pBVar9 = local_f0, local_e0 <= local_f0)))) goto LAB_00051868;\n      goto LAB_00051864;\n    }\n    pcVar8 = fd_read_line(fd);\n    pFVar17 = SUB84(dVar23,0);\n    if (pcVar8 == (char *)0x0) {\nLAB_00050e90:\n      pFVar20 = (FILE *)0xffffffff;\nLAB_000518d4:\n      bVar1 = (int)pFVar20 < 0;\n      dVar24 = dVar23;\nLAB_000518d8:\n      pFVar17 = (FILE *)0xffffffff;\n      if (!bVar1) {\n        pFVar17 = pFVar20;\n      }\n    }\n    else {\n      if (in_stack_00000030 != (FILE *)0x0) {\n        uVar5 = (*(code *)PTR_strlen_000b7c94)(pcVar8);\n        pFVar17 = in_stack_00000030;\n        (*(code *)PTR_fwrite_000b7c24)(pcVar8,1,uVar5);\n      }\n      uVar5 = 0x10;\n      local_f0 = (Bytef *)(*(code *)PTR_strtol_000b7d3c)(pcVar8,&endl);\n      iVar18 = (int)local_f0 >> 0x1f;\n      (*(code *)PTR_free_000b7d34)(pcVar8);\n      dVar23 = (double)CONCAT44(uVar5,pFVar17);\n      if (iVar18 < 0) goto LAB_00050e90;\n      if (local_f0 != (Bytef *)0x0) goto LAB_00051830;\n      pcVar8 = fd_read_line(fd);\n      dVar24 = (double)CONCAT44(uVar5,pFVar17);\n      if (pcVar8 == (char *)0x0) {\n        pFVar17 = (FILE *)0xffffffff;\n      }\n      else {\n        if (in_stack_00000030 != (FILE *)0x0) {\n          uVar5 = (*(code *)PTR_strlen_000b7c94)(pcVar8);\n          (*(code *)PTR_fwrite_000b7c24)(pcVar8,1);\n          pFVar17 = in_stack_00000030;\n        }\n        (*(code *)PTR_free_000b7d34)(pcVar8);\n        dVar24 = (double)CONCAT44(uVar5,pFVar17);\n        pFVar17 = (FILE *)0x0;\n      }\n    }\nLAB_00051040:\n    puVar7 = (undefined4 *)((ulonglong)in_stack_fffffee0 >> 0x20);\n    if (progress != (void *)0x0) {\n      dVar24 = ptimer_read(local_104);\n      uVar16 = SUB84(dVar24,0);\n      uVar5 = (undefined4)((ulonglong)dVar24 >> 0x20);\n      progress_finish(progress,in_f12_13);\n      dVar24 = (double)CONCAT44(uVar5,uVar16);\n    }\n    if (flags != 0) goto LAB_00051080;\n  }\n  else {\n    local_100 = (Bytef *)(*(code *)PTR_xmalloc_000b7480)(0x8000);\n    puVar7 = (undefined4 *)((ulonglong)in_stack_fffffee0 >> 0x20);\n    if (local_100 == (Bytef *)0x0) {\n      puVar6 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n      *puVar6 = 0xc;\n    }\n    else {\n      gzstream.zalloc = (alloc_func)(PTR_LAB_000b78e4 + 0x368);\n      gzstream.zfree = (free_func)(PTR_LAB_000b78e4 + 0x330);\n      gzstream.opaque = (voidpf)0x0;\n      gzstream.next_in = (Bytef *)0x0;\n      gzstream.avail_in = 0;\n      qtyread = (wgint *)0x38;\n      pFVar17 = (FILE *)(PTR_DAT_000b758c + -0x18a0);\n      iVar4 = (*(code *)PTR_inflateInit2__000b7d68)(&gzstream,0x2f);\n      puVar7 = (undefined4 *)((ulonglong)in_stack_fffffee0 >> 0x20);\n      if (iVar4 == 0) goto LAB_00050b74;\n      (*(code *)PTR_free_000b7d34)(local_100);\n      uVar5 = 0x16;\n      if (iVar4 == -4) {\n        uVar5 = 0xc;\n      }\n      puVar6 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n      *puVar6 = uVar5;\n    }\n    dVar24 = (double)CONCAT44(pFVar17,qtyread);\n    local_100 = (Bytef *)flags;\n    if (flags == 0) {\n      iVar4 = 0;\n      local_fc = (Bytef *)0x0;\n      pFVar17 = (FILE *)0xffffffff;\n      goto LAB_000510b8;\n    }\n    local_100 = (Bytef *)0x0;\n    iVar4 = 0;\n    local_fc = (Bytef *)0x0;\n    local_104 = (ptimer *)0x0;\n    pFVar17 = (FILE *)0xffffffff;\nLAB_00051080:\n    dVar23 = ptimer_read(local_104);\n    *(double *)flags = dVar23;\n  }\n  if (local_104 != (ptimer *)0x0) {\n    ptimer_destroy(local_104);\n  }\nLAB_000510b8:\n  if (local_100 != (Bytef *)0x0) {\n    pFVar20 = (FILE *)(*(code *)PTR_inflateEnd_000b7e58)(&gzstream);\n    if ((-1 < (int)pFVar17) && (pFVar17 = pFVar20, pFVar20 != (FILE *)0x0)) {\n      puVar6 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)(local_100);\n      *puVar6 = 0x16;\n      pFVar17 = (FILE *)0xffffffff;\n    }\n    (*(code *)PTR_free_000b7d34)(local_100);\n    if (((iVar4 != 0) || ((Bytef *)gzstream.total_in != local_fc)) &&\n       (dVar24 = (double)CONCAT44(iVar4,SUB84(dVar24,0)), PTR_opt_000b746c[0x16b] != '\0')) {\n      iVar18 = iVar4;\n      pBVar9 = local_fc;\n      debug_logprintf(PTR_DAT_000b758c + -0x180c);\n      dVar24 = (double)CONCAT44(iVar18,pBVar9);\n    }\n  }\n  if (qtywritten != (wgint *)0x0) {\n    local_fc = *(Bytef **)((int)qtywritten + 4) + (int)local_fc;\n    *(uint *)qtywritten =\n         (uint)(local_fc < *(Bytef **)((int)qtywritten + 4)) + *(int *)qtywritten + iVar4;\n    *(Bytef **)((int)qtywritten + 4) = local_fc;\n  }\n  if (elapsed != (double *)0x0) {\n    uVar3 = *(uint *)((int)elapsed + 4) + sum_written._4_4_;\n    *(uint *)elapsed =\n         (uint)(uVar3 < *(uint *)((int)elapsed + 4)) + *(int *)elapsed + sum_written._0_4_;\n    *(uint *)((int)elapsed + 4) = uVar3;\n  }\n  (*(code *)PTR_free_000b7d34)(buf);\n  if (iVar2 != *(int *)PTR___stack_chk_guard_000b7c68) {\n    puVar21 = PTR___stack_chk_fail_000b7bfc;\n    (*(code *)PTR___stack_chk_fail_000b7bfc)();\n    puVar22 = puVar21 + 0x6da90;\n    if (*(char *)(*(int *)(puVar21 + 0x65acc) + 0x223) == '\0') {\n      dVar23 = *(double *)(*(int *)(puVar21 + 0x65bec) + -0x6f98);\n    }\n    else {\n      dVar23 = *(double *)(*(int *)(puVar21 + 0x65bec) + -0x15d8);\n    }\n    if (dVar24 == 0.0) {\n      dVar24 = ptimer_resolution();\n      dVar24 = dVar24 * *(double *)(*(int *)(puVar22 + -0x7ea4) + -0x2580);\n    }\n    wVar32 = convert_to_bits(CONCAT44(puVar22,in_stack_fffffeac));\n    dVar26 = (double)(**(code **)(puVar22 + -0x7b3c))((int)((ulonglong)wVar32 >> 0x20),(int)wVar32);\n    dVar26 = dVar26 / dVar24;\n    if (dVar26 < dVar23) {\n      *puVar7 = 0;\n    }\n    else if (dVar26 < dVar23 * dVar23) {\n      *puVar7 = 1;\n      puVar7 = (undefined4 *)&DAT_00000001;\n    }\n    else if (dVar26 < dVar23 * dVar23 * dVar23) {\n      *puVar7 = 2;\n      puVar7 = (undefined4 *)0x2;\n    }\n    else {\n      *puVar7 = 3;\n      puVar7 = (undefined4 *)0x3;\n    }\n    return (int)puVar7;\n  }\n  return (int)pFVar17;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "undefined3 extraout_var;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "Bytef *buf;" type_identifier (pointer_declarator "*buf" * identifier) ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "void *progress;" primitive_type (pointer_declarator "*progress" * identifier) ;) (declaration "_Bool _Var12;" type_identifier identifier ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "undefined4 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "undefined4 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "char *pcVar8;" primitive_type (pointer_declarator "*pcVar8" * identifier) ;) (declaration "Bytef *pBVar9;" type_identifier (pointer_declarator "*pBVar9" * identifier) ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int *piVar11;" primitive_type (pointer_declarator "*piVar11" * identifier) ;) (declaration "Bytef *pBVar13;" type_identifier (pointer_declarator "*pBVar13" * identifier) ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "FILE *pFVar15;" type_identifier (pointer_declarator "*pFVar15" * identifier) ;) (declaration "undefined4 uVar16;" type_identifier identifier ;) (declaration "FILE *pFVar17;" type_identifier (pointer_declarator "*pFVar17" * identifier) ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "code *pcVar19;" type_identifier (pointer_declarator "*pcVar19" * identifier) ;) (declaration "FILE *pFVar20;" type_identifier (pointer_declarator "*pFVar20" * identifier) ;) (declaration "undefined *puVar21;" type_identifier (pointer_declarator "*puVar21" * identifier) ;) (declaration "undefined *puVar22;" type_identifier (pointer_declarator "*puVar22" * identifier) ;) (declaration "double dVar23;" primitive_type identifier ;) (declaration "double dVar24;" primitive_type identifier ;) (declaration "double dVar25;" primitive_type identifier ;) (declaration "double dVar26;" primitive_type identifier ;) (declaration "double dVar27;" primitive_type identifier ;) (declaration "double in_f12_13;" primitive_type identifier ;) (declaration "double dVar28;" primitive_type identifier ;) (declaration "double dVar29;" primitive_type identifier ;) (declaration "double dVar30;" primitive_type identifier ;) (declaration "double dVar31;" primitive_type identifier ;) (declaration "wgint wVar32;" type_identifier identifier ;) (declaration "FILE *in_stack_00000030;" type_identifier (pointer_declarator "*in_stack_00000030" * identifier) ;) (declaration "undefined4 in_stack_fffffeac;" type_identifier identifier ;) (declaration "double in_stack_fffffee0;" primitive_type identifier ;) (declaration "wgint in_stack_fffffee8;" type_identifier identifier ;) (declaration "ptimer *local_104;" type_identifier (pointer_declarator "*local_104" * identifier) ;) (declaration "Bytef *local_100;" type_identifier (pointer_declarator "*local_100" * identifier) ;) (declaration "Bytef *local_fc;" type_identifier (pointer_declarator "*local_fc" * identifier) ;) (declaration "Bytef *local_f0;" type_identifier (pointer_declarator "*local_f0" * identifier) ;) (declaration "int local_e4;" primitive_type identifier ;) (declaration "Bytef *local_e0;" type_identifier (pointer_declarator "*local_e0" * identifier) ;) (declaration "char *endl;" primitive_type (pointer_declarator "*endl" * identifier) ;) (declaration "wgint skip;" type_identifier identifier ;) (declaration "wgint sum_written;" type_identifier identifier ;) (declaration "z_stream gzstream;" type_identifier identifier ;) (expression_statement "iVar2 = *(int *)PTR___stack_chk_guard_000b7c68;" (assignment_expression "iVar2 = *(int *)PTR___stack_chk_guard_000b7c68" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_000b7c68" * (cast_expression "(int *)PTR___stack_chk_guard_000b7c68" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pFVar17 = out;" (assignment_expression "pFVar17 = out" identifier = identifier) ;) (expression_statement "buf = (Bytef *)(*(code *)PTR_xmalloc_000b7480)(0x2000);" (assignment_expression "buf = (Bytef *)(*(code *)PTR_xmalloc_000b7480)(0x2000)" identifier = (cast_expression "(Bytef *)(*(code *)PTR_xmalloc_000b7480)(0x2000)" ( (type_descriptor "Bytef *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_xmalloc_000b7480)(0x2000)" (parenthesized_expression "(*(code *)PTR_xmalloc_000b7480)" ( (pointer_expression "*(code *)PTR_xmalloc_000b7480" * (cast_expression "(code *)PTR_xmalloc_000b7480" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x2000)" ( number_literal ))))) ;) (expression_statement "uVar3 = (uint)out2 & 4;" (assignment_expression "uVar3 = (uint)out2 & 4" identifier = (binary_expression "(uint)out2 & 4" (cast_expression "(uint)out2" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "skip._4_4_ = 0;" (assignment_expression "skip._4_4_ = 0" (field_expression "skip._4_4_" identifier . field_identifier) = number_literal) ;) (expression_statement "skip._0_4_ = 0;" (assignment_expression "skip._0_4_ = 0" (field_expression "skip._0_4_" identifier . field_identifier) = number_literal) ;) (expression_statement "sum_written._4_4_ = 0;" (assignment_expression "sum_written._4_4_ = 0" (field_expression "sum_written._4_4_" identifier . field_identifier) = number_literal) ;) (expression_statement "sum_written._0_4_ = 0;" (assignment_expression "sum_written._0_4_ = 0" (field_expression "sum_written._0_4_" identifier . field_identifier) = number_literal) ;) (if_statement "if (((uint)out2 & 8) == 0) {\n    local_100 = (Bytef *)0x0;\nLAB_00050b74:\n    dVar23 = (double)CONCAT44(pFVar17,qtyread);\n    skip = CONCAT44(skip._0_4_,skip._4_4_);\n    if (((uint)out2 & 2) != 0) {\n      skip = startpos;\n    }\n    if (*(int *)(PTR_opt_000b746c + 0x10c) == 0) {\n      progress = (void *)0x0;\n      if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n        local_e4 = 0;\n        goto LAB_00051950;\n      }\n      local_e4 = 0;\nLAB_00051978:\n      if (flags != 0) goto LAB_00050c48;\n      local_104 = (ptimer *)flags;\n      local_e0 = (Bytef *)0x2000;\n    }\n    else {\n      if (skip != 0) {\n        startpos = 0;\n      }\n      if (*(int *)(PTR_opt_000b746c + 0x30) != 0) {\n        iVar4 = (*(code *)PTR_strlen_000b7c94)();\n        downloaded_filename = downloaded_filename + iVar4 + 1;\n      }\n      in_stack_fffffee0 = (double)(toread + startpos);\n      progress = progress_create(downloaded_filename,(wgint)in_stack_fffffee0,in_stack_fffffee8);\n      _Var12 = progress_interactive_p(progress);\n      local_e4 = CONCAT31(extraout_var,_Var12);\n      dVar23 = (double)startpos;\n      if (*(int *)(PTR_opt_000b746c + 0x158) == 0 && *(int *)(PTR_opt_000b746c + 0x15c) == 0) {\n        if (progress == (void *)0x0) goto LAB_00051978;\n      }\n      else {\nLAB_00051950:\n        puVar21 = PTR_DAT_000b7720;\n        *(undefined4 *)(PTR_DAT_000b7720 + -0x2fe8) = 0;\n        *(undefined4 *)(puVar21 + -0x2fe4) = 0;\n        *(undefined4 *)(puVar21 + -0x2fe0) = 0;\n        *(undefined4 *)(puVar21 + -0x2fdc) = 0;\n        *(undefined4 *)(puVar21 + -0x2fd8) = 0;\n        *(undefined4 *)(puVar21 + -0x2fd4) = 0;\n      }\nLAB_00050c48:\n      local_104 = ptimer_new();\n      iVar4 = *(int *)(PTR_opt_000b746c + 0x158);\n      local_e0 = *(Bytef **)(PTR_opt_000b746c + 0x15c);\n      if (iVar4 == 0 && local_e0 == (Bytef *)0x0) {\n        local_e0 = (Bytef *)0x2000;\n      }\n      else if ((0 < iVar4) || ((iVar4 == 0 && ((Bytef *)0x1fff < local_e0)))) {\n        local_e0 = (Bytef *)0x2000;\n      }\n    }\n    puVar21 = PTR_DAT_000b758c;\n    iVar18 = 0;\n    local_f0 = (Bytef *)0x0;\n    iVar4 = 0;\n    local_fc = (Bytef *)0x0;\n    dVar27 = 0.0;\n    pFVar20 = (FILE *)0x0;\n    dVar29 = *(double *)(PTR_DAT_000b758c + -0x2340);\n    dVar30 = *(double *)(PTR_DAT_000b758c + -0x2580);\n    dVar31 = *(double *)(PTR_DAT_000b758c + -0x15d0);\n    dVar26 = *(double *)(PTR_DAT_000b758c + -0x15d8);\n    while( true ) {\n      uVar5 = SUB84(dVar23,0);\n      iVar14 = (int)local_e0 >> 0x1f;\n      pBVar9 = local_e0;\n      if (((uint)out2 & 1) == 0) break;\n      if (toread._0_4_ <= iVar4) {\n        if (toread._0_4_ != iVar4) goto LAB_000518d4;\n        if (local_fc < toread._4_4_) goto LAB_000517b0;\n        bVar1 = (int)pFVar20 < 0;\n        dVar24 = dVar23;\n        goto LAB_000518d8;\n      }\nLAB_000517b0:\n      dVar28 = *(double *)(PTR_opt_000b746c + 0x120);\n      if (uVar3 != 0) goto LAB_00051820;\n      pBVar13 = toread._4_4_ + -(int)local_fc;\n      iVar10 = (toread._0_4_ - iVar4) - (uint)(toread._4_4_ < pBVar13);\n      dVar23 = (double)CONCAT44(iVar10,uVar5);\n      if ((iVar14 < iVar10) ||\n         ((dVar24 = (double)CONCAT44(iVar10,uVar5), iVar10 == iVar14 &&\n          (dVar24 = (double)CONCAT44(iVar10,uVar5), local_e0 < pBVar13)))) goto LAB_00051864;\nLAB_00051868:\n      pFVar15 = SUB84(dVar24,0);\n      if (local_e4 == 0) {\n        pFVar20 = (FILE *)(*(code *)PTR_fd_read_000b7770)(fd,buf);\n        in_stack_fffffee0 = dVar28;\nLAB_000516fc:\n        bVar1 = (int)pFVar20 < 0;\n        dVar24 = (double)CONCAT44(pBVar13,pFVar15);\n        if ((int)pFVar20 < 1) goto LAB_000518d8;\n        if (progress == (void *)0x0) {\n          if (*(int *)(PTR_opt_000b746c + 0x158) == 0 && *(int *)(PTR_opt_000b746c + 0x15c) == 0)\n          goto LAB_00051720;\n          ptimer_measure(local_104);\n        }\n        else {\n          ptimer_measure(local_104);\n        }\nLAB_000515b0:\n        dVar27 = ptimer_read(local_104);\nLAB_000515c4:\n        pBVar9 = local_fc + (int)pFVar20;\n        iVar4 = (uint)(pBVar9 < local_fc) + iVar4 + ((int)pFVar20 >> 0x1f);\n        pBVar13 = buf;\n        pFVar15 = pFVar20;\n        local_fc = pBVar9;\n        if (local_100 == (Bytef *)0x0) {\n          in_stack_fffffee0 = (double)CONCAT44(&skip,&sum_written);\n          pFVar17 = (FILE *)write_data(out,in_stack_00000030,(char *)buf,(int)pFVar20,&skip,\n                                       &sum_written);\n          dVar24 = (double)CONCAT44(pBVar13,pFVar15);\n          if ((int)pFVar17 < 0) goto LAB_00051040;\n        }\n        else {\n          in_stack_fffffee0 = 0.0;\n          pFVar17 = (FILE *)write_data((FILE *)0x0,in_stack_00000030,(char *)buf,(int)pFVar20,\n                                       (wgint *)0x0,(wgint *)0x0);\n          dVar24 = (double)CONCAT44(pBVar13,pFVar15);\n          if ((int)pFVar17 < 0) goto LAB_00051040;\n          pcVar8 = PTR_DAT_000b758c + -0x1898;\n          pcVar19 = (code *)(PTR_LAB_000b78e4 + 0x3a4);\n          gzstream.next_in = buf;\n          gzstream.avail_in = (uInt)pFVar20;\n          do {\n            gzstream.avail_out = 0x8000;\n            gzstream.next_out = local_100;\n            iVar14 = (*(code *)PTR_inflate_000b7d40)(&gzstream,0);\n            if (iVar14 == -3) {\nLAB_000511f4:\n              puVar7 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n              dVar24 = (double)CONCAT44(pBVar13,pFVar15);\n              *puVar7 = 0x16;\n              pFVar17 = (FILE *)0xffffffff;\n              goto LAB_00051040;\n            }\n            if (iVar14 < -2) {\n              if (iVar14 == -4) {\n                puVar7 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n                dVar24 = (double)CONCAT44(pBVar13,pFVar15);\n                *puVar7 = 0xc;\n                pFVar17 = (FILE *)0xffffffff;\n                goto LAB_00051040;\n              }\n            }\n            else if (iVar14 == 1) {\n              if (((((uint)out2 & 1) != 0) && (toread != CONCAT44(iVar4,pBVar9))) &&\n                 (PTR_opt_000b746c[0x16b] != '\0')) {\n                debug_logprintf(pcVar8);\n              }\n            }\n            else if (iVar14 == 2) goto LAB_000511f4;\n            in_stack_fffffee0 = (double)CONCAT44(&skip,&sum_written);\n            pFVar15 = (FILE *)(0x8000 - gzstream.avail_out);\n            pBVar13 = local_100;\n            pFVar17 = (FILE *)(*pcVar19)(out,0);\n            dVar24 = (double)CONCAT44(pBVar13,pFVar15);\n            if ((int)pFVar17 < 0) goto LAB_00051040;\n          } while (gzstream.avail_out == 0);\n        }\n        if (uVar3 != 0) {\n          pBVar9 = local_f0 + -(int)pFVar20;\n          iVar18 = (iVar18 - ((int)pFVar20 >> 0x1f)) - (uint)(local_f0 < pBVar9);\n          local_f0 = pBVar9;\n          if (iVar18 == 0 && pBVar9 == (Bytef *)0x0) {\n            pcVar8 = fd_read_line(fd);\n            dVar23 = (double)CONCAT44(pBVar13,pFVar15);\n            if (pcVar8 == (char *)0x0) {\n              pFVar20 = (FILE *)0xffffffff;\n              goto LAB_000518d4;\n            }\n            if (in_stack_00000030 != (FILE *)0x0) {\n              pBVar13 = (Bytef *)(*(code *)PTR_strlen_000b7c94)(pcVar8);\n              pFVar15 = in_stack_00000030;\n              (*(code *)PTR_fwrite_000b7c24)(pcVar8,1);\n            }\n            (*(code *)PTR_free_000b7d34)(pcVar8);\n          }\n        }\nLAB_00051748:\n        dVar23 = (double)CONCAT44(pBVar13,pFVar15);\n        if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n          dVar24 = ptimer_read(local_104);\n          puVar22 = PTR_DAT_000b7720;\n          dVar24 = dVar24 - *(double *)(PTR_DAT_000b7720 + -0x2fe0);\n          pFVar17 = (FILE *)(pFVar20->_shortbuf + *(int *)(PTR_DAT_000b7720 + -0x2fe4) + -0x47);\n          iVar14 = (uint)(pFVar17 < pFVar20) +\n                   ((int)pFVar20 >> 0x1f) + *(int *)(PTR_DAT_000b7720 + -0x2fe8);\n          *(int *)(PTR_DAT_000b7720 + -0x2fe8) = iVar14;\n          *(FILE **)(puVar22 + -0x2fe4) = pFVar17;\n          dVar28 = (double)(*(code *)PTR___floatdidf_000b78f4)(iVar14,pFVar17);\n          dVar25 = (double)(*(code *)PTR___floatdidf_000b78f4)\n                                     (*(undefined4 *)(PTR_opt_000b746c + 0x158),\n                                      *(undefined4 *)(PTR_opt_000b746c + 0x15c));\n          dVar23 = (double)CONCAT44(pBVar13,pFVar15);\n          if (dVar24 < dVar28 / dVar25) {\n            dVar24 = (dVar28 / dVar25 - dVar24) + *(double *)(PTR_DAT_000b7720 + -0x2fd8);\n            if (dVar24 < dVar29) {\n              if (PTR_opt_000b746c[0x16b] != '\0') {\n                pcVar8 = number_to_static_string((wgint)in_stack_fffffee0);\n                in_stack_fffffee0 = (double)(ZEXT48(pcVar8) << 0x20);\n                dVar23 = dVar24 * *(double *)(puVar21 + -0x15d8);\n                debug_logprintf(PTR_DAT_000b758c + -0x1864);\n              }\n              goto LAB_0005175c;\n            }\n            in_f12_13 = dVar24;\n            if (PTR_opt_000b746c[0x16b] != '\0') {\n              pcVar8 = number_to_static_string((wgint)in_stack_fffffee0);\n              in_stack_fffffee0 = (double)(ZEXT48(pcVar8) << 0x20);\n              dVar23 = dVar24 * dVar26;\n              debug_logprintf(PTR_DAT_000b758c + -0x183c);\n              in_f12_13 = dVar24;\n            }\n            dVar28 = ptimer_read(local_104);\n            dVar24 = in_f12_13;\n            xsleep(in_f12_13);\n            dVar25 = ptimer_measure(local_104);\n            dVar24 = dVar24 - (dVar25 - dVar28);\n            if (dVar30 < dVar24) {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar21 + -0x2580);\n            }\n            else if (dVar31 <= dVar24) {\n              *(double *)(PTR_DAT_000b7720 + -0x2fd8) = dVar24;\n            }\n            else {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar21 + -0x15d0);\n            }\n          }\n          puVar22 = PTR_DAT_000b7720;\n          *(undefined4 *)(PTR_DAT_000b7720 + -0x2fe4) = 0;\n          *(undefined4 *)(puVar22 + -0x2fe8) = 0;\n          dVar24 = ptimer_read(local_104);\n          *(double *)(puVar22 + -0x2fe0) = dVar24;\n        }\n      }\n      else {\n        if (*(double *)(PTR_opt_000b746c + 0x120) == 0.0) {\n          dVar28 = *(double *)(PTR_DAT_000b758c + -0x15e0);\n        }\n        else {\n          dVar23 = ptimer_read(local_104);\n          pFVar15 = SUB84(dVar24,0);\n          if (*(double *)(PTR_opt_000b746c + 0x120) <\n              (dVar23 - dVar27) + *(double *)(PTR_DAT_000b758c + -0x15e0)) {\n            dVar28 = *(double *)(PTR_opt_000b746c + 0x120) - (dVar23 - dVar27);\n            if (dVar28 < 0.0) {\n              puVar7 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n              *puVar7 = 0x91;\n              pFVar17 = (FILE *)0xffffffff;\n              goto LAB_00051040;\n            }\n          }\n          else {\n            dVar28 = *(double *)(PTR_DAT_000b758c + -0x15e0);\n          }\n        }\n        pFVar20 = (FILE *)(*(code *)PTR_fd_read_000b7770)(fd,buf);\n        in_stack_fffffee0 = dVar28;\n        if (-1 < (int)pFVar20) goto LAB_000516fc;\n        piVar11 = (int *)(*(code *)PTR___errno_location_000b7eb8)();\n        dVar23 = (double)CONCAT44(pBVar13,pFVar15);\n        in_stack_fffffee0 = dVar28;\n        if (*piVar11 != 0x91) goto LAB_000518d4;\n        if (progress != (void *)0x0) {\n          ptimer_measure(local_104);\n          iVar2 = FUN_00051744();\n          return iVar2;\n        }\n        if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n          ptimer_measure(local_104);\n          iVar2 = FUN_00051744();\n          return iVar2;\n        }\n        pFVar20 = (FILE *)0x0;\nLAB_00051720:\n        dVar23 = (double)CONCAT44(pBVar13,pFVar15);\n        if (flags != 0) {\n          ptimer_measure(local_104);\n          if (0 < (int)pFVar20) goto LAB_000515b0;\n          goto LAB_00051748;\n        }\n        if (0 < (int)pFVar20) goto LAB_000515c4;\n      }\nLAB_0005175c:\n      if (progress != (void *)0x0) {\n        in_stack_fffffee0 = ptimer_read(local_104);\n        iVar14 = (int)pFVar20 >> 0x1f;\n        pFVar17 = pFVar20;\n        progress_update(progress,(wgint)in_stack_fffffee0,in_f12_13);\n        dVar23 = (double)CONCAT44(iVar14,pFVar17);\n      }\n    }\n    dVar28 = *(double *)(PTR_opt_000b746c + 0x120);\n    if (uVar3 == 0) {\nLAB_00051864:\n      pBVar13 = pBVar9;\n      dVar24 = dVar23;\n      goto LAB_00051868;\n    }\nLAB_00051820:\n    if (iVar18 != 0 || local_f0 != (Bytef *)0x0) {\nLAB_00051830:\n      pBVar9 = local_f0;\n      if ((iVar14 <= iVar18) &&\n         ((pBVar13 = local_e0, dVar24 = dVar23, iVar14 != iVar18 ||\n          (pBVar9 = local_f0, local_e0 <= local_f0)))) goto LAB_00051868;\n      goto LAB_00051864;\n    }\n    pcVar8 = fd_read_line(fd);\n    pFVar17 = SUB84(dVar23,0);\n    if (pcVar8 == (char *)0x0) {\nLAB_00050e90:\n      pFVar20 = (FILE *)0xffffffff;\nLAB_000518d4:\n      bVar1 = (int)pFVar20 < 0;\n      dVar24 = dVar23;\nLAB_000518d8:\n      pFVar17 = (FILE *)0xffffffff;\n      if (!bVar1) {\n        pFVar17 = pFVar20;\n      }\n    }\n    else {\n      if (in_stack_00000030 != (FILE *)0x0) {\n        uVar5 = (*(code *)PTR_strlen_000b7c94)(pcVar8);\n        pFVar17 = in_stack_00000030;\n        (*(code *)PTR_fwrite_000b7c24)(pcVar8,1,uVar5);\n      }\n      uVar5 = 0x10;\n      local_f0 = (Bytef *)(*(code *)PTR_strtol_000b7d3c)(pcVar8,&endl);\n      iVar18 = (int)local_f0 >> 0x1f;\n      (*(code *)PTR_free_000b7d34)(pcVar8);\n      dVar23 = (double)CONCAT44(uVar5,pFVar17);\n      if (iVar18 < 0) goto LAB_00050e90;\n      if (local_f0 != (Bytef *)0x0) goto LAB_00051830;\n      pcVar8 = fd_read_line(fd);\n      dVar24 = (double)CONCAT44(uVar5,pFVar17);\n      if (pcVar8 == (char *)0x0) {\n        pFVar17 = (FILE *)0xffffffff;\n      }\n      else {\n        if (in_stack_00000030 != (FILE *)0x0) {\n          uVar5 = (*(code *)PTR_strlen_000b7c94)(pcVar8);\n          (*(code *)PTR_fwrite_000b7c24)(pcVar8,1);\n          pFVar17 = in_stack_00000030;\n        }\n        (*(code *)PTR_free_000b7d34)(pcVar8);\n        dVar24 = (double)CONCAT44(uVar5,pFVar17);\n        pFVar17 = (FILE *)0x0;\n      }\n    }\nLAB_00051040:\n    puVar7 = (undefined4 *)((ulonglong)in_stack_fffffee0 >> 0x20);\n    if (progress != (void *)0x0) {\n      dVar24 = ptimer_read(local_104);\n      uVar16 = SUB84(dVar24,0);\n      uVar5 = (undefined4)((ulonglong)dVar24 >> 0x20);\n      progress_finish(progress,in_f12_13);\n      dVar24 = (double)CONCAT44(uVar5,uVar16);\n    }\n    if (flags != 0) goto LAB_00051080;\n  }\n  else {\n    local_100 = (Bytef *)(*(code *)PTR_xmalloc_000b7480)(0x8000);\n    puVar7 = (undefined4 *)((ulonglong)in_stack_fffffee0 >> 0x20);\n    if (local_100 == (Bytef *)0x0) {\n      puVar6 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n      *puVar6 = 0xc;\n    }\n    else {\n      gzstream.zalloc = (alloc_func)(PTR_LAB_000b78e4 + 0x368);\n      gzstream.zfree = (free_func)(PTR_LAB_000b78e4 + 0x330);\n      gzstream.opaque = (voidpf)0x0;\n      gzstream.next_in = (Bytef *)0x0;\n      gzstream.avail_in = 0;\n      qtyread = (wgint *)0x38;\n      pFVar17 = (FILE *)(PTR_DAT_000b758c + -0x18a0);\n      iVar4 = (*(code *)PTR_inflateInit2__000b7d68)(&gzstream,0x2f);\n      puVar7 = (undefined4 *)((ulonglong)in_stack_fffffee0 >> 0x20);\n      if (iVar4 == 0) goto LAB_00050b74;\n      (*(code *)PTR_free_000b7d34)(local_100);\n      uVar5 = 0x16;\n      if (iVar4 == -4) {\n        uVar5 = 0xc;\n      }\n      puVar6 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n      *puVar6 = uVar5;\n    }\n    dVar24 = (double)CONCAT44(pFVar17,qtyread);\n    local_100 = (Bytef *)flags;\n    if (flags == 0) {\n      iVar4 = 0;\n      local_fc = (Bytef *)0x0;\n      pFVar17 = (FILE *)0xffffffff;\n      goto LAB_000510b8;\n    }\n    local_100 = (Bytef *)0x0;\n    iVar4 = 0;\n    local_fc = (Bytef *)0x0;\n    local_104 = (ptimer *)0x0;\n    pFVar17 = (FILE *)0xffffffff;\nLAB_00051080:\n    dVar23 = ptimer_read(local_104);\n    *(double *)flags = dVar23;\n  }" if (parenthesized_expression "(((uint)out2 & 8) == 0)" ( (binary_expression "((uint)out2 & 8) == 0" (parenthesized_expression "((uint)out2 & 8)" ( (binary_expression "(uint)out2 & 8" (cast_expression "(uint)out2" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n    local_100 = (Bytef *)0x0;\nLAB_00050b74:\n    dVar23 = (double)CONCAT44(pFVar17,qtyread);\n    skip = CONCAT44(skip._0_4_,skip._4_4_);\n    if (((uint)out2 & 2) != 0) {\n      skip = startpos;\n    }\n    if (*(int *)(PTR_opt_000b746c + 0x10c) == 0) {\n      progress = (void *)0x0;\n      if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n        local_e4 = 0;\n        goto LAB_00051950;\n      }\n      local_e4 = 0;\nLAB_00051978:\n      if (flags != 0) goto LAB_00050c48;\n      local_104 = (ptimer *)flags;\n      local_e0 = (Bytef *)0x2000;\n    }\n    else {\n      if (skip != 0) {\n        startpos = 0;\n      }\n      if (*(int *)(PTR_opt_000b746c + 0x30) != 0) {\n        iVar4 = (*(code *)PTR_strlen_000b7c94)();\n        downloaded_filename = downloaded_filename + iVar4 + 1;\n      }\n      in_stack_fffffee0 = (double)(toread + startpos);\n      progress = progress_create(downloaded_filename,(wgint)in_stack_fffffee0,in_stack_fffffee8);\n      _Var12 = progress_interactive_p(progress);\n      local_e4 = CONCAT31(extraout_var,_Var12);\n      dVar23 = (double)startpos;\n      if (*(int *)(PTR_opt_000b746c + 0x158) == 0 && *(int *)(PTR_opt_000b746c + 0x15c) == 0) {\n        if (progress == (void *)0x0) goto LAB_00051978;\n      }\n      else {\nLAB_00051950:\n        puVar21 = PTR_DAT_000b7720;\n        *(undefined4 *)(PTR_DAT_000b7720 + -0x2fe8) = 0;\n        *(undefined4 *)(puVar21 + -0x2fe4) = 0;\n        *(undefined4 *)(puVar21 + -0x2fe0) = 0;\n        *(undefined4 *)(puVar21 + -0x2fdc) = 0;\n        *(undefined4 *)(puVar21 + -0x2fd8) = 0;\n        *(undefined4 *)(puVar21 + -0x2fd4) = 0;\n      }\nLAB_00050c48:\n      local_104 = ptimer_new();\n      iVar4 = *(int *)(PTR_opt_000b746c + 0x158);\n      local_e0 = *(Bytef **)(PTR_opt_000b746c + 0x15c);\n      if (iVar4 == 0 && local_e0 == (Bytef *)0x0) {\n        local_e0 = (Bytef *)0x2000;\n      }\n      else if ((0 < iVar4) || ((iVar4 == 0 && ((Bytef *)0x1fff < local_e0)))) {\n        local_e0 = (Bytef *)0x2000;\n      }\n    }\n    puVar21 = PTR_DAT_000b758c;\n    iVar18 = 0;\n    local_f0 = (Bytef *)0x0;\n    iVar4 = 0;\n    local_fc = (Bytef *)0x0;\n    dVar27 = 0.0;\n    pFVar20 = (FILE *)0x0;\n    dVar29 = *(double *)(PTR_DAT_000b758c + -0x2340);\n    dVar30 = *(double *)(PTR_DAT_000b758c + -0x2580);\n    dVar31 = *(double *)(PTR_DAT_000b758c + -0x15d0);\n    dVar26 = *(double *)(PTR_DAT_000b758c + -0x15d8);\n    while( true ) {\n      uVar5 = SUB84(dVar23,0);\n      iVar14 = (int)local_e0 >> 0x1f;\n      pBVar9 = local_e0;\n      if (((uint)out2 & 1) == 0) break;\n      if (toread._0_4_ <= iVar4) {\n        if (toread._0_4_ != iVar4) goto LAB_000518d4;\n        if (local_fc < toread._4_4_) goto LAB_000517b0;\n        bVar1 = (int)pFVar20 < 0;\n        dVar24 = dVar23;\n        goto LAB_000518d8;\n      }\nLAB_000517b0:\n      dVar28 = *(double *)(PTR_opt_000b746c + 0x120);\n      if (uVar3 != 0) goto LAB_00051820;\n      pBVar13 = toread._4_4_ + -(int)local_fc;\n      iVar10 = (toread._0_4_ - iVar4) - (uint)(toread._4_4_ < pBVar13);\n      dVar23 = (double)CONCAT44(iVar10,uVar5);\n      if ((iVar14 < iVar10) ||\n         ((dVar24 = (double)CONCAT44(iVar10,uVar5), iVar10 == iVar14 &&\n          (dVar24 = (double)CONCAT44(iVar10,uVar5), local_e0 < pBVar13)))) goto LAB_00051864;\nLAB_00051868:\n      pFVar15 = SUB84(dVar24,0);\n      if (local_e4 == 0) {\n        pFVar20 = (FILE *)(*(code *)PTR_fd_read_000b7770)(fd,buf);\n        in_stack_fffffee0 = dVar28;\nLAB_000516fc:\n        bVar1 = (int)pFVar20 < 0;\n        dVar24 = (double)CONCAT44(pBVar13,pFVar15);\n        if ((int)pFVar20 < 1) goto LAB_000518d8;\n        if (progress == (void *)0x0) {\n          if (*(int *)(PTR_opt_000b746c + 0x158) == 0 && *(int *)(PTR_opt_000b746c + 0x15c) == 0)\n          goto LAB_00051720;\n          ptimer_measure(local_104);\n        }\n        else {\n          ptimer_measure(local_104);\n        }\nLAB_000515b0:\n        dVar27 = ptimer_read(local_104);\nLAB_000515c4:\n        pBVar9 = local_fc + (int)pFVar20;\n        iVar4 = (uint)(pBVar9 < local_fc) + iVar4 + ((int)pFVar20 >> 0x1f);\n        pBVar13 = buf;\n        pFVar15 = pFVar20;\n        local_fc = pBVar9;\n        if (local_100 == (Bytef *)0x0) {\n          in_stack_fffffee0 = (double)CONCAT44(&skip,&sum_written);\n          pFVar17 = (FILE *)write_data(out,in_stack_00000030,(char *)buf,(int)pFVar20,&skip,\n                                       &sum_written);\n          dVar24 = (double)CONCAT44(pBVar13,pFVar15);\n          if ((int)pFVar17 < 0) goto LAB_00051040;\n        }\n        else {\n          in_stack_fffffee0 = 0.0;\n          pFVar17 = (FILE *)write_data((FILE *)0x0,in_stack_00000030,(char *)buf,(int)pFVar20,\n                                       (wgint *)0x0,(wgint *)0x0);\n          dVar24 = (double)CONCAT44(pBVar13,pFVar15);\n          if ((int)pFVar17 < 0) goto LAB_00051040;\n          pcVar8 = PTR_DAT_000b758c + -0x1898;\n          pcVar19 = (code *)(PTR_LAB_000b78e4 + 0x3a4);\n          gzstream.next_in = buf;\n          gzstream.avail_in = (uInt)pFVar20;\n          do {\n            gzstream.avail_out = 0x8000;\n            gzstream.next_out = local_100;\n            iVar14 = (*(code *)PTR_inflate_000b7d40)(&gzstream,0);\n            if (iVar14 == -3) {\nLAB_000511f4:\n              puVar7 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n              dVar24 = (double)CONCAT44(pBVar13,pFVar15);\n              *puVar7 = 0x16;\n              pFVar17 = (FILE *)0xffffffff;\n              goto LAB_00051040;\n            }\n            if (iVar14 < -2) {\n              if (iVar14 == -4) {\n                puVar7 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n                dVar24 = (double)CONCAT44(pBVar13,pFVar15);\n                *puVar7 = 0xc;\n                pFVar17 = (FILE *)0xffffffff;\n                goto LAB_00051040;\n              }\n            }\n            else if (iVar14 == 1) {\n              if (((((uint)out2 & 1) != 0) && (toread != CONCAT44(iVar4,pBVar9))) &&\n                 (PTR_opt_000b746c[0x16b] != '\0')) {\n                debug_logprintf(pcVar8);\n              }\n            }\n            else if (iVar14 == 2) goto LAB_000511f4;\n            in_stack_fffffee0 = (double)CONCAT44(&skip,&sum_written);\n            pFVar15 = (FILE *)(0x8000 - gzstream.avail_out);\n            pBVar13 = local_100;\n            pFVar17 = (FILE *)(*pcVar19)(out,0);\n            dVar24 = (double)CONCAT44(pBVar13,pFVar15);\n            if ((int)pFVar17 < 0) goto LAB_00051040;\n          } while (gzstream.avail_out == 0);\n        }\n        if (uVar3 != 0) {\n          pBVar9 = local_f0 + -(int)pFVar20;\n          iVar18 = (iVar18 - ((int)pFVar20 >> 0x1f)) - (uint)(local_f0 < pBVar9);\n          local_f0 = pBVar9;\n          if (iVar18 == 0 && pBVar9 == (Bytef *)0x0) {\n            pcVar8 = fd_read_line(fd);\n            dVar23 = (double)CONCAT44(pBVar13,pFVar15);\n            if (pcVar8 == (char *)0x0) {\n              pFVar20 = (FILE *)0xffffffff;\n              goto LAB_000518d4;\n            }\n            if (in_stack_00000030 != (FILE *)0x0) {\n              pBVar13 = (Bytef *)(*(code *)PTR_strlen_000b7c94)(pcVar8);\n              pFVar15 = in_stack_00000030;\n              (*(code *)PTR_fwrite_000b7c24)(pcVar8,1);\n            }\n            (*(code *)PTR_free_000b7d34)(pcVar8);\n          }\n        }\nLAB_00051748:\n        dVar23 = (double)CONCAT44(pBVar13,pFVar15);\n        if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n          dVar24 = ptimer_read(local_104);\n          puVar22 = PTR_DAT_000b7720;\n          dVar24 = dVar24 - *(double *)(PTR_DAT_000b7720 + -0x2fe0);\n          pFVar17 = (FILE *)(pFVar20->_shortbuf + *(int *)(PTR_DAT_000b7720 + -0x2fe4) + -0x47);\n          iVar14 = (uint)(pFVar17 < pFVar20) +\n                   ((int)pFVar20 >> 0x1f) + *(int *)(PTR_DAT_000b7720 + -0x2fe8);\n          *(int *)(PTR_DAT_000b7720 + -0x2fe8) = iVar14;\n          *(FILE **)(puVar22 + -0x2fe4) = pFVar17;\n          dVar28 = (double)(*(code *)PTR___floatdidf_000b78f4)(iVar14,pFVar17);\n          dVar25 = (double)(*(code *)PTR___floatdidf_000b78f4)\n                                     (*(undefined4 *)(PTR_opt_000b746c + 0x158),\n                                      *(undefined4 *)(PTR_opt_000b746c + 0x15c));\n          dVar23 = (double)CONCAT44(pBVar13,pFVar15);\n          if (dVar24 < dVar28 / dVar25) {\n            dVar24 = (dVar28 / dVar25 - dVar24) + *(double *)(PTR_DAT_000b7720 + -0x2fd8);\n            if (dVar24 < dVar29) {\n              if (PTR_opt_000b746c[0x16b] != '\0') {\n                pcVar8 = number_to_static_string((wgint)in_stack_fffffee0);\n                in_stack_fffffee0 = (double)(ZEXT48(pcVar8) << 0x20);\n                dVar23 = dVar24 * *(double *)(puVar21 + -0x15d8);\n                debug_logprintf(PTR_DAT_000b758c + -0x1864);\n              }\n              goto LAB_0005175c;\n            }\n            in_f12_13 = dVar24;\n            if (PTR_opt_000b746c[0x16b] != '\0') {\n              pcVar8 = number_to_static_string((wgint)in_stack_fffffee0);\n              in_stack_fffffee0 = (double)(ZEXT48(pcVar8) << 0x20);\n              dVar23 = dVar24 * dVar26;\n              debug_logprintf(PTR_DAT_000b758c + -0x183c);\n              in_f12_13 = dVar24;\n            }\n            dVar28 = ptimer_read(local_104);\n            dVar24 = in_f12_13;\n            xsleep(in_f12_13);\n            dVar25 = ptimer_measure(local_104);\n            dVar24 = dVar24 - (dVar25 - dVar28);\n            if (dVar30 < dVar24) {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar21 + -0x2580);\n            }\n            else if (dVar31 <= dVar24) {\n              *(double *)(PTR_DAT_000b7720 + -0x2fd8) = dVar24;\n            }\n            else {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar21 + -0x15d0);\n            }\n          }\n          puVar22 = PTR_DAT_000b7720;\n          *(undefined4 *)(PTR_DAT_000b7720 + -0x2fe4) = 0;\n          *(undefined4 *)(puVar22 + -0x2fe8) = 0;\n          dVar24 = ptimer_read(local_104);\n          *(double *)(puVar22 + -0x2fe0) = dVar24;\n        }\n      }\n      else {\n        if (*(double *)(PTR_opt_000b746c + 0x120) == 0.0) {\n          dVar28 = *(double *)(PTR_DAT_000b758c + -0x15e0);\n        }\n        else {\n          dVar23 = ptimer_read(local_104);\n          pFVar15 = SUB84(dVar24,0);\n          if (*(double *)(PTR_opt_000b746c + 0x120) <\n              (dVar23 - dVar27) + *(double *)(PTR_DAT_000b758c + -0x15e0)) {\n            dVar28 = *(double *)(PTR_opt_000b746c + 0x120) - (dVar23 - dVar27);\n            if (dVar28 < 0.0) {\n              puVar7 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n              *puVar7 = 0x91;\n              pFVar17 = (FILE *)0xffffffff;\n              goto LAB_00051040;\n            }\n          }\n          else {\n            dVar28 = *(double *)(PTR_DAT_000b758c + -0x15e0);\n          }\n        }\n        pFVar20 = (FILE *)(*(code *)PTR_fd_read_000b7770)(fd,buf);\n        in_stack_fffffee0 = dVar28;\n        if (-1 < (int)pFVar20) goto LAB_000516fc;\n        piVar11 = (int *)(*(code *)PTR___errno_location_000b7eb8)();\n        dVar23 = (double)CONCAT44(pBVar13,pFVar15);\n        in_stack_fffffee0 = dVar28;\n        if (*piVar11 != 0x91) goto LAB_000518d4;\n        if (progress != (void *)0x0) {\n          ptimer_measure(local_104);\n          iVar2 = FUN_00051744();\n          return iVar2;\n        }\n        if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n          ptimer_measure(local_104);\n          iVar2 = FUN_00051744();\n          return iVar2;\n        }\n        pFVar20 = (FILE *)0x0;\nLAB_00051720:\n        dVar23 = (double)CONCAT44(pBVar13,pFVar15);\n        if (flags != 0) {\n          ptimer_measure(local_104);\n          if (0 < (int)pFVar20) goto LAB_000515b0;\n          goto LAB_00051748;\n        }\n        if (0 < (int)pFVar20) goto LAB_000515c4;\n      }\nLAB_0005175c:\n      if (progress != (void *)0x0) {\n        in_stack_fffffee0 = ptimer_read(local_104);\n        iVar14 = (int)pFVar20 >> 0x1f;\n        pFVar17 = pFVar20;\n        progress_update(progress,(wgint)in_stack_fffffee0,in_f12_13);\n        dVar23 = (double)CONCAT44(iVar14,pFVar17);\n      }\n    }\n    dVar28 = *(double *)(PTR_opt_000b746c + 0x120);\n    if (uVar3 == 0) {\nLAB_00051864:\n      pBVar13 = pBVar9;\n      dVar24 = dVar23;\n      goto LAB_00051868;\n    }\nLAB_00051820:\n    if (iVar18 != 0 || local_f0 != (Bytef *)0x0) {\nLAB_00051830:\n      pBVar9 = local_f0;\n      if ((iVar14 <= iVar18) &&\n         ((pBVar13 = local_e0, dVar24 = dVar23, iVar14 != iVar18 ||\n          (pBVar9 = local_f0, local_e0 <= local_f0)))) goto LAB_00051868;\n      goto LAB_00051864;\n    }\n    pcVar8 = fd_read_line(fd);\n    pFVar17 = SUB84(dVar23,0);\n    if (pcVar8 == (char *)0x0) {\nLAB_00050e90:\n      pFVar20 = (FILE *)0xffffffff;\nLAB_000518d4:\n      bVar1 = (int)pFVar20 < 0;\n      dVar24 = dVar23;\nLAB_000518d8:\n      pFVar17 = (FILE *)0xffffffff;\n      if (!bVar1) {\n        pFVar17 = pFVar20;\n      }\n    }\n    else {\n      if (in_stack_00000030 != (FILE *)0x0) {\n        uVar5 = (*(code *)PTR_strlen_000b7c94)(pcVar8);\n        pFVar17 = in_stack_00000030;\n        (*(code *)PTR_fwrite_000b7c24)(pcVar8,1,uVar5);\n      }\n      uVar5 = 0x10;\n      local_f0 = (Bytef *)(*(code *)PTR_strtol_000b7d3c)(pcVar8,&endl);\n      iVar18 = (int)local_f0 >> 0x1f;\n      (*(code *)PTR_free_000b7d34)(pcVar8);\n      dVar23 = (double)CONCAT44(uVar5,pFVar17);\n      if (iVar18 < 0) goto LAB_00050e90;\n      if (local_f0 != (Bytef *)0x0) goto LAB_00051830;\n      pcVar8 = fd_read_line(fd);\n      dVar24 = (double)CONCAT44(uVar5,pFVar17);\n      if (pcVar8 == (char *)0x0) {\n        pFVar17 = (FILE *)0xffffffff;\n      }\n      else {\n        if (in_stack_00000030 != (FILE *)0x0) {\n          uVar5 = (*(code *)PTR_strlen_000b7c94)(pcVar8);\n          (*(code *)PTR_fwrite_000b7c24)(pcVar8,1);\n          pFVar17 = in_stack_00000030;\n        }\n        (*(code *)PTR_free_000b7d34)(pcVar8);\n        dVar24 = (double)CONCAT44(uVar5,pFVar17);\n        pFVar17 = (FILE *)0x0;\n      }\n    }\nLAB_00051040:\n    puVar7 = (undefined4 *)((ulonglong)in_stack_fffffee0 >> 0x20);\n    if (progress != (void *)0x0) {\n      dVar24 = ptimer_read(local_104);\n      uVar16 = SUB84(dVar24,0);\n      uVar5 = (undefined4)((ulonglong)dVar24 >> 0x20);\n      progress_finish(progress,in_f12_13);\n      dVar24 = (double)CONCAT44(uVar5,uVar16);\n    }\n    if (flags != 0) goto LAB_00051080;\n  }" { (expression_statement "local_100 = (Bytef *)0x0;" (assignment_expression "local_100 = (Bytef *)0x0" identifier = (cast_expression "(Bytef *)0x0" ( (type_descriptor "Bytef *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_00050b74:\n    dVar23 = (double)CONCAT44(pFVar17,qtyread);" statement_identifier : (expression_statement "dVar23 = (double)CONCAT44(pFVar17,qtyread);" (assignment_expression "dVar23 = (double)CONCAT44(pFVar17,qtyread)" identifier = (cast_expression "(double)CONCAT44(pFVar17,qtyread)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(pFVar17,qtyread)" identifier (argument_list "(pFVar17,qtyread)" ( identifier , identifier ))))) ;)) (expression_statement "skip = CONCAT44(skip._0_4_,skip._4_4_);" (assignment_expression "skip = CONCAT44(skip._0_4_,skip._4_4_)" identifier = (call_expression "CONCAT44(skip._0_4_,skip._4_4_)" identifier (argument_list "(skip._0_4_,skip._4_4_)" ( (field_expression "skip._0_4_" identifier . field_identifier) , (field_expression "skip._4_4_" identifier . field_identifier) )))) ;) (if_statement "if (((uint)out2 & 2) != 0) {\n      skip = startpos;\n    }" if (parenthesized_expression "(((uint)out2 & 2) != 0)" ( (binary_expression "((uint)out2 & 2) != 0" (parenthesized_expression "((uint)out2 & 2)" ( (binary_expression "(uint)out2 & 2" (cast_expression "(uint)out2" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n      skip = startpos;\n    }" { (expression_statement "skip = startpos;" (assignment_expression "skip = startpos" identifier = identifier) ;) })) (if_statement "if (*(int *)(PTR_opt_000b746c + 0x10c) == 0) {\n      progress = (void *)0x0;\n      if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n        local_e4 = 0;\n        goto LAB_00051950;\n      }\n      local_e4 = 0;\nLAB_00051978:\n      if (flags != 0) goto LAB_00050c48;\n      local_104 = (ptimer *)flags;\n      local_e0 = (Bytef *)0x2000;\n    }\n    else {\n      if (skip != 0) {\n        startpos = 0;\n      }\n      if (*(int *)(PTR_opt_000b746c + 0x30) != 0) {\n        iVar4 = (*(code *)PTR_strlen_000b7c94)();\n        downloaded_filename = downloaded_filename + iVar4 + 1;\n      }\n      in_stack_fffffee0 = (double)(toread + startpos);\n      progress = progress_create(downloaded_filename,(wgint)in_stack_fffffee0,in_stack_fffffee8);\n      _Var12 = progress_interactive_p(progress);\n      local_e4 = CONCAT31(extraout_var,_Var12);\n      dVar23 = (double)startpos;\n      if (*(int *)(PTR_opt_000b746c + 0x158) == 0 && *(int *)(PTR_opt_000b746c + 0x15c) == 0) {\n        if (progress == (void *)0x0) goto LAB_00051978;\n      }\n      else {\nLAB_00051950:\n        puVar21 = PTR_DAT_000b7720;\n        *(undefined4 *)(PTR_DAT_000b7720 + -0x2fe8) = 0;\n        *(undefined4 *)(puVar21 + -0x2fe4) = 0;\n        *(undefined4 *)(puVar21 + -0x2fe0) = 0;\n        *(undefined4 *)(puVar21 + -0x2fdc) = 0;\n        *(undefined4 *)(puVar21 + -0x2fd8) = 0;\n        *(undefined4 *)(puVar21 + -0x2fd4) = 0;\n      }\nLAB_00050c48:\n      local_104 = ptimer_new();\n      iVar4 = *(int *)(PTR_opt_000b746c + 0x158);\n      local_e0 = *(Bytef **)(PTR_opt_000b746c + 0x15c);\n      if (iVar4 == 0 && local_e0 == (Bytef *)0x0) {\n        local_e0 = (Bytef *)0x2000;\n      }\n      else if ((0 < iVar4) || ((iVar4 == 0 && ((Bytef *)0x1fff < local_e0)))) {\n        local_e0 = (Bytef *)0x2000;\n      }\n    }" if (parenthesized_expression "(*(int *)(PTR_opt_000b746c + 0x10c) == 0)" ( (binary_expression "*(int *)(PTR_opt_000b746c + 0x10c) == 0" (pointer_expression "*(int *)(PTR_opt_000b746c + 0x10c)" * (cast_expression "(int *)(PTR_opt_000b746c + 0x10c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_opt_000b746c + 0x10c)" ( (binary_expression "PTR_opt_000b746c + 0x10c" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      progress = (void *)0x0;\n      if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n        local_e4 = 0;\n        goto LAB_00051950;\n      }\n      local_e4 = 0;\nLAB_00051978:\n      if (flags != 0) goto LAB_00050c48;\n      local_104 = (ptimer *)flags;\n      local_e0 = (Bytef *)0x2000;\n    }" { (expression_statement "progress = (void *)0x0;" (assignment_expression "progress = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n        local_e4 = 0;\n        goto LAB_00051950;\n      }" if (parenthesized_expression "(*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0)" ( (binary_expression "*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0" (binary_expression "*(int *)(PTR_opt_000b746c + 0x158) != 0" (pointer_expression "*(int *)(PTR_opt_000b746c + 0x158)" * (cast_expression "(int *)(PTR_opt_000b746c + 0x158)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_opt_000b746c + 0x158)" ( (binary_expression "PTR_opt_000b746c + 0x158" identifier + number_literal) )))) != number_literal) || (binary_expression "*(int *)(PTR_opt_000b746c + 0x15c) != 0" (pointer_expression "*(int *)(PTR_opt_000b746c + 0x15c)" * (cast_expression "(int *)(PTR_opt_000b746c + 0x15c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_opt_000b746c + 0x15c)" ( (binary_expression "PTR_opt_000b746c + 0x15c" identifier + number_literal) )))) != number_literal)) )) (compound_statement "{\n        local_e4 = 0;\n        goto LAB_00051950;\n      }" { (expression_statement "local_e4 = 0;" (assignment_expression "local_e4 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00051950;" goto statement_identifier ;) })) (expression_statement "local_e4 = 0;" (assignment_expression "local_e4 = 0" identifier = number_literal) ;) (labeled_statement "LAB_00051978:\n      if (flags != 0) goto LAB_00050c48;" statement_identifier : (if_statement "if (flags != 0) goto LAB_00050c48;" if (parenthesized_expression "(flags != 0)" ( (binary_expression "flags != 0" identifier != number_literal) )) (goto_statement "goto LAB_00050c48;" goto statement_identifier ;))) (expression_statement "local_104 = (ptimer *)flags;" (assignment_expression "local_104 = (ptimer *)flags" identifier = (cast_expression "(ptimer *)flags" ( (type_descriptor "ptimer *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "local_e0 = (Bytef *)0x2000;" (assignment_expression "local_e0 = (Bytef *)0x2000" identifier = (cast_expression "(Bytef *)0x2000" ( (type_descriptor "Bytef *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n      if (skip != 0) {\n        startpos = 0;\n      }\n      if (*(int *)(PTR_opt_000b746c + 0x30) != 0) {\n        iVar4 = (*(code *)PTR_strlen_000b7c94)();\n        downloaded_filename = downloaded_filename + iVar4 + 1;\n      }\n      in_stack_fffffee0 = (double)(toread + startpos);\n      progress = progress_create(downloaded_filename,(wgint)in_stack_fffffee0,in_stack_fffffee8);\n      _Var12 = progress_interactive_p(progress);\n      local_e4 = CONCAT31(extraout_var,_Var12);\n      dVar23 = (double)startpos;\n      if (*(int *)(PTR_opt_000b746c + 0x158) == 0 && *(int *)(PTR_opt_000b746c + 0x15c) == 0) {\n        if (progress == (void *)0x0) goto LAB_00051978;\n      }\n      else {\nLAB_00051950:\n        puVar21 = PTR_DAT_000b7720;\n        *(undefined4 *)(PTR_DAT_000b7720 + -0x2fe8) = 0;\n        *(undefined4 *)(puVar21 + -0x2fe4) = 0;\n        *(undefined4 *)(puVar21 + -0x2fe0) = 0;\n        *(undefined4 *)(puVar21 + -0x2fdc) = 0;\n        *(undefined4 *)(puVar21 + -0x2fd8) = 0;\n        *(undefined4 *)(puVar21 + -0x2fd4) = 0;\n      }\nLAB_00050c48:\n      local_104 = ptimer_new();\n      iVar4 = *(int *)(PTR_opt_000b746c + 0x158);\n      local_e0 = *(Bytef **)(PTR_opt_000b746c + 0x15c);\n      if (iVar4 == 0 && local_e0 == (Bytef *)0x0) {\n        local_e0 = (Bytef *)0x2000;\n      }\n      else if ((0 < iVar4) || ((iVar4 == 0 && ((Bytef *)0x1fff < local_e0)))) {\n        local_e0 = (Bytef *)0x2000;\n      }\n    }" else (compound_statement "{\n      if (skip != 0) {\n        startpos = 0;\n      }\n      if (*(int *)(PTR_opt_000b746c + 0x30) != 0) {\n        iVar4 = (*(code *)PTR_strlen_000b7c94)();\n        downloaded_filename = downloaded_filename + iVar4 + 1;\n      }\n      in_stack_fffffee0 = (double)(toread + startpos);\n      progress = progress_create(downloaded_filename,(wgint)in_stack_fffffee0,in_stack_fffffee8);\n      _Var12 = progress_interactive_p(progress);\n      local_e4 = CONCAT31(extraout_var,_Var12);\n      dVar23 = (double)startpos;\n      if (*(int *)(PTR_opt_000b746c + 0x158) == 0 && *(int *)(PTR_opt_000b746c + 0x15c) == 0) {\n        if (progress == (void *)0x0) goto LAB_00051978;\n      }\n      else {\nLAB_00051950:\n        puVar21 = PTR_DAT_000b7720;\n        *(undefined4 *)(PTR_DAT_000b7720 + -0x2fe8) = 0;\n        *(undefined4 *)(puVar21 + -0x2fe4) = 0;\n        *(undefined4 *)(puVar21 + -0x2fe0) = 0;\n        *(undefined4 *)(puVar21 + -0x2fdc) = 0;\n        *(undefined4 *)(puVar21 + -0x2fd8) = 0;\n        *(undefined4 *)(puVar21 + -0x2fd4) = 0;\n      }\nLAB_00050c48:\n      local_104 = ptimer_new();\n      iVar4 = *(int *)(PTR_opt_000b746c + 0x158);\n      local_e0 = *(Bytef **)(PTR_opt_000b746c + 0x15c);\n      if (iVar4 == 0 && local_e0 == (Bytef *)0x0) {\n        local_e0 = (Bytef *)0x2000;\n      }\n      else if ((0 < iVar4) || ((iVar4 == 0 && ((Bytef *)0x1fff < local_e0)))) {\n        local_e0 = (Bytef *)0x2000;\n      }\n    }" { (if_statement "if (skip != 0) {\n        startpos = 0;\n      }" if (parenthesized_expression "(skip != 0)" ( (binary_expression "skip != 0" identifier != number_literal) )) (compound_statement "{\n        startpos = 0;\n      }" { (expression_statement "startpos = 0;" (assignment_expression "startpos = 0" identifier = number_literal) ;) })) (if_statement "if (*(int *)(PTR_opt_000b746c + 0x30) != 0) {\n        iVar4 = (*(code *)PTR_strlen_000b7c94)();\n        downloaded_filename = downloaded_filename + iVar4 + 1;\n      }" if (parenthesized_expression "(*(int *)(PTR_opt_000b746c + 0x30) != 0)" ( (binary_expression "*(int *)(PTR_opt_000b746c + 0x30) != 0" (pointer_expression "*(int *)(PTR_opt_000b746c + 0x30)" * (cast_expression "(int *)(PTR_opt_000b746c + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_opt_000b746c + 0x30)" ( (binary_expression "PTR_opt_000b746c + 0x30" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n        iVar4 = (*(code *)PTR_strlen_000b7c94)();\n        downloaded_filename = downloaded_filename + iVar4 + 1;\n      }" { (expression_statement "iVar4 = (*(code *)PTR_strlen_000b7c94)();" (assignment_expression "iVar4 = (*(code *)PTR_strlen_000b7c94)()" identifier = (call_expression "(*(code *)PTR_strlen_000b7c94)()" (parenthesized_expression "(*(code *)PTR_strlen_000b7c94)" ( (pointer_expression "*(code *)PTR_strlen_000b7c94" * (cast_expression "(code *)PTR_strlen_000b7c94" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "downloaded_filename = downloaded_filename + iVar4 + 1;" (assignment_expression "downloaded_filename = downloaded_filename + iVar4 + 1" identifier = (binary_expression "downloaded_filename + iVar4 + 1" (binary_expression "downloaded_filename + iVar4" identifier + identifier) + number_literal)) ;) })) (expression_statement "in_stack_fffffee0 = (double)(toread + startpos);" (assignment_expression "in_stack_fffffee0 = (double)(toread + startpos)" identifier = (cast_expression "(double)(toread + startpos)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "(toread + startpos)" ( (binary_expression "toread + startpos" identifier + identifier) )))) ;) (expression_statement "progress = progress_create(downloaded_filename,(wgint)in_stack_fffffee0,in_stack_fffffee8);" (assignment_expression "progress = progress_create(downloaded_filename,(wgint)in_stack_fffffee0,in_stack_fffffee8)" identifier = (call_expression "progress_create(downloaded_filename,(wgint)in_stack_fffffee0,in_stack_fffffee8)" identifier (argument_list "(downloaded_filename,(wgint)in_stack_fffffee0,in_stack_fffffee8)" ( identifier , (cast_expression "(wgint)in_stack_fffffee0" ( (type_descriptor "wgint" type_identifier) ) identifier) , identifier )))) ;) (expression_statement "_Var12 = progress_interactive_p(progress);" (assignment_expression "_Var12 = progress_interactive_p(progress)" identifier = (call_expression "progress_interactive_p(progress)" identifier (argument_list "(progress)" ( identifier )))) ;) (expression_statement "local_e4 = CONCAT31(extraout_var,_Var12);" (assignment_expression "local_e4 = CONCAT31(extraout_var,_Var12)" identifier = (call_expression "CONCAT31(extraout_var,_Var12)" identifier (argument_list "(extraout_var,_Var12)" ( identifier , identifier )))) ;) (expression_statement "dVar23 = (double)startpos;" (assignment_expression "dVar23 = (double)startpos" identifier = (cast_expression "(double)startpos" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (*(int *)(PTR_opt_000b746c + 0x158) == 0 && *(int *)(PTR_opt_000b746c + 0x15c) == 0) {\n        if (progress == (void *)0x0) goto LAB_00051978;\n      }\n      else {\nLAB_00051950:\n        puVar21 = PTR_DAT_000b7720;\n        *(undefined4 *)(PTR_DAT_000b7720 + -0x2fe8) = 0;\n        *(undefined4 *)(puVar21 + -0x2fe4) = 0;\n        *(undefined4 *)(puVar21 + -0x2fe0) = 0;\n        *(undefined4 *)(puVar21 + -0x2fdc) = 0;\n        *(undefined4 *)(puVar21 + -0x2fd8) = 0;\n        *(undefined4 *)(puVar21 + -0x2fd4) = 0;\n      }" if (parenthesized_expression "(*(int *)(PTR_opt_000b746c + 0x158) == 0 && *(int *)(PTR_opt_000b746c + 0x15c) == 0)" ( (binary_expression "*(int *)(PTR_opt_000b746c + 0x158) == 0 && *(int *)(PTR_opt_000b746c + 0x15c) == 0" (binary_expression "*(int *)(PTR_opt_000b746c + 0x158) == 0" (pointer_expression "*(int *)(PTR_opt_000b746c + 0x158)" * (cast_expression "(int *)(PTR_opt_000b746c + 0x158)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_opt_000b746c + 0x158)" ( (binary_expression "PTR_opt_000b746c + 0x158" identifier + number_literal) )))) == number_literal) && (binary_expression "*(int *)(PTR_opt_000b746c + 0x15c) == 0" (pointer_expression "*(int *)(PTR_opt_000b746c + 0x15c)" * (cast_expression "(int *)(PTR_opt_000b746c + 0x15c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_opt_000b746c + 0x15c)" ( (binary_expression "PTR_opt_000b746c + 0x15c" identifier + number_literal) )))) == number_literal)) )) (compound_statement "{\n        if (progress == (void *)0x0) goto LAB_00051978;\n      }" { (if_statement "if (progress == (void *)0x0) goto LAB_00051978;" if (parenthesized_expression "(progress == (void *)0x0)" ( (binary_expression "progress == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00051978;" goto statement_identifier ;)) }) (else_clause "else {\nLAB_00051950:\n        puVar21 = PTR_DAT_000b7720;\n        *(undefined4 *)(PTR_DAT_000b7720 + -0x2fe8) = 0;\n        *(undefined4 *)(puVar21 + -0x2fe4) = 0;\n        *(undefined4 *)(puVar21 + -0x2fe0) = 0;\n        *(undefined4 *)(puVar21 + -0x2fdc) = 0;\n        *(undefined4 *)(puVar21 + -0x2fd8) = 0;\n        *(undefined4 *)(puVar21 + -0x2fd4) = 0;\n      }" else (compound_statement "{\nLAB_00051950:\n        puVar21 = PTR_DAT_000b7720;\n        *(undefined4 *)(PTR_DAT_000b7720 + -0x2fe8) = 0;\n        *(undefined4 *)(puVar21 + -0x2fe4) = 0;\n        *(undefined4 *)(puVar21 + -0x2fe0) = 0;\n        *(undefined4 *)(puVar21 + -0x2fdc) = 0;\n        *(undefined4 *)(puVar21 + -0x2fd8) = 0;\n        *(undefined4 *)(puVar21 + -0x2fd4) = 0;\n      }" { (labeled_statement "LAB_00051950:\n        puVar21 = PTR_DAT_000b7720;" statement_identifier : (expression_statement "puVar21 = PTR_DAT_000b7720;" (assignment_expression "puVar21 = PTR_DAT_000b7720" identifier = identifier) ;)) (expression_statement "*(undefined4 *)(PTR_DAT_000b7720 + -0x2fe8) = 0;" (assignment_expression "*(undefined4 *)(PTR_DAT_000b7720 + -0x2fe8) = 0" (pointer_expression "*(undefined4 *)(PTR_DAT_000b7720 + -0x2fe8)" * (cast_expression "(undefined4 *)(PTR_DAT_000b7720 + -0x2fe8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000b7720 + -0x2fe8)" ( (binary_expression "PTR_DAT_000b7720 + -0x2fe8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x2fe4) = 0;" (assignment_expression "*(undefined4 *)(puVar21 + -0x2fe4) = 0" (pointer_expression "*(undefined4 *)(puVar21 + -0x2fe4)" * (cast_expression "(undefined4 *)(puVar21 + -0x2fe4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x2fe4)" ( (binary_expression "puVar21 + -0x2fe4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x2fe0) = 0;" (assignment_expression "*(undefined4 *)(puVar21 + -0x2fe0) = 0" (pointer_expression "*(undefined4 *)(puVar21 + -0x2fe0)" * (cast_expression "(undefined4 *)(puVar21 + -0x2fe0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x2fe0)" ( (binary_expression "puVar21 + -0x2fe0" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x2fdc) = 0;" (assignment_expression "*(undefined4 *)(puVar21 + -0x2fdc) = 0" (pointer_expression "*(undefined4 *)(puVar21 + -0x2fdc)" * (cast_expression "(undefined4 *)(puVar21 + -0x2fdc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x2fdc)" ( (binary_expression "puVar21 + -0x2fdc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x2fd8) = 0;" (assignment_expression "*(undefined4 *)(puVar21 + -0x2fd8) = 0" (pointer_expression "*(undefined4 *)(puVar21 + -0x2fd8)" * (cast_expression "(undefined4 *)(puVar21 + -0x2fd8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x2fd8)" ( (binary_expression "puVar21 + -0x2fd8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x2fd4) = 0;" (assignment_expression "*(undefined4 *)(puVar21 + -0x2fd4) = 0" (pointer_expression "*(undefined4 *)(puVar21 + -0x2fd4)" * (cast_expression "(undefined4 *)(puVar21 + -0x2fd4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x2fd4)" ( (binary_expression "puVar21 + -0x2fd4" identifier + number_literal) )))) = number_literal) ;) }))) (labeled_statement "LAB_00050c48:\n      local_104 = ptimer_new();" statement_identifier : (expression_statement "local_104 = ptimer_new();" (assignment_expression "local_104 = ptimer_new()" identifier = (call_expression "ptimer_new()" identifier (argument_list "()" ( )))) ;)) (expression_statement "iVar4 = *(int *)(PTR_opt_000b746c + 0x158);" (assignment_expression "iVar4 = *(int *)(PTR_opt_000b746c + 0x158)" identifier = (pointer_expression "*(int *)(PTR_opt_000b746c + 0x158)" * (cast_expression "(int *)(PTR_opt_000b746c + 0x158)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_opt_000b746c + 0x158)" ( (binary_expression "PTR_opt_000b746c + 0x158" identifier + number_literal) ))))) ;) (expression_statement "local_e0 = *(Bytef **)(PTR_opt_000b746c + 0x15c);" (assignment_expression "local_e0 = *(Bytef **)(PTR_opt_000b746c + 0x15c)" identifier = (pointer_expression "*(Bytef **)(PTR_opt_000b746c + 0x15c)" * (cast_expression "(Bytef **)(PTR_opt_000b746c + 0x15c)" ( (type_descriptor "Bytef **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_opt_000b746c + 0x15c)" ( (binary_expression "PTR_opt_000b746c + 0x15c" identifier + number_literal) ))))) ;) (if_statement "if (iVar4 == 0 && local_e0 == (Bytef *)0x0) {\n        local_e0 = (Bytef *)0x2000;\n      }\n      else if ((0 < iVar4) || ((iVar4 == 0 && ((Bytef *)0x1fff < local_e0)))) {\n        local_e0 = (Bytef *)0x2000;\n      }" if (parenthesized_expression "(iVar4 == 0 && local_e0 == (Bytef *)0x0)" ( (binary_expression "iVar4 == 0 && local_e0 == (Bytef *)0x0" (binary_expression "iVar4 == 0" identifier == number_literal) && (binary_expression "local_e0 == (Bytef *)0x0" identifier == (cast_expression "(Bytef *)0x0" ( (type_descriptor "Bytef *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n        local_e0 = (Bytef *)0x2000;\n      }" { (expression_statement "local_e0 = (Bytef *)0x2000;" (assignment_expression "local_e0 = (Bytef *)0x2000" identifier = (cast_expression "(Bytef *)0x2000" ( (type_descriptor "Bytef *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else if ((0 < iVar4) || ((iVar4 == 0 && ((Bytef *)0x1fff < local_e0)))) {\n        local_e0 = (Bytef *)0x2000;\n      }" else (if_statement "if ((0 < iVar4) || ((iVar4 == 0 && ((Bytef *)0x1fff < local_e0)))) {\n        local_e0 = (Bytef *)0x2000;\n      }" if (parenthesized_expression "((0 < iVar4) || ((iVar4 == 0 && ((Bytef *)0x1fff < local_e0))))" ( (binary_expression "(0 < iVar4) || ((iVar4 == 0 && ((Bytef *)0x1fff < local_e0)))" (parenthesized_expression "(0 < iVar4)" ( (binary_expression "0 < iVar4" number_literal < identifier) )) || (parenthesized_expression "((iVar4 == 0 && ((Bytef *)0x1fff < local_e0)))" ( (parenthesized_expression "(iVar4 == 0 && ((Bytef *)0x1fff < local_e0))" ( (binary_expression "iVar4 == 0 && ((Bytef *)0x1fff < local_e0)" (binary_expression "iVar4 == 0" identifier == number_literal) && (parenthesized_expression "((Bytef *)0x1fff < local_e0)" ( (binary_expression "(Bytef *)0x1fff < local_e0" (cast_expression "(Bytef *)0x1fff" ( (type_descriptor "Bytef *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < identifier) ))) )) ))) )) (compound_statement "{\n        local_e0 = (Bytef *)0x2000;\n      }" { (expression_statement "local_e0 = (Bytef *)0x2000;" (assignment_expression "local_e0 = (Bytef *)0x2000" identifier = (cast_expression "(Bytef *)0x2000" ( (type_descriptor "Bytef *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })))) }))) (expression_statement "puVar21 = PTR_DAT_000b758c;" (assignment_expression "puVar21 = PTR_DAT_000b758c" identifier = identifier) ;) (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" identifier = number_literal) ;) (expression_statement "local_f0 = (Bytef *)0x0;" (assignment_expression "local_f0 = (Bytef *)0x0" identifier = (cast_expression "(Bytef *)0x0" ( (type_descriptor "Bytef *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) (expression_statement "local_fc = (Bytef *)0x0;" (assignment_expression "local_fc = (Bytef *)0x0" identifier = (cast_expression "(Bytef *)0x0" ( (type_descriptor "Bytef *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "dVar27 = 0.0;" (assignment_expression "dVar27 = 0.0" identifier = number_literal) ;) (expression_statement "pFVar20 = (FILE *)0x0;" (assignment_expression "pFVar20 = (FILE *)0x0" identifier = (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "dVar29 = *(double *)(PTR_DAT_000b758c + -0x2340);" (assignment_expression "dVar29 = *(double *)(PTR_DAT_000b758c + -0x2340)" identifier = (pointer_expression "*(double *)(PTR_DAT_000b758c + -0x2340)" * (cast_expression "(double *)(PTR_DAT_000b758c + -0x2340)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000b758c + -0x2340)" ( (binary_expression "PTR_DAT_000b758c + -0x2340" identifier + number_literal) ))))) ;) (expression_statement "dVar30 = *(double *)(PTR_DAT_000b758c + -0x2580);" (assignment_expression "dVar30 = *(double *)(PTR_DAT_000b758c + -0x2580)" identifier = (pointer_expression "*(double *)(PTR_DAT_000b758c + -0x2580)" * (cast_expression "(double *)(PTR_DAT_000b758c + -0x2580)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000b758c + -0x2580)" ( (binary_expression "PTR_DAT_000b758c + -0x2580" identifier + number_literal) ))))) ;) (expression_statement "dVar31 = *(double *)(PTR_DAT_000b758c + -0x15d0);" (assignment_expression "dVar31 = *(double *)(PTR_DAT_000b758c + -0x15d0)" identifier = (pointer_expression "*(double *)(PTR_DAT_000b758c + -0x15d0)" * (cast_expression "(double *)(PTR_DAT_000b758c + -0x15d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000b758c + -0x15d0)" ( (binary_expression "PTR_DAT_000b758c + -0x15d0" identifier + number_literal) ))))) ;) (expression_statement "dVar26 = *(double *)(PTR_DAT_000b758c + -0x15d8);" (assignment_expression "dVar26 = *(double *)(PTR_DAT_000b758c + -0x15d8)" identifier = (pointer_expression "*(double *)(PTR_DAT_000b758c + -0x15d8)" * (cast_expression "(double *)(PTR_DAT_000b758c + -0x15d8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000b758c + -0x15d8)" ( (binary_expression "PTR_DAT_000b758c + -0x15d8" identifier + number_literal) ))))) ;) (while_statement "while( true ) {\n      uVar5 = SUB84(dVar23,0);\n      iVar14 = (int)local_e0 >> 0x1f;\n      pBVar9 = local_e0;\n      if (((uint)out2 & 1) == 0) break;\n      if (toread._0_4_ <= iVar4) {\n        if (toread._0_4_ != iVar4) goto LAB_000518d4;\n        if (local_fc < toread._4_4_) goto LAB_000517b0;\n        bVar1 = (int)pFVar20 < 0;\n        dVar24 = dVar23;\n        goto LAB_000518d8;\n      }\nLAB_000517b0:\n      dVar28 = *(double *)(PTR_opt_000b746c + 0x120);\n      if (uVar3 != 0) goto LAB_00051820;\n      pBVar13 = toread._4_4_ + -(int)local_fc;\n      iVar10 = (toread._0_4_ - iVar4) - (uint)(toread._4_4_ < pBVar13);\n      dVar23 = (double)CONCAT44(iVar10,uVar5);\n      if ((iVar14 < iVar10) ||\n         ((dVar24 = (double)CONCAT44(iVar10,uVar5), iVar10 == iVar14 &&\n          (dVar24 = (double)CONCAT44(iVar10,uVar5), local_e0 < pBVar13)))) goto LAB_00051864;\nLAB_00051868:\n      pFVar15 = SUB84(dVar24,0);\n      if (local_e4 == 0) {\n        pFVar20 = (FILE *)(*(code *)PTR_fd_read_000b7770)(fd,buf);\n        in_stack_fffffee0 = dVar28;\nLAB_000516fc:\n        bVar1 = (int)pFVar20 < 0;\n        dVar24 = (double)CONCAT44(pBVar13,pFVar15);\n        if ((int)pFVar20 < 1) goto LAB_000518d8;\n        if (progress == (void *)0x0) {\n          if (*(int *)(PTR_opt_000b746c + 0x158) == 0 && *(int *)(PTR_opt_000b746c + 0x15c) == 0)\n          goto LAB_00051720;\n          ptimer_measure(local_104);\n        }\n        else {\n          ptimer_measure(local_104);\n        }\nLAB_000515b0:\n        dVar27 = ptimer_read(local_104);\nLAB_000515c4:\n        pBVar9 = local_fc + (int)pFVar20;\n        iVar4 = (uint)(pBVar9 < local_fc) + iVar4 + ((int)pFVar20 >> 0x1f);\n        pBVar13 = buf;\n        pFVar15 = pFVar20;\n        local_fc = pBVar9;\n        if (local_100 == (Bytef *)0x0) {\n          in_stack_fffffee0 = (double)CONCAT44(&skip,&sum_written);\n          pFVar17 = (FILE *)write_data(out,in_stack_00000030,(char *)buf,(int)pFVar20,&skip,\n                                       &sum_written);\n          dVar24 = (double)CONCAT44(pBVar13,pFVar15);\n          if ((int)pFVar17 < 0) goto LAB_00051040;\n        }\n        else {\n          in_stack_fffffee0 = 0.0;\n          pFVar17 = (FILE *)write_data((FILE *)0x0,in_stack_00000030,(char *)buf,(int)pFVar20,\n                                       (wgint *)0x0,(wgint *)0x0);\n          dVar24 = (double)CONCAT44(pBVar13,pFVar15);\n          if ((int)pFVar17 < 0) goto LAB_00051040;\n          pcVar8 = PTR_DAT_000b758c + -0x1898;\n          pcVar19 = (code *)(PTR_LAB_000b78e4 + 0x3a4);\n          gzstream.next_in = buf;\n          gzstream.avail_in = (uInt)pFVar20;\n          do {\n            gzstream.avail_out = 0x8000;\n            gzstream.next_out = local_100;\n            iVar14 = (*(code *)PTR_inflate_000b7d40)(&gzstream,0);\n            if (iVar14 == -3) {\nLAB_000511f4:\n              puVar7 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n              dVar24 = (double)CONCAT44(pBVar13,pFVar15);\n              *puVar7 = 0x16;\n              pFVar17 = (FILE *)0xffffffff;\n              goto LAB_00051040;\n            }\n            if (iVar14 < -2) {\n              if (iVar14 == -4) {\n                puVar7 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n                dVar24 = (double)CONCAT44(pBVar13,pFVar15);\n                *puVar7 = 0xc;\n                pFVar17 = (FILE *)0xffffffff;\n                goto LAB_00051040;\n              }\n            }\n            else if (iVar14 == 1) {\n              if (((((uint)out2 & 1) != 0) && (toread != CONCAT44(iVar4,pBVar9))) &&\n                 (PTR_opt_000b746c[0x16b] != '\0')) {\n                debug_logprintf(pcVar8);\n              }\n            }\n            else if (iVar14 == 2) goto LAB_000511f4;\n            in_stack_fffffee0 = (double)CONCAT44(&skip,&sum_written);\n            pFVar15 = (FILE *)(0x8000 - gzstream.avail_out);\n            pBVar13 = local_100;\n            pFVar17 = (FILE *)(*pcVar19)(out,0);\n            dVar24 = (double)CONCAT44(pBVar13,pFVar15);\n            if ((int)pFVar17 < 0) goto LAB_00051040;\n          } while (gzstream.avail_out == 0);\n        }\n        if (uVar3 != 0) {\n          pBVar9 = local_f0 + -(int)pFVar20;\n          iVar18 = (iVar18 - ((int)pFVar20 >> 0x1f)) - (uint)(local_f0 < pBVar9);\n          local_f0 = pBVar9;\n          if (iVar18 == 0 && pBVar9 == (Bytef *)0x0) {\n            pcVar8 = fd_read_line(fd);\n            dVar23 = (double)CONCAT44(pBVar13,pFVar15);\n            if (pcVar8 == (char *)0x0) {\n              pFVar20 = (FILE *)0xffffffff;\n              goto LAB_000518d4;\n            }\n            if (in_stack_00000030 != (FILE *)0x0) {\n              pBVar13 = (Bytef *)(*(code *)PTR_strlen_000b7c94)(pcVar8);\n              pFVar15 = in_stack_00000030;\n              (*(code *)PTR_fwrite_000b7c24)(pcVar8,1);\n            }\n            (*(code *)PTR_free_000b7d34)(pcVar8);\n          }\n        }\nLAB_00051748:\n        dVar23 = (double)CONCAT44(pBVar13,pFVar15);\n        if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n          dVar24 = ptimer_read(local_104);\n          puVar22 = PTR_DAT_000b7720;\n          dVar24 = dVar24 - *(double *)(PTR_DAT_000b7720 + -0x2fe0);\n          pFVar17 = (FILE *)(pFVar20->_shortbuf + *(int *)(PTR_DAT_000b7720 + -0x2fe4) + -0x47);\n          iVar14 = (uint)(pFVar17 < pFVar20) +\n                   ((int)pFVar20 >> 0x1f) + *(int *)(PTR_DAT_000b7720 + -0x2fe8);\n          *(int *)(PTR_DAT_000b7720 + -0x2fe8) = iVar14;\n          *(FILE **)(puVar22 + -0x2fe4) = pFVar17;\n          dVar28 = (double)(*(code *)PTR___floatdidf_000b78f4)(iVar14,pFVar17);\n          dVar25 = (double)(*(code *)PTR___floatdidf_000b78f4)\n                                     (*(undefined4 *)(PTR_opt_000b746c + 0x158),\n                                      *(undefined4 *)(PTR_opt_000b746c + 0x15c));\n          dVar23 = (double)CONCAT44(pBVar13,pFVar15);\n          if (dVar24 < dVar28 / dVar25) {\n            dVar24 = (dVar28 / dVar25 - dVar24) + *(double *)(PTR_DAT_000b7720 + -0x2fd8);\n            if (dVar24 < dVar29) {\n              if (PTR_opt_000b746c[0x16b] != '\0') {\n                pcVar8 = number_to_static_string((wgint)in_stack_fffffee0);\n                in_stack_fffffee0 = (double)(ZEXT48(pcVar8) << 0x20);\n                dVar23 = dVar24 * *(double *)(puVar21 + -0x15d8);\n                debug_logprintf(PTR_DAT_000b758c + -0x1864);\n              }\n              goto LAB_0005175c;\n            }\n            in_f12_13 = dVar24;\n            if (PTR_opt_000b746c[0x16b] != '\0') {\n              pcVar8 = number_to_static_string((wgint)in_stack_fffffee0);\n              in_stack_fffffee0 = (double)(ZEXT48(pcVar8) << 0x20);\n              dVar23 = dVar24 * dVar26;\n              debug_logprintf(PTR_DAT_000b758c + -0x183c);\n              in_f12_13 = dVar24;\n            }\n            dVar28 = ptimer_read(local_104);\n            dVar24 = in_f12_13;\n            xsleep(in_f12_13);\n            dVar25 = ptimer_measure(local_104);\n            dVar24 = dVar24 - (dVar25 - dVar28);\n            if (dVar30 < dVar24) {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar21 + -0x2580);\n            }\n            else if (dVar31 <= dVar24) {\n              *(double *)(PTR_DAT_000b7720 + -0x2fd8) = dVar24;\n            }\n            else {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar21 + -0x15d0);\n            }\n          }\n          puVar22 = PTR_DAT_000b7720;\n          *(undefined4 *)(PTR_DAT_000b7720 + -0x2fe4) = 0;\n          *(undefined4 *)(puVar22 + -0x2fe8) = 0;\n          dVar24 = ptimer_read(local_104);\n          *(double *)(puVar22 + -0x2fe0) = dVar24;\n        }\n      }\n      else {\n        if (*(double *)(PTR_opt_000b746c + 0x120) == 0.0) {\n          dVar28 = *(double *)(PTR_DAT_000b758c + -0x15e0);\n        }\n        else {\n          dVar23 = ptimer_read(local_104);\n          pFVar15 = SUB84(dVar24,0);\n          if (*(double *)(PTR_opt_000b746c + 0x120) <\n              (dVar23 - dVar27) + *(double *)(PTR_DAT_000b758c + -0x15e0)) {\n            dVar28 = *(double *)(PTR_opt_000b746c + 0x120) - (dVar23 - dVar27);\n            if (dVar28 < 0.0) {\n              puVar7 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n              *puVar7 = 0x91;\n              pFVar17 = (FILE *)0xffffffff;\n              goto LAB_00051040;\n            }\n          }\n          else {\n            dVar28 = *(double *)(PTR_DAT_000b758c + -0x15e0);\n          }\n        }\n        pFVar20 = (FILE *)(*(code *)PTR_fd_read_000b7770)(fd,buf);\n        in_stack_fffffee0 = dVar28;\n        if (-1 < (int)pFVar20) goto LAB_000516fc;\n        piVar11 = (int *)(*(code *)PTR___errno_location_000b7eb8)();\n        dVar23 = (double)CONCAT44(pBVar13,pFVar15);\n        in_stack_fffffee0 = dVar28;\n        if (*piVar11 != 0x91) goto LAB_000518d4;\n        if (progress != (void *)0x0) {\n          ptimer_measure(local_104);\n          iVar2 = FUN_00051744();\n          return iVar2;\n        }\n        if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n          ptimer_measure(local_104);\n          iVar2 = FUN_00051744();\n          return iVar2;\n        }\n        pFVar20 = (FILE *)0x0;\nLAB_00051720:\n        dVar23 = (double)CONCAT44(pBVar13,pFVar15);\n        if (flags != 0) {\n          ptimer_measure(local_104);\n          if (0 < (int)pFVar20) goto LAB_000515b0;\n          goto LAB_00051748;\n        }\n        if (0 < (int)pFVar20) goto LAB_000515c4;\n      }\nLAB_0005175c:\n      if (progress != (void *)0x0) {\n        in_stack_fffffee0 = ptimer_read(local_104);\n        iVar14 = (int)pFVar20 >> 0x1f;\n        pFVar17 = pFVar20;\n        progress_update(progress,(wgint)in_stack_fffffee0,in_f12_13);\n        dVar23 = (double)CONCAT44(iVar14,pFVar17);\n      }\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      uVar5 = SUB84(dVar23,0);\n      iVar14 = (int)local_e0 >> 0x1f;\n      pBVar9 = local_e0;\n      if (((uint)out2 & 1) == 0) break;\n      if (toread._0_4_ <= iVar4) {\n        if (toread._0_4_ != iVar4) goto LAB_000518d4;\n        if (local_fc < toread._4_4_) goto LAB_000517b0;\n        bVar1 = (int)pFVar20 < 0;\n        dVar24 = dVar23;\n        goto LAB_000518d8;\n      }\nLAB_000517b0:\n      dVar28 = *(double *)(PTR_opt_000b746c + 0x120);\n      if (uVar3 != 0) goto LAB_00051820;\n      pBVar13 = toread._4_4_ + -(int)local_fc;\n      iVar10 = (toread._0_4_ - iVar4) - (uint)(toread._4_4_ < pBVar13);\n      dVar23 = (double)CONCAT44(iVar10,uVar5);\n      if ((iVar14 < iVar10) ||\n         ((dVar24 = (double)CONCAT44(iVar10,uVar5), iVar10 == iVar14 &&\n          (dVar24 = (double)CONCAT44(iVar10,uVar5), local_e0 < pBVar13)))) goto LAB_00051864;\nLAB_00051868:\n      pFVar15 = SUB84(dVar24,0);\n      if (local_e4 == 0) {\n        pFVar20 = (FILE *)(*(code *)PTR_fd_read_000b7770)(fd,buf);\n        in_stack_fffffee0 = dVar28;\nLAB_000516fc:\n        bVar1 = (int)pFVar20 < 0;\n        dVar24 = (double)CONCAT44(pBVar13,pFVar15);\n        if ((int)pFVar20 < 1) goto LAB_000518d8;\n        if (progress == (void *)0x0) {\n          if (*(int *)(PTR_opt_000b746c + 0x158) == 0 && *(int *)(PTR_opt_000b746c + 0x15c) == 0)\n          goto LAB_00051720;\n          ptimer_measure(local_104);\n        }\n        else {\n          ptimer_measure(local_104);\n        }\nLAB_000515b0:\n        dVar27 = ptimer_read(local_104);\nLAB_000515c4:\n        pBVar9 = local_fc + (int)pFVar20;\n        iVar4 = (uint)(pBVar9 < local_fc) + iVar4 + ((int)pFVar20 >> 0x1f);\n        pBVar13 = buf;\n        pFVar15 = pFVar20;\n        local_fc = pBVar9;\n        if (local_100 == (Bytef *)0x0) {\n          in_stack_fffffee0 = (double)CONCAT44(&skip,&sum_written);\n          pFVar17 = (FILE *)write_data(out,in_stack_00000030,(char *)buf,(int)pFVar20,&skip,\n                                       &sum_written);\n          dVar24 = (double)CONCAT44(pBVar13,pFVar15);\n          if ((int)pFVar17 < 0) goto LAB_00051040;\n        }\n        else {\n          in_stack_fffffee0 = 0.0;\n          pFVar17 = (FILE *)write_data((FILE *)0x0,in_stack_00000030,(char *)buf,(int)pFVar20,\n                                       (wgint *)0x0,(wgint *)0x0);\n          dVar24 = (double)CONCAT44(pBVar13,pFVar15);\n          if ((int)pFVar17 < 0) goto LAB_00051040;\n          pcVar8 = PTR_DAT_000b758c + -0x1898;\n          pcVar19 = (code *)(PTR_LAB_000b78e4 + 0x3a4);\n          gzstream.next_in = buf;\n          gzstream.avail_in = (uInt)pFVar20;\n          do {\n            gzstream.avail_out = 0x8000;\n            gzstream.next_out = local_100;\n            iVar14 = (*(code *)PTR_inflate_000b7d40)(&gzstream,0);\n            if (iVar14 == -3) {\nLAB_000511f4:\n              puVar7 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n              dVar24 = (double)CONCAT44(pBVar13,pFVar15);\n              *puVar7 = 0x16;\n              pFVar17 = (FILE *)0xffffffff;\n              goto LAB_00051040;\n            }\n            if (iVar14 < -2) {\n              if (iVar14 == -4) {\n                puVar7 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n                dVar24 = (double)CONCAT44(pBVar13,pFVar15);\n                *puVar7 = 0xc;\n                pFVar17 = (FILE *)0xffffffff;\n                goto LAB_00051040;\n              }\n            }\n            else if (iVar14 == 1) {\n              if (((((uint)out2 & 1) != 0) && (toread != CONCAT44(iVar4,pBVar9))) &&\n                 (PTR_opt_000b746c[0x16b] != '\0')) {\n                debug_logprintf(pcVar8);\n              }\n            }\n            else if (iVar14 == 2) goto LAB_000511f4;\n            in_stack_fffffee0 = (double)CONCAT44(&skip,&sum_written);\n            pFVar15 = (FILE *)(0x8000 - gzstream.avail_out);\n            pBVar13 = local_100;\n            pFVar17 = (FILE *)(*pcVar19)(out,0);\n            dVar24 = (double)CONCAT44(pBVar13,pFVar15);\n            if ((int)pFVar17 < 0) goto LAB_00051040;\n          } while (gzstream.avail_out == 0);\n        }\n        if (uVar3 != 0) {\n          pBVar9 = local_f0 + -(int)pFVar20;\n          iVar18 = (iVar18 - ((int)pFVar20 >> 0x1f)) - (uint)(local_f0 < pBVar9);\n          local_f0 = pBVar9;\n          if (iVar18 == 0 && pBVar9 == (Bytef *)0x0) {\n            pcVar8 = fd_read_line(fd);\n            dVar23 = (double)CONCAT44(pBVar13,pFVar15);\n            if (pcVar8 == (char *)0x0) {\n              pFVar20 = (FILE *)0xffffffff;\n              goto LAB_000518d4;\n            }\n            if (in_stack_00000030 != (FILE *)0x0) {\n              pBVar13 = (Bytef *)(*(code *)PTR_strlen_000b7c94)(pcVar8);\n              pFVar15 = in_stack_00000030;\n              (*(code *)PTR_fwrite_000b7c24)(pcVar8,1);\n            }\n            (*(code *)PTR_free_000b7d34)(pcVar8);\n          }\n        }\nLAB_00051748:\n        dVar23 = (double)CONCAT44(pBVar13,pFVar15);\n        if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n          dVar24 = ptimer_read(local_104);\n          puVar22 = PTR_DAT_000b7720;\n          dVar24 = dVar24 - *(double *)(PTR_DAT_000b7720 + -0x2fe0);\n          pFVar17 = (FILE *)(pFVar20->_shortbuf + *(int *)(PTR_DAT_000b7720 + -0x2fe4) + -0x47);\n          iVar14 = (uint)(pFVar17 < pFVar20) +\n                   ((int)pFVar20 >> 0x1f) + *(int *)(PTR_DAT_000b7720 + -0x2fe8);\n          *(int *)(PTR_DAT_000b7720 + -0x2fe8) = iVar14;\n          *(FILE **)(puVar22 + -0x2fe4) = pFVar17;\n          dVar28 = (double)(*(code *)PTR___floatdidf_000b78f4)(iVar14,pFVar17);\n          dVar25 = (double)(*(code *)PTR___floatdidf_000b78f4)\n                                     (*(undefined4 *)(PTR_opt_000b746c + 0x158),\n                                      *(undefined4 *)(PTR_opt_000b746c + 0x15c));\n          dVar23 = (double)CONCAT44(pBVar13,pFVar15);\n          if (dVar24 < dVar28 / dVar25) {\n            dVar24 = (dVar28 / dVar25 - dVar24) + *(double *)(PTR_DAT_000b7720 + -0x2fd8);\n            if (dVar24 < dVar29) {\n              if (PTR_opt_000b746c[0x16b] != '\0') {\n                pcVar8 = number_to_static_string((wgint)in_stack_fffffee0);\n                in_stack_fffffee0 = (double)(ZEXT48(pcVar8) << 0x20);\n                dVar23 = dVar24 * *(double *)(puVar21 + -0x15d8);\n                debug_logprintf(PTR_DAT_000b758c + -0x1864);\n              }\n              goto LAB_0005175c;\n            }\n            in_f12_13 = dVar24;\n            if (PTR_opt_000b746c[0x16b] != '\0') {\n              pcVar8 = number_to_static_string((wgint)in_stack_fffffee0);\n              in_stack_fffffee0 = (double)(ZEXT48(pcVar8) << 0x20);\n              dVar23 = dVar24 * dVar26;\n              debug_logprintf(PTR_DAT_000b758c + -0x183c);\n              in_f12_13 = dVar24;\n            }\n            dVar28 = ptimer_read(local_104);\n            dVar24 = in_f12_13;\n            xsleep(in_f12_13);\n            dVar25 = ptimer_measure(local_104);\n            dVar24 = dVar24 - (dVar25 - dVar28);\n            if (dVar30 < dVar24) {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar21 + -0x2580);\n            }\n            else if (dVar31 <= dVar24) {\n              *(double *)(PTR_DAT_000b7720 + -0x2fd8) = dVar24;\n            }\n            else {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar21 + -0x15d0);\n            }\n          }\n          puVar22 = PTR_DAT_000b7720;\n          *(undefined4 *)(PTR_DAT_000b7720 + -0x2fe4) = 0;\n          *(undefined4 *)(puVar22 + -0x2fe8) = 0;\n          dVar24 = ptimer_read(local_104);\n          *(double *)(puVar22 + -0x2fe0) = dVar24;\n        }\n      }\n      else {\n        if (*(double *)(PTR_opt_000b746c + 0x120) == 0.0) {\n          dVar28 = *(double *)(PTR_DAT_000b758c + -0x15e0);\n        }\n        else {\n          dVar23 = ptimer_read(local_104);\n          pFVar15 = SUB84(dVar24,0);\n          if (*(double *)(PTR_opt_000b746c + 0x120) <\n              (dVar23 - dVar27) + *(double *)(PTR_DAT_000b758c + -0x15e0)) {\n            dVar28 = *(double *)(PTR_opt_000b746c + 0x120) - (dVar23 - dVar27);\n            if (dVar28 < 0.0) {\n              puVar7 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n              *puVar7 = 0x91;\n              pFVar17 = (FILE *)0xffffffff;\n              goto LAB_00051040;\n            }\n          }\n          else {\n            dVar28 = *(double *)(PTR_DAT_000b758c + -0x15e0);\n          }\n        }\n        pFVar20 = (FILE *)(*(code *)PTR_fd_read_000b7770)(fd,buf);\n        in_stack_fffffee0 = dVar28;\n        if (-1 < (int)pFVar20) goto LAB_000516fc;\n        piVar11 = (int *)(*(code *)PTR___errno_location_000b7eb8)();\n        dVar23 = (double)CONCAT44(pBVar13,pFVar15);\n        in_stack_fffffee0 = dVar28;\n        if (*piVar11 != 0x91) goto LAB_000518d4;\n        if (progress != (void *)0x0) {\n          ptimer_measure(local_104);\n          iVar2 = FUN_00051744();\n          return iVar2;\n        }\n        if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n          ptimer_measure(local_104);\n          iVar2 = FUN_00051744();\n          return iVar2;\n        }\n        pFVar20 = (FILE *)0x0;\nLAB_00051720:\n        dVar23 = (double)CONCAT44(pBVar13,pFVar15);\n        if (flags != 0) {\n          ptimer_measure(local_104);\n          if (0 < (int)pFVar20) goto LAB_000515b0;\n          goto LAB_00051748;\n        }\n        if (0 < (int)pFVar20) goto LAB_000515c4;\n      }\nLAB_0005175c:\n      if (progress != (void *)0x0) {\n        in_stack_fffffee0 = ptimer_read(local_104);\n        iVar14 = (int)pFVar20 >> 0x1f;\n        pFVar17 = pFVar20;\n        progress_update(progress,(wgint)in_stack_fffffee0,in_f12_13);\n        dVar23 = (double)CONCAT44(iVar14,pFVar17);\n      }\n    }" { (expression_statement "uVar5 = SUB84(dVar23,0);" (assignment_expression "uVar5 = SUB84(dVar23,0)" identifier = (call_expression "SUB84(dVar23,0)" identifier (argument_list "(dVar23,0)" ( identifier , number_literal )))) ;) (expression_statement "iVar14 = (int)local_e0 >> 0x1f;" (assignment_expression "iVar14 = (int)local_e0 >> 0x1f" identifier = (binary_expression "(int)local_e0 >> 0x1f" (cast_expression "(int)local_e0" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (expression_statement "pBVar9 = local_e0;" (assignment_expression "pBVar9 = local_e0" identifier = identifier) ;) (if_statement "if (((uint)out2 & 1) == 0) break;" if (parenthesized_expression "(((uint)out2 & 1) == 0)" ( (binary_expression "((uint)out2 & 1) == 0" (parenthesized_expression "((uint)out2 & 1)" ( (binary_expression "(uint)out2 & 1" (cast_expression "(uint)out2" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) == number_literal) )) (break_statement "break;" break ;)) (if_statement "if (toread._0_4_ <= iVar4) {\n        if (toread._0_4_ != iVar4) goto LAB_000518d4;\n        if (local_fc < toread._4_4_) goto LAB_000517b0;\n        bVar1 = (int)pFVar20 < 0;\n        dVar24 = dVar23;\n        goto LAB_000518d8;\n      }" if (parenthesized_expression "(toread._0_4_ <= iVar4)" ( (binary_expression "toread._0_4_ <= iVar4" (field_expression "toread._0_4_" identifier . field_identifier) <= identifier) )) (compound_statement "{\n        if (toread._0_4_ != iVar4) goto LAB_000518d4;\n        if (local_fc < toread._4_4_) goto LAB_000517b0;\n        bVar1 = (int)pFVar20 < 0;\n        dVar24 = dVar23;\n        goto LAB_000518d8;\n      }" { (if_statement "if (toread._0_4_ != iVar4) goto LAB_000518d4;" if (parenthesized_expression "(toread._0_4_ != iVar4)" ( (binary_expression "toread._0_4_ != iVar4" (field_expression "toread._0_4_" identifier . field_identifier) != identifier) )) (goto_statement "goto LAB_000518d4;" goto statement_identifier ;)) (if_statement "if (local_fc < toread._4_4_) goto LAB_000517b0;" if (parenthesized_expression "(local_fc < toread._4_4_)" ( (binary_expression "local_fc < toread._4_4_" identifier < (field_expression "toread._4_4_" identifier . field_identifier)) )) (goto_statement "goto LAB_000517b0;" goto statement_identifier ;)) (expression_statement "bVar1 = (int)pFVar20 < 0;" (assignment_expression "bVar1 = (int)pFVar20 < 0" identifier = (binary_expression "(int)pFVar20 < 0" (cast_expression "(int)pFVar20" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal)) ;) (expression_statement "dVar24 = dVar23;" (assignment_expression "dVar24 = dVar23" identifier = identifier) ;) (goto_statement "goto LAB_000518d8;" goto statement_identifier ;) })) (labeled_statement "LAB_000517b0:\n      dVar28 = *(double *)(PTR_opt_000b746c + 0x120);" statement_identifier : (expression_statement "dVar28 = *(double *)(PTR_opt_000b746c + 0x120);" (assignment_expression "dVar28 = *(double *)(PTR_opt_000b746c + 0x120)" identifier = (pointer_expression "*(double *)(PTR_opt_000b746c + 0x120)" * (cast_expression "(double *)(PTR_opt_000b746c + 0x120)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_opt_000b746c + 0x120)" ( (binary_expression "PTR_opt_000b746c + 0x120" identifier + number_literal) ))))) ;)) (if_statement "if (uVar3 != 0) goto LAB_00051820;" if (parenthesized_expression "(uVar3 != 0)" ( (binary_expression "uVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00051820;" goto statement_identifier ;)) (expression_statement "pBVar13 = toread._4_4_ + -(int)local_fc;" (assignment_expression "pBVar13 = toread._4_4_ + -(int)local_fc" identifier = (binary_expression "toread._4_4_ + -(int)local_fc" (field_expression "toread._4_4_" identifier . field_identifier) + (unary_expression "-(int)local_fc" - (cast_expression "(int)local_fc" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (expression_statement "iVar10 = (toread._0_4_ - iVar4) - (uint)(toread._4_4_ < pBVar13);" (assignment_expression "iVar10 = (toread._0_4_ - iVar4) - (uint)(toread._4_4_ < pBVar13)" identifier = (binary_expression "(toread._0_4_ - iVar4) - (uint)(toread._4_4_ < pBVar13)" (parenthesized_expression "(toread._0_4_ - iVar4)" ( (binary_expression "toread._0_4_ - iVar4" (field_expression "toread._0_4_" identifier . field_identifier) - identifier) )) - (call_expression "(uint)(toread._4_4_ < pBVar13)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(toread._4_4_ < pBVar13)" ( (binary_expression "toread._4_4_ < pBVar13" (field_expression "toread._4_4_" identifier . field_identifier) < identifier) ))))) ;) (expression_statement "dVar23 = (double)CONCAT44(iVar10,uVar5);" (assignment_expression "dVar23 = (double)CONCAT44(iVar10,uVar5)" identifier = (cast_expression "(double)CONCAT44(iVar10,uVar5)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(iVar10,uVar5)" identifier (argument_list "(iVar10,uVar5)" ( identifier , identifier ))))) ;) (if_statement "if ((iVar14 < iVar10) ||\n         ((dVar24 = (double)CONCAT44(iVar10,uVar5), iVar10 == iVar14 &&\n          (dVar24 = (double)CONCAT44(iVar10,uVar5), local_e0 < pBVar13)))) goto LAB_00051864;" if (parenthesized_expression "((iVar14 < iVar10) ||\n         ((dVar24 = (double)CONCAT44(iVar10,uVar5), iVar10 == iVar14 &&\n          (dVar24 = (double)CONCAT44(iVar10,uVar5), local_e0 < pBVar13))))" ( (binary_expression "(iVar14 < iVar10) ||\n         ((dVar24 = (double)CONCAT44(iVar10,uVar5), iVar10 == iVar14 &&\n          (dVar24 = (double)CONCAT44(iVar10,uVar5), local_e0 < pBVar13)))" (parenthesized_expression "(iVar14 < iVar10)" ( (binary_expression "iVar14 < iVar10" identifier < identifier) )) || (parenthesized_expression "((dVar24 = (double)CONCAT44(iVar10,uVar5), iVar10 == iVar14 &&\n          (dVar24 = (double)CONCAT44(iVar10,uVar5), local_e0 < pBVar13)))" ( (parenthesized_expression "(dVar24 = (double)CONCAT44(iVar10,uVar5), iVar10 == iVar14 &&\n          (dVar24 = (double)CONCAT44(iVar10,uVar5), local_e0 < pBVar13))" ( (comma_expression "dVar24 = (double)CONCAT44(iVar10,uVar5), iVar10 == iVar14 &&\n          (dVar24 = (double)CONCAT44(iVar10,uVar5), local_e0 < pBVar13)" (assignment_expression "dVar24 = (double)CONCAT44(iVar10,uVar5)" identifier = (cast_expression "(double)CONCAT44(iVar10,uVar5)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(iVar10,uVar5)" identifier (argument_list "(iVar10,uVar5)" ( identifier , identifier ))))) , (binary_expression "iVar10 == iVar14 &&\n          (dVar24 = (double)CONCAT44(iVar10,uVar5), local_e0 < pBVar13)" (binary_expression "iVar10 == iVar14" identifier == identifier) && (parenthesized_expression "(dVar24 = (double)CONCAT44(iVar10,uVar5), local_e0 < pBVar13)" ( (comma_expression "dVar24 = (double)CONCAT44(iVar10,uVar5), local_e0 < pBVar13" (assignment_expression "dVar24 = (double)CONCAT44(iVar10,uVar5)" identifier = (cast_expression "(double)CONCAT44(iVar10,uVar5)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(iVar10,uVar5)" identifier (argument_list "(iVar10,uVar5)" ( identifier , identifier ))))) , (binary_expression "local_e0 < pBVar13" identifier < identifier)) )))) )) ))) )) (goto_statement "goto LAB_00051864;" goto statement_identifier ;)) (labeled_statement "LAB_00051868:\n      pFVar15 = SUB84(dVar24,0);" statement_identifier : (expression_statement "pFVar15 = SUB84(dVar24,0);" (assignment_expression "pFVar15 = SUB84(dVar24,0)" identifier = (call_expression "SUB84(dVar24,0)" identifier (argument_list "(dVar24,0)" ( identifier , number_literal )))) ;)) (if_statement "if (local_e4 == 0) {\n        pFVar20 = (FILE *)(*(code *)PTR_fd_read_000b7770)(fd,buf);\n        in_stack_fffffee0 = dVar28;\nLAB_000516fc:\n        bVar1 = (int)pFVar20 < 0;\n        dVar24 = (double)CONCAT44(pBVar13,pFVar15);\n        if ((int)pFVar20 < 1) goto LAB_000518d8;\n        if (progress == (void *)0x0) {\n          if (*(int *)(PTR_opt_000b746c + 0x158) == 0 && *(int *)(PTR_opt_000b746c + 0x15c) == 0)\n          goto LAB_00051720;\n          ptimer_measure(local_104);\n        }\n        else {\n          ptimer_measure(local_104);\n        }\nLAB_000515b0:\n        dVar27 = ptimer_read(local_104);\nLAB_000515c4:\n        pBVar9 = local_fc + (int)pFVar20;\n        iVar4 = (uint)(pBVar9 < local_fc) + iVar4 + ((int)pFVar20 >> 0x1f);\n        pBVar13 = buf;\n        pFVar15 = pFVar20;\n        local_fc = pBVar9;\n        if (local_100 == (Bytef *)0x0) {\n          in_stack_fffffee0 = (double)CONCAT44(&skip,&sum_written);\n          pFVar17 = (FILE *)write_data(out,in_stack_00000030,(char *)buf,(int)pFVar20,&skip,\n                                       &sum_written);\n          dVar24 = (double)CONCAT44(pBVar13,pFVar15);\n          if ((int)pFVar17 < 0) goto LAB_00051040;\n        }\n        else {\n          in_stack_fffffee0 = 0.0;\n          pFVar17 = (FILE *)write_data((FILE *)0x0,in_stack_00000030,(char *)buf,(int)pFVar20,\n                                       (wgint *)0x0,(wgint *)0x0);\n          dVar24 = (double)CONCAT44(pBVar13,pFVar15);\n          if ((int)pFVar17 < 0) goto LAB_00051040;\n          pcVar8 = PTR_DAT_000b758c + -0x1898;\n          pcVar19 = (code *)(PTR_LAB_000b78e4 + 0x3a4);\n          gzstream.next_in = buf;\n          gzstream.avail_in = (uInt)pFVar20;\n          do {\n            gzstream.avail_out = 0x8000;\n            gzstream.next_out = local_100;\n            iVar14 = (*(code *)PTR_inflate_000b7d40)(&gzstream,0);\n            if (iVar14 == -3) {\nLAB_000511f4:\n              puVar7 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n              dVar24 = (double)CONCAT44(pBVar13,pFVar15);\n              *puVar7 = 0x16;\n              pFVar17 = (FILE *)0xffffffff;\n              goto LAB_00051040;\n            }\n            if (iVar14 < -2) {\n              if (iVar14 == -4) {\n                puVar7 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n                dVar24 = (double)CONCAT44(pBVar13,pFVar15);\n                *puVar7 = 0xc;\n                pFVar17 = (FILE *)0xffffffff;\n                goto LAB_00051040;\n              }\n            }\n            else if (iVar14 == 1) {\n              if (((((uint)out2 & 1) != 0) && (toread != CONCAT44(iVar4,pBVar9))) &&\n                 (PTR_opt_000b746c[0x16b] != '\0')) {\n                debug_logprintf(pcVar8);\n              }\n            }\n            else if (iVar14 == 2) goto LAB_000511f4;\n            in_stack_fffffee0 = (double)CONCAT44(&skip,&sum_written);\n            pFVar15 = (FILE *)(0x8000 - gzstream.avail_out);\n            pBVar13 = local_100;\n            pFVar17 = (FILE *)(*pcVar19)(out,0);\n            dVar24 = (double)CONCAT44(pBVar13,pFVar15);\n            if ((int)pFVar17 < 0) goto LAB_00051040;\n          } while (gzstream.avail_out == 0);\n        }\n        if (uVar3 != 0) {\n          pBVar9 = local_f0 + -(int)pFVar20;\n          iVar18 = (iVar18 - ((int)pFVar20 >> 0x1f)) - (uint)(local_f0 < pBVar9);\n          local_f0 = pBVar9;\n          if (iVar18 == 0 && pBVar9 == (Bytef *)0x0) {\n            pcVar8 = fd_read_line(fd);\n            dVar23 = (double)CONCAT44(pBVar13,pFVar15);\n            if (pcVar8 == (char *)0x0) {\n              pFVar20 = (FILE *)0xffffffff;\n              goto LAB_000518d4;\n            }\n            if (in_stack_00000030 != (FILE *)0x0) {\n              pBVar13 = (Bytef *)(*(code *)PTR_strlen_000b7c94)(pcVar8);\n              pFVar15 = in_stack_00000030;\n              (*(code *)PTR_fwrite_000b7c24)(pcVar8,1);\n            }\n            (*(code *)PTR_free_000b7d34)(pcVar8);\n          }\n        }\nLAB_00051748:\n        dVar23 = (double)CONCAT44(pBVar13,pFVar15);\n        if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n          dVar24 = ptimer_read(local_104);\n          puVar22 = PTR_DAT_000b7720;\n          dVar24 = dVar24 - *(double *)(PTR_DAT_000b7720 + -0x2fe0);\n          pFVar17 = (FILE *)(pFVar20->_shortbuf + *(int *)(PTR_DAT_000b7720 + -0x2fe4) + -0x47);\n          iVar14 = (uint)(pFVar17 < pFVar20) +\n                   ((int)pFVar20 >> 0x1f) + *(int *)(PTR_DAT_000b7720 + -0x2fe8);\n          *(int *)(PTR_DAT_000b7720 + -0x2fe8) = iVar14;\n          *(FILE **)(puVar22 + -0x2fe4) = pFVar17;\n          dVar28 = (double)(*(code *)PTR___floatdidf_000b78f4)(iVar14,pFVar17);\n          dVar25 = (double)(*(code *)PTR___floatdidf_000b78f4)\n                                     (*(undefined4 *)(PTR_opt_000b746c + 0x158),\n                                      *(undefined4 *)(PTR_opt_000b746c + 0x15c));\n          dVar23 = (double)CONCAT44(pBVar13,pFVar15);\n          if (dVar24 < dVar28 / dVar25) {\n            dVar24 = (dVar28 / dVar25 - dVar24) + *(double *)(PTR_DAT_000b7720 + -0x2fd8);\n            if (dVar24 < dVar29) {\n              if (PTR_opt_000b746c[0x16b] != '\0') {\n                pcVar8 = number_to_static_string((wgint)in_stack_fffffee0);\n                in_stack_fffffee0 = (double)(ZEXT48(pcVar8) << 0x20);\n                dVar23 = dVar24 * *(double *)(puVar21 + -0x15d8);\n                debug_logprintf(PTR_DAT_000b758c + -0x1864);\n              }\n              goto LAB_0005175c;\n            }\n            in_f12_13 = dVar24;\n            if (PTR_opt_000b746c[0x16b] != '\0') {\n              pcVar8 = number_to_static_string((wgint)in_stack_fffffee0);\n              in_stack_fffffee0 = (double)(ZEXT48(pcVar8) << 0x20);\n              dVar23 = dVar24 * dVar26;\n              debug_logprintf(PTR_DAT_000b758c + -0x183c);\n              in_f12_13 = dVar24;\n            }\n            dVar28 = ptimer_read(local_104);\n            dVar24 = in_f12_13;\n            xsleep(in_f12_13);\n            dVar25 = ptimer_measure(local_104);\n            dVar24 = dVar24 - (dVar25 - dVar28);\n            if (dVar30 < dVar24) {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar21 + -0x2580);\n            }\n            else if (dVar31 <= dVar24) {\n              *(double *)(PTR_DAT_000b7720 + -0x2fd8) = dVar24;\n            }\n            else {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar21 + -0x15d0);\n            }\n          }\n          puVar22 = PTR_DAT_000b7720;\n          *(undefined4 *)(PTR_DAT_000b7720 + -0x2fe4) = 0;\n          *(undefined4 *)(puVar22 + -0x2fe8) = 0;\n          dVar24 = ptimer_read(local_104);\n          *(double *)(puVar22 + -0x2fe0) = dVar24;\n        }\n      }\n      else {\n        if (*(double *)(PTR_opt_000b746c + 0x120) == 0.0) {\n          dVar28 = *(double *)(PTR_DAT_000b758c + -0x15e0);\n        }\n        else {\n          dVar23 = ptimer_read(local_104);\n          pFVar15 = SUB84(dVar24,0);\n          if (*(double *)(PTR_opt_000b746c + 0x120) <\n              (dVar23 - dVar27) + *(double *)(PTR_DAT_000b758c + -0x15e0)) {\n            dVar28 = *(double *)(PTR_opt_000b746c + 0x120) - (dVar23 - dVar27);\n            if (dVar28 < 0.0) {\n              puVar7 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n              *puVar7 = 0x91;\n              pFVar17 = (FILE *)0xffffffff;\n              goto LAB_00051040;\n            }\n          }\n          else {\n            dVar28 = *(double *)(PTR_DAT_000b758c + -0x15e0);\n          }\n        }\n        pFVar20 = (FILE *)(*(code *)PTR_fd_read_000b7770)(fd,buf);\n        in_stack_fffffee0 = dVar28;\n        if (-1 < (int)pFVar20) goto LAB_000516fc;\n        piVar11 = (int *)(*(code *)PTR___errno_location_000b7eb8)();\n        dVar23 = (double)CONCAT44(pBVar13,pFVar15);\n        in_stack_fffffee0 = dVar28;\n        if (*piVar11 != 0x91) goto LAB_000518d4;\n        if (progress != (void *)0x0) {\n          ptimer_measure(local_104);\n          iVar2 = FUN_00051744();\n          return iVar2;\n        }\n        if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n          ptimer_measure(local_104);\n          iVar2 = FUN_00051744();\n          return iVar2;\n        }\n        pFVar20 = (FILE *)0x0;\nLAB_00051720:\n        dVar23 = (double)CONCAT44(pBVar13,pFVar15);\n        if (flags != 0) {\n          ptimer_measure(local_104);\n          if (0 < (int)pFVar20) goto LAB_000515b0;\n          goto LAB_00051748;\n        }\n        if (0 < (int)pFVar20) goto LAB_000515c4;\n      }" if (parenthesized_expression "(local_e4 == 0)" ( (binary_expression "local_e4 == 0" identifier == number_literal) )) (compound_statement "{\n        pFVar20 = (FILE *)(*(code *)PTR_fd_read_000b7770)(fd,buf);\n        in_stack_fffffee0 = dVar28;\nLAB_000516fc:\n        bVar1 = (int)pFVar20 < 0;\n        dVar24 = (double)CONCAT44(pBVar13,pFVar15);\n        if ((int)pFVar20 < 1) goto LAB_000518d8;\n        if (progress == (void *)0x0) {\n          if (*(int *)(PTR_opt_000b746c + 0x158) == 0 && *(int *)(PTR_opt_000b746c + 0x15c) == 0)\n          goto LAB_00051720;\n          ptimer_measure(local_104);\n        }\n        else {\n          ptimer_measure(local_104);\n        }\nLAB_000515b0:\n        dVar27 = ptimer_read(local_104);\nLAB_000515c4:\n        pBVar9 = local_fc + (int)pFVar20;\n        iVar4 = (uint)(pBVar9 < local_fc) + iVar4 + ((int)pFVar20 >> 0x1f);\n        pBVar13 = buf;\n        pFVar15 = pFVar20;\n        local_fc = pBVar9;\n        if (local_100 == (Bytef *)0x0) {\n          in_stack_fffffee0 = (double)CONCAT44(&skip,&sum_written);\n          pFVar17 = (FILE *)write_data(out,in_stack_00000030,(char *)buf,(int)pFVar20,&skip,\n                                       &sum_written);\n          dVar24 = (double)CONCAT44(pBVar13,pFVar15);\n          if ((int)pFVar17 < 0) goto LAB_00051040;\n        }\n        else {\n          in_stack_fffffee0 = 0.0;\n          pFVar17 = (FILE *)write_data((FILE *)0x0,in_stack_00000030,(char *)buf,(int)pFVar20,\n                                       (wgint *)0x0,(wgint *)0x0);\n          dVar24 = (double)CONCAT44(pBVar13,pFVar15);\n          if ((int)pFVar17 < 0) goto LAB_00051040;\n          pcVar8 = PTR_DAT_000b758c + -0x1898;\n          pcVar19 = (code *)(PTR_LAB_000b78e4 + 0x3a4);\n          gzstream.next_in = buf;\n          gzstream.avail_in = (uInt)pFVar20;\n          do {\n            gzstream.avail_out = 0x8000;\n            gzstream.next_out = local_100;\n            iVar14 = (*(code *)PTR_inflate_000b7d40)(&gzstream,0);\n            if (iVar14 == -3) {\nLAB_000511f4:\n              puVar7 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n              dVar24 = (double)CONCAT44(pBVar13,pFVar15);\n              *puVar7 = 0x16;\n              pFVar17 = (FILE *)0xffffffff;\n              goto LAB_00051040;\n            }\n            if (iVar14 < -2) {\n              if (iVar14 == -4) {\n                puVar7 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n                dVar24 = (double)CONCAT44(pBVar13,pFVar15);\n                *puVar7 = 0xc;\n                pFVar17 = (FILE *)0xffffffff;\n                goto LAB_00051040;\n              }\n            }\n            else if (iVar14 == 1) {\n              if (((((uint)out2 & 1) != 0) && (toread != CONCAT44(iVar4,pBVar9))) &&\n                 (PTR_opt_000b746c[0x16b] != '\0')) {\n                debug_logprintf(pcVar8);\n              }\n            }\n            else if (iVar14 == 2) goto LAB_000511f4;\n            in_stack_fffffee0 = (double)CONCAT44(&skip,&sum_written);\n            pFVar15 = (FILE *)(0x8000 - gzstream.avail_out);\n            pBVar13 = local_100;\n            pFVar17 = (FILE *)(*pcVar19)(out,0);\n            dVar24 = (double)CONCAT44(pBVar13,pFVar15);\n            if ((int)pFVar17 < 0) goto LAB_00051040;\n          } while (gzstream.avail_out == 0);\n        }\n        if (uVar3 != 0) {\n          pBVar9 = local_f0 + -(int)pFVar20;\n          iVar18 = (iVar18 - ((int)pFVar20 >> 0x1f)) - (uint)(local_f0 < pBVar9);\n          local_f0 = pBVar9;\n          if (iVar18 == 0 && pBVar9 == (Bytef *)0x0) {\n            pcVar8 = fd_read_line(fd);\n            dVar23 = (double)CONCAT44(pBVar13,pFVar15);\n            if (pcVar8 == (char *)0x0) {\n              pFVar20 = (FILE *)0xffffffff;\n              goto LAB_000518d4;\n            }\n            if (in_stack_00000030 != (FILE *)0x0) {\n              pBVar13 = (Bytef *)(*(code *)PTR_strlen_000b7c94)(pcVar8);\n              pFVar15 = in_stack_00000030;\n              (*(code *)PTR_fwrite_000b7c24)(pcVar8,1);\n            }\n            (*(code *)PTR_free_000b7d34)(pcVar8);\n          }\n        }\nLAB_00051748:\n        dVar23 = (double)CONCAT44(pBVar13,pFVar15);\n        if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n          dVar24 = ptimer_read(local_104);\n          puVar22 = PTR_DAT_000b7720;\n          dVar24 = dVar24 - *(double *)(PTR_DAT_000b7720 + -0x2fe0);\n          pFVar17 = (FILE *)(pFVar20->_shortbuf + *(int *)(PTR_DAT_000b7720 + -0x2fe4) + -0x47);\n          iVar14 = (uint)(pFVar17 < pFVar20) +\n                   ((int)pFVar20 >> 0x1f) + *(int *)(PTR_DAT_000b7720 + -0x2fe8);\n          *(int *)(PTR_DAT_000b7720 + -0x2fe8) = iVar14;\n          *(FILE **)(puVar22 + -0x2fe4) = pFVar17;\n          dVar28 = (double)(*(code *)PTR___floatdidf_000b78f4)(iVar14,pFVar17);\n          dVar25 = (double)(*(code *)PTR___floatdidf_000b78f4)\n                                     (*(undefined4 *)(PTR_opt_000b746c + 0x158),\n                                      *(undefined4 *)(PTR_opt_000b746c + 0x15c));\n          dVar23 = (double)CONCAT44(pBVar13,pFVar15);\n          if (dVar24 < dVar28 / dVar25) {\n            dVar24 = (dVar28 / dVar25 - dVar24) + *(double *)(PTR_DAT_000b7720 + -0x2fd8);\n            if (dVar24 < dVar29) {\n              if (PTR_opt_000b746c[0x16b] != '\0') {\n                pcVar8 = number_to_static_string((wgint)in_stack_fffffee0);\n                in_stack_fffffee0 = (double)(ZEXT48(pcVar8) << 0x20);\n                dVar23 = dVar24 * *(double *)(puVar21 + -0x15d8);\n                debug_logprintf(PTR_DAT_000b758c + -0x1864);\n              }\n              goto LAB_0005175c;\n            }\n            in_f12_13 = dVar24;\n            if (PTR_opt_000b746c[0x16b] != '\0') {\n              pcVar8 = number_to_static_string((wgint)in_stack_fffffee0);\n              in_stack_fffffee0 = (double)(ZEXT48(pcVar8) << 0x20);\n              dVar23 = dVar24 * dVar26;\n              debug_logprintf(PTR_DAT_000b758c + -0x183c);\n              in_f12_13 = dVar24;\n            }\n            dVar28 = ptimer_read(local_104);\n            dVar24 = in_f12_13;\n            xsleep(in_f12_13);\n            dVar25 = ptimer_measure(local_104);\n            dVar24 = dVar24 - (dVar25 - dVar28);\n            if (dVar30 < dVar24) {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar21 + -0x2580);\n            }\n            else if (dVar31 <= dVar24) {\n              *(double *)(PTR_DAT_000b7720 + -0x2fd8) = dVar24;\n            }\n            else {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar21 + -0x15d0);\n            }\n          }\n          puVar22 = PTR_DAT_000b7720;\n          *(undefined4 *)(PTR_DAT_000b7720 + -0x2fe4) = 0;\n          *(undefined4 *)(puVar22 + -0x2fe8) = 0;\n          dVar24 = ptimer_read(local_104);\n          *(double *)(puVar22 + -0x2fe0) = dVar24;\n        }\n      }" { (expression_statement "pFVar20 = (FILE *)(*(code *)PTR_fd_read_000b7770)(fd,buf);" (assignment_expression "pFVar20 = (FILE *)(*(code *)PTR_fd_read_000b7770)(fd,buf)" identifier = (cast_expression "(FILE *)(*(code *)PTR_fd_read_000b7770)(fd,buf)" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_fd_read_000b7770)(fd,buf)" (parenthesized_expression "(*(code *)PTR_fd_read_000b7770)" ( (pointer_expression "*(code *)PTR_fd_read_000b7770" * (cast_expression "(code *)PTR_fd_read_000b7770" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(fd,buf)" ( identifier , identifier ))))) ;) (expression_statement "in_stack_fffffee0 = dVar28;" (assignment_expression "in_stack_fffffee0 = dVar28" identifier = identifier) ;) (labeled_statement "LAB_000516fc:\n        bVar1 = (int)pFVar20 < 0;" statement_identifier : (expression_statement "bVar1 = (int)pFVar20 < 0;" (assignment_expression "bVar1 = (int)pFVar20 < 0" identifier = (binary_expression "(int)pFVar20 < 0" (cast_expression "(int)pFVar20" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal)) ;)) (expression_statement "dVar24 = (double)CONCAT44(pBVar13,pFVar15);" (assignment_expression "dVar24 = (double)CONCAT44(pBVar13,pFVar15)" identifier = (cast_expression "(double)CONCAT44(pBVar13,pFVar15)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(pBVar13,pFVar15)" identifier (argument_list "(pBVar13,pFVar15)" ( identifier , identifier ))))) ;) (if_statement "if ((int)pFVar20 < 1) goto LAB_000518d8;" if (parenthesized_expression "((int)pFVar20 < 1)" ( (binary_expression "(int)pFVar20 < 1" (cast_expression "(int)pFVar20" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_000518d8;" goto statement_identifier ;)) (if_statement "if (progress == (void *)0x0) {\n          if (*(int *)(PTR_opt_000b746c + 0x158) == 0 && *(int *)(PTR_opt_000b746c + 0x15c) == 0)\n          goto LAB_00051720;\n          ptimer_measure(local_104);\n        }\n        else {\n          ptimer_measure(local_104);\n        }" if (parenthesized_expression "(progress == (void *)0x0)" ( (binary_expression "progress == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          if (*(int *)(PTR_opt_000b746c + 0x158) == 0 && *(int *)(PTR_opt_000b746c + 0x15c) == 0)\n          goto LAB_00051720;\n          ptimer_measure(local_104);\n        }" { (if_statement "if (*(int *)(PTR_opt_000b746c + 0x158) == 0 && *(int *)(PTR_opt_000b746c + 0x15c) == 0)\n          goto LAB_00051720;" if (parenthesized_expression "(*(int *)(PTR_opt_000b746c + 0x158) == 0 && *(int *)(PTR_opt_000b746c + 0x15c) == 0)" ( (binary_expression "*(int *)(PTR_opt_000b746c + 0x158) == 0 && *(int *)(PTR_opt_000b746c + 0x15c) == 0" (binary_expression "*(int *)(PTR_opt_000b746c + 0x158) == 0" (pointer_expression "*(int *)(PTR_opt_000b746c + 0x158)" * (cast_expression "(int *)(PTR_opt_000b746c + 0x158)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_opt_000b746c + 0x158)" ( (binary_expression "PTR_opt_000b746c + 0x158" identifier + number_literal) )))) == number_literal) && (binary_expression "*(int *)(PTR_opt_000b746c + 0x15c) == 0" (pointer_expression "*(int *)(PTR_opt_000b746c + 0x15c)" * (cast_expression "(int *)(PTR_opt_000b746c + 0x15c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_opt_000b746c + 0x15c)" ( (binary_expression "PTR_opt_000b746c + 0x15c" identifier + number_literal) )))) == number_literal)) )) (goto_statement "goto LAB_00051720;" goto statement_identifier ;)) (expression_statement "ptimer_measure(local_104);" (call_expression "ptimer_measure(local_104)" identifier (argument_list "(local_104)" ( identifier ))) ;) }) (else_clause "else {\n          ptimer_measure(local_104);\n        }" else (compound_statement "{\n          ptimer_measure(local_104);\n        }" { (expression_statement "ptimer_measure(local_104);" (call_expression "ptimer_measure(local_104)" identifier (argument_list "(local_104)" ( identifier ))) ;) }))) (labeled_statement "LAB_000515b0:\n        dVar27 = ptimer_read(local_104);" statement_identifier : (expression_statement "dVar27 = ptimer_read(local_104);" (assignment_expression "dVar27 = ptimer_read(local_104)" identifier = (call_expression "ptimer_read(local_104)" identifier (argument_list "(local_104)" ( identifier )))) ;)) (labeled_statement "LAB_000515c4:\n        pBVar9 = local_fc + (int)pFVar20;" statement_identifier : (expression_statement "pBVar9 = local_fc + (int)pFVar20;" (assignment_expression "pBVar9 = local_fc + (int)pFVar20" identifier = (binary_expression "local_fc + (int)pFVar20" identifier + (cast_expression "(int)pFVar20" ( (type_descriptor "int" primitive_type) ) identifier))) ;)) (expression_statement "iVar4 = (uint)(pBVar9 < local_fc) + iVar4 + ((int)pFVar20 >> 0x1f);" (assignment_expression "iVar4 = (uint)(pBVar9 < local_fc) + iVar4 + ((int)pFVar20 >> 0x1f)" identifier = (binary_expression "(uint)(pBVar9 < local_fc) + iVar4 + ((int)pFVar20 >> 0x1f)" (binary_expression "(uint)(pBVar9 < local_fc) + iVar4" (call_expression "(uint)(pBVar9 < local_fc)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pBVar9 < local_fc)" ( (binary_expression "pBVar9 < local_fc" identifier < identifier) ))) + identifier) + (parenthesized_expression "((int)pFVar20 >> 0x1f)" ( (binary_expression "(int)pFVar20 >> 0x1f" (cast_expression "(int)pFVar20" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )))) ;) (expression_statement "pBVar13 = buf;" (assignment_expression "pBVar13 = buf" identifier = identifier) ;) (expression_statement "pFVar15 = pFVar20;" (assignment_expression "pFVar15 = pFVar20" identifier = identifier) ;) (expression_statement "local_fc = pBVar9;" (assignment_expression "local_fc = pBVar9" identifier = identifier) ;) (if_statement "if (local_100 == (Bytef *)0x0) {\n          in_stack_fffffee0 = (double)CONCAT44(&skip,&sum_written);\n          pFVar17 = (FILE *)write_data(out,in_stack_00000030,(char *)buf,(int)pFVar20,&skip,\n                                       &sum_written);\n          dVar24 = (double)CONCAT44(pBVar13,pFVar15);\n          if ((int)pFVar17 < 0) goto LAB_00051040;\n        }\n        else {\n          in_stack_fffffee0 = 0.0;\n          pFVar17 = (FILE *)write_data((FILE *)0x0,in_stack_00000030,(char *)buf,(int)pFVar20,\n                                       (wgint *)0x0,(wgint *)0x0);\n          dVar24 = (double)CONCAT44(pBVar13,pFVar15);\n          if ((int)pFVar17 < 0) goto LAB_00051040;\n          pcVar8 = PTR_DAT_000b758c + -0x1898;\n          pcVar19 = (code *)(PTR_LAB_000b78e4 + 0x3a4);\n          gzstream.next_in = buf;\n          gzstream.avail_in = (uInt)pFVar20;\n          do {\n            gzstream.avail_out = 0x8000;\n            gzstream.next_out = local_100;\n            iVar14 = (*(code *)PTR_inflate_000b7d40)(&gzstream,0);\n            if (iVar14 == -3) {\nLAB_000511f4:\n              puVar7 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n              dVar24 = (double)CONCAT44(pBVar13,pFVar15);\n              *puVar7 = 0x16;\n              pFVar17 = (FILE *)0xffffffff;\n              goto LAB_00051040;\n            }\n            if (iVar14 < -2) {\n              if (iVar14 == -4) {\n                puVar7 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n                dVar24 = (double)CONCAT44(pBVar13,pFVar15);\n                *puVar7 = 0xc;\n                pFVar17 = (FILE *)0xffffffff;\n                goto LAB_00051040;\n              }\n            }\n            else if (iVar14 == 1) {\n              if (((((uint)out2 & 1) != 0) && (toread != CONCAT44(iVar4,pBVar9))) &&\n                 (PTR_opt_000b746c[0x16b] != '\0')) {\n                debug_logprintf(pcVar8);\n              }\n            }\n            else if (iVar14 == 2) goto LAB_000511f4;\n            in_stack_fffffee0 = (double)CONCAT44(&skip,&sum_written);\n            pFVar15 = (FILE *)(0x8000 - gzstream.avail_out);\n            pBVar13 = local_100;\n            pFVar17 = (FILE *)(*pcVar19)(out,0);\n            dVar24 = (double)CONCAT44(pBVar13,pFVar15);\n            if ((int)pFVar17 < 0) goto LAB_00051040;\n          } while (gzstream.avail_out == 0);\n        }" if (parenthesized_expression "(local_100 == (Bytef *)0x0)" ( (binary_expression "local_100 == (Bytef *)0x0" identifier == (cast_expression "(Bytef *)0x0" ( (type_descriptor "Bytef *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          in_stack_fffffee0 = (double)CONCAT44(&skip,&sum_written);\n          pFVar17 = (FILE *)write_data(out,in_stack_00000030,(char *)buf,(int)pFVar20,&skip,\n                                       &sum_written);\n          dVar24 = (double)CONCAT44(pBVar13,pFVar15);\n          if ((int)pFVar17 < 0) goto LAB_00051040;\n        }" { (expression_statement "in_stack_fffffee0 = (double)CONCAT44(&skip,&sum_written);" (assignment_expression "in_stack_fffffee0 = (double)CONCAT44(&skip,&sum_written)" identifier = (cast_expression "(double)CONCAT44(&skip,&sum_written)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(&skip,&sum_written)" identifier (argument_list "(&skip,&sum_written)" ( (pointer_expression "&skip" & identifier) , (pointer_expression "&sum_written" & identifier) ))))) ;) (expression_statement "pFVar17 = (FILE *)write_data(out,in_stack_00000030,(char *)buf,(int)pFVar20,&skip,\n                                       &sum_written);" (assignment_expression "pFVar17 = (FILE *)write_data(out,in_stack_00000030,(char *)buf,(int)pFVar20,&skip,\n                                       &sum_written)" identifier = (cast_expression "(FILE *)write_data(out,in_stack_00000030,(char *)buf,(int)pFVar20,&skip,\n                                       &sum_written)" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "write_data(out,in_stack_00000030,(char *)buf,(int)pFVar20,&skip,\n                                       &sum_written)" identifier (argument_list "(out,in_stack_00000030,(char *)buf,(int)pFVar20,&skip,\n                                       &sum_written)" ( identifier , identifier , (cast_expression "(char *)buf" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(int)pFVar20" ( (type_descriptor "int" primitive_type) ) identifier) , (pointer_expression "&skip" & identifier) , (pointer_expression "&sum_written" & identifier) ))))) ;) (expression_statement "dVar24 = (double)CONCAT44(pBVar13,pFVar15);" (assignment_expression "dVar24 = (double)CONCAT44(pBVar13,pFVar15)" identifier = (cast_expression "(double)CONCAT44(pBVar13,pFVar15)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(pBVar13,pFVar15)" identifier (argument_list "(pBVar13,pFVar15)" ( identifier , identifier ))))) ;) (if_statement "if ((int)pFVar17 < 0) goto LAB_00051040;" if (parenthesized_expression "((int)pFVar17 < 0)" ( (binary_expression "(int)pFVar17 < 0" (cast_expression "(int)pFVar17" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_00051040;" goto statement_identifier ;)) }) (else_clause "else {\n          in_stack_fffffee0 = 0.0;\n          pFVar17 = (FILE *)write_data((FILE *)0x0,in_stack_00000030,(char *)buf,(int)pFVar20,\n                                       (wgint *)0x0,(wgint *)0x0);\n          dVar24 = (double)CONCAT44(pBVar13,pFVar15);\n          if ((int)pFVar17 < 0) goto LAB_00051040;\n          pcVar8 = PTR_DAT_000b758c + -0x1898;\n          pcVar19 = (code *)(PTR_LAB_000b78e4 + 0x3a4);\n          gzstream.next_in = buf;\n          gzstream.avail_in = (uInt)pFVar20;\n          do {\n            gzstream.avail_out = 0x8000;\n            gzstream.next_out = local_100;\n            iVar14 = (*(code *)PTR_inflate_000b7d40)(&gzstream,0);\n            if (iVar14 == -3) {\nLAB_000511f4:\n              puVar7 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n              dVar24 = (double)CONCAT44(pBVar13,pFVar15);\n              *puVar7 = 0x16;\n              pFVar17 = (FILE *)0xffffffff;\n              goto LAB_00051040;\n            }\n            if (iVar14 < -2) {\n              if (iVar14 == -4) {\n                puVar7 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n                dVar24 = (double)CONCAT44(pBVar13,pFVar15);\n                *puVar7 = 0xc;\n                pFVar17 = (FILE *)0xffffffff;\n                goto LAB_00051040;\n              }\n            }\n            else if (iVar14 == 1) {\n              if (((((uint)out2 & 1) != 0) && (toread != CONCAT44(iVar4,pBVar9))) &&\n                 (PTR_opt_000b746c[0x16b] != '\0')) {\n                debug_logprintf(pcVar8);\n              }\n            }\n            else if (iVar14 == 2) goto LAB_000511f4;\n            in_stack_fffffee0 = (double)CONCAT44(&skip,&sum_written);\n            pFVar15 = (FILE *)(0x8000 - gzstream.avail_out);\n            pBVar13 = local_100;\n            pFVar17 = (FILE *)(*pcVar19)(out,0);\n            dVar24 = (double)CONCAT44(pBVar13,pFVar15);\n            if ((int)pFVar17 < 0) goto LAB_00051040;\n          } while (gzstream.avail_out == 0);\n        }" else (compound_statement "{\n          in_stack_fffffee0 = 0.0;\n          pFVar17 = (FILE *)write_data((FILE *)0x0,in_stack_00000030,(char *)buf,(int)pFVar20,\n                                       (wgint *)0x0,(wgint *)0x0);\n          dVar24 = (double)CONCAT44(pBVar13,pFVar15);\n          if ((int)pFVar17 < 0) goto LAB_00051040;\n          pcVar8 = PTR_DAT_000b758c + -0x1898;\n          pcVar19 = (code *)(PTR_LAB_000b78e4 + 0x3a4);\n          gzstream.next_in = buf;\n          gzstream.avail_in = (uInt)pFVar20;\n          do {\n            gzstream.avail_out = 0x8000;\n            gzstream.next_out = local_100;\n            iVar14 = (*(code *)PTR_inflate_000b7d40)(&gzstream,0);\n            if (iVar14 == -3) {\nLAB_000511f4:\n              puVar7 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n              dVar24 = (double)CONCAT44(pBVar13,pFVar15);\n              *puVar7 = 0x16;\n              pFVar17 = (FILE *)0xffffffff;\n              goto LAB_00051040;\n            }\n            if (iVar14 < -2) {\n              if (iVar14 == -4) {\n                puVar7 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n                dVar24 = (double)CONCAT44(pBVar13,pFVar15);\n                *puVar7 = 0xc;\n                pFVar17 = (FILE *)0xffffffff;\n                goto LAB_00051040;\n              }\n            }\n            else if (iVar14 == 1) {\n              if (((((uint)out2 & 1) != 0) && (toread != CONCAT44(iVar4,pBVar9))) &&\n                 (PTR_opt_000b746c[0x16b] != '\0')) {\n                debug_logprintf(pcVar8);\n              }\n            }\n            else if (iVar14 == 2) goto LAB_000511f4;\n            in_stack_fffffee0 = (double)CONCAT44(&skip,&sum_written);\n            pFVar15 = (FILE *)(0x8000 - gzstream.avail_out);\n            pBVar13 = local_100;\n            pFVar17 = (FILE *)(*pcVar19)(out,0);\n            dVar24 = (double)CONCAT44(pBVar13,pFVar15);\n            if ((int)pFVar17 < 0) goto LAB_00051040;\n          } while (gzstream.avail_out == 0);\n        }" { (expression_statement "in_stack_fffffee0 = 0.0;" (assignment_expression "in_stack_fffffee0 = 0.0" identifier = number_literal) ;) (expression_statement "pFVar17 = (FILE *)write_data((FILE *)0x0,in_stack_00000030,(char *)buf,(int)pFVar20,\n                                       (wgint *)0x0,(wgint *)0x0);" (assignment_expression "pFVar17 = (FILE *)write_data((FILE *)0x0,in_stack_00000030,(char *)buf,(int)pFVar20,\n                                       (wgint *)0x0,(wgint *)0x0)" identifier = (cast_expression "(FILE *)write_data((FILE *)0x0,in_stack_00000030,(char *)buf,(int)pFVar20,\n                                       (wgint *)0x0,(wgint *)0x0)" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "write_data((FILE *)0x0,in_stack_00000030,(char *)buf,(int)pFVar20,\n                                       (wgint *)0x0,(wgint *)0x0)" identifier (argument_list "((FILE *)0x0,in_stack_00000030,(char *)buf,(int)pFVar20,\n                                       (wgint *)0x0,(wgint *)0x0)" ( (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , identifier , (cast_expression "(char *)buf" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(int)pFVar20" ( (type_descriptor "int" primitive_type) ) identifier) , (cast_expression "(wgint *)0x0" ( (type_descriptor "wgint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(wgint *)0x0" ( (type_descriptor "wgint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ))))) ;) (expression_statement "dVar24 = (double)CONCAT44(pBVar13,pFVar15);" (assignment_expression "dVar24 = (double)CONCAT44(pBVar13,pFVar15)" identifier = (cast_expression "(double)CONCAT44(pBVar13,pFVar15)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(pBVar13,pFVar15)" identifier (argument_list "(pBVar13,pFVar15)" ( identifier , identifier ))))) ;) (if_statement "if ((int)pFVar17 < 0) goto LAB_00051040;" if (parenthesized_expression "((int)pFVar17 < 0)" ( (binary_expression "(int)pFVar17 < 0" (cast_expression "(int)pFVar17" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_00051040;" goto statement_identifier ;)) (expression_statement "pcVar8 = PTR_DAT_000b758c + -0x1898;" (assignment_expression "pcVar8 = PTR_DAT_000b758c + -0x1898" identifier = (binary_expression "PTR_DAT_000b758c + -0x1898" identifier + number_literal)) ;) (expression_statement "pcVar19 = (code *)(PTR_LAB_000b78e4 + 0x3a4);" (assignment_expression "pcVar19 = (code *)(PTR_LAB_000b78e4 + 0x3a4)" identifier = (cast_expression "(code *)(PTR_LAB_000b78e4 + 0x3a4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000b78e4 + 0x3a4)" ( (binary_expression "PTR_LAB_000b78e4 + 0x3a4" identifier + number_literal) )))) ;) (expression_statement "gzstream.next_in = buf;" (assignment_expression "gzstream.next_in = buf" (field_expression "gzstream.next_in" identifier . field_identifier) = identifier) ;) (expression_statement "gzstream.avail_in = (uInt)pFVar20;" (assignment_expression "gzstream.avail_in = (uInt)pFVar20" (field_expression "gzstream.avail_in" identifier . field_identifier) = (cast_expression "(uInt)pFVar20" ( (type_descriptor "uInt" type_identifier) ) identifier)) ;) (do_statement "do {\n            gzstream.avail_out = 0x8000;\n            gzstream.next_out = local_100;\n            iVar14 = (*(code *)PTR_inflate_000b7d40)(&gzstream,0);\n            if (iVar14 == -3) {\nLAB_000511f4:\n              puVar7 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n              dVar24 = (double)CONCAT44(pBVar13,pFVar15);\n              *puVar7 = 0x16;\n              pFVar17 = (FILE *)0xffffffff;\n              goto LAB_00051040;\n            }\n            if (iVar14 < -2) {\n              if (iVar14 == -4) {\n                puVar7 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n                dVar24 = (double)CONCAT44(pBVar13,pFVar15);\n                *puVar7 = 0xc;\n                pFVar17 = (FILE *)0xffffffff;\n                goto LAB_00051040;\n              }\n            }\n            else if (iVar14 == 1) {\n              if (((((uint)out2 & 1) != 0) && (toread != CONCAT44(iVar4,pBVar9))) &&\n                 (PTR_opt_000b746c[0x16b] != '\0')) {\n                debug_logprintf(pcVar8);\n              }\n            }\n            else if (iVar14 == 2) goto LAB_000511f4;\n            in_stack_fffffee0 = (double)CONCAT44(&skip,&sum_written);\n            pFVar15 = (FILE *)(0x8000 - gzstream.avail_out);\n            pBVar13 = local_100;\n            pFVar17 = (FILE *)(*pcVar19)(out,0);\n            dVar24 = (double)CONCAT44(pBVar13,pFVar15);\n            if ((int)pFVar17 < 0) goto LAB_00051040;\n          } while (gzstream.avail_out == 0);" do (compound_statement "{\n            gzstream.avail_out = 0x8000;\n            gzstream.next_out = local_100;\n            iVar14 = (*(code *)PTR_inflate_000b7d40)(&gzstream,0);\n            if (iVar14 == -3) {\nLAB_000511f4:\n              puVar7 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n              dVar24 = (double)CONCAT44(pBVar13,pFVar15);\n              *puVar7 = 0x16;\n              pFVar17 = (FILE *)0xffffffff;\n              goto LAB_00051040;\n            }\n            if (iVar14 < -2) {\n              if (iVar14 == -4) {\n                puVar7 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n                dVar24 = (double)CONCAT44(pBVar13,pFVar15);\n                *puVar7 = 0xc;\n                pFVar17 = (FILE *)0xffffffff;\n                goto LAB_00051040;\n              }\n            }\n            else if (iVar14 == 1) {\n              if (((((uint)out2 & 1) != 0) && (toread != CONCAT44(iVar4,pBVar9))) &&\n                 (PTR_opt_000b746c[0x16b] != '\0')) {\n                debug_logprintf(pcVar8);\n              }\n            }\n            else if (iVar14 == 2) goto LAB_000511f4;\n            in_stack_fffffee0 = (double)CONCAT44(&skip,&sum_written);\n            pFVar15 = (FILE *)(0x8000 - gzstream.avail_out);\n            pBVar13 = local_100;\n            pFVar17 = (FILE *)(*pcVar19)(out,0);\n            dVar24 = (double)CONCAT44(pBVar13,pFVar15);\n            if ((int)pFVar17 < 0) goto LAB_00051040;\n          }" { (expression_statement "gzstream.avail_out = 0x8000;" (assignment_expression "gzstream.avail_out = 0x8000" (field_expression "gzstream.avail_out" identifier . field_identifier) = number_literal) ;) (expression_statement "gzstream.next_out = local_100;" (assignment_expression "gzstream.next_out = local_100" (field_expression "gzstream.next_out" identifier . field_identifier) = identifier) ;) (expression_statement "iVar14 = (*(code *)PTR_inflate_000b7d40)(&gzstream,0);" (assignment_expression "iVar14 = (*(code *)PTR_inflate_000b7d40)(&gzstream,0)" identifier = (call_expression "(*(code *)PTR_inflate_000b7d40)(&gzstream,0)" (parenthesized_expression "(*(code *)PTR_inflate_000b7d40)" ( (pointer_expression "*(code *)PTR_inflate_000b7d40" * (cast_expression "(code *)PTR_inflate_000b7d40" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&gzstream,0)" ( (pointer_expression "&gzstream" & identifier) , number_literal )))) ;) (if_statement "if (iVar14 == -3) {\nLAB_000511f4:\n              puVar7 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n              dVar24 = (double)CONCAT44(pBVar13,pFVar15);\n              *puVar7 = 0x16;\n              pFVar17 = (FILE *)0xffffffff;\n              goto LAB_00051040;\n            }" if (parenthesized_expression "(iVar14 == -3)" ( (binary_expression "iVar14 == -3" identifier == number_literal) )) (compound_statement "{\nLAB_000511f4:\n              puVar7 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n              dVar24 = (double)CONCAT44(pBVar13,pFVar15);\n              *puVar7 = 0x16;\n              pFVar17 = (FILE *)0xffffffff;\n              goto LAB_00051040;\n            }" { (labeled_statement "LAB_000511f4:\n              puVar7 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();" statement_identifier : (expression_statement "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();" (assignment_expression "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_000b7eb8)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_000b7eb8)()" (parenthesized_expression "(*(code *)PTR___errno_location_000b7eb8)" ( (pointer_expression "*(code *)PTR___errno_location_000b7eb8" * (cast_expression "(code *)PTR___errno_location_000b7eb8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;)) (expression_statement "dVar24 = (double)CONCAT44(pBVar13,pFVar15);" (assignment_expression "dVar24 = (double)CONCAT44(pBVar13,pFVar15)" identifier = (cast_expression "(double)CONCAT44(pBVar13,pFVar15)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(pBVar13,pFVar15)" identifier (argument_list "(pBVar13,pFVar15)" ( identifier , identifier ))))) ;) (expression_statement "*puVar7 = 0x16;" (assignment_expression "*puVar7 = 0x16" (pointer_expression "*puVar7" * identifier) = number_literal) ;) (expression_statement "pFVar17 = (FILE *)0xffffffff;" (assignment_expression "pFVar17 = (FILE *)0xffffffff" identifier = (cast_expression "(FILE *)0xffffffff" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_00051040;" goto statement_identifier ;) })) (if_statement "if (iVar14 < -2) {\n              if (iVar14 == -4) {\n                puVar7 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n                dVar24 = (double)CONCAT44(pBVar13,pFVar15);\n                *puVar7 = 0xc;\n                pFVar17 = (FILE *)0xffffffff;\n                goto LAB_00051040;\n              }\n            }\n            else if (iVar14 == 1) {\n              if (((((uint)out2 & 1) != 0) && (toread != CONCAT44(iVar4,pBVar9))) &&\n                 (PTR_opt_000b746c[0x16b] != '\0')) {\n                debug_logprintf(pcVar8);\n              }\n            }\n            else if (iVar14 == 2) goto LAB_000511f4;" if (parenthesized_expression "(iVar14 < -2)" ( (binary_expression "iVar14 < -2" identifier < number_literal) )) (compound_statement "{\n              if (iVar14 == -4) {\n                puVar7 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n                dVar24 = (double)CONCAT44(pBVar13,pFVar15);\n                *puVar7 = 0xc;\n                pFVar17 = (FILE *)0xffffffff;\n                goto LAB_00051040;\n              }\n            }" { (if_statement "if (iVar14 == -4) {\n                puVar7 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n                dVar24 = (double)CONCAT44(pBVar13,pFVar15);\n                *puVar7 = 0xc;\n                pFVar17 = (FILE *)0xffffffff;\n                goto LAB_00051040;\n              }" if (parenthesized_expression "(iVar14 == -4)" ( (binary_expression "iVar14 == -4" identifier == number_literal) )) (compound_statement "{\n                puVar7 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n                dVar24 = (double)CONCAT44(pBVar13,pFVar15);\n                *puVar7 = 0xc;\n                pFVar17 = (FILE *)0xffffffff;\n                goto LAB_00051040;\n              }" { (expression_statement "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();" (assignment_expression "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_000b7eb8)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_000b7eb8)()" (parenthesized_expression "(*(code *)PTR___errno_location_000b7eb8)" ( (pointer_expression "*(code *)PTR___errno_location_000b7eb8" * (cast_expression "(code *)PTR___errno_location_000b7eb8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "dVar24 = (double)CONCAT44(pBVar13,pFVar15);" (assignment_expression "dVar24 = (double)CONCAT44(pBVar13,pFVar15)" identifier = (cast_expression "(double)CONCAT44(pBVar13,pFVar15)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(pBVar13,pFVar15)" identifier (argument_list "(pBVar13,pFVar15)" ( identifier , identifier ))))) ;) (expression_statement "*puVar7 = 0xc;" (assignment_expression "*puVar7 = 0xc" (pointer_expression "*puVar7" * identifier) = number_literal) ;) (expression_statement "pFVar17 = (FILE *)0xffffffff;" (assignment_expression "pFVar17 = (FILE *)0xffffffff" identifier = (cast_expression "(FILE *)0xffffffff" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_00051040;" goto statement_identifier ;) })) }) (else_clause "else if (iVar14 == 1) {\n              if (((((uint)out2 & 1) != 0) && (toread != CONCAT44(iVar4,pBVar9))) &&\n                 (PTR_opt_000b746c[0x16b] != '\0')) {\n                debug_logprintf(pcVar8);\n              }\n            }\n            else if (iVar14 == 2) goto LAB_000511f4;" else (if_statement "if (iVar14 == 1) {\n              if (((((uint)out2 & 1) != 0) && (toread != CONCAT44(iVar4,pBVar9))) &&\n                 (PTR_opt_000b746c[0x16b] != '\0')) {\n                debug_logprintf(pcVar8);\n              }\n            }\n            else if (iVar14 == 2) goto LAB_000511f4;" if (parenthesized_expression "(iVar14 == 1)" ( (binary_expression "iVar14 == 1" identifier == number_literal) )) (compound_statement "{\n              if (((((uint)out2 & 1) != 0) && (toread != CONCAT44(iVar4,pBVar9))) &&\n                 (PTR_opt_000b746c[0x16b] != '\0')) {\n                debug_logprintf(pcVar8);\n              }\n            }" { (if_statement "if (((((uint)out2 & 1) != 0) && (toread != CONCAT44(iVar4,pBVar9))) &&\n                 (PTR_opt_000b746c[0x16b] != '\0')) {\n                debug_logprintf(pcVar8);\n              }" if (parenthesized_expression "(((((uint)out2 & 1) != 0) && (toread != CONCAT44(iVar4,pBVar9))) &&\n                 (PTR_opt_000b746c[0x16b] != '\0'))" ( (binary_expression "((((uint)out2 & 1) != 0) && (toread != CONCAT44(iVar4,pBVar9))) &&\n                 (PTR_opt_000b746c[0x16b] != '\0')" (parenthesized_expression "((((uint)out2 & 1) != 0) && (toread != CONCAT44(iVar4,pBVar9)))" ( (binary_expression "(((uint)out2 & 1) != 0) && (toread != CONCAT44(iVar4,pBVar9))" (parenthesized_expression "(((uint)out2 & 1) != 0)" ( (binary_expression "((uint)out2 & 1) != 0" (parenthesized_expression "((uint)out2 & 1)" ( (binary_expression "(uint)out2 & 1" (cast_expression "(uint)out2" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) != number_literal) )) && (parenthesized_expression "(toread != CONCAT44(iVar4,pBVar9))" ( (binary_expression "toread != CONCAT44(iVar4,pBVar9)" identifier != (call_expression "CONCAT44(iVar4,pBVar9)" identifier (argument_list "(iVar4,pBVar9)" ( identifier , identifier )))) ))) )) && (parenthesized_expression "(PTR_opt_000b746c[0x16b] != '\0')" ( (binary_expression "PTR_opt_000b746c[0x16b] != '\0'" (subscript_expression "PTR_opt_000b746c[0x16b]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n                debug_logprintf(pcVar8);\n              }" { (expression_statement "debug_logprintf(pcVar8);" (call_expression "debug_logprintf(pcVar8)" identifier (argument_list "(pcVar8)" ( identifier ))) ;) })) }) (else_clause "else if (iVar14 == 2) goto LAB_000511f4;" else (if_statement "if (iVar14 == 2) goto LAB_000511f4;" if (parenthesized_expression "(iVar14 == 2)" ( (binary_expression "iVar14 == 2" identifier == number_literal) )) (goto_statement "goto LAB_000511f4;" goto statement_identifier ;)))))) (expression_statement "in_stack_fffffee0 = (double)CONCAT44(&skip,&sum_written);" (assignment_expression "in_stack_fffffee0 = (double)CONCAT44(&skip,&sum_written)" identifier = (cast_expression "(double)CONCAT44(&skip,&sum_written)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(&skip,&sum_written)" identifier (argument_list "(&skip,&sum_written)" ( (pointer_expression "&skip" & identifier) , (pointer_expression "&sum_written" & identifier) ))))) ;) (expression_statement "pFVar15 = (FILE *)(0x8000 - gzstream.avail_out);" (assignment_expression "pFVar15 = (FILE *)(0x8000 - gzstream.avail_out)" identifier = (cast_expression "(FILE *)(0x8000 - gzstream.avail_out)" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(0x8000 - gzstream.avail_out)" ( (binary_expression "0x8000 - gzstream.avail_out" number_literal - (field_expression "gzstream.avail_out" identifier . field_identifier)) )))) ;) (expression_statement "pBVar13 = local_100;" (assignment_expression "pBVar13 = local_100" identifier = identifier) ;) (expression_statement "pFVar17 = (FILE *)(*pcVar19)(out,0);" (assignment_expression "pFVar17 = (FILE *)(*pcVar19)(out,0)" identifier = (cast_expression "(FILE *)(*pcVar19)(out,0)" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar19)(out,0)" (parenthesized_expression "(*pcVar19)" ( (pointer_expression "*pcVar19" * identifier) )) (argument_list "(out,0)" ( identifier , number_literal ))))) ;) (expression_statement "dVar24 = (double)CONCAT44(pBVar13,pFVar15);" (assignment_expression "dVar24 = (double)CONCAT44(pBVar13,pFVar15)" identifier = (cast_expression "(double)CONCAT44(pBVar13,pFVar15)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(pBVar13,pFVar15)" identifier (argument_list "(pBVar13,pFVar15)" ( identifier , identifier ))))) ;) (if_statement "if ((int)pFVar17 < 0) goto LAB_00051040;" if (parenthesized_expression "((int)pFVar17 < 0)" ( (binary_expression "(int)pFVar17 < 0" (cast_expression "(int)pFVar17" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_00051040;" goto statement_identifier ;)) }) while (parenthesized_expression "(gzstream.avail_out == 0)" ( (binary_expression "gzstream.avail_out == 0" (field_expression "gzstream.avail_out" identifier . field_identifier) == number_literal) )) ;) }))) (if_statement "if (uVar3 != 0) {\n          pBVar9 = local_f0 + -(int)pFVar20;\n          iVar18 = (iVar18 - ((int)pFVar20 >> 0x1f)) - (uint)(local_f0 < pBVar9);\n          local_f0 = pBVar9;\n          if (iVar18 == 0 && pBVar9 == (Bytef *)0x0) {\n            pcVar8 = fd_read_line(fd);\n            dVar23 = (double)CONCAT44(pBVar13,pFVar15);\n            if (pcVar8 == (char *)0x0) {\n              pFVar20 = (FILE *)0xffffffff;\n              goto LAB_000518d4;\n            }\n            if (in_stack_00000030 != (FILE *)0x0) {\n              pBVar13 = (Bytef *)(*(code *)PTR_strlen_000b7c94)(pcVar8);\n              pFVar15 = in_stack_00000030;\n              (*(code *)PTR_fwrite_000b7c24)(pcVar8,1);\n            }\n            (*(code *)PTR_free_000b7d34)(pcVar8);\n          }\n        }" if (parenthesized_expression "(uVar3 != 0)" ( (binary_expression "uVar3 != 0" identifier != number_literal) )) (compound_statement "{\n          pBVar9 = local_f0 + -(int)pFVar20;\n          iVar18 = (iVar18 - ((int)pFVar20 >> 0x1f)) - (uint)(local_f0 < pBVar9);\n          local_f0 = pBVar9;\n          if (iVar18 == 0 && pBVar9 == (Bytef *)0x0) {\n            pcVar8 = fd_read_line(fd);\n            dVar23 = (double)CONCAT44(pBVar13,pFVar15);\n            if (pcVar8 == (char *)0x0) {\n              pFVar20 = (FILE *)0xffffffff;\n              goto LAB_000518d4;\n            }\n            if (in_stack_00000030 != (FILE *)0x0) {\n              pBVar13 = (Bytef *)(*(code *)PTR_strlen_000b7c94)(pcVar8);\n              pFVar15 = in_stack_00000030;\n              (*(code *)PTR_fwrite_000b7c24)(pcVar8,1);\n            }\n            (*(code *)PTR_free_000b7d34)(pcVar8);\n          }\n        }" { (expression_statement "pBVar9 = local_f0 + -(int)pFVar20;" (assignment_expression "pBVar9 = local_f0 + -(int)pFVar20" identifier = (binary_expression "local_f0 + -(int)pFVar20" identifier + (unary_expression "-(int)pFVar20" - (cast_expression "(int)pFVar20" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (expression_statement "iVar18 = (iVar18 - ((int)pFVar20 >> 0x1f)) - (uint)(local_f0 < pBVar9);" (assignment_expression "iVar18 = (iVar18 - ((int)pFVar20 >> 0x1f)) - (uint)(local_f0 < pBVar9)" identifier = (binary_expression "(iVar18 - ((int)pFVar20 >> 0x1f)) - (uint)(local_f0 < pBVar9)" (parenthesized_expression "(iVar18 - ((int)pFVar20 >> 0x1f))" ( (binary_expression "iVar18 - ((int)pFVar20 >> 0x1f)" identifier - (parenthesized_expression "((int)pFVar20 >> 0x1f)" ( (binary_expression "(int)pFVar20 >> 0x1f" (cast_expression "(int)pFVar20" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ))) )) - (call_expression "(uint)(local_f0 < pBVar9)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_f0 < pBVar9)" ( (binary_expression "local_f0 < pBVar9" identifier < identifier) ))))) ;) (expression_statement "local_f0 = pBVar9;" (assignment_expression "local_f0 = pBVar9" identifier = identifier) ;) (if_statement "if (iVar18 == 0 && pBVar9 == (Bytef *)0x0) {\n            pcVar8 = fd_read_line(fd);\n            dVar23 = (double)CONCAT44(pBVar13,pFVar15);\n            if (pcVar8 == (char *)0x0) {\n              pFVar20 = (FILE *)0xffffffff;\n              goto LAB_000518d4;\n            }\n            if (in_stack_00000030 != (FILE *)0x0) {\n              pBVar13 = (Bytef *)(*(code *)PTR_strlen_000b7c94)(pcVar8);\n              pFVar15 = in_stack_00000030;\n              (*(code *)PTR_fwrite_000b7c24)(pcVar8,1);\n            }\n            (*(code *)PTR_free_000b7d34)(pcVar8);\n          }" if (parenthesized_expression "(iVar18 == 0 && pBVar9 == (Bytef *)0x0)" ( (binary_expression "iVar18 == 0 && pBVar9 == (Bytef *)0x0" (binary_expression "iVar18 == 0" identifier == number_literal) && (binary_expression "pBVar9 == (Bytef *)0x0" identifier == (cast_expression "(Bytef *)0x0" ( (type_descriptor "Bytef *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n            pcVar8 = fd_read_line(fd);\n            dVar23 = (double)CONCAT44(pBVar13,pFVar15);\n            if (pcVar8 == (char *)0x0) {\n              pFVar20 = (FILE *)0xffffffff;\n              goto LAB_000518d4;\n            }\n            if (in_stack_00000030 != (FILE *)0x0) {\n              pBVar13 = (Bytef *)(*(code *)PTR_strlen_000b7c94)(pcVar8);\n              pFVar15 = in_stack_00000030;\n              (*(code *)PTR_fwrite_000b7c24)(pcVar8,1);\n            }\n            (*(code *)PTR_free_000b7d34)(pcVar8);\n          }" { (expression_statement "pcVar8 = fd_read_line(fd);" (assignment_expression "pcVar8 = fd_read_line(fd)" identifier = (call_expression "fd_read_line(fd)" identifier (argument_list "(fd)" ( identifier )))) ;) (expression_statement "dVar23 = (double)CONCAT44(pBVar13,pFVar15);" (assignment_expression "dVar23 = (double)CONCAT44(pBVar13,pFVar15)" identifier = (cast_expression "(double)CONCAT44(pBVar13,pFVar15)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(pBVar13,pFVar15)" identifier (argument_list "(pBVar13,pFVar15)" ( identifier , identifier ))))) ;) (if_statement "if (pcVar8 == (char *)0x0) {\n              pFVar20 = (FILE *)0xffffffff;\n              goto LAB_000518d4;\n            }" if (parenthesized_expression "(pcVar8 == (char *)0x0)" ( (binary_expression "pcVar8 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              pFVar20 = (FILE *)0xffffffff;\n              goto LAB_000518d4;\n            }" { (expression_statement "pFVar20 = (FILE *)0xffffffff;" (assignment_expression "pFVar20 = (FILE *)0xffffffff" identifier = (cast_expression "(FILE *)0xffffffff" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_000518d4;" goto statement_identifier ;) })) (if_statement "if (in_stack_00000030 != (FILE *)0x0) {\n              pBVar13 = (Bytef *)(*(code *)PTR_strlen_000b7c94)(pcVar8);\n              pFVar15 = in_stack_00000030;\n              (*(code *)PTR_fwrite_000b7c24)(pcVar8,1);\n            }" if (parenthesized_expression "(in_stack_00000030 != (FILE *)0x0)" ( (binary_expression "in_stack_00000030 != (FILE *)0x0" identifier != (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              pBVar13 = (Bytef *)(*(code *)PTR_strlen_000b7c94)(pcVar8);\n              pFVar15 = in_stack_00000030;\n              (*(code *)PTR_fwrite_000b7c24)(pcVar8,1);\n            }" { (expression_statement "pBVar13 = (Bytef *)(*(code *)PTR_strlen_000b7c94)(pcVar8);" (assignment_expression "pBVar13 = (Bytef *)(*(code *)PTR_strlen_000b7c94)(pcVar8)" identifier = (cast_expression "(Bytef *)(*(code *)PTR_strlen_000b7c94)(pcVar8)" ( (type_descriptor "Bytef *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_strlen_000b7c94)(pcVar8)" (parenthesized_expression "(*(code *)PTR_strlen_000b7c94)" ( (pointer_expression "*(code *)PTR_strlen_000b7c94" * (cast_expression "(code *)PTR_strlen_000b7c94" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar8)" ( identifier ))))) ;) (expression_statement "pFVar15 = in_stack_00000030;" (assignment_expression "pFVar15 = in_stack_00000030" identifier = identifier) ;) (expression_statement "(*(code *)PTR_fwrite_000b7c24)(pcVar8,1);" (call_expression "(*(code *)PTR_fwrite_000b7c24)(pcVar8,1)" (parenthesized_expression "(*(code *)PTR_fwrite_000b7c24)" ( (pointer_expression "*(code *)PTR_fwrite_000b7c24" * (cast_expression "(code *)PTR_fwrite_000b7c24" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar8,1)" ( identifier , number_literal ))) ;) })) (expression_statement "(*(code *)PTR_free_000b7d34)(pcVar8);" (call_expression "(*(code *)PTR_free_000b7d34)(pcVar8)" (parenthesized_expression "(*(code *)PTR_free_000b7d34)" ( (pointer_expression "*(code *)PTR_free_000b7d34" * (cast_expression "(code *)PTR_free_000b7d34" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar8)" ( identifier ))) ;) })) })) (labeled_statement "LAB_00051748:\n        dVar23 = (double)CONCAT44(pBVar13,pFVar15);" statement_identifier : (expression_statement "dVar23 = (double)CONCAT44(pBVar13,pFVar15);" (assignment_expression "dVar23 = (double)CONCAT44(pBVar13,pFVar15)" identifier = (cast_expression "(double)CONCAT44(pBVar13,pFVar15)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(pBVar13,pFVar15)" identifier (argument_list "(pBVar13,pFVar15)" ( identifier , identifier ))))) ;)) (if_statement "if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n          dVar24 = ptimer_read(local_104);\n          puVar22 = PTR_DAT_000b7720;\n          dVar24 = dVar24 - *(double *)(PTR_DAT_000b7720 + -0x2fe0);\n          pFVar17 = (FILE *)(pFVar20->_shortbuf + *(int *)(PTR_DAT_000b7720 + -0x2fe4) + -0x47);\n          iVar14 = (uint)(pFVar17 < pFVar20) +\n                   ((int)pFVar20 >> 0x1f) + *(int *)(PTR_DAT_000b7720 + -0x2fe8);\n          *(int *)(PTR_DAT_000b7720 + -0x2fe8) = iVar14;\n          *(FILE **)(puVar22 + -0x2fe4) = pFVar17;\n          dVar28 = (double)(*(code *)PTR___floatdidf_000b78f4)(iVar14,pFVar17);\n          dVar25 = (double)(*(code *)PTR___floatdidf_000b78f4)\n                                     (*(undefined4 *)(PTR_opt_000b746c + 0x158),\n                                      *(undefined4 *)(PTR_opt_000b746c + 0x15c));\n          dVar23 = (double)CONCAT44(pBVar13,pFVar15);\n          if (dVar24 < dVar28 / dVar25) {\n            dVar24 = (dVar28 / dVar25 - dVar24) + *(double *)(PTR_DAT_000b7720 + -0x2fd8);\n            if (dVar24 < dVar29) {\n              if (PTR_opt_000b746c[0x16b] != '\0') {\n                pcVar8 = number_to_static_string((wgint)in_stack_fffffee0);\n                in_stack_fffffee0 = (double)(ZEXT48(pcVar8) << 0x20);\n                dVar23 = dVar24 * *(double *)(puVar21 + -0x15d8);\n                debug_logprintf(PTR_DAT_000b758c + -0x1864);\n              }\n              goto LAB_0005175c;\n            }\n            in_f12_13 = dVar24;\n            if (PTR_opt_000b746c[0x16b] != '\0') {\n              pcVar8 = number_to_static_string((wgint)in_stack_fffffee0);\n              in_stack_fffffee0 = (double)(ZEXT48(pcVar8) << 0x20);\n              dVar23 = dVar24 * dVar26;\n              debug_logprintf(PTR_DAT_000b758c + -0x183c);\n              in_f12_13 = dVar24;\n            }\n            dVar28 = ptimer_read(local_104);\n            dVar24 = in_f12_13;\n            xsleep(in_f12_13);\n            dVar25 = ptimer_measure(local_104);\n            dVar24 = dVar24 - (dVar25 - dVar28);\n            if (dVar30 < dVar24) {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar21 + -0x2580);\n            }\n            else if (dVar31 <= dVar24) {\n              *(double *)(PTR_DAT_000b7720 + -0x2fd8) = dVar24;\n            }\n            else {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar21 + -0x15d0);\n            }\n          }\n          puVar22 = PTR_DAT_000b7720;\n          *(undefined4 *)(PTR_DAT_000b7720 + -0x2fe4) = 0;\n          *(undefined4 *)(puVar22 + -0x2fe8) = 0;\n          dVar24 = ptimer_read(local_104);\n          *(double *)(puVar22 + -0x2fe0) = dVar24;\n        }" if (parenthesized_expression "(*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0)" ( (binary_expression "*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0" (binary_expression "*(int *)(PTR_opt_000b746c + 0x158) != 0" (pointer_expression "*(int *)(PTR_opt_000b746c + 0x158)" * (cast_expression "(int *)(PTR_opt_000b746c + 0x158)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_opt_000b746c + 0x158)" ( (binary_expression "PTR_opt_000b746c + 0x158" identifier + number_literal) )))) != number_literal) || (binary_expression "*(int *)(PTR_opt_000b746c + 0x15c) != 0" (pointer_expression "*(int *)(PTR_opt_000b746c + 0x15c)" * (cast_expression "(int *)(PTR_opt_000b746c + 0x15c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_opt_000b746c + 0x15c)" ( (binary_expression "PTR_opt_000b746c + 0x15c" identifier + number_literal) )))) != number_literal)) )) (compound_statement "{\n          dVar24 = ptimer_read(local_104);\n          puVar22 = PTR_DAT_000b7720;\n          dVar24 = dVar24 - *(double *)(PTR_DAT_000b7720 + -0x2fe0);\n          pFVar17 = (FILE *)(pFVar20->_shortbuf + *(int *)(PTR_DAT_000b7720 + -0x2fe4) + -0x47);\n          iVar14 = (uint)(pFVar17 < pFVar20) +\n                   ((int)pFVar20 >> 0x1f) + *(int *)(PTR_DAT_000b7720 + -0x2fe8);\n          *(int *)(PTR_DAT_000b7720 + -0x2fe8) = iVar14;\n          *(FILE **)(puVar22 + -0x2fe4) = pFVar17;\n          dVar28 = (double)(*(code *)PTR___floatdidf_000b78f4)(iVar14,pFVar17);\n          dVar25 = (double)(*(code *)PTR___floatdidf_000b78f4)\n                                     (*(undefined4 *)(PTR_opt_000b746c + 0x158),\n                                      *(undefined4 *)(PTR_opt_000b746c + 0x15c));\n          dVar23 = (double)CONCAT44(pBVar13,pFVar15);\n          if (dVar24 < dVar28 / dVar25) {\n            dVar24 = (dVar28 / dVar25 - dVar24) + *(double *)(PTR_DAT_000b7720 + -0x2fd8);\n            if (dVar24 < dVar29) {\n              if (PTR_opt_000b746c[0x16b] != '\0') {\n                pcVar8 = number_to_static_string((wgint)in_stack_fffffee0);\n                in_stack_fffffee0 = (double)(ZEXT48(pcVar8) << 0x20);\n                dVar23 = dVar24 * *(double *)(puVar21 + -0x15d8);\n                debug_logprintf(PTR_DAT_000b758c + -0x1864);\n              }\n              goto LAB_0005175c;\n            }\n            in_f12_13 = dVar24;\n            if (PTR_opt_000b746c[0x16b] != '\0') {\n              pcVar8 = number_to_static_string((wgint)in_stack_fffffee0);\n              in_stack_fffffee0 = (double)(ZEXT48(pcVar8) << 0x20);\n              dVar23 = dVar24 * dVar26;\n              debug_logprintf(PTR_DAT_000b758c + -0x183c);\n              in_f12_13 = dVar24;\n            }\n            dVar28 = ptimer_read(local_104);\n            dVar24 = in_f12_13;\n            xsleep(in_f12_13);\n            dVar25 = ptimer_measure(local_104);\n            dVar24 = dVar24 - (dVar25 - dVar28);\n            if (dVar30 < dVar24) {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar21 + -0x2580);\n            }\n            else if (dVar31 <= dVar24) {\n              *(double *)(PTR_DAT_000b7720 + -0x2fd8) = dVar24;\n            }\n            else {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar21 + -0x15d0);\n            }\n          }\n          puVar22 = PTR_DAT_000b7720;\n          *(undefined4 *)(PTR_DAT_000b7720 + -0x2fe4) = 0;\n          *(undefined4 *)(puVar22 + -0x2fe8) = 0;\n          dVar24 = ptimer_read(local_104);\n          *(double *)(puVar22 + -0x2fe0) = dVar24;\n        }" { (expression_statement "dVar24 = ptimer_read(local_104);" (assignment_expression "dVar24 = ptimer_read(local_104)" identifier = (call_expression "ptimer_read(local_104)" identifier (argument_list "(local_104)" ( identifier )))) ;) (expression_statement "puVar22 = PTR_DAT_000b7720;" (assignment_expression "puVar22 = PTR_DAT_000b7720" identifier = identifier) ;) (expression_statement "dVar24 = dVar24 - *(double *)(PTR_DAT_000b7720 + -0x2fe0);" (assignment_expression "dVar24 = dVar24 - *(double *)(PTR_DAT_000b7720 + -0x2fe0)" identifier = (binary_expression "dVar24 - *(double *)(PTR_DAT_000b7720 + -0x2fe0)" identifier - (pointer_expression "*(double *)(PTR_DAT_000b7720 + -0x2fe0)" * (cast_expression "(double *)(PTR_DAT_000b7720 + -0x2fe0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000b7720 + -0x2fe0)" ( (binary_expression "PTR_DAT_000b7720 + -0x2fe0" identifier + number_literal) )))))) ;) (expression_statement "pFVar17 = (FILE *)(pFVar20->_shortbuf + *(int *)(PTR_DAT_000b7720 + -0x2fe4) + -0x47);" (assignment_expression "pFVar17 = (FILE *)(pFVar20->_shortbuf + *(int *)(PTR_DAT_000b7720 + -0x2fe4) + -0x47)" identifier = (cast_expression "(FILE *)(pFVar20->_shortbuf + *(int *)(PTR_DAT_000b7720 + -0x2fe4) + -0x47)" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pFVar20->_shortbuf + *(int *)(PTR_DAT_000b7720 + -0x2fe4) + -0x47)" ( (binary_expression "pFVar20->_shortbuf + *(int *)(PTR_DAT_000b7720 + -0x2fe4) + -0x47" (binary_expression "pFVar20->_shortbuf + *(int *)(PTR_DAT_000b7720 + -0x2fe4)" (field_expression "pFVar20->_shortbuf" identifier -> field_identifier) + (pointer_expression "*(int *)(PTR_DAT_000b7720 + -0x2fe4)" * (cast_expression "(int *)(PTR_DAT_000b7720 + -0x2fe4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000b7720 + -0x2fe4)" ( (binary_expression "PTR_DAT_000b7720 + -0x2fe4" identifier + number_literal) ))))) + number_literal) )))) ;) (expression_statement "iVar14 = (uint)(pFVar17 < pFVar20) +\n                   ((int)pFVar20 >> 0x1f) + *(int *)(PTR_DAT_000b7720 + -0x2fe8);" (assignment_expression "iVar14 = (uint)(pFVar17 < pFVar20) +\n                   ((int)pFVar20 >> 0x1f) + *(int *)(PTR_DAT_000b7720 + -0x2fe8)" identifier = (binary_expression "(uint)(pFVar17 < pFVar20) +\n                   ((int)pFVar20 >> 0x1f) + *(int *)(PTR_DAT_000b7720 + -0x2fe8)" (binary_expression "(uint)(pFVar17 < pFVar20) +\n                   ((int)pFVar20 >> 0x1f)" (call_expression "(uint)(pFVar17 < pFVar20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pFVar17 < pFVar20)" ( (binary_expression "pFVar17 < pFVar20" identifier < identifier) ))) + (parenthesized_expression "((int)pFVar20 >> 0x1f)" ( (binary_expression "(int)pFVar20 >> 0x1f" (cast_expression "(int)pFVar20" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ))) + (pointer_expression "*(int *)(PTR_DAT_000b7720 + -0x2fe8)" * (cast_expression "(int *)(PTR_DAT_000b7720 + -0x2fe8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000b7720 + -0x2fe8)" ( (binary_expression "PTR_DAT_000b7720 + -0x2fe8" identifier + number_literal) )))))) ;) (expression_statement "*(int *)(PTR_DAT_000b7720 + -0x2fe8) = iVar14;" (assignment_expression "*(int *)(PTR_DAT_000b7720 + -0x2fe8) = iVar14" (pointer_expression "*(int *)(PTR_DAT_000b7720 + -0x2fe8)" * (cast_expression "(int *)(PTR_DAT_000b7720 + -0x2fe8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000b7720 + -0x2fe8)" ( (binary_expression "PTR_DAT_000b7720 + -0x2fe8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(FILE **)(puVar22 + -0x2fe4) = pFVar17;" (assignment_expression "*(FILE **)(puVar22 + -0x2fe4) = pFVar17" (pointer_expression "*(FILE **)(puVar22 + -0x2fe4)" * (cast_expression "(FILE **)(puVar22 + -0x2fe4)" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + -0x2fe4)" ( (binary_expression "puVar22 + -0x2fe4" identifier + number_literal) )))) = identifier) ;) (expression_statement "dVar28 = (double)(*(code *)PTR___floatdidf_000b78f4)(iVar14,pFVar17);" (assignment_expression "dVar28 = (double)(*(code *)PTR___floatdidf_000b78f4)(iVar14,pFVar17)" identifier = (cast_expression "(double)(*(code *)PTR___floatdidf_000b78f4)(iVar14,pFVar17)" ( (type_descriptor "double" primitive_type) ) (call_expression "(*(code *)PTR___floatdidf_000b78f4)(iVar14,pFVar17)" (parenthesized_expression "(*(code *)PTR___floatdidf_000b78f4)" ( (pointer_expression "*(code *)PTR___floatdidf_000b78f4" * (cast_expression "(code *)PTR___floatdidf_000b78f4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar14,pFVar17)" ( identifier , identifier ))))) ;) (expression_statement "dVar25 = (double)(*(code *)PTR___floatdidf_000b78f4)\n                                     (*(undefined4 *)(PTR_opt_000b746c + 0x158),\n                                      *(undefined4 *)(PTR_opt_000b746c + 0x15c));" (assignment_expression "dVar25 = (double)(*(code *)PTR___floatdidf_000b78f4)\n                                     (*(undefined4 *)(PTR_opt_000b746c + 0x158),\n                                      *(undefined4 *)(PTR_opt_000b746c + 0x15c))" identifier = (cast_expression "(double)(*(code *)PTR___floatdidf_000b78f4)\n                                     (*(undefined4 *)(PTR_opt_000b746c + 0x158),\n                                      *(undefined4 *)(PTR_opt_000b746c + 0x15c))" ( (type_descriptor "double" primitive_type) ) (call_expression "(*(code *)PTR___floatdidf_000b78f4)\n                                     (*(undefined4 *)(PTR_opt_000b746c + 0x158),\n                                      *(undefined4 *)(PTR_opt_000b746c + 0x15c))" (parenthesized_expression "(*(code *)PTR___floatdidf_000b78f4)" ( (pointer_expression "*(code *)PTR___floatdidf_000b78f4" * (cast_expression "(code *)PTR___floatdidf_000b78f4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(PTR_opt_000b746c + 0x158),\n                                      *(undefined4 *)(PTR_opt_000b746c + 0x15c))" ( (pointer_expression "*(undefined4 *)(PTR_opt_000b746c + 0x158)" * (cast_expression "(undefined4 *)(PTR_opt_000b746c + 0x158)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_opt_000b746c + 0x158)" ( (binary_expression "PTR_opt_000b746c + 0x158" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(PTR_opt_000b746c + 0x15c)" * (cast_expression "(undefined4 *)(PTR_opt_000b746c + 0x15c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_opt_000b746c + 0x15c)" ( (binary_expression "PTR_opt_000b746c + 0x15c" identifier + number_literal) )))) ))))) ;) (expression_statement "dVar23 = (double)CONCAT44(pBVar13,pFVar15);" (assignment_expression "dVar23 = (double)CONCAT44(pBVar13,pFVar15)" identifier = (cast_expression "(double)CONCAT44(pBVar13,pFVar15)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(pBVar13,pFVar15)" identifier (argument_list "(pBVar13,pFVar15)" ( identifier , identifier ))))) ;) (if_statement "if (dVar24 < dVar28 / dVar25) {\n            dVar24 = (dVar28 / dVar25 - dVar24) + *(double *)(PTR_DAT_000b7720 + -0x2fd8);\n            if (dVar24 < dVar29) {\n              if (PTR_opt_000b746c[0x16b] != '\0') {\n                pcVar8 = number_to_static_string((wgint)in_stack_fffffee0);\n                in_stack_fffffee0 = (double)(ZEXT48(pcVar8) << 0x20);\n                dVar23 = dVar24 * *(double *)(puVar21 + -0x15d8);\n                debug_logprintf(PTR_DAT_000b758c + -0x1864);\n              }\n              goto LAB_0005175c;\n            }\n            in_f12_13 = dVar24;\n            if (PTR_opt_000b746c[0x16b] != '\0') {\n              pcVar8 = number_to_static_string((wgint)in_stack_fffffee0);\n              in_stack_fffffee0 = (double)(ZEXT48(pcVar8) << 0x20);\n              dVar23 = dVar24 * dVar26;\n              debug_logprintf(PTR_DAT_000b758c + -0x183c);\n              in_f12_13 = dVar24;\n            }\n            dVar28 = ptimer_read(local_104);\n            dVar24 = in_f12_13;\n            xsleep(in_f12_13);\n            dVar25 = ptimer_measure(local_104);\n            dVar24 = dVar24 - (dVar25 - dVar28);\n            if (dVar30 < dVar24) {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar21 + -0x2580);\n            }\n            else if (dVar31 <= dVar24) {\n              *(double *)(PTR_DAT_000b7720 + -0x2fd8) = dVar24;\n            }\n            else {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar21 + -0x15d0);\n            }\n          }" if (parenthesized_expression "(dVar24 < dVar28 / dVar25)" ( (binary_expression "dVar24 < dVar28 / dVar25" identifier < (binary_expression "dVar28 / dVar25" identifier / identifier)) )) (compound_statement "{\n            dVar24 = (dVar28 / dVar25 - dVar24) + *(double *)(PTR_DAT_000b7720 + -0x2fd8);\n            if (dVar24 < dVar29) {\n              if (PTR_opt_000b746c[0x16b] != '\0') {\n                pcVar8 = number_to_static_string((wgint)in_stack_fffffee0);\n                in_stack_fffffee0 = (double)(ZEXT48(pcVar8) << 0x20);\n                dVar23 = dVar24 * *(double *)(puVar21 + -0x15d8);\n                debug_logprintf(PTR_DAT_000b758c + -0x1864);\n              }\n              goto LAB_0005175c;\n            }\n            in_f12_13 = dVar24;\n            if (PTR_opt_000b746c[0x16b] != '\0') {\n              pcVar8 = number_to_static_string((wgint)in_stack_fffffee0);\n              in_stack_fffffee0 = (double)(ZEXT48(pcVar8) << 0x20);\n              dVar23 = dVar24 * dVar26;\n              debug_logprintf(PTR_DAT_000b758c + -0x183c);\n              in_f12_13 = dVar24;\n            }\n            dVar28 = ptimer_read(local_104);\n            dVar24 = in_f12_13;\n            xsleep(in_f12_13);\n            dVar25 = ptimer_measure(local_104);\n            dVar24 = dVar24 - (dVar25 - dVar28);\n            if (dVar30 < dVar24) {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar21 + -0x2580);\n            }\n            else if (dVar31 <= dVar24) {\n              *(double *)(PTR_DAT_000b7720 + -0x2fd8) = dVar24;\n            }\n            else {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar21 + -0x15d0);\n            }\n          }" { (expression_statement "dVar24 = (dVar28 / dVar25 - dVar24) + *(double *)(PTR_DAT_000b7720 + -0x2fd8);" (assignment_expression "dVar24 = (dVar28 / dVar25 - dVar24) + *(double *)(PTR_DAT_000b7720 + -0x2fd8)" identifier = (binary_expression "(dVar28 / dVar25 - dVar24) + *(double *)(PTR_DAT_000b7720 + -0x2fd8)" (parenthesized_expression "(dVar28 / dVar25 - dVar24)" ( (binary_expression "dVar28 / dVar25 - dVar24" (binary_expression "dVar28 / dVar25" identifier / identifier) - identifier) )) + (pointer_expression "*(double *)(PTR_DAT_000b7720 + -0x2fd8)" * (cast_expression "(double *)(PTR_DAT_000b7720 + -0x2fd8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000b7720 + -0x2fd8)" ( (binary_expression "PTR_DAT_000b7720 + -0x2fd8" identifier + number_literal) )))))) ;) (if_statement "if (dVar24 < dVar29) {\n              if (PTR_opt_000b746c[0x16b] != '\0') {\n                pcVar8 = number_to_static_string((wgint)in_stack_fffffee0);\n                in_stack_fffffee0 = (double)(ZEXT48(pcVar8) << 0x20);\n                dVar23 = dVar24 * *(double *)(puVar21 + -0x15d8);\n                debug_logprintf(PTR_DAT_000b758c + -0x1864);\n              }\n              goto LAB_0005175c;\n            }" if (parenthesized_expression "(dVar24 < dVar29)" ( (binary_expression "dVar24 < dVar29" identifier < identifier) )) (compound_statement "{\n              if (PTR_opt_000b746c[0x16b] != '\0') {\n                pcVar8 = number_to_static_string((wgint)in_stack_fffffee0);\n                in_stack_fffffee0 = (double)(ZEXT48(pcVar8) << 0x20);\n                dVar23 = dVar24 * *(double *)(puVar21 + -0x15d8);\n                debug_logprintf(PTR_DAT_000b758c + -0x1864);\n              }\n              goto LAB_0005175c;\n            }" { (if_statement "if (PTR_opt_000b746c[0x16b] != '\0') {\n                pcVar8 = number_to_static_string((wgint)in_stack_fffffee0);\n                in_stack_fffffee0 = (double)(ZEXT48(pcVar8) << 0x20);\n                dVar23 = dVar24 * *(double *)(puVar21 + -0x15d8);\n                debug_logprintf(PTR_DAT_000b758c + -0x1864);\n              }" if (parenthesized_expression "(PTR_opt_000b746c[0x16b] != '\0')" ( (binary_expression "PTR_opt_000b746c[0x16b] != '\0'" (subscript_expression "PTR_opt_000b746c[0x16b]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                pcVar8 = number_to_static_string((wgint)in_stack_fffffee0);\n                in_stack_fffffee0 = (double)(ZEXT48(pcVar8) << 0x20);\n                dVar23 = dVar24 * *(double *)(puVar21 + -0x15d8);\n                debug_logprintf(PTR_DAT_000b758c + -0x1864);\n              }" { (expression_statement "pcVar8 = number_to_static_string((wgint)in_stack_fffffee0);" (assignment_expression "pcVar8 = number_to_static_string((wgint)in_stack_fffffee0)" identifier = (call_expression "number_to_static_string((wgint)in_stack_fffffee0)" identifier (argument_list "((wgint)in_stack_fffffee0)" ( (cast_expression "(wgint)in_stack_fffffee0" ( (type_descriptor "wgint" type_identifier) ) identifier) )))) ;) (expression_statement "in_stack_fffffee0 = (double)(ZEXT48(pcVar8) << 0x20);" (assignment_expression "in_stack_fffffee0 = (double)(ZEXT48(pcVar8) << 0x20)" identifier = (cast_expression "(double)(ZEXT48(pcVar8) << 0x20)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "(ZEXT48(pcVar8) << 0x20)" ( (binary_expression "ZEXT48(pcVar8) << 0x20" (call_expression "ZEXT48(pcVar8)" identifier (argument_list "(pcVar8)" ( identifier ))) << number_literal) )))) ;) (expression_statement "dVar23 = dVar24 * *(double *)(puVar21 + -0x15d8);" (assignment_expression "dVar23 = dVar24 * *(double *)(puVar21 + -0x15d8)" identifier = (binary_expression "dVar24 * *(double *)(puVar21 + -0x15d8)" identifier * (pointer_expression "*(double *)(puVar21 + -0x15d8)" * (cast_expression "(double *)(puVar21 + -0x15d8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x15d8)" ( (binary_expression "puVar21 + -0x15d8" identifier + number_literal) )))))) ;) (expression_statement "debug_logprintf(PTR_DAT_000b758c + -0x1864);" (call_expression "debug_logprintf(PTR_DAT_000b758c + -0x1864)" identifier (argument_list "(PTR_DAT_000b758c + -0x1864)" ( (binary_expression "PTR_DAT_000b758c + -0x1864" identifier + number_literal) ))) ;) })) (goto_statement "goto LAB_0005175c;" goto statement_identifier ;) })) (expression_statement "in_f12_13 = dVar24;" (assignment_expression "in_f12_13 = dVar24" identifier = identifier) ;) (if_statement "if (PTR_opt_000b746c[0x16b] != '\0') {\n              pcVar8 = number_to_static_string((wgint)in_stack_fffffee0);\n              in_stack_fffffee0 = (double)(ZEXT48(pcVar8) << 0x20);\n              dVar23 = dVar24 * dVar26;\n              debug_logprintf(PTR_DAT_000b758c + -0x183c);\n              in_f12_13 = dVar24;\n            }" if (parenthesized_expression "(PTR_opt_000b746c[0x16b] != '\0')" ( (binary_expression "PTR_opt_000b746c[0x16b] != '\0'" (subscript_expression "PTR_opt_000b746c[0x16b]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              pcVar8 = number_to_static_string((wgint)in_stack_fffffee0);\n              in_stack_fffffee0 = (double)(ZEXT48(pcVar8) << 0x20);\n              dVar23 = dVar24 * dVar26;\n              debug_logprintf(PTR_DAT_000b758c + -0x183c);\n              in_f12_13 = dVar24;\n            }" { (expression_statement "pcVar8 = number_to_static_string((wgint)in_stack_fffffee0);" (assignment_expression "pcVar8 = number_to_static_string((wgint)in_stack_fffffee0)" identifier = (call_expression "number_to_static_string((wgint)in_stack_fffffee0)" identifier (argument_list "((wgint)in_stack_fffffee0)" ( (cast_expression "(wgint)in_stack_fffffee0" ( (type_descriptor "wgint" type_identifier) ) identifier) )))) ;) (expression_statement "in_stack_fffffee0 = (double)(ZEXT48(pcVar8) << 0x20);" (assignment_expression "in_stack_fffffee0 = (double)(ZEXT48(pcVar8) << 0x20)" identifier = (cast_expression "(double)(ZEXT48(pcVar8) << 0x20)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "(ZEXT48(pcVar8) << 0x20)" ( (binary_expression "ZEXT48(pcVar8) << 0x20" (call_expression "ZEXT48(pcVar8)" identifier (argument_list "(pcVar8)" ( identifier ))) << number_literal) )))) ;) (expression_statement "dVar23 = dVar24 * dVar26;" (assignment_expression "dVar23 = dVar24 * dVar26" identifier = (binary_expression "dVar24 * dVar26" identifier * identifier)) ;) (expression_statement "debug_logprintf(PTR_DAT_000b758c + -0x183c);" (call_expression "debug_logprintf(PTR_DAT_000b758c + -0x183c)" identifier (argument_list "(PTR_DAT_000b758c + -0x183c)" ( (binary_expression "PTR_DAT_000b758c + -0x183c" identifier + number_literal) ))) ;) (expression_statement "in_f12_13 = dVar24;" (assignment_expression "in_f12_13 = dVar24" identifier = identifier) ;) })) (expression_statement "dVar28 = ptimer_read(local_104);" (assignment_expression "dVar28 = ptimer_read(local_104)" identifier = (call_expression "ptimer_read(local_104)" identifier (argument_list "(local_104)" ( identifier )))) ;) (expression_statement "dVar24 = in_f12_13;" (assignment_expression "dVar24 = in_f12_13" identifier = identifier) ;) (expression_statement "xsleep(in_f12_13);" (call_expression "xsleep(in_f12_13)" identifier (argument_list "(in_f12_13)" ( identifier ))) ;) (expression_statement "dVar25 = ptimer_measure(local_104);" (assignment_expression "dVar25 = ptimer_measure(local_104)" identifier = (call_expression "ptimer_measure(local_104)" identifier (argument_list "(local_104)" ( identifier )))) ;) (expression_statement "dVar24 = dVar24 - (dVar25 - dVar28);" (assignment_expression "dVar24 = dVar24 - (dVar25 - dVar28)" identifier = (binary_expression "dVar24 - (dVar25 - dVar28)" identifier - (parenthesized_expression "(dVar25 - dVar28)" ( (binary_expression "dVar25 - dVar28" identifier - identifier) )))) ;) (if_statement "if (dVar30 < dVar24) {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar21 + -0x2580);\n            }\n            else if (dVar31 <= dVar24) {\n              *(double *)(PTR_DAT_000b7720 + -0x2fd8) = dVar24;\n            }\n            else {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar21 + -0x15d0);\n            }" if (parenthesized_expression "(dVar30 < dVar24)" ( (binary_expression "dVar30 < dVar24" identifier < identifier) )) (compound_statement "{\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar21 + -0x2580);\n            }" { (expression_statement "*(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar21 + -0x2580);" (assignment_expression "*(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar21 + -0x2580)" (pointer_expression "*(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8)" * (cast_expression "(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000b7720 + -0x2fd8)" ( (binary_expression "PTR_DAT_000b7720 + -0x2fd8" identifier + number_literal) )))) = (pointer_expression "*(undefined8 *)(puVar21 + -0x2580)" * (cast_expression "(undefined8 *)(puVar21 + -0x2580)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x2580)" ( (binary_expression "puVar21 + -0x2580" identifier + number_literal) ))))) ;) }) (else_clause "else if (dVar31 <= dVar24) {\n              *(double *)(PTR_DAT_000b7720 + -0x2fd8) = dVar24;\n            }\n            else {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar21 + -0x15d0);\n            }" else (if_statement "if (dVar31 <= dVar24) {\n              *(double *)(PTR_DAT_000b7720 + -0x2fd8) = dVar24;\n            }\n            else {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar21 + -0x15d0);\n            }" if (parenthesized_expression "(dVar31 <= dVar24)" ( (binary_expression "dVar31 <= dVar24" identifier <= identifier) )) (compound_statement "{\n              *(double *)(PTR_DAT_000b7720 + -0x2fd8) = dVar24;\n            }" { (expression_statement "*(double *)(PTR_DAT_000b7720 + -0x2fd8) = dVar24;" (assignment_expression "*(double *)(PTR_DAT_000b7720 + -0x2fd8) = dVar24" (pointer_expression "*(double *)(PTR_DAT_000b7720 + -0x2fd8)" * (cast_expression "(double *)(PTR_DAT_000b7720 + -0x2fd8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000b7720 + -0x2fd8)" ( (binary_expression "PTR_DAT_000b7720 + -0x2fd8" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar21 + -0x15d0);\n            }" else (compound_statement "{\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar21 + -0x15d0);\n            }" { (expression_statement "*(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar21 + -0x15d0);" (assignment_expression "*(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar21 + -0x15d0)" (pointer_expression "*(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8)" * (cast_expression "(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000b7720 + -0x2fd8)" ( (binary_expression "PTR_DAT_000b7720 + -0x2fd8" identifier + number_literal) )))) = (pointer_expression "*(undefined8 *)(puVar21 + -0x15d0)" * (cast_expression "(undefined8 *)(puVar21 + -0x15d0)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x15d0)" ( (binary_expression "puVar21 + -0x15d0" identifier + number_literal) ))))) ;) }))))) })) (expression_statement "puVar22 = PTR_DAT_000b7720;" (assignment_expression "puVar22 = PTR_DAT_000b7720" identifier = identifier) ;) (expression_statement "*(undefined4 *)(PTR_DAT_000b7720 + -0x2fe4) = 0;" (assignment_expression "*(undefined4 *)(PTR_DAT_000b7720 + -0x2fe4) = 0" (pointer_expression "*(undefined4 *)(PTR_DAT_000b7720 + -0x2fe4)" * (cast_expression "(undefined4 *)(PTR_DAT_000b7720 + -0x2fe4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000b7720 + -0x2fe4)" ( (binary_expression "PTR_DAT_000b7720 + -0x2fe4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar22 + -0x2fe8) = 0;" (assignment_expression "*(undefined4 *)(puVar22 + -0x2fe8) = 0" (pointer_expression "*(undefined4 *)(puVar22 + -0x2fe8)" * (cast_expression "(undefined4 *)(puVar22 + -0x2fe8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x2fe8)" ( (binary_expression "puVar22 + -0x2fe8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "dVar24 = ptimer_read(local_104);" (assignment_expression "dVar24 = ptimer_read(local_104)" identifier = (call_expression "ptimer_read(local_104)" identifier (argument_list "(local_104)" ( identifier )))) ;) (expression_statement "*(double *)(puVar22 + -0x2fe0) = dVar24;" (assignment_expression "*(double *)(puVar22 + -0x2fe0) = dVar24" (pointer_expression "*(double *)(puVar22 + -0x2fe0)" * (cast_expression "(double *)(puVar22 + -0x2fe0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x2fe0)" ( (binary_expression "puVar22 + -0x2fe0" identifier + number_literal) )))) = identifier) ;) })) }) (else_clause "else {\n        if (*(double *)(PTR_opt_000b746c + 0x120) == 0.0) {\n          dVar28 = *(double *)(PTR_DAT_000b758c + -0x15e0);\n        }\n        else {\n          dVar23 = ptimer_read(local_104);\n          pFVar15 = SUB84(dVar24,0);\n          if (*(double *)(PTR_opt_000b746c + 0x120) <\n              (dVar23 - dVar27) + *(double *)(PTR_DAT_000b758c + -0x15e0)) {\n            dVar28 = *(double *)(PTR_opt_000b746c + 0x120) - (dVar23 - dVar27);\n            if (dVar28 < 0.0) {\n              puVar7 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n              *puVar7 = 0x91;\n              pFVar17 = (FILE *)0xffffffff;\n              goto LAB_00051040;\n            }\n          }\n          else {\n            dVar28 = *(double *)(PTR_DAT_000b758c + -0x15e0);\n          }\n        }\n        pFVar20 = (FILE *)(*(code *)PTR_fd_read_000b7770)(fd,buf);\n        in_stack_fffffee0 = dVar28;\n        if (-1 < (int)pFVar20) goto LAB_000516fc;\n        piVar11 = (int *)(*(code *)PTR___errno_location_000b7eb8)();\n        dVar23 = (double)CONCAT44(pBVar13,pFVar15);\n        in_stack_fffffee0 = dVar28;\n        if (*piVar11 != 0x91) goto LAB_000518d4;\n        if (progress != (void *)0x0) {\n          ptimer_measure(local_104);\n          iVar2 = FUN_00051744();\n          return iVar2;\n        }\n        if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n          ptimer_measure(local_104);\n          iVar2 = FUN_00051744();\n          return iVar2;\n        }\n        pFVar20 = (FILE *)0x0;\nLAB_00051720:\n        dVar23 = (double)CONCAT44(pBVar13,pFVar15);\n        if (flags != 0) {\n          ptimer_measure(local_104);\n          if (0 < (int)pFVar20) goto LAB_000515b0;\n          goto LAB_00051748;\n        }\n        if (0 < (int)pFVar20) goto LAB_000515c4;\n      }" else (compound_statement "{\n        if (*(double *)(PTR_opt_000b746c + 0x120) == 0.0) {\n          dVar28 = *(double *)(PTR_DAT_000b758c + -0x15e0);\n        }\n        else {\n          dVar23 = ptimer_read(local_104);\n          pFVar15 = SUB84(dVar24,0);\n          if (*(double *)(PTR_opt_000b746c + 0x120) <\n              (dVar23 - dVar27) + *(double *)(PTR_DAT_000b758c + -0x15e0)) {\n            dVar28 = *(double *)(PTR_opt_000b746c + 0x120) - (dVar23 - dVar27);\n            if (dVar28 < 0.0) {\n              puVar7 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n              *puVar7 = 0x91;\n              pFVar17 = (FILE *)0xffffffff;\n              goto LAB_00051040;\n            }\n          }\n          else {\n            dVar28 = *(double *)(PTR_DAT_000b758c + -0x15e0);\n          }\n        }\n        pFVar20 = (FILE *)(*(code *)PTR_fd_read_000b7770)(fd,buf);\n        in_stack_fffffee0 = dVar28;\n        if (-1 < (int)pFVar20) goto LAB_000516fc;\n        piVar11 = (int *)(*(code *)PTR___errno_location_000b7eb8)();\n        dVar23 = (double)CONCAT44(pBVar13,pFVar15);\n        in_stack_fffffee0 = dVar28;\n        if (*piVar11 != 0x91) goto LAB_000518d4;\n        if (progress != (void *)0x0) {\n          ptimer_measure(local_104);\n          iVar2 = FUN_00051744();\n          return iVar2;\n        }\n        if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n          ptimer_measure(local_104);\n          iVar2 = FUN_00051744();\n          return iVar2;\n        }\n        pFVar20 = (FILE *)0x0;\nLAB_00051720:\n        dVar23 = (double)CONCAT44(pBVar13,pFVar15);\n        if (flags != 0) {\n          ptimer_measure(local_104);\n          if (0 < (int)pFVar20) goto LAB_000515b0;\n          goto LAB_00051748;\n        }\n        if (0 < (int)pFVar20) goto LAB_000515c4;\n      }" { (if_statement "if (*(double *)(PTR_opt_000b746c + 0x120) == 0.0) {\n          dVar28 = *(double *)(PTR_DAT_000b758c + -0x15e0);\n        }\n        else {\n          dVar23 = ptimer_read(local_104);\n          pFVar15 = SUB84(dVar24,0);\n          if (*(double *)(PTR_opt_000b746c + 0x120) <\n              (dVar23 - dVar27) + *(double *)(PTR_DAT_000b758c + -0x15e0)) {\n            dVar28 = *(double *)(PTR_opt_000b746c + 0x120) - (dVar23 - dVar27);\n            if (dVar28 < 0.0) {\n              puVar7 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n              *puVar7 = 0x91;\n              pFVar17 = (FILE *)0xffffffff;\n              goto LAB_00051040;\n            }\n          }\n          else {\n            dVar28 = *(double *)(PTR_DAT_000b758c + -0x15e0);\n          }\n        }" if (parenthesized_expression "(*(double *)(PTR_opt_000b746c + 0x120) == 0.0)" ( (binary_expression "*(double *)(PTR_opt_000b746c + 0x120) == 0.0" (pointer_expression "*(double *)(PTR_opt_000b746c + 0x120)" * (cast_expression "(double *)(PTR_opt_000b746c + 0x120)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_opt_000b746c + 0x120)" ( (binary_expression "PTR_opt_000b746c + 0x120" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n          dVar28 = *(double *)(PTR_DAT_000b758c + -0x15e0);\n        }" { (expression_statement "dVar28 = *(double *)(PTR_DAT_000b758c + -0x15e0);" (assignment_expression "dVar28 = *(double *)(PTR_DAT_000b758c + -0x15e0)" identifier = (pointer_expression "*(double *)(PTR_DAT_000b758c + -0x15e0)" * (cast_expression "(double *)(PTR_DAT_000b758c + -0x15e0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000b758c + -0x15e0)" ( (binary_expression "PTR_DAT_000b758c + -0x15e0" identifier + number_literal) ))))) ;) }) (else_clause "else {\n          dVar23 = ptimer_read(local_104);\n          pFVar15 = SUB84(dVar24,0);\n          if (*(double *)(PTR_opt_000b746c + 0x120) <\n              (dVar23 - dVar27) + *(double *)(PTR_DAT_000b758c + -0x15e0)) {\n            dVar28 = *(double *)(PTR_opt_000b746c + 0x120) - (dVar23 - dVar27);\n            if (dVar28 < 0.0) {\n              puVar7 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n              *puVar7 = 0x91;\n              pFVar17 = (FILE *)0xffffffff;\n              goto LAB_00051040;\n            }\n          }\n          else {\n            dVar28 = *(double *)(PTR_DAT_000b758c + -0x15e0);\n          }\n        }" else (compound_statement "{\n          dVar23 = ptimer_read(local_104);\n          pFVar15 = SUB84(dVar24,0);\n          if (*(double *)(PTR_opt_000b746c + 0x120) <\n              (dVar23 - dVar27) + *(double *)(PTR_DAT_000b758c + -0x15e0)) {\n            dVar28 = *(double *)(PTR_opt_000b746c + 0x120) - (dVar23 - dVar27);\n            if (dVar28 < 0.0) {\n              puVar7 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n              *puVar7 = 0x91;\n              pFVar17 = (FILE *)0xffffffff;\n              goto LAB_00051040;\n            }\n          }\n          else {\n            dVar28 = *(double *)(PTR_DAT_000b758c + -0x15e0);\n          }\n        }" { (expression_statement "dVar23 = ptimer_read(local_104);" (assignment_expression "dVar23 = ptimer_read(local_104)" identifier = (call_expression "ptimer_read(local_104)" identifier (argument_list "(local_104)" ( identifier )))) ;) (expression_statement "pFVar15 = SUB84(dVar24,0);" (assignment_expression "pFVar15 = SUB84(dVar24,0)" identifier = (call_expression "SUB84(dVar24,0)" identifier (argument_list "(dVar24,0)" ( identifier , number_literal )))) ;) (if_statement "if (*(double *)(PTR_opt_000b746c + 0x120) <\n              (dVar23 - dVar27) + *(double *)(PTR_DAT_000b758c + -0x15e0)) {\n            dVar28 = *(double *)(PTR_opt_000b746c + 0x120) - (dVar23 - dVar27);\n            if (dVar28 < 0.0) {\n              puVar7 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n              *puVar7 = 0x91;\n              pFVar17 = (FILE *)0xffffffff;\n              goto LAB_00051040;\n            }\n          }\n          else {\n            dVar28 = *(double *)(PTR_DAT_000b758c + -0x15e0);\n          }" if (parenthesized_expression "(*(double *)(PTR_opt_000b746c + 0x120) <\n              (dVar23 - dVar27) + *(double *)(PTR_DAT_000b758c + -0x15e0))" ( (binary_expression "*(double *)(PTR_opt_000b746c + 0x120) <\n              (dVar23 - dVar27) + *(double *)(PTR_DAT_000b758c + -0x15e0)" (pointer_expression "*(double *)(PTR_opt_000b746c + 0x120)" * (cast_expression "(double *)(PTR_opt_000b746c + 0x120)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_opt_000b746c + 0x120)" ( (binary_expression "PTR_opt_000b746c + 0x120" identifier + number_literal) )))) < (binary_expression "(dVar23 - dVar27) + *(double *)(PTR_DAT_000b758c + -0x15e0)" (parenthesized_expression "(dVar23 - dVar27)" ( (binary_expression "dVar23 - dVar27" identifier - identifier) )) + (pointer_expression "*(double *)(PTR_DAT_000b758c + -0x15e0)" * (cast_expression "(double *)(PTR_DAT_000b758c + -0x15e0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000b758c + -0x15e0)" ( (binary_expression "PTR_DAT_000b758c + -0x15e0" identifier + number_literal) )))))) )) (compound_statement "{\n            dVar28 = *(double *)(PTR_opt_000b746c + 0x120) - (dVar23 - dVar27);\n            if (dVar28 < 0.0) {\n              puVar7 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n              *puVar7 = 0x91;\n              pFVar17 = (FILE *)0xffffffff;\n              goto LAB_00051040;\n            }\n          }" { (expression_statement "dVar28 = *(double *)(PTR_opt_000b746c + 0x120) - (dVar23 - dVar27);" (assignment_expression "dVar28 = *(double *)(PTR_opt_000b746c + 0x120) - (dVar23 - dVar27)" identifier = (binary_expression "*(double *)(PTR_opt_000b746c + 0x120) - (dVar23 - dVar27)" (pointer_expression "*(double *)(PTR_opt_000b746c + 0x120)" * (cast_expression "(double *)(PTR_opt_000b746c + 0x120)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_opt_000b746c + 0x120)" ( (binary_expression "PTR_opt_000b746c + 0x120" identifier + number_literal) )))) - (parenthesized_expression "(dVar23 - dVar27)" ( (binary_expression "dVar23 - dVar27" identifier - identifier) )))) ;) (if_statement "if (dVar28 < 0.0) {\n              puVar7 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n              *puVar7 = 0x91;\n              pFVar17 = (FILE *)0xffffffff;\n              goto LAB_00051040;\n            }" if (parenthesized_expression "(dVar28 < 0.0)" ( (binary_expression "dVar28 < 0.0" identifier < number_literal) )) (compound_statement "{\n              puVar7 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n              *puVar7 = 0x91;\n              pFVar17 = (FILE *)0xffffffff;\n              goto LAB_00051040;\n            }" { (expression_statement "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();" (assignment_expression "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_000b7eb8)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_000b7eb8)()" (parenthesized_expression "(*(code *)PTR___errno_location_000b7eb8)" ( (pointer_expression "*(code *)PTR___errno_location_000b7eb8" * (cast_expression "(code *)PTR___errno_location_000b7eb8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "*puVar7 = 0x91;" (assignment_expression "*puVar7 = 0x91" (pointer_expression "*puVar7" * identifier) = number_literal) ;) (expression_statement "pFVar17 = (FILE *)0xffffffff;" (assignment_expression "pFVar17 = (FILE *)0xffffffff" identifier = (cast_expression "(FILE *)0xffffffff" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_00051040;" goto statement_identifier ;) })) }) (else_clause "else {\n            dVar28 = *(double *)(PTR_DAT_000b758c + -0x15e0);\n          }" else (compound_statement "{\n            dVar28 = *(double *)(PTR_DAT_000b758c + -0x15e0);\n          }" { (expression_statement "dVar28 = *(double *)(PTR_DAT_000b758c + -0x15e0);" (assignment_expression "dVar28 = *(double *)(PTR_DAT_000b758c + -0x15e0)" identifier = (pointer_expression "*(double *)(PTR_DAT_000b758c + -0x15e0)" * (cast_expression "(double *)(PTR_DAT_000b758c + -0x15e0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000b758c + -0x15e0)" ( (binary_expression "PTR_DAT_000b758c + -0x15e0" identifier + number_literal) ))))) ;) }))) }))) (expression_statement "pFVar20 = (FILE *)(*(code *)PTR_fd_read_000b7770)(fd,buf);" (assignment_expression "pFVar20 = (FILE *)(*(code *)PTR_fd_read_000b7770)(fd,buf)" identifier = (cast_expression "(FILE *)(*(code *)PTR_fd_read_000b7770)(fd,buf)" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_fd_read_000b7770)(fd,buf)" (parenthesized_expression "(*(code *)PTR_fd_read_000b7770)" ( (pointer_expression "*(code *)PTR_fd_read_000b7770" * (cast_expression "(code *)PTR_fd_read_000b7770" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(fd,buf)" ( identifier , identifier ))))) ;) (expression_statement "in_stack_fffffee0 = dVar28;" (assignment_expression "in_stack_fffffee0 = dVar28" identifier = identifier) ;) (if_statement "if (-1 < (int)pFVar20) goto LAB_000516fc;" if (parenthesized_expression "(-1 < (int)pFVar20)" ( (binary_expression "-1 < (int)pFVar20" number_literal < (cast_expression "(int)pFVar20" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_000516fc;" goto statement_identifier ;)) (expression_statement "piVar11 = (int *)(*(code *)PTR___errno_location_000b7eb8)();" (assignment_expression "piVar11 = (int *)(*(code *)PTR___errno_location_000b7eb8)()" identifier = (cast_expression "(int *)(*(code *)PTR___errno_location_000b7eb8)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_000b7eb8)()" (parenthesized_expression "(*(code *)PTR___errno_location_000b7eb8)" ( (pointer_expression "*(code *)PTR___errno_location_000b7eb8" * (cast_expression "(code *)PTR___errno_location_000b7eb8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "dVar23 = (double)CONCAT44(pBVar13,pFVar15);" (assignment_expression "dVar23 = (double)CONCAT44(pBVar13,pFVar15)" identifier = (cast_expression "(double)CONCAT44(pBVar13,pFVar15)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(pBVar13,pFVar15)" identifier (argument_list "(pBVar13,pFVar15)" ( identifier , identifier ))))) ;) (expression_statement "in_stack_fffffee0 = dVar28;" (assignment_expression "in_stack_fffffee0 = dVar28" identifier = identifier) ;) (if_statement "if (*piVar11 != 0x91) goto LAB_000518d4;" if (parenthesized_expression "(*piVar11 != 0x91)" ( (binary_expression "*piVar11 != 0x91" (pointer_expression "*piVar11" * identifier) != number_literal) )) (goto_statement "goto LAB_000518d4;" goto statement_identifier ;)) (if_statement "if (progress != (void *)0x0) {\n          ptimer_measure(local_104);\n          iVar2 = FUN_00051744();\n          return iVar2;\n        }" if (parenthesized_expression "(progress != (void *)0x0)" ( (binary_expression "progress != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          ptimer_measure(local_104);\n          iVar2 = FUN_00051744();\n          return iVar2;\n        }" { (expression_statement "ptimer_measure(local_104);" (call_expression "ptimer_measure(local_104)" identifier (argument_list "(local_104)" ( identifier ))) ;) (expression_statement "iVar2 = FUN_00051744();" (assignment_expression "iVar2 = FUN_00051744()" identifier = (call_expression "FUN_00051744()" identifier (argument_list "()" ( )))) ;) (return_statement "return iVar2;" return identifier ;) })) (if_statement "if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n          ptimer_measure(local_104);\n          iVar2 = FUN_00051744();\n          return iVar2;\n        }" if (parenthesized_expression "(*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0)" ( (binary_expression "*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0" (binary_expression "*(int *)(PTR_opt_000b746c + 0x158) != 0" (pointer_expression "*(int *)(PTR_opt_000b746c + 0x158)" * (cast_expression "(int *)(PTR_opt_000b746c + 0x158)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_opt_000b746c + 0x158)" ( (binary_expression "PTR_opt_000b746c + 0x158" identifier + number_literal) )))) != number_literal) || (binary_expression "*(int *)(PTR_opt_000b746c + 0x15c) != 0" (pointer_expression "*(int *)(PTR_opt_000b746c + 0x15c)" * (cast_expression "(int *)(PTR_opt_000b746c + 0x15c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_opt_000b746c + 0x15c)" ( (binary_expression "PTR_opt_000b746c + 0x15c" identifier + number_literal) )))) != number_literal)) )) (compound_statement "{\n          ptimer_measure(local_104);\n          iVar2 = FUN_00051744();\n          return iVar2;\n        }" { (expression_statement "ptimer_measure(local_104);" (call_expression "ptimer_measure(local_104)" identifier (argument_list "(local_104)" ( identifier ))) ;) (expression_statement "iVar2 = FUN_00051744();" (assignment_expression "iVar2 = FUN_00051744()" identifier = (call_expression "FUN_00051744()" identifier (argument_list "()" ( )))) ;) (return_statement "return iVar2;" return identifier ;) })) (expression_statement "pFVar20 = (FILE *)0x0;" (assignment_expression "pFVar20 = (FILE *)0x0" identifier = (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_00051720:\n        dVar23 = (double)CONCAT44(pBVar13,pFVar15);" statement_identifier : (expression_statement "dVar23 = (double)CONCAT44(pBVar13,pFVar15);" (assignment_expression "dVar23 = (double)CONCAT44(pBVar13,pFVar15)" identifier = (cast_expression "(double)CONCAT44(pBVar13,pFVar15)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(pBVar13,pFVar15)" identifier (argument_list "(pBVar13,pFVar15)" ( identifier , identifier ))))) ;)) (if_statement "if (flags != 0) {\n          ptimer_measure(local_104);\n          if (0 < (int)pFVar20) goto LAB_000515b0;\n          goto LAB_00051748;\n        }" if (parenthesized_expression "(flags != 0)" ( (binary_expression "flags != 0" identifier != number_literal) )) (compound_statement "{\n          ptimer_measure(local_104);\n          if (0 < (int)pFVar20) goto LAB_000515b0;\n          goto LAB_00051748;\n        }" { (expression_statement "ptimer_measure(local_104);" (call_expression "ptimer_measure(local_104)" identifier (argument_list "(local_104)" ( identifier ))) ;) (if_statement "if (0 < (int)pFVar20) goto LAB_000515b0;" if (parenthesized_expression "(0 < (int)pFVar20)" ( (binary_expression "0 < (int)pFVar20" number_literal < (cast_expression "(int)pFVar20" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_000515b0;" goto statement_identifier ;)) (goto_statement "goto LAB_00051748;" goto statement_identifier ;) })) (if_statement "if (0 < (int)pFVar20) goto LAB_000515c4;" if (parenthesized_expression "(0 < (int)pFVar20)" ( (binary_expression "0 < (int)pFVar20" number_literal < (cast_expression "(int)pFVar20" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_000515c4;" goto statement_identifier ;)) }))) (labeled_statement "LAB_0005175c:\n      if (progress != (void *)0x0) {\n        in_stack_fffffee0 = ptimer_read(local_104);\n        iVar14 = (int)pFVar20 >> 0x1f;\n        pFVar17 = pFVar20;\n        progress_update(progress,(wgint)in_stack_fffffee0,in_f12_13);\n        dVar23 = (double)CONCAT44(iVar14,pFVar17);\n      }" statement_identifier : (if_statement "if (progress != (void *)0x0) {\n        in_stack_fffffee0 = ptimer_read(local_104);\n        iVar14 = (int)pFVar20 >> 0x1f;\n        pFVar17 = pFVar20;\n        progress_update(progress,(wgint)in_stack_fffffee0,in_f12_13);\n        dVar23 = (double)CONCAT44(iVar14,pFVar17);\n      }" if (parenthesized_expression "(progress != (void *)0x0)" ( (binary_expression "progress != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        in_stack_fffffee0 = ptimer_read(local_104);\n        iVar14 = (int)pFVar20 >> 0x1f;\n        pFVar17 = pFVar20;\n        progress_update(progress,(wgint)in_stack_fffffee0,in_f12_13);\n        dVar23 = (double)CONCAT44(iVar14,pFVar17);\n      }" { (expression_statement "in_stack_fffffee0 = ptimer_read(local_104);" (assignment_expression "in_stack_fffffee0 = ptimer_read(local_104)" identifier = (call_expression "ptimer_read(local_104)" identifier (argument_list "(local_104)" ( identifier )))) ;) (expression_statement "iVar14 = (int)pFVar20 >> 0x1f;" (assignment_expression "iVar14 = (int)pFVar20 >> 0x1f" identifier = (binary_expression "(int)pFVar20 >> 0x1f" (cast_expression "(int)pFVar20" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (expression_statement "pFVar17 = pFVar20;" (assignment_expression "pFVar17 = pFVar20" identifier = identifier) ;) (expression_statement "progress_update(progress,(wgint)in_stack_fffffee0,in_f12_13);" (call_expression "progress_update(progress,(wgint)in_stack_fffffee0,in_f12_13)" identifier (argument_list "(progress,(wgint)in_stack_fffffee0,in_f12_13)" ( identifier , (cast_expression "(wgint)in_stack_fffffee0" ( (type_descriptor "wgint" type_identifier) ) identifier) , identifier ))) ;) (expression_statement "dVar23 = (double)CONCAT44(iVar14,pFVar17);" (assignment_expression "dVar23 = (double)CONCAT44(iVar14,pFVar17)" identifier = (cast_expression "(double)CONCAT44(iVar14,pFVar17)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(iVar14,pFVar17)" identifier (argument_list "(iVar14,pFVar17)" ( identifier , identifier ))))) ;) }))) })) (expression_statement "dVar28 = *(double *)(PTR_opt_000b746c + 0x120);" (assignment_expression "dVar28 = *(double *)(PTR_opt_000b746c + 0x120)" identifier = (pointer_expression "*(double *)(PTR_opt_000b746c + 0x120)" * (cast_expression "(double *)(PTR_opt_000b746c + 0x120)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_opt_000b746c + 0x120)" ( (binary_expression "PTR_opt_000b746c + 0x120" identifier + number_literal) ))))) ;) (if_statement "if (uVar3 == 0) {\nLAB_00051864:\n      pBVar13 = pBVar9;\n      dVar24 = dVar23;\n      goto LAB_00051868;\n    }" if (parenthesized_expression "(uVar3 == 0)" ( (binary_expression "uVar3 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00051864:\n      pBVar13 = pBVar9;\n      dVar24 = dVar23;\n      goto LAB_00051868;\n    }" { (labeled_statement "LAB_00051864:\n      pBVar13 = pBVar9;" statement_identifier : (expression_statement "pBVar13 = pBVar9;" (assignment_expression "pBVar13 = pBVar9" identifier = identifier) ;)) (expression_statement "dVar24 = dVar23;" (assignment_expression "dVar24 = dVar23" identifier = identifier) ;) (goto_statement "goto LAB_00051868;" goto statement_identifier ;) })) (labeled_statement "LAB_00051820:\n    if (iVar18 != 0 || local_f0 != (Bytef *)0x0) {\nLAB_00051830:\n      pBVar9 = local_f0;\n      if ((iVar14 <= iVar18) &&\n         ((pBVar13 = local_e0, dVar24 = dVar23, iVar14 != iVar18 ||\n          (pBVar9 = local_f0, local_e0 <= local_f0)))) goto LAB_00051868;\n      goto LAB_00051864;\n    }" statement_identifier : (if_statement "if (iVar18 != 0 || local_f0 != (Bytef *)0x0) {\nLAB_00051830:\n      pBVar9 = local_f0;\n      if ((iVar14 <= iVar18) &&\n         ((pBVar13 = local_e0, dVar24 = dVar23, iVar14 != iVar18 ||\n          (pBVar9 = local_f0, local_e0 <= local_f0)))) goto LAB_00051868;\n      goto LAB_00051864;\n    }" if (parenthesized_expression "(iVar18 != 0 || local_f0 != (Bytef *)0x0)" ( (binary_expression "iVar18 != 0 || local_f0 != (Bytef *)0x0" (binary_expression "iVar18 != 0" identifier != number_literal) || (binary_expression "local_f0 != (Bytef *)0x0" identifier != (cast_expression "(Bytef *)0x0" ( (type_descriptor "Bytef *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\nLAB_00051830:\n      pBVar9 = local_f0;\n      if ((iVar14 <= iVar18) &&\n         ((pBVar13 = local_e0, dVar24 = dVar23, iVar14 != iVar18 ||\n          (pBVar9 = local_f0, local_e0 <= local_f0)))) goto LAB_00051868;\n      goto LAB_00051864;\n    }" { (labeled_statement "LAB_00051830:\n      pBVar9 = local_f0;" statement_identifier : (expression_statement "pBVar9 = local_f0;" (assignment_expression "pBVar9 = local_f0" identifier = identifier) ;)) (if_statement "if ((iVar14 <= iVar18) &&\n         ((pBVar13 = local_e0, dVar24 = dVar23, iVar14 != iVar18 ||\n          (pBVar9 = local_f0, local_e0 <= local_f0)))) goto LAB_00051868;" if (parenthesized_expression "((iVar14 <= iVar18) &&\n         ((pBVar13 = local_e0, dVar24 = dVar23, iVar14 != iVar18 ||\n          (pBVar9 = local_f0, local_e0 <= local_f0))))" ( (binary_expression "(iVar14 <= iVar18) &&\n         ((pBVar13 = local_e0, dVar24 = dVar23, iVar14 != iVar18 ||\n          (pBVar9 = local_f0, local_e0 <= local_f0)))" (parenthesized_expression "(iVar14 <= iVar18)" ( (binary_expression "iVar14 <= iVar18" identifier <= identifier) )) && (parenthesized_expression "((pBVar13 = local_e0, dVar24 = dVar23, iVar14 != iVar18 ||\n          (pBVar9 = local_f0, local_e0 <= local_f0)))" ( (parenthesized_expression "(pBVar13 = local_e0, dVar24 = dVar23, iVar14 != iVar18 ||\n          (pBVar9 = local_f0, local_e0 <= local_f0))" ( (comma_expression "pBVar13 = local_e0, dVar24 = dVar23, iVar14 != iVar18 ||\n          (pBVar9 = local_f0, local_e0 <= local_f0)" (assignment_expression "pBVar13 = local_e0" identifier = identifier) , (comma_expression "dVar24 = dVar23, iVar14 != iVar18 ||\n          (pBVar9 = local_f0, local_e0 <= local_f0)" (assignment_expression "dVar24 = dVar23" identifier = identifier) , (binary_expression "iVar14 != iVar18 ||\n          (pBVar9 = local_f0, local_e0 <= local_f0)" (binary_expression "iVar14 != iVar18" identifier != identifier) || (parenthesized_expression "(pBVar9 = local_f0, local_e0 <= local_f0)" ( (comma_expression "pBVar9 = local_f0, local_e0 <= local_f0" (assignment_expression "pBVar9 = local_f0" identifier = identifier) , (binary_expression "local_e0 <= local_f0" identifier <= identifier)) ))))) )) ))) )) (goto_statement "goto LAB_00051868;" goto statement_identifier ;)) (goto_statement "goto LAB_00051864;" goto statement_identifier ;) }))) (expression_statement "pcVar8 = fd_read_line(fd);" (assignment_expression "pcVar8 = fd_read_line(fd)" identifier = (call_expression "fd_read_line(fd)" identifier (argument_list "(fd)" ( identifier )))) ;) (expression_statement "pFVar17 = SUB84(dVar23,0);" (assignment_expression "pFVar17 = SUB84(dVar23,0)" identifier = (call_expression "SUB84(dVar23,0)" identifier (argument_list "(dVar23,0)" ( identifier , number_literal )))) ;) (if_statement "if (pcVar8 == (char *)0x0) {\nLAB_00050e90:\n      pFVar20 = (FILE *)0xffffffff;\nLAB_000518d4:\n      bVar1 = (int)pFVar20 < 0;\n      dVar24 = dVar23;\nLAB_000518d8:\n      pFVar17 = (FILE *)0xffffffff;\n      if (!bVar1) {\n        pFVar17 = pFVar20;\n      }\n    }\n    else {\n      if (in_stack_00000030 != (FILE *)0x0) {\n        uVar5 = (*(code *)PTR_strlen_000b7c94)(pcVar8);\n        pFVar17 = in_stack_00000030;\n        (*(code *)PTR_fwrite_000b7c24)(pcVar8,1,uVar5);\n      }\n      uVar5 = 0x10;\n      local_f0 = (Bytef *)(*(code *)PTR_strtol_000b7d3c)(pcVar8,&endl);\n      iVar18 = (int)local_f0 >> 0x1f;\n      (*(code *)PTR_free_000b7d34)(pcVar8);\n      dVar23 = (double)CONCAT44(uVar5,pFVar17);\n      if (iVar18 < 0) goto LAB_00050e90;\n      if (local_f0 != (Bytef *)0x0) goto LAB_00051830;\n      pcVar8 = fd_read_line(fd);\n      dVar24 = (double)CONCAT44(uVar5,pFVar17);\n      if (pcVar8 == (char *)0x0) {\n        pFVar17 = (FILE *)0xffffffff;\n      }\n      else {\n        if (in_stack_00000030 != (FILE *)0x0) {\n          uVar5 = (*(code *)PTR_strlen_000b7c94)(pcVar8);\n          (*(code *)PTR_fwrite_000b7c24)(pcVar8,1);\n          pFVar17 = in_stack_00000030;\n        }\n        (*(code *)PTR_free_000b7d34)(pcVar8);\n        dVar24 = (double)CONCAT44(uVar5,pFVar17);\n        pFVar17 = (FILE *)0x0;\n      }\n    }" if (parenthesized_expression "(pcVar8 == (char *)0x0)" ( (binary_expression "pcVar8 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00050e90:\n      pFVar20 = (FILE *)0xffffffff;\nLAB_000518d4:\n      bVar1 = (int)pFVar20 < 0;\n      dVar24 = dVar23;\nLAB_000518d8:\n      pFVar17 = (FILE *)0xffffffff;\n      if (!bVar1) {\n        pFVar17 = pFVar20;\n      }\n    }" { (labeled_statement "LAB_00050e90:\n      pFVar20 = (FILE *)0xffffffff;" statement_identifier : (expression_statement "pFVar20 = (FILE *)0xffffffff;" (assignment_expression "pFVar20 = (FILE *)0xffffffff" identifier = (cast_expression "(FILE *)0xffffffff" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (labeled_statement "LAB_000518d4:\n      bVar1 = (int)pFVar20 < 0;" statement_identifier : (expression_statement "bVar1 = (int)pFVar20 < 0;" (assignment_expression "bVar1 = (int)pFVar20 < 0" identifier = (binary_expression "(int)pFVar20 < 0" (cast_expression "(int)pFVar20" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal)) ;)) (expression_statement "dVar24 = dVar23;" (assignment_expression "dVar24 = dVar23" identifier = identifier) ;) (labeled_statement "LAB_000518d8:\n      pFVar17 = (FILE *)0xffffffff;" statement_identifier : (expression_statement "pFVar17 = (FILE *)0xffffffff;" (assignment_expression "pFVar17 = (FILE *)0xffffffff" identifier = (cast_expression "(FILE *)0xffffffff" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (if_statement "if (!bVar1) {\n        pFVar17 = pFVar20;\n      }" if (parenthesized_expression "(!bVar1)" ( (unary_expression "!bVar1" ! identifier) )) (compound_statement "{\n        pFVar17 = pFVar20;\n      }" { (expression_statement "pFVar17 = pFVar20;" (assignment_expression "pFVar17 = pFVar20" identifier = identifier) ;) })) }) (else_clause "else {\n      if (in_stack_00000030 != (FILE *)0x0) {\n        uVar5 = (*(code *)PTR_strlen_000b7c94)(pcVar8);\n        pFVar17 = in_stack_00000030;\n        (*(code *)PTR_fwrite_000b7c24)(pcVar8,1,uVar5);\n      }\n      uVar5 = 0x10;\n      local_f0 = (Bytef *)(*(code *)PTR_strtol_000b7d3c)(pcVar8,&endl);\n      iVar18 = (int)local_f0 >> 0x1f;\n      (*(code *)PTR_free_000b7d34)(pcVar8);\n      dVar23 = (double)CONCAT44(uVar5,pFVar17);\n      if (iVar18 < 0) goto LAB_00050e90;\n      if (local_f0 != (Bytef *)0x0) goto LAB_00051830;\n      pcVar8 = fd_read_line(fd);\n      dVar24 = (double)CONCAT44(uVar5,pFVar17);\n      if (pcVar8 == (char *)0x0) {\n        pFVar17 = (FILE *)0xffffffff;\n      }\n      else {\n        if (in_stack_00000030 != (FILE *)0x0) {\n          uVar5 = (*(code *)PTR_strlen_000b7c94)(pcVar8);\n          (*(code *)PTR_fwrite_000b7c24)(pcVar8,1);\n          pFVar17 = in_stack_00000030;\n        }\n        (*(code *)PTR_free_000b7d34)(pcVar8);\n        dVar24 = (double)CONCAT44(uVar5,pFVar17);\n        pFVar17 = (FILE *)0x0;\n      }\n    }" else (compound_statement "{\n      if (in_stack_00000030 != (FILE *)0x0) {\n        uVar5 = (*(code *)PTR_strlen_000b7c94)(pcVar8);\n        pFVar17 = in_stack_00000030;\n        (*(code *)PTR_fwrite_000b7c24)(pcVar8,1,uVar5);\n      }\n      uVar5 = 0x10;\n      local_f0 = (Bytef *)(*(code *)PTR_strtol_000b7d3c)(pcVar8,&endl);\n      iVar18 = (int)local_f0 >> 0x1f;\n      (*(code *)PTR_free_000b7d34)(pcVar8);\n      dVar23 = (double)CONCAT44(uVar5,pFVar17);\n      if (iVar18 < 0) goto LAB_00050e90;\n      if (local_f0 != (Bytef *)0x0) goto LAB_00051830;\n      pcVar8 = fd_read_line(fd);\n      dVar24 = (double)CONCAT44(uVar5,pFVar17);\n      if (pcVar8 == (char *)0x0) {\n        pFVar17 = (FILE *)0xffffffff;\n      }\n      else {\n        if (in_stack_00000030 != (FILE *)0x0) {\n          uVar5 = (*(code *)PTR_strlen_000b7c94)(pcVar8);\n          (*(code *)PTR_fwrite_000b7c24)(pcVar8,1);\n          pFVar17 = in_stack_00000030;\n        }\n        (*(code *)PTR_free_000b7d34)(pcVar8);\n        dVar24 = (double)CONCAT44(uVar5,pFVar17);\n        pFVar17 = (FILE *)0x0;\n      }\n    }" { (if_statement "if (in_stack_00000030 != (FILE *)0x0) {\n        uVar5 = (*(code *)PTR_strlen_000b7c94)(pcVar8);\n        pFVar17 = in_stack_00000030;\n        (*(code *)PTR_fwrite_000b7c24)(pcVar8,1,uVar5);\n      }" if (parenthesized_expression "(in_stack_00000030 != (FILE *)0x0)" ( (binary_expression "in_stack_00000030 != (FILE *)0x0" identifier != (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar5 = (*(code *)PTR_strlen_000b7c94)(pcVar8);\n        pFVar17 = in_stack_00000030;\n        (*(code *)PTR_fwrite_000b7c24)(pcVar8,1,uVar5);\n      }" { (expression_statement "uVar5 = (*(code *)PTR_strlen_000b7c94)(pcVar8);" (assignment_expression "uVar5 = (*(code *)PTR_strlen_000b7c94)(pcVar8)" identifier = (call_expression "(*(code *)PTR_strlen_000b7c94)(pcVar8)" (parenthesized_expression "(*(code *)PTR_strlen_000b7c94)" ( (pointer_expression "*(code *)PTR_strlen_000b7c94" * (cast_expression "(code *)PTR_strlen_000b7c94" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar8)" ( identifier )))) ;) (expression_statement "pFVar17 = in_stack_00000030;" (assignment_expression "pFVar17 = in_stack_00000030" identifier = identifier) ;) (expression_statement "(*(code *)PTR_fwrite_000b7c24)(pcVar8,1,uVar5);" (call_expression "(*(code *)PTR_fwrite_000b7c24)(pcVar8,1,uVar5)" (parenthesized_expression "(*(code *)PTR_fwrite_000b7c24)" ( (pointer_expression "*(code *)PTR_fwrite_000b7c24" * (cast_expression "(code *)PTR_fwrite_000b7c24" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar8,1,uVar5)" ( identifier , number_literal , identifier ))) ;) })) (expression_statement "uVar5 = 0x10;" (assignment_expression "uVar5 = 0x10" identifier = number_literal) ;) (expression_statement "local_f0 = (Bytef *)(*(code *)PTR_strtol_000b7d3c)(pcVar8,&endl);" (assignment_expression "local_f0 = (Bytef *)(*(code *)PTR_strtol_000b7d3c)(pcVar8,&endl)" identifier = (cast_expression "(Bytef *)(*(code *)PTR_strtol_000b7d3c)(pcVar8,&endl)" ( (type_descriptor "Bytef *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_strtol_000b7d3c)(pcVar8,&endl)" (parenthesized_expression "(*(code *)PTR_strtol_000b7d3c)" ( (pointer_expression "*(code *)PTR_strtol_000b7d3c" * (cast_expression "(code *)PTR_strtol_000b7d3c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar8,&endl)" ( identifier , (pointer_expression "&endl" & identifier) ))))) ;) (expression_statement "iVar18 = (int)local_f0 >> 0x1f;" (assignment_expression "iVar18 = (int)local_f0 >> 0x1f" identifier = (binary_expression "(int)local_f0 >> 0x1f" (cast_expression "(int)local_f0" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (expression_statement "(*(code *)PTR_free_000b7d34)(pcVar8);" (call_expression "(*(code *)PTR_free_000b7d34)(pcVar8)" (parenthesized_expression "(*(code *)PTR_free_000b7d34)" ( (pointer_expression "*(code *)PTR_free_000b7d34" * (cast_expression "(code *)PTR_free_000b7d34" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar8)" ( identifier ))) ;) (expression_statement "dVar23 = (double)CONCAT44(uVar5,pFVar17);" (assignment_expression "dVar23 = (double)CONCAT44(uVar5,pFVar17)" identifier = (cast_expression "(double)CONCAT44(uVar5,pFVar17)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(uVar5,pFVar17)" identifier (argument_list "(uVar5,pFVar17)" ( identifier , identifier ))))) ;) (if_statement "if (iVar18 < 0) goto LAB_00050e90;" if (parenthesized_expression "(iVar18 < 0)" ( (binary_expression "iVar18 < 0" identifier < number_literal) )) (goto_statement "goto LAB_00050e90;" goto statement_identifier ;)) (if_statement "if (local_f0 != (Bytef *)0x0) goto LAB_00051830;" if (parenthesized_expression "(local_f0 != (Bytef *)0x0)" ( (binary_expression "local_f0 != (Bytef *)0x0" identifier != (cast_expression "(Bytef *)0x0" ( (type_descriptor "Bytef *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00051830;" goto statement_identifier ;)) (expression_statement "pcVar8 = fd_read_line(fd);" (assignment_expression "pcVar8 = fd_read_line(fd)" identifier = (call_expression "fd_read_line(fd)" identifier (argument_list "(fd)" ( identifier )))) ;) (expression_statement "dVar24 = (double)CONCAT44(uVar5,pFVar17);" (assignment_expression "dVar24 = (double)CONCAT44(uVar5,pFVar17)" identifier = (cast_expression "(double)CONCAT44(uVar5,pFVar17)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(uVar5,pFVar17)" identifier (argument_list "(uVar5,pFVar17)" ( identifier , identifier ))))) ;) (if_statement "if (pcVar8 == (char *)0x0) {\n        pFVar17 = (FILE *)0xffffffff;\n      }\n      else {\n        if (in_stack_00000030 != (FILE *)0x0) {\n          uVar5 = (*(code *)PTR_strlen_000b7c94)(pcVar8);\n          (*(code *)PTR_fwrite_000b7c24)(pcVar8,1);\n          pFVar17 = in_stack_00000030;\n        }\n        (*(code *)PTR_free_000b7d34)(pcVar8);\n        dVar24 = (double)CONCAT44(uVar5,pFVar17);\n        pFVar17 = (FILE *)0x0;\n      }" if (parenthesized_expression "(pcVar8 == (char *)0x0)" ( (binary_expression "pcVar8 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pFVar17 = (FILE *)0xffffffff;\n      }" { (expression_statement "pFVar17 = (FILE *)0xffffffff;" (assignment_expression "pFVar17 = (FILE *)0xffffffff" identifier = (cast_expression "(FILE *)0xffffffff" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n        if (in_stack_00000030 != (FILE *)0x0) {\n          uVar5 = (*(code *)PTR_strlen_000b7c94)(pcVar8);\n          (*(code *)PTR_fwrite_000b7c24)(pcVar8,1);\n          pFVar17 = in_stack_00000030;\n        }\n        (*(code *)PTR_free_000b7d34)(pcVar8);\n        dVar24 = (double)CONCAT44(uVar5,pFVar17);\n        pFVar17 = (FILE *)0x0;\n      }" else (compound_statement "{\n        if (in_stack_00000030 != (FILE *)0x0) {\n          uVar5 = (*(code *)PTR_strlen_000b7c94)(pcVar8);\n          (*(code *)PTR_fwrite_000b7c24)(pcVar8,1);\n          pFVar17 = in_stack_00000030;\n        }\n        (*(code *)PTR_free_000b7d34)(pcVar8);\n        dVar24 = (double)CONCAT44(uVar5,pFVar17);\n        pFVar17 = (FILE *)0x0;\n      }" { (if_statement "if (in_stack_00000030 != (FILE *)0x0) {\n          uVar5 = (*(code *)PTR_strlen_000b7c94)(pcVar8);\n          (*(code *)PTR_fwrite_000b7c24)(pcVar8,1);\n          pFVar17 = in_stack_00000030;\n        }" if (parenthesized_expression "(in_stack_00000030 != (FILE *)0x0)" ( (binary_expression "in_stack_00000030 != (FILE *)0x0" identifier != (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          uVar5 = (*(code *)PTR_strlen_000b7c94)(pcVar8);\n          (*(code *)PTR_fwrite_000b7c24)(pcVar8,1);\n          pFVar17 = in_stack_00000030;\n        }" { (expression_statement "uVar5 = (*(code *)PTR_strlen_000b7c94)(pcVar8);" (assignment_expression "uVar5 = (*(code *)PTR_strlen_000b7c94)(pcVar8)" identifier = (call_expression "(*(code *)PTR_strlen_000b7c94)(pcVar8)" (parenthesized_expression "(*(code *)PTR_strlen_000b7c94)" ( (pointer_expression "*(code *)PTR_strlen_000b7c94" * (cast_expression "(code *)PTR_strlen_000b7c94" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar8)" ( identifier )))) ;) (expression_statement "(*(code *)PTR_fwrite_000b7c24)(pcVar8,1);" (call_expression "(*(code *)PTR_fwrite_000b7c24)(pcVar8,1)" (parenthesized_expression "(*(code *)PTR_fwrite_000b7c24)" ( (pointer_expression "*(code *)PTR_fwrite_000b7c24" * (cast_expression "(code *)PTR_fwrite_000b7c24" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar8,1)" ( identifier , number_literal ))) ;) (expression_statement "pFVar17 = in_stack_00000030;" (assignment_expression "pFVar17 = in_stack_00000030" identifier = identifier) ;) })) (expression_statement "(*(code *)PTR_free_000b7d34)(pcVar8);" (call_expression "(*(code *)PTR_free_000b7d34)(pcVar8)" (parenthesized_expression "(*(code *)PTR_free_000b7d34)" ( (pointer_expression "*(code *)PTR_free_000b7d34" * (cast_expression "(code *)PTR_free_000b7d34" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar8)" ( identifier ))) ;) (expression_statement "dVar24 = (double)CONCAT44(uVar5,pFVar17);" (assignment_expression "dVar24 = (double)CONCAT44(uVar5,pFVar17)" identifier = (cast_expression "(double)CONCAT44(uVar5,pFVar17)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(uVar5,pFVar17)" identifier (argument_list "(uVar5,pFVar17)" ( identifier , identifier ))))) ;) (expression_statement "pFVar17 = (FILE *)0x0;" (assignment_expression "pFVar17 = (FILE *)0x0" identifier = (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) }))) (labeled_statement "LAB_00051040:\n    puVar7 = (undefined4 *)((ulonglong)in_stack_fffffee0 >> 0x20);" statement_identifier : (expression_statement "puVar7 = (undefined4 *)((ulonglong)in_stack_fffffee0 >> 0x20);" (assignment_expression "puVar7 = (undefined4 *)((ulonglong)in_stack_fffffee0 >> 0x20)" identifier = (cast_expression "(undefined4 *)((ulonglong)in_stack_fffffee0 >> 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulonglong)in_stack_fffffee0 >> 0x20)" ( (binary_expression "(ulonglong)in_stack_fffffee0 >> 0x20" (cast_expression "(ulonglong)in_stack_fffffee0" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;)) (if_statement "if (progress != (void *)0x0) {\n      dVar24 = ptimer_read(local_104);\n      uVar16 = SUB84(dVar24,0);\n      uVar5 = (undefined4)((ulonglong)dVar24 >> 0x20);\n      progress_finish(progress,in_f12_13);\n      dVar24 = (double)CONCAT44(uVar5,uVar16);\n    }" if (parenthesized_expression "(progress != (void *)0x0)" ( (binary_expression "progress != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      dVar24 = ptimer_read(local_104);\n      uVar16 = SUB84(dVar24,0);\n      uVar5 = (undefined4)((ulonglong)dVar24 >> 0x20);\n      progress_finish(progress,in_f12_13);\n      dVar24 = (double)CONCAT44(uVar5,uVar16);\n    }" { (expression_statement "dVar24 = ptimer_read(local_104);" (assignment_expression "dVar24 = ptimer_read(local_104)" identifier = (call_expression "ptimer_read(local_104)" identifier (argument_list "(local_104)" ( identifier )))) ;) (expression_statement "uVar16 = SUB84(dVar24,0);" (assignment_expression "uVar16 = SUB84(dVar24,0)" identifier = (call_expression "SUB84(dVar24,0)" identifier (argument_list "(dVar24,0)" ( identifier , number_literal )))) ;) (expression_statement "uVar5 = (undefined4)((ulonglong)dVar24 >> 0x20);" (assignment_expression "uVar5 = (undefined4)((ulonglong)dVar24 >> 0x20)" identifier = (call_expression "(undefined4)((ulonglong)dVar24 >> 0x20)" (parenthesized_expression "(undefined4)" ( identifier )) (argument_list "((ulonglong)dVar24 >> 0x20)" ( (binary_expression "(ulonglong)dVar24 >> 0x20" (cast_expression "(ulonglong)dVar24" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "progress_finish(progress,in_f12_13);" (call_expression "progress_finish(progress,in_f12_13)" identifier (argument_list "(progress,in_f12_13)" ( identifier , identifier ))) ;) (expression_statement "dVar24 = (double)CONCAT44(uVar5,uVar16);" (assignment_expression "dVar24 = (double)CONCAT44(uVar5,uVar16)" identifier = (cast_expression "(double)CONCAT44(uVar5,uVar16)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(uVar5,uVar16)" identifier (argument_list "(uVar5,uVar16)" ( identifier , identifier ))))) ;) })) (if_statement "if (flags != 0) goto LAB_00051080;" if (parenthesized_expression "(flags != 0)" ( (binary_expression "flags != 0" identifier != number_literal) )) (goto_statement "goto LAB_00051080;" goto statement_identifier ;)) }) (else_clause "else {\n    local_100 = (Bytef *)(*(code *)PTR_xmalloc_000b7480)(0x8000);\n    puVar7 = (undefined4 *)((ulonglong)in_stack_fffffee0 >> 0x20);\n    if (local_100 == (Bytef *)0x0) {\n      puVar6 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n      *puVar6 = 0xc;\n    }\n    else {\n      gzstream.zalloc = (alloc_func)(PTR_LAB_000b78e4 + 0x368);\n      gzstream.zfree = (free_func)(PTR_LAB_000b78e4 + 0x330);\n      gzstream.opaque = (voidpf)0x0;\n      gzstream.next_in = (Bytef *)0x0;\n      gzstream.avail_in = 0;\n      qtyread = (wgint *)0x38;\n      pFVar17 = (FILE *)(PTR_DAT_000b758c + -0x18a0);\n      iVar4 = (*(code *)PTR_inflateInit2__000b7d68)(&gzstream,0x2f);\n      puVar7 = (undefined4 *)((ulonglong)in_stack_fffffee0 >> 0x20);\n      if (iVar4 == 0) goto LAB_00050b74;\n      (*(code *)PTR_free_000b7d34)(local_100);\n      uVar5 = 0x16;\n      if (iVar4 == -4) {\n        uVar5 = 0xc;\n      }\n      puVar6 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n      *puVar6 = uVar5;\n    }\n    dVar24 = (double)CONCAT44(pFVar17,qtyread);\n    local_100 = (Bytef *)flags;\n    if (flags == 0) {\n      iVar4 = 0;\n      local_fc = (Bytef *)0x0;\n      pFVar17 = (FILE *)0xffffffff;\n      goto LAB_000510b8;\n    }\n    local_100 = (Bytef *)0x0;\n    iVar4 = 0;\n    local_fc = (Bytef *)0x0;\n    local_104 = (ptimer *)0x0;\n    pFVar17 = (FILE *)0xffffffff;\nLAB_00051080:\n    dVar23 = ptimer_read(local_104);\n    *(double *)flags = dVar23;\n  }" else (compound_statement "{\n    local_100 = (Bytef *)(*(code *)PTR_xmalloc_000b7480)(0x8000);\n    puVar7 = (undefined4 *)((ulonglong)in_stack_fffffee0 >> 0x20);\n    if (local_100 == (Bytef *)0x0) {\n      puVar6 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n      *puVar6 = 0xc;\n    }\n    else {\n      gzstream.zalloc = (alloc_func)(PTR_LAB_000b78e4 + 0x368);\n      gzstream.zfree = (free_func)(PTR_LAB_000b78e4 + 0x330);\n      gzstream.opaque = (voidpf)0x0;\n      gzstream.next_in = (Bytef *)0x0;\n      gzstream.avail_in = 0;\n      qtyread = (wgint *)0x38;\n      pFVar17 = (FILE *)(PTR_DAT_000b758c + -0x18a0);\n      iVar4 = (*(code *)PTR_inflateInit2__000b7d68)(&gzstream,0x2f);\n      puVar7 = (undefined4 *)((ulonglong)in_stack_fffffee0 >> 0x20);\n      if (iVar4 == 0) goto LAB_00050b74;\n      (*(code *)PTR_free_000b7d34)(local_100);\n      uVar5 = 0x16;\n      if (iVar4 == -4) {\n        uVar5 = 0xc;\n      }\n      puVar6 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n      *puVar6 = uVar5;\n    }\n    dVar24 = (double)CONCAT44(pFVar17,qtyread);\n    local_100 = (Bytef *)flags;\n    if (flags == 0) {\n      iVar4 = 0;\n      local_fc = (Bytef *)0x0;\n      pFVar17 = (FILE *)0xffffffff;\n      goto LAB_000510b8;\n    }\n    local_100 = (Bytef *)0x0;\n    iVar4 = 0;\n    local_fc = (Bytef *)0x0;\n    local_104 = (ptimer *)0x0;\n    pFVar17 = (FILE *)0xffffffff;\nLAB_00051080:\n    dVar23 = ptimer_read(local_104);\n    *(double *)flags = dVar23;\n  }" { (expression_statement "local_100 = (Bytef *)(*(code *)PTR_xmalloc_000b7480)(0x8000);" (assignment_expression "local_100 = (Bytef *)(*(code *)PTR_xmalloc_000b7480)(0x8000)" identifier = (cast_expression "(Bytef *)(*(code *)PTR_xmalloc_000b7480)(0x8000)" ( (type_descriptor "Bytef *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_xmalloc_000b7480)(0x8000)" (parenthesized_expression "(*(code *)PTR_xmalloc_000b7480)" ( (pointer_expression "*(code *)PTR_xmalloc_000b7480" * (cast_expression "(code *)PTR_xmalloc_000b7480" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x8000)" ( number_literal ))))) ;) (expression_statement "puVar7 = (undefined4 *)((ulonglong)in_stack_fffffee0 >> 0x20);" (assignment_expression "puVar7 = (undefined4 *)((ulonglong)in_stack_fffffee0 >> 0x20)" identifier = (cast_expression "(undefined4 *)((ulonglong)in_stack_fffffee0 >> 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulonglong)in_stack_fffffee0 >> 0x20)" ( (binary_expression "(ulonglong)in_stack_fffffee0 >> 0x20" (cast_expression "(ulonglong)in_stack_fffffee0" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (local_100 == (Bytef *)0x0) {\n      puVar6 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n      *puVar6 = 0xc;\n    }\n    else {\n      gzstream.zalloc = (alloc_func)(PTR_LAB_000b78e4 + 0x368);\n      gzstream.zfree = (free_func)(PTR_LAB_000b78e4 + 0x330);\n      gzstream.opaque = (voidpf)0x0;\n      gzstream.next_in = (Bytef *)0x0;\n      gzstream.avail_in = 0;\n      qtyread = (wgint *)0x38;\n      pFVar17 = (FILE *)(PTR_DAT_000b758c + -0x18a0);\n      iVar4 = (*(code *)PTR_inflateInit2__000b7d68)(&gzstream,0x2f);\n      puVar7 = (undefined4 *)((ulonglong)in_stack_fffffee0 >> 0x20);\n      if (iVar4 == 0) goto LAB_00050b74;\n      (*(code *)PTR_free_000b7d34)(local_100);\n      uVar5 = 0x16;\n      if (iVar4 == -4) {\n        uVar5 = 0xc;\n      }\n      puVar6 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n      *puVar6 = uVar5;\n    }" if (parenthesized_expression "(local_100 == (Bytef *)0x0)" ( (binary_expression "local_100 == (Bytef *)0x0" identifier == (cast_expression "(Bytef *)0x0" ( (type_descriptor "Bytef *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      puVar6 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n      *puVar6 = 0xc;\n    }" { (expression_statement "puVar6 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();" (assignment_expression "puVar6 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_000b7eb8)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_000b7eb8)()" (parenthesized_expression "(*(code *)PTR___errno_location_000b7eb8)" ( (pointer_expression "*(code *)PTR___errno_location_000b7eb8" * (cast_expression "(code *)PTR___errno_location_000b7eb8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "*puVar6 = 0xc;" (assignment_expression "*puVar6 = 0xc" (pointer_expression "*puVar6" * identifier) = number_literal) ;) }) (else_clause "else {\n      gzstream.zalloc = (alloc_func)(PTR_LAB_000b78e4 + 0x368);\n      gzstream.zfree = (free_func)(PTR_LAB_000b78e4 + 0x330);\n      gzstream.opaque = (voidpf)0x0;\n      gzstream.next_in = (Bytef *)0x0;\n      gzstream.avail_in = 0;\n      qtyread = (wgint *)0x38;\n      pFVar17 = (FILE *)(PTR_DAT_000b758c + -0x18a0);\n      iVar4 = (*(code *)PTR_inflateInit2__000b7d68)(&gzstream,0x2f);\n      puVar7 = (undefined4 *)((ulonglong)in_stack_fffffee0 >> 0x20);\n      if (iVar4 == 0) goto LAB_00050b74;\n      (*(code *)PTR_free_000b7d34)(local_100);\n      uVar5 = 0x16;\n      if (iVar4 == -4) {\n        uVar5 = 0xc;\n      }\n      puVar6 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n      *puVar6 = uVar5;\n    }" else (compound_statement "{\n      gzstream.zalloc = (alloc_func)(PTR_LAB_000b78e4 + 0x368);\n      gzstream.zfree = (free_func)(PTR_LAB_000b78e4 + 0x330);\n      gzstream.opaque = (voidpf)0x0;\n      gzstream.next_in = (Bytef *)0x0;\n      gzstream.avail_in = 0;\n      qtyread = (wgint *)0x38;\n      pFVar17 = (FILE *)(PTR_DAT_000b758c + -0x18a0);\n      iVar4 = (*(code *)PTR_inflateInit2__000b7d68)(&gzstream,0x2f);\n      puVar7 = (undefined4 *)((ulonglong)in_stack_fffffee0 >> 0x20);\n      if (iVar4 == 0) goto LAB_00050b74;\n      (*(code *)PTR_free_000b7d34)(local_100);\n      uVar5 = 0x16;\n      if (iVar4 == -4) {\n        uVar5 = 0xc;\n      }\n      puVar6 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n      *puVar6 = uVar5;\n    }" { (expression_statement "gzstream.zalloc = (alloc_func)(PTR_LAB_000b78e4 + 0x368);" (assignment_expression "gzstream.zalloc = (alloc_func)(PTR_LAB_000b78e4 + 0x368)" (field_expression "gzstream.zalloc" identifier . field_identifier) = (call_expression "(alloc_func)(PTR_LAB_000b78e4 + 0x368)" (parenthesized_expression "(alloc_func)" ( identifier )) (argument_list "(PTR_LAB_000b78e4 + 0x368)" ( (binary_expression "PTR_LAB_000b78e4 + 0x368" identifier + number_literal) )))) ;) (expression_statement "gzstream.zfree = (free_func)(PTR_LAB_000b78e4 + 0x330);" (assignment_expression "gzstream.zfree = (free_func)(PTR_LAB_000b78e4 + 0x330)" (field_expression "gzstream.zfree" identifier . field_identifier) = (call_expression "(free_func)(PTR_LAB_000b78e4 + 0x330)" (parenthesized_expression "(free_func)" ( identifier )) (argument_list "(PTR_LAB_000b78e4 + 0x330)" ( (binary_expression "PTR_LAB_000b78e4 + 0x330" identifier + number_literal) )))) ;) (expression_statement "gzstream.opaque = (voidpf)0x0;" (assignment_expression "gzstream.opaque = (voidpf)0x0" (field_expression "gzstream.opaque" identifier . field_identifier) = (cast_expression "(voidpf)0x0" ( (type_descriptor "voidpf" type_identifier) ) number_literal)) ;) (expression_statement "gzstream.next_in = (Bytef *)0x0;" (assignment_expression "gzstream.next_in = (Bytef *)0x0" (field_expression "gzstream.next_in" identifier . field_identifier) = (cast_expression "(Bytef *)0x0" ( (type_descriptor "Bytef *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "gzstream.avail_in = 0;" (assignment_expression "gzstream.avail_in = 0" (field_expression "gzstream.avail_in" identifier . field_identifier) = number_literal) ;) (expression_statement "qtyread = (wgint *)0x38;" (assignment_expression "qtyread = (wgint *)0x38" identifier = (cast_expression "(wgint *)0x38" ( (type_descriptor "wgint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pFVar17 = (FILE *)(PTR_DAT_000b758c + -0x18a0);" (assignment_expression "pFVar17 = (FILE *)(PTR_DAT_000b758c + -0x18a0)" identifier = (cast_expression "(FILE *)(PTR_DAT_000b758c + -0x18a0)" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000b758c + -0x18a0)" ( (binary_expression "PTR_DAT_000b758c + -0x18a0" identifier + number_literal) )))) ;) (expression_statement "iVar4 = (*(code *)PTR_inflateInit2__000b7d68)(&gzstream,0x2f);" (assignment_expression "iVar4 = (*(code *)PTR_inflateInit2__000b7d68)(&gzstream,0x2f)" identifier = (call_expression "(*(code *)PTR_inflateInit2__000b7d68)(&gzstream,0x2f)" (parenthesized_expression "(*(code *)PTR_inflateInit2__000b7d68)" ( (pointer_expression "*(code *)PTR_inflateInit2__000b7d68" * (cast_expression "(code *)PTR_inflateInit2__000b7d68" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&gzstream,0x2f)" ( (pointer_expression "&gzstream" & identifier) , number_literal )))) ;) (expression_statement "puVar7 = (undefined4 *)((ulonglong)in_stack_fffffee0 >> 0x20);" (assignment_expression "puVar7 = (undefined4 *)((ulonglong)in_stack_fffffee0 >> 0x20)" identifier = (cast_expression "(undefined4 *)((ulonglong)in_stack_fffffee0 >> 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulonglong)in_stack_fffffee0 >> 0x20)" ( (binary_expression "(ulonglong)in_stack_fffffee0 >> 0x20" (cast_expression "(ulonglong)in_stack_fffffee0" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (iVar4 == 0) goto LAB_00050b74;" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00050b74;" goto statement_identifier ;)) (expression_statement "(*(code *)PTR_free_000b7d34)(local_100);" (call_expression "(*(code *)PTR_free_000b7d34)(local_100)" (parenthesized_expression "(*(code *)PTR_free_000b7d34)" ( (pointer_expression "*(code *)PTR_free_000b7d34" * (cast_expression "(code *)PTR_free_000b7d34" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_100)" ( identifier ))) ;) (expression_statement "uVar5 = 0x16;" (assignment_expression "uVar5 = 0x16" identifier = number_literal) ;) (if_statement "if (iVar4 == -4) {\n        uVar5 = 0xc;\n      }" if (parenthesized_expression "(iVar4 == -4)" ( (binary_expression "iVar4 == -4" identifier == number_literal) )) (compound_statement "{\n        uVar5 = 0xc;\n      }" { (expression_statement "uVar5 = 0xc;" (assignment_expression "uVar5 = 0xc" identifier = number_literal) ;) })) (expression_statement "puVar6 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();" (assignment_expression "puVar6 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_000b7eb8)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_000b7eb8)()" (parenthesized_expression "(*(code *)PTR___errno_location_000b7eb8)" ( (pointer_expression "*(code *)PTR___errno_location_000b7eb8" * (cast_expression "(code *)PTR___errno_location_000b7eb8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "*puVar6 = uVar5;" (assignment_expression "*puVar6 = uVar5" (pointer_expression "*puVar6" * identifier) = identifier) ;) }))) (expression_statement "dVar24 = (double)CONCAT44(pFVar17,qtyread);" (assignment_expression "dVar24 = (double)CONCAT44(pFVar17,qtyread)" identifier = (cast_expression "(double)CONCAT44(pFVar17,qtyread)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(pFVar17,qtyread)" identifier (argument_list "(pFVar17,qtyread)" ( identifier , identifier ))))) ;) (expression_statement "local_100 = (Bytef *)flags;" (assignment_expression "local_100 = (Bytef *)flags" identifier = (cast_expression "(Bytef *)flags" ( (type_descriptor "Bytef *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (flags == 0) {\n      iVar4 = 0;\n      local_fc = (Bytef *)0x0;\n      pFVar17 = (FILE *)0xffffffff;\n      goto LAB_000510b8;\n    }" if (parenthesized_expression "(flags == 0)" ( (binary_expression "flags == 0" identifier == number_literal) )) (compound_statement "{\n      iVar4 = 0;\n      local_fc = (Bytef *)0x0;\n      pFVar17 = (FILE *)0xffffffff;\n      goto LAB_000510b8;\n    }" { (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) (expression_statement "local_fc = (Bytef *)0x0;" (assignment_expression "local_fc = (Bytef *)0x0" identifier = (cast_expression "(Bytef *)0x0" ( (type_descriptor "Bytef *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pFVar17 = (FILE *)0xffffffff;" (assignment_expression "pFVar17 = (FILE *)0xffffffff" identifier = (cast_expression "(FILE *)0xffffffff" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_000510b8;" goto statement_identifier ;) })) (expression_statement "local_100 = (Bytef *)0x0;" (assignment_expression "local_100 = (Bytef *)0x0" identifier = (cast_expression "(Bytef *)0x0" ( (type_descriptor "Bytef *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) (expression_statement "local_fc = (Bytef *)0x0;" (assignment_expression "local_fc = (Bytef *)0x0" identifier = (cast_expression "(Bytef *)0x0" ( (type_descriptor "Bytef *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_104 = (ptimer *)0x0;" (assignment_expression "local_104 = (ptimer *)0x0" identifier = (cast_expression "(ptimer *)0x0" ( (type_descriptor "ptimer *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pFVar17 = (FILE *)0xffffffff;" (assignment_expression "pFVar17 = (FILE *)0xffffffff" identifier = (cast_expression "(FILE *)0xffffffff" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_00051080:\n    dVar23 = ptimer_read(local_104);" statement_identifier : (expression_statement "dVar23 = ptimer_read(local_104);" (assignment_expression "dVar23 = ptimer_read(local_104)" identifier = (call_expression "ptimer_read(local_104)" identifier (argument_list "(local_104)" ( identifier )))) ;)) (expression_statement "*(double *)flags = dVar23;" (assignment_expression "*(double *)flags = dVar23" (pointer_expression "*(double *)flags" * (cast_expression "(double *)flags" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) }))) (if_statement "if (local_104 != (ptimer *)0x0) {\n    ptimer_destroy(local_104);\n  }" if (parenthesized_expression "(local_104 != (ptimer *)0x0)" ( (binary_expression "local_104 != (ptimer *)0x0" identifier != (cast_expression "(ptimer *)0x0" ( (type_descriptor "ptimer *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    ptimer_destroy(local_104);\n  }" { (expression_statement "ptimer_destroy(local_104);" (call_expression "ptimer_destroy(local_104)" identifier (argument_list "(local_104)" ( identifier ))) ;) })) (labeled_statement "LAB_000510b8:\n  if (local_100 != (Bytef *)0x0) {\n    pFVar20 = (FILE *)(*(code *)PTR_inflateEnd_000b7e58)(&gzstream);\n    if ((-1 < (int)pFVar17) && (pFVar17 = pFVar20, pFVar20 != (FILE *)0x0)) {\n      puVar6 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)(local_100);\n      *puVar6 = 0x16;\n      pFVar17 = (FILE *)0xffffffff;\n    }\n    (*(code *)PTR_free_000b7d34)(local_100);\n    if (((iVar4 != 0) || ((Bytef *)gzstream.total_in != local_fc)) &&\n       (dVar24 = (double)CONCAT44(iVar4,SUB84(dVar24,0)), PTR_opt_000b746c[0x16b] != '\0')) {\n      iVar18 = iVar4;\n      pBVar9 = local_fc;\n      debug_logprintf(PTR_DAT_000b758c + -0x180c);\n      dVar24 = (double)CONCAT44(iVar18,pBVar9);\n    }\n  }" statement_identifier : (if_statement "if (local_100 != (Bytef *)0x0) {\n    pFVar20 = (FILE *)(*(code *)PTR_inflateEnd_000b7e58)(&gzstream);\n    if ((-1 < (int)pFVar17) && (pFVar17 = pFVar20, pFVar20 != (FILE *)0x0)) {\n      puVar6 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)(local_100);\n      *puVar6 = 0x16;\n      pFVar17 = (FILE *)0xffffffff;\n    }\n    (*(code *)PTR_free_000b7d34)(local_100);\n    if (((iVar4 != 0) || ((Bytef *)gzstream.total_in != local_fc)) &&\n       (dVar24 = (double)CONCAT44(iVar4,SUB84(dVar24,0)), PTR_opt_000b746c[0x16b] != '\0')) {\n      iVar18 = iVar4;\n      pBVar9 = local_fc;\n      debug_logprintf(PTR_DAT_000b758c + -0x180c);\n      dVar24 = (double)CONCAT44(iVar18,pBVar9);\n    }\n  }" if (parenthesized_expression "(local_100 != (Bytef *)0x0)" ( (binary_expression "local_100 != (Bytef *)0x0" identifier != (cast_expression "(Bytef *)0x0" ( (type_descriptor "Bytef *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pFVar20 = (FILE *)(*(code *)PTR_inflateEnd_000b7e58)(&gzstream);\n    if ((-1 < (int)pFVar17) && (pFVar17 = pFVar20, pFVar20 != (FILE *)0x0)) {\n      puVar6 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)(local_100);\n      *puVar6 = 0x16;\n      pFVar17 = (FILE *)0xffffffff;\n    }\n    (*(code *)PTR_free_000b7d34)(local_100);\n    if (((iVar4 != 0) || ((Bytef *)gzstream.total_in != local_fc)) &&\n       (dVar24 = (double)CONCAT44(iVar4,SUB84(dVar24,0)), PTR_opt_000b746c[0x16b] != '\0')) {\n      iVar18 = iVar4;\n      pBVar9 = local_fc;\n      debug_logprintf(PTR_DAT_000b758c + -0x180c);\n      dVar24 = (double)CONCAT44(iVar18,pBVar9);\n    }\n  }" { (expression_statement "pFVar20 = (FILE *)(*(code *)PTR_inflateEnd_000b7e58)(&gzstream);" (assignment_expression "pFVar20 = (FILE *)(*(code *)PTR_inflateEnd_000b7e58)(&gzstream)" identifier = (cast_expression "(FILE *)(*(code *)PTR_inflateEnd_000b7e58)(&gzstream)" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_inflateEnd_000b7e58)(&gzstream)" (parenthesized_expression "(*(code *)PTR_inflateEnd_000b7e58)" ( (pointer_expression "*(code *)PTR_inflateEnd_000b7e58" * (cast_expression "(code *)PTR_inflateEnd_000b7e58" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&gzstream)" ( (pointer_expression "&gzstream" & identifier) ))))) ;) (if_statement "if ((-1 < (int)pFVar17) && (pFVar17 = pFVar20, pFVar20 != (FILE *)0x0)) {\n      puVar6 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)(local_100);\n      *puVar6 = 0x16;\n      pFVar17 = (FILE *)0xffffffff;\n    }" if (parenthesized_expression "((-1 < (int)pFVar17) && (pFVar17 = pFVar20, pFVar20 != (FILE *)0x0))" ( (binary_expression "(-1 < (int)pFVar17) && (pFVar17 = pFVar20, pFVar20 != (FILE *)0x0)" (parenthesized_expression "(-1 < (int)pFVar17)" ( (binary_expression "-1 < (int)pFVar17" number_literal < (cast_expression "(int)pFVar17" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "(pFVar17 = pFVar20, pFVar20 != (FILE *)0x0)" ( (comma_expression "pFVar17 = pFVar20, pFVar20 != (FILE *)0x0" (assignment_expression "pFVar17 = pFVar20" identifier = identifier) , (binary_expression "pFVar20 != (FILE *)0x0" identifier != (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n      puVar6 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)(local_100);\n      *puVar6 = 0x16;\n      pFVar17 = (FILE *)0xffffffff;\n    }" { (expression_statement "puVar6 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)(local_100);" (assignment_expression "puVar6 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)(local_100)" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_000b7eb8)(local_100)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_000b7eb8)(local_100)" (parenthesized_expression "(*(code *)PTR___errno_location_000b7eb8)" ( (pointer_expression "*(code *)PTR___errno_location_000b7eb8" * (cast_expression "(code *)PTR___errno_location_000b7eb8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_100)" ( identifier ))))) ;) (expression_statement "*puVar6 = 0x16;" (assignment_expression "*puVar6 = 0x16" (pointer_expression "*puVar6" * identifier) = number_literal) ;) (expression_statement "pFVar17 = (FILE *)0xffffffff;" (assignment_expression "pFVar17 = (FILE *)0xffffffff" identifier = (cast_expression "(FILE *)0xffffffff" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (expression_statement "(*(code *)PTR_free_000b7d34)(local_100);" (call_expression "(*(code *)PTR_free_000b7d34)(local_100)" (parenthesized_expression "(*(code *)PTR_free_000b7d34)" ( (pointer_expression "*(code *)PTR_free_000b7d34" * (cast_expression "(code *)PTR_free_000b7d34" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_100)" ( identifier ))) ;) (if_statement "if (((iVar4 != 0) || ((Bytef *)gzstream.total_in != local_fc)) &&\n       (dVar24 = (double)CONCAT44(iVar4,SUB84(dVar24,0)), PTR_opt_000b746c[0x16b] != '\0')) {\n      iVar18 = iVar4;\n      pBVar9 = local_fc;\n      debug_logprintf(PTR_DAT_000b758c + -0x180c);\n      dVar24 = (double)CONCAT44(iVar18,pBVar9);\n    }" if (parenthesized_expression "(((iVar4 != 0) || ((Bytef *)gzstream.total_in != local_fc)) &&\n       (dVar24 = (double)CONCAT44(iVar4,SUB84(dVar24,0)), PTR_opt_000b746c[0x16b] != '\0'))" ( (binary_expression "((iVar4 != 0) || ((Bytef *)gzstream.total_in != local_fc)) &&\n       (dVar24 = (double)CONCAT44(iVar4,SUB84(dVar24,0)), PTR_opt_000b746c[0x16b] != '\0')" (parenthesized_expression "((iVar4 != 0) || ((Bytef *)gzstream.total_in != local_fc))" ( (binary_expression "(iVar4 != 0) || ((Bytef *)gzstream.total_in != local_fc)" (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) || (parenthesized_expression "((Bytef *)gzstream.total_in != local_fc)" ( (binary_expression "(Bytef *)gzstream.total_in != local_fc" (cast_expression "(Bytef *)gzstream.total_in" ( (type_descriptor "Bytef *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "gzstream.total_in" identifier . field_identifier)) != identifier) ))) )) && (parenthesized_expression "(dVar24 = (double)CONCAT44(iVar4,SUB84(dVar24,0)), PTR_opt_000b746c[0x16b] != '\0')" ( (comma_expression "dVar24 = (double)CONCAT44(iVar4,SUB84(dVar24,0)), PTR_opt_000b746c[0x16b] != '\0'" (assignment_expression "dVar24 = (double)CONCAT44(iVar4,SUB84(dVar24,0))" identifier = (cast_expression "(double)CONCAT44(iVar4,SUB84(dVar24,0))" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(iVar4,SUB84(dVar24,0))" identifier (argument_list "(iVar4,SUB84(dVar24,0))" ( identifier , (call_expression "SUB84(dVar24,0)" identifier (argument_list "(dVar24,0)" ( identifier , number_literal ))) ))))) , (binary_expression "PTR_opt_000b746c[0x16b] != '\0'" (subscript_expression "PTR_opt_000b746c[0x16b]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence '))) ))) )) (compound_statement "{\n      iVar18 = iVar4;\n      pBVar9 = local_fc;\n      debug_logprintf(PTR_DAT_000b758c + -0x180c);\n      dVar24 = (double)CONCAT44(iVar18,pBVar9);\n    }" { (expression_statement "iVar18 = iVar4;" (assignment_expression "iVar18 = iVar4" identifier = identifier) ;) (expression_statement "pBVar9 = local_fc;" (assignment_expression "pBVar9 = local_fc" identifier = identifier) ;) (expression_statement "debug_logprintf(PTR_DAT_000b758c + -0x180c);" (call_expression "debug_logprintf(PTR_DAT_000b758c + -0x180c)" identifier (argument_list "(PTR_DAT_000b758c + -0x180c)" ( (binary_expression "PTR_DAT_000b758c + -0x180c" identifier + number_literal) ))) ;) (expression_statement "dVar24 = (double)CONCAT44(iVar18,pBVar9);" (assignment_expression "dVar24 = (double)CONCAT44(iVar18,pBVar9)" identifier = (cast_expression "(double)CONCAT44(iVar18,pBVar9)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(iVar18,pBVar9)" identifier (argument_list "(iVar18,pBVar9)" ( identifier , identifier ))))) ;) })) }))) (if_statement "if (qtywritten != (wgint *)0x0) {\n    local_fc = *(Bytef **)((int)qtywritten + 4) + (int)local_fc;\n    *(uint *)qtywritten =\n         (uint)(local_fc < *(Bytef **)((int)qtywritten + 4)) + *(int *)qtywritten + iVar4;\n    *(Bytef **)((int)qtywritten + 4) = local_fc;\n  }" if (parenthesized_expression "(qtywritten != (wgint *)0x0)" ( (binary_expression "qtywritten != (wgint *)0x0" identifier != (cast_expression "(wgint *)0x0" ( (type_descriptor "wgint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    local_fc = *(Bytef **)((int)qtywritten + 4) + (int)local_fc;\n    *(uint *)qtywritten =\n         (uint)(local_fc < *(Bytef **)((int)qtywritten + 4)) + *(int *)qtywritten + iVar4;\n    *(Bytef **)((int)qtywritten + 4) = local_fc;\n  }" { (expression_statement "local_fc = *(Bytef **)((int)qtywritten + 4) + (int)local_fc;" (assignment_expression "local_fc = *(Bytef **)((int)qtywritten + 4) + (int)local_fc" identifier = (binary_expression "*(Bytef **)((int)qtywritten + 4) + (int)local_fc" (pointer_expression "*(Bytef **)((int)qtywritten + 4)" * (cast_expression "(Bytef **)((int)qtywritten + 4)" ( (type_descriptor "Bytef **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)qtywritten + 4)" ( (binary_expression "(int)qtywritten + 4" (cast_expression "(int)qtywritten" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + (cast_expression "(int)local_fc" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "*(uint *)qtywritten =\n         (uint)(local_fc < *(Bytef **)((int)qtywritten + 4)) + *(int *)qtywritten + iVar4;" (assignment_expression "*(uint *)qtywritten =\n         (uint)(local_fc < *(Bytef **)((int)qtywritten + 4)) + *(int *)qtywritten + iVar4" (pointer_expression "*(uint *)qtywritten" * (cast_expression "(uint *)qtywritten" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (binary_expression "(uint)(local_fc < *(Bytef **)((int)qtywritten + 4)) + *(int *)qtywritten + iVar4" (binary_expression "(uint)(local_fc < *(Bytef **)((int)qtywritten + 4)) + *(int *)qtywritten" (call_expression "(uint)(local_fc < *(Bytef **)((int)qtywritten + 4))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_fc < *(Bytef **)((int)qtywritten + 4))" ( (binary_expression "local_fc < *(Bytef **)((int)qtywritten + 4)" identifier < (pointer_expression "*(Bytef **)((int)qtywritten + 4)" * (cast_expression "(Bytef **)((int)qtywritten + 4)" ( (type_descriptor "Bytef **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)qtywritten + 4)" ( (binary_expression "(int)qtywritten + 4" (cast_expression "(int)qtywritten" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ))) + (pointer_expression "*(int *)qtywritten" * (cast_expression "(int *)qtywritten" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) + identifier)) ;) (expression_statement "*(Bytef **)((int)qtywritten + 4) = local_fc;" (assignment_expression "*(Bytef **)((int)qtywritten + 4) = local_fc" (pointer_expression "*(Bytef **)((int)qtywritten + 4)" * (cast_expression "(Bytef **)((int)qtywritten + 4)" ( (type_descriptor "Bytef **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)qtywritten + 4)" ( (binary_expression "(int)qtywritten + 4" (cast_expression "(int)qtywritten" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) })) (if_statement "if (elapsed != (double *)0x0) {\n    uVar3 = *(uint *)((int)elapsed + 4) + sum_written._4_4_;\n    *(uint *)elapsed =\n         (uint)(uVar3 < *(uint *)((int)elapsed + 4)) + *(int *)elapsed + sum_written._0_4_;\n    *(uint *)((int)elapsed + 4) = uVar3;\n  }" if (parenthesized_expression "(elapsed != (double *)0x0)" ( (binary_expression "elapsed != (double *)0x0" identifier != (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar3 = *(uint *)((int)elapsed + 4) + sum_written._4_4_;\n    *(uint *)elapsed =\n         (uint)(uVar3 < *(uint *)((int)elapsed + 4)) + *(int *)elapsed + sum_written._0_4_;\n    *(uint *)((int)elapsed + 4) = uVar3;\n  }" { (expression_statement "uVar3 = *(uint *)((int)elapsed + 4) + sum_written._4_4_;" (assignment_expression "uVar3 = *(uint *)((int)elapsed + 4) + sum_written._4_4_" identifier = (binary_expression "*(uint *)((int)elapsed + 4) + sum_written._4_4_" (pointer_expression "*(uint *)((int)elapsed + 4)" * (cast_expression "(uint *)((int)elapsed + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)elapsed + 4)" ( (binary_expression "(int)elapsed + 4" (cast_expression "(int)elapsed" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + (field_expression "sum_written._4_4_" identifier . field_identifier))) ;) (expression_statement "*(uint *)elapsed =\n         (uint)(uVar3 < *(uint *)((int)elapsed + 4)) + *(int *)elapsed + sum_written._0_4_;" (assignment_expression "*(uint *)elapsed =\n         (uint)(uVar3 < *(uint *)((int)elapsed + 4)) + *(int *)elapsed + sum_written._0_4_" (pointer_expression "*(uint *)elapsed" * (cast_expression "(uint *)elapsed" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (binary_expression "(uint)(uVar3 < *(uint *)((int)elapsed + 4)) + *(int *)elapsed + sum_written._0_4_" (binary_expression "(uint)(uVar3 < *(uint *)((int)elapsed + 4)) + *(int *)elapsed" (call_expression "(uint)(uVar3 < *(uint *)((int)elapsed + 4))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar3 < *(uint *)((int)elapsed + 4))" ( (binary_expression "uVar3 < *(uint *)((int)elapsed + 4)" identifier < (pointer_expression "*(uint *)((int)elapsed + 4)" * (cast_expression "(uint *)((int)elapsed + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)elapsed + 4)" ( (binary_expression "(int)elapsed + 4" (cast_expression "(int)elapsed" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ))) + (pointer_expression "*(int *)elapsed" * (cast_expression "(int *)elapsed" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) + (field_expression "sum_written._0_4_" identifier . field_identifier))) ;) (expression_statement "*(uint *)((int)elapsed + 4) = uVar3;" (assignment_expression "*(uint *)((int)elapsed + 4) = uVar3" (pointer_expression "*(uint *)((int)elapsed + 4)" * (cast_expression "(uint *)((int)elapsed + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)elapsed + 4)" ( (binary_expression "(int)elapsed + 4" (cast_expression "(int)elapsed" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) })) (expression_statement "(*(code *)PTR_free_000b7d34)(buf);" (call_expression "(*(code *)PTR_free_000b7d34)(buf)" (parenthesized_expression "(*(code *)PTR_free_000b7d34)" ( (pointer_expression "*(code *)PTR_free_000b7d34" * (cast_expression "(code *)PTR_free_000b7d34" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(buf)" ( identifier ))) ;) (if_statement "if (iVar2 != *(int *)PTR___stack_chk_guard_000b7c68) {\n    puVar21 = PTR___stack_chk_fail_000b7bfc;\n    (*(code *)PTR___stack_chk_fail_000b7bfc)();\n    puVar22 = puVar21 + 0x6da90;\n    if (*(char *)(*(int *)(puVar21 + 0x65acc) + 0x223) == '\0') {\n      dVar23 = *(double *)(*(int *)(puVar21 + 0x65bec) + -0x6f98);\n    }\n    else {\n      dVar23 = *(double *)(*(int *)(puVar21 + 0x65bec) + -0x15d8);\n    }\n    if (dVar24 == 0.0) {\n      dVar24 = ptimer_resolution();\n      dVar24 = dVar24 * *(double *)(*(int *)(puVar22 + -0x7ea4) + -0x2580);\n    }\n    wVar32 = convert_to_bits(CONCAT44(puVar22,in_stack_fffffeac));\n    dVar26 = (double)(**(code **)(puVar22 + -0x7b3c))((int)((ulonglong)wVar32 >> 0x20),(int)wVar32);\n    dVar26 = dVar26 / dVar24;\n    if (dVar26 < dVar23) {\n      *puVar7 = 0;\n    }\n    else if (dVar26 < dVar23 * dVar23) {\n      *puVar7 = 1;\n      puVar7 = (undefined4 *)&DAT_00000001;\n    }\n    else if (dVar26 < dVar23 * dVar23 * dVar23) {\n      *puVar7 = 2;\n      puVar7 = (undefined4 *)0x2;\n    }\n    else {\n      *puVar7 = 3;\n      puVar7 = (undefined4 *)0x3;\n    }\n    return (int)puVar7;\n  }" if (parenthesized_expression "(iVar2 != *(int *)PTR___stack_chk_guard_000b7c68)" ( (binary_expression "iVar2 != *(int *)PTR___stack_chk_guard_000b7c68" identifier != (pointer_expression "*(int *)PTR___stack_chk_guard_000b7c68" * (cast_expression "(int *)PTR___stack_chk_guard_000b7c68" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    puVar21 = PTR___stack_chk_fail_000b7bfc;\n    (*(code *)PTR___stack_chk_fail_000b7bfc)();\n    puVar22 = puVar21 + 0x6da90;\n    if (*(char *)(*(int *)(puVar21 + 0x65acc) + 0x223) == '\0') {\n      dVar23 = *(double *)(*(int *)(puVar21 + 0x65bec) + -0x6f98);\n    }\n    else {\n      dVar23 = *(double *)(*(int *)(puVar21 + 0x65bec) + -0x15d8);\n    }\n    if (dVar24 == 0.0) {\n      dVar24 = ptimer_resolution();\n      dVar24 = dVar24 * *(double *)(*(int *)(puVar22 + -0x7ea4) + -0x2580);\n    }\n    wVar32 = convert_to_bits(CONCAT44(puVar22,in_stack_fffffeac));\n    dVar26 = (double)(**(code **)(puVar22 + -0x7b3c))((int)((ulonglong)wVar32 >> 0x20),(int)wVar32);\n    dVar26 = dVar26 / dVar24;\n    if (dVar26 < dVar23) {\n      *puVar7 = 0;\n    }\n    else if (dVar26 < dVar23 * dVar23) {\n      *puVar7 = 1;\n      puVar7 = (undefined4 *)&DAT_00000001;\n    }\n    else if (dVar26 < dVar23 * dVar23 * dVar23) {\n      *puVar7 = 2;\n      puVar7 = (undefined4 *)0x2;\n    }\n    else {\n      *puVar7 = 3;\n      puVar7 = (undefined4 *)0x3;\n    }\n    return (int)puVar7;\n  }" { (expression_statement "puVar21 = PTR___stack_chk_fail_000b7bfc;" (assignment_expression "puVar21 = PTR___stack_chk_fail_000b7bfc" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_000b7bfc)();" (call_expression "(*(code *)PTR___stack_chk_fail_000b7bfc)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000b7bfc)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000b7bfc" * (cast_expression "(code *)PTR___stack_chk_fail_000b7bfc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "puVar22 = puVar21 + 0x6da90;" (assignment_expression "puVar22 = puVar21 + 0x6da90" identifier = (binary_expression "puVar21 + 0x6da90" identifier + number_literal)) ;) (if_statement "if (*(char *)(*(int *)(puVar21 + 0x65acc) + 0x223) == '\0') {\n      dVar23 = *(double *)(*(int *)(puVar21 + 0x65bec) + -0x6f98);\n    }\n    else {\n      dVar23 = *(double *)(*(int *)(puVar21 + 0x65bec) + -0x15d8);\n    }" if (parenthesized_expression "(*(char *)(*(int *)(puVar21 + 0x65acc) + 0x223) == '\0')" ( (binary_expression "*(char *)(*(int *)(puVar21 + 0x65acc) + 0x223) == '\0'" (pointer_expression "*(char *)(*(int *)(puVar21 + 0x65acc) + 0x223)" * (cast_expression "(char *)(*(int *)(puVar21 + 0x65acc) + 0x223)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar21 + 0x65acc) + 0x223)" ( (binary_expression "*(int *)(puVar21 + 0x65acc) + 0x223" (pointer_expression "*(int *)(puVar21 + 0x65acc)" * (cast_expression "(int *)(puVar21 + 0x65acc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + 0x65acc)" ( (binary_expression "puVar21 + 0x65acc" identifier + number_literal) )))) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      dVar23 = *(double *)(*(int *)(puVar21 + 0x65bec) + -0x6f98);\n    }" { (expression_statement "dVar23 = *(double *)(*(int *)(puVar21 + 0x65bec) + -0x6f98);" (assignment_expression "dVar23 = *(double *)(*(int *)(puVar21 + 0x65bec) + -0x6f98)" identifier = (pointer_expression "*(double *)(*(int *)(puVar21 + 0x65bec) + -0x6f98)" * (cast_expression "(double *)(*(int *)(puVar21 + 0x65bec) + -0x6f98)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar21 + 0x65bec) + -0x6f98)" ( (binary_expression "*(int *)(puVar21 + 0x65bec) + -0x6f98" (pointer_expression "*(int *)(puVar21 + 0x65bec)" * (cast_expression "(int *)(puVar21 + 0x65bec)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + 0x65bec)" ( (binary_expression "puVar21 + 0x65bec" identifier + number_literal) )))) + number_literal) ))))) ;) }) (else_clause "else {\n      dVar23 = *(double *)(*(int *)(puVar21 + 0x65bec) + -0x15d8);\n    }" else (compound_statement "{\n      dVar23 = *(double *)(*(int *)(puVar21 + 0x65bec) + -0x15d8);\n    }" { (expression_statement "dVar23 = *(double *)(*(int *)(puVar21 + 0x65bec) + -0x15d8);" (assignment_expression "dVar23 = *(double *)(*(int *)(puVar21 + 0x65bec) + -0x15d8)" identifier = (pointer_expression "*(double *)(*(int *)(puVar21 + 0x65bec) + -0x15d8)" * (cast_expression "(double *)(*(int *)(puVar21 + 0x65bec) + -0x15d8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar21 + 0x65bec) + -0x15d8)" ( (binary_expression "*(int *)(puVar21 + 0x65bec) + -0x15d8" (pointer_expression "*(int *)(puVar21 + 0x65bec)" * (cast_expression "(int *)(puVar21 + 0x65bec)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + 0x65bec)" ( (binary_expression "puVar21 + 0x65bec" identifier + number_literal) )))) + number_literal) ))))) ;) }))) (if_statement "if (dVar24 == 0.0) {\n      dVar24 = ptimer_resolution();\n      dVar24 = dVar24 * *(double *)(*(int *)(puVar22 + -0x7ea4) + -0x2580);\n    }" if (parenthesized_expression "(dVar24 == 0.0)" ( (binary_expression "dVar24 == 0.0" identifier == number_literal) )) (compound_statement "{\n      dVar24 = ptimer_resolution();\n      dVar24 = dVar24 * *(double *)(*(int *)(puVar22 + -0x7ea4) + -0x2580);\n    }" { (expression_statement "dVar24 = ptimer_resolution();" (assignment_expression "dVar24 = ptimer_resolution()" identifier = (call_expression "ptimer_resolution()" identifier (argument_list "()" ( )))) ;) (expression_statement "dVar24 = dVar24 * *(double *)(*(int *)(puVar22 + -0x7ea4) + -0x2580);" (assignment_expression "dVar24 = dVar24 * *(double *)(*(int *)(puVar22 + -0x7ea4) + -0x2580)" identifier = (binary_expression "dVar24 * *(double *)(*(int *)(puVar22 + -0x7ea4) + -0x2580)" identifier * (pointer_expression "*(double *)(*(int *)(puVar22 + -0x7ea4) + -0x2580)" * (cast_expression "(double *)(*(int *)(puVar22 + -0x7ea4) + -0x2580)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar22 + -0x7ea4) + -0x2580)" ( (binary_expression "*(int *)(puVar22 + -0x7ea4) + -0x2580" (pointer_expression "*(int *)(puVar22 + -0x7ea4)" * (cast_expression "(int *)(puVar22 + -0x7ea4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x7ea4)" ( (binary_expression "puVar22 + -0x7ea4" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "wVar32 = convert_to_bits(CONCAT44(puVar22,in_stack_fffffeac));" (assignment_expression "wVar32 = convert_to_bits(CONCAT44(puVar22,in_stack_fffffeac))" identifier = (call_expression "convert_to_bits(CONCAT44(puVar22,in_stack_fffffeac))" identifier (argument_list "(CONCAT44(puVar22,in_stack_fffffeac))" ( (call_expression "CONCAT44(puVar22,in_stack_fffffeac)" identifier (argument_list "(puVar22,in_stack_fffffeac)" ( identifier , identifier ))) )))) ;) (expression_statement "dVar26 = (double)(**(code **)(puVar22 + -0x7b3c))((int)((ulonglong)wVar32 >> 0x20),(int)wVar32);" (assignment_expression "dVar26 = (double)(**(code **)(puVar22 + -0x7b3c))((int)((ulonglong)wVar32 >> 0x20),(int)wVar32)" identifier = (cast_expression "(double)(**(code **)(puVar22 + -0x7b3c))((int)((ulonglong)wVar32 >> 0x20),(int)wVar32)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(puVar22 + -0x7b3c))((int)((ulonglong)wVar32 >> 0x20),(int)wVar32)" (parenthesized_expression "(**(code **)(puVar22 + -0x7b3c))" ( (pointer_expression "**(code **)(puVar22 + -0x7b3c)" * (pointer_expression "*(code **)(puVar22 + -0x7b3c)" * (cast_expression "(code **)(puVar22 + -0x7b3c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + -0x7b3c)" ( (binary_expression "puVar22 + -0x7b3c" identifier + number_literal) ))))) )) (argument_list "((int)((ulonglong)wVar32 >> 0x20),(int)wVar32)" ( (cast_expression "(int)((ulonglong)wVar32 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)wVar32 >> 0x20)" ( (binary_expression "(ulonglong)wVar32 >> 0x20" (cast_expression "(ulonglong)wVar32" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (cast_expression "(int)wVar32" ( (type_descriptor "int" primitive_type) ) identifier) ))))) ;) (expression_statement "dVar26 = dVar26 / dVar24;" (assignment_expression "dVar26 = dVar26 / dVar24" identifier = (binary_expression "dVar26 / dVar24" identifier / identifier)) ;) (if_statement "if (dVar26 < dVar23) {\n      *puVar7 = 0;\n    }\n    else if (dVar26 < dVar23 * dVar23) {\n      *puVar7 = 1;\n      puVar7 = (undefined4 *)&DAT_00000001;\n    }\n    else if (dVar26 < dVar23 * dVar23 * dVar23) {\n      *puVar7 = 2;\n      puVar7 = (undefined4 *)0x2;\n    }\n    else {\n      *puVar7 = 3;\n      puVar7 = (undefined4 *)0x3;\n    }" if (parenthesized_expression "(dVar26 < dVar23)" ( (binary_expression "dVar26 < dVar23" identifier < identifier) )) (compound_statement "{\n      *puVar7 = 0;\n    }" { (expression_statement "*puVar7 = 0;" (assignment_expression "*puVar7 = 0" (pointer_expression "*puVar7" * identifier) = number_literal) ;) }) (else_clause "else if (dVar26 < dVar23 * dVar23) {\n      *puVar7 = 1;\n      puVar7 = (undefined4 *)&DAT_00000001;\n    }\n    else if (dVar26 < dVar23 * dVar23 * dVar23) {\n      *puVar7 = 2;\n      puVar7 = (undefined4 *)0x2;\n    }\n    else {\n      *puVar7 = 3;\n      puVar7 = (undefined4 *)0x3;\n    }" else (if_statement "if (dVar26 < dVar23 * dVar23) {\n      *puVar7 = 1;\n      puVar7 = (undefined4 *)&DAT_00000001;\n    }\n    else if (dVar26 < dVar23 * dVar23 * dVar23) {\n      *puVar7 = 2;\n      puVar7 = (undefined4 *)0x2;\n    }\n    else {\n      *puVar7 = 3;\n      puVar7 = (undefined4 *)0x3;\n    }" if (parenthesized_expression "(dVar26 < dVar23 * dVar23)" ( (binary_expression "dVar26 < dVar23 * dVar23" identifier < (binary_expression "dVar23 * dVar23" identifier * identifier)) )) (compound_statement "{\n      *puVar7 = 1;\n      puVar7 = (undefined4 *)&DAT_00000001;\n    }" { (expression_statement "*puVar7 = 1;" (assignment_expression "*puVar7 = 1" (pointer_expression "*puVar7" * identifier) = number_literal) ;) (expression_statement "puVar7 = (undefined4 *)&DAT_00000001;" (assignment_expression "puVar7 = (undefined4 *)&DAT_00000001" identifier = (cast_expression "(undefined4 *)&DAT_00000001" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000001" & identifier))) ;) }) (else_clause "else if (dVar26 < dVar23 * dVar23 * dVar23) {\n      *puVar7 = 2;\n      puVar7 = (undefined4 *)0x2;\n    }\n    else {\n      *puVar7 = 3;\n      puVar7 = (undefined4 *)0x3;\n    }" else (if_statement "if (dVar26 < dVar23 * dVar23 * dVar23) {\n      *puVar7 = 2;\n      puVar7 = (undefined4 *)0x2;\n    }\n    else {\n      *puVar7 = 3;\n      puVar7 = (undefined4 *)0x3;\n    }" if (parenthesized_expression "(dVar26 < dVar23 * dVar23 * dVar23)" ( (binary_expression "dVar26 < dVar23 * dVar23 * dVar23" identifier < (binary_expression "dVar23 * dVar23 * dVar23" (binary_expression "dVar23 * dVar23" identifier * identifier) * identifier)) )) (compound_statement "{\n      *puVar7 = 2;\n      puVar7 = (undefined4 *)0x2;\n    }" { (expression_statement "*puVar7 = 2;" (assignment_expression "*puVar7 = 2" (pointer_expression "*puVar7" * identifier) = number_literal) ;) (expression_statement "puVar7 = (undefined4 *)0x2;" (assignment_expression "puVar7 = (undefined4 *)0x2" identifier = (cast_expression "(undefined4 *)0x2" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n      *puVar7 = 3;\n      puVar7 = (undefined4 *)0x3;\n    }" else (compound_statement "{\n      *puVar7 = 3;\n      puVar7 = (undefined4 *)0x3;\n    }" { (expression_statement "*puVar7 = 3;" (assignment_expression "*puVar7 = 3" (pointer_expression "*puVar7" * identifier) = number_literal) ;) (expression_statement "puVar7 = (undefined4 *)0x3;" (assignment_expression "puVar7 = (undefined4 *)0x3" identifier = (cast_expression "(undefined4 *)0x3" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))))))) (return_statement "return (int)puVar7;" return (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier) ;) })) (return_statement "return (int)pFVar17;" return (cast_expression "(int)pFVar17" ( (type_descriptor "int" primitive_type) ) identifier) ;) })))
(translation_unit "undefined8 *\nfd_read_body(int param_1,undefined8 *param_2,undefined *param_3,undefined1 *param_4,int param_5,\n            undefined8 *param_6,undefined *param_7,undefined1 *param_8,int *param_9,int *param_10,\n            undefined8 *param_11,uint param_12,undefined8 *param_13)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  undefined8 *puVar3;\n  undefined8 *puVar4;\n  uint uVar5;\n  int iVar6;\n  int iVar7;\n  undefined4 uVar8;\n  undefined8 *puVar9;\n  undefined4 *puVar10;\n  uint uVar11;\n  undefined8 *puVar12;\n  int iVar13;\n  int *piVar14;\n  undefined8 *puVar15;\n  undefined1 *puVar16;\n  int iVar17;\n  undefined8 *puVar18;\n  undefined4 uVar19;\n  undefined8 *puVar20;\n  undefined *puVar21;\n  int iVar22;\n  code *pcVar23;\n  undefined8 *puVar24;\n  double dVar25;\n  undefined8 uVar26;\n  double dVar27;\n  double dVar28;\n  double dVar29;\n  double dVar30;\n  double dVar31;\n  double dVar32;\n  double dVar33;\n  double dVar34;\n  undefined8 local_120;\n  undefined8 *local_104;\n  undefined8 *local_100;\n  undefined8 *local_fc;\n  undefined8 *local_f0;\n  int local_e4;\n  undefined8 *local_e0;\n  undefined1 auStack_ac [8];\n  undefined1 *local_a4;\n  undefined8 *local_a0;\n  int local_9c;\n  undefined8 *local_94;\n  undefined8 *local_90;\n  undefined8 *local_8c;\n  undefined8 *local_88;\n  int local_84;\n  undefined *local_74;\n  undefined *local_70;\n  undefined4 local_6c;\n  int local_5c;\n  \n  local_5c = *(int *)PTR___stack_chk_guard_000b7c68;\n  puVar9 = param_2;\n  puVar21 = param_3;\n  puVar4 = (undefined8 *)(*(code *)PTR_xmalloc_000b7480)(0x2000);\n  uVar5 = param_12 & 4;\n  local_a4 = (undefined1 *)0x0;\n  auStack_ac._4_4_ = (undefined *)0x0;\n  local_9c = 0;\n  local_a0 = (undefined8 *)0x0;\n  if ((param_12 & 8) == 0) {\n    local_100 = (undefined8 *)0x0;\nLAB_00050b74:\n    if ((param_12 & 2) != 0) {\n      auStack_ac._4_4_ = param_7;\n      local_a4 = param_8;\n    }\n    if (*(int *)(PTR_opt_000b746c + 0x10c) == 0) {\n      iVar7 = 0;\n      if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n        local_e4 = 0;\n        goto LAB_00051950;\n      }\n      local_e4 = 0;\nLAB_00051978:\n      if (param_11 != (undefined8 *)0x0) goto LAB_00050c48;\n      local_104 = param_11;\n      local_e0 = (undefined8 *)0x2000;\n    }\n    else {\n      param_4 = param_8;\n      puVar21 = param_7;\n      if ((undefined *)auStack_ac._4_4_ != (undefined *)0x0 || local_a4 != (undefined1 *)0x0) {\n        puVar21 = (undefined *)0x0;\n        param_4 = (undefined1 *)0x0;\n      }\n      if (*(int *)(PTR_opt_000b746c + 0x30) != 0) {\n        iVar6 = (*(code *)PTR_strlen_000b7c94)();\n        param_1 = param_1 + iVar6 + 1;\n      }\n      local_120 = (double)CONCAT44(puVar21 + (uint)(param_4 + (int)param_6 < param_4) + param_5,\n                                   param_4 + (int)param_6);\n      iVar7 = progress_create(param_1);\n      local_e4 = progress_interactive_p(iVar7);\n      if (*(int *)(PTR_opt_000b746c + 0x158) == 0 && *(int *)(PTR_opt_000b746c + 0x15c) == 0) {\n        if (iVar7 == 0) goto LAB_00051978;\n      }\n      else {\nLAB_00051950:\n        puVar2 = PTR_DAT_000b7720;\n        *(undefined4 *)(PTR_DAT_000b7720 + -0x2fe8) = 0;\n        *(undefined4 *)(puVar2 + -0x2fe4) = 0;\n        *(undefined4 *)(puVar2 + -0x2fe0) = 0;\n        *(undefined4 *)(puVar2 + -0x2fdc) = 0;\n        *(undefined4 *)(puVar2 + -0x2fd8) = 0;\n        *(undefined4 *)(puVar2 + -0x2fd4) = 0;\n      }\nLAB_00050c48:\n      local_104 = (undefined8 *)ptimer_new();\n      iVar6 = *(int *)(PTR_opt_000b746c + 0x158);\n      local_e0 = *(undefined8 **)(PTR_opt_000b746c + 0x15c);\n      if (iVar6 == 0 && local_e0 == (undefined8 *)0x0) {\n        local_e0 = (undefined8 *)0x2000;\n      }\n      else if ((0 < iVar6) || ((iVar6 == 0 && ((undefined8 *)0x1fff < local_e0)))) {\n        local_e0 = (undefined8 *)0x2000;\n      }\n    }\n    puVar2 = PTR_DAT_000b758c;\n    dVar25 = (double)CONCAT44(puVar21,param_4);\n    iVar22 = 0;\n    local_f0 = (undefined8 *)0x0;\n    iVar6 = 0;\n    local_fc = (undefined8 *)0x0;\n    dVar29 = 0.0;\n    puVar24 = (undefined8 *)0x0;\n    dVar32 = *(double *)(PTR_DAT_000b758c + -0x2340);\n    dVar33 = *(double *)(PTR_DAT_000b758c + -0x2580);\n    dVar34 = *(double *)(PTR_DAT_000b758c + -0x15d0);\n    dVar28 = *(double *)(PTR_DAT_000b758c + -0x15d8);\n    while( true ) {\n      uVar8 = SUB84(dVar25,0);\n      iVar17 = (int)local_e0 >> 0x1f;\n      puVar20 = local_e0;\n      puVar3 = local_120._0_4_;\n      if ((param_12 & 1) == 0) break;\n      if (param_5 <= iVar6) {\n        if (param_5 != iVar6) goto LAB_000518d4;\n        if (local_fc < param_6) goto LAB_000517b0;\n        bVar1 = (int)puVar24 < 0;\n        dVar30 = dVar25;\n        goto LAB_000518d8;\n      }\nLAB_000517b0:\n      dVar31 = *(double *)(PTR_opt_000b746c + 0x120);\n      if (uVar5 != 0) goto LAB_00051820;\n      puVar15 = (undefined8 *)((int)param_6 - (int)local_fc);\n      iVar13 = (param_5 - iVar6) - (uint)(param_6 < puVar15);\n      dVar25 = (double)CONCAT44(iVar13,uVar8);\n      puVar9 = local_e0;\n      if ((iVar17 < iVar13) ||\n         ((dVar30 = (double)CONCAT44(iVar13,uVar8), iVar13 == iVar17 &&\n          (dVar30 = (double)CONCAT44(iVar13,uVar8), local_e0 < puVar15)))) goto LAB_00051864;\nLAB_00051868:\n      puVar18 = SUB84(dVar30,0);\n      if (local_e4 == 0) {\n        puVar9 = puVar4;\n        puVar24 = (undefined8 *)(*(code *)PTR_fd_read_000b7770)(param_2,puVar4);\n        local_120 = dVar31;\nLAB_000516fc:\n        bVar1 = (int)puVar24 < 0;\n        dVar30 = (double)CONCAT44(puVar15,puVar18);\n        if ((int)puVar24 < 1) goto LAB_000518d8;\n        if (iVar7 == 0) {\n          if (*(int *)(PTR_opt_000b746c + 0x158) == 0 && *(int *)(PTR_opt_000b746c + 0x15c) == 0)\n          goto LAB_00051720;\n          ptimer_measure(local_104);\n        }\n        else {\n          ptimer_measure(local_104);\n        }\nLAB_000515b0:\n        dVar29 = (double)ptimer_read(local_104);\nLAB_000515c4:\n        puVar12 = (undefined8 *)((int)local_fc + (int)puVar24);\n        iVar6 = (uint)(puVar12 < local_fc) + iVar6 + ((int)puVar24 >> 0x1f);\n        puVar9 = param_13;\n        puVar15 = puVar4;\n        puVar18 = puVar24;\n        local_fc = puVar12;\n        if (local_100 == (undefined8 *)0x0) {\n          local_120 = (double)(ZEXT48(auStack_ac + 4) << 0x20);\n          puVar20 = (undefined8 *)FUN_000503a4(param_3,param_13);\n          dVar30 = (double)CONCAT44(puVar15,puVar18);\n          puVar3 = (undefined8 *)(auStack_ac + 4);\n          if ((int)puVar20 < 0) goto LAB_00051040;\n        }\n        else {\n          local_120 = 0.0;\n          local_120._0_4_ = (undefined8 *)0x0;\n          puVar20 = (undefined8 *)FUN_000503a4(0,param_13);\n          dVar30 = (double)CONCAT44(puVar15,puVar18);\n          puVar3 = local_120._0_4_;\n          if ((int)puVar20 < 0) goto LAB_00051040;\n          puVar21 = PTR_DAT_000b758c + -0x1898;\n          pcVar23 = (code *)(PTR_LAB_000b78e4 + 0x3a4);\n          local_94 = puVar4;\n          local_90 = puVar24;\n          do {\n            local_84 = 0x8000;\n            local_88 = local_100;\n            puVar9 = (undefined8 *)0x0;\n            iVar17 = (*(code *)PTR_inflate_000b7d40)(&local_94,0);\n            puVar3 = local_120._0_4_;\n            if (iVar17 == -3) {\nLAB_000511f4:\n              puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n              dVar30 = (double)CONCAT44(puVar15,puVar18);\n              *puVar10 = 0x16;\n              puVar20 = (undefined8 *)0xffffffff;\n              goto LAB_00051040;\n            }\n            if (iVar17 < -2) {\n              if (iVar17 == -4) {\n                puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n                dVar30 = (double)CONCAT44(puVar15,puVar18);\n                *puVar10 = 0xc;\n                puVar20 = (undefined8 *)0xffffffff;\n                goto LAB_00051040;\n              }\n            }\n            else if (iVar17 == 1) {\n              if (((param_12 & 1) != 0) &&\n                 (((param_5 != iVar6 || (param_6 != puVar12)) && (PTR_opt_000b746c[0x16b] != '\0')))\n                 ) {\n                debug_logprintf(puVar21);\n              }\n            }\n            else if (iVar17 == 2) goto LAB_000511f4;\n            local_120 = (double)(ZEXT48(auStack_ac + 4) << 0x20);\n            puVar18 = (undefined8 *)(0x8000 - local_84);\n            puVar9 = (undefined8 *)0x0;\n            puVar15 = local_100;\n            puVar20 = (undefined8 *)(*pcVar23)(param_3,0);\n            dVar30 = (double)CONCAT44(puVar15,puVar18);\n            puVar3 = (undefined8 *)(auStack_ac + 4);\n            if ((int)puVar20 < 0) goto LAB_00051040;\n          } while (local_84 == 0);\n        }\n        dVar31 = local_120;\n        if (uVar5 != 0) {\n          puVar20 = (undefined8 *)((int)local_f0 - (int)puVar24);\n          iVar22 = (iVar22 - ((int)puVar24 >> 0x1f)) - (uint)(local_f0 < puVar20);\n          local_f0 = puVar20;\n          if (iVar22 == 0 && puVar20 == (undefined8 *)0x0) {\n            iVar17 = fd_read_line(param_2);\n            dVar25 = (double)CONCAT44(puVar15,puVar18);\n            if (iVar17 == 0) {\n              puVar24 = (undefined8 *)0xffffffff;\n              goto LAB_000518d4;\n            }\n            if (param_13 != (undefined8 *)0x0) {\n              puVar15 = (undefined8 *)(*(code *)PTR_strlen_000b7c94)(iVar17);\n              puVar9 = (undefined8 *)&DAT_00000001;\n              puVar18 = param_13;\n              (*(code *)PTR_fwrite_000b7c24)(iVar17,1);\n            }\n            (*(code *)PTR_free_000b7d34)(iVar17);\n          }\n        }\n        goto LAB_00051748;\n      }\n      if (*(double *)(PTR_opt_000b746c + 0x120) == 0.0) {\n        dVar31 = *(double *)(PTR_DAT_000b758c + -0x15e0);\n      }\n      else {\n        dVar25 = (double)ptimer_read(local_104);\n        puVar18 = SUB84(dVar30,0);\n        if (*(double *)(PTR_opt_000b746c + 0x120) <\n            (dVar25 - dVar29) + *(double *)(PTR_DAT_000b758c + -0x15e0)) {\n          dVar31 = *(double *)(PTR_opt_000b746c + 0x120) - (dVar25 - dVar29);\n          if (dVar31 < 0.0) {\n            puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n            *puVar10 = 0x91;\n            puVar20 = (undefined8 *)0xffffffff;\n            goto LAB_00051040;\n          }\n        }\n        else {\n          dVar31 = *(double *)(PTR_DAT_000b758c + -0x15e0);\n        }\n      }\n      puVar9 = puVar4;\n      puVar24 = (undefined8 *)(*(code *)PTR_fd_read_000b7770)(param_2,puVar4);\n      local_120 = dVar31;\n      if (-1 < (int)puVar24) goto LAB_000516fc;\n      piVar14 = (int *)(*(code *)PTR___errno_location_000b7eb8)();\n      dVar25 = (double)CONCAT44(puVar15,puVar18);\n      local_120._0_4_ = (undefined8 *)((ulonglong)dVar31 >> 0x20);\n      if (*piVar14 != 0x91) goto LAB_000518d4;\n      if (iVar7 == 0) {\n        if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n          ptimer_measure(local_104);\n          puVar24 = (undefined8 *)0x0;\n          goto LAB_00051748;\n        }\n        puVar24 = (undefined8 *)0x0;\nLAB_00051720:\n        dVar25 = (double)CONCAT44(puVar15,puVar18);\n        if (param_11 != (undefined8 *)0x0) {\n          ptimer_measure(local_104);\n          dVar31 = local_120;\n          if (0 < (int)puVar24) goto LAB_000515b0;\n          goto LAB_00051748;\n        }\n        if (0 < (int)puVar24) goto LAB_000515c4;\n      }\n      else {\n        ptimer_measure(local_104);\n        puVar24 = (undefined8 *)0x0;\nLAB_00051748:\n        local_120 = dVar31;\n        dVar25 = (double)CONCAT44(puVar15,puVar18);\n        if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n          dVar30 = (double)ptimer_read(local_104);\n          puVar21 = PTR_DAT_000b7720;\n          dVar30 = dVar30 - *(double *)(PTR_DAT_000b7720 + -0x2fe0);\n          puVar20 = (undefined8 *)((int)puVar24 + *(int *)(PTR_DAT_000b7720 + -0x2fe4));\n          iVar17 = (uint)(puVar20 < puVar24) +\n                   ((int)puVar24 >> 0x1f) + *(int *)(PTR_DAT_000b7720 + -0x2fe8);\n          *(int *)(PTR_DAT_000b7720 + -0x2fe8) = iVar17;\n          *(undefined8 **)(puVar21 + -0x2fe4) = puVar20;\n          dVar31 = (double)(*(code *)PTR_FUN_000b78f4)(iVar17,puVar20);\n          puVar9 = *(undefined8 **)(PTR_opt_000b746c + 0x15c);\n          dVar27 = (double)(*(code *)PTR_FUN_000b78f4)\n                                     (*(undefined4 *)(PTR_opt_000b746c + 0x158),puVar9);\n          dVar25 = (double)CONCAT44(puVar15,puVar18);\n          if (dVar30 < dVar31 / dVar27) {\n            dVar30 = (dVar31 / dVar27 - dVar30) + *(double *)(PTR_DAT_000b7720 + -0x2fd8);\n            if (dVar30 < dVar32) {\n              if (PTR_opt_000b746c[0x16b] != '\0') {\n                uVar11 = number_to_static_string(iVar17,puVar20);\n                local_120 = (double)((ulonglong)uVar11 << 0x20);\n                dVar25 = dVar30 * *(double *)(puVar2 + -0x15d8);\n                debug_logprintf(PTR_DAT_000b758c + -0x1864);\n                puVar9 = puVar20;\n              }\n              goto LAB_0005175c;\n            }\n            if (PTR_opt_000b746c[0x16b] != '\0') {\n              uVar11 = number_to_static_string(iVar17,puVar20);\n              local_120 = (double)((ulonglong)uVar11 << 0x20);\n              dVar25 = dVar30 * dVar28;\n              debug_logprintf(PTR_DAT_000b758c + -0x183c);\n              puVar9 = puVar20;\n            }\n            dVar31 = (double)ptimer_read(local_104);\n            xsleep(dVar30);\n            dVar27 = (double)ptimer_measure(local_104);\n            dVar30 = dVar30 - (dVar27 - dVar31);\n            if (dVar33 < dVar30) {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x2580);\n            }\n            else if (dVar34 <= dVar30) {\n              *(double *)(PTR_DAT_000b7720 + -0x2fd8) = dVar30;\n            }\n            else {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x15d0);\n            }\n          }\n          puVar21 = PTR_DAT_000b7720;\n          *(undefined4 *)(PTR_DAT_000b7720 + -0x2fe4) = 0;\n          *(undefined4 *)(puVar21 + -0x2fe8) = 0;\n          uVar26 = ptimer_read(local_104);\n          *(undefined8 *)(puVar21 + -0x2fe0) = uVar26;\n        }\n      }\nLAB_0005175c:\n      if (iVar7 != 0) {\n        local_120 = (double)ptimer_read(local_104);\n        iVar17 = (int)puVar24 >> 0x1f;\n        puVar20 = puVar24;\n        progress_update(iVar7);\n        dVar25 = (double)CONCAT44(iVar17,puVar20);\n      }\n    }\n    dVar31 = *(double *)(PTR_opt_000b746c + 0x120);\n    if (uVar5 == 0) {\nLAB_00051864:\n      puVar15 = puVar20;\n      dVar30 = dVar25;\n      goto LAB_00051868;\n    }\nLAB_00051820:\n    if (iVar22 != 0 || local_f0 != (undefined8 *)0x0) {\nLAB_00051830:\n      puVar20 = local_f0;\n      if ((iVar17 <= iVar22) &&\n         ((puVar15 = local_e0, dVar30 = dVar25, iVar17 != iVar22 ||\n          (puVar20 = local_f0, local_e0 <= local_f0)))) goto LAB_00051868;\n      goto LAB_00051864;\n    }\n    iVar13 = fd_read_line(param_2);\n    puVar20 = SUB84(dVar25,0);\n    if (iVar13 == 0) {\nLAB_00050e90:\n      puVar24 = (undefined8 *)0xffffffff;\nLAB_000518d4:\n      bVar1 = (int)puVar24 < 0;\n      dVar30 = dVar25;\nLAB_000518d8:\n      puVar20 = (undefined8 *)0xffffffff;\n      puVar3 = local_120._0_4_;\n      if (!bVar1) {\n        puVar20 = puVar24;\n      }\n    }\n    else {\n      if (param_13 != (undefined8 *)0x0) {\n        uVar8 = (*(code *)PTR_strlen_000b7c94)(iVar13);\n        puVar20 = param_13;\n        (*(code *)PTR_fwrite_000b7c24)(iVar13,1,uVar8);\n      }\n      uVar8 = 0x10;\n      puVar9 = (undefined8 *)auStack_ac;\n      local_f0 = (undefined8 *)(*(code *)PTR_strtol_000b7d3c)(iVar13,puVar9);\n      iVar22 = (int)local_f0 >> 0x1f;\n      (*(code *)PTR_free_000b7d34)(iVar13);\n      dVar25 = (double)CONCAT44(uVar8,puVar20);\n      if (iVar22 < 0) goto LAB_00050e90;\n      if (local_f0 != (undefined8 *)0x0) goto LAB_00051830;\n      iVar22 = fd_read_line(param_2);\n      dVar30 = (double)CONCAT44(uVar8,puVar20);\n      if (iVar22 == 0) {\n        puVar20 = (undefined8 *)0xffffffff;\n      }\n      else {\n        if (param_13 != (undefined8 *)0x0) {\n          uVar8 = (*(code *)PTR_strlen_000b7c94)(iVar22);\n          puVar9 = (undefined8 *)&DAT_00000001;\n          (*(code *)PTR_fwrite_000b7c24)(iVar22,1);\n          puVar20 = param_13;\n        }\n        (*(code *)PTR_free_000b7d34)(iVar22);\n        dVar30 = (double)CONCAT44(uVar8,puVar20);\n        puVar20 = (undefined8 *)0x0;\n      }\n    }\nLAB_00051040:\n    local_120._0_4_ = puVar3;\n    if (iVar7 != 0) {\n      uVar26 = ptimer_read(local_104);\n      uVar19 = (undefined4)uVar26;\n      uVar8 = (undefined4)((ulonglong)uVar26 >> 0x20);\n      progress_finish(iVar7);\n      dVar30 = (double)CONCAT44(uVar8,uVar19);\n    }\n    if (param_11 != (undefined8 *)0x0) goto LAB_00051080;\n  }\n  else {\n    local_100 = (undefined8 *)(*(code *)PTR_xmalloc_000b7480)(0x8000);\n    if (local_100 == (undefined8 *)0x0) {\n      puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n      *puVar10 = 0xc;\n    }\n    else {\n      local_74 = PTR_LAB_000b78e4 + 0x368;\n      local_70 = PTR_LAB_000b78e4 + 0x330;\n      local_6c = 0;\n      local_94 = (undefined8 *)0x0;\n      local_90 = (undefined8 *)0x0;\n      param_4 = (undefined1 *)0x38;\n      puVar21 = PTR_DAT_000b758c + -0x18a0;\n      puVar9 = (undefined8 *)0x2f;\n      iVar6 = (*(code *)PTR_inflateInit2__000b7d68)(&local_94,0x2f);\n      if (iVar6 == 0) goto LAB_00050b74;\n      (*(code *)PTR_free_000b7d34)(local_100);\n      uVar8 = 0x16;\n      if (iVar6 == -4) {\n        uVar8 = 0xc;\n      }\n      puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n      *puVar10 = uVar8;\n    }\n    dVar30 = (double)CONCAT44(puVar21,param_4);\n    local_100 = param_11;\n    if (param_11 == (undefined8 *)0x0) {\n      iVar6 = 0;\n      local_fc = (undefined8 *)0x0;\n      puVar20 = (undefined8 *)0xffffffff;\n      goto LAB_000510b8;\n    }\n    local_100 = (undefined8 *)0x0;\n    iVar6 = 0;\n    local_fc = (undefined8 *)0x0;\n    local_104 = (undefined8 *)0x0;\n    puVar20 = (undefined8 *)0xffffffff;\nLAB_00051080:\n    uVar26 = ptimer_read(local_104);\n    *param_11 = uVar26;\n  }\n  if (local_104 != (undefined8 *)0x0) {\n    ptimer_destroy(local_104);\n  }\nLAB_000510b8:\n  if (local_100 != (undefined8 *)0x0) {\n    puVar9 = (undefined8 *)(*(code *)PTR_inflateEnd_000b7e58)(&local_94);\n    if ((-1 < (int)puVar20) && (puVar20 = puVar9, puVar9 != (undefined8 *)0x0)) {\n      puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)(local_100);\n      *puVar10 = 0x16;\n      puVar20 = (undefined8 *)0xffffffff;\n    }\n    (*(code *)PTR_free_000b7d34)(local_100);\n    puVar9 = local_8c;\n    if (((iVar6 != 0) || (local_8c != local_fc)) &&\n       (dVar30 = (double)CONCAT44(iVar6,SUB84(dVar30,0)), PTR_opt_000b746c[0x16b] != '\0')) {\n      iVar7 = iVar6;\n      puVar9 = local_fc;\n      debug_logprintf(PTR_DAT_000b758c + -0x180c);\n      dVar30 = (double)CONCAT44(iVar7,puVar9);\n      puVar9 = local_8c;\n    }\n  }\n  if (param_9 != (int *)0x0) {\n    puVar16 = (undefined1 *)param_9[1] + (int)local_fc;\n    *param_9 = (uint)(puVar16 < (undefined1 *)param_9[1]) + *param_9 + iVar6;\n    param_9[1] = (int)puVar16;\n  }\n  if (param_10 != (int *)0x0) {\n    uVar5 = param_10[1] + local_9c;\n    *param_10 = (int)((int)local_a0 + (uint)(uVar5 < (uint)param_10[1]) + *param_10);\n    param_10[1] = uVar5;\n    puVar9 = local_a0;\n  }\n  (*(code *)PTR_free_000b7d34)(puVar4);\n  if (local_5c == *(int *)PTR___stack_chk_guard_000b7c68) {\n    return puVar20;\n  }\n  iVar6 = local_5c;\n  puVar21 = PTR___stack_chk_fail_000b7bfc;\n  (*(code *)PTR___stack_chk_fail_000b7bfc)();\n  if (*(char *)(*(int *)(puVar21 + 0x65acc) + 0x223) == '\0') {\n    dVar25 = *(double *)(*(int *)(puVar21 + 0x65bec) + -0x6f98);\n  }\n  else {\n    dVar25 = *(double *)(*(int *)(puVar21 + 0x65bec) + -0x15d8);\n  }\n  if (dVar30 == 0.0) {\n    dVar30 = (double)ptimer_resolution();\n    dVar30 = dVar30 * *(double *)(*(int *)(puVar21 + 0x65bec) + -0x2580);\n  }\n  uVar26 = convert_to_bits(iVar6,puVar9);\n  dVar28 = (double)(**(code **)(puVar21 + 0x65f54))((int)((ulonglong)uVar26 >> 0x20),(int)uVar26);\n  dVar28 = dVar28 / dVar30;\n  if (dVar28 < dVar25) {\n    *(undefined4 *)local_120._0_4_ = 0;\n  }\n  else if (dVar28 < dVar25 * dVar25) {\n    *(undefined4 *)local_120._0_4_ = 1;\n    local_120._0_4_ = (undefined8 *)&DAT_00000001;\n  }\n  else if (dVar28 < dVar25 * dVar25 * dVar25) {\n    *(undefined4 *)local_120._0_4_ = 2;\n    local_120._0_4_ = (undefined8 *)0x2;\n  }\n  else {\n    *(undefined4 *)local_120._0_4_ = 3;\n    local_120._0_4_ = (undefined8 *)0x3;\n  }\n  return local_120._0_4_;\n}\n\n" (function_definition "undefined8 *\nfd_read_body(int param_1,undefined8 *param_2,undefined *param_3,undefined1 *param_4,int param_5,\n            undefined8 *param_6,undefined *param_7,undefined1 *param_8,int *param_9,int *param_10,\n            undefined8 *param_11,uint param_12,undefined8 *param_13)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  undefined8 *puVar3;\n  undefined8 *puVar4;\n  uint uVar5;\n  int iVar6;\n  int iVar7;\n  undefined4 uVar8;\n  undefined8 *puVar9;\n  undefined4 *puVar10;\n  uint uVar11;\n  undefined8 *puVar12;\n  int iVar13;\n  int *piVar14;\n  undefined8 *puVar15;\n  undefined1 *puVar16;\n  int iVar17;\n  undefined8 *puVar18;\n  undefined4 uVar19;\n  undefined8 *puVar20;\n  undefined *puVar21;\n  int iVar22;\n  code *pcVar23;\n  undefined8 *puVar24;\n  double dVar25;\n  undefined8 uVar26;\n  double dVar27;\n  double dVar28;\n  double dVar29;\n  double dVar30;\n  double dVar31;\n  double dVar32;\n  double dVar33;\n  double dVar34;\n  undefined8 local_120;\n  undefined8 *local_104;\n  undefined8 *local_100;\n  undefined8 *local_fc;\n  undefined8 *local_f0;\n  int local_e4;\n  undefined8 *local_e0;\n  undefined1 auStack_ac [8];\n  undefined1 *local_a4;\n  undefined8 *local_a0;\n  int local_9c;\n  undefined8 *local_94;\n  undefined8 *local_90;\n  undefined8 *local_8c;\n  undefined8 *local_88;\n  int local_84;\n  undefined *local_74;\n  undefined *local_70;\n  undefined4 local_6c;\n  int local_5c;\n  \n  local_5c = *(int *)PTR___stack_chk_guard_000b7c68;\n  puVar9 = param_2;\n  puVar21 = param_3;\n  puVar4 = (undefined8 *)(*(code *)PTR_xmalloc_000b7480)(0x2000);\n  uVar5 = param_12 & 4;\n  local_a4 = (undefined1 *)0x0;\n  auStack_ac._4_4_ = (undefined *)0x0;\n  local_9c = 0;\n  local_a0 = (undefined8 *)0x0;\n  if ((param_12 & 8) == 0) {\n    local_100 = (undefined8 *)0x0;\nLAB_00050b74:\n    if ((param_12 & 2) != 0) {\n      auStack_ac._4_4_ = param_7;\n      local_a4 = param_8;\n    }\n    if (*(int *)(PTR_opt_000b746c + 0x10c) == 0) {\n      iVar7 = 0;\n      if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n        local_e4 = 0;\n        goto LAB_00051950;\n      }\n      local_e4 = 0;\nLAB_00051978:\n      if (param_11 != (undefined8 *)0x0) goto LAB_00050c48;\n      local_104 = param_11;\n      local_e0 = (undefined8 *)0x2000;\n    }\n    else {\n      param_4 = param_8;\n      puVar21 = param_7;\n      if ((undefined *)auStack_ac._4_4_ != (undefined *)0x0 || local_a4 != (undefined1 *)0x0) {\n        puVar21 = (undefined *)0x0;\n        param_4 = (undefined1 *)0x0;\n      }\n      if (*(int *)(PTR_opt_000b746c + 0x30) != 0) {\n        iVar6 = (*(code *)PTR_strlen_000b7c94)();\n        param_1 = param_1 + iVar6 + 1;\n      }\n      local_120 = (double)CONCAT44(puVar21 + (uint)(param_4 + (int)param_6 < param_4) + param_5,\n                                   param_4 + (int)param_6);\n      iVar7 = progress_create(param_1);\n      local_e4 = progress_interactive_p(iVar7);\n      if (*(int *)(PTR_opt_000b746c + 0x158) == 0 && *(int *)(PTR_opt_000b746c + 0x15c) == 0) {\n        if (iVar7 == 0) goto LAB_00051978;\n      }\n      else {\nLAB_00051950:\n        puVar2 = PTR_DAT_000b7720;\n        *(undefined4 *)(PTR_DAT_000b7720 + -0x2fe8) = 0;\n        *(undefined4 *)(puVar2 + -0x2fe4) = 0;\n        *(undefined4 *)(puVar2 + -0x2fe0) = 0;\n        *(undefined4 *)(puVar2 + -0x2fdc) = 0;\n        *(undefined4 *)(puVar2 + -0x2fd8) = 0;\n        *(undefined4 *)(puVar2 + -0x2fd4) = 0;\n      }\nLAB_00050c48:\n      local_104 = (undefined8 *)ptimer_new();\n      iVar6 = *(int *)(PTR_opt_000b746c + 0x158);\n      local_e0 = *(undefined8 **)(PTR_opt_000b746c + 0x15c);\n      if (iVar6 == 0 && local_e0 == (undefined8 *)0x0) {\n        local_e0 = (undefined8 *)0x2000;\n      }\n      else if ((0 < iVar6) || ((iVar6 == 0 && ((undefined8 *)0x1fff < local_e0)))) {\n        local_e0 = (undefined8 *)0x2000;\n      }\n    }\n    puVar2 = PTR_DAT_000b758c;\n    dVar25 = (double)CONCAT44(puVar21,param_4);\n    iVar22 = 0;\n    local_f0 = (undefined8 *)0x0;\n    iVar6 = 0;\n    local_fc = (undefined8 *)0x0;\n    dVar29 = 0.0;\n    puVar24 = (undefined8 *)0x0;\n    dVar32 = *(double *)(PTR_DAT_000b758c + -0x2340);\n    dVar33 = *(double *)(PTR_DAT_000b758c + -0x2580);\n    dVar34 = *(double *)(PTR_DAT_000b758c + -0x15d0);\n    dVar28 = *(double *)(PTR_DAT_000b758c + -0x15d8);\n    while( true ) {\n      uVar8 = SUB84(dVar25,0);\n      iVar17 = (int)local_e0 >> 0x1f;\n      puVar20 = local_e0;\n      puVar3 = local_120._0_4_;\n      if ((param_12 & 1) == 0) break;\n      if (param_5 <= iVar6) {\n        if (param_5 != iVar6) goto LAB_000518d4;\n        if (local_fc < param_6) goto LAB_000517b0;\n        bVar1 = (int)puVar24 < 0;\n        dVar30 = dVar25;\n        goto LAB_000518d8;\n      }\nLAB_000517b0:\n      dVar31 = *(double *)(PTR_opt_000b746c + 0x120);\n      if (uVar5 != 0) goto LAB_00051820;\n      puVar15 = (undefined8 *)((int)param_6 - (int)local_fc);\n      iVar13 = (param_5 - iVar6) - (uint)(param_6 < puVar15);\n      dVar25 = (double)CONCAT44(iVar13,uVar8);\n      puVar9 = local_e0;\n      if ((iVar17 < iVar13) ||\n         ((dVar30 = (double)CONCAT44(iVar13,uVar8), iVar13 == iVar17 &&\n          (dVar30 = (double)CONCAT44(iVar13,uVar8), local_e0 < puVar15)))) goto LAB_00051864;\nLAB_00051868:\n      puVar18 = SUB84(dVar30,0);\n      if (local_e4 == 0) {\n        puVar9 = puVar4;\n        puVar24 = (undefined8 *)(*(code *)PTR_fd_read_000b7770)(param_2,puVar4);\n        local_120 = dVar31;\nLAB_000516fc:\n        bVar1 = (int)puVar24 < 0;\n        dVar30 = (double)CONCAT44(puVar15,puVar18);\n        if ((int)puVar24 < 1) goto LAB_000518d8;\n        if (iVar7 == 0) {\n          if (*(int *)(PTR_opt_000b746c + 0x158) == 0 && *(int *)(PTR_opt_000b746c + 0x15c) == 0)\n          goto LAB_00051720;\n          ptimer_measure(local_104);\n        }\n        else {\n          ptimer_measure(local_104);\n        }\nLAB_000515b0:\n        dVar29 = (double)ptimer_read(local_104);\nLAB_000515c4:\n        puVar12 = (undefined8 *)((int)local_fc + (int)puVar24);\n        iVar6 = (uint)(puVar12 < local_fc) + iVar6 + ((int)puVar24 >> 0x1f);\n        puVar9 = param_13;\n        puVar15 = puVar4;\n        puVar18 = puVar24;\n        local_fc = puVar12;\n        if (local_100 == (undefined8 *)0x0) {\n          local_120 = (double)(ZEXT48(auStack_ac + 4) << 0x20);\n          puVar20 = (undefined8 *)FUN_000503a4(param_3,param_13);\n          dVar30 = (double)CONCAT44(puVar15,puVar18);\n          puVar3 = (undefined8 *)(auStack_ac + 4);\n          if ((int)puVar20 < 0) goto LAB_00051040;\n        }\n        else {\n          local_120 = 0.0;\n          local_120._0_4_ = (undefined8 *)0x0;\n          puVar20 = (undefined8 *)FUN_000503a4(0,param_13);\n          dVar30 = (double)CONCAT44(puVar15,puVar18);\n          puVar3 = local_120._0_4_;\n          if ((int)puVar20 < 0) goto LAB_00051040;\n          puVar21 = PTR_DAT_000b758c + -0x1898;\n          pcVar23 = (code *)(PTR_LAB_000b78e4 + 0x3a4);\n          local_94 = puVar4;\n          local_90 = puVar24;\n          do {\n            local_84 = 0x8000;\n            local_88 = local_100;\n            puVar9 = (undefined8 *)0x0;\n            iVar17 = (*(code *)PTR_inflate_000b7d40)(&local_94,0);\n            puVar3 = local_120._0_4_;\n            if (iVar17 == -3) {\nLAB_000511f4:\n              puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n              dVar30 = (double)CONCAT44(puVar15,puVar18);\n              *puVar10 = 0x16;\n              puVar20 = (undefined8 *)0xffffffff;\n              goto LAB_00051040;\n            }\n            if (iVar17 < -2) {\n              if (iVar17 == -4) {\n                puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n                dVar30 = (double)CONCAT44(puVar15,puVar18);\n                *puVar10 = 0xc;\n                puVar20 = (undefined8 *)0xffffffff;\n                goto LAB_00051040;\n              }\n            }\n            else if (iVar17 == 1) {\n              if (((param_12 & 1) != 0) &&\n                 (((param_5 != iVar6 || (param_6 != puVar12)) && (PTR_opt_000b746c[0x16b] != '\0')))\n                 ) {\n                debug_logprintf(puVar21);\n              }\n            }\n            else if (iVar17 == 2) goto LAB_000511f4;\n            local_120 = (double)(ZEXT48(auStack_ac + 4) << 0x20);\n            puVar18 = (undefined8 *)(0x8000 - local_84);\n            puVar9 = (undefined8 *)0x0;\n            puVar15 = local_100;\n            puVar20 = (undefined8 *)(*pcVar23)(param_3,0);\n            dVar30 = (double)CONCAT44(puVar15,puVar18);\n            puVar3 = (undefined8 *)(auStack_ac + 4);\n            if ((int)puVar20 < 0) goto LAB_00051040;\n          } while (local_84 == 0);\n        }\n        dVar31 = local_120;\n        if (uVar5 != 0) {\n          puVar20 = (undefined8 *)((int)local_f0 - (int)puVar24);\n          iVar22 = (iVar22 - ((int)puVar24 >> 0x1f)) - (uint)(local_f0 < puVar20);\n          local_f0 = puVar20;\n          if (iVar22 == 0 && puVar20 == (undefined8 *)0x0) {\n            iVar17 = fd_read_line(param_2);\n            dVar25 = (double)CONCAT44(puVar15,puVar18);\n            if (iVar17 == 0) {\n              puVar24 = (undefined8 *)0xffffffff;\n              goto LAB_000518d4;\n            }\n            if (param_13 != (undefined8 *)0x0) {\n              puVar15 = (undefined8 *)(*(code *)PTR_strlen_000b7c94)(iVar17);\n              puVar9 = (undefined8 *)&DAT_00000001;\n              puVar18 = param_13;\n              (*(code *)PTR_fwrite_000b7c24)(iVar17,1);\n            }\n            (*(code *)PTR_free_000b7d34)(iVar17);\n          }\n        }\n        goto LAB_00051748;\n      }\n      if (*(double *)(PTR_opt_000b746c + 0x120) == 0.0) {\n        dVar31 = *(double *)(PTR_DAT_000b758c + -0x15e0);\n      }\n      else {\n        dVar25 = (double)ptimer_read(local_104);\n        puVar18 = SUB84(dVar30,0);\n        if (*(double *)(PTR_opt_000b746c + 0x120) <\n            (dVar25 - dVar29) + *(double *)(PTR_DAT_000b758c + -0x15e0)) {\n          dVar31 = *(double *)(PTR_opt_000b746c + 0x120) - (dVar25 - dVar29);\n          if (dVar31 < 0.0) {\n            puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n            *puVar10 = 0x91;\n            puVar20 = (undefined8 *)0xffffffff;\n            goto LAB_00051040;\n          }\n        }\n        else {\n          dVar31 = *(double *)(PTR_DAT_000b758c + -0x15e0);\n        }\n      }\n      puVar9 = puVar4;\n      puVar24 = (undefined8 *)(*(code *)PTR_fd_read_000b7770)(param_2,puVar4);\n      local_120 = dVar31;\n      if (-1 < (int)puVar24) goto LAB_000516fc;\n      piVar14 = (int *)(*(code *)PTR___errno_location_000b7eb8)();\n      dVar25 = (double)CONCAT44(puVar15,puVar18);\n      local_120._0_4_ = (undefined8 *)((ulonglong)dVar31 >> 0x20);\n      if (*piVar14 != 0x91) goto LAB_000518d4;\n      if (iVar7 == 0) {\n        if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n          ptimer_measure(local_104);\n          puVar24 = (undefined8 *)0x0;\n          goto LAB_00051748;\n        }\n        puVar24 = (undefined8 *)0x0;\nLAB_00051720:\n        dVar25 = (double)CONCAT44(puVar15,puVar18);\n        if (param_11 != (undefined8 *)0x0) {\n          ptimer_measure(local_104);\n          dVar31 = local_120;\n          if (0 < (int)puVar24) goto LAB_000515b0;\n          goto LAB_00051748;\n        }\n        if (0 < (int)puVar24) goto LAB_000515c4;\n      }\n      else {\n        ptimer_measure(local_104);\n        puVar24 = (undefined8 *)0x0;\nLAB_00051748:\n        local_120 = dVar31;\n        dVar25 = (double)CONCAT44(puVar15,puVar18);\n        if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n          dVar30 = (double)ptimer_read(local_104);\n          puVar21 = PTR_DAT_000b7720;\n          dVar30 = dVar30 - *(double *)(PTR_DAT_000b7720 + -0x2fe0);\n          puVar20 = (undefined8 *)((int)puVar24 + *(int *)(PTR_DAT_000b7720 + -0x2fe4));\n          iVar17 = (uint)(puVar20 < puVar24) +\n                   ((int)puVar24 >> 0x1f) + *(int *)(PTR_DAT_000b7720 + -0x2fe8);\n          *(int *)(PTR_DAT_000b7720 + -0x2fe8) = iVar17;\n          *(undefined8 **)(puVar21 + -0x2fe4) = puVar20;\n          dVar31 = (double)(*(code *)PTR_FUN_000b78f4)(iVar17,puVar20);\n          puVar9 = *(undefined8 **)(PTR_opt_000b746c + 0x15c);\n          dVar27 = (double)(*(code *)PTR_FUN_000b78f4)\n                                     (*(undefined4 *)(PTR_opt_000b746c + 0x158),puVar9);\n          dVar25 = (double)CONCAT44(puVar15,puVar18);\n          if (dVar30 < dVar31 / dVar27) {\n            dVar30 = (dVar31 / dVar27 - dVar30) + *(double *)(PTR_DAT_000b7720 + -0x2fd8);\n            if (dVar30 < dVar32) {\n              if (PTR_opt_000b746c[0x16b] != '\0') {\n                uVar11 = number_to_static_string(iVar17,puVar20);\n                local_120 = (double)((ulonglong)uVar11 << 0x20);\n                dVar25 = dVar30 * *(double *)(puVar2 + -0x15d8);\n                debug_logprintf(PTR_DAT_000b758c + -0x1864);\n                puVar9 = puVar20;\n              }\n              goto LAB_0005175c;\n            }\n            if (PTR_opt_000b746c[0x16b] != '\0') {\n              uVar11 = number_to_static_string(iVar17,puVar20);\n              local_120 = (double)((ulonglong)uVar11 << 0x20);\n              dVar25 = dVar30 * dVar28;\n              debug_logprintf(PTR_DAT_000b758c + -0x183c);\n              puVar9 = puVar20;\n            }\n            dVar31 = (double)ptimer_read(local_104);\n            xsleep(dVar30);\n            dVar27 = (double)ptimer_measure(local_104);\n            dVar30 = dVar30 - (dVar27 - dVar31);\n            if (dVar33 < dVar30) {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x2580);\n            }\n            else if (dVar34 <= dVar30) {\n              *(double *)(PTR_DAT_000b7720 + -0x2fd8) = dVar30;\n            }\n            else {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x15d0);\n            }\n          }\n          puVar21 = PTR_DAT_000b7720;\n          *(undefined4 *)(PTR_DAT_000b7720 + -0x2fe4) = 0;\n          *(undefined4 *)(puVar21 + -0x2fe8) = 0;\n          uVar26 = ptimer_read(local_104);\n          *(undefined8 *)(puVar21 + -0x2fe0) = uVar26;\n        }\n      }\nLAB_0005175c:\n      if (iVar7 != 0) {\n        local_120 = (double)ptimer_read(local_104);\n        iVar17 = (int)puVar24 >> 0x1f;\n        puVar20 = puVar24;\n        progress_update(iVar7);\n        dVar25 = (double)CONCAT44(iVar17,puVar20);\n      }\n    }\n    dVar31 = *(double *)(PTR_opt_000b746c + 0x120);\n    if (uVar5 == 0) {\nLAB_00051864:\n      puVar15 = puVar20;\n      dVar30 = dVar25;\n      goto LAB_00051868;\n    }\nLAB_00051820:\n    if (iVar22 != 0 || local_f0 != (undefined8 *)0x0) {\nLAB_00051830:\n      puVar20 = local_f0;\n      if ((iVar17 <= iVar22) &&\n         ((puVar15 = local_e0, dVar30 = dVar25, iVar17 != iVar22 ||\n          (puVar20 = local_f0, local_e0 <= local_f0)))) goto LAB_00051868;\n      goto LAB_00051864;\n    }\n    iVar13 = fd_read_line(param_2);\n    puVar20 = SUB84(dVar25,0);\n    if (iVar13 == 0) {\nLAB_00050e90:\n      puVar24 = (undefined8 *)0xffffffff;\nLAB_000518d4:\n      bVar1 = (int)puVar24 < 0;\n      dVar30 = dVar25;\nLAB_000518d8:\n      puVar20 = (undefined8 *)0xffffffff;\n      puVar3 = local_120._0_4_;\n      if (!bVar1) {\n        puVar20 = puVar24;\n      }\n    }\n    else {\n      if (param_13 != (undefined8 *)0x0) {\n        uVar8 = (*(code *)PTR_strlen_000b7c94)(iVar13);\n        puVar20 = param_13;\n        (*(code *)PTR_fwrite_000b7c24)(iVar13,1,uVar8);\n      }\n      uVar8 = 0x10;\n      puVar9 = (undefined8 *)auStack_ac;\n      local_f0 = (undefined8 *)(*(code *)PTR_strtol_000b7d3c)(iVar13,puVar9);\n      iVar22 = (int)local_f0 >> 0x1f;\n      (*(code *)PTR_free_000b7d34)(iVar13);\n      dVar25 = (double)CONCAT44(uVar8,puVar20);\n      if (iVar22 < 0) goto LAB_00050e90;\n      if (local_f0 != (undefined8 *)0x0) goto LAB_00051830;\n      iVar22 = fd_read_line(param_2);\n      dVar30 = (double)CONCAT44(uVar8,puVar20);\n      if (iVar22 == 0) {\n        puVar20 = (undefined8 *)0xffffffff;\n      }\n      else {\n        if (param_13 != (undefined8 *)0x0) {\n          uVar8 = (*(code *)PTR_strlen_000b7c94)(iVar22);\n          puVar9 = (undefined8 *)&DAT_00000001;\n          (*(code *)PTR_fwrite_000b7c24)(iVar22,1);\n          puVar20 = param_13;\n        }\n        (*(code *)PTR_free_000b7d34)(iVar22);\n        dVar30 = (double)CONCAT44(uVar8,puVar20);\n        puVar20 = (undefined8 *)0x0;\n      }\n    }\nLAB_00051040:\n    local_120._0_4_ = puVar3;\n    if (iVar7 != 0) {\n      uVar26 = ptimer_read(local_104);\n      uVar19 = (undefined4)uVar26;\n      uVar8 = (undefined4)((ulonglong)uVar26 >> 0x20);\n      progress_finish(iVar7);\n      dVar30 = (double)CONCAT44(uVar8,uVar19);\n    }\n    if (param_11 != (undefined8 *)0x0) goto LAB_00051080;\n  }\n  else {\n    local_100 = (undefined8 *)(*(code *)PTR_xmalloc_000b7480)(0x8000);\n    if (local_100 == (undefined8 *)0x0) {\n      puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n      *puVar10 = 0xc;\n    }\n    else {\n      local_74 = PTR_LAB_000b78e4 + 0x368;\n      local_70 = PTR_LAB_000b78e4 + 0x330;\n      local_6c = 0;\n      local_94 = (undefined8 *)0x0;\n      local_90 = (undefined8 *)0x0;\n      param_4 = (undefined1 *)0x38;\n      puVar21 = PTR_DAT_000b758c + -0x18a0;\n      puVar9 = (undefined8 *)0x2f;\n      iVar6 = (*(code *)PTR_inflateInit2__000b7d68)(&local_94,0x2f);\n      if (iVar6 == 0) goto LAB_00050b74;\n      (*(code *)PTR_free_000b7d34)(local_100);\n      uVar8 = 0x16;\n      if (iVar6 == -4) {\n        uVar8 = 0xc;\n      }\n      puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n      *puVar10 = uVar8;\n    }\n    dVar30 = (double)CONCAT44(puVar21,param_4);\n    local_100 = param_11;\n    if (param_11 == (undefined8 *)0x0) {\n      iVar6 = 0;\n      local_fc = (undefined8 *)0x0;\n      puVar20 = (undefined8 *)0xffffffff;\n      goto LAB_000510b8;\n    }\n    local_100 = (undefined8 *)0x0;\n    iVar6 = 0;\n    local_fc = (undefined8 *)0x0;\n    local_104 = (undefined8 *)0x0;\n    puVar20 = (undefined8 *)0xffffffff;\nLAB_00051080:\n    uVar26 = ptimer_read(local_104);\n    *param_11 = uVar26;\n  }\n  if (local_104 != (undefined8 *)0x0) {\n    ptimer_destroy(local_104);\n  }\nLAB_000510b8:\n  if (local_100 != (undefined8 *)0x0) {\n    puVar9 = (undefined8 *)(*(code *)PTR_inflateEnd_000b7e58)(&local_94);\n    if ((-1 < (int)puVar20) && (puVar20 = puVar9, puVar9 != (undefined8 *)0x0)) {\n      puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)(local_100);\n      *puVar10 = 0x16;\n      puVar20 = (undefined8 *)0xffffffff;\n    }\n    (*(code *)PTR_free_000b7d34)(local_100);\n    puVar9 = local_8c;\n    if (((iVar6 != 0) || (local_8c != local_fc)) &&\n       (dVar30 = (double)CONCAT44(iVar6,SUB84(dVar30,0)), PTR_opt_000b746c[0x16b] != '\0')) {\n      iVar7 = iVar6;\n      puVar9 = local_fc;\n      debug_logprintf(PTR_DAT_000b758c + -0x180c);\n      dVar30 = (double)CONCAT44(iVar7,puVar9);\n      puVar9 = local_8c;\n    }\n  }\n  if (param_9 != (int *)0x0) {\n    puVar16 = (undefined1 *)param_9[1] + (int)local_fc;\n    *param_9 = (uint)(puVar16 < (undefined1 *)param_9[1]) + *param_9 + iVar6;\n    param_9[1] = (int)puVar16;\n  }\n  if (param_10 != (int *)0x0) {\n    uVar5 = param_10[1] + local_9c;\n    *param_10 = (int)((int)local_a0 + (uint)(uVar5 < (uint)param_10[1]) + *param_10);\n    param_10[1] = uVar5;\n    puVar9 = local_a0;\n  }\n  (*(code *)PTR_free_000b7d34)(puVar4);\n  if (local_5c == *(int *)PTR___stack_chk_guard_000b7c68) {\n    return puVar20;\n  }\n  iVar6 = local_5c;\n  puVar21 = PTR___stack_chk_fail_000b7bfc;\n  (*(code *)PTR___stack_chk_fail_000b7bfc)();\n  if (*(char *)(*(int *)(puVar21 + 0x65acc) + 0x223) == '\0') {\n    dVar25 = *(double *)(*(int *)(puVar21 + 0x65bec) + -0x6f98);\n  }\n  else {\n    dVar25 = *(double *)(*(int *)(puVar21 + 0x65bec) + -0x15d8);\n  }\n  if (dVar30 == 0.0) {\n    dVar30 = (double)ptimer_resolution();\n    dVar30 = dVar30 * *(double *)(*(int *)(puVar21 + 0x65bec) + -0x2580);\n  }\n  uVar26 = convert_to_bits(iVar6,puVar9);\n  dVar28 = (double)(**(code **)(puVar21 + 0x65f54))((int)((ulonglong)uVar26 >> 0x20),(int)uVar26);\n  dVar28 = dVar28 / dVar30;\n  if (dVar28 < dVar25) {\n    *(undefined4 *)local_120._0_4_ = 0;\n  }\n  else if (dVar28 < dVar25 * dVar25) {\n    *(undefined4 *)local_120._0_4_ = 1;\n    local_120._0_4_ = (undefined8 *)&DAT_00000001;\n  }\n  else if (dVar28 < dVar25 * dVar25 * dVar25) {\n    *(undefined4 *)local_120._0_4_ = 2;\n    local_120._0_4_ = (undefined8 *)0x2;\n  }\n  else {\n    *(undefined4 *)local_120._0_4_ = 3;\n    local_120._0_4_ = (undefined8 *)0x3;\n  }\n  return local_120._0_4_;\n}" type_identifier (pointer_declarator "*\nfd_read_body(int param_1,undefined8 *param_2,undefined *param_3,undefined1 *param_4,int param_5,\n            undefined8 *param_6,undefined *param_7,undefined1 *param_8,int *param_9,int *param_10,\n            undefined8 *param_11,uint param_12,undefined8 *param_13)" * (function_declarator "fd_read_body(int param_1,undefined8 *param_2,undefined *param_3,undefined1 *param_4,int param_5,\n            undefined8 *param_6,undefined *param_7,undefined1 *param_8,int *param_9,int *param_10,\n            undefined8 *param_11,uint param_12,undefined8 *param_13)" identifier (parameter_list "(int param_1,undefined8 *param_2,undefined *param_3,undefined1 *param_4,int param_5,\n            undefined8 *param_6,undefined *param_7,undefined1 *param_8,int *param_9,int *param_10,\n            undefined8 *param_11,uint param_12,undefined8 *param_13)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "undefined8 *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "undefined *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "undefined1 *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "int param_5" primitive_type identifier) , (parameter_declaration "undefined8 *param_6" type_identifier (pointer_declarator "*param_6" * identifier)) , (parameter_declaration "undefined *param_7" type_identifier (pointer_declarator "*param_7" * identifier)) , (parameter_declaration "undefined1 *param_8" type_identifier (pointer_declarator "*param_8" * identifier)) , (parameter_declaration "int *param_9" primitive_type (pointer_declarator "*param_9" * identifier)) , (parameter_declaration "int *param_10" primitive_type (pointer_declarator "*param_10" * identifier)) , (parameter_declaration "undefined8 *param_11" type_identifier (pointer_declarator "*param_11" * identifier)) , (parameter_declaration "uint param_12" type_identifier identifier) , (parameter_declaration "undefined8 *param_13" type_identifier (pointer_declarator "*param_13" * identifier)) )))) (compound_statement "{\n  bool bVar1;\n  undefined *puVar2;\n  undefined8 *puVar3;\n  undefined8 *puVar4;\n  uint uVar5;\n  int iVar6;\n  int iVar7;\n  undefined4 uVar8;\n  undefined8 *puVar9;\n  undefined4 *puVar10;\n  uint uVar11;\n  undefined8 *puVar12;\n  int iVar13;\n  int *piVar14;\n  undefined8 *puVar15;\n  undefined1 *puVar16;\n  int iVar17;\n  undefined8 *puVar18;\n  undefined4 uVar19;\n  undefined8 *puVar20;\n  undefined *puVar21;\n  int iVar22;\n  code *pcVar23;\n  undefined8 *puVar24;\n  double dVar25;\n  undefined8 uVar26;\n  double dVar27;\n  double dVar28;\n  double dVar29;\n  double dVar30;\n  double dVar31;\n  double dVar32;\n  double dVar33;\n  double dVar34;\n  undefined8 local_120;\n  undefined8 *local_104;\n  undefined8 *local_100;\n  undefined8 *local_fc;\n  undefined8 *local_f0;\n  int local_e4;\n  undefined8 *local_e0;\n  undefined1 auStack_ac [8];\n  undefined1 *local_a4;\n  undefined8 *local_a0;\n  int local_9c;\n  undefined8 *local_94;\n  undefined8 *local_90;\n  undefined8 *local_8c;\n  undefined8 *local_88;\n  int local_84;\n  undefined *local_74;\n  undefined *local_70;\n  undefined4 local_6c;\n  int local_5c;\n  \n  local_5c = *(int *)PTR___stack_chk_guard_000b7c68;\n  puVar9 = param_2;\n  puVar21 = param_3;\n  puVar4 = (undefined8 *)(*(code *)PTR_xmalloc_000b7480)(0x2000);\n  uVar5 = param_12 & 4;\n  local_a4 = (undefined1 *)0x0;\n  auStack_ac._4_4_ = (undefined *)0x0;\n  local_9c = 0;\n  local_a0 = (undefined8 *)0x0;\n  if ((param_12 & 8) == 0) {\n    local_100 = (undefined8 *)0x0;\nLAB_00050b74:\n    if ((param_12 & 2) != 0) {\n      auStack_ac._4_4_ = param_7;\n      local_a4 = param_8;\n    }\n    if (*(int *)(PTR_opt_000b746c + 0x10c) == 0) {\n      iVar7 = 0;\n      if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n        local_e4 = 0;\n        goto LAB_00051950;\n      }\n      local_e4 = 0;\nLAB_00051978:\n      if (param_11 != (undefined8 *)0x0) goto LAB_00050c48;\n      local_104 = param_11;\n      local_e0 = (undefined8 *)0x2000;\n    }\n    else {\n      param_4 = param_8;\n      puVar21 = param_7;\n      if ((undefined *)auStack_ac._4_4_ != (undefined *)0x0 || local_a4 != (undefined1 *)0x0) {\n        puVar21 = (undefined *)0x0;\n        param_4 = (undefined1 *)0x0;\n      }\n      if (*(int *)(PTR_opt_000b746c + 0x30) != 0) {\n        iVar6 = (*(code *)PTR_strlen_000b7c94)();\n        param_1 = param_1 + iVar6 + 1;\n      }\n      local_120 = (double)CONCAT44(puVar21 + (uint)(param_4 + (int)param_6 < param_4) + param_5,\n                                   param_4 + (int)param_6);\n      iVar7 = progress_create(param_1);\n      local_e4 = progress_interactive_p(iVar7);\n      if (*(int *)(PTR_opt_000b746c + 0x158) == 0 && *(int *)(PTR_opt_000b746c + 0x15c) == 0) {\n        if (iVar7 == 0) goto LAB_00051978;\n      }\n      else {\nLAB_00051950:\n        puVar2 = PTR_DAT_000b7720;\n        *(undefined4 *)(PTR_DAT_000b7720 + -0x2fe8) = 0;\n        *(undefined4 *)(puVar2 + -0x2fe4) = 0;\n        *(undefined4 *)(puVar2 + -0x2fe0) = 0;\n        *(undefined4 *)(puVar2 + -0x2fdc) = 0;\n        *(undefined4 *)(puVar2 + -0x2fd8) = 0;\n        *(undefined4 *)(puVar2 + -0x2fd4) = 0;\n      }\nLAB_00050c48:\n      local_104 = (undefined8 *)ptimer_new();\n      iVar6 = *(int *)(PTR_opt_000b746c + 0x158);\n      local_e0 = *(undefined8 **)(PTR_opt_000b746c + 0x15c);\n      if (iVar6 == 0 && local_e0 == (undefined8 *)0x0) {\n        local_e0 = (undefined8 *)0x2000;\n      }\n      else if ((0 < iVar6) || ((iVar6 == 0 && ((undefined8 *)0x1fff < local_e0)))) {\n        local_e0 = (undefined8 *)0x2000;\n      }\n    }\n    puVar2 = PTR_DAT_000b758c;\n    dVar25 = (double)CONCAT44(puVar21,param_4);\n    iVar22 = 0;\n    local_f0 = (undefined8 *)0x0;\n    iVar6 = 0;\n    local_fc = (undefined8 *)0x0;\n    dVar29 = 0.0;\n    puVar24 = (undefined8 *)0x0;\n    dVar32 = *(double *)(PTR_DAT_000b758c + -0x2340);\n    dVar33 = *(double *)(PTR_DAT_000b758c + -0x2580);\n    dVar34 = *(double *)(PTR_DAT_000b758c + -0x15d0);\n    dVar28 = *(double *)(PTR_DAT_000b758c + -0x15d8);\n    while( true ) {\n      uVar8 = SUB84(dVar25,0);\n      iVar17 = (int)local_e0 >> 0x1f;\n      puVar20 = local_e0;\n      puVar3 = local_120._0_4_;\n      if ((param_12 & 1) == 0) break;\n      if (param_5 <= iVar6) {\n        if (param_5 != iVar6) goto LAB_000518d4;\n        if (local_fc < param_6) goto LAB_000517b0;\n        bVar1 = (int)puVar24 < 0;\n        dVar30 = dVar25;\n        goto LAB_000518d8;\n      }\nLAB_000517b0:\n      dVar31 = *(double *)(PTR_opt_000b746c + 0x120);\n      if (uVar5 != 0) goto LAB_00051820;\n      puVar15 = (undefined8 *)((int)param_6 - (int)local_fc);\n      iVar13 = (param_5 - iVar6) - (uint)(param_6 < puVar15);\n      dVar25 = (double)CONCAT44(iVar13,uVar8);\n      puVar9 = local_e0;\n      if ((iVar17 < iVar13) ||\n         ((dVar30 = (double)CONCAT44(iVar13,uVar8), iVar13 == iVar17 &&\n          (dVar30 = (double)CONCAT44(iVar13,uVar8), local_e0 < puVar15)))) goto LAB_00051864;\nLAB_00051868:\n      puVar18 = SUB84(dVar30,0);\n      if (local_e4 == 0) {\n        puVar9 = puVar4;\n        puVar24 = (undefined8 *)(*(code *)PTR_fd_read_000b7770)(param_2,puVar4);\n        local_120 = dVar31;\nLAB_000516fc:\n        bVar1 = (int)puVar24 < 0;\n        dVar30 = (double)CONCAT44(puVar15,puVar18);\n        if ((int)puVar24 < 1) goto LAB_000518d8;\n        if (iVar7 == 0) {\n          if (*(int *)(PTR_opt_000b746c + 0x158) == 0 && *(int *)(PTR_opt_000b746c + 0x15c) == 0)\n          goto LAB_00051720;\n          ptimer_measure(local_104);\n        }\n        else {\n          ptimer_measure(local_104);\n        }\nLAB_000515b0:\n        dVar29 = (double)ptimer_read(local_104);\nLAB_000515c4:\n        puVar12 = (undefined8 *)((int)local_fc + (int)puVar24);\n        iVar6 = (uint)(puVar12 < local_fc) + iVar6 + ((int)puVar24 >> 0x1f);\n        puVar9 = param_13;\n        puVar15 = puVar4;\n        puVar18 = puVar24;\n        local_fc = puVar12;\n        if (local_100 == (undefined8 *)0x0) {\n          local_120 = (double)(ZEXT48(auStack_ac + 4) << 0x20);\n          puVar20 = (undefined8 *)FUN_000503a4(param_3,param_13);\n          dVar30 = (double)CONCAT44(puVar15,puVar18);\n          puVar3 = (undefined8 *)(auStack_ac + 4);\n          if ((int)puVar20 < 0) goto LAB_00051040;\n        }\n        else {\n          local_120 = 0.0;\n          local_120._0_4_ = (undefined8 *)0x0;\n          puVar20 = (undefined8 *)FUN_000503a4(0,param_13);\n          dVar30 = (double)CONCAT44(puVar15,puVar18);\n          puVar3 = local_120._0_4_;\n          if ((int)puVar20 < 0) goto LAB_00051040;\n          puVar21 = PTR_DAT_000b758c + -0x1898;\n          pcVar23 = (code *)(PTR_LAB_000b78e4 + 0x3a4);\n          local_94 = puVar4;\n          local_90 = puVar24;\n          do {\n            local_84 = 0x8000;\n            local_88 = local_100;\n            puVar9 = (undefined8 *)0x0;\n            iVar17 = (*(code *)PTR_inflate_000b7d40)(&local_94,0);\n            puVar3 = local_120._0_4_;\n            if (iVar17 == -3) {\nLAB_000511f4:\n              puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n              dVar30 = (double)CONCAT44(puVar15,puVar18);\n              *puVar10 = 0x16;\n              puVar20 = (undefined8 *)0xffffffff;\n              goto LAB_00051040;\n            }\n            if (iVar17 < -2) {\n              if (iVar17 == -4) {\n                puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n                dVar30 = (double)CONCAT44(puVar15,puVar18);\n                *puVar10 = 0xc;\n                puVar20 = (undefined8 *)0xffffffff;\n                goto LAB_00051040;\n              }\n            }\n            else if (iVar17 == 1) {\n              if (((param_12 & 1) != 0) &&\n                 (((param_5 != iVar6 || (param_6 != puVar12)) && (PTR_opt_000b746c[0x16b] != '\0')))\n                 ) {\n                debug_logprintf(puVar21);\n              }\n            }\n            else if (iVar17 == 2) goto LAB_000511f4;\n            local_120 = (double)(ZEXT48(auStack_ac + 4) << 0x20);\n            puVar18 = (undefined8 *)(0x8000 - local_84);\n            puVar9 = (undefined8 *)0x0;\n            puVar15 = local_100;\n            puVar20 = (undefined8 *)(*pcVar23)(param_3,0);\n            dVar30 = (double)CONCAT44(puVar15,puVar18);\n            puVar3 = (undefined8 *)(auStack_ac + 4);\n            if ((int)puVar20 < 0) goto LAB_00051040;\n          } while (local_84 == 0);\n        }\n        dVar31 = local_120;\n        if (uVar5 != 0) {\n          puVar20 = (undefined8 *)((int)local_f0 - (int)puVar24);\n          iVar22 = (iVar22 - ((int)puVar24 >> 0x1f)) - (uint)(local_f0 < puVar20);\n          local_f0 = puVar20;\n          if (iVar22 == 0 && puVar20 == (undefined8 *)0x0) {\n            iVar17 = fd_read_line(param_2);\n            dVar25 = (double)CONCAT44(puVar15,puVar18);\n            if (iVar17 == 0) {\n              puVar24 = (undefined8 *)0xffffffff;\n              goto LAB_000518d4;\n            }\n            if (param_13 != (undefined8 *)0x0) {\n              puVar15 = (undefined8 *)(*(code *)PTR_strlen_000b7c94)(iVar17);\n              puVar9 = (undefined8 *)&DAT_00000001;\n              puVar18 = param_13;\n              (*(code *)PTR_fwrite_000b7c24)(iVar17,1);\n            }\n            (*(code *)PTR_free_000b7d34)(iVar17);\n          }\n        }\n        goto LAB_00051748;\n      }\n      if (*(double *)(PTR_opt_000b746c + 0x120) == 0.0) {\n        dVar31 = *(double *)(PTR_DAT_000b758c + -0x15e0);\n      }\n      else {\n        dVar25 = (double)ptimer_read(local_104);\n        puVar18 = SUB84(dVar30,0);\n        if (*(double *)(PTR_opt_000b746c + 0x120) <\n            (dVar25 - dVar29) + *(double *)(PTR_DAT_000b758c + -0x15e0)) {\n          dVar31 = *(double *)(PTR_opt_000b746c + 0x120) - (dVar25 - dVar29);\n          if (dVar31 < 0.0) {\n            puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n            *puVar10 = 0x91;\n            puVar20 = (undefined8 *)0xffffffff;\n            goto LAB_00051040;\n          }\n        }\n        else {\n          dVar31 = *(double *)(PTR_DAT_000b758c + -0x15e0);\n        }\n      }\n      puVar9 = puVar4;\n      puVar24 = (undefined8 *)(*(code *)PTR_fd_read_000b7770)(param_2,puVar4);\n      local_120 = dVar31;\n      if (-1 < (int)puVar24) goto LAB_000516fc;\n      piVar14 = (int *)(*(code *)PTR___errno_location_000b7eb8)();\n      dVar25 = (double)CONCAT44(puVar15,puVar18);\n      local_120._0_4_ = (undefined8 *)((ulonglong)dVar31 >> 0x20);\n      if (*piVar14 != 0x91) goto LAB_000518d4;\n      if (iVar7 == 0) {\n        if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n          ptimer_measure(local_104);\n          puVar24 = (undefined8 *)0x0;\n          goto LAB_00051748;\n        }\n        puVar24 = (undefined8 *)0x0;\nLAB_00051720:\n        dVar25 = (double)CONCAT44(puVar15,puVar18);\n        if (param_11 != (undefined8 *)0x0) {\n          ptimer_measure(local_104);\n          dVar31 = local_120;\n          if (0 < (int)puVar24) goto LAB_000515b0;\n          goto LAB_00051748;\n        }\n        if (0 < (int)puVar24) goto LAB_000515c4;\n      }\n      else {\n        ptimer_measure(local_104);\n        puVar24 = (undefined8 *)0x0;\nLAB_00051748:\n        local_120 = dVar31;\n        dVar25 = (double)CONCAT44(puVar15,puVar18);\n        if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n          dVar30 = (double)ptimer_read(local_104);\n          puVar21 = PTR_DAT_000b7720;\n          dVar30 = dVar30 - *(double *)(PTR_DAT_000b7720 + -0x2fe0);\n          puVar20 = (undefined8 *)((int)puVar24 + *(int *)(PTR_DAT_000b7720 + -0x2fe4));\n          iVar17 = (uint)(puVar20 < puVar24) +\n                   ((int)puVar24 >> 0x1f) + *(int *)(PTR_DAT_000b7720 + -0x2fe8);\n          *(int *)(PTR_DAT_000b7720 + -0x2fe8) = iVar17;\n          *(undefined8 **)(puVar21 + -0x2fe4) = puVar20;\n          dVar31 = (double)(*(code *)PTR_FUN_000b78f4)(iVar17,puVar20);\n          puVar9 = *(undefined8 **)(PTR_opt_000b746c + 0x15c);\n          dVar27 = (double)(*(code *)PTR_FUN_000b78f4)\n                                     (*(undefined4 *)(PTR_opt_000b746c + 0x158),puVar9);\n          dVar25 = (double)CONCAT44(puVar15,puVar18);\n          if (dVar30 < dVar31 / dVar27) {\n            dVar30 = (dVar31 / dVar27 - dVar30) + *(double *)(PTR_DAT_000b7720 + -0x2fd8);\n            if (dVar30 < dVar32) {\n              if (PTR_opt_000b746c[0x16b] != '\0') {\n                uVar11 = number_to_static_string(iVar17,puVar20);\n                local_120 = (double)((ulonglong)uVar11 << 0x20);\n                dVar25 = dVar30 * *(double *)(puVar2 + -0x15d8);\n                debug_logprintf(PTR_DAT_000b758c + -0x1864);\n                puVar9 = puVar20;\n              }\n              goto LAB_0005175c;\n            }\n            if (PTR_opt_000b746c[0x16b] != '\0') {\n              uVar11 = number_to_static_string(iVar17,puVar20);\n              local_120 = (double)((ulonglong)uVar11 << 0x20);\n              dVar25 = dVar30 * dVar28;\n              debug_logprintf(PTR_DAT_000b758c + -0x183c);\n              puVar9 = puVar20;\n            }\n            dVar31 = (double)ptimer_read(local_104);\n            xsleep(dVar30);\n            dVar27 = (double)ptimer_measure(local_104);\n            dVar30 = dVar30 - (dVar27 - dVar31);\n            if (dVar33 < dVar30) {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x2580);\n            }\n            else if (dVar34 <= dVar30) {\n              *(double *)(PTR_DAT_000b7720 + -0x2fd8) = dVar30;\n            }\n            else {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x15d0);\n            }\n          }\n          puVar21 = PTR_DAT_000b7720;\n          *(undefined4 *)(PTR_DAT_000b7720 + -0x2fe4) = 0;\n          *(undefined4 *)(puVar21 + -0x2fe8) = 0;\n          uVar26 = ptimer_read(local_104);\n          *(undefined8 *)(puVar21 + -0x2fe0) = uVar26;\n        }\n      }\nLAB_0005175c:\n      if (iVar7 != 0) {\n        local_120 = (double)ptimer_read(local_104);\n        iVar17 = (int)puVar24 >> 0x1f;\n        puVar20 = puVar24;\n        progress_update(iVar7);\n        dVar25 = (double)CONCAT44(iVar17,puVar20);\n      }\n    }\n    dVar31 = *(double *)(PTR_opt_000b746c + 0x120);\n    if (uVar5 == 0) {\nLAB_00051864:\n      puVar15 = puVar20;\n      dVar30 = dVar25;\n      goto LAB_00051868;\n    }\nLAB_00051820:\n    if (iVar22 != 0 || local_f0 != (undefined8 *)0x0) {\nLAB_00051830:\n      puVar20 = local_f0;\n      if ((iVar17 <= iVar22) &&\n         ((puVar15 = local_e0, dVar30 = dVar25, iVar17 != iVar22 ||\n          (puVar20 = local_f0, local_e0 <= local_f0)))) goto LAB_00051868;\n      goto LAB_00051864;\n    }\n    iVar13 = fd_read_line(param_2);\n    puVar20 = SUB84(dVar25,0);\n    if (iVar13 == 0) {\nLAB_00050e90:\n      puVar24 = (undefined8 *)0xffffffff;\nLAB_000518d4:\n      bVar1 = (int)puVar24 < 0;\n      dVar30 = dVar25;\nLAB_000518d8:\n      puVar20 = (undefined8 *)0xffffffff;\n      puVar3 = local_120._0_4_;\n      if (!bVar1) {\n        puVar20 = puVar24;\n      }\n    }\n    else {\n      if (param_13 != (undefined8 *)0x0) {\n        uVar8 = (*(code *)PTR_strlen_000b7c94)(iVar13);\n        puVar20 = param_13;\n        (*(code *)PTR_fwrite_000b7c24)(iVar13,1,uVar8);\n      }\n      uVar8 = 0x10;\n      puVar9 = (undefined8 *)auStack_ac;\n      local_f0 = (undefined8 *)(*(code *)PTR_strtol_000b7d3c)(iVar13,puVar9);\n      iVar22 = (int)local_f0 >> 0x1f;\n      (*(code *)PTR_free_000b7d34)(iVar13);\n      dVar25 = (double)CONCAT44(uVar8,puVar20);\n      if (iVar22 < 0) goto LAB_00050e90;\n      if (local_f0 != (undefined8 *)0x0) goto LAB_00051830;\n      iVar22 = fd_read_line(param_2);\n      dVar30 = (double)CONCAT44(uVar8,puVar20);\n      if (iVar22 == 0) {\n        puVar20 = (undefined8 *)0xffffffff;\n      }\n      else {\n        if (param_13 != (undefined8 *)0x0) {\n          uVar8 = (*(code *)PTR_strlen_000b7c94)(iVar22);\n          puVar9 = (undefined8 *)&DAT_00000001;\n          (*(code *)PTR_fwrite_000b7c24)(iVar22,1);\n          puVar20 = param_13;\n        }\n        (*(code *)PTR_free_000b7d34)(iVar22);\n        dVar30 = (double)CONCAT44(uVar8,puVar20);\n        puVar20 = (undefined8 *)0x0;\n      }\n    }\nLAB_00051040:\n    local_120._0_4_ = puVar3;\n    if (iVar7 != 0) {\n      uVar26 = ptimer_read(local_104);\n      uVar19 = (undefined4)uVar26;\n      uVar8 = (undefined4)((ulonglong)uVar26 >> 0x20);\n      progress_finish(iVar7);\n      dVar30 = (double)CONCAT44(uVar8,uVar19);\n    }\n    if (param_11 != (undefined8 *)0x0) goto LAB_00051080;\n  }\n  else {\n    local_100 = (undefined8 *)(*(code *)PTR_xmalloc_000b7480)(0x8000);\n    if (local_100 == (undefined8 *)0x0) {\n      puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n      *puVar10 = 0xc;\n    }\n    else {\n      local_74 = PTR_LAB_000b78e4 + 0x368;\n      local_70 = PTR_LAB_000b78e4 + 0x330;\n      local_6c = 0;\n      local_94 = (undefined8 *)0x0;\n      local_90 = (undefined8 *)0x0;\n      param_4 = (undefined1 *)0x38;\n      puVar21 = PTR_DAT_000b758c + -0x18a0;\n      puVar9 = (undefined8 *)0x2f;\n      iVar6 = (*(code *)PTR_inflateInit2__000b7d68)(&local_94,0x2f);\n      if (iVar6 == 0) goto LAB_00050b74;\n      (*(code *)PTR_free_000b7d34)(local_100);\n      uVar8 = 0x16;\n      if (iVar6 == -4) {\n        uVar8 = 0xc;\n      }\n      puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n      *puVar10 = uVar8;\n    }\n    dVar30 = (double)CONCAT44(puVar21,param_4);\n    local_100 = param_11;\n    if (param_11 == (undefined8 *)0x0) {\n      iVar6 = 0;\n      local_fc = (undefined8 *)0x0;\n      puVar20 = (undefined8 *)0xffffffff;\n      goto LAB_000510b8;\n    }\n    local_100 = (undefined8 *)0x0;\n    iVar6 = 0;\n    local_fc = (undefined8 *)0x0;\n    local_104 = (undefined8 *)0x0;\n    puVar20 = (undefined8 *)0xffffffff;\nLAB_00051080:\n    uVar26 = ptimer_read(local_104);\n    *param_11 = uVar26;\n  }\n  if (local_104 != (undefined8 *)0x0) {\n    ptimer_destroy(local_104);\n  }\nLAB_000510b8:\n  if (local_100 != (undefined8 *)0x0) {\n    puVar9 = (undefined8 *)(*(code *)PTR_inflateEnd_000b7e58)(&local_94);\n    if ((-1 < (int)puVar20) && (puVar20 = puVar9, puVar9 != (undefined8 *)0x0)) {\n      puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)(local_100);\n      *puVar10 = 0x16;\n      puVar20 = (undefined8 *)0xffffffff;\n    }\n    (*(code *)PTR_free_000b7d34)(local_100);\n    puVar9 = local_8c;\n    if (((iVar6 != 0) || (local_8c != local_fc)) &&\n       (dVar30 = (double)CONCAT44(iVar6,SUB84(dVar30,0)), PTR_opt_000b746c[0x16b] != '\0')) {\n      iVar7 = iVar6;\n      puVar9 = local_fc;\n      debug_logprintf(PTR_DAT_000b758c + -0x180c);\n      dVar30 = (double)CONCAT44(iVar7,puVar9);\n      puVar9 = local_8c;\n    }\n  }\n  if (param_9 != (int *)0x0) {\n    puVar16 = (undefined1 *)param_9[1] + (int)local_fc;\n    *param_9 = (uint)(puVar16 < (undefined1 *)param_9[1]) + *param_9 + iVar6;\n    param_9[1] = (int)puVar16;\n  }\n  if (param_10 != (int *)0x0) {\n    uVar5 = param_10[1] + local_9c;\n    *param_10 = (int)((int)local_a0 + (uint)(uVar5 < (uint)param_10[1]) + *param_10);\n    param_10[1] = uVar5;\n    puVar9 = local_a0;\n  }\n  (*(code *)PTR_free_000b7d34)(puVar4);\n  if (local_5c == *(int *)PTR___stack_chk_guard_000b7c68) {\n    return puVar20;\n  }\n  iVar6 = local_5c;\n  puVar21 = PTR___stack_chk_fail_000b7bfc;\n  (*(code *)PTR___stack_chk_fail_000b7bfc)();\n  if (*(char *)(*(int *)(puVar21 + 0x65acc) + 0x223) == '\0') {\n    dVar25 = *(double *)(*(int *)(puVar21 + 0x65bec) + -0x6f98);\n  }\n  else {\n    dVar25 = *(double *)(*(int *)(puVar21 + 0x65bec) + -0x15d8);\n  }\n  if (dVar30 == 0.0) {\n    dVar30 = (double)ptimer_resolution();\n    dVar30 = dVar30 * *(double *)(*(int *)(puVar21 + 0x65bec) + -0x2580);\n  }\n  uVar26 = convert_to_bits(iVar6,puVar9);\n  dVar28 = (double)(**(code **)(puVar21 + 0x65f54))((int)((ulonglong)uVar26 >> 0x20),(int)uVar26);\n  dVar28 = dVar28 / dVar30;\n  if (dVar28 < dVar25) {\n    *(undefined4 *)local_120._0_4_ = 0;\n  }\n  else if (dVar28 < dVar25 * dVar25) {\n    *(undefined4 *)local_120._0_4_ = 1;\n    local_120._0_4_ = (undefined8 *)&DAT_00000001;\n  }\n  else if (dVar28 < dVar25 * dVar25 * dVar25) {\n    *(undefined4 *)local_120._0_4_ = 2;\n    local_120._0_4_ = (undefined8 *)0x2;\n  }\n  else {\n    *(undefined4 *)local_120._0_4_ = 3;\n    local_120._0_4_ = (undefined8 *)0x3;\n  }\n  return local_120._0_4_;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined8 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined8 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "undefined8 *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "undefined4 *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "undefined8 *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "int *piVar14;" primitive_type (pointer_declarator "*piVar14" * identifier) ;) (declaration "undefined8 *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "undefined1 *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "undefined8 *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "undefined4 uVar19;" type_identifier identifier ;) (declaration "undefined8 *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "undefined *puVar21;" type_identifier (pointer_declarator "*puVar21" * identifier) ;) (declaration "int iVar22;" primitive_type identifier ;) (declaration "code *pcVar23;" type_identifier (pointer_declarator "*pcVar23" * identifier) ;) (declaration "undefined8 *puVar24;" type_identifier (pointer_declarator "*puVar24" * identifier) ;) (declaration "double dVar25;" primitive_type identifier ;) (declaration "undefined8 uVar26;" type_identifier identifier ;) (declaration "double dVar27;" primitive_type identifier ;) (declaration "double dVar28;" primitive_type identifier ;) (declaration "double dVar29;" primitive_type identifier ;) (declaration "double dVar30;" primitive_type identifier ;) (declaration "double dVar31;" primitive_type identifier ;) (declaration "double dVar32;" primitive_type identifier ;) (declaration "double dVar33;" primitive_type identifier ;) (declaration "double dVar34;" primitive_type identifier ;) (declaration "undefined8 local_120;" type_identifier identifier ;) (declaration "undefined8 *local_104;" type_identifier (pointer_declarator "*local_104" * identifier) ;) (declaration "undefined8 *local_100;" type_identifier (pointer_declarator "*local_100" * identifier) ;) (declaration "undefined8 *local_fc;" type_identifier (pointer_declarator "*local_fc" * identifier) ;) (declaration "undefined8 *local_f0;" type_identifier (pointer_declarator "*local_f0" * identifier) ;) (declaration "int local_e4;" primitive_type identifier ;) (declaration "undefined8 *local_e0;" type_identifier (pointer_declarator "*local_e0" * identifier) ;) (declaration "undefined1 auStack_ac [8];" type_identifier (array_declarator "auStack_ac [8]" identifier [ number_literal ]) ;) (declaration "undefined1 *local_a4;" type_identifier (pointer_declarator "*local_a4" * identifier) ;) (declaration "undefined8 *local_a0;" type_identifier (pointer_declarator "*local_a0" * identifier) ;) (declaration "int local_9c;" primitive_type identifier ;) (declaration "undefined8 *local_94;" type_identifier (pointer_declarator "*local_94" * identifier) ;) (declaration "undefined8 *local_90;" type_identifier (pointer_declarator "*local_90" * identifier) ;) (declaration "undefined8 *local_8c;" type_identifier (pointer_declarator "*local_8c" * identifier) ;) (declaration "undefined8 *local_88;" type_identifier (pointer_declarator "*local_88" * identifier) ;) (declaration "int local_84;" primitive_type identifier ;) (declaration "undefined *local_74;" type_identifier (pointer_declarator "*local_74" * identifier) ;) (declaration "undefined *local_70;" type_identifier (pointer_declarator "*local_70" * identifier) ;) (declaration "undefined4 local_6c;" type_identifier identifier ;) (declaration "int local_5c;" primitive_type identifier ;) (expression_statement "local_5c = *(int *)PTR___stack_chk_guard_000b7c68;" (assignment_expression "local_5c = *(int *)PTR___stack_chk_guard_000b7c68" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_000b7c68" * (cast_expression "(int *)PTR___stack_chk_guard_000b7c68" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "puVar9 = param_2;" (assignment_expression "puVar9 = param_2" identifier = identifier) ;) (expression_statement "puVar21 = param_3;" (assignment_expression "puVar21 = param_3" identifier = identifier) ;) (expression_statement "puVar4 = (undefined8 *)(*(code *)PTR_xmalloc_000b7480)(0x2000);" (assignment_expression "puVar4 = (undefined8 *)(*(code *)PTR_xmalloc_000b7480)(0x2000)" identifier = (cast_expression "(undefined8 *)(*(code *)PTR_xmalloc_000b7480)(0x2000)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_xmalloc_000b7480)(0x2000)" (parenthesized_expression "(*(code *)PTR_xmalloc_000b7480)" ( (pointer_expression "*(code *)PTR_xmalloc_000b7480" * (cast_expression "(code *)PTR_xmalloc_000b7480" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x2000)" ( number_literal ))))) ;) (expression_statement "uVar5 = param_12 & 4;" (assignment_expression "uVar5 = param_12 & 4" identifier = (binary_expression "param_12 & 4" identifier & number_literal)) ;) (expression_statement "local_a4 = (undefined1 *)0x0;" (assignment_expression "local_a4 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "auStack_ac._4_4_ = (undefined *)0x0;" (assignment_expression "auStack_ac._4_4_ = (undefined *)0x0" (field_expression "auStack_ac._4_4_" identifier . field_identifier) = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_9c = 0;" (assignment_expression "local_9c = 0" identifier = number_literal) ;) (expression_statement "local_a0 = (undefined8 *)0x0;" (assignment_expression "local_a0 = (undefined8 *)0x0" identifier = (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if ((param_12 & 8) == 0) {\n    local_100 = (undefined8 *)0x0;\nLAB_00050b74:\n    if ((param_12 & 2) != 0) {\n      auStack_ac._4_4_ = param_7;\n      local_a4 = param_8;\n    }\n    if (*(int *)(PTR_opt_000b746c + 0x10c) == 0) {\n      iVar7 = 0;\n      if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n        local_e4 = 0;\n        goto LAB_00051950;\n      }\n      local_e4 = 0;\nLAB_00051978:\n      if (param_11 != (undefined8 *)0x0) goto LAB_00050c48;\n      local_104 = param_11;\n      local_e0 = (undefined8 *)0x2000;\n    }\n    else {\n      param_4 = param_8;\n      puVar21 = param_7;\n      if ((undefined *)auStack_ac._4_4_ != (undefined *)0x0 || local_a4 != (undefined1 *)0x0) {\n        puVar21 = (undefined *)0x0;\n        param_4 = (undefined1 *)0x0;\n      }\n      if (*(int *)(PTR_opt_000b746c + 0x30) != 0) {\n        iVar6 = (*(code *)PTR_strlen_000b7c94)();\n        param_1 = param_1 + iVar6 + 1;\n      }\n      local_120 = (double)CONCAT44(puVar21 + (uint)(param_4 + (int)param_6 < param_4) + param_5,\n                                   param_4 + (int)param_6);\n      iVar7 = progress_create(param_1);\n      local_e4 = progress_interactive_p(iVar7);\n      if (*(int *)(PTR_opt_000b746c + 0x158) == 0 && *(int *)(PTR_opt_000b746c + 0x15c) == 0) {\n        if (iVar7 == 0) goto LAB_00051978;\n      }\n      else {\nLAB_00051950:\n        puVar2 = PTR_DAT_000b7720;\n        *(undefined4 *)(PTR_DAT_000b7720 + -0x2fe8) = 0;\n        *(undefined4 *)(puVar2 + -0x2fe4) = 0;\n        *(undefined4 *)(puVar2 + -0x2fe0) = 0;\n        *(undefined4 *)(puVar2 + -0x2fdc) = 0;\n        *(undefined4 *)(puVar2 + -0x2fd8) = 0;\n        *(undefined4 *)(puVar2 + -0x2fd4) = 0;\n      }\nLAB_00050c48:\n      local_104 = (undefined8 *)ptimer_new();\n      iVar6 = *(int *)(PTR_opt_000b746c + 0x158);\n      local_e0 = *(undefined8 **)(PTR_opt_000b746c + 0x15c);\n      if (iVar6 == 0 && local_e0 == (undefined8 *)0x0) {\n        local_e0 = (undefined8 *)0x2000;\n      }\n      else if ((0 < iVar6) || ((iVar6 == 0 && ((undefined8 *)0x1fff < local_e0)))) {\n        local_e0 = (undefined8 *)0x2000;\n      }\n    }\n    puVar2 = PTR_DAT_000b758c;\n    dVar25 = (double)CONCAT44(puVar21,param_4);\n    iVar22 = 0;\n    local_f0 = (undefined8 *)0x0;\n    iVar6 = 0;\n    local_fc = (undefined8 *)0x0;\n    dVar29 = 0.0;\n    puVar24 = (undefined8 *)0x0;\n    dVar32 = *(double *)(PTR_DAT_000b758c + -0x2340);\n    dVar33 = *(double *)(PTR_DAT_000b758c + -0x2580);\n    dVar34 = *(double *)(PTR_DAT_000b758c + -0x15d0);\n    dVar28 = *(double *)(PTR_DAT_000b758c + -0x15d8);\n    while( true ) {\n      uVar8 = SUB84(dVar25,0);\n      iVar17 = (int)local_e0 >> 0x1f;\n      puVar20 = local_e0;\n      puVar3 = local_120._0_4_;\n      if ((param_12 & 1) == 0) break;\n      if (param_5 <= iVar6) {\n        if (param_5 != iVar6) goto LAB_000518d4;\n        if (local_fc < param_6) goto LAB_000517b0;\n        bVar1 = (int)puVar24 < 0;\n        dVar30 = dVar25;\n        goto LAB_000518d8;\n      }\nLAB_000517b0:\n      dVar31 = *(double *)(PTR_opt_000b746c + 0x120);\n      if (uVar5 != 0) goto LAB_00051820;\n      puVar15 = (undefined8 *)((int)param_6 - (int)local_fc);\n      iVar13 = (param_5 - iVar6) - (uint)(param_6 < puVar15);\n      dVar25 = (double)CONCAT44(iVar13,uVar8);\n      puVar9 = local_e0;\n      if ((iVar17 < iVar13) ||\n         ((dVar30 = (double)CONCAT44(iVar13,uVar8), iVar13 == iVar17 &&\n          (dVar30 = (double)CONCAT44(iVar13,uVar8), local_e0 < puVar15)))) goto LAB_00051864;\nLAB_00051868:\n      puVar18 = SUB84(dVar30,0);\n      if (local_e4 == 0) {\n        puVar9 = puVar4;\n        puVar24 = (undefined8 *)(*(code *)PTR_fd_read_000b7770)(param_2,puVar4);\n        local_120 = dVar31;\nLAB_000516fc:\n        bVar1 = (int)puVar24 < 0;\n        dVar30 = (double)CONCAT44(puVar15,puVar18);\n        if ((int)puVar24 < 1) goto LAB_000518d8;\n        if (iVar7 == 0) {\n          if (*(int *)(PTR_opt_000b746c + 0x158) == 0 && *(int *)(PTR_opt_000b746c + 0x15c) == 0)\n          goto LAB_00051720;\n          ptimer_measure(local_104);\n        }\n        else {\n          ptimer_measure(local_104);\n        }\nLAB_000515b0:\n        dVar29 = (double)ptimer_read(local_104);\nLAB_000515c4:\n        puVar12 = (undefined8 *)((int)local_fc + (int)puVar24);\n        iVar6 = (uint)(puVar12 < local_fc) + iVar6 + ((int)puVar24 >> 0x1f);\n        puVar9 = param_13;\n        puVar15 = puVar4;\n        puVar18 = puVar24;\n        local_fc = puVar12;\n        if (local_100 == (undefined8 *)0x0) {\n          local_120 = (double)(ZEXT48(auStack_ac + 4) << 0x20);\n          puVar20 = (undefined8 *)FUN_000503a4(param_3,param_13);\n          dVar30 = (double)CONCAT44(puVar15,puVar18);\n          puVar3 = (undefined8 *)(auStack_ac + 4);\n          if ((int)puVar20 < 0) goto LAB_00051040;\n        }\n        else {\n          local_120 = 0.0;\n          local_120._0_4_ = (undefined8 *)0x0;\n          puVar20 = (undefined8 *)FUN_000503a4(0,param_13);\n          dVar30 = (double)CONCAT44(puVar15,puVar18);\n          puVar3 = local_120._0_4_;\n          if ((int)puVar20 < 0) goto LAB_00051040;\n          puVar21 = PTR_DAT_000b758c + -0x1898;\n          pcVar23 = (code *)(PTR_LAB_000b78e4 + 0x3a4);\n          local_94 = puVar4;\n          local_90 = puVar24;\n          do {\n            local_84 = 0x8000;\n            local_88 = local_100;\n            puVar9 = (undefined8 *)0x0;\n            iVar17 = (*(code *)PTR_inflate_000b7d40)(&local_94,0);\n            puVar3 = local_120._0_4_;\n            if (iVar17 == -3) {\nLAB_000511f4:\n              puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n              dVar30 = (double)CONCAT44(puVar15,puVar18);\n              *puVar10 = 0x16;\n              puVar20 = (undefined8 *)0xffffffff;\n              goto LAB_00051040;\n            }\n            if (iVar17 < -2) {\n              if (iVar17 == -4) {\n                puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n                dVar30 = (double)CONCAT44(puVar15,puVar18);\n                *puVar10 = 0xc;\n                puVar20 = (undefined8 *)0xffffffff;\n                goto LAB_00051040;\n              }\n            }\n            else if (iVar17 == 1) {\n              if (((param_12 & 1) != 0) &&\n                 (((param_5 != iVar6 || (param_6 != puVar12)) && (PTR_opt_000b746c[0x16b] != '\0')))\n                 ) {\n                debug_logprintf(puVar21);\n              }\n            }\n            else if (iVar17 == 2) goto LAB_000511f4;\n            local_120 = (double)(ZEXT48(auStack_ac + 4) << 0x20);\n            puVar18 = (undefined8 *)(0x8000 - local_84);\n            puVar9 = (undefined8 *)0x0;\n            puVar15 = local_100;\n            puVar20 = (undefined8 *)(*pcVar23)(param_3,0);\n            dVar30 = (double)CONCAT44(puVar15,puVar18);\n            puVar3 = (undefined8 *)(auStack_ac + 4);\n            if ((int)puVar20 < 0) goto LAB_00051040;\n          } while (local_84 == 0);\n        }\n        dVar31 = local_120;\n        if (uVar5 != 0) {\n          puVar20 = (undefined8 *)((int)local_f0 - (int)puVar24);\n          iVar22 = (iVar22 - ((int)puVar24 >> 0x1f)) - (uint)(local_f0 < puVar20);\n          local_f0 = puVar20;\n          if (iVar22 == 0 && puVar20 == (undefined8 *)0x0) {\n            iVar17 = fd_read_line(param_2);\n            dVar25 = (double)CONCAT44(puVar15,puVar18);\n            if (iVar17 == 0) {\n              puVar24 = (undefined8 *)0xffffffff;\n              goto LAB_000518d4;\n            }\n            if (param_13 != (undefined8 *)0x0) {\n              puVar15 = (undefined8 *)(*(code *)PTR_strlen_000b7c94)(iVar17);\n              puVar9 = (undefined8 *)&DAT_00000001;\n              puVar18 = param_13;\n              (*(code *)PTR_fwrite_000b7c24)(iVar17,1);\n            }\n            (*(code *)PTR_free_000b7d34)(iVar17);\n          }\n        }\n        goto LAB_00051748;\n      }\n      if (*(double *)(PTR_opt_000b746c + 0x120) == 0.0) {\n        dVar31 = *(double *)(PTR_DAT_000b758c + -0x15e0);\n      }\n      else {\n        dVar25 = (double)ptimer_read(local_104);\n        puVar18 = SUB84(dVar30,0);\n        if (*(double *)(PTR_opt_000b746c + 0x120) <\n            (dVar25 - dVar29) + *(double *)(PTR_DAT_000b758c + -0x15e0)) {\n          dVar31 = *(double *)(PTR_opt_000b746c + 0x120) - (dVar25 - dVar29);\n          if (dVar31 < 0.0) {\n            puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n            *puVar10 = 0x91;\n            puVar20 = (undefined8 *)0xffffffff;\n            goto LAB_00051040;\n          }\n        }\n        else {\n          dVar31 = *(double *)(PTR_DAT_000b758c + -0x15e0);\n        }\n      }\n      puVar9 = puVar4;\n      puVar24 = (undefined8 *)(*(code *)PTR_fd_read_000b7770)(param_2,puVar4);\n      local_120 = dVar31;\n      if (-1 < (int)puVar24) goto LAB_000516fc;\n      piVar14 = (int *)(*(code *)PTR___errno_location_000b7eb8)();\n      dVar25 = (double)CONCAT44(puVar15,puVar18);\n      local_120._0_4_ = (undefined8 *)((ulonglong)dVar31 >> 0x20);\n      if (*piVar14 != 0x91) goto LAB_000518d4;\n      if (iVar7 == 0) {\n        if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n          ptimer_measure(local_104);\n          puVar24 = (undefined8 *)0x0;\n          goto LAB_00051748;\n        }\n        puVar24 = (undefined8 *)0x0;\nLAB_00051720:\n        dVar25 = (double)CONCAT44(puVar15,puVar18);\n        if (param_11 != (undefined8 *)0x0) {\n          ptimer_measure(local_104);\n          dVar31 = local_120;\n          if (0 < (int)puVar24) goto LAB_000515b0;\n          goto LAB_00051748;\n        }\n        if (0 < (int)puVar24) goto LAB_000515c4;\n      }\n      else {\n        ptimer_measure(local_104);\n        puVar24 = (undefined8 *)0x0;\nLAB_00051748:\n        local_120 = dVar31;\n        dVar25 = (double)CONCAT44(puVar15,puVar18);\n        if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n          dVar30 = (double)ptimer_read(local_104);\n          puVar21 = PTR_DAT_000b7720;\n          dVar30 = dVar30 - *(double *)(PTR_DAT_000b7720 + -0x2fe0);\n          puVar20 = (undefined8 *)((int)puVar24 + *(int *)(PTR_DAT_000b7720 + -0x2fe4));\n          iVar17 = (uint)(puVar20 < puVar24) +\n                   ((int)puVar24 >> 0x1f) + *(int *)(PTR_DAT_000b7720 + -0x2fe8);\n          *(int *)(PTR_DAT_000b7720 + -0x2fe8) = iVar17;\n          *(undefined8 **)(puVar21 + -0x2fe4) = puVar20;\n          dVar31 = (double)(*(code *)PTR_FUN_000b78f4)(iVar17,puVar20);\n          puVar9 = *(undefined8 **)(PTR_opt_000b746c + 0x15c);\n          dVar27 = (double)(*(code *)PTR_FUN_000b78f4)\n                                     (*(undefined4 *)(PTR_opt_000b746c + 0x158),puVar9);\n          dVar25 = (double)CONCAT44(puVar15,puVar18);\n          if (dVar30 < dVar31 / dVar27) {\n            dVar30 = (dVar31 / dVar27 - dVar30) + *(double *)(PTR_DAT_000b7720 + -0x2fd8);\n            if (dVar30 < dVar32) {\n              if (PTR_opt_000b746c[0x16b] != '\0') {\n                uVar11 = number_to_static_string(iVar17,puVar20);\n                local_120 = (double)((ulonglong)uVar11 << 0x20);\n                dVar25 = dVar30 * *(double *)(puVar2 + -0x15d8);\n                debug_logprintf(PTR_DAT_000b758c + -0x1864);\n                puVar9 = puVar20;\n              }\n              goto LAB_0005175c;\n            }\n            if (PTR_opt_000b746c[0x16b] != '\0') {\n              uVar11 = number_to_static_string(iVar17,puVar20);\n              local_120 = (double)((ulonglong)uVar11 << 0x20);\n              dVar25 = dVar30 * dVar28;\n              debug_logprintf(PTR_DAT_000b758c + -0x183c);\n              puVar9 = puVar20;\n            }\n            dVar31 = (double)ptimer_read(local_104);\n            xsleep(dVar30);\n            dVar27 = (double)ptimer_measure(local_104);\n            dVar30 = dVar30 - (dVar27 - dVar31);\n            if (dVar33 < dVar30) {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x2580);\n            }\n            else if (dVar34 <= dVar30) {\n              *(double *)(PTR_DAT_000b7720 + -0x2fd8) = dVar30;\n            }\n            else {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x15d0);\n            }\n          }\n          puVar21 = PTR_DAT_000b7720;\n          *(undefined4 *)(PTR_DAT_000b7720 + -0x2fe4) = 0;\n          *(undefined4 *)(puVar21 + -0x2fe8) = 0;\n          uVar26 = ptimer_read(local_104);\n          *(undefined8 *)(puVar21 + -0x2fe0) = uVar26;\n        }\n      }\nLAB_0005175c:\n      if (iVar7 != 0) {\n        local_120 = (double)ptimer_read(local_104);\n        iVar17 = (int)puVar24 >> 0x1f;\n        puVar20 = puVar24;\n        progress_update(iVar7);\n        dVar25 = (double)CONCAT44(iVar17,puVar20);\n      }\n    }\n    dVar31 = *(double *)(PTR_opt_000b746c + 0x120);\n    if (uVar5 == 0) {\nLAB_00051864:\n      puVar15 = puVar20;\n      dVar30 = dVar25;\n      goto LAB_00051868;\n    }\nLAB_00051820:\n    if (iVar22 != 0 || local_f0 != (undefined8 *)0x0) {\nLAB_00051830:\n      puVar20 = local_f0;\n      if ((iVar17 <= iVar22) &&\n         ((puVar15 = local_e0, dVar30 = dVar25, iVar17 != iVar22 ||\n          (puVar20 = local_f0, local_e0 <= local_f0)))) goto LAB_00051868;\n      goto LAB_00051864;\n    }\n    iVar13 = fd_read_line(param_2);\n    puVar20 = SUB84(dVar25,0);\n    if (iVar13 == 0) {\nLAB_00050e90:\n      puVar24 = (undefined8 *)0xffffffff;\nLAB_000518d4:\n      bVar1 = (int)puVar24 < 0;\n      dVar30 = dVar25;\nLAB_000518d8:\n      puVar20 = (undefined8 *)0xffffffff;\n      puVar3 = local_120._0_4_;\n      if (!bVar1) {\n        puVar20 = puVar24;\n      }\n    }\n    else {\n      if (param_13 != (undefined8 *)0x0) {\n        uVar8 = (*(code *)PTR_strlen_000b7c94)(iVar13);\n        puVar20 = param_13;\n        (*(code *)PTR_fwrite_000b7c24)(iVar13,1,uVar8);\n      }\n      uVar8 = 0x10;\n      puVar9 = (undefined8 *)auStack_ac;\n      local_f0 = (undefined8 *)(*(code *)PTR_strtol_000b7d3c)(iVar13,puVar9);\n      iVar22 = (int)local_f0 >> 0x1f;\n      (*(code *)PTR_free_000b7d34)(iVar13);\n      dVar25 = (double)CONCAT44(uVar8,puVar20);\n      if (iVar22 < 0) goto LAB_00050e90;\n      if (local_f0 != (undefined8 *)0x0) goto LAB_00051830;\n      iVar22 = fd_read_line(param_2);\n      dVar30 = (double)CONCAT44(uVar8,puVar20);\n      if (iVar22 == 0) {\n        puVar20 = (undefined8 *)0xffffffff;\n      }\n      else {\n        if (param_13 != (undefined8 *)0x0) {\n          uVar8 = (*(code *)PTR_strlen_000b7c94)(iVar22);\n          puVar9 = (undefined8 *)&DAT_00000001;\n          (*(code *)PTR_fwrite_000b7c24)(iVar22,1);\n          puVar20 = param_13;\n        }\n        (*(code *)PTR_free_000b7d34)(iVar22);\n        dVar30 = (double)CONCAT44(uVar8,puVar20);\n        puVar20 = (undefined8 *)0x0;\n      }\n    }\nLAB_00051040:\n    local_120._0_4_ = puVar3;\n    if (iVar7 != 0) {\n      uVar26 = ptimer_read(local_104);\n      uVar19 = (undefined4)uVar26;\n      uVar8 = (undefined4)((ulonglong)uVar26 >> 0x20);\n      progress_finish(iVar7);\n      dVar30 = (double)CONCAT44(uVar8,uVar19);\n    }\n    if (param_11 != (undefined8 *)0x0) goto LAB_00051080;\n  }\n  else {\n    local_100 = (undefined8 *)(*(code *)PTR_xmalloc_000b7480)(0x8000);\n    if (local_100 == (undefined8 *)0x0) {\n      puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n      *puVar10 = 0xc;\n    }\n    else {\n      local_74 = PTR_LAB_000b78e4 + 0x368;\n      local_70 = PTR_LAB_000b78e4 + 0x330;\n      local_6c = 0;\n      local_94 = (undefined8 *)0x0;\n      local_90 = (undefined8 *)0x0;\n      param_4 = (undefined1 *)0x38;\n      puVar21 = PTR_DAT_000b758c + -0x18a0;\n      puVar9 = (undefined8 *)0x2f;\n      iVar6 = (*(code *)PTR_inflateInit2__000b7d68)(&local_94,0x2f);\n      if (iVar6 == 0) goto LAB_00050b74;\n      (*(code *)PTR_free_000b7d34)(local_100);\n      uVar8 = 0x16;\n      if (iVar6 == -4) {\n        uVar8 = 0xc;\n      }\n      puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n      *puVar10 = uVar8;\n    }\n    dVar30 = (double)CONCAT44(puVar21,param_4);\n    local_100 = param_11;\n    if (param_11 == (undefined8 *)0x0) {\n      iVar6 = 0;\n      local_fc = (undefined8 *)0x0;\n      puVar20 = (undefined8 *)0xffffffff;\n      goto LAB_000510b8;\n    }\n    local_100 = (undefined8 *)0x0;\n    iVar6 = 0;\n    local_fc = (undefined8 *)0x0;\n    local_104 = (undefined8 *)0x0;\n    puVar20 = (undefined8 *)0xffffffff;\nLAB_00051080:\n    uVar26 = ptimer_read(local_104);\n    *param_11 = uVar26;\n  }" if (parenthesized_expression "((param_12 & 8) == 0)" ( (binary_expression "(param_12 & 8) == 0" (parenthesized_expression "(param_12 & 8)" ( (binary_expression "param_12 & 8" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    local_100 = (undefined8 *)0x0;\nLAB_00050b74:\n    if ((param_12 & 2) != 0) {\n      auStack_ac._4_4_ = param_7;\n      local_a4 = param_8;\n    }\n    if (*(int *)(PTR_opt_000b746c + 0x10c) == 0) {\n      iVar7 = 0;\n      if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n        local_e4 = 0;\n        goto LAB_00051950;\n      }\n      local_e4 = 0;\nLAB_00051978:\n      if (param_11 != (undefined8 *)0x0) goto LAB_00050c48;\n      local_104 = param_11;\n      local_e0 = (undefined8 *)0x2000;\n    }\n    else {\n      param_4 = param_8;\n      puVar21 = param_7;\n      if ((undefined *)auStack_ac._4_4_ != (undefined *)0x0 || local_a4 != (undefined1 *)0x0) {\n        puVar21 = (undefined *)0x0;\n        param_4 = (undefined1 *)0x0;\n      }\n      if (*(int *)(PTR_opt_000b746c + 0x30) != 0) {\n        iVar6 = (*(code *)PTR_strlen_000b7c94)();\n        param_1 = param_1 + iVar6 + 1;\n      }\n      local_120 = (double)CONCAT44(puVar21 + (uint)(param_4 + (int)param_6 < param_4) + param_5,\n                                   param_4 + (int)param_6);\n      iVar7 = progress_create(param_1);\n      local_e4 = progress_interactive_p(iVar7);\n      if (*(int *)(PTR_opt_000b746c + 0x158) == 0 && *(int *)(PTR_opt_000b746c + 0x15c) == 0) {\n        if (iVar7 == 0) goto LAB_00051978;\n      }\n      else {\nLAB_00051950:\n        puVar2 = PTR_DAT_000b7720;\n        *(undefined4 *)(PTR_DAT_000b7720 + -0x2fe8) = 0;\n        *(undefined4 *)(puVar2 + -0x2fe4) = 0;\n        *(undefined4 *)(puVar2 + -0x2fe0) = 0;\n        *(undefined4 *)(puVar2 + -0x2fdc) = 0;\n        *(undefined4 *)(puVar2 + -0x2fd8) = 0;\n        *(undefined4 *)(puVar2 + -0x2fd4) = 0;\n      }\nLAB_00050c48:\n      local_104 = (undefined8 *)ptimer_new();\n      iVar6 = *(int *)(PTR_opt_000b746c + 0x158);\n      local_e0 = *(undefined8 **)(PTR_opt_000b746c + 0x15c);\n      if (iVar6 == 0 && local_e0 == (undefined8 *)0x0) {\n        local_e0 = (undefined8 *)0x2000;\n      }\n      else if ((0 < iVar6) || ((iVar6 == 0 && ((undefined8 *)0x1fff < local_e0)))) {\n        local_e0 = (undefined8 *)0x2000;\n      }\n    }\n    puVar2 = PTR_DAT_000b758c;\n    dVar25 = (double)CONCAT44(puVar21,param_4);\n    iVar22 = 0;\n    local_f0 = (undefined8 *)0x0;\n    iVar6 = 0;\n    local_fc = (undefined8 *)0x0;\n    dVar29 = 0.0;\n    puVar24 = (undefined8 *)0x0;\n    dVar32 = *(double *)(PTR_DAT_000b758c + -0x2340);\n    dVar33 = *(double *)(PTR_DAT_000b758c + -0x2580);\n    dVar34 = *(double *)(PTR_DAT_000b758c + -0x15d0);\n    dVar28 = *(double *)(PTR_DAT_000b758c + -0x15d8);\n    while( true ) {\n      uVar8 = SUB84(dVar25,0);\n      iVar17 = (int)local_e0 >> 0x1f;\n      puVar20 = local_e0;\n      puVar3 = local_120._0_4_;\n      if ((param_12 & 1) == 0) break;\n      if (param_5 <= iVar6) {\n        if (param_5 != iVar6) goto LAB_000518d4;\n        if (local_fc < param_6) goto LAB_000517b0;\n        bVar1 = (int)puVar24 < 0;\n        dVar30 = dVar25;\n        goto LAB_000518d8;\n      }\nLAB_000517b0:\n      dVar31 = *(double *)(PTR_opt_000b746c + 0x120);\n      if (uVar5 != 0) goto LAB_00051820;\n      puVar15 = (undefined8 *)((int)param_6 - (int)local_fc);\n      iVar13 = (param_5 - iVar6) - (uint)(param_6 < puVar15);\n      dVar25 = (double)CONCAT44(iVar13,uVar8);\n      puVar9 = local_e0;\n      if ((iVar17 < iVar13) ||\n         ((dVar30 = (double)CONCAT44(iVar13,uVar8), iVar13 == iVar17 &&\n          (dVar30 = (double)CONCAT44(iVar13,uVar8), local_e0 < puVar15)))) goto LAB_00051864;\nLAB_00051868:\n      puVar18 = SUB84(dVar30,0);\n      if (local_e4 == 0) {\n        puVar9 = puVar4;\n        puVar24 = (undefined8 *)(*(code *)PTR_fd_read_000b7770)(param_2,puVar4);\n        local_120 = dVar31;\nLAB_000516fc:\n        bVar1 = (int)puVar24 < 0;\n        dVar30 = (double)CONCAT44(puVar15,puVar18);\n        if ((int)puVar24 < 1) goto LAB_000518d8;\n        if (iVar7 == 0) {\n          if (*(int *)(PTR_opt_000b746c + 0x158) == 0 && *(int *)(PTR_opt_000b746c + 0x15c) == 0)\n          goto LAB_00051720;\n          ptimer_measure(local_104);\n        }\n        else {\n          ptimer_measure(local_104);\n        }\nLAB_000515b0:\n        dVar29 = (double)ptimer_read(local_104);\nLAB_000515c4:\n        puVar12 = (undefined8 *)((int)local_fc + (int)puVar24);\n        iVar6 = (uint)(puVar12 < local_fc) + iVar6 + ((int)puVar24 >> 0x1f);\n        puVar9 = param_13;\n        puVar15 = puVar4;\n        puVar18 = puVar24;\n        local_fc = puVar12;\n        if (local_100 == (undefined8 *)0x0) {\n          local_120 = (double)(ZEXT48(auStack_ac + 4) << 0x20);\n          puVar20 = (undefined8 *)FUN_000503a4(param_3,param_13);\n          dVar30 = (double)CONCAT44(puVar15,puVar18);\n          puVar3 = (undefined8 *)(auStack_ac + 4);\n          if ((int)puVar20 < 0) goto LAB_00051040;\n        }\n        else {\n          local_120 = 0.0;\n          local_120._0_4_ = (undefined8 *)0x0;\n          puVar20 = (undefined8 *)FUN_000503a4(0,param_13);\n          dVar30 = (double)CONCAT44(puVar15,puVar18);\n          puVar3 = local_120._0_4_;\n          if ((int)puVar20 < 0) goto LAB_00051040;\n          puVar21 = PTR_DAT_000b758c + -0x1898;\n          pcVar23 = (code *)(PTR_LAB_000b78e4 + 0x3a4);\n          local_94 = puVar4;\n          local_90 = puVar24;\n          do {\n            local_84 = 0x8000;\n            local_88 = local_100;\n            puVar9 = (undefined8 *)0x0;\n            iVar17 = (*(code *)PTR_inflate_000b7d40)(&local_94,0);\n            puVar3 = local_120._0_4_;\n            if (iVar17 == -3) {\nLAB_000511f4:\n              puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n              dVar30 = (double)CONCAT44(puVar15,puVar18);\n              *puVar10 = 0x16;\n              puVar20 = (undefined8 *)0xffffffff;\n              goto LAB_00051040;\n            }\n            if (iVar17 < -2) {\n              if (iVar17 == -4) {\n                puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n                dVar30 = (double)CONCAT44(puVar15,puVar18);\n                *puVar10 = 0xc;\n                puVar20 = (undefined8 *)0xffffffff;\n                goto LAB_00051040;\n              }\n            }\n            else if (iVar17 == 1) {\n              if (((param_12 & 1) != 0) &&\n                 (((param_5 != iVar6 || (param_6 != puVar12)) && (PTR_opt_000b746c[0x16b] != '\0')))\n                 ) {\n                debug_logprintf(puVar21);\n              }\n            }\n            else if (iVar17 == 2) goto LAB_000511f4;\n            local_120 = (double)(ZEXT48(auStack_ac + 4) << 0x20);\n            puVar18 = (undefined8 *)(0x8000 - local_84);\n            puVar9 = (undefined8 *)0x0;\n            puVar15 = local_100;\n            puVar20 = (undefined8 *)(*pcVar23)(param_3,0);\n            dVar30 = (double)CONCAT44(puVar15,puVar18);\n            puVar3 = (undefined8 *)(auStack_ac + 4);\n            if ((int)puVar20 < 0) goto LAB_00051040;\n          } while (local_84 == 0);\n        }\n        dVar31 = local_120;\n        if (uVar5 != 0) {\n          puVar20 = (undefined8 *)((int)local_f0 - (int)puVar24);\n          iVar22 = (iVar22 - ((int)puVar24 >> 0x1f)) - (uint)(local_f0 < puVar20);\n          local_f0 = puVar20;\n          if (iVar22 == 0 && puVar20 == (undefined8 *)0x0) {\n            iVar17 = fd_read_line(param_2);\n            dVar25 = (double)CONCAT44(puVar15,puVar18);\n            if (iVar17 == 0) {\n              puVar24 = (undefined8 *)0xffffffff;\n              goto LAB_000518d4;\n            }\n            if (param_13 != (undefined8 *)0x0) {\n              puVar15 = (undefined8 *)(*(code *)PTR_strlen_000b7c94)(iVar17);\n              puVar9 = (undefined8 *)&DAT_00000001;\n              puVar18 = param_13;\n              (*(code *)PTR_fwrite_000b7c24)(iVar17,1);\n            }\n            (*(code *)PTR_free_000b7d34)(iVar17);\n          }\n        }\n        goto LAB_00051748;\n      }\n      if (*(double *)(PTR_opt_000b746c + 0x120) == 0.0) {\n        dVar31 = *(double *)(PTR_DAT_000b758c + -0x15e0);\n      }\n      else {\n        dVar25 = (double)ptimer_read(local_104);\n        puVar18 = SUB84(dVar30,0);\n        if (*(double *)(PTR_opt_000b746c + 0x120) <\n            (dVar25 - dVar29) + *(double *)(PTR_DAT_000b758c + -0x15e0)) {\n          dVar31 = *(double *)(PTR_opt_000b746c + 0x120) - (dVar25 - dVar29);\n          if (dVar31 < 0.0) {\n            puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n            *puVar10 = 0x91;\n            puVar20 = (undefined8 *)0xffffffff;\n            goto LAB_00051040;\n          }\n        }\n        else {\n          dVar31 = *(double *)(PTR_DAT_000b758c + -0x15e0);\n        }\n      }\n      puVar9 = puVar4;\n      puVar24 = (undefined8 *)(*(code *)PTR_fd_read_000b7770)(param_2,puVar4);\n      local_120 = dVar31;\n      if (-1 < (int)puVar24) goto LAB_000516fc;\n      piVar14 = (int *)(*(code *)PTR___errno_location_000b7eb8)();\n      dVar25 = (double)CONCAT44(puVar15,puVar18);\n      local_120._0_4_ = (undefined8 *)((ulonglong)dVar31 >> 0x20);\n      if (*piVar14 != 0x91) goto LAB_000518d4;\n      if (iVar7 == 0) {\n        if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n          ptimer_measure(local_104);\n          puVar24 = (undefined8 *)0x0;\n          goto LAB_00051748;\n        }\n        puVar24 = (undefined8 *)0x0;\nLAB_00051720:\n        dVar25 = (double)CONCAT44(puVar15,puVar18);\n        if (param_11 != (undefined8 *)0x0) {\n          ptimer_measure(local_104);\n          dVar31 = local_120;\n          if (0 < (int)puVar24) goto LAB_000515b0;\n          goto LAB_00051748;\n        }\n        if (0 < (int)puVar24) goto LAB_000515c4;\n      }\n      else {\n        ptimer_measure(local_104);\n        puVar24 = (undefined8 *)0x0;\nLAB_00051748:\n        local_120 = dVar31;\n        dVar25 = (double)CONCAT44(puVar15,puVar18);\n        if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n          dVar30 = (double)ptimer_read(local_104);\n          puVar21 = PTR_DAT_000b7720;\n          dVar30 = dVar30 - *(double *)(PTR_DAT_000b7720 + -0x2fe0);\n          puVar20 = (undefined8 *)((int)puVar24 + *(int *)(PTR_DAT_000b7720 + -0x2fe4));\n          iVar17 = (uint)(puVar20 < puVar24) +\n                   ((int)puVar24 >> 0x1f) + *(int *)(PTR_DAT_000b7720 + -0x2fe8);\n          *(int *)(PTR_DAT_000b7720 + -0x2fe8) = iVar17;\n          *(undefined8 **)(puVar21 + -0x2fe4) = puVar20;\n          dVar31 = (double)(*(code *)PTR_FUN_000b78f4)(iVar17,puVar20);\n          puVar9 = *(undefined8 **)(PTR_opt_000b746c + 0x15c);\n          dVar27 = (double)(*(code *)PTR_FUN_000b78f4)\n                                     (*(undefined4 *)(PTR_opt_000b746c + 0x158),puVar9);\n          dVar25 = (double)CONCAT44(puVar15,puVar18);\n          if (dVar30 < dVar31 / dVar27) {\n            dVar30 = (dVar31 / dVar27 - dVar30) + *(double *)(PTR_DAT_000b7720 + -0x2fd8);\n            if (dVar30 < dVar32) {\n              if (PTR_opt_000b746c[0x16b] != '\0') {\n                uVar11 = number_to_static_string(iVar17,puVar20);\n                local_120 = (double)((ulonglong)uVar11 << 0x20);\n                dVar25 = dVar30 * *(double *)(puVar2 + -0x15d8);\n                debug_logprintf(PTR_DAT_000b758c + -0x1864);\n                puVar9 = puVar20;\n              }\n              goto LAB_0005175c;\n            }\n            if (PTR_opt_000b746c[0x16b] != '\0') {\n              uVar11 = number_to_static_string(iVar17,puVar20);\n              local_120 = (double)((ulonglong)uVar11 << 0x20);\n              dVar25 = dVar30 * dVar28;\n              debug_logprintf(PTR_DAT_000b758c + -0x183c);\n              puVar9 = puVar20;\n            }\n            dVar31 = (double)ptimer_read(local_104);\n            xsleep(dVar30);\n            dVar27 = (double)ptimer_measure(local_104);\n            dVar30 = dVar30 - (dVar27 - dVar31);\n            if (dVar33 < dVar30) {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x2580);\n            }\n            else if (dVar34 <= dVar30) {\n              *(double *)(PTR_DAT_000b7720 + -0x2fd8) = dVar30;\n            }\n            else {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x15d0);\n            }\n          }\n          puVar21 = PTR_DAT_000b7720;\n          *(undefined4 *)(PTR_DAT_000b7720 + -0x2fe4) = 0;\n          *(undefined4 *)(puVar21 + -0x2fe8) = 0;\n          uVar26 = ptimer_read(local_104);\n          *(undefined8 *)(puVar21 + -0x2fe0) = uVar26;\n        }\n      }\nLAB_0005175c:\n      if (iVar7 != 0) {\n        local_120 = (double)ptimer_read(local_104);\n        iVar17 = (int)puVar24 >> 0x1f;\n        puVar20 = puVar24;\n        progress_update(iVar7);\n        dVar25 = (double)CONCAT44(iVar17,puVar20);\n      }\n    }\n    dVar31 = *(double *)(PTR_opt_000b746c + 0x120);\n    if (uVar5 == 0) {\nLAB_00051864:\n      puVar15 = puVar20;\n      dVar30 = dVar25;\n      goto LAB_00051868;\n    }\nLAB_00051820:\n    if (iVar22 != 0 || local_f0 != (undefined8 *)0x0) {\nLAB_00051830:\n      puVar20 = local_f0;\n      if ((iVar17 <= iVar22) &&\n         ((puVar15 = local_e0, dVar30 = dVar25, iVar17 != iVar22 ||\n          (puVar20 = local_f0, local_e0 <= local_f0)))) goto LAB_00051868;\n      goto LAB_00051864;\n    }\n    iVar13 = fd_read_line(param_2);\n    puVar20 = SUB84(dVar25,0);\n    if (iVar13 == 0) {\nLAB_00050e90:\n      puVar24 = (undefined8 *)0xffffffff;\nLAB_000518d4:\n      bVar1 = (int)puVar24 < 0;\n      dVar30 = dVar25;\nLAB_000518d8:\n      puVar20 = (undefined8 *)0xffffffff;\n      puVar3 = local_120._0_4_;\n      if (!bVar1) {\n        puVar20 = puVar24;\n      }\n    }\n    else {\n      if (param_13 != (undefined8 *)0x0) {\n        uVar8 = (*(code *)PTR_strlen_000b7c94)(iVar13);\n        puVar20 = param_13;\n        (*(code *)PTR_fwrite_000b7c24)(iVar13,1,uVar8);\n      }\n      uVar8 = 0x10;\n      puVar9 = (undefined8 *)auStack_ac;\n      local_f0 = (undefined8 *)(*(code *)PTR_strtol_000b7d3c)(iVar13,puVar9);\n      iVar22 = (int)local_f0 >> 0x1f;\n      (*(code *)PTR_free_000b7d34)(iVar13);\n      dVar25 = (double)CONCAT44(uVar8,puVar20);\n      if (iVar22 < 0) goto LAB_00050e90;\n      if (local_f0 != (undefined8 *)0x0) goto LAB_00051830;\n      iVar22 = fd_read_line(param_2);\n      dVar30 = (double)CONCAT44(uVar8,puVar20);\n      if (iVar22 == 0) {\n        puVar20 = (undefined8 *)0xffffffff;\n      }\n      else {\n        if (param_13 != (undefined8 *)0x0) {\n          uVar8 = (*(code *)PTR_strlen_000b7c94)(iVar22);\n          puVar9 = (undefined8 *)&DAT_00000001;\n          (*(code *)PTR_fwrite_000b7c24)(iVar22,1);\n          puVar20 = param_13;\n        }\n        (*(code *)PTR_free_000b7d34)(iVar22);\n        dVar30 = (double)CONCAT44(uVar8,puVar20);\n        puVar20 = (undefined8 *)0x0;\n      }\n    }\nLAB_00051040:\n    local_120._0_4_ = puVar3;\n    if (iVar7 != 0) {\n      uVar26 = ptimer_read(local_104);\n      uVar19 = (undefined4)uVar26;\n      uVar8 = (undefined4)((ulonglong)uVar26 >> 0x20);\n      progress_finish(iVar7);\n      dVar30 = (double)CONCAT44(uVar8,uVar19);\n    }\n    if (param_11 != (undefined8 *)0x0) goto LAB_00051080;\n  }" { (expression_statement "local_100 = (undefined8 *)0x0;" (assignment_expression "local_100 = (undefined8 *)0x0" identifier = (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_00050b74:\n    if ((param_12 & 2) != 0) {\n      auStack_ac._4_4_ = param_7;\n      local_a4 = param_8;\n    }" statement_identifier : (if_statement "if ((param_12 & 2) != 0) {\n      auStack_ac._4_4_ = param_7;\n      local_a4 = param_8;\n    }" if (parenthesized_expression "((param_12 & 2) != 0)" ( (binary_expression "(param_12 & 2) != 0" (parenthesized_expression "(param_12 & 2)" ( (binary_expression "param_12 & 2" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      auStack_ac._4_4_ = param_7;\n      local_a4 = param_8;\n    }" { (expression_statement "auStack_ac._4_4_ = param_7;" (assignment_expression "auStack_ac._4_4_ = param_7" (field_expression "auStack_ac._4_4_" identifier . field_identifier) = identifier) ;) (expression_statement "local_a4 = param_8;" (assignment_expression "local_a4 = param_8" identifier = identifier) ;) }))) (if_statement "if (*(int *)(PTR_opt_000b746c + 0x10c) == 0) {\n      iVar7 = 0;\n      if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n        local_e4 = 0;\n        goto LAB_00051950;\n      }\n      local_e4 = 0;\nLAB_00051978:\n      if (param_11 != (undefined8 *)0x0) goto LAB_00050c48;\n      local_104 = param_11;\n      local_e0 = (undefined8 *)0x2000;\n    }\n    else {\n      param_4 = param_8;\n      puVar21 = param_7;\n      if ((undefined *)auStack_ac._4_4_ != (undefined *)0x0 || local_a4 != (undefined1 *)0x0) {\n        puVar21 = (undefined *)0x0;\n        param_4 = (undefined1 *)0x0;\n      }\n      if (*(int *)(PTR_opt_000b746c + 0x30) != 0) {\n        iVar6 = (*(code *)PTR_strlen_000b7c94)();\n        param_1 = param_1 + iVar6 + 1;\n      }\n      local_120 = (double)CONCAT44(puVar21 + (uint)(param_4 + (int)param_6 < param_4) + param_5,\n                                   param_4 + (int)param_6);\n      iVar7 = progress_create(param_1);\n      local_e4 = progress_interactive_p(iVar7);\n      if (*(int *)(PTR_opt_000b746c + 0x158) == 0 && *(int *)(PTR_opt_000b746c + 0x15c) == 0) {\n        if (iVar7 == 0) goto LAB_00051978;\n      }\n      else {\nLAB_00051950:\n        puVar2 = PTR_DAT_000b7720;\n        *(undefined4 *)(PTR_DAT_000b7720 + -0x2fe8) = 0;\n        *(undefined4 *)(puVar2 + -0x2fe4) = 0;\n        *(undefined4 *)(puVar2 + -0x2fe0) = 0;\n        *(undefined4 *)(puVar2 + -0x2fdc) = 0;\n        *(undefined4 *)(puVar2 + -0x2fd8) = 0;\n        *(undefined4 *)(puVar2 + -0x2fd4) = 0;\n      }\nLAB_00050c48:\n      local_104 = (undefined8 *)ptimer_new();\n      iVar6 = *(int *)(PTR_opt_000b746c + 0x158);\n      local_e0 = *(undefined8 **)(PTR_opt_000b746c + 0x15c);\n      if (iVar6 == 0 && local_e0 == (undefined8 *)0x0) {\n        local_e0 = (undefined8 *)0x2000;\n      }\n      else if ((0 < iVar6) || ((iVar6 == 0 && ((undefined8 *)0x1fff < local_e0)))) {\n        local_e0 = (undefined8 *)0x2000;\n      }\n    }" if (parenthesized_expression "(*(int *)(PTR_opt_000b746c + 0x10c) == 0)" ( (binary_expression "*(int *)(PTR_opt_000b746c + 0x10c) == 0" (pointer_expression "*(int *)(PTR_opt_000b746c + 0x10c)" * (cast_expression "(int *)(PTR_opt_000b746c + 0x10c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_opt_000b746c + 0x10c)" ( (binary_expression "PTR_opt_000b746c + 0x10c" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      iVar7 = 0;\n      if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n        local_e4 = 0;\n        goto LAB_00051950;\n      }\n      local_e4 = 0;\nLAB_00051978:\n      if (param_11 != (undefined8 *)0x0) goto LAB_00050c48;\n      local_104 = param_11;\n      local_e0 = (undefined8 *)0x2000;\n    }" { (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) (if_statement "if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n        local_e4 = 0;\n        goto LAB_00051950;\n      }" if (parenthesized_expression "(*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0)" ( (binary_expression "*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0" (binary_expression "*(int *)(PTR_opt_000b746c + 0x158) != 0" (pointer_expression "*(int *)(PTR_opt_000b746c + 0x158)" * (cast_expression "(int *)(PTR_opt_000b746c + 0x158)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_opt_000b746c + 0x158)" ( (binary_expression "PTR_opt_000b746c + 0x158" identifier + number_literal) )))) != number_literal) || (binary_expression "*(int *)(PTR_opt_000b746c + 0x15c) != 0" (pointer_expression "*(int *)(PTR_opt_000b746c + 0x15c)" * (cast_expression "(int *)(PTR_opt_000b746c + 0x15c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_opt_000b746c + 0x15c)" ( (binary_expression "PTR_opt_000b746c + 0x15c" identifier + number_literal) )))) != number_literal)) )) (compound_statement "{\n        local_e4 = 0;\n        goto LAB_00051950;\n      }" { (expression_statement "local_e4 = 0;" (assignment_expression "local_e4 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00051950;" goto statement_identifier ;) })) (expression_statement "local_e4 = 0;" (assignment_expression "local_e4 = 0" identifier = number_literal) ;) (labeled_statement "LAB_00051978:\n      if (param_11 != (undefined8 *)0x0) goto LAB_00050c48;" statement_identifier : (if_statement "if (param_11 != (undefined8 *)0x0) goto LAB_00050c48;" if (parenthesized_expression "(param_11 != (undefined8 *)0x0)" ( (binary_expression "param_11 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00050c48;" goto statement_identifier ;))) (expression_statement "local_104 = param_11;" (assignment_expression "local_104 = param_11" identifier = identifier) ;) (expression_statement "local_e0 = (undefined8 *)0x2000;" (assignment_expression "local_e0 = (undefined8 *)0x2000" identifier = (cast_expression "(undefined8 *)0x2000" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n      param_4 = param_8;\n      puVar21 = param_7;\n      if ((undefined *)auStack_ac._4_4_ != (undefined *)0x0 || local_a4 != (undefined1 *)0x0) {\n        puVar21 = (undefined *)0x0;\n        param_4 = (undefined1 *)0x0;\n      }\n      if (*(int *)(PTR_opt_000b746c + 0x30) != 0) {\n        iVar6 = (*(code *)PTR_strlen_000b7c94)();\n        param_1 = param_1 + iVar6 + 1;\n      }\n      local_120 = (double)CONCAT44(puVar21 + (uint)(param_4 + (int)param_6 < param_4) + param_5,\n                                   param_4 + (int)param_6);\n      iVar7 = progress_create(param_1);\n      local_e4 = progress_interactive_p(iVar7);\n      if (*(int *)(PTR_opt_000b746c + 0x158) == 0 && *(int *)(PTR_opt_000b746c + 0x15c) == 0) {\n        if (iVar7 == 0) goto LAB_00051978;\n      }\n      else {\nLAB_00051950:\n        puVar2 = PTR_DAT_000b7720;\n        *(undefined4 *)(PTR_DAT_000b7720 + -0x2fe8) = 0;\n        *(undefined4 *)(puVar2 + -0x2fe4) = 0;\n        *(undefined4 *)(puVar2 + -0x2fe0) = 0;\n        *(undefined4 *)(puVar2 + -0x2fdc) = 0;\n        *(undefined4 *)(puVar2 + -0x2fd8) = 0;\n        *(undefined4 *)(puVar2 + -0x2fd4) = 0;\n      }\nLAB_00050c48:\n      local_104 = (undefined8 *)ptimer_new();\n      iVar6 = *(int *)(PTR_opt_000b746c + 0x158);\n      local_e0 = *(undefined8 **)(PTR_opt_000b746c + 0x15c);\n      if (iVar6 == 0 && local_e0 == (undefined8 *)0x0) {\n        local_e0 = (undefined8 *)0x2000;\n      }\n      else if ((0 < iVar6) || ((iVar6 == 0 && ((undefined8 *)0x1fff < local_e0)))) {\n        local_e0 = (undefined8 *)0x2000;\n      }\n    }" else (compound_statement "{\n      param_4 = param_8;\n      puVar21 = param_7;\n      if ((undefined *)auStack_ac._4_4_ != (undefined *)0x0 || local_a4 != (undefined1 *)0x0) {\n        puVar21 = (undefined *)0x0;\n        param_4 = (undefined1 *)0x0;\n      }\n      if (*(int *)(PTR_opt_000b746c + 0x30) != 0) {\n        iVar6 = (*(code *)PTR_strlen_000b7c94)();\n        param_1 = param_1 + iVar6 + 1;\n      }\n      local_120 = (double)CONCAT44(puVar21 + (uint)(param_4 + (int)param_6 < param_4) + param_5,\n                                   param_4 + (int)param_6);\n      iVar7 = progress_create(param_1);\n      local_e4 = progress_interactive_p(iVar7);\n      if (*(int *)(PTR_opt_000b746c + 0x158) == 0 && *(int *)(PTR_opt_000b746c + 0x15c) == 0) {\n        if (iVar7 == 0) goto LAB_00051978;\n      }\n      else {\nLAB_00051950:\n        puVar2 = PTR_DAT_000b7720;\n        *(undefined4 *)(PTR_DAT_000b7720 + -0x2fe8) = 0;\n        *(undefined4 *)(puVar2 + -0x2fe4) = 0;\n        *(undefined4 *)(puVar2 + -0x2fe0) = 0;\n        *(undefined4 *)(puVar2 + -0x2fdc) = 0;\n        *(undefined4 *)(puVar2 + -0x2fd8) = 0;\n        *(undefined4 *)(puVar2 + -0x2fd4) = 0;\n      }\nLAB_00050c48:\n      local_104 = (undefined8 *)ptimer_new();\n      iVar6 = *(int *)(PTR_opt_000b746c + 0x158);\n      local_e0 = *(undefined8 **)(PTR_opt_000b746c + 0x15c);\n      if (iVar6 == 0 && local_e0 == (undefined8 *)0x0) {\n        local_e0 = (undefined8 *)0x2000;\n      }\n      else if ((0 < iVar6) || ((iVar6 == 0 && ((undefined8 *)0x1fff < local_e0)))) {\n        local_e0 = (undefined8 *)0x2000;\n      }\n    }" { (expression_statement "param_4 = param_8;" (assignment_expression "param_4 = param_8" identifier = identifier) ;) (expression_statement "puVar21 = param_7;" (assignment_expression "puVar21 = param_7" identifier = identifier) ;) (if_statement "if ((undefined *)auStack_ac._4_4_ != (undefined *)0x0 || local_a4 != (undefined1 *)0x0) {\n        puVar21 = (undefined *)0x0;\n        param_4 = (undefined1 *)0x0;\n      }" if (parenthesized_expression "((undefined *)auStack_ac._4_4_ != (undefined *)0x0 || local_a4 != (undefined1 *)0x0)" ( (binary_expression "(undefined *)auStack_ac._4_4_ != (undefined *)0x0 || local_a4 != (undefined1 *)0x0" (binary_expression "(undefined *)auStack_ac._4_4_ != (undefined *)0x0" (cast_expression "(undefined *)auStack_ac._4_4_" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "auStack_ac._4_4_" identifier . field_identifier)) != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) || (binary_expression "local_a4 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n        puVar21 = (undefined *)0x0;\n        param_4 = (undefined1 *)0x0;\n      }" { (expression_statement "puVar21 = (undefined *)0x0;" (assignment_expression "puVar21 = (undefined *)0x0" identifier = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "param_4 = (undefined1 *)0x0;" (assignment_expression "param_4 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (if_statement "if (*(int *)(PTR_opt_000b746c + 0x30) != 0) {\n        iVar6 = (*(code *)PTR_strlen_000b7c94)();\n        param_1 = param_1 + iVar6 + 1;\n      }" if (parenthesized_expression "(*(int *)(PTR_opt_000b746c + 0x30) != 0)" ( (binary_expression "*(int *)(PTR_opt_000b746c + 0x30) != 0" (pointer_expression "*(int *)(PTR_opt_000b746c + 0x30)" * (cast_expression "(int *)(PTR_opt_000b746c + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_opt_000b746c + 0x30)" ( (binary_expression "PTR_opt_000b746c + 0x30" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n        iVar6 = (*(code *)PTR_strlen_000b7c94)();\n        param_1 = param_1 + iVar6 + 1;\n      }" { (expression_statement "iVar6 = (*(code *)PTR_strlen_000b7c94)();" (assignment_expression "iVar6 = (*(code *)PTR_strlen_000b7c94)()" identifier = (call_expression "(*(code *)PTR_strlen_000b7c94)()" (parenthesized_expression "(*(code *)PTR_strlen_000b7c94)" ( (pointer_expression "*(code *)PTR_strlen_000b7c94" * (cast_expression "(code *)PTR_strlen_000b7c94" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "param_1 = param_1 + iVar6 + 1;" (assignment_expression "param_1 = param_1 + iVar6 + 1" identifier = (binary_expression "param_1 + iVar6 + 1" (binary_expression "param_1 + iVar6" identifier + identifier) + number_literal)) ;) })) (expression_statement "local_120 = (double)CONCAT44(puVar21 + (uint)(param_4 + (int)param_6 < param_4) + param_5,\n                                   param_4 + (int)param_6);" (assignment_expression "local_120 = (double)CONCAT44(puVar21 + (uint)(param_4 + (int)param_6 < param_4) + param_5,\n                                   param_4 + (int)param_6)" identifier = (cast_expression "(double)CONCAT44(puVar21 + (uint)(param_4 + (int)param_6 < param_4) + param_5,\n                                   param_4 + (int)param_6)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(puVar21 + (uint)(param_4 + (int)param_6 < param_4) + param_5,\n                                   param_4 + (int)param_6)" identifier (argument_list "(puVar21 + (uint)(param_4 + (int)param_6 < param_4) + param_5,\n                                   param_4 + (int)param_6)" ( (binary_expression "puVar21 + (uint)(param_4 + (int)param_6 < param_4) + param_5" (binary_expression "puVar21 + (uint)(param_4 + (int)param_6 < param_4)" identifier + (call_expression "(uint)(param_4 + (int)param_6 < param_4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_4 + (int)param_6 < param_4)" ( (binary_expression "param_4 + (int)param_6 < param_4" (binary_expression "param_4 + (int)param_6" identifier + (cast_expression "(int)param_6" ( (type_descriptor "int" primitive_type) ) identifier)) < identifier) )))) + identifier) , (binary_expression "param_4 + (int)param_6" identifier + (cast_expression "(int)param_6" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) ;) (expression_statement "iVar7 = progress_create(param_1);" (assignment_expression "iVar7 = progress_create(param_1)" identifier = (call_expression "progress_create(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "local_e4 = progress_interactive_p(iVar7);" (assignment_expression "local_e4 = progress_interactive_p(iVar7)" identifier = (call_expression "progress_interactive_p(iVar7)" identifier (argument_list "(iVar7)" ( identifier )))) ;) (if_statement "if (*(int *)(PTR_opt_000b746c + 0x158) == 0 && *(int *)(PTR_opt_000b746c + 0x15c) == 0) {\n        if (iVar7 == 0) goto LAB_00051978;\n      }\n      else {\nLAB_00051950:\n        puVar2 = PTR_DAT_000b7720;\n        *(undefined4 *)(PTR_DAT_000b7720 + -0x2fe8) = 0;\n        *(undefined4 *)(puVar2 + -0x2fe4) = 0;\n        *(undefined4 *)(puVar2 + -0x2fe0) = 0;\n        *(undefined4 *)(puVar2 + -0x2fdc) = 0;\n        *(undefined4 *)(puVar2 + -0x2fd8) = 0;\n        *(undefined4 *)(puVar2 + -0x2fd4) = 0;\n      }" if (parenthesized_expression "(*(int *)(PTR_opt_000b746c + 0x158) == 0 && *(int *)(PTR_opt_000b746c + 0x15c) == 0)" ( (binary_expression "*(int *)(PTR_opt_000b746c + 0x158) == 0 && *(int *)(PTR_opt_000b746c + 0x15c) == 0" (binary_expression "*(int *)(PTR_opt_000b746c + 0x158) == 0" (pointer_expression "*(int *)(PTR_opt_000b746c + 0x158)" * (cast_expression "(int *)(PTR_opt_000b746c + 0x158)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_opt_000b746c + 0x158)" ( (binary_expression "PTR_opt_000b746c + 0x158" identifier + number_literal) )))) == number_literal) && (binary_expression "*(int *)(PTR_opt_000b746c + 0x15c) == 0" (pointer_expression "*(int *)(PTR_opt_000b746c + 0x15c)" * (cast_expression "(int *)(PTR_opt_000b746c + 0x15c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_opt_000b746c + 0x15c)" ( (binary_expression "PTR_opt_000b746c + 0x15c" identifier + number_literal) )))) == number_literal)) )) (compound_statement "{\n        if (iVar7 == 0) goto LAB_00051978;\n      }" { (if_statement "if (iVar7 == 0) goto LAB_00051978;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00051978;" goto statement_identifier ;)) }) (else_clause "else {\nLAB_00051950:\n        puVar2 = PTR_DAT_000b7720;\n        *(undefined4 *)(PTR_DAT_000b7720 + -0x2fe8) = 0;\n        *(undefined4 *)(puVar2 + -0x2fe4) = 0;\n        *(undefined4 *)(puVar2 + -0x2fe0) = 0;\n        *(undefined4 *)(puVar2 + -0x2fdc) = 0;\n        *(undefined4 *)(puVar2 + -0x2fd8) = 0;\n        *(undefined4 *)(puVar2 + -0x2fd4) = 0;\n      }" else (compound_statement "{\nLAB_00051950:\n        puVar2 = PTR_DAT_000b7720;\n        *(undefined4 *)(PTR_DAT_000b7720 + -0x2fe8) = 0;\n        *(undefined4 *)(puVar2 + -0x2fe4) = 0;\n        *(undefined4 *)(puVar2 + -0x2fe0) = 0;\n        *(undefined4 *)(puVar2 + -0x2fdc) = 0;\n        *(undefined4 *)(puVar2 + -0x2fd8) = 0;\n        *(undefined4 *)(puVar2 + -0x2fd4) = 0;\n      }" { (labeled_statement "LAB_00051950:\n        puVar2 = PTR_DAT_000b7720;" statement_identifier : (expression_statement "puVar2 = PTR_DAT_000b7720;" (assignment_expression "puVar2 = PTR_DAT_000b7720" identifier = identifier) ;)) (expression_statement "*(undefined4 *)(PTR_DAT_000b7720 + -0x2fe8) = 0;" (assignment_expression "*(undefined4 *)(PTR_DAT_000b7720 + -0x2fe8) = 0" (pointer_expression "*(undefined4 *)(PTR_DAT_000b7720 + -0x2fe8)" * (cast_expression "(undefined4 *)(PTR_DAT_000b7720 + -0x2fe8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000b7720 + -0x2fe8)" ( (binary_expression "PTR_DAT_000b7720 + -0x2fe8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar2 + -0x2fe4) = 0;" (assignment_expression "*(undefined4 *)(puVar2 + -0x2fe4) = 0" (pointer_expression "*(undefined4 *)(puVar2 + -0x2fe4)" * (cast_expression "(undefined4 *)(puVar2 + -0x2fe4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + -0x2fe4)" ( (binary_expression "puVar2 + -0x2fe4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar2 + -0x2fe0) = 0;" (assignment_expression "*(undefined4 *)(puVar2 + -0x2fe0) = 0" (pointer_expression "*(undefined4 *)(puVar2 + -0x2fe0)" * (cast_expression "(undefined4 *)(puVar2 + -0x2fe0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + -0x2fe0)" ( (binary_expression "puVar2 + -0x2fe0" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar2 + -0x2fdc) = 0;" (assignment_expression "*(undefined4 *)(puVar2 + -0x2fdc) = 0" (pointer_expression "*(undefined4 *)(puVar2 + -0x2fdc)" * (cast_expression "(undefined4 *)(puVar2 + -0x2fdc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + -0x2fdc)" ( (binary_expression "puVar2 + -0x2fdc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar2 + -0x2fd8) = 0;" (assignment_expression "*(undefined4 *)(puVar2 + -0x2fd8) = 0" (pointer_expression "*(undefined4 *)(puVar2 + -0x2fd8)" * (cast_expression "(undefined4 *)(puVar2 + -0x2fd8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + -0x2fd8)" ( (binary_expression "puVar2 + -0x2fd8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar2 + -0x2fd4) = 0;" (assignment_expression "*(undefined4 *)(puVar2 + -0x2fd4) = 0" (pointer_expression "*(undefined4 *)(puVar2 + -0x2fd4)" * (cast_expression "(undefined4 *)(puVar2 + -0x2fd4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + -0x2fd4)" ( (binary_expression "puVar2 + -0x2fd4" identifier + number_literal) )))) = number_literal) ;) }))) (labeled_statement "LAB_00050c48:\n      local_104 = (undefined8 *)ptimer_new();" statement_identifier : (expression_statement "local_104 = (undefined8 *)ptimer_new();" (assignment_expression "local_104 = (undefined8 *)ptimer_new()" identifier = (cast_expression "(undefined8 *)ptimer_new()" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "ptimer_new()" identifier (argument_list "()" ( ))))) ;)) (expression_statement "iVar6 = *(int *)(PTR_opt_000b746c + 0x158);" (assignment_expression "iVar6 = *(int *)(PTR_opt_000b746c + 0x158)" identifier = (pointer_expression "*(int *)(PTR_opt_000b746c + 0x158)" * (cast_expression "(int *)(PTR_opt_000b746c + 0x158)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_opt_000b746c + 0x158)" ( (binary_expression "PTR_opt_000b746c + 0x158" identifier + number_literal) ))))) ;) (expression_statement "local_e0 = *(undefined8 **)(PTR_opt_000b746c + 0x15c);" (assignment_expression "local_e0 = *(undefined8 **)(PTR_opt_000b746c + 0x15c)" identifier = (pointer_expression "*(undefined8 **)(PTR_opt_000b746c + 0x15c)" * (cast_expression "(undefined8 **)(PTR_opt_000b746c + 0x15c)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_opt_000b746c + 0x15c)" ( (binary_expression "PTR_opt_000b746c + 0x15c" identifier + number_literal) ))))) ;) (if_statement "if (iVar6 == 0 && local_e0 == (undefined8 *)0x0) {\n        local_e0 = (undefined8 *)0x2000;\n      }\n      else if ((0 < iVar6) || ((iVar6 == 0 && ((undefined8 *)0x1fff < local_e0)))) {\n        local_e0 = (undefined8 *)0x2000;\n      }" if (parenthesized_expression "(iVar6 == 0 && local_e0 == (undefined8 *)0x0)" ( (binary_expression "iVar6 == 0 && local_e0 == (undefined8 *)0x0" (binary_expression "iVar6 == 0" identifier == number_literal) && (binary_expression "local_e0 == (undefined8 *)0x0" identifier == (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n        local_e0 = (undefined8 *)0x2000;\n      }" { (expression_statement "local_e0 = (undefined8 *)0x2000;" (assignment_expression "local_e0 = (undefined8 *)0x2000" identifier = (cast_expression "(undefined8 *)0x2000" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else if ((0 < iVar6) || ((iVar6 == 0 && ((undefined8 *)0x1fff < local_e0)))) {\n        local_e0 = (undefined8 *)0x2000;\n      }" else (if_statement "if ((0 < iVar6) || ((iVar6 == 0 && ((undefined8 *)0x1fff < local_e0)))) {\n        local_e0 = (undefined8 *)0x2000;\n      }" if (parenthesized_expression "((0 < iVar6) || ((iVar6 == 0 && ((undefined8 *)0x1fff < local_e0))))" ( (binary_expression "(0 < iVar6) || ((iVar6 == 0 && ((undefined8 *)0x1fff < local_e0)))" (parenthesized_expression "(0 < iVar6)" ( (binary_expression "0 < iVar6" number_literal < identifier) )) || (parenthesized_expression "((iVar6 == 0 && ((undefined8 *)0x1fff < local_e0)))" ( (parenthesized_expression "(iVar6 == 0 && ((undefined8 *)0x1fff < local_e0))" ( (binary_expression "iVar6 == 0 && ((undefined8 *)0x1fff < local_e0)" (binary_expression "iVar6 == 0" identifier == number_literal) && (parenthesized_expression "((undefined8 *)0x1fff < local_e0)" ( (binary_expression "(undefined8 *)0x1fff < local_e0" (cast_expression "(undefined8 *)0x1fff" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < identifier) ))) )) ))) )) (compound_statement "{\n        local_e0 = (undefined8 *)0x2000;\n      }" { (expression_statement "local_e0 = (undefined8 *)0x2000;" (assignment_expression "local_e0 = (undefined8 *)0x2000" identifier = (cast_expression "(undefined8 *)0x2000" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })))) }))) (expression_statement "puVar2 = PTR_DAT_000b758c;" (assignment_expression "puVar2 = PTR_DAT_000b758c" identifier = identifier) ;) (expression_statement "dVar25 = (double)CONCAT44(puVar21,param_4);" (assignment_expression "dVar25 = (double)CONCAT44(puVar21,param_4)" identifier = (cast_expression "(double)CONCAT44(puVar21,param_4)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(puVar21,param_4)" identifier (argument_list "(puVar21,param_4)" ( identifier , identifier ))))) ;) (expression_statement "iVar22 = 0;" (assignment_expression "iVar22 = 0" identifier = number_literal) ;) (expression_statement "local_f0 = (undefined8 *)0x0;" (assignment_expression "local_f0 = (undefined8 *)0x0" identifier = (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) (expression_statement "local_fc = (undefined8 *)0x0;" (assignment_expression "local_fc = (undefined8 *)0x0" identifier = (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "dVar29 = 0.0;" (assignment_expression "dVar29 = 0.0" identifier = number_literal) ;) (expression_statement "puVar24 = (undefined8 *)0x0;" (assignment_expression "puVar24 = (undefined8 *)0x0" identifier = (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "dVar32 = *(double *)(PTR_DAT_000b758c + -0x2340);" (assignment_expression "dVar32 = *(double *)(PTR_DAT_000b758c + -0x2340)" identifier = (pointer_expression "*(double *)(PTR_DAT_000b758c + -0x2340)" * (cast_expression "(double *)(PTR_DAT_000b758c + -0x2340)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000b758c + -0x2340)" ( (binary_expression "PTR_DAT_000b758c + -0x2340" identifier + number_literal) ))))) ;) (expression_statement "dVar33 = *(double *)(PTR_DAT_000b758c + -0x2580);" (assignment_expression "dVar33 = *(double *)(PTR_DAT_000b758c + -0x2580)" identifier = (pointer_expression "*(double *)(PTR_DAT_000b758c + -0x2580)" * (cast_expression "(double *)(PTR_DAT_000b758c + -0x2580)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000b758c + -0x2580)" ( (binary_expression "PTR_DAT_000b758c + -0x2580" identifier + number_literal) ))))) ;) (expression_statement "dVar34 = *(double *)(PTR_DAT_000b758c + -0x15d0);" (assignment_expression "dVar34 = *(double *)(PTR_DAT_000b758c + -0x15d0)" identifier = (pointer_expression "*(double *)(PTR_DAT_000b758c + -0x15d0)" * (cast_expression "(double *)(PTR_DAT_000b758c + -0x15d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000b758c + -0x15d0)" ( (binary_expression "PTR_DAT_000b758c + -0x15d0" identifier + number_literal) ))))) ;) (expression_statement "dVar28 = *(double *)(PTR_DAT_000b758c + -0x15d8);" (assignment_expression "dVar28 = *(double *)(PTR_DAT_000b758c + -0x15d8)" identifier = (pointer_expression "*(double *)(PTR_DAT_000b758c + -0x15d8)" * (cast_expression "(double *)(PTR_DAT_000b758c + -0x15d8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000b758c + -0x15d8)" ( (binary_expression "PTR_DAT_000b758c + -0x15d8" identifier + number_literal) ))))) ;) (while_statement "while( true ) {\n      uVar8 = SUB84(dVar25,0);\n      iVar17 = (int)local_e0 >> 0x1f;\n      puVar20 = local_e0;\n      puVar3 = local_120._0_4_;\n      if ((param_12 & 1) == 0) break;\n      if (param_5 <= iVar6) {\n        if (param_5 != iVar6) goto LAB_000518d4;\n        if (local_fc < param_6) goto LAB_000517b0;\n        bVar1 = (int)puVar24 < 0;\n        dVar30 = dVar25;\n        goto LAB_000518d8;\n      }\nLAB_000517b0:\n      dVar31 = *(double *)(PTR_opt_000b746c + 0x120);\n      if (uVar5 != 0) goto LAB_00051820;\n      puVar15 = (undefined8 *)((int)param_6 - (int)local_fc);\n      iVar13 = (param_5 - iVar6) - (uint)(param_6 < puVar15);\n      dVar25 = (double)CONCAT44(iVar13,uVar8);\n      puVar9 = local_e0;\n      if ((iVar17 < iVar13) ||\n         ((dVar30 = (double)CONCAT44(iVar13,uVar8), iVar13 == iVar17 &&\n          (dVar30 = (double)CONCAT44(iVar13,uVar8), local_e0 < puVar15)))) goto LAB_00051864;\nLAB_00051868:\n      puVar18 = SUB84(dVar30,0);\n      if (local_e4 == 0) {\n        puVar9 = puVar4;\n        puVar24 = (undefined8 *)(*(code *)PTR_fd_read_000b7770)(param_2,puVar4);\n        local_120 = dVar31;\nLAB_000516fc:\n        bVar1 = (int)puVar24 < 0;\n        dVar30 = (double)CONCAT44(puVar15,puVar18);\n        if ((int)puVar24 < 1) goto LAB_000518d8;\n        if (iVar7 == 0) {\n          if (*(int *)(PTR_opt_000b746c + 0x158) == 0 && *(int *)(PTR_opt_000b746c + 0x15c) == 0)\n          goto LAB_00051720;\n          ptimer_measure(local_104);\n        }\n        else {\n          ptimer_measure(local_104);\n        }\nLAB_000515b0:\n        dVar29 = (double)ptimer_read(local_104);\nLAB_000515c4:\n        puVar12 = (undefined8 *)((int)local_fc + (int)puVar24);\n        iVar6 = (uint)(puVar12 < local_fc) + iVar6 + ((int)puVar24 >> 0x1f);\n        puVar9 = param_13;\n        puVar15 = puVar4;\n        puVar18 = puVar24;\n        local_fc = puVar12;\n        if (local_100 == (undefined8 *)0x0) {\n          local_120 = (double)(ZEXT48(auStack_ac + 4) << 0x20);\n          puVar20 = (undefined8 *)FUN_000503a4(param_3,param_13);\n          dVar30 = (double)CONCAT44(puVar15,puVar18);\n          puVar3 = (undefined8 *)(auStack_ac + 4);\n          if ((int)puVar20 < 0) goto LAB_00051040;\n        }\n        else {\n          local_120 = 0.0;\n          local_120._0_4_ = (undefined8 *)0x0;\n          puVar20 = (undefined8 *)FUN_000503a4(0,param_13);\n          dVar30 = (double)CONCAT44(puVar15,puVar18);\n          puVar3 = local_120._0_4_;\n          if ((int)puVar20 < 0) goto LAB_00051040;\n          puVar21 = PTR_DAT_000b758c + -0x1898;\n          pcVar23 = (code *)(PTR_LAB_000b78e4 + 0x3a4);\n          local_94 = puVar4;\n          local_90 = puVar24;\n          do {\n            local_84 = 0x8000;\n            local_88 = local_100;\n            puVar9 = (undefined8 *)0x0;\n            iVar17 = (*(code *)PTR_inflate_000b7d40)(&local_94,0);\n            puVar3 = local_120._0_4_;\n            if (iVar17 == -3) {\nLAB_000511f4:\n              puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n              dVar30 = (double)CONCAT44(puVar15,puVar18);\n              *puVar10 = 0x16;\n              puVar20 = (undefined8 *)0xffffffff;\n              goto LAB_00051040;\n            }\n            if (iVar17 < -2) {\n              if (iVar17 == -4) {\n                puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n                dVar30 = (double)CONCAT44(puVar15,puVar18);\n                *puVar10 = 0xc;\n                puVar20 = (undefined8 *)0xffffffff;\n                goto LAB_00051040;\n              }\n            }\n            else if (iVar17 == 1) {\n              if (((param_12 & 1) != 0) &&\n                 (((param_5 != iVar6 || (param_6 != puVar12)) && (PTR_opt_000b746c[0x16b] != '\0')))\n                 ) {\n                debug_logprintf(puVar21);\n              }\n            }\n            else if (iVar17 == 2) goto LAB_000511f4;\n            local_120 = (double)(ZEXT48(auStack_ac + 4) << 0x20);\n            puVar18 = (undefined8 *)(0x8000 - local_84);\n            puVar9 = (undefined8 *)0x0;\n            puVar15 = local_100;\n            puVar20 = (undefined8 *)(*pcVar23)(param_3,0);\n            dVar30 = (double)CONCAT44(puVar15,puVar18);\n            puVar3 = (undefined8 *)(auStack_ac + 4);\n            if ((int)puVar20 < 0) goto LAB_00051040;\n          } while (local_84 == 0);\n        }\n        dVar31 = local_120;\n        if (uVar5 != 0) {\n          puVar20 = (undefined8 *)((int)local_f0 - (int)puVar24);\n          iVar22 = (iVar22 - ((int)puVar24 >> 0x1f)) - (uint)(local_f0 < puVar20);\n          local_f0 = puVar20;\n          if (iVar22 == 0 && puVar20 == (undefined8 *)0x0) {\n            iVar17 = fd_read_line(param_2);\n            dVar25 = (double)CONCAT44(puVar15,puVar18);\n            if (iVar17 == 0) {\n              puVar24 = (undefined8 *)0xffffffff;\n              goto LAB_000518d4;\n            }\n            if (param_13 != (undefined8 *)0x0) {\n              puVar15 = (undefined8 *)(*(code *)PTR_strlen_000b7c94)(iVar17);\n              puVar9 = (undefined8 *)&DAT_00000001;\n              puVar18 = param_13;\n              (*(code *)PTR_fwrite_000b7c24)(iVar17,1);\n            }\n            (*(code *)PTR_free_000b7d34)(iVar17);\n          }\n        }\n        goto LAB_00051748;\n      }\n      if (*(double *)(PTR_opt_000b746c + 0x120) == 0.0) {\n        dVar31 = *(double *)(PTR_DAT_000b758c + -0x15e0);\n      }\n      else {\n        dVar25 = (double)ptimer_read(local_104);\n        puVar18 = SUB84(dVar30,0);\n        if (*(double *)(PTR_opt_000b746c + 0x120) <\n            (dVar25 - dVar29) + *(double *)(PTR_DAT_000b758c + -0x15e0)) {\n          dVar31 = *(double *)(PTR_opt_000b746c + 0x120) - (dVar25 - dVar29);\n          if (dVar31 < 0.0) {\n            puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n            *puVar10 = 0x91;\n            puVar20 = (undefined8 *)0xffffffff;\n            goto LAB_00051040;\n          }\n        }\n        else {\n          dVar31 = *(double *)(PTR_DAT_000b758c + -0x15e0);\n        }\n      }\n      puVar9 = puVar4;\n      puVar24 = (undefined8 *)(*(code *)PTR_fd_read_000b7770)(param_2,puVar4);\n      local_120 = dVar31;\n      if (-1 < (int)puVar24) goto LAB_000516fc;\n      piVar14 = (int *)(*(code *)PTR___errno_location_000b7eb8)();\n      dVar25 = (double)CONCAT44(puVar15,puVar18);\n      local_120._0_4_ = (undefined8 *)((ulonglong)dVar31 >> 0x20);\n      if (*piVar14 != 0x91) goto LAB_000518d4;\n      if (iVar7 == 0) {\n        if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n          ptimer_measure(local_104);\n          puVar24 = (undefined8 *)0x0;\n          goto LAB_00051748;\n        }\n        puVar24 = (undefined8 *)0x0;\nLAB_00051720:\n        dVar25 = (double)CONCAT44(puVar15,puVar18);\n        if (param_11 != (undefined8 *)0x0) {\n          ptimer_measure(local_104);\n          dVar31 = local_120;\n          if (0 < (int)puVar24) goto LAB_000515b0;\n          goto LAB_00051748;\n        }\n        if (0 < (int)puVar24) goto LAB_000515c4;\n      }\n      else {\n        ptimer_measure(local_104);\n        puVar24 = (undefined8 *)0x0;\nLAB_00051748:\n        local_120 = dVar31;\n        dVar25 = (double)CONCAT44(puVar15,puVar18);\n        if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n          dVar30 = (double)ptimer_read(local_104);\n          puVar21 = PTR_DAT_000b7720;\n          dVar30 = dVar30 - *(double *)(PTR_DAT_000b7720 + -0x2fe0);\n          puVar20 = (undefined8 *)((int)puVar24 + *(int *)(PTR_DAT_000b7720 + -0x2fe4));\n          iVar17 = (uint)(puVar20 < puVar24) +\n                   ((int)puVar24 >> 0x1f) + *(int *)(PTR_DAT_000b7720 + -0x2fe8);\n          *(int *)(PTR_DAT_000b7720 + -0x2fe8) = iVar17;\n          *(undefined8 **)(puVar21 + -0x2fe4) = puVar20;\n          dVar31 = (double)(*(code *)PTR_FUN_000b78f4)(iVar17,puVar20);\n          puVar9 = *(undefined8 **)(PTR_opt_000b746c + 0x15c);\n          dVar27 = (double)(*(code *)PTR_FUN_000b78f4)\n                                     (*(undefined4 *)(PTR_opt_000b746c + 0x158),puVar9);\n          dVar25 = (double)CONCAT44(puVar15,puVar18);\n          if (dVar30 < dVar31 / dVar27) {\n            dVar30 = (dVar31 / dVar27 - dVar30) + *(double *)(PTR_DAT_000b7720 + -0x2fd8);\n            if (dVar30 < dVar32) {\n              if (PTR_opt_000b746c[0x16b] != '\0') {\n                uVar11 = number_to_static_string(iVar17,puVar20);\n                local_120 = (double)((ulonglong)uVar11 << 0x20);\n                dVar25 = dVar30 * *(double *)(puVar2 + -0x15d8);\n                debug_logprintf(PTR_DAT_000b758c + -0x1864);\n                puVar9 = puVar20;\n              }\n              goto LAB_0005175c;\n            }\n            if (PTR_opt_000b746c[0x16b] != '\0') {\n              uVar11 = number_to_static_string(iVar17,puVar20);\n              local_120 = (double)((ulonglong)uVar11 << 0x20);\n              dVar25 = dVar30 * dVar28;\n              debug_logprintf(PTR_DAT_000b758c + -0x183c);\n              puVar9 = puVar20;\n            }\n            dVar31 = (double)ptimer_read(local_104);\n            xsleep(dVar30);\n            dVar27 = (double)ptimer_measure(local_104);\n            dVar30 = dVar30 - (dVar27 - dVar31);\n            if (dVar33 < dVar30) {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x2580);\n            }\n            else if (dVar34 <= dVar30) {\n              *(double *)(PTR_DAT_000b7720 + -0x2fd8) = dVar30;\n            }\n            else {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x15d0);\n            }\n          }\n          puVar21 = PTR_DAT_000b7720;\n          *(undefined4 *)(PTR_DAT_000b7720 + -0x2fe4) = 0;\n          *(undefined4 *)(puVar21 + -0x2fe8) = 0;\n          uVar26 = ptimer_read(local_104);\n          *(undefined8 *)(puVar21 + -0x2fe0) = uVar26;\n        }\n      }\nLAB_0005175c:\n      if (iVar7 != 0) {\n        local_120 = (double)ptimer_read(local_104);\n        iVar17 = (int)puVar24 >> 0x1f;\n        puVar20 = puVar24;\n        progress_update(iVar7);\n        dVar25 = (double)CONCAT44(iVar17,puVar20);\n      }\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      uVar8 = SUB84(dVar25,0);\n      iVar17 = (int)local_e0 >> 0x1f;\n      puVar20 = local_e0;\n      puVar3 = local_120._0_4_;\n      if ((param_12 & 1) == 0) break;\n      if (param_5 <= iVar6) {\n        if (param_5 != iVar6) goto LAB_000518d4;\n        if (local_fc < param_6) goto LAB_000517b0;\n        bVar1 = (int)puVar24 < 0;\n        dVar30 = dVar25;\n        goto LAB_000518d8;\n      }\nLAB_000517b0:\n      dVar31 = *(double *)(PTR_opt_000b746c + 0x120);\n      if (uVar5 != 0) goto LAB_00051820;\n      puVar15 = (undefined8 *)((int)param_6 - (int)local_fc);\n      iVar13 = (param_5 - iVar6) - (uint)(param_6 < puVar15);\n      dVar25 = (double)CONCAT44(iVar13,uVar8);\n      puVar9 = local_e0;\n      if ((iVar17 < iVar13) ||\n         ((dVar30 = (double)CONCAT44(iVar13,uVar8), iVar13 == iVar17 &&\n          (dVar30 = (double)CONCAT44(iVar13,uVar8), local_e0 < puVar15)))) goto LAB_00051864;\nLAB_00051868:\n      puVar18 = SUB84(dVar30,0);\n      if (local_e4 == 0) {\n        puVar9 = puVar4;\n        puVar24 = (undefined8 *)(*(code *)PTR_fd_read_000b7770)(param_2,puVar4);\n        local_120 = dVar31;\nLAB_000516fc:\n        bVar1 = (int)puVar24 < 0;\n        dVar30 = (double)CONCAT44(puVar15,puVar18);\n        if ((int)puVar24 < 1) goto LAB_000518d8;\n        if (iVar7 == 0) {\n          if (*(int *)(PTR_opt_000b746c + 0x158) == 0 && *(int *)(PTR_opt_000b746c + 0x15c) == 0)\n          goto LAB_00051720;\n          ptimer_measure(local_104);\n        }\n        else {\n          ptimer_measure(local_104);\n        }\nLAB_000515b0:\n        dVar29 = (double)ptimer_read(local_104);\nLAB_000515c4:\n        puVar12 = (undefined8 *)((int)local_fc + (int)puVar24);\n        iVar6 = (uint)(puVar12 < local_fc) + iVar6 + ((int)puVar24 >> 0x1f);\n        puVar9 = param_13;\n        puVar15 = puVar4;\n        puVar18 = puVar24;\n        local_fc = puVar12;\n        if (local_100 == (undefined8 *)0x0) {\n          local_120 = (double)(ZEXT48(auStack_ac + 4) << 0x20);\n          puVar20 = (undefined8 *)FUN_000503a4(param_3,param_13);\n          dVar30 = (double)CONCAT44(puVar15,puVar18);\n          puVar3 = (undefined8 *)(auStack_ac + 4);\n          if ((int)puVar20 < 0) goto LAB_00051040;\n        }\n        else {\n          local_120 = 0.0;\n          local_120._0_4_ = (undefined8 *)0x0;\n          puVar20 = (undefined8 *)FUN_000503a4(0,param_13);\n          dVar30 = (double)CONCAT44(puVar15,puVar18);\n          puVar3 = local_120._0_4_;\n          if ((int)puVar20 < 0) goto LAB_00051040;\n          puVar21 = PTR_DAT_000b758c + -0x1898;\n          pcVar23 = (code *)(PTR_LAB_000b78e4 + 0x3a4);\n          local_94 = puVar4;\n          local_90 = puVar24;\n          do {\n            local_84 = 0x8000;\n            local_88 = local_100;\n            puVar9 = (undefined8 *)0x0;\n            iVar17 = (*(code *)PTR_inflate_000b7d40)(&local_94,0);\n            puVar3 = local_120._0_4_;\n            if (iVar17 == -3) {\nLAB_000511f4:\n              puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n              dVar30 = (double)CONCAT44(puVar15,puVar18);\n              *puVar10 = 0x16;\n              puVar20 = (undefined8 *)0xffffffff;\n              goto LAB_00051040;\n            }\n            if (iVar17 < -2) {\n              if (iVar17 == -4) {\n                puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n                dVar30 = (double)CONCAT44(puVar15,puVar18);\n                *puVar10 = 0xc;\n                puVar20 = (undefined8 *)0xffffffff;\n                goto LAB_00051040;\n              }\n            }\n            else if (iVar17 == 1) {\n              if (((param_12 & 1) != 0) &&\n                 (((param_5 != iVar6 || (param_6 != puVar12)) && (PTR_opt_000b746c[0x16b] != '\0')))\n                 ) {\n                debug_logprintf(puVar21);\n              }\n            }\n            else if (iVar17 == 2) goto LAB_000511f4;\n            local_120 = (double)(ZEXT48(auStack_ac + 4) << 0x20);\n            puVar18 = (undefined8 *)(0x8000 - local_84);\n            puVar9 = (undefined8 *)0x0;\n            puVar15 = local_100;\n            puVar20 = (undefined8 *)(*pcVar23)(param_3,0);\n            dVar30 = (double)CONCAT44(puVar15,puVar18);\n            puVar3 = (undefined8 *)(auStack_ac + 4);\n            if ((int)puVar20 < 0) goto LAB_00051040;\n          } while (local_84 == 0);\n        }\n        dVar31 = local_120;\n        if (uVar5 != 0) {\n          puVar20 = (undefined8 *)((int)local_f0 - (int)puVar24);\n          iVar22 = (iVar22 - ((int)puVar24 >> 0x1f)) - (uint)(local_f0 < puVar20);\n          local_f0 = puVar20;\n          if (iVar22 == 0 && puVar20 == (undefined8 *)0x0) {\n            iVar17 = fd_read_line(param_2);\n            dVar25 = (double)CONCAT44(puVar15,puVar18);\n            if (iVar17 == 0) {\n              puVar24 = (undefined8 *)0xffffffff;\n              goto LAB_000518d4;\n            }\n            if (param_13 != (undefined8 *)0x0) {\n              puVar15 = (undefined8 *)(*(code *)PTR_strlen_000b7c94)(iVar17);\n              puVar9 = (undefined8 *)&DAT_00000001;\n              puVar18 = param_13;\n              (*(code *)PTR_fwrite_000b7c24)(iVar17,1);\n            }\n            (*(code *)PTR_free_000b7d34)(iVar17);\n          }\n        }\n        goto LAB_00051748;\n      }\n      if (*(double *)(PTR_opt_000b746c + 0x120) == 0.0) {\n        dVar31 = *(double *)(PTR_DAT_000b758c + -0x15e0);\n      }\n      else {\n        dVar25 = (double)ptimer_read(local_104);\n        puVar18 = SUB84(dVar30,0);\n        if (*(double *)(PTR_opt_000b746c + 0x120) <\n            (dVar25 - dVar29) + *(double *)(PTR_DAT_000b758c + -0x15e0)) {\n          dVar31 = *(double *)(PTR_opt_000b746c + 0x120) - (dVar25 - dVar29);\n          if (dVar31 < 0.0) {\n            puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n            *puVar10 = 0x91;\n            puVar20 = (undefined8 *)0xffffffff;\n            goto LAB_00051040;\n          }\n        }\n        else {\n          dVar31 = *(double *)(PTR_DAT_000b758c + -0x15e0);\n        }\n      }\n      puVar9 = puVar4;\n      puVar24 = (undefined8 *)(*(code *)PTR_fd_read_000b7770)(param_2,puVar4);\n      local_120 = dVar31;\n      if (-1 < (int)puVar24) goto LAB_000516fc;\n      piVar14 = (int *)(*(code *)PTR___errno_location_000b7eb8)();\n      dVar25 = (double)CONCAT44(puVar15,puVar18);\n      local_120._0_4_ = (undefined8 *)((ulonglong)dVar31 >> 0x20);\n      if (*piVar14 != 0x91) goto LAB_000518d4;\n      if (iVar7 == 0) {\n        if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n          ptimer_measure(local_104);\n          puVar24 = (undefined8 *)0x0;\n          goto LAB_00051748;\n        }\n        puVar24 = (undefined8 *)0x0;\nLAB_00051720:\n        dVar25 = (double)CONCAT44(puVar15,puVar18);\n        if (param_11 != (undefined8 *)0x0) {\n          ptimer_measure(local_104);\n          dVar31 = local_120;\n          if (0 < (int)puVar24) goto LAB_000515b0;\n          goto LAB_00051748;\n        }\n        if (0 < (int)puVar24) goto LAB_000515c4;\n      }\n      else {\n        ptimer_measure(local_104);\n        puVar24 = (undefined8 *)0x0;\nLAB_00051748:\n        local_120 = dVar31;\n        dVar25 = (double)CONCAT44(puVar15,puVar18);\n        if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n          dVar30 = (double)ptimer_read(local_104);\n          puVar21 = PTR_DAT_000b7720;\n          dVar30 = dVar30 - *(double *)(PTR_DAT_000b7720 + -0x2fe0);\n          puVar20 = (undefined8 *)((int)puVar24 + *(int *)(PTR_DAT_000b7720 + -0x2fe4));\n          iVar17 = (uint)(puVar20 < puVar24) +\n                   ((int)puVar24 >> 0x1f) + *(int *)(PTR_DAT_000b7720 + -0x2fe8);\n          *(int *)(PTR_DAT_000b7720 + -0x2fe8) = iVar17;\n          *(undefined8 **)(puVar21 + -0x2fe4) = puVar20;\n          dVar31 = (double)(*(code *)PTR_FUN_000b78f4)(iVar17,puVar20);\n          puVar9 = *(undefined8 **)(PTR_opt_000b746c + 0x15c);\n          dVar27 = (double)(*(code *)PTR_FUN_000b78f4)\n                                     (*(undefined4 *)(PTR_opt_000b746c + 0x158),puVar9);\n          dVar25 = (double)CONCAT44(puVar15,puVar18);\n          if (dVar30 < dVar31 / dVar27) {\n            dVar30 = (dVar31 / dVar27 - dVar30) + *(double *)(PTR_DAT_000b7720 + -0x2fd8);\n            if (dVar30 < dVar32) {\n              if (PTR_opt_000b746c[0x16b] != '\0') {\n                uVar11 = number_to_static_string(iVar17,puVar20);\n                local_120 = (double)((ulonglong)uVar11 << 0x20);\n                dVar25 = dVar30 * *(double *)(puVar2 + -0x15d8);\n                debug_logprintf(PTR_DAT_000b758c + -0x1864);\n                puVar9 = puVar20;\n              }\n              goto LAB_0005175c;\n            }\n            if (PTR_opt_000b746c[0x16b] != '\0') {\n              uVar11 = number_to_static_string(iVar17,puVar20);\n              local_120 = (double)((ulonglong)uVar11 << 0x20);\n              dVar25 = dVar30 * dVar28;\n              debug_logprintf(PTR_DAT_000b758c + -0x183c);\n              puVar9 = puVar20;\n            }\n            dVar31 = (double)ptimer_read(local_104);\n            xsleep(dVar30);\n            dVar27 = (double)ptimer_measure(local_104);\n            dVar30 = dVar30 - (dVar27 - dVar31);\n            if (dVar33 < dVar30) {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x2580);\n            }\n            else if (dVar34 <= dVar30) {\n              *(double *)(PTR_DAT_000b7720 + -0x2fd8) = dVar30;\n            }\n            else {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x15d0);\n            }\n          }\n          puVar21 = PTR_DAT_000b7720;\n          *(undefined4 *)(PTR_DAT_000b7720 + -0x2fe4) = 0;\n          *(undefined4 *)(puVar21 + -0x2fe8) = 0;\n          uVar26 = ptimer_read(local_104);\n          *(undefined8 *)(puVar21 + -0x2fe0) = uVar26;\n        }\n      }\nLAB_0005175c:\n      if (iVar7 != 0) {\n        local_120 = (double)ptimer_read(local_104);\n        iVar17 = (int)puVar24 >> 0x1f;\n        puVar20 = puVar24;\n        progress_update(iVar7);\n        dVar25 = (double)CONCAT44(iVar17,puVar20);\n      }\n    }" { (expression_statement "uVar8 = SUB84(dVar25,0);" (assignment_expression "uVar8 = SUB84(dVar25,0)" identifier = (call_expression "SUB84(dVar25,0)" identifier (argument_list "(dVar25,0)" ( identifier , number_literal )))) ;) (expression_statement "iVar17 = (int)local_e0 >> 0x1f;" (assignment_expression "iVar17 = (int)local_e0 >> 0x1f" identifier = (binary_expression "(int)local_e0 >> 0x1f" (cast_expression "(int)local_e0" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (expression_statement "puVar20 = local_e0;" (assignment_expression "puVar20 = local_e0" identifier = identifier) ;) (expression_statement "puVar3 = local_120._0_4_;" (assignment_expression "puVar3 = local_120._0_4_" identifier = (field_expression "local_120._0_4_" identifier . field_identifier)) ;) (if_statement "if ((param_12 & 1) == 0) break;" if (parenthesized_expression "((param_12 & 1) == 0)" ( (binary_expression "(param_12 & 1) == 0" (parenthesized_expression "(param_12 & 1)" ( (binary_expression "param_12 & 1" identifier & number_literal) )) == number_literal) )) (break_statement "break;" break ;)) (if_statement "if (param_5 <= iVar6) {\n        if (param_5 != iVar6) goto LAB_000518d4;\n        if (local_fc < param_6) goto LAB_000517b0;\n        bVar1 = (int)puVar24 < 0;\n        dVar30 = dVar25;\n        goto LAB_000518d8;\n      }" if (parenthesized_expression "(param_5 <= iVar6)" ( (binary_expression "param_5 <= iVar6" identifier <= identifier) )) (compound_statement "{\n        if (param_5 != iVar6) goto LAB_000518d4;\n        if (local_fc < param_6) goto LAB_000517b0;\n        bVar1 = (int)puVar24 < 0;\n        dVar30 = dVar25;\n        goto LAB_000518d8;\n      }" { (if_statement "if (param_5 != iVar6) goto LAB_000518d4;" if (parenthesized_expression "(param_5 != iVar6)" ( (binary_expression "param_5 != iVar6" identifier != identifier) )) (goto_statement "goto LAB_000518d4;" goto statement_identifier ;)) (if_statement "if (local_fc < param_6) goto LAB_000517b0;" if (parenthesized_expression "(local_fc < param_6)" ( (binary_expression "local_fc < param_6" identifier < identifier) )) (goto_statement "goto LAB_000517b0;" goto statement_identifier ;)) (expression_statement "bVar1 = (int)puVar24 < 0;" (assignment_expression "bVar1 = (int)puVar24 < 0" identifier = (binary_expression "(int)puVar24 < 0" (cast_expression "(int)puVar24" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal)) ;) (expression_statement "dVar30 = dVar25;" (assignment_expression "dVar30 = dVar25" identifier = identifier) ;) (goto_statement "goto LAB_000518d8;" goto statement_identifier ;) })) (labeled_statement "LAB_000517b0:\n      dVar31 = *(double *)(PTR_opt_000b746c + 0x120);" statement_identifier : (expression_statement "dVar31 = *(double *)(PTR_opt_000b746c + 0x120);" (assignment_expression "dVar31 = *(double *)(PTR_opt_000b746c + 0x120)" identifier = (pointer_expression "*(double *)(PTR_opt_000b746c + 0x120)" * (cast_expression "(double *)(PTR_opt_000b746c + 0x120)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_opt_000b746c + 0x120)" ( (binary_expression "PTR_opt_000b746c + 0x120" identifier + number_literal) ))))) ;)) (if_statement "if (uVar5 != 0) goto LAB_00051820;" if (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00051820;" goto statement_identifier ;)) (expression_statement "puVar15 = (undefined8 *)((int)param_6 - (int)local_fc);" (assignment_expression "puVar15 = (undefined8 *)((int)param_6 - (int)local_fc)" identifier = (cast_expression "(undefined8 *)((int)param_6 - (int)local_fc)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_6 - (int)local_fc)" ( (binary_expression "(int)param_6 - (int)local_fc" (cast_expression "(int)param_6" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_fc" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "iVar13 = (param_5 - iVar6) - (uint)(param_6 < puVar15);" (assignment_expression "iVar13 = (param_5 - iVar6) - (uint)(param_6 < puVar15)" identifier = (binary_expression "(param_5 - iVar6) - (uint)(param_6 < puVar15)" (parenthesized_expression "(param_5 - iVar6)" ( (binary_expression "param_5 - iVar6" identifier - identifier) )) - (call_expression "(uint)(param_6 < puVar15)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_6 < puVar15)" ( (binary_expression "param_6 < puVar15" identifier < identifier) ))))) ;) (expression_statement "dVar25 = (double)CONCAT44(iVar13,uVar8);" (assignment_expression "dVar25 = (double)CONCAT44(iVar13,uVar8)" identifier = (cast_expression "(double)CONCAT44(iVar13,uVar8)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(iVar13,uVar8)" identifier (argument_list "(iVar13,uVar8)" ( identifier , identifier ))))) ;) (expression_statement "puVar9 = local_e0;" (assignment_expression "puVar9 = local_e0" identifier = identifier) ;) (if_statement "if ((iVar17 < iVar13) ||\n         ((dVar30 = (double)CONCAT44(iVar13,uVar8), iVar13 == iVar17 &&\n          (dVar30 = (double)CONCAT44(iVar13,uVar8), local_e0 < puVar15)))) goto LAB_00051864;" if (parenthesized_expression "((iVar17 < iVar13) ||\n         ((dVar30 = (double)CONCAT44(iVar13,uVar8), iVar13 == iVar17 &&\n          (dVar30 = (double)CONCAT44(iVar13,uVar8), local_e0 < puVar15))))" ( (binary_expression "(iVar17 < iVar13) ||\n         ((dVar30 = (double)CONCAT44(iVar13,uVar8), iVar13 == iVar17 &&\n          (dVar30 = (double)CONCAT44(iVar13,uVar8), local_e0 < puVar15)))" (parenthesized_expression "(iVar17 < iVar13)" ( (binary_expression "iVar17 < iVar13" identifier < identifier) )) || (parenthesized_expression "((dVar30 = (double)CONCAT44(iVar13,uVar8), iVar13 == iVar17 &&\n          (dVar30 = (double)CONCAT44(iVar13,uVar8), local_e0 < puVar15)))" ( (parenthesized_expression "(dVar30 = (double)CONCAT44(iVar13,uVar8), iVar13 == iVar17 &&\n          (dVar30 = (double)CONCAT44(iVar13,uVar8), local_e0 < puVar15))" ( (comma_expression "dVar30 = (double)CONCAT44(iVar13,uVar8), iVar13 == iVar17 &&\n          (dVar30 = (double)CONCAT44(iVar13,uVar8), local_e0 < puVar15)" (assignment_expression "dVar30 = (double)CONCAT44(iVar13,uVar8)" identifier = (cast_expression "(double)CONCAT44(iVar13,uVar8)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(iVar13,uVar8)" identifier (argument_list "(iVar13,uVar8)" ( identifier , identifier ))))) , (binary_expression "iVar13 == iVar17 &&\n          (dVar30 = (double)CONCAT44(iVar13,uVar8), local_e0 < puVar15)" (binary_expression "iVar13 == iVar17" identifier == identifier) && (parenthesized_expression "(dVar30 = (double)CONCAT44(iVar13,uVar8), local_e0 < puVar15)" ( (comma_expression "dVar30 = (double)CONCAT44(iVar13,uVar8), local_e0 < puVar15" (assignment_expression "dVar30 = (double)CONCAT44(iVar13,uVar8)" identifier = (cast_expression "(double)CONCAT44(iVar13,uVar8)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(iVar13,uVar8)" identifier (argument_list "(iVar13,uVar8)" ( identifier , identifier ))))) , (binary_expression "local_e0 < puVar15" identifier < identifier)) )))) )) ))) )) (goto_statement "goto LAB_00051864;" goto statement_identifier ;)) (labeled_statement "LAB_00051868:\n      puVar18 = SUB84(dVar30,0);" statement_identifier : (expression_statement "puVar18 = SUB84(dVar30,0);" (assignment_expression "puVar18 = SUB84(dVar30,0)" identifier = (call_expression "SUB84(dVar30,0)" identifier (argument_list "(dVar30,0)" ( identifier , number_literal )))) ;)) (if_statement "if (local_e4 == 0) {\n        puVar9 = puVar4;\n        puVar24 = (undefined8 *)(*(code *)PTR_fd_read_000b7770)(param_2,puVar4);\n        local_120 = dVar31;\nLAB_000516fc:\n        bVar1 = (int)puVar24 < 0;\n        dVar30 = (double)CONCAT44(puVar15,puVar18);\n        if ((int)puVar24 < 1) goto LAB_000518d8;\n        if (iVar7 == 0) {\n          if (*(int *)(PTR_opt_000b746c + 0x158) == 0 && *(int *)(PTR_opt_000b746c + 0x15c) == 0)\n          goto LAB_00051720;\n          ptimer_measure(local_104);\n        }\n        else {\n          ptimer_measure(local_104);\n        }\nLAB_000515b0:\n        dVar29 = (double)ptimer_read(local_104);\nLAB_000515c4:\n        puVar12 = (undefined8 *)((int)local_fc + (int)puVar24);\n        iVar6 = (uint)(puVar12 < local_fc) + iVar6 + ((int)puVar24 >> 0x1f);\n        puVar9 = param_13;\n        puVar15 = puVar4;\n        puVar18 = puVar24;\n        local_fc = puVar12;\n        if (local_100 == (undefined8 *)0x0) {\n          local_120 = (double)(ZEXT48(auStack_ac + 4) << 0x20);\n          puVar20 = (undefined8 *)FUN_000503a4(param_3,param_13);\n          dVar30 = (double)CONCAT44(puVar15,puVar18);\n          puVar3 = (undefined8 *)(auStack_ac + 4);\n          if ((int)puVar20 < 0) goto LAB_00051040;\n        }\n        else {\n          local_120 = 0.0;\n          local_120._0_4_ = (undefined8 *)0x0;\n          puVar20 = (undefined8 *)FUN_000503a4(0,param_13);\n          dVar30 = (double)CONCAT44(puVar15,puVar18);\n          puVar3 = local_120._0_4_;\n          if ((int)puVar20 < 0) goto LAB_00051040;\n          puVar21 = PTR_DAT_000b758c + -0x1898;\n          pcVar23 = (code *)(PTR_LAB_000b78e4 + 0x3a4);\n          local_94 = puVar4;\n          local_90 = puVar24;\n          do {\n            local_84 = 0x8000;\n            local_88 = local_100;\n            puVar9 = (undefined8 *)0x0;\n            iVar17 = (*(code *)PTR_inflate_000b7d40)(&local_94,0);\n            puVar3 = local_120._0_4_;\n            if (iVar17 == -3) {\nLAB_000511f4:\n              puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n              dVar30 = (double)CONCAT44(puVar15,puVar18);\n              *puVar10 = 0x16;\n              puVar20 = (undefined8 *)0xffffffff;\n              goto LAB_00051040;\n            }\n            if (iVar17 < -2) {\n              if (iVar17 == -4) {\n                puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n                dVar30 = (double)CONCAT44(puVar15,puVar18);\n                *puVar10 = 0xc;\n                puVar20 = (undefined8 *)0xffffffff;\n                goto LAB_00051040;\n              }\n            }\n            else if (iVar17 == 1) {\n              if (((param_12 & 1) != 0) &&\n                 (((param_5 != iVar6 || (param_6 != puVar12)) && (PTR_opt_000b746c[0x16b] != '\0')))\n                 ) {\n                debug_logprintf(puVar21);\n              }\n            }\n            else if (iVar17 == 2) goto LAB_000511f4;\n            local_120 = (double)(ZEXT48(auStack_ac + 4) << 0x20);\n            puVar18 = (undefined8 *)(0x8000 - local_84);\n            puVar9 = (undefined8 *)0x0;\n            puVar15 = local_100;\n            puVar20 = (undefined8 *)(*pcVar23)(param_3,0);\n            dVar30 = (double)CONCAT44(puVar15,puVar18);\n            puVar3 = (undefined8 *)(auStack_ac + 4);\n            if ((int)puVar20 < 0) goto LAB_00051040;\n          } while (local_84 == 0);\n        }\n        dVar31 = local_120;\n        if (uVar5 != 0) {\n          puVar20 = (undefined8 *)((int)local_f0 - (int)puVar24);\n          iVar22 = (iVar22 - ((int)puVar24 >> 0x1f)) - (uint)(local_f0 < puVar20);\n          local_f0 = puVar20;\n          if (iVar22 == 0 && puVar20 == (undefined8 *)0x0) {\n            iVar17 = fd_read_line(param_2);\n            dVar25 = (double)CONCAT44(puVar15,puVar18);\n            if (iVar17 == 0) {\n              puVar24 = (undefined8 *)0xffffffff;\n              goto LAB_000518d4;\n            }\n            if (param_13 != (undefined8 *)0x0) {\n              puVar15 = (undefined8 *)(*(code *)PTR_strlen_000b7c94)(iVar17);\n              puVar9 = (undefined8 *)&DAT_00000001;\n              puVar18 = param_13;\n              (*(code *)PTR_fwrite_000b7c24)(iVar17,1);\n            }\n            (*(code *)PTR_free_000b7d34)(iVar17);\n          }\n        }\n        goto LAB_00051748;\n      }" if (parenthesized_expression "(local_e4 == 0)" ( (binary_expression "local_e4 == 0" identifier == number_literal) )) (compound_statement "{\n        puVar9 = puVar4;\n        puVar24 = (undefined8 *)(*(code *)PTR_fd_read_000b7770)(param_2,puVar4);\n        local_120 = dVar31;\nLAB_000516fc:\n        bVar1 = (int)puVar24 < 0;\n        dVar30 = (double)CONCAT44(puVar15,puVar18);\n        if ((int)puVar24 < 1) goto LAB_000518d8;\n        if (iVar7 == 0) {\n          if (*(int *)(PTR_opt_000b746c + 0x158) == 0 && *(int *)(PTR_opt_000b746c + 0x15c) == 0)\n          goto LAB_00051720;\n          ptimer_measure(local_104);\n        }\n        else {\n          ptimer_measure(local_104);\n        }\nLAB_000515b0:\n        dVar29 = (double)ptimer_read(local_104);\nLAB_000515c4:\n        puVar12 = (undefined8 *)((int)local_fc + (int)puVar24);\n        iVar6 = (uint)(puVar12 < local_fc) + iVar6 + ((int)puVar24 >> 0x1f);\n        puVar9 = param_13;\n        puVar15 = puVar4;\n        puVar18 = puVar24;\n        local_fc = puVar12;\n        if (local_100 == (undefined8 *)0x0) {\n          local_120 = (double)(ZEXT48(auStack_ac + 4) << 0x20);\n          puVar20 = (undefined8 *)FUN_000503a4(param_3,param_13);\n          dVar30 = (double)CONCAT44(puVar15,puVar18);\n          puVar3 = (undefined8 *)(auStack_ac + 4);\n          if ((int)puVar20 < 0) goto LAB_00051040;\n        }\n        else {\n          local_120 = 0.0;\n          local_120._0_4_ = (undefined8 *)0x0;\n          puVar20 = (undefined8 *)FUN_000503a4(0,param_13);\n          dVar30 = (double)CONCAT44(puVar15,puVar18);\n          puVar3 = local_120._0_4_;\n          if ((int)puVar20 < 0) goto LAB_00051040;\n          puVar21 = PTR_DAT_000b758c + -0x1898;\n          pcVar23 = (code *)(PTR_LAB_000b78e4 + 0x3a4);\n          local_94 = puVar4;\n          local_90 = puVar24;\n          do {\n            local_84 = 0x8000;\n            local_88 = local_100;\n            puVar9 = (undefined8 *)0x0;\n            iVar17 = (*(code *)PTR_inflate_000b7d40)(&local_94,0);\n            puVar3 = local_120._0_4_;\n            if (iVar17 == -3) {\nLAB_000511f4:\n              puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n              dVar30 = (double)CONCAT44(puVar15,puVar18);\n              *puVar10 = 0x16;\n              puVar20 = (undefined8 *)0xffffffff;\n              goto LAB_00051040;\n            }\n            if (iVar17 < -2) {\n              if (iVar17 == -4) {\n                puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n                dVar30 = (double)CONCAT44(puVar15,puVar18);\n                *puVar10 = 0xc;\n                puVar20 = (undefined8 *)0xffffffff;\n                goto LAB_00051040;\n              }\n            }\n            else if (iVar17 == 1) {\n              if (((param_12 & 1) != 0) &&\n                 (((param_5 != iVar6 || (param_6 != puVar12)) && (PTR_opt_000b746c[0x16b] != '\0')))\n                 ) {\n                debug_logprintf(puVar21);\n              }\n            }\n            else if (iVar17 == 2) goto LAB_000511f4;\n            local_120 = (double)(ZEXT48(auStack_ac + 4) << 0x20);\n            puVar18 = (undefined8 *)(0x8000 - local_84);\n            puVar9 = (undefined8 *)0x0;\n            puVar15 = local_100;\n            puVar20 = (undefined8 *)(*pcVar23)(param_3,0);\n            dVar30 = (double)CONCAT44(puVar15,puVar18);\n            puVar3 = (undefined8 *)(auStack_ac + 4);\n            if ((int)puVar20 < 0) goto LAB_00051040;\n          } while (local_84 == 0);\n        }\n        dVar31 = local_120;\n        if (uVar5 != 0) {\n          puVar20 = (undefined8 *)((int)local_f0 - (int)puVar24);\n          iVar22 = (iVar22 - ((int)puVar24 >> 0x1f)) - (uint)(local_f0 < puVar20);\n          local_f0 = puVar20;\n          if (iVar22 == 0 && puVar20 == (undefined8 *)0x0) {\n            iVar17 = fd_read_line(param_2);\n            dVar25 = (double)CONCAT44(puVar15,puVar18);\n            if (iVar17 == 0) {\n              puVar24 = (undefined8 *)0xffffffff;\n              goto LAB_000518d4;\n            }\n            if (param_13 != (undefined8 *)0x0) {\n              puVar15 = (undefined8 *)(*(code *)PTR_strlen_000b7c94)(iVar17);\n              puVar9 = (undefined8 *)&DAT_00000001;\n              puVar18 = param_13;\n              (*(code *)PTR_fwrite_000b7c24)(iVar17,1);\n            }\n            (*(code *)PTR_free_000b7d34)(iVar17);\n          }\n        }\n        goto LAB_00051748;\n      }" { (expression_statement "puVar9 = puVar4;" (assignment_expression "puVar9 = puVar4" identifier = identifier) ;) (expression_statement "puVar24 = (undefined8 *)(*(code *)PTR_fd_read_000b7770)(param_2,puVar4);" (assignment_expression "puVar24 = (undefined8 *)(*(code *)PTR_fd_read_000b7770)(param_2,puVar4)" identifier = (cast_expression "(undefined8 *)(*(code *)PTR_fd_read_000b7770)(param_2,puVar4)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_fd_read_000b7770)(param_2,puVar4)" (parenthesized_expression "(*(code *)PTR_fd_read_000b7770)" ( (pointer_expression "*(code *)PTR_fd_read_000b7770" * (cast_expression "(code *)PTR_fd_read_000b7770" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2,puVar4)" ( identifier , identifier ))))) ;) (expression_statement "local_120 = dVar31;" (assignment_expression "local_120 = dVar31" identifier = identifier) ;) (labeled_statement "LAB_000516fc:\n        bVar1 = (int)puVar24 < 0;" statement_identifier : (expression_statement "bVar1 = (int)puVar24 < 0;" (assignment_expression "bVar1 = (int)puVar24 < 0" identifier = (binary_expression "(int)puVar24 < 0" (cast_expression "(int)puVar24" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal)) ;)) (expression_statement "dVar30 = (double)CONCAT44(puVar15,puVar18);" (assignment_expression "dVar30 = (double)CONCAT44(puVar15,puVar18)" identifier = (cast_expression "(double)CONCAT44(puVar15,puVar18)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(puVar15,puVar18)" identifier (argument_list "(puVar15,puVar18)" ( identifier , identifier ))))) ;) (if_statement "if ((int)puVar24 < 1) goto LAB_000518d8;" if (parenthesized_expression "((int)puVar24 < 1)" ( (binary_expression "(int)puVar24 < 1" (cast_expression "(int)puVar24" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_000518d8;" goto statement_identifier ;)) (if_statement "if (iVar7 == 0) {\n          if (*(int *)(PTR_opt_000b746c + 0x158) == 0 && *(int *)(PTR_opt_000b746c + 0x15c) == 0)\n          goto LAB_00051720;\n          ptimer_measure(local_104);\n        }\n        else {\n          ptimer_measure(local_104);\n        }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n          if (*(int *)(PTR_opt_000b746c + 0x158) == 0 && *(int *)(PTR_opt_000b746c + 0x15c) == 0)\n          goto LAB_00051720;\n          ptimer_measure(local_104);\n        }" { (if_statement "if (*(int *)(PTR_opt_000b746c + 0x158) == 0 && *(int *)(PTR_opt_000b746c + 0x15c) == 0)\n          goto LAB_00051720;" if (parenthesized_expression "(*(int *)(PTR_opt_000b746c + 0x158) == 0 && *(int *)(PTR_opt_000b746c + 0x15c) == 0)" ( (binary_expression "*(int *)(PTR_opt_000b746c + 0x158) == 0 && *(int *)(PTR_opt_000b746c + 0x15c) == 0" (binary_expression "*(int *)(PTR_opt_000b746c + 0x158) == 0" (pointer_expression "*(int *)(PTR_opt_000b746c + 0x158)" * (cast_expression "(int *)(PTR_opt_000b746c + 0x158)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_opt_000b746c + 0x158)" ( (binary_expression "PTR_opt_000b746c + 0x158" identifier + number_literal) )))) == number_literal) && (binary_expression "*(int *)(PTR_opt_000b746c + 0x15c) == 0" (pointer_expression "*(int *)(PTR_opt_000b746c + 0x15c)" * (cast_expression "(int *)(PTR_opt_000b746c + 0x15c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_opt_000b746c + 0x15c)" ( (binary_expression "PTR_opt_000b746c + 0x15c" identifier + number_literal) )))) == number_literal)) )) (goto_statement "goto LAB_00051720;" goto statement_identifier ;)) (expression_statement "ptimer_measure(local_104);" (call_expression "ptimer_measure(local_104)" identifier (argument_list "(local_104)" ( identifier ))) ;) }) (else_clause "else {\n          ptimer_measure(local_104);\n        }" else (compound_statement "{\n          ptimer_measure(local_104);\n        }" { (expression_statement "ptimer_measure(local_104);" (call_expression "ptimer_measure(local_104)" identifier (argument_list "(local_104)" ( identifier ))) ;) }))) (labeled_statement "LAB_000515b0:\n        dVar29 = (double)ptimer_read(local_104);" statement_identifier : (expression_statement "dVar29 = (double)ptimer_read(local_104);" (assignment_expression "dVar29 = (double)ptimer_read(local_104)" identifier = (cast_expression "(double)ptimer_read(local_104)" ( (type_descriptor "double" primitive_type) ) (call_expression "ptimer_read(local_104)" identifier (argument_list "(local_104)" ( identifier ))))) ;)) (labeled_statement "LAB_000515c4:\n        puVar12 = (undefined8 *)((int)local_fc + (int)puVar24);" statement_identifier : (expression_statement "puVar12 = (undefined8 *)((int)local_fc + (int)puVar24);" (assignment_expression "puVar12 = (undefined8 *)((int)local_fc + (int)puVar24)" identifier = (cast_expression "(undefined8 *)((int)local_fc + (int)puVar24)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_fc + (int)puVar24)" ( (binary_expression "(int)local_fc + (int)puVar24" (cast_expression "(int)local_fc" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)puVar24" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;)) (expression_statement "iVar6 = (uint)(puVar12 < local_fc) + iVar6 + ((int)puVar24 >> 0x1f);" (assignment_expression "iVar6 = (uint)(puVar12 < local_fc) + iVar6 + ((int)puVar24 >> 0x1f)" identifier = (binary_expression "(uint)(puVar12 < local_fc) + iVar6 + ((int)puVar24 >> 0x1f)" (binary_expression "(uint)(puVar12 < local_fc) + iVar6" (call_expression "(uint)(puVar12 < local_fc)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar12 < local_fc)" ( (binary_expression "puVar12 < local_fc" identifier < identifier) ))) + identifier) + (parenthesized_expression "((int)puVar24 >> 0x1f)" ( (binary_expression "(int)puVar24 >> 0x1f" (cast_expression "(int)puVar24" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )))) ;) (expression_statement "puVar9 = param_13;" (assignment_expression "puVar9 = param_13" identifier = identifier) ;) (expression_statement "puVar15 = puVar4;" (assignment_expression "puVar15 = puVar4" identifier = identifier) ;) (expression_statement "puVar18 = puVar24;" (assignment_expression "puVar18 = puVar24" identifier = identifier) ;) (expression_statement "local_fc = puVar12;" (assignment_expression "local_fc = puVar12" identifier = identifier) ;) (if_statement "if (local_100 == (undefined8 *)0x0) {\n          local_120 = (double)(ZEXT48(auStack_ac + 4) << 0x20);\n          puVar20 = (undefined8 *)FUN_000503a4(param_3,param_13);\n          dVar30 = (double)CONCAT44(puVar15,puVar18);\n          puVar3 = (undefined8 *)(auStack_ac + 4);\n          if ((int)puVar20 < 0) goto LAB_00051040;\n        }\n        else {\n          local_120 = 0.0;\n          local_120._0_4_ = (undefined8 *)0x0;\n          puVar20 = (undefined8 *)FUN_000503a4(0,param_13);\n          dVar30 = (double)CONCAT44(puVar15,puVar18);\n          puVar3 = local_120._0_4_;\n          if ((int)puVar20 < 0) goto LAB_00051040;\n          puVar21 = PTR_DAT_000b758c + -0x1898;\n          pcVar23 = (code *)(PTR_LAB_000b78e4 + 0x3a4);\n          local_94 = puVar4;\n          local_90 = puVar24;\n          do {\n            local_84 = 0x8000;\n            local_88 = local_100;\n            puVar9 = (undefined8 *)0x0;\n            iVar17 = (*(code *)PTR_inflate_000b7d40)(&local_94,0);\n            puVar3 = local_120._0_4_;\n            if (iVar17 == -3) {\nLAB_000511f4:\n              puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n              dVar30 = (double)CONCAT44(puVar15,puVar18);\n              *puVar10 = 0x16;\n              puVar20 = (undefined8 *)0xffffffff;\n              goto LAB_00051040;\n            }\n            if (iVar17 < -2) {\n              if (iVar17 == -4) {\n                puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n                dVar30 = (double)CONCAT44(puVar15,puVar18);\n                *puVar10 = 0xc;\n                puVar20 = (undefined8 *)0xffffffff;\n                goto LAB_00051040;\n              }\n            }\n            else if (iVar17 == 1) {\n              if (((param_12 & 1) != 0) &&\n                 (((param_5 != iVar6 || (param_6 != puVar12)) && (PTR_opt_000b746c[0x16b] != '\0')))\n                 ) {\n                debug_logprintf(puVar21);\n              }\n            }\n            else if (iVar17 == 2) goto LAB_000511f4;\n            local_120 = (double)(ZEXT48(auStack_ac + 4) << 0x20);\n            puVar18 = (undefined8 *)(0x8000 - local_84);\n            puVar9 = (undefined8 *)0x0;\n            puVar15 = local_100;\n            puVar20 = (undefined8 *)(*pcVar23)(param_3,0);\n            dVar30 = (double)CONCAT44(puVar15,puVar18);\n            puVar3 = (undefined8 *)(auStack_ac + 4);\n            if ((int)puVar20 < 0) goto LAB_00051040;\n          } while (local_84 == 0);\n        }" if (parenthesized_expression "(local_100 == (undefined8 *)0x0)" ( (binary_expression "local_100 == (undefined8 *)0x0" identifier == (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          local_120 = (double)(ZEXT48(auStack_ac + 4) << 0x20);\n          puVar20 = (undefined8 *)FUN_000503a4(param_3,param_13);\n          dVar30 = (double)CONCAT44(puVar15,puVar18);\n          puVar3 = (undefined8 *)(auStack_ac + 4);\n          if ((int)puVar20 < 0) goto LAB_00051040;\n        }" { (expression_statement "local_120 = (double)(ZEXT48(auStack_ac + 4) << 0x20);" (assignment_expression "local_120 = (double)(ZEXT48(auStack_ac + 4) << 0x20)" identifier = (cast_expression "(double)(ZEXT48(auStack_ac + 4) << 0x20)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "(ZEXT48(auStack_ac + 4) << 0x20)" ( (binary_expression "ZEXT48(auStack_ac + 4) << 0x20" (call_expression "ZEXT48(auStack_ac + 4)" identifier (argument_list "(auStack_ac + 4)" ( (binary_expression "auStack_ac + 4" identifier + number_literal) ))) << number_literal) )))) ;) (expression_statement "puVar20 = (undefined8 *)FUN_000503a4(param_3,param_13);" (assignment_expression "puVar20 = (undefined8 *)FUN_000503a4(param_3,param_13)" identifier = (cast_expression "(undefined8 *)FUN_000503a4(param_3,param_13)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000503a4(param_3,param_13)" identifier (argument_list "(param_3,param_13)" ( identifier , identifier ))))) ;) (expression_statement "dVar30 = (double)CONCAT44(puVar15,puVar18);" (assignment_expression "dVar30 = (double)CONCAT44(puVar15,puVar18)" identifier = (cast_expression "(double)CONCAT44(puVar15,puVar18)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(puVar15,puVar18)" identifier (argument_list "(puVar15,puVar18)" ( identifier , identifier ))))) ;) (expression_statement "puVar3 = (undefined8 *)(auStack_ac + 4);" (assignment_expression "puVar3 = (undefined8 *)(auStack_ac + 4)" identifier = (cast_expression "(undefined8 *)(auStack_ac + 4)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(auStack_ac + 4)" ( (binary_expression "auStack_ac + 4" identifier + number_literal) )))) ;) (if_statement "if ((int)puVar20 < 0) goto LAB_00051040;" if (parenthesized_expression "((int)puVar20 < 0)" ( (binary_expression "(int)puVar20 < 0" (cast_expression "(int)puVar20" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_00051040;" goto statement_identifier ;)) }) (else_clause "else {\n          local_120 = 0.0;\n          local_120._0_4_ = (undefined8 *)0x0;\n          puVar20 = (undefined8 *)FUN_000503a4(0,param_13);\n          dVar30 = (double)CONCAT44(puVar15,puVar18);\n          puVar3 = local_120._0_4_;\n          if ((int)puVar20 < 0) goto LAB_00051040;\n          puVar21 = PTR_DAT_000b758c + -0x1898;\n          pcVar23 = (code *)(PTR_LAB_000b78e4 + 0x3a4);\n          local_94 = puVar4;\n          local_90 = puVar24;\n          do {\n            local_84 = 0x8000;\n            local_88 = local_100;\n            puVar9 = (undefined8 *)0x0;\n            iVar17 = (*(code *)PTR_inflate_000b7d40)(&local_94,0);\n            puVar3 = local_120._0_4_;\n            if (iVar17 == -3) {\nLAB_000511f4:\n              puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n              dVar30 = (double)CONCAT44(puVar15,puVar18);\n              *puVar10 = 0x16;\n              puVar20 = (undefined8 *)0xffffffff;\n              goto LAB_00051040;\n            }\n            if (iVar17 < -2) {\n              if (iVar17 == -4) {\n                puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n                dVar30 = (double)CONCAT44(puVar15,puVar18);\n                *puVar10 = 0xc;\n                puVar20 = (undefined8 *)0xffffffff;\n                goto LAB_00051040;\n              }\n            }\n            else if (iVar17 == 1) {\n              if (((param_12 & 1) != 0) &&\n                 (((param_5 != iVar6 || (param_6 != puVar12)) && (PTR_opt_000b746c[0x16b] != '\0')))\n                 ) {\n                debug_logprintf(puVar21);\n              }\n            }\n            else if (iVar17 == 2) goto LAB_000511f4;\n            local_120 = (double)(ZEXT48(auStack_ac + 4) << 0x20);\n            puVar18 = (undefined8 *)(0x8000 - local_84);\n            puVar9 = (undefined8 *)0x0;\n            puVar15 = local_100;\n            puVar20 = (undefined8 *)(*pcVar23)(param_3,0);\n            dVar30 = (double)CONCAT44(puVar15,puVar18);\n            puVar3 = (undefined8 *)(auStack_ac + 4);\n            if ((int)puVar20 < 0) goto LAB_00051040;\n          } while (local_84 == 0);\n        }" else (compound_statement "{\n          local_120 = 0.0;\n          local_120._0_4_ = (undefined8 *)0x0;\n          puVar20 = (undefined8 *)FUN_000503a4(0,param_13);\n          dVar30 = (double)CONCAT44(puVar15,puVar18);\n          puVar3 = local_120._0_4_;\n          if ((int)puVar20 < 0) goto LAB_00051040;\n          puVar21 = PTR_DAT_000b758c + -0x1898;\n          pcVar23 = (code *)(PTR_LAB_000b78e4 + 0x3a4);\n          local_94 = puVar4;\n          local_90 = puVar24;\n          do {\n            local_84 = 0x8000;\n            local_88 = local_100;\n            puVar9 = (undefined8 *)0x0;\n            iVar17 = (*(code *)PTR_inflate_000b7d40)(&local_94,0);\n            puVar3 = local_120._0_4_;\n            if (iVar17 == -3) {\nLAB_000511f4:\n              puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n              dVar30 = (double)CONCAT44(puVar15,puVar18);\n              *puVar10 = 0x16;\n              puVar20 = (undefined8 *)0xffffffff;\n              goto LAB_00051040;\n            }\n            if (iVar17 < -2) {\n              if (iVar17 == -4) {\n                puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n                dVar30 = (double)CONCAT44(puVar15,puVar18);\n                *puVar10 = 0xc;\n                puVar20 = (undefined8 *)0xffffffff;\n                goto LAB_00051040;\n              }\n            }\n            else if (iVar17 == 1) {\n              if (((param_12 & 1) != 0) &&\n                 (((param_5 != iVar6 || (param_6 != puVar12)) && (PTR_opt_000b746c[0x16b] != '\0')))\n                 ) {\n                debug_logprintf(puVar21);\n              }\n            }\n            else if (iVar17 == 2) goto LAB_000511f4;\n            local_120 = (double)(ZEXT48(auStack_ac + 4) << 0x20);\n            puVar18 = (undefined8 *)(0x8000 - local_84);\n            puVar9 = (undefined8 *)0x0;\n            puVar15 = local_100;\n            puVar20 = (undefined8 *)(*pcVar23)(param_3,0);\n            dVar30 = (double)CONCAT44(puVar15,puVar18);\n            puVar3 = (undefined8 *)(auStack_ac + 4);\n            if ((int)puVar20 < 0) goto LAB_00051040;\n          } while (local_84 == 0);\n        }" { (expression_statement "local_120 = 0.0;" (assignment_expression "local_120 = 0.0" identifier = number_literal) ;) (expression_statement "local_120._0_4_ = (undefined8 *)0x0;" (assignment_expression "local_120._0_4_ = (undefined8 *)0x0" (field_expression "local_120._0_4_" identifier . field_identifier) = (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar20 = (undefined8 *)FUN_000503a4(0,param_13);" (assignment_expression "puVar20 = (undefined8 *)FUN_000503a4(0,param_13)" identifier = (cast_expression "(undefined8 *)FUN_000503a4(0,param_13)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000503a4(0,param_13)" identifier (argument_list "(0,param_13)" ( number_literal , identifier ))))) ;) (expression_statement "dVar30 = (double)CONCAT44(puVar15,puVar18);" (assignment_expression "dVar30 = (double)CONCAT44(puVar15,puVar18)" identifier = (cast_expression "(double)CONCAT44(puVar15,puVar18)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(puVar15,puVar18)" identifier (argument_list "(puVar15,puVar18)" ( identifier , identifier ))))) ;) (expression_statement "puVar3 = local_120._0_4_;" (assignment_expression "puVar3 = local_120._0_4_" identifier = (field_expression "local_120._0_4_" identifier . field_identifier)) ;) (if_statement "if ((int)puVar20 < 0) goto LAB_00051040;" if (parenthesized_expression "((int)puVar20 < 0)" ( (binary_expression "(int)puVar20 < 0" (cast_expression "(int)puVar20" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_00051040;" goto statement_identifier ;)) (expression_statement "puVar21 = PTR_DAT_000b758c + -0x1898;" (assignment_expression "puVar21 = PTR_DAT_000b758c + -0x1898" identifier = (binary_expression "PTR_DAT_000b758c + -0x1898" identifier + number_literal)) ;) (expression_statement "pcVar23 = (code *)(PTR_LAB_000b78e4 + 0x3a4);" (assignment_expression "pcVar23 = (code *)(PTR_LAB_000b78e4 + 0x3a4)" identifier = (cast_expression "(code *)(PTR_LAB_000b78e4 + 0x3a4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000b78e4 + 0x3a4)" ( (binary_expression "PTR_LAB_000b78e4 + 0x3a4" identifier + number_literal) )))) ;) (expression_statement "local_94 = puVar4;" (assignment_expression "local_94 = puVar4" identifier = identifier) ;) (expression_statement "local_90 = puVar24;" (assignment_expression "local_90 = puVar24" identifier = identifier) ;) (do_statement "do {\n            local_84 = 0x8000;\n            local_88 = local_100;\n            puVar9 = (undefined8 *)0x0;\n            iVar17 = (*(code *)PTR_inflate_000b7d40)(&local_94,0);\n            puVar3 = local_120._0_4_;\n            if (iVar17 == -3) {\nLAB_000511f4:\n              puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n              dVar30 = (double)CONCAT44(puVar15,puVar18);\n              *puVar10 = 0x16;\n              puVar20 = (undefined8 *)0xffffffff;\n              goto LAB_00051040;\n            }\n            if (iVar17 < -2) {\n              if (iVar17 == -4) {\n                puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n                dVar30 = (double)CONCAT44(puVar15,puVar18);\n                *puVar10 = 0xc;\n                puVar20 = (undefined8 *)0xffffffff;\n                goto LAB_00051040;\n              }\n            }\n            else if (iVar17 == 1) {\n              if (((param_12 & 1) != 0) &&\n                 (((param_5 != iVar6 || (param_6 != puVar12)) && (PTR_opt_000b746c[0x16b] != '\0')))\n                 ) {\n                debug_logprintf(puVar21);\n              }\n            }\n            else if (iVar17 == 2) goto LAB_000511f4;\n            local_120 = (double)(ZEXT48(auStack_ac + 4) << 0x20);\n            puVar18 = (undefined8 *)(0x8000 - local_84);\n            puVar9 = (undefined8 *)0x0;\n            puVar15 = local_100;\n            puVar20 = (undefined8 *)(*pcVar23)(param_3,0);\n            dVar30 = (double)CONCAT44(puVar15,puVar18);\n            puVar3 = (undefined8 *)(auStack_ac + 4);\n            if ((int)puVar20 < 0) goto LAB_00051040;\n          } while (local_84 == 0);" do (compound_statement "{\n            local_84 = 0x8000;\n            local_88 = local_100;\n            puVar9 = (undefined8 *)0x0;\n            iVar17 = (*(code *)PTR_inflate_000b7d40)(&local_94,0);\n            puVar3 = local_120._0_4_;\n            if (iVar17 == -3) {\nLAB_000511f4:\n              puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n              dVar30 = (double)CONCAT44(puVar15,puVar18);\n              *puVar10 = 0x16;\n              puVar20 = (undefined8 *)0xffffffff;\n              goto LAB_00051040;\n            }\n            if (iVar17 < -2) {\n              if (iVar17 == -4) {\n                puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n                dVar30 = (double)CONCAT44(puVar15,puVar18);\n                *puVar10 = 0xc;\n                puVar20 = (undefined8 *)0xffffffff;\n                goto LAB_00051040;\n              }\n            }\n            else if (iVar17 == 1) {\n              if (((param_12 & 1) != 0) &&\n                 (((param_5 != iVar6 || (param_6 != puVar12)) && (PTR_opt_000b746c[0x16b] != '\0')))\n                 ) {\n                debug_logprintf(puVar21);\n              }\n            }\n            else if (iVar17 == 2) goto LAB_000511f4;\n            local_120 = (double)(ZEXT48(auStack_ac + 4) << 0x20);\n            puVar18 = (undefined8 *)(0x8000 - local_84);\n            puVar9 = (undefined8 *)0x0;\n            puVar15 = local_100;\n            puVar20 = (undefined8 *)(*pcVar23)(param_3,0);\n            dVar30 = (double)CONCAT44(puVar15,puVar18);\n            puVar3 = (undefined8 *)(auStack_ac + 4);\n            if ((int)puVar20 < 0) goto LAB_00051040;\n          }" { (expression_statement "local_84 = 0x8000;" (assignment_expression "local_84 = 0x8000" identifier = number_literal) ;) (expression_statement "local_88 = local_100;" (assignment_expression "local_88 = local_100" identifier = identifier) ;) (expression_statement "puVar9 = (undefined8 *)0x0;" (assignment_expression "puVar9 = (undefined8 *)0x0" identifier = (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar17 = (*(code *)PTR_inflate_000b7d40)(&local_94,0);" (assignment_expression "iVar17 = (*(code *)PTR_inflate_000b7d40)(&local_94,0)" identifier = (call_expression "(*(code *)PTR_inflate_000b7d40)(&local_94,0)" (parenthesized_expression "(*(code *)PTR_inflate_000b7d40)" ( (pointer_expression "*(code *)PTR_inflate_000b7d40" * (cast_expression "(code *)PTR_inflate_000b7d40" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_94,0)" ( (pointer_expression "&local_94" & identifier) , number_literal )))) ;) (expression_statement "puVar3 = local_120._0_4_;" (assignment_expression "puVar3 = local_120._0_4_" identifier = (field_expression "local_120._0_4_" identifier . field_identifier)) ;) (if_statement "if (iVar17 == -3) {\nLAB_000511f4:\n              puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n              dVar30 = (double)CONCAT44(puVar15,puVar18);\n              *puVar10 = 0x16;\n              puVar20 = (undefined8 *)0xffffffff;\n              goto LAB_00051040;\n            }" if (parenthesized_expression "(iVar17 == -3)" ( (binary_expression "iVar17 == -3" identifier == number_literal) )) (compound_statement "{\nLAB_000511f4:\n              puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n              dVar30 = (double)CONCAT44(puVar15,puVar18);\n              *puVar10 = 0x16;\n              puVar20 = (undefined8 *)0xffffffff;\n              goto LAB_00051040;\n            }" { (labeled_statement "LAB_000511f4:\n              puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();" statement_identifier : (expression_statement "puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();" (assignment_expression "puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_000b7eb8)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_000b7eb8)()" (parenthesized_expression "(*(code *)PTR___errno_location_000b7eb8)" ( (pointer_expression "*(code *)PTR___errno_location_000b7eb8" * (cast_expression "(code *)PTR___errno_location_000b7eb8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;)) (expression_statement "dVar30 = (double)CONCAT44(puVar15,puVar18);" (assignment_expression "dVar30 = (double)CONCAT44(puVar15,puVar18)" identifier = (cast_expression "(double)CONCAT44(puVar15,puVar18)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(puVar15,puVar18)" identifier (argument_list "(puVar15,puVar18)" ( identifier , identifier ))))) ;) (expression_statement "*puVar10 = 0x16;" (assignment_expression "*puVar10 = 0x16" (pointer_expression "*puVar10" * identifier) = number_literal) ;) (expression_statement "puVar20 = (undefined8 *)0xffffffff;" (assignment_expression "puVar20 = (undefined8 *)0xffffffff" identifier = (cast_expression "(undefined8 *)0xffffffff" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_00051040;" goto statement_identifier ;) })) (if_statement "if (iVar17 < -2) {\n              if (iVar17 == -4) {\n                puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n                dVar30 = (double)CONCAT44(puVar15,puVar18);\n                *puVar10 = 0xc;\n                puVar20 = (undefined8 *)0xffffffff;\n                goto LAB_00051040;\n              }\n            }\n            else if (iVar17 == 1) {\n              if (((param_12 & 1) != 0) &&\n                 (((param_5 != iVar6 || (param_6 != puVar12)) && (PTR_opt_000b746c[0x16b] != '\0')))\n                 ) {\n                debug_logprintf(puVar21);\n              }\n            }\n            else if (iVar17 == 2) goto LAB_000511f4;" if (parenthesized_expression "(iVar17 < -2)" ( (binary_expression "iVar17 < -2" identifier < number_literal) )) (compound_statement "{\n              if (iVar17 == -4) {\n                puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n                dVar30 = (double)CONCAT44(puVar15,puVar18);\n                *puVar10 = 0xc;\n                puVar20 = (undefined8 *)0xffffffff;\n                goto LAB_00051040;\n              }\n            }" { (if_statement "if (iVar17 == -4) {\n                puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n                dVar30 = (double)CONCAT44(puVar15,puVar18);\n                *puVar10 = 0xc;\n                puVar20 = (undefined8 *)0xffffffff;\n                goto LAB_00051040;\n              }" if (parenthesized_expression "(iVar17 == -4)" ( (binary_expression "iVar17 == -4" identifier == number_literal) )) (compound_statement "{\n                puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n                dVar30 = (double)CONCAT44(puVar15,puVar18);\n                *puVar10 = 0xc;\n                puVar20 = (undefined8 *)0xffffffff;\n                goto LAB_00051040;\n              }" { (expression_statement "puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();" (assignment_expression "puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_000b7eb8)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_000b7eb8)()" (parenthesized_expression "(*(code *)PTR___errno_location_000b7eb8)" ( (pointer_expression "*(code *)PTR___errno_location_000b7eb8" * (cast_expression "(code *)PTR___errno_location_000b7eb8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "dVar30 = (double)CONCAT44(puVar15,puVar18);" (assignment_expression "dVar30 = (double)CONCAT44(puVar15,puVar18)" identifier = (cast_expression "(double)CONCAT44(puVar15,puVar18)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(puVar15,puVar18)" identifier (argument_list "(puVar15,puVar18)" ( identifier , identifier ))))) ;) (expression_statement "*puVar10 = 0xc;" (assignment_expression "*puVar10 = 0xc" (pointer_expression "*puVar10" * identifier) = number_literal) ;) (expression_statement "puVar20 = (undefined8 *)0xffffffff;" (assignment_expression "puVar20 = (undefined8 *)0xffffffff" identifier = (cast_expression "(undefined8 *)0xffffffff" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_00051040;" goto statement_identifier ;) })) }) (else_clause "else if (iVar17 == 1) {\n              if (((param_12 & 1) != 0) &&\n                 (((param_5 != iVar6 || (param_6 != puVar12)) && (PTR_opt_000b746c[0x16b] != '\0')))\n                 ) {\n                debug_logprintf(puVar21);\n              }\n            }\n            else if (iVar17 == 2) goto LAB_000511f4;" else (if_statement "if (iVar17 == 1) {\n              if (((param_12 & 1) != 0) &&\n                 (((param_5 != iVar6 || (param_6 != puVar12)) && (PTR_opt_000b746c[0x16b] != '\0')))\n                 ) {\n                debug_logprintf(puVar21);\n              }\n            }\n            else if (iVar17 == 2) goto LAB_000511f4;" if (parenthesized_expression "(iVar17 == 1)" ( (binary_expression "iVar17 == 1" identifier == number_literal) )) (compound_statement "{\n              if (((param_12 & 1) != 0) &&\n                 (((param_5 != iVar6 || (param_6 != puVar12)) && (PTR_opt_000b746c[0x16b] != '\0')))\n                 ) {\n                debug_logprintf(puVar21);\n              }\n            }" { (if_statement "if (((param_12 & 1) != 0) &&\n                 (((param_5 != iVar6 || (param_6 != puVar12)) && (PTR_opt_000b746c[0x16b] != '\0')))\n                 ) {\n                debug_logprintf(puVar21);\n              }" if (parenthesized_expression "(((param_12 & 1) != 0) &&\n                 (((param_5 != iVar6 || (param_6 != puVar12)) && (PTR_opt_000b746c[0x16b] != '\0')))\n                 )" ( (binary_expression "((param_12 & 1) != 0) &&\n                 (((param_5 != iVar6 || (param_6 != puVar12)) && (PTR_opt_000b746c[0x16b] != '\0')))" (parenthesized_expression "((param_12 & 1) != 0)" ( (binary_expression "(param_12 & 1) != 0" (parenthesized_expression "(param_12 & 1)" ( (binary_expression "param_12 & 1" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(((param_5 != iVar6 || (param_6 != puVar12)) && (PTR_opt_000b746c[0x16b] != '\0')))" ( (parenthesized_expression "((param_5 != iVar6 || (param_6 != puVar12)) && (PTR_opt_000b746c[0x16b] != '\0'))" ( (binary_expression "(param_5 != iVar6 || (param_6 != puVar12)) && (PTR_opt_000b746c[0x16b] != '\0')" (parenthesized_expression "(param_5 != iVar6 || (param_6 != puVar12))" ( (binary_expression "param_5 != iVar6 || (param_6 != puVar12)" (binary_expression "param_5 != iVar6" identifier != identifier) || (parenthesized_expression "(param_6 != puVar12)" ( (binary_expression "param_6 != puVar12" identifier != identifier) ))) )) && (parenthesized_expression "(PTR_opt_000b746c[0x16b] != '\0')" ( (binary_expression "PTR_opt_000b746c[0x16b] != '\0'" (subscript_expression "PTR_opt_000b746c[0x16b]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) ))) )) ))) )) (compound_statement "{\n                debug_logprintf(puVar21);\n              }" { (expression_statement "debug_logprintf(puVar21);" (call_expression "debug_logprintf(puVar21)" identifier (argument_list "(puVar21)" ( identifier ))) ;) })) }) (else_clause "else if (iVar17 == 2) goto LAB_000511f4;" else (if_statement "if (iVar17 == 2) goto LAB_000511f4;" if (parenthesized_expression "(iVar17 == 2)" ( (binary_expression "iVar17 == 2" identifier == number_literal) )) (goto_statement "goto LAB_000511f4;" goto statement_identifier ;)))))) (expression_statement "local_120 = (double)(ZEXT48(auStack_ac + 4) << 0x20);" (assignment_expression "local_120 = (double)(ZEXT48(auStack_ac + 4) << 0x20)" identifier = (cast_expression "(double)(ZEXT48(auStack_ac + 4) << 0x20)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "(ZEXT48(auStack_ac + 4) << 0x20)" ( (binary_expression "ZEXT48(auStack_ac + 4) << 0x20" (call_expression "ZEXT48(auStack_ac + 4)" identifier (argument_list "(auStack_ac + 4)" ( (binary_expression "auStack_ac + 4" identifier + number_literal) ))) << number_literal) )))) ;) (expression_statement "puVar18 = (undefined8 *)(0x8000 - local_84);" (assignment_expression "puVar18 = (undefined8 *)(0x8000 - local_84)" identifier = (cast_expression "(undefined8 *)(0x8000 - local_84)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(0x8000 - local_84)" ( (binary_expression "0x8000 - local_84" number_literal - identifier) )))) ;) (expression_statement "puVar9 = (undefined8 *)0x0;" (assignment_expression "puVar9 = (undefined8 *)0x0" identifier = (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar15 = local_100;" (assignment_expression "puVar15 = local_100" identifier = identifier) ;) (expression_statement "puVar20 = (undefined8 *)(*pcVar23)(param_3,0);" (assignment_expression "puVar20 = (undefined8 *)(*pcVar23)(param_3,0)" identifier = (cast_expression "(undefined8 *)(*pcVar23)(param_3,0)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar23)(param_3,0)" (parenthesized_expression "(*pcVar23)" ( (pointer_expression "*pcVar23" * identifier) )) (argument_list "(param_3,0)" ( identifier , number_literal ))))) ;) (expression_statement "dVar30 = (double)CONCAT44(puVar15,puVar18);" (assignment_expression "dVar30 = (double)CONCAT44(puVar15,puVar18)" identifier = (cast_expression "(double)CONCAT44(puVar15,puVar18)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(puVar15,puVar18)" identifier (argument_list "(puVar15,puVar18)" ( identifier , identifier ))))) ;) (expression_statement "puVar3 = (undefined8 *)(auStack_ac + 4);" (assignment_expression "puVar3 = (undefined8 *)(auStack_ac + 4)" identifier = (cast_expression "(undefined8 *)(auStack_ac + 4)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(auStack_ac + 4)" ( (binary_expression "auStack_ac + 4" identifier + number_literal) )))) ;) (if_statement "if ((int)puVar20 < 0) goto LAB_00051040;" if (parenthesized_expression "((int)puVar20 < 0)" ( (binary_expression "(int)puVar20 < 0" (cast_expression "(int)puVar20" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_00051040;" goto statement_identifier ;)) }) while (parenthesized_expression "(local_84 == 0)" ( (binary_expression "local_84 == 0" identifier == number_literal) )) ;) }))) (expression_statement "dVar31 = local_120;" (assignment_expression "dVar31 = local_120" identifier = identifier) ;) (if_statement "if (uVar5 != 0) {\n          puVar20 = (undefined8 *)((int)local_f0 - (int)puVar24);\n          iVar22 = (iVar22 - ((int)puVar24 >> 0x1f)) - (uint)(local_f0 < puVar20);\n          local_f0 = puVar20;\n          if (iVar22 == 0 && puVar20 == (undefined8 *)0x0) {\n            iVar17 = fd_read_line(param_2);\n            dVar25 = (double)CONCAT44(puVar15,puVar18);\n            if (iVar17 == 0) {\n              puVar24 = (undefined8 *)0xffffffff;\n              goto LAB_000518d4;\n            }\n            if (param_13 != (undefined8 *)0x0) {\n              puVar15 = (undefined8 *)(*(code *)PTR_strlen_000b7c94)(iVar17);\n              puVar9 = (undefined8 *)&DAT_00000001;\n              puVar18 = param_13;\n              (*(code *)PTR_fwrite_000b7c24)(iVar17,1);\n            }\n            (*(code *)PTR_free_000b7d34)(iVar17);\n          }\n        }" if (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) (compound_statement "{\n          puVar20 = (undefined8 *)((int)local_f0 - (int)puVar24);\n          iVar22 = (iVar22 - ((int)puVar24 >> 0x1f)) - (uint)(local_f0 < puVar20);\n          local_f0 = puVar20;\n          if (iVar22 == 0 && puVar20 == (undefined8 *)0x0) {\n            iVar17 = fd_read_line(param_2);\n            dVar25 = (double)CONCAT44(puVar15,puVar18);\n            if (iVar17 == 0) {\n              puVar24 = (undefined8 *)0xffffffff;\n              goto LAB_000518d4;\n            }\n            if (param_13 != (undefined8 *)0x0) {\n              puVar15 = (undefined8 *)(*(code *)PTR_strlen_000b7c94)(iVar17);\n              puVar9 = (undefined8 *)&DAT_00000001;\n              puVar18 = param_13;\n              (*(code *)PTR_fwrite_000b7c24)(iVar17,1);\n            }\n            (*(code *)PTR_free_000b7d34)(iVar17);\n          }\n        }" { (expression_statement "puVar20 = (undefined8 *)((int)local_f0 - (int)puVar24);" (assignment_expression "puVar20 = (undefined8 *)((int)local_f0 - (int)puVar24)" identifier = (cast_expression "(undefined8 *)((int)local_f0 - (int)puVar24)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_f0 - (int)puVar24)" ( (binary_expression "(int)local_f0 - (int)puVar24" (cast_expression "(int)local_f0" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar24" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "iVar22 = (iVar22 - ((int)puVar24 >> 0x1f)) - (uint)(local_f0 < puVar20);" (assignment_expression "iVar22 = (iVar22 - ((int)puVar24 >> 0x1f)) - (uint)(local_f0 < puVar20)" identifier = (binary_expression "(iVar22 - ((int)puVar24 >> 0x1f)) - (uint)(local_f0 < puVar20)" (parenthesized_expression "(iVar22 - ((int)puVar24 >> 0x1f))" ( (binary_expression "iVar22 - ((int)puVar24 >> 0x1f)" identifier - (parenthesized_expression "((int)puVar24 >> 0x1f)" ( (binary_expression "(int)puVar24 >> 0x1f" (cast_expression "(int)puVar24" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ))) )) - (call_expression "(uint)(local_f0 < puVar20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_f0 < puVar20)" ( (binary_expression "local_f0 < puVar20" identifier < identifier) ))))) ;) (expression_statement "local_f0 = puVar20;" (assignment_expression "local_f0 = puVar20" identifier = identifier) ;) (if_statement "if (iVar22 == 0 && puVar20 == (undefined8 *)0x0) {\n            iVar17 = fd_read_line(param_2);\n            dVar25 = (double)CONCAT44(puVar15,puVar18);\n            if (iVar17 == 0) {\n              puVar24 = (undefined8 *)0xffffffff;\n              goto LAB_000518d4;\n            }\n            if (param_13 != (undefined8 *)0x0) {\n              puVar15 = (undefined8 *)(*(code *)PTR_strlen_000b7c94)(iVar17);\n              puVar9 = (undefined8 *)&DAT_00000001;\n              puVar18 = param_13;\n              (*(code *)PTR_fwrite_000b7c24)(iVar17,1);\n            }\n            (*(code *)PTR_free_000b7d34)(iVar17);\n          }" if (parenthesized_expression "(iVar22 == 0 && puVar20 == (undefined8 *)0x0)" ( (binary_expression "iVar22 == 0 && puVar20 == (undefined8 *)0x0" (binary_expression "iVar22 == 0" identifier == number_literal) && (binary_expression "puVar20 == (undefined8 *)0x0" identifier == (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n            iVar17 = fd_read_line(param_2);\n            dVar25 = (double)CONCAT44(puVar15,puVar18);\n            if (iVar17 == 0) {\n              puVar24 = (undefined8 *)0xffffffff;\n              goto LAB_000518d4;\n            }\n            if (param_13 != (undefined8 *)0x0) {\n              puVar15 = (undefined8 *)(*(code *)PTR_strlen_000b7c94)(iVar17);\n              puVar9 = (undefined8 *)&DAT_00000001;\n              puVar18 = param_13;\n              (*(code *)PTR_fwrite_000b7c24)(iVar17,1);\n            }\n            (*(code *)PTR_free_000b7d34)(iVar17);\n          }" { (expression_statement "iVar17 = fd_read_line(param_2);" (assignment_expression "iVar17 = fd_read_line(param_2)" identifier = (call_expression "fd_read_line(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "dVar25 = (double)CONCAT44(puVar15,puVar18);" (assignment_expression "dVar25 = (double)CONCAT44(puVar15,puVar18)" identifier = (cast_expression "(double)CONCAT44(puVar15,puVar18)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(puVar15,puVar18)" identifier (argument_list "(puVar15,puVar18)" ( identifier , identifier ))))) ;) (if_statement "if (iVar17 == 0) {\n              puVar24 = (undefined8 *)0xffffffff;\n              goto LAB_000518d4;\n            }" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (compound_statement "{\n              puVar24 = (undefined8 *)0xffffffff;\n              goto LAB_000518d4;\n            }" { (expression_statement "puVar24 = (undefined8 *)0xffffffff;" (assignment_expression "puVar24 = (undefined8 *)0xffffffff" identifier = (cast_expression "(undefined8 *)0xffffffff" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_000518d4;" goto statement_identifier ;) })) (if_statement "if (param_13 != (undefined8 *)0x0) {\n              puVar15 = (undefined8 *)(*(code *)PTR_strlen_000b7c94)(iVar17);\n              puVar9 = (undefined8 *)&DAT_00000001;\n              puVar18 = param_13;\n              (*(code *)PTR_fwrite_000b7c24)(iVar17,1);\n            }" if (parenthesized_expression "(param_13 != (undefined8 *)0x0)" ( (binary_expression "param_13 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              puVar15 = (undefined8 *)(*(code *)PTR_strlen_000b7c94)(iVar17);\n              puVar9 = (undefined8 *)&DAT_00000001;\n              puVar18 = param_13;\n              (*(code *)PTR_fwrite_000b7c24)(iVar17,1);\n            }" { (expression_statement "puVar15 = (undefined8 *)(*(code *)PTR_strlen_000b7c94)(iVar17);" (assignment_expression "puVar15 = (undefined8 *)(*(code *)PTR_strlen_000b7c94)(iVar17)" identifier = (cast_expression "(undefined8 *)(*(code *)PTR_strlen_000b7c94)(iVar17)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_strlen_000b7c94)(iVar17)" (parenthesized_expression "(*(code *)PTR_strlen_000b7c94)" ( (pointer_expression "*(code *)PTR_strlen_000b7c94" * (cast_expression "(code *)PTR_strlen_000b7c94" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar17)" ( identifier ))))) ;) (expression_statement "puVar9 = (undefined8 *)&DAT_00000001;" (assignment_expression "puVar9 = (undefined8 *)&DAT_00000001" identifier = (cast_expression "(undefined8 *)&DAT_00000001" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000001" & identifier))) ;) (expression_statement "puVar18 = param_13;" (assignment_expression "puVar18 = param_13" identifier = identifier) ;) (expression_statement "(*(code *)PTR_fwrite_000b7c24)(iVar17,1);" (call_expression "(*(code *)PTR_fwrite_000b7c24)(iVar17,1)" (parenthesized_expression "(*(code *)PTR_fwrite_000b7c24)" ( (pointer_expression "*(code *)PTR_fwrite_000b7c24" * (cast_expression "(code *)PTR_fwrite_000b7c24" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar17,1)" ( identifier , number_literal ))) ;) })) (expression_statement "(*(code *)PTR_free_000b7d34)(iVar17);" (call_expression "(*(code *)PTR_free_000b7d34)(iVar17)" (parenthesized_expression "(*(code *)PTR_free_000b7d34)" ( (pointer_expression "*(code *)PTR_free_000b7d34" * (cast_expression "(code *)PTR_free_000b7d34" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar17)" ( identifier ))) ;) })) })) (goto_statement "goto LAB_00051748;" goto statement_identifier ;) })) (if_statement "if (*(double *)(PTR_opt_000b746c + 0x120) == 0.0) {\n        dVar31 = *(double *)(PTR_DAT_000b758c + -0x15e0);\n      }\n      else {\n        dVar25 = (double)ptimer_read(local_104);\n        puVar18 = SUB84(dVar30,0);\n        if (*(double *)(PTR_opt_000b746c + 0x120) <\n            (dVar25 - dVar29) + *(double *)(PTR_DAT_000b758c + -0x15e0)) {\n          dVar31 = *(double *)(PTR_opt_000b746c + 0x120) - (dVar25 - dVar29);\n          if (dVar31 < 0.0) {\n            puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n            *puVar10 = 0x91;\n            puVar20 = (undefined8 *)0xffffffff;\n            goto LAB_00051040;\n          }\n        }\n        else {\n          dVar31 = *(double *)(PTR_DAT_000b758c + -0x15e0);\n        }\n      }" if (parenthesized_expression "(*(double *)(PTR_opt_000b746c + 0x120) == 0.0)" ( (binary_expression "*(double *)(PTR_opt_000b746c + 0x120) == 0.0" (pointer_expression "*(double *)(PTR_opt_000b746c + 0x120)" * (cast_expression "(double *)(PTR_opt_000b746c + 0x120)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_opt_000b746c + 0x120)" ( (binary_expression "PTR_opt_000b746c + 0x120" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        dVar31 = *(double *)(PTR_DAT_000b758c + -0x15e0);\n      }" { (expression_statement "dVar31 = *(double *)(PTR_DAT_000b758c + -0x15e0);" (assignment_expression "dVar31 = *(double *)(PTR_DAT_000b758c + -0x15e0)" identifier = (pointer_expression "*(double *)(PTR_DAT_000b758c + -0x15e0)" * (cast_expression "(double *)(PTR_DAT_000b758c + -0x15e0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000b758c + -0x15e0)" ( (binary_expression "PTR_DAT_000b758c + -0x15e0" identifier + number_literal) ))))) ;) }) (else_clause "else {\n        dVar25 = (double)ptimer_read(local_104);\n        puVar18 = SUB84(dVar30,0);\n        if (*(double *)(PTR_opt_000b746c + 0x120) <\n            (dVar25 - dVar29) + *(double *)(PTR_DAT_000b758c + -0x15e0)) {\n          dVar31 = *(double *)(PTR_opt_000b746c + 0x120) - (dVar25 - dVar29);\n          if (dVar31 < 0.0) {\n            puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n            *puVar10 = 0x91;\n            puVar20 = (undefined8 *)0xffffffff;\n            goto LAB_00051040;\n          }\n        }\n        else {\n          dVar31 = *(double *)(PTR_DAT_000b758c + -0x15e0);\n        }\n      }" else (compound_statement "{\n        dVar25 = (double)ptimer_read(local_104);\n        puVar18 = SUB84(dVar30,0);\n        if (*(double *)(PTR_opt_000b746c + 0x120) <\n            (dVar25 - dVar29) + *(double *)(PTR_DAT_000b758c + -0x15e0)) {\n          dVar31 = *(double *)(PTR_opt_000b746c + 0x120) - (dVar25 - dVar29);\n          if (dVar31 < 0.0) {\n            puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n            *puVar10 = 0x91;\n            puVar20 = (undefined8 *)0xffffffff;\n            goto LAB_00051040;\n          }\n        }\n        else {\n          dVar31 = *(double *)(PTR_DAT_000b758c + -0x15e0);\n        }\n      }" { (expression_statement "dVar25 = (double)ptimer_read(local_104);" (assignment_expression "dVar25 = (double)ptimer_read(local_104)" identifier = (cast_expression "(double)ptimer_read(local_104)" ( (type_descriptor "double" primitive_type) ) (call_expression "ptimer_read(local_104)" identifier (argument_list "(local_104)" ( identifier ))))) ;) (expression_statement "puVar18 = SUB84(dVar30,0);" (assignment_expression "puVar18 = SUB84(dVar30,0)" identifier = (call_expression "SUB84(dVar30,0)" identifier (argument_list "(dVar30,0)" ( identifier , number_literal )))) ;) (if_statement "if (*(double *)(PTR_opt_000b746c + 0x120) <\n            (dVar25 - dVar29) + *(double *)(PTR_DAT_000b758c + -0x15e0)) {\n          dVar31 = *(double *)(PTR_opt_000b746c + 0x120) - (dVar25 - dVar29);\n          if (dVar31 < 0.0) {\n            puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n            *puVar10 = 0x91;\n            puVar20 = (undefined8 *)0xffffffff;\n            goto LAB_00051040;\n          }\n        }\n        else {\n          dVar31 = *(double *)(PTR_DAT_000b758c + -0x15e0);\n        }" if (parenthesized_expression "(*(double *)(PTR_opt_000b746c + 0x120) <\n            (dVar25 - dVar29) + *(double *)(PTR_DAT_000b758c + -0x15e0))" ( (binary_expression "*(double *)(PTR_opt_000b746c + 0x120) <\n            (dVar25 - dVar29) + *(double *)(PTR_DAT_000b758c + -0x15e0)" (pointer_expression "*(double *)(PTR_opt_000b746c + 0x120)" * (cast_expression "(double *)(PTR_opt_000b746c + 0x120)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_opt_000b746c + 0x120)" ( (binary_expression "PTR_opt_000b746c + 0x120" identifier + number_literal) )))) < (binary_expression "(dVar25 - dVar29) + *(double *)(PTR_DAT_000b758c + -0x15e0)" (parenthesized_expression "(dVar25 - dVar29)" ( (binary_expression "dVar25 - dVar29" identifier - identifier) )) + (pointer_expression "*(double *)(PTR_DAT_000b758c + -0x15e0)" * (cast_expression "(double *)(PTR_DAT_000b758c + -0x15e0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000b758c + -0x15e0)" ( (binary_expression "PTR_DAT_000b758c + -0x15e0" identifier + number_literal) )))))) )) (compound_statement "{\n          dVar31 = *(double *)(PTR_opt_000b746c + 0x120) - (dVar25 - dVar29);\n          if (dVar31 < 0.0) {\n            puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n            *puVar10 = 0x91;\n            puVar20 = (undefined8 *)0xffffffff;\n            goto LAB_00051040;\n          }\n        }" { (expression_statement "dVar31 = *(double *)(PTR_opt_000b746c + 0x120) - (dVar25 - dVar29);" (assignment_expression "dVar31 = *(double *)(PTR_opt_000b746c + 0x120) - (dVar25 - dVar29)" identifier = (binary_expression "*(double *)(PTR_opt_000b746c + 0x120) - (dVar25 - dVar29)" (pointer_expression "*(double *)(PTR_opt_000b746c + 0x120)" * (cast_expression "(double *)(PTR_opt_000b746c + 0x120)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_opt_000b746c + 0x120)" ( (binary_expression "PTR_opt_000b746c + 0x120" identifier + number_literal) )))) - (parenthesized_expression "(dVar25 - dVar29)" ( (binary_expression "dVar25 - dVar29" identifier - identifier) )))) ;) (if_statement "if (dVar31 < 0.0) {\n            puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n            *puVar10 = 0x91;\n            puVar20 = (undefined8 *)0xffffffff;\n            goto LAB_00051040;\n          }" if (parenthesized_expression "(dVar31 < 0.0)" ( (binary_expression "dVar31 < 0.0" identifier < number_literal) )) (compound_statement "{\n            puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n            *puVar10 = 0x91;\n            puVar20 = (undefined8 *)0xffffffff;\n            goto LAB_00051040;\n          }" { (expression_statement "puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();" (assignment_expression "puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_000b7eb8)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_000b7eb8)()" (parenthesized_expression "(*(code *)PTR___errno_location_000b7eb8)" ( (pointer_expression "*(code *)PTR___errno_location_000b7eb8" * (cast_expression "(code *)PTR___errno_location_000b7eb8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "*puVar10 = 0x91;" (assignment_expression "*puVar10 = 0x91" (pointer_expression "*puVar10" * identifier) = number_literal) ;) (expression_statement "puVar20 = (undefined8 *)0xffffffff;" (assignment_expression "puVar20 = (undefined8 *)0xffffffff" identifier = (cast_expression "(undefined8 *)0xffffffff" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_00051040;" goto statement_identifier ;) })) }) (else_clause "else {\n          dVar31 = *(double *)(PTR_DAT_000b758c + -0x15e0);\n        }" else (compound_statement "{\n          dVar31 = *(double *)(PTR_DAT_000b758c + -0x15e0);\n        }" { (expression_statement "dVar31 = *(double *)(PTR_DAT_000b758c + -0x15e0);" (assignment_expression "dVar31 = *(double *)(PTR_DAT_000b758c + -0x15e0)" identifier = (pointer_expression "*(double *)(PTR_DAT_000b758c + -0x15e0)" * (cast_expression "(double *)(PTR_DAT_000b758c + -0x15e0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000b758c + -0x15e0)" ( (binary_expression "PTR_DAT_000b758c + -0x15e0" identifier + number_literal) ))))) ;) }))) }))) (expression_statement "puVar9 = puVar4;" (assignment_expression "puVar9 = puVar4" identifier = identifier) ;) (expression_statement "puVar24 = (undefined8 *)(*(code *)PTR_fd_read_000b7770)(param_2,puVar4);" (assignment_expression "puVar24 = (undefined8 *)(*(code *)PTR_fd_read_000b7770)(param_2,puVar4)" identifier = (cast_expression "(undefined8 *)(*(code *)PTR_fd_read_000b7770)(param_2,puVar4)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_fd_read_000b7770)(param_2,puVar4)" (parenthesized_expression "(*(code *)PTR_fd_read_000b7770)" ( (pointer_expression "*(code *)PTR_fd_read_000b7770" * (cast_expression "(code *)PTR_fd_read_000b7770" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2,puVar4)" ( identifier , identifier ))))) ;) (expression_statement "local_120 = dVar31;" (assignment_expression "local_120 = dVar31" identifier = identifier) ;) (if_statement "if (-1 < (int)puVar24) goto LAB_000516fc;" if (parenthesized_expression "(-1 < (int)puVar24)" ( (binary_expression "-1 < (int)puVar24" number_literal < (cast_expression "(int)puVar24" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_000516fc;" goto statement_identifier ;)) (expression_statement "piVar14 = (int *)(*(code *)PTR___errno_location_000b7eb8)();" (assignment_expression "piVar14 = (int *)(*(code *)PTR___errno_location_000b7eb8)()" identifier = (cast_expression "(int *)(*(code *)PTR___errno_location_000b7eb8)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_000b7eb8)()" (parenthesized_expression "(*(code *)PTR___errno_location_000b7eb8)" ( (pointer_expression "*(code *)PTR___errno_location_000b7eb8" * (cast_expression "(code *)PTR___errno_location_000b7eb8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "dVar25 = (double)CONCAT44(puVar15,puVar18);" (assignment_expression "dVar25 = (double)CONCAT44(puVar15,puVar18)" identifier = (cast_expression "(double)CONCAT44(puVar15,puVar18)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(puVar15,puVar18)" identifier (argument_list "(puVar15,puVar18)" ( identifier , identifier ))))) ;) (expression_statement "local_120._0_4_ = (undefined8 *)((ulonglong)dVar31 >> 0x20);" (assignment_expression "local_120._0_4_ = (undefined8 *)((ulonglong)dVar31 >> 0x20)" (field_expression "local_120._0_4_" identifier . field_identifier) = (cast_expression "(undefined8 *)((ulonglong)dVar31 >> 0x20)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulonglong)dVar31 >> 0x20)" ( (binary_expression "(ulonglong)dVar31 >> 0x20" (cast_expression "(ulonglong)dVar31" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (*piVar14 != 0x91) goto LAB_000518d4;" if (parenthesized_expression "(*piVar14 != 0x91)" ( (binary_expression "*piVar14 != 0x91" (pointer_expression "*piVar14" * identifier) != number_literal) )) (goto_statement "goto LAB_000518d4;" goto statement_identifier ;)) (if_statement "if (iVar7 == 0) {\n        if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n          ptimer_measure(local_104);\n          puVar24 = (undefined8 *)0x0;\n          goto LAB_00051748;\n        }\n        puVar24 = (undefined8 *)0x0;\nLAB_00051720:\n        dVar25 = (double)CONCAT44(puVar15,puVar18);\n        if (param_11 != (undefined8 *)0x0) {\n          ptimer_measure(local_104);\n          dVar31 = local_120;\n          if (0 < (int)puVar24) goto LAB_000515b0;\n          goto LAB_00051748;\n        }\n        if (0 < (int)puVar24) goto LAB_000515c4;\n      }\n      else {\n        ptimer_measure(local_104);\n        puVar24 = (undefined8 *)0x0;\nLAB_00051748:\n        local_120 = dVar31;\n        dVar25 = (double)CONCAT44(puVar15,puVar18);\n        if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n          dVar30 = (double)ptimer_read(local_104);\n          puVar21 = PTR_DAT_000b7720;\n          dVar30 = dVar30 - *(double *)(PTR_DAT_000b7720 + -0x2fe0);\n          puVar20 = (undefined8 *)((int)puVar24 + *(int *)(PTR_DAT_000b7720 + -0x2fe4));\n          iVar17 = (uint)(puVar20 < puVar24) +\n                   ((int)puVar24 >> 0x1f) + *(int *)(PTR_DAT_000b7720 + -0x2fe8);\n          *(int *)(PTR_DAT_000b7720 + -0x2fe8) = iVar17;\n          *(undefined8 **)(puVar21 + -0x2fe4) = puVar20;\n          dVar31 = (double)(*(code *)PTR_FUN_000b78f4)(iVar17,puVar20);\n          puVar9 = *(undefined8 **)(PTR_opt_000b746c + 0x15c);\n          dVar27 = (double)(*(code *)PTR_FUN_000b78f4)\n                                     (*(undefined4 *)(PTR_opt_000b746c + 0x158),puVar9);\n          dVar25 = (double)CONCAT44(puVar15,puVar18);\n          if (dVar30 < dVar31 / dVar27) {\n            dVar30 = (dVar31 / dVar27 - dVar30) + *(double *)(PTR_DAT_000b7720 + -0x2fd8);\n            if (dVar30 < dVar32) {\n              if (PTR_opt_000b746c[0x16b] != '\0') {\n                uVar11 = number_to_static_string(iVar17,puVar20);\n                local_120 = (double)((ulonglong)uVar11 << 0x20);\n                dVar25 = dVar30 * *(double *)(puVar2 + -0x15d8);\n                debug_logprintf(PTR_DAT_000b758c + -0x1864);\n                puVar9 = puVar20;\n              }\n              goto LAB_0005175c;\n            }\n            if (PTR_opt_000b746c[0x16b] != '\0') {\n              uVar11 = number_to_static_string(iVar17,puVar20);\n              local_120 = (double)((ulonglong)uVar11 << 0x20);\n              dVar25 = dVar30 * dVar28;\n              debug_logprintf(PTR_DAT_000b758c + -0x183c);\n              puVar9 = puVar20;\n            }\n            dVar31 = (double)ptimer_read(local_104);\n            xsleep(dVar30);\n            dVar27 = (double)ptimer_measure(local_104);\n            dVar30 = dVar30 - (dVar27 - dVar31);\n            if (dVar33 < dVar30) {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x2580);\n            }\n            else if (dVar34 <= dVar30) {\n              *(double *)(PTR_DAT_000b7720 + -0x2fd8) = dVar30;\n            }\n            else {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x15d0);\n            }\n          }\n          puVar21 = PTR_DAT_000b7720;\n          *(undefined4 *)(PTR_DAT_000b7720 + -0x2fe4) = 0;\n          *(undefined4 *)(puVar21 + -0x2fe8) = 0;\n          uVar26 = ptimer_read(local_104);\n          *(undefined8 *)(puVar21 + -0x2fe0) = uVar26;\n        }\n      }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n        if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n          ptimer_measure(local_104);\n          puVar24 = (undefined8 *)0x0;\n          goto LAB_00051748;\n        }\n        puVar24 = (undefined8 *)0x0;\nLAB_00051720:\n        dVar25 = (double)CONCAT44(puVar15,puVar18);\n        if (param_11 != (undefined8 *)0x0) {\n          ptimer_measure(local_104);\n          dVar31 = local_120;\n          if (0 < (int)puVar24) goto LAB_000515b0;\n          goto LAB_00051748;\n        }\n        if (0 < (int)puVar24) goto LAB_000515c4;\n      }" { (if_statement "if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n          ptimer_measure(local_104);\n          puVar24 = (undefined8 *)0x0;\n          goto LAB_00051748;\n        }" if (parenthesized_expression "(*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0)" ( (binary_expression "*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0" (binary_expression "*(int *)(PTR_opt_000b746c + 0x158) != 0" (pointer_expression "*(int *)(PTR_opt_000b746c + 0x158)" * (cast_expression "(int *)(PTR_opt_000b746c + 0x158)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_opt_000b746c + 0x158)" ( (binary_expression "PTR_opt_000b746c + 0x158" identifier + number_literal) )))) != number_literal) || (binary_expression "*(int *)(PTR_opt_000b746c + 0x15c) != 0" (pointer_expression "*(int *)(PTR_opt_000b746c + 0x15c)" * (cast_expression "(int *)(PTR_opt_000b746c + 0x15c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_opt_000b746c + 0x15c)" ( (binary_expression "PTR_opt_000b746c + 0x15c" identifier + number_literal) )))) != number_literal)) )) (compound_statement "{\n          ptimer_measure(local_104);\n          puVar24 = (undefined8 *)0x0;\n          goto LAB_00051748;\n        }" { (expression_statement "ptimer_measure(local_104);" (call_expression "ptimer_measure(local_104)" identifier (argument_list "(local_104)" ( identifier ))) ;) (expression_statement "puVar24 = (undefined8 *)0x0;" (assignment_expression "puVar24 = (undefined8 *)0x0" identifier = (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_00051748;" goto statement_identifier ;) })) (expression_statement "puVar24 = (undefined8 *)0x0;" (assignment_expression "puVar24 = (undefined8 *)0x0" identifier = (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_00051720:\n        dVar25 = (double)CONCAT44(puVar15,puVar18);" statement_identifier : (expression_statement "dVar25 = (double)CONCAT44(puVar15,puVar18);" (assignment_expression "dVar25 = (double)CONCAT44(puVar15,puVar18)" identifier = (cast_expression "(double)CONCAT44(puVar15,puVar18)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(puVar15,puVar18)" identifier (argument_list "(puVar15,puVar18)" ( identifier , identifier ))))) ;)) (if_statement "if (param_11 != (undefined8 *)0x0) {\n          ptimer_measure(local_104);\n          dVar31 = local_120;\n          if (0 < (int)puVar24) goto LAB_000515b0;\n          goto LAB_00051748;\n        }" if (parenthesized_expression "(param_11 != (undefined8 *)0x0)" ( (binary_expression "param_11 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          ptimer_measure(local_104);\n          dVar31 = local_120;\n          if (0 < (int)puVar24) goto LAB_000515b0;\n          goto LAB_00051748;\n        }" { (expression_statement "ptimer_measure(local_104);" (call_expression "ptimer_measure(local_104)" identifier (argument_list "(local_104)" ( identifier ))) ;) (expression_statement "dVar31 = local_120;" (assignment_expression "dVar31 = local_120" identifier = identifier) ;) (if_statement "if (0 < (int)puVar24) goto LAB_000515b0;" if (parenthesized_expression "(0 < (int)puVar24)" ( (binary_expression "0 < (int)puVar24" number_literal < (cast_expression "(int)puVar24" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_000515b0;" goto statement_identifier ;)) (goto_statement "goto LAB_00051748;" goto statement_identifier ;) })) (if_statement "if (0 < (int)puVar24) goto LAB_000515c4;" if (parenthesized_expression "(0 < (int)puVar24)" ( (binary_expression "0 < (int)puVar24" number_literal < (cast_expression "(int)puVar24" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_000515c4;" goto statement_identifier ;)) }) (else_clause "else {\n        ptimer_measure(local_104);\n        puVar24 = (undefined8 *)0x0;\nLAB_00051748:\n        local_120 = dVar31;\n        dVar25 = (double)CONCAT44(puVar15,puVar18);\n        if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n          dVar30 = (double)ptimer_read(local_104);\n          puVar21 = PTR_DAT_000b7720;\n          dVar30 = dVar30 - *(double *)(PTR_DAT_000b7720 + -0x2fe0);\n          puVar20 = (undefined8 *)((int)puVar24 + *(int *)(PTR_DAT_000b7720 + -0x2fe4));\n          iVar17 = (uint)(puVar20 < puVar24) +\n                   ((int)puVar24 >> 0x1f) + *(int *)(PTR_DAT_000b7720 + -0x2fe8);\n          *(int *)(PTR_DAT_000b7720 + -0x2fe8) = iVar17;\n          *(undefined8 **)(puVar21 + -0x2fe4) = puVar20;\n          dVar31 = (double)(*(code *)PTR_FUN_000b78f4)(iVar17,puVar20);\n          puVar9 = *(undefined8 **)(PTR_opt_000b746c + 0x15c);\n          dVar27 = (double)(*(code *)PTR_FUN_000b78f4)\n                                     (*(undefined4 *)(PTR_opt_000b746c + 0x158),puVar9);\n          dVar25 = (double)CONCAT44(puVar15,puVar18);\n          if (dVar30 < dVar31 / dVar27) {\n            dVar30 = (dVar31 / dVar27 - dVar30) + *(double *)(PTR_DAT_000b7720 + -0x2fd8);\n            if (dVar30 < dVar32) {\n              if (PTR_opt_000b746c[0x16b] != '\0') {\n                uVar11 = number_to_static_string(iVar17,puVar20);\n                local_120 = (double)((ulonglong)uVar11 << 0x20);\n                dVar25 = dVar30 * *(double *)(puVar2 + -0x15d8);\n                debug_logprintf(PTR_DAT_000b758c + -0x1864);\n                puVar9 = puVar20;\n              }\n              goto LAB_0005175c;\n            }\n            if (PTR_opt_000b746c[0x16b] != '\0') {\n              uVar11 = number_to_static_string(iVar17,puVar20);\n              local_120 = (double)((ulonglong)uVar11 << 0x20);\n              dVar25 = dVar30 * dVar28;\n              debug_logprintf(PTR_DAT_000b758c + -0x183c);\n              puVar9 = puVar20;\n            }\n            dVar31 = (double)ptimer_read(local_104);\n            xsleep(dVar30);\n            dVar27 = (double)ptimer_measure(local_104);\n            dVar30 = dVar30 - (dVar27 - dVar31);\n            if (dVar33 < dVar30) {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x2580);\n            }\n            else if (dVar34 <= dVar30) {\n              *(double *)(PTR_DAT_000b7720 + -0x2fd8) = dVar30;\n            }\n            else {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x15d0);\n            }\n          }\n          puVar21 = PTR_DAT_000b7720;\n          *(undefined4 *)(PTR_DAT_000b7720 + -0x2fe4) = 0;\n          *(undefined4 *)(puVar21 + -0x2fe8) = 0;\n          uVar26 = ptimer_read(local_104);\n          *(undefined8 *)(puVar21 + -0x2fe0) = uVar26;\n        }\n      }" else (compound_statement "{\n        ptimer_measure(local_104);\n        puVar24 = (undefined8 *)0x0;\nLAB_00051748:\n        local_120 = dVar31;\n        dVar25 = (double)CONCAT44(puVar15,puVar18);\n        if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n          dVar30 = (double)ptimer_read(local_104);\n          puVar21 = PTR_DAT_000b7720;\n          dVar30 = dVar30 - *(double *)(PTR_DAT_000b7720 + -0x2fe0);\n          puVar20 = (undefined8 *)((int)puVar24 + *(int *)(PTR_DAT_000b7720 + -0x2fe4));\n          iVar17 = (uint)(puVar20 < puVar24) +\n                   ((int)puVar24 >> 0x1f) + *(int *)(PTR_DAT_000b7720 + -0x2fe8);\n          *(int *)(PTR_DAT_000b7720 + -0x2fe8) = iVar17;\n          *(undefined8 **)(puVar21 + -0x2fe4) = puVar20;\n          dVar31 = (double)(*(code *)PTR_FUN_000b78f4)(iVar17,puVar20);\n          puVar9 = *(undefined8 **)(PTR_opt_000b746c + 0x15c);\n          dVar27 = (double)(*(code *)PTR_FUN_000b78f4)\n                                     (*(undefined4 *)(PTR_opt_000b746c + 0x158),puVar9);\n          dVar25 = (double)CONCAT44(puVar15,puVar18);\n          if (dVar30 < dVar31 / dVar27) {\n            dVar30 = (dVar31 / dVar27 - dVar30) + *(double *)(PTR_DAT_000b7720 + -0x2fd8);\n            if (dVar30 < dVar32) {\n              if (PTR_opt_000b746c[0x16b] != '\0') {\n                uVar11 = number_to_static_string(iVar17,puVar20);\n                local_120 = (double)((ulonglong)uVar11 << 0x20);\n                dVar25 = dVar30 * *(double *)(puVar2 + -0x15d8);\n                debug_logprintf(PTR_DAT_000b758c + -0x1864);\n                puVar9 = puVar20;\n              }\n              goto LAB_0005175c;\n            }\n            if (PTR_opt_000b746c[0x16b] != '\0') {\n              uVar11 = number_to_static_string(iVar17,puVar20);\n              local_120 = (double)((ulonglong)uVar11 << 0x20);\n              dVar25 = dVar30 * dVar28;\n              debug_logprintf(PTR_DAT_000b758c + -0x183c);\n              puVar9 = puVar20;\n            }\n            dVar31 = (double)ptimer_read(local_104);\n            xsleep(dVar30);\n            dVar27 = (double)ptimer_measure(local_104);\n            dVar30 = dVar30 - (dVar27 - dVar31);\n            if (dVar33 < dVar30) {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x2580);\n            }\n            else if (dVar34 <= dVar30) {\n              *(double *)(PTR_DAT_000b7720 + -0x2fd8) = dVar30;\n            }\n            else {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x15d0);\n            }\n          }\n          puVar21 = PTR_DAT_000b7720;\n          *(undefined4 *)(PTR_DAT_000b7720 + -0x2fe4) = 0;\n          *(undefined4 *)(puVar21 + -0x2fe8) = 0;\n          uVar26 = ptimer_read(local_104);\n          *(undefined8 *)(puVar21 + -0x2fe0) = uVar26;\n        }\n      }" { (expression_statement "ptimer_measure(local_104);" (call_expression "ptimer_measure(local_104)" identifier (argument_list "(local_104)" ( identifier ))) ;) (expression_statement "puVar24 = (undefined8 *)0x0;" (assignment_expression "puVar24 = (undefined8 *)0x0" identifier = (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_00051748:\n        local_120 = dVar31;" statement_identifier : (expression_statement "local_120 = dVar31;" (assignment_expression "local_120 = dVar31" identifier = identifier) ;)) (expression_statement "dVar25 = (double)CONCAT44(puVar15,puVar18);" (assignment_expression "dVar25 = (double)CONCAT44(puVar15,puVar18)" identifier = (cast_expression "(double)CONCAT44(puVar15,puVar18)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(puVar15,puVar18)" identifier (argument_list "(puVar15,puVar18)" ( identifier , identifier ))))) ;) (if_statement "if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n          dVar30 = (double)ptimer_read(local_104);\n          puVar21 = PTR_DAT_000b7720;\n          dVar30 = dVar30 - *(double *)(PTR_DAT_000b7720 + -0x2fe0);\n          puVar20 = (undefined8 *)((int)puVar24 + *(int *)(PTR_DAT_000b7720 + -0x2fe4));\n          iVar17 = (uint)(puVar20 < puVar24) +\n                   ((int)puVar24 >> 0x1f) + *(int *)(PTR_DAT_000b7720 + -0x2fe8);\n          *(int *)(PTR_DAT_000b7720 + -0x2fe8) = iVar17;\n          *(undefined8 **)(puVar21 + -0x2fe4) = puVar20;\n          dVar31 = (double)(*(code *)PTR_FUN_000b78f4)(iVar17,puVar20);\n          puVar9 = *(undefined8 **)(PTR_opt_000b746c + 0x15c);\n          dVar27 = (double)(*(code *)PTR_FUN_000b78f4)\n                                     (*(undefined4 *)(PTR_opt_000b746c + 0x158),puVar9);\n          dVar25 = (double)CONCAT44(puVar15,puVar18);\n          if (dVar30 < dVar31 / dVar27) {\n            dVar30 = (dVar31 / dVar27 - dVar30) + *(double *)(PTR_DAT_000b7720 + -0x2fd8);\n            if (dVar30 < dVar32) {\n              if (PTR_opt_000b746c[0x16b] != '\0') {\n                uVar11 = number_to_static_string(iVar17,puVar20);\n                local_120 = (double)((ulonglong)uVar11 << 0x20);\n                dVar25 = dVar30 * *(double *)(puVar2 + -0x15d8);\n                debug_logprintf(PTR_DAT_000b758c + -0x1864);\n                puVar9 = puVar20;\n              }\n              goto LAB_0005175c;\n            }\n            if (PTR_opt_000b746c[0x16b] != '\0') {\n              uVar11 = number_to_static_string(iVar17,puVar20);\n              local_120 = (double)((ulonglong)uVar11 << 0x20);\n              dVar25 = dVar30 * dVar28;\n              debug_logprintf(PTR_DAT_000b758c + -0x183c);\n              puVar9 = puVar20;\n            }\n            dVar31 = (double)ptimer_read(local_104);\n            xsleep(dVar30);\n            dVar27 = (double)ptimer_measure(local_104);\n            dVar30 = dVar30 - (dVar27 - dVar31);\n            if (dVar33 < dVar30) {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x2580);\n            }\n            else if (dVar34 <= dVar30) {\n              *(double *)(PTR_DAT_000b7720 + -0x2fd8) = dVar30;\n            }\n            else {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x15d0);\n            }\n          }\n          puVar21 = PTR_DAT_000b7720;\n          *(undefined4 *)(PTR_DAT_000b7720 + -0x2fe4) = 0;\n          *(undefined4 *)(puVar21 + -0x2fe8) = 0;\n          uVar26 = ptimer_read(local_104);\n          *(undefined8 *)(puVar21 + -0x2fe0) = uVar26;\n        }" if (parenthesized_expression "(*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0)" ( (binary_expression "*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0" (binary_expression "*(int *)(PTR_opt_000b746c + 0x158) != 0" (pointer_expression "*(int *)(PTR_opt_000b746c + 0x158)" * (cast_expression "(int *)(PTR_opt_000b746c + 0x158)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_opt_000b746c + 0x158)" ( (binary_expression "PTR_opt_000b746c + 0x158" identifier + number_literal) )))) != number_literal) || (binary_expression "*(int *)(PTR_opt_000b746c + 0x15c) != 0" (pointer_expression "*(int *)(PTR_opt_000b746c + 0x15c)" * (cast_expression "(int *)(PTR_opt_000b746c + 0x15c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_opt_000b746c + 0x15c)" ( (binary_expression "PTR_opt_000b746c + 0x15c" identifier + number_literal) )))) != number_literal)) )) (compound_statement "{\n          dVar30 = (double)ptimer_read(local_104);\n          puVar21 = PTR_DAT_000b7720;\n          dVar30 = dVar30 - *(double *)(PTR_DAT_000b7720 + -0x2fe0);\n          puVar20 = (undefined8 *)((int)puVar24 + *(int *)(PTR_DAT_000b7720 + -0x2fe4));\n          iVar17 = (uint)(puVar20 < puVar24) +\n                   ((int)puVar24 >> 0x1f) + *(int *)(PTR_DAT_000b7720 + -0x2fe8);\n          *(int *)(PTR_DAT_000b7720 + -0x2fe8) = iVar17;\n          *(undefined8 **)(puVar21 + -0x2fe4) = puVar20;\n          dVar31 = (double)(*(code *)PTR_FUN_000b78f4)(iVar17,puVar20);\n          puVar9 = *(undefined8 **)(PTR_opt_000b746c + 0x15c);\n          dVar27 = (double)(*(code *)PTR_FUN_000b78f4)\n                                     (*(undefined4 *)(PTR_opt_000b746c + 0x158),puVar9);\n          dVar25 = (double)CONCAT44(puVar15,puVar18);\n          if (dVar30 < dVar31 / dVar27) {\n            dVar30 = (dVar31 / dVar27 - dVar30) + *(double *)(PTR_DAT_000b7720 + -0x2fd8);\n            if (dVar30 < dVar32) {\n              if (PTR_opt_000b746c[0x16b] != '\0') {\n                uVar11 = number_to_static_string(iVar17,puVar20);\n                local_120 = (double)((ulonglong)uVar11 << 0x20);\n                dVar25 = dVar30 * *(double *)(puVar2 + -0x15d8);\n                debug_logprintf(PTR_DAT_000b758c + -0x1864);\n                puVar9 = puVar20;\n              }\n              goto LAB_0005175c;\n            }\n            if (PTR_opt_000b746c[0x16b] != '\0') {\n              uVar11 = number_to_static_string(iVar17,puVar20);\n              local_120 = (double)((ulonglong)uVar11 << 0x20);\n              dVar25 = dVar30 * dVar28;\n              debug_logprintf(PTR_DAT_000b758c + -0x183c);\n              puVar9 = puVar20;\n            }\n            dVar31 = (double)ptimer_read(local_104);\n            xsleep(dVar30);\n            dVar27 = (double)ptimer_measure(local_104);\n            dVar30 = dVar30 - (dVar27 - dVar31);\n            if (dVar33 < dVar30) {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x2580);\n            }\n            else if (dVar34 <= dVar30) {\n              *(double *)(PTR_DAT_000b7720 + -0x2fd8) = dVar30;\n            }\n            else {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x15d0);\n            }\n          }\n          puVar21 = PTR_DAT_000b7720;\n          *(undefined4 *)(PTR_DAT_000b7720 + -0x2fe4) = 0;\n          *(undefined4 *)(puVar21 + -0x2fe8) = 0;\n          uVar26 = ptimer_read(local_104);\n          *(undefined8 *)(puVar21 + -0x2fe0) = uVar26;\n        }" { (expression_statement "dVar30 = (double)ptimer_read(local_104);" (assignment_expression "dVar30 = (double)ptimer_read(local_104)" identifier = (cast_expression "(double)ptimer_read(local_104)" ( (type_descriptor "double" primitive_type) ) (call_expression "ptimer_read(local_104)" identifier (argument_list "(local_104)" ( identifier ))))) ;) (expression_statement "puVar21 = PTR_DAT_000b7720;" (assignment_expression "puVar21 = PTR_DAT_000b7720" identifier = identifier) ;) (expression_statement "dVar30 = dVar30 - *(double *)(PTR_DAT_000b7720 + -0x2fe0);" (assignment_expression "dVar30 = dVar30 - *(double *)(PTR_DAT_000b7720 + -0x2fe0)" identifier = (binary_expression "dVar30 - *(double *)(PTR_DAT_000b7720 + -0x2fe0)" identifier - (pointer_expression "*(double *)(PTR_DAT_000b7720 + -0x2fe0)" * (cast_expression "(double *)(PTR_DAT_000b7720 + -0x2fe0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000b7720 + -0x2fe0)" ( (binary_expression "PTR_DAT_000b7720 + -0x2fe0" identifier + number_literal) )))))) ;) (expression_statement "puVar20 = (undefined8 *)((int)puVar24 + *(int *)(PTR_DAT_000b7720 + -0x2fe4));" (assignment_expression "puVar20 = (undefined8 *)((int)puVar24 + *(int *)(PTR_DAT_000b7720 + -0x2fe4))" identifier = (cast_expression "(undefined8 *)((int)puVar24 + *(int *)(PTR_DAT_000b7720 + -0x2fe4))" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar24 + *(int *)(PTR_DAT_000b7720 + -0x2fe4))" ( (binary_expression "(int)puVar24 + *(int *)(PTR_DAT_000b7720 + -0x2fe4)" (cast_expression "(int)puVar24" ( (type_descriptor "int" primitive_type) ) identifier) + (pointer_expression "*(int *)(PTR_DAT_000b7720 + -0x2fe4)" * (cast_expression "(int *)(PTR_DAT_000b7720 + -0x2fe4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000b7720 + -0x2fe4)" ( (binary_expression "PTR_DAT_000b7720 + -0x2fe4" identifier + number_literal) ))))) )))) ;) (expression_statement "iVar17 = (uint)(puVar20 < puVar24) +\n                   ((int)puVar24 >> 0x1f) + *(int *)(PTR_DAT_000b7720 + -0x2fe8);" (assignment_expression "iVar17 = (uint)(puVar20 < puVar24) +\n                   ((int)puVar24 >> 0x1f) + *(int *)(PTR_DAT_000b7720 + -0x2fe8)" identifier = (binary_expression "(uint)(puVar20 < puVar24) +\n                   ((int)puVar24 >> 0x1f) + *(int *)(PTR_DAT_000b7720 + -0x2fe8)" (binary_expression "(uint)(puVar20 < puVar24) +\n                   ((int)puVar24 >> 0x1f)" (call_expression "(uint)(puVar20 < puVar24)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar20 < puVar24)" ( (binary_expression "puVar20 < puVar24" identifier < identifier) ))) + (parenthesized_expression "((int)puVar24 >> 0x1f)" ( (binary_expression "(int)puVar24 >> 0x1f" (cast_expression "(int)puVar24" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ))) + (pointer_expression "*(int *)(PTR_DAT_000b7720 + -0x2fe8)" * (cast_expression "(int *)(PTR_DAT_000b7720 + -0x2fe8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000b7720 + -0x2fe8)" ( (binary_expression "PTR_DAT_000b7720 + -0x2fe8" identifier + number_literal) )))))) ;) (expression_statement "*(int *)(PTR_DAT_000b7720 + -0x2fe8) = iVar17;" (assignment_expression "*(int *)(PTR_DAT_000b7720 + -0x2fe8) = iVar17" (pointer_expression "*(int *)(PTR_DAT_000b7720 + -0x2fe8)" * (cast_expression "(int *)(PTR_DAT_000b7720 + -0x2fe8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000b7720 + -0x2fe8)" ( (binary_expression "PTR_DAT_000b7720 + -0x2fe8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined8 **)(puVar21 + -0x2fe4) = puVar20;" (assignment_expression "*(undefined8 **)(puVar21 + -0x2fe4) = puVar20" (pointer_expression "*(undefined8 **)(puVar21 + -0x2fe4)" * (cast_expression "(undefined8 **)(puVar21 + -0x2fe4)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x2fe4)" ( (binary_expression "puVar21 + -0x2fe4" identifier + number_literal) )))) = identifier) ;) (expression_statement "dVar31 = (double)(*(code *)PTR_FUN_000b78f4)(iVar17,puVar20);" (assignment_expression "dVar31 = (double)(*(code *)PTR_FUN_000b78f4)(iVar17,puVar20)" identifier = (cast_expression "(double)(*(code *)PTR_FUN_000b78f4)(iVar17,puVar20)" ( (type_descriptor "double" primitive_type) ) (call_expression "(*(code *)PTR_FUN_000b78f4)(iVar17,puVar20)" (parenthesized_expression "(*(code *)PTR_FUN_000b78f4)" ( (pointer_expression "*(code *)PTR_FUN_000b78f4" * (cast_expression "(code *)PTR_FUN_000b78f4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar17,puVar20)" ( identifier , identifier ))))) ;) (expression_statement "puVar9 = *(undefined8 **)(PTR_opt_000b746c + 0x15c);" (assignment_expression "puVar9 = *(undefined8 **)(PTR_opt_000b746c + 0x15c)" identifier = (pointer_expression "*(undefined8 **)(PTR_opt_000b746c + 0x15c)" * (cast_expression "(undefined8 **)(PTR_opt_000b746c + 0x15c)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_opt_000b746c + 0x15c)" ( (binary_expression "PTR_opt_000b746c + 0x15c" identifier + number_literal) ))))) ;) (expression_statement "dVar27 = (double)(*(code *)PTR_FUN_000b78f4)\n                                     (*(undefined4 *)(PTR_opt_000b746c + 0x158),puVar9);" (assignment_expression "dVar27 = (double)(*(code *)PTR_FUN_000b78f4)\n                                     (*(undefined4 *)(PTR_opt_000b746c + 0x158),puVar9)" identifier = (cast_expression "(double)(*(code *)PTR_FUN_000b78f4)\n                                     (*(undefined4 *)(PTR_opt_000b746c + 0x158),puVar9)" ( (type_descriptor "double" primitive_type) ) (call_expression "(*(code *)PTR_FUN_000b78f4)\n                                     (*(undefined4 *)(PTR_opt_000b746c + 0x158),puVar9)" (parenthesized_expression "(*(code *)PTR_FUN_000b78f4)" ( (pointer_expression "*(code *)PTR_FUN_000b78f4" * (cast_expression "(code *)PTR_FUN_000b78f4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(PTR_opt_000b746c + 0x158),puVar9)" ( (pointer_expression "*(undefined4 *)(PTR_opt_000b746c + 0x158)" * (cast_expression "(undefined4 *)(PTR_opt_000b746c + 0x158)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_opt_000b746c + 0x158)" ( (binary_expression "PTR_opt_000b746c + 0x158" identifier + number_literal) )))) , identifier ))))) ;) (expression_statement "dVar25 = (double)CONCAT44(puVar15,puVar18);" (assignment_expression "dVar25 = (double)CONCAT44(puVar15,puVar18)" identifier = (cast_expression "(double)CONCAT44(puVar15,puVar18)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(puVar15,puVar18)" identifier (argument_list "(puVar15,puVar18)" ( identifier , identifier ))))) ;) (if_statement "if (dVar30 < dVar31 / dVar27) {\n            dVar30 = (dVar31 / dVar27 - dVar30) + *(double *)(PTR_DAT_000b7720 + -0x2fd8);\n            if (dVar30 < dVar32) {\n              if (PTR_opt_000b746c[0x16b] != '\0') {\n                uVar11 = number_to_static_string(iVar17,puVar20);\n                local_120 = (double)((ulonglong)uVar11 << 0x20);\n                dVar25 = dVar30 * *(double *)(puVar2 + -0x15d8);\n                debug_logprintf(PTR_DAT_000b758c + -0x1864);\n                puVar9 = puVar20;\n              }\n              goto LAB_0005175c;\n            }\n            if (PTR_opt_000b746c[0x16b] != '\0') {\n              uVar11 = number_to_static_string(iVar17,puVar20);\n              local_120 = (double)((ulonglong)uVar11 << 0x20);\n              dVar25 = dVar30 * dVar28;\n              debug_logprintf(PTR_DAT_000b758c + -0x183c);\n              puVar9 = puVar20;\n            }\n            dVar31 = (double)ptimer_read(local_104);\n            xsleep(dVar30);\n            dVar27 = (double)ptimer_measure(local_104);\n            dVar30 = dVar30 - (dVar27 - dVar31);\n            if (dVar33 < dVar30) {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x2580);\n            }\n            else if (dVar34 <= dVar30) {\n              *(double *)(PTR_DAT_000b7720 + -0x2fd8) = dVar30;\n            }\n            else {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x15d0);\n            }\n          }" if (parenthesized_expression "(dVar30 < dVar31 / dVar27)" ( (binary_expression "dVar30 < dVar31 / dVar27" identifier < (binary_expression "dVar31 / dVar27" identifier / identifier)) )) (compound_statement "{\n            dVar30 = (dVar31 / dVar27 - dVar30) + *(double *)(PTR_DAT_000b7720 + -0x2fd8);\n            if (dVar30 < dVar32) {\n              if (PTR_opt_000b746c[0x16b] != '\0') {\n                uVar11 = number_to_static_string(iVar17,puVar20);\n                local_120 = (double)((ulonglong)uVar11 << 0x20);\n                dVar25 = dVar30 * *(double *)(puVar2 + -0x15d8);\n                debug_logprintf(PTR_DAT_000b758c + -0x1864);\n                puVar9 = puVar20;\n              }\n              goto LAB_0005175c;\n            }\n            if (PTR_opt_000b746c[0x16b] != '\0') {\n              uVar11 = number_to_static_string(iVar17,puVar20);\n              local_120 = (double)((ulonglong)uVar11 << 0x20);\n              dVar25 = dVar30 * dVar28;\n              debug_logprintf(PTR_DAT_000b758c + -0x183c);\n              puVar9 = puVar20;\n            }\n            dVar31 = (double)ptimer_read(local_104);\n            xsleep(dVar30);\n            dVar27 = (double)ptimer_measure(local_104);\n            dVar30 = dVar30 - (dVar27 - dVar31);\n            if (dVar33 < dVar30) {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x2580);\n            }\n            else if (dVar34 <= dVar30) {\n              *(double *)(PTR_DAT_000b7720 + -0x2fd8) = dVar30;\n            }\n            else {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x15d0);\n            }\n          }" { (expression_statement "dVar30 = (dVar31 / dVar27 - dVar30) + *(double *)(PTR_DAT_000b7720 + -0x2fd8);" (assignment_expression "dVar30 = (dVar31 / dVar27 - dVar30) + *(double *)(PTR_DAT_000b7720 + -0x2fd8)" identifier = (binary_expression "(dVar31 / dVar27 - dVar30) + *(double *)(PTR_DAT_000b7720 + -0x2fd8)" (parenthesized_expression "(dVar31 / dVar27 - dVar30)" ( (binary_expression "dVar31 / dVar27 - dVar30" (binary_expression "dVar31 / dVar27" identifier / identifier) - identifier) )) + (pointer_expression "*(double *)(PTR_DAT_000b7720 + -0x2fd8)" * (cast_expression "(double *)(PTR_DAT_000b7720 + -0x2fd8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000b7720 + -0x2fd8)" ( (binary_expression "PTR_DAT_000b7720 + -0x2fd8" identifier + number_literal) )))))) ;) (if_statement "if (dVar30 < dVar32) {\n              if (PTR_opt_000b746c[0x16b] != '\0') {\n                uVar11 = number_to_static_string(iVar17,puVar20);\n                local_120 = (double)((ulonglong)uVar11 << 0x20);\n                dVar25 = dVar30 * *(double *)(puVar2 + -0x15d8);\n                debug_logprintf(PTR_DAT_000b758c + -0x1864);\n                puVar9 = puVar20;\n              }\n              goto LAB_0005175c;\n            }" if (parenthesized_expression "(dVar30 < dVar32)" ( (binary_expression "dVar30 < dVar32" identifier < identifier) )) (compound_statement "{\n              if (PTR_opt_000b746c[0x16b] != '\0') {\n                uVar11 = number_to_static_string(iVar17,puVar20);\n                local_120 = (double)((ulonglong)uVar11 << 0x20);\n                dVar25 = dVar30 * *(double *)(puVar2 + -0x15d8);\n                debug_logprintf(PTR_DAT_000b758c + -0x1864);\n                puVar9 = puVar20;\n              }\n              goto LAB_0005175c;\n            }" { (if_statement "if (PTR_opt_000b746c[0x16b] != '\0') {\n                uVar11 = number_to_static_string(iVar17,puVar20);\n                local_120 = (double)((ulonglong)uVar11 << 0x20);\n                dVar25 = dVar30 * *(double *)(puVar2 + -0x15d8);\n                debug_logprintf(PTR_DAT_000b758c + -0x1864);\n                puVar9 = puVar20;\n              }" if (parenthesized_expression "(PTR_opt_000b746c[0x16b] != '\0')" ( (binary_expression "PTR_opt_000b746c[0x16b] != '\0'" (subscript_expression "PTR_opt_000b746c[0x16b]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                uVar11 = number_to_static_string(iVar17,puVar20);\n                local_120 = (double)((ulonglong)uVar11 << 0x20);\n                dVar25 = dVar30 * *(double *)(puVar2 + -0x15d8);\n                debug_logprintf(PTR_DAT_000b758c + -0x1864);\n                puVar9 = puVar20;\n              }" { (expression_statement "uVar11 = number_to_static_string(iVar17,puVar20);" (assignment_expression "uVar11 = number_to_static_string(iVar17,puVar20)" identifier = (call_expression "number_to_static_string(iVar17,puVar20)" identifier (argument_list "(iVar17,puVar20)" ( identifier , identifier )))) ;) (expression_statement "local_120 = (double)((ulonglong)uVar11 << 0x20);" (assignment_expression "local_120 = (double)((ulonglong)uVar11 << 0x20)" identifier = (cast_expression "(double)((ulonglong)uVar11 << 0x20)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "((ulonglong)uVar11 << 0x20)" ( (binary_expression "(ulonglong)uVar11 << 0x20" (cast_expression "(ulonglong)uVar11" ( (type_descriptor "ulonglong" type_identifier) ) identifier) << number_literal) )))) ;) (expression_statement "dVar25 = dVar30 * *(double *)(puVar2 + -0x15d8);" (assignment_expression "dVar25 = dVar30 * *(double *)(puVar2 + -0x15d8)" identifier = (binary_expression "dVar30 * *(double *)(puVar2 + -0x15d8)" identifier * (pointer_expression "*(double *)(puVar2 + -0x15d8)" * (cast_expression "(double *)(puVar2 + -0x15d8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + -0x15d8)" ( (binary_expression "puVar2 + -0x15d8" identifier + number_literal) )))))) ;) (expression_statement "debug_logprintf(PTR_DAT_000b758c + -0x1864);" (call_expression "debug_logprintf(PTR_DAT_000b758c + -0x1864)" identifier (argument_list "(PTR_DAT_000b758c + -0x1864)" ( (binary_expression "PTR_DAT_000b758c + -0x1864" identifier + number_literal) ))) ;) (expression_statement "puVar9 = puVar20;" (assignment_expression "puVar9 = puVar20" identifier = identifier) ;) })) (goto_statement "goto LAB_0005175c;" goto statement_identifier ;) })) (if_statement "if (PTR_opt_000b746c[0x16b] != '\0') {\n              uVar11 = number_to_static_string(iVar17,puVar20);\n              local_120 = (double)((ulonglong)uVar11 << 0x20);\n              dVar25 = dVar30 * dVar28;\n              debug_logprintf(PTR_DAT_000b758c + -0x183c);\n              puVar9 = puVar20;\n            }" if (parenthesized_expression "(PTR_opt_000b746c[0x16b] != '\0')" ( (binary_expression "PTR_opt_000b746c[0x16b] != '\0'" (subscript_expression "PTR_opt_000b746c[0x16b]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              uVar11 = number_to_static_string(iVar17,puVar20);\n              local_120 = (double)((ulonglong)uVar11 << 0x20);\n              dVar25 = dVar30 * dVar28;\n              debug_logprintf(PTR_DAT_000b758c + -0x183c);\n              puVar9 = puVar20;\n            }" { (expression_statement "uVar11 = number_to_static_string(iVar17,puVar20);" (assignment_expression "uVar11 = number_to_static_string(iVar17,puVar20)" identifier = (call_expression "number_to_static_string(iVar17,puVar20)" identifier (argument_list "(iVar17,puVar20)" ( identifier , identifier )))) ;) (expression_statement "local_120 = (double)((ulonglong)uVar11 << 0x20);" (assignment_expression "local_120 = (double)((ulonglong)uVar11 << 0x20)" identifier = (cast_expression "(double)((ulonglong)uVar11 << 0x20)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "((ulonglong)uVar11 << 0x20)" ( (binary_expression "(ulonglong)uVar11 << 0x20" (cast_expression "(ulonglong)uVar11" ( (type_descriptor "ulonglong" type_identifier) ) identifier) << number_literal) )))) ;) (expression_statement "dVar25 = dVar30 * dVar28;" (assignment_expression "dVar25 = dVar30 * dVar28" identifier = (binary_expression "dVar30 * dVar28" identifier * identifier)) ;) (expression_statement "debug_logprintf(PTR_DAT_000b758c + -0x183c);" (call_expression "debug_logprintf(PTR_DAT_000b758c + -0x183c)" identifier (argument_list "(PTR_DAT_000b758c + -0x183c)" ( (binary_expression "PTR_DAT_000b758c + -0x183c" identifier + number_literal) ))) ;) (expression_statement "puVar9 = puVar20;" (assignment_expression "puVar9 = puVar20" identifier = identifier) ;) })) (expression_statement "dVar31 = (double)ptimer_read(local_104);" (assignment_expression "dVar31 = (double)ptimer_read(local_104)" identifier = (cast_expression "(double)ptimer_read(local_104)" ( (type_descriptor "double" primitive_type) ) (call_expression "ptimer_read(local_104)" identifier (argument_list "(local_104)" ( identifier ))))) ;) (expression_statement "xsleep(dVar30);" (call_expression "xsleep(dVar30)" identifier (argument_list "(dVar30)" ( identifier ))) ;) (expression_statement "dVar27 = (double)ptimer_measure(local_104);" (assignment_expression "dVar27 = (double)ptimer_measure(local_104)" identifier = (cast_expression "(double)ptimer_measure(local_104)" ( (type_descriptor "double" primitive_type) ) (call_expression "ptimer_measure(local_104)" identifier (argument_list "(local_104)" ( identifier ))))) ;) (expression_statement "dVar30 = dVar30 - (dVar27 - dVar31);" (assignment_expression "dVar30 = dVar30 - (dVar27 - dVar31)" identifier = (binary_expression "dVar30 - (dVar27 - dVar31)" identifier - (parenthesized_expression "(dVar27 - dVar31)" ( (binary_expression "dVar27 - dVar31" identifier - identifier) )))) ;) (if_statement "if (dVar33 < dVar30) {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x2580);\n            }\n            else if (dVar34 <= dVar30) {\n              *(double *)(PTR_DAT_000b7720 + -0x2fd8) = dVar30;\n            }\n            else {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x15d0);\n            }" if (parenthesized_expression "(dVar33 < dVar30)" ( (binary_expression "dVar33 < dVar30" identifier < identifier) )) (compound_statement "{\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x2580);\n            }" { (expression_statement "*(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x2580);" (assignment_expression "*(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x2580)" (pointer_expression "*(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8)" * (cast_expression "(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000b7720 + -0x2fd8)" ( (binary_expression "PTR_DAT_000b7720 + -0x2fd8" identifier + number_literal) )))) = (pointer_expression "*(undefined8 *)(puVar2 + -0x2580)" * (cast_expression "(undefined8 *)(puVar2 + -0x2580)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + -0x2580)" ( (binary_expression "puVar2 + -0x2580" identifier + number_literal) ))))) ;) }) (else_clause "else if (dVar34 <= dVar30) {\n              *(double *)(PTR_DAT_000b7720 + -0x2fd8) = dVar30;\n            }\n            else {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x15d0);\n            }" else (if_statement "if (dVar34 <= dVar30) {\n              *(double *)(PTR_DAT_000b7720 + -0x2fd8) = dVar30;\n            }\n            else {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x15d0);\n            }" if (parenthesized_expression "(dVar34 <= dVar30)" ( (binary_expression "dVar34 <= dVar30" identifier <= identifier) )) (compound_statement "{\n              *(double *)(PTR_DAT_000b7720 + -0x2fd8) = dVar30;\n            }" { (expression_statement "*(double *)(PTR_DAT_000b7720 + -0x2fd8) = dVar30;" (assignment_expression "*(double *)(PTR_DAT_000b7720 + -0x2fd8) = dVar30" (pointer_expression "*(double *)(PTR_DAT_000b7720 + -0x2fd8)" * (cast_expression "(double *)(PTR_DAT_000b7720 + -0x2fd8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000b7720 + -0x2fd8)" ( (binary_expression "PTR_DAT_000b7720 + -0x2fd8" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x15d0);\n            }" else (compound_statement "{\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x15d0);\n            }" { (expression_statement "*(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x15d0);" (assignment_expression "*(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x15d0)" (pointer_expression "*(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8)" * (cast_expression "(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000b7720 + -0x2fd8)" ( (binary_expression "PTR_DAT_000b7720 + -0x2fd8" identifier + number_literal) )))) = (pointer_expression "*(undefined8 *)(puVar2 + -0x15d0)" * (cast_expression "(undefined8 *)(puVar2 + -0x15d0)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + -0x15d0)" ( (binary_expression "puVar2 + -0x15d0" identifier + number_literal) ))))) ;) }))))) })) (expression_statement "puVar21 = PTR_DAT_000b7720;" (assignment_expression "puVar21 = PTR_DAT_000b7720" identifier = identifier) ;) (expression_statement "*(undefined4 *)(PTR_DAT_000b7720 + -0x2fe4) = 0;" (assignment_expression "*(undefined4 *)(PTR_DAT_000b7720 + -0x2fe4) = 0" (pointer_expression "*(undefined4 *)(PTR_DAT_000b7720 + -0x2fe4)" * (cast_expression "(undefined4 *)(PTR_DAT_000b7720 + -0x2fe4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000b7720 + -0x2fe4)" ( (binary_expression "PTR_DAT_000b7720 + -0x2fe4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x2fe8) = 0;" (assignment_expression "*(undefined4 *)(puVar21 + -0x2fe8) = 0" (pointer_expression "*(undefined4 *)(puVar21 + -0x2fe8)" * (cast_expression "(undefined4 *)(puVar21 + -0x2fe8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x2fe8)" ( (binary_expression "puVar21 + -0x2fe8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar26 = ptimer_read(local_104);" (assignment_expression "uVar26 = ptimer_read(local_104)" identifier = (call_expression "ptimer_read(local_104)" identifier (argument_list "(local_104)" ( identifier )))) ;) (expression_statement "*(undefined8 *)(puVar21 + -0x2fe0) = uVar26;" (assignment_expression "*(undefined8 *)(puVar21 + -0x2fe0) = uVar26" (pointer_expression "*(undefined8 *)(puVar21 + -0x2fe0)" * (cast_expression "(undefined8 *)(puVar21 + -0x2fe0)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x2fe0)" ( (binary_expression "puVar21 + -0x2fe0" identifier + number_literal) )))) = identifier) ;) })) }))) (labeled_statement "LAB_0005175c:\n      if (iVar7 != 0) {\n        local_120 = (double)ptimer_read(local_104);\n        iVar17 = (int)puVar24 >> 0x1f;\n        puVar20 = puVar24;\n        progress_update(iVar7);\n        dVar25 = (double)CONCAT44(iVar17,puVar20);\n      }" statement_identifier : (if_statement "if (iVar7 != 0) {\n        local_120 = (double)ptimer_read(local_104);\n        iVar17 = (int)puVar24 >> 0x1f;\n        puVar20 = puVar24;\n        progress_update(iVar7);\n        dVar25 = (double)CONCAT44(iVar17,puVar20);\n      }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n        local_120 = (double)ptimer_read(local_104);\n        iVar17 = (int)puVar24 >> 0x1f;\n        puVar20 = puVar24;\n        progress_update(iVar7);\n        dVar25 = (double)CONCAT44(iVar17,puVar20);\n      }" { (expression_statement "local_120 = (double)ptimer_read(local_104);" (assignment_expression "local_120 = (double)ptimer_read(local_104)" identifier = (cast_expression "(double)ptimer_read(local_104)" ( (type_descriptor "double" primitive_type) ) (call_expression "ptimer_read(local_104)" identifier (argument_list "(local_104)" ( identifier ))))) ;) (expression_statement "iVar17 = (int)puVar24 >> 0x1f;" (assignment_expression "iVar17 = (int)puVar24 >> 0x1f" identifier = (binary_expression "(int)puVar24 >> 0x1f" (cast_expression "(int)puVar24" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (expression_statement "puVar20 = puVar24;" (assignment_expression "puVar20 = puVar24" identifier = identifier) ;) (expression_statement "progress_update(iVar7);" (call_expression "progress_update(iVar7)" identifier (argument_list "(iVar7)" ( identifier ))) ;) (expression_statement "dVar25 = (double)CONCAT44(iVar17,puVar20);" (assignment_expression "dVar25 = (double)CONCAT44(iVar17,puVar20)" identifier = (cast_expression "(double)CONCAT44(iVar17,puVar20)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(iVar17,puVar20)" identifier (argument_list "(iVar17,puVar20)" ( identifier , identifier ))))) ;) }))) })) (expression_statement "dVar31 = *(double *)(PTR_opt_000b746c + 0x120);" (assignment_expression "dVar31 = *(double *)(PTR_opt_000b746c + 0x120)" identifier = (pointer_expression "*(double *)(PTR_opt_000b746c + 0x120)" * (cast_expression "(double *)(PTR_opt_000b746c + 0x120)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_opt_000b746c + 0x120)" ( (binary_expression "PTR_opt_000b746c + 0x120" identifier + number_literal) ))))) ;) (if_statement "if (uVar5 == 0) {\nLAB_00051864:\n      puVar15 = puVar20;\n      dVar30 = dVar25;\n      goto LAB_00051868;\n    }" if (parenthesized_expression "(uVar5 == 0)" ( (binary_expression "uVar5 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00051864:\n      puVar15 = puVar20;\n      dVar30 = dVar25;\n      goto LAB_00051868;\n    }" { (labeled_statement "LAB_00051864:\n      puVar15 = puVar20;" statement_identifier : (expression_statement "puVar15 = puVar20;" (assignment_expression "puVar15 = puVar20" identifier = identifier) ;)) (expression_statement "dVar30 = dVar25;" (assignment_expression "dVar30 = dVar25" identifier = identifier) ;) (goto_statement "goto LAB_00051868;" goto statement_identifier ;) })) (labeled_statement "LAB_00051820:\n    if (iVar22 != 0 || local_f0 != (undefined8 *)0x0) {\nLAB_00051830:\n      puVar20 = local_f0;\n      if ((iVar17 <= iVar22) &&\n         ((puVar15 = local_e0, dVar30 = dVar25, iVar17 != iVar22 ||\n          (puVar20 = local_f0, local_e0 <= local_f0)))) goto LAB_00051868;\n      goto LAB_00051864;\n    }" statement_identifier : (if_statement "if (iVar22 != 0 || local_f0 != (undefined8 *)0x0) {\nLAB_00051830:\n      puVar20 = local_f0;\n      if ((iVar17 <= iVar22) &&\n         ((puVar15 = local_e0, dVar30 = dVar25, iVar17 != iVar22 ||\n          (puVar20 = local_f0, local_e0 <= local_f0)))) goto LAB_00051868;\n      goto LAB_00051864;\n    }" if (parenthesized_expression "(iVar22 != 0 || local_f0 != (undefined8 *)0x0)" ( (binary_expression "iVar22 != 0 || local_f0 != (undefined8 *)0x0" (binary_expression "iVar22 != 0" identifier != number_literal) || (binary_expression "local_f0 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\nLAB_00051830:\n      puVar20 = local_f0;\n      if ((iVar17 <= iVar22) &&\n         ((puVar15 = local_e0, dVar30 = dVar25, iVar17 != iVar22 ||\n          (puVar20 = local_f0, local_e0 <= local_f0)))) goto LAB_00051868;\n      goto LAB_00051864;\n    }" { (labeled_statement "LAB_00051830:\n      puVar20 = local_f0;" statement_identifier : (expression_statement "puVar20 = local_f0;" (assignment_expression "puVar20 = local_f0" identifier = identifier) ;)) (if_statement "if ((iVar17 <= iVar22) &&\n         ((puVar15 = local_e0, dVar30 = dVar25, iVar17 != iVar22 ||\n          (puVar20 = local_f0, local_e0 <= local_f0)))) goto LAB_00051868;" if (parenthesized_expression "((iVar17 <= iVar22) &&\n         ((puVar15 = local_e0, dVar30 = dVar25, iVar17 != iVar22 ||\n          (puVar20 = local_f0, local_e0 <= local_f0))))" ( (binary_expression "(iVar17 <= iVar22) &&\n         ((puVar15 = local_e0, dVar30 = dVar25, iVar17 != iVar22 ||\n          (puVar20 = local_f0, local_e0 <= local_f0)))" (parenthesized_expression "(iVar17 <= iVar22)" ( (binary_expression "iVar17 <= iVar22" identifier <= identifier) )) && (parenthesized_expression "((puVar15 = local_e0, dVar30 = dVar25, iVar17 != iVar22 ||\n          (puVar20 = local_f0, local_e0 <= local_f0)))" ( (parenthesized_expression "(puVar15 = local_e0, dVar30 = dVar25, iVar17 != iVar22 ||\n          (puVar20 = local_f0, local_e0 <= local_f0))" ( (comma_expression "puVar15 = local_e0, dVar30 = dVar25, iVar17 != iVar22 ||\n          (puVar20 = local_f0, local_e0 <= local_f0)" (assignment_expression "puVar15 = local_e0" identifier = identifier) , (comma_expression "dVar30 = dVar25, iVar17 != iVar22 ||\n          (puVar20 = local_f0, local_e0 <= local_f0)" (assignment_expression "dVar30 = dVar25" identifier = identifier) , (binary_expression "iVar17 != iVar22 ||\n          (puVar20 = local_f0, local_e0 <= local_f0)" (binary_expression "iVar17 != iVar22" identifier != identifier) || (parenthesized_expression "(puVar20 = local_f0, local_e0 <= local_f0)" ( (comma_expression "puVar20 = local_f0, local_e0 <= local_f0" (assignment_expression "puVar20 = local_f0" identifier = identifier) , (binary_expression "local_e0 <= local_f0" identifier <= identifier)) ))))) )) ))) )) (goto_statement "goto LAB_00051868;" goto statement_identifier ;)) (goto_statement "goto LAB_00051864;" goto statement_identifier ;) }))) (expression_statement "iVar13 = fd_read_line(param_2);" (assignment_expression "iVar13 = fd_read_line(param_2)" identifier = (call_expression "fd_read_line(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "puVar20 = SUB84(dVar25,0);" (assignment_expression "puVar20 = SUB84(dVar25,0)" identifier = (call_expression "SUB84(dVar25,0)" identifier (argument_list "(dVar25,0)" ( identifier , number_literal )))) ;) (if_statement "if (iVar13 == 0) {\nLAB_00050e90:\n      puVar24 = (undefined8 *)0xffffffff;\nLAB_000518d4:\n      bVar1 = (int)puVar24 < 0;\n      dVar30 = dVar25;\nLAB_000518d8:\n      puVar20 = (undefined8 *)0xffffffff;\n      puVar3 = local_120._0_4_;\n      if (!bVar1) {\n        puVar20 = puVar24;\n      }\n    }\n    else {\n      if (param_13 != (undefined8 *)0x0) {\n        uVar8 = (*(code *)PTR_strlen_000b7c94)(iVar13);\n        puVar20 = param_13;\n        (*(code *)PTR_fwrite_000b7c24)(iVar13,1,uVar8);\n      }\n      uVar8 = 0x10;\n      puVar9 = (undefined8 *)auStack_ac;\n      local_f0 = (undefined8 *)(*(code *)PTR_strtol_000b7d3c)(iVar13,puVar9);\n      iVar22 = (int)local_f0 >> 0x1f;\n      (*(code *)PTR_free_000b7d34)(iVar13);\n      dVar25 = (double)CONCAT44(uVar8,puVar20);\n      if (iVar22 < 0) goto LAB_00050e90;\n      if (local_f0 != (undefined8 *)0x0) goto LAB_00051830;\n      iVar22 = fd_read_line(param_2);\n      dVar30 = (double)CONCAT44(uVar8,puVar20);\n      if (iVar22 == 0) {\n        puVar20 = (undefined8 *)0xffffffff;\n      }\n      else {\n        if (param_13 != (undefined8 *)0x0) {\n          uVar8 = (*(code *)PTR_strlen_000b7c94)(iVar22);\n          puVar9 = (undefined8 *)&DAT_00000001;\n          (*(code *)PTR_fwrite_000b7c24)(iVar22,1);\n          puVar20 = param_13;\n        }\n        (*(code *)PTR_free_000b7d34)(iVar22);\n        dVar30 = (double)CONCAT44(uVar8,puVar20);\n        puVar20 = (undefined8 *)0x0;\n      }\n    }" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00050e90:\n      puVar24 = (undefined8 *)0xffffffff;\nLAB_000518d4:\n      bVar1 = (int)puVar24 < 0;\n      dVar30 = dVar25;\nLAB_000518d8:\n      puVar20 = (undefined8 *)0xffffffff;\n      puVar3 = local_120._0_4_;\n      if (!bVar1) {\n        puVar20 = puVar24;\n      }\n    }" { (labeled_statement "LAB_00050e90:\n      puVar24 = (undefined8 *)0xffffffff;" statement_identifier : (expression_statement "puVar24 = (undefined8 *)0xffffffff;" (assignment_expression "puVar24 = (undefined8 *)0xffffffff" identifier = (cast_expression "(undefined8 *)0xffffffff" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (labeled_statement "LAB_000518d4:\n      bVar1 = (int)puVar24 < 0;" statement_identifier : (expression_statement "bVar1 = (int)puVar24 < 0;" (assignment_expression "bVar1 = (int)puVar24 < 0" identifier = (binary_expression "(int)puVar24 < 0" (cast_expression "(int)puVar24" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal)) ;)) (expression_statement "dVar30 = dVar25;" (assignment_expression "dVar30 = dVar25" identifier = identifier) ;) (labeled_statement "LAB_000518d8:\n      puVar20 = (undefined8 *)0xffffffff;" statement_identifier : (expression_statement "puVar20 = (undefined8 *)0xffffffff;" (assignment_expression "puVar20 = (undefined8 *)0xffffffff" identifier = (cast_expression "(undefined8 *)0xffffffff" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "puVar3 = local_120._0_4_;" (assignment_expression "puVar3 = local_120._0_4_" identifier = (field_expression "local_120._0_4_" identifier . field_identifier)) ;) (if_statement "if (!bVar1) {\n        puVar20 = puVar24;\n      }" if (parenthesized_expression "(!bVar1)" ( (unary_expression "!bVar1" ! identifier) )) (compound_statement "{\n        puVar20 = puVar24;\n      }" { (expression_statement "puVar20 = puVar24;" (assignment_expression "puVar20 = puVar24" identifier = identifier) ;) })) }) (else_clause "else {\n      if (param_13 != (undefined8 *)0x0) {\n        uVar8 = (*(code *)PTR_strlen_000b7c94)(iVar13);\n        puVar20 = param_13;\n        (*(code *)PTR_fwrite_000b7c24)(iVar13,1,uVar8);\n      }\n      uVar8 = 0x10;\n      puVar9 = (undefined8 *)auStack_ac;\n      local_f0 = (undefined8 *)(*(code *)PTR_strtol_000b7d3c)(iVar13,puVar9);\n      iVar22 = (int)local_f0 >> 0x1f;\n      (*(code *)PTR_free_000b7d34)(iVar13);\n      dVar25 = (double)CONCAT44(uVar8,puVar20);\n      if (iVar22 < 0) goto LAB_00050e90;\n      if (local_f0 != (undefined8 *)0x0) goto LAB_00051830;\n      iVar22 = fd_read_line(param_2);\n      dVar30 = (double)CONCAT44(uVar8,puVar20);\n      if (iVar22 == 0) {\n        puVar20 = (undefined8 *)0xffffffff;\n      }\n      else {\n        if (param_13 != (undefined8 *)0x0) {\n          uVar8 = (*(code *)PTR_strlen_000b7c94)(iVar22);\n          puVar9 = (undefined8 *)&DAT_00000001;\n          (*(code *)PTR_fwrite_000b7c24)(iVar22,1);\n          puVar20 = param_13;\n        }\n        (*(code *)PTR_free_000b7d34)(iVar22);\n        dVar30 = (double)CONCAT44(uVar8,puVar20);\n        puVar20 = (undefined8 *)0x0;\n      }\n    }" else (compound_statement "{\n      if (param_13 != (undefined8 *)0x0) {\n        uVar8 = (*(code *)PTR_strlen_000b7c94)(iVar13);\n        puVar20 = param_13;\n        (*(code *)PTR_fwrite_000b7c24)(iVar13,1,uVar8);\n      }\n      uVar8 = 0x10;\n      puVar9 = (undefined8 *)auStack_ac;\n      local_f0 = (undefined8 *)(*(code *)PTR_strtol_000b7d3c)(iVar13,puVar9);\n      iVar22 = (int)local_f0 >> 0x1f;\n      (*(code *)PTR_free_000b7d34)(iVar13);\n      dVar25 = (double)CONCAT44(uVar8,puVar20);\n      if (iVar22 < 0) goto LAB_00050e90;\n      if (local_f0 != (undefined8 *)0x0) goto LAB_00051830;\n      iVar22 = fd_read_line(param_2);\n      dVar30 = (double)CONCAT44(uVar8,puVar20);\n      if (iVar22 == 0) {\n        puVar20 = (undefined8 *)0xffffffff;\n      }\n      else {\n        if (param_13 != (undefined8 *)0x0) {\n          uVar8 = (*(code *)PTR_strlen_000b7c94)(iVar22);\n          puVar9 = (undefined8 *)&DAT_00000001;\n          (*(code *)PTR_fwrite_000b7c24)(iVar22,1);\n          puVar20 = param_13;\n        }\n        (*(code *)PTR_free_000b7d34)(iVar22);\n        dVar30 = (double)CONCAT44(uVar8,puVar20);\n        puVar20 = (undefined8 *)0x0;\n      }\n    }" { (if_statement "if (param_13 != (undefined8 *)0x0) {\n        uVar8 = (*(code *)PTR_strlen_000b7c94)(iVar13);\n        puVar20 = param_13;\n        (*(code *)PTR_fwrite_000b7c24)(iVar13,1,uVar8);\n      }" if (parenthesized_expression "(param_13 != (undefined8 *)0x0)" ( (binary_expression "param_13 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar8 = (*(code *)PTR_strlen_000b7c94)(iVar13);\n        puVar20 = param_13;\n        (*(code *)PTR_fwrite_000b7c24)(iVar13,1,uVar8);\n      }" { (expression_statement "uVar8 = (*(code *)PTR_strlen_000b7c94)(iVar13);" (assignment_expression "uVar8 = (*(code *)PTR_strlen_000b7c94)(iVar13)" identifier = (call_expression "(*(code *)PTR_strlen_000b7c94)(iVar13)" (parenthesized_expression "(*(code *)PTR_strlen_000b7c94)" ( (pointer_expression "*(code *)PTR_strlen_000b7c94" * (cast_expression "(code *)PTR_strlen_000b7c94" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar13)" ( identifier )))) ;) (expression_statement "puVar20 = param_13;" (assignment_expression "puVar20 = param_13" identifier = identifier) ;) (expression_statement "(*(code *)PTR_fwrite_000b7c24)(iVar13,1,uVar8);" (call_expression "(*(code *)PTR_fwrite_000b7c24)(iVar13,1,uVar8)" (parenthesized_expression "(*(code *)PTR_fwrite_000b7c24)" ( (pointer_expression "*(code *)PTR_fwrite_000b7c24" * (cast_expression "(code *)PTR_fwrite_000b7c24" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar13,1,uVar8)" ( identifier , number_literal , identifier ))) ;) })) (expression_statement "uVar8 = 0x10;" (assignment_expression "uVar8 = 0x10" identifier = number_literal) ;) (expression_statement "puVar9 = (undefined8 *)auStack_ac;" (assignment_expression "puVar9 = (undefined8 *)auStack_ac" identifier = (cast_expression "(undefined8 *)auStack_ac" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "local_f0 = (undefined8 *)(*(code *)PTR_strtol_000b7d3c)(iVar13,puVar9);" (assignment_expression "local_f0 = (undefined8 *)(*(code *)PTR_strtol_000b7d3c)(iVar13,puVar9)" identifier = (cast_expression "(undefined8 *)(*(code *)PTR_strtol_000b7d3c)(iVar13,puVar9)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_strtol_000b7d3c)(iVar13,puVar9)" (parenthesized_expression "(*(code *)PTR_strtol_000b7d3c)" ( (pointer_expression "*(code *)PTR_strtol_000b7d3c" * (cast_expression "(code *)PTR_strtol_000b7d3c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar13,puVar9)" ( identifier , identifier ))))) ;) (expression_statement "iVar22 = (int)local_f0 >> 0x1f;" (assignment_expression "iVar22 = (int)local_f0 >> 0x1f" identifier = (binary_expression "(int)local_f0 >> 0x1f" (cast_expression "(int)local_f0" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (expression_statement "(*(code *)PTR_free_000b7d34)(iVar13);" (call_expression "(*(code *)PTR_free_000b7d34)(iVar13)" (parenthesized_expression "(*(code *)PTR_free_000b7d34)" ( (pointer_expression "*(code *)PTR_free_000b7d34" * (cast_expression "(code *)PTR_free_000b7d34" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar13)" ( identifier ))) ;) (expression_statement "dVar25 = (double)CONCAT44(uVar8,puVar20);" (assignment_expression "dVar25 = (double)CONCAT44(uVar8,puVar20)" identifier = (cast_expression "(double)CONCAT44(uVar8,puVar20)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(uVar8,puVar20)" identifier (argument_list "(uVar8,puVar20)" ( identifier , identifier ))))) ;) (if_statement "if (iVar22 < 0) goto LAB_00050e90;" if (parenthesized_expression "(iVar22 < 0)" ( (binary_expression "iVar22 < 0" identifier < number_literal) )) (goto_statement "goto LAB_00050e90;" goto statement_identifier ;)) (if_statement "if (local_f0 != (undefined8 *)0x0) goto LAB_00051830;" if (parenthesized_expression "(local_f0 != (undefined8 *)0x0)" ( (binary_expression "local_f0 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00051830;" goto statement_identifier ;)) (expression_statement "iVar22 = fd_read_line(param_2);" (assignment_expression "iVar22 = fd_read_line(param_2)" identifier = (call_expression "fd_read_line(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "dVar30 = (double)CONCAT44(uVar8,puVar20);" (assignment_expression "dVar30 = (double)CONCAT44(uVar8,puVar20)" identifier = (cast_expression "(double)CONCAT44(uVar8,puVar20)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(uVar8,puVar20)" identifier (argument_list "(uVar8,puVar20)" ( identifier , identifier ))))) ;) (if_statement "if (iVar22 == 0) {\n        puVar20 = (undefined8 *)0xffffffff;\n      }\n      else {\n        if (param_13 != (undefined8 *)0x0) {\n          uVar8 = (*(code *)PTR_strlen_000b7c94)(iVar22);\n          puVar9 = (undefined8 *)&DAT_00000001;\n          (*(code *)PTR_fwrite_000b7c24)(iVar22,1);\n          puVar20 = param_13;\n        }\n        (*(code *)PTR_free_000b7d34)(iVar22);\n        dVar30 = (double)CONCAT44(uVar8,puVar20);\n        puVar20 = (undefined8 *)0x0;\n      }" if (parenthesized_expression "(iVar22 == 0)" ( (binary_expression "iVar22 == 0" identifier == number_literal) )) (compound_statement "{\n        puVar20 = (undefined8 *)0xffffffff;\n      }" { (expression_statement "puVar20 = (undefined8 *)0xffffffff;" (assignment_expression "puVar20 = (undefined8 *)0xffffffff" identifier = (cast_expression "(undefined8 *)0xffffffff" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n        if (param_13 != (undefined8 *)0x0) {\n          uVar8 = (*(code *)PTR_strlen_000b7c94)(iVar22);\n          puVar9 = (undefined8 *)&DAT_00000001;\n          (*(code *)PTR_fwrite_000b7c24)(iVar22,1);\n          puVar20 = param_13;\n        }\n        (*(code *)PTR_free_000b7d34)(iVar22);\n        dVar30 = (double)CONCAT44(uVar8,puVar20);\n        puVar20 = (undefined8 *)0x0;\n      }" else (compound_statement "{\n        if (param_13 != (undefined8 *)0x0) {\n          uVar8 = (*(code *)PTR_strlen_000b7c94)(iVar22);\n          puVar9 = (undefined8 *)&DAT_00000001;\n          (*(code *)PTR_fwrite_000b7c24)(iVar22,1);\n          puVar20 = param_13;\n        }\n        (*(code *)PTR_free_000b7d34)(iVar22);\n        dVar30 = (double)CONCAT44(uVar8,puVar20);\n        puVar20 = (undefined8 *)0x0;\n      }" { (if_statement "if (param_13 != (undefined8 *)0x0) {\n          uVar8 = (*(code *)PTR_strlen_000b7c94)(iVar22);\n          puVar9 = (undefined8 *)&DAT_00000001;\n          (*(code *)PTR_fwrite_000b7c24)(iVar22,1);\n          puVar20 = param_13;\n        }" if (parenthesized_expression "(param_13 != (undefined8 *)0x0)" ( (binary_expression "param_13 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          uVar8 = (*(code *)PTR_strlen_000b7c94)(iVar22);\n          puVar9 = (undefined8 *)&DAT_00000001;\n          (*(code *)PTR_fwrite_000b7c24)(iVar22,1);\n          puVar20 = param_13;\n        }" { (expression_statement "uVar8 = (*(code *)PTR_strlen_000b7c94)(iVar22);" (assignment_expression "uVar8 = (*(code *)PTR_strlen_000b7c94)(iVar22)" identifier = (call_expression "(*(code *)PTR_strlen_000b7c94)(iVar22)" (parenthesized_expression "(*(code *)PTR_strlen_000b7c94)" ( (pointer_expression "*(code *)PTR_strlen_000b7c94" * (cast_expression "(code *)PTR_strlen_000b7c94" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar22)" ( identifier )))) ;) (expression_statement "puVar9 = (undefined8 *)&DAT_00000001;" (assignment_expression "puVar9 = (undefined8 *)&DAT_00000001" identifier = (cast_expression "(undefined8 *)&DAT_00000001" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000001" & identifier))) ;) (expression_statement "(*(code *)PTR_fwrite_000b7c24)(iVar22,1);" (call_expression "(*(code *)PTR_fwrite_000b7c24)(iVar22,1)" (parenthesized_expression "(*(code *)PTR_fwrite_000b7c24)" ( (pointer_expression "*(code *)PTR_fwrite_000b7c24" * (cast_expression "(code *)PTR_fwrite_000b7c24" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar22,1)" ( identifier , number_literal ))) ;) (expression_statement "puVar20 = param_13;" (assignment_expression "puVar20 = param_13" identifier = identifier) ;) })) (expression_statement "(*(code *)PTR_free_000b7d34)(iVar22);" (call_expression "(*(code *)PTR_free_000b7d34)(iVar22)" (parenthesized_expression "(*(code *)PTR_free_000b7d34)" ( (pointer_expression "*(code *)PTR_free_000b7d34" * (cast_expression "(code *)PTR_free_000b7d34" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar22)" ( identifier ))) ;) (expression_statement "dVar30 = (double)CONCAT44(uVar8,puVar20);" (assignment_expression "dVar30 = (double)CONCAT44(uVar8,puVar20)" identifier = (cast_expression "(double)CONCAT44(uVar8,puVar20)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(uVar8,puVar20)" identifier (argument_list "(uVar8,puVar20)" ( identifier , identifier ))))) ;) (expression_statement "puVar20 = (undefined8 *)0x0;" (assignment_expression "puVar20 = (undefined8 *)0x0" identifier = (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) }))) (labeled_statement "LAB_00051040:\n    local_120._0_4_ = puVar3;" statement_identifier : (expression_statement "local_120._0_4_ = puVar3;" (assignment_expression "local_120._0_4_ = puVar3" (field_expression "local_120._0_4_" identifier . field_identifier) = identifier) ;)) (if_statement "if (iVar7 != 0) {\n      uVar26 = ptimer_read(local_104);\n      uVar19 = (undefined4)uVar26;\n      uVar8 = (undefined4)((ulonglong)uVar26 >> 0x20);\n      progress_finish(iVar7);\n      dVar30 = (double)CONCAT44(uVar8,uVar19);\n    }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar26 = ptimer_read(local_104);\n      uVar19 = (undefined4)uVar26;\n      uVar8 = (undefined4)((ulonglong)uVar26 >> 0x20);\n      progress_finish(iVar7);\n      dVar30 = (double)CONCAT44(uVar8,uVar19);\n    }" { (expression_statement "uVar26 = ptimer_read(local_104);" (assignment_expression "uVar26 = ptimer_read(local_104)" identifier = (call_expression "ptimer_read(local_104)" identifier (argument_list "(local_104)" ( identifier )))) ;) (expression_statement "uVar19 = (undefined4)uVar26;" (assignment_expression "uVar19 = (undefined4)uVar26" identifier = (cast_expression "(undefined4)uVar26" ( (type_descriptor "undefined4" type_identifier) ) identifier)) ;) (expression_statement "uVar8 = (undefined4)((ulonglong)uVar26 >> 0x20);" (assignment_expression "uVar8 = (undefined4)((ulonglong)uVar26 >> 0x20)" identifier = (call_expression "(undefined4)((ulonglong)uVar26 >> 0x20)" (parenthesized_expression "(undefined4)" ( identifier )) (argument_list "((ulonglong)uVar26 >> 0x20)" ( (binary_expression "(ulonglong)uVar26 >> 0x20" (cast_expression "(ulonglong)uVar26" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "progress_finish(iVar7);" (call_expression "progress_finish(iVar7)" identifier (argument_list "(iVar7)" ( identifier ))) ;) (expression_statement "dVar30 = (double)CONCAT44(uVar8,uVar19);" (assignment_expression "dVar30 = (double)CONCAT44(uVar8,uVar19)" identifier = (cast_expression "(double)CONCAT44(uVar8,uVar19)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(uVar8,uVar19)" identifier (argument_list "(uVar8,uVar19)" ( identifier , identifier ))))) ;) })) (if_statement "if (param_11 != (undefined8 *)0x0) goto LAB_00051080;" if (parenthesized_expression "(param_11 != (undefined8 *)0x0)" ( (binary_expression "param_11 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00051080;" goto statement_identifier ;)) }) (else_clause "else {\n    local_100 = (undefined8 *)(*(code *)PTR_xmalloc_000b7480)(0x8000);\n    if (local_100 == (undefined8 *)0x0) {\n      puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n      *puVar10 = 0xc;\n    }\n    else {\n      local_74 = PTR_LAB_000b78e4 + 0x368;\n      local_70 = PTR_LAB_000b78e4 + 0x330;\n      local_6c = 0;\n      local_94 = (undefined8 *)0x0;\n      local_90 = (undefined8 *)0x0;\n      param_4 = (undefined1 *)0x38;\n      puVar21 = PTR_DAT_000b758c + -0x18a0;\n      puVar9 = (undefined8 *)0x2f;\n      iVar6 = (*(code *)PTR_inflateInit2__000b7d68)(&local_94,0x2f);\n      if (iVar6 == 0) goto LAB_00050b74;\n      (*(code *)PTR_free_000b7d34)(local_100);\n      uVar8 = 0x16;\n      if (iVar6 == -4) {\n        uVar8 = 0xc;\n      }\n      puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n      *puVar10 = uVar8;\n    }\n    dVar30 = (double)CONCAT44(puVar21,param_4);\n    local_100 = param_11;\n    if (param_11 == (undefined8 *)0x0) {\n      iVar6 = 0;\n      local_fc = (undefined8 *)0x0;\n      puVar20 = (undefined8 *)0xffffffff;\n      goto LAB_000510b8;\n    }\n    local_100 = (undefined8 *)0x0;\n    iVar6 = 0;\n    local_fc = (undefined8 *)0x0;\n    local_104 = (undefined8 *)0x0;\n    puVar20 = (undefined8 *)0xffffffff;\nLAB_00051080:\n    uVar26 = ptimer_read(local_104);\n    *param_11 = uVar26;\n  }" else (compound_statement "{\n    local_100 = (undefined8 *)(*(code *)PTR_xmalloc_000b7480)(0x8000);\n    if (local_100 == (undefined8 *)0x0) {\n      puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n      *puVar10 = 0xc;\n    }\n    else {\n      local_74 = PTR_LAB_000b78e4 + 0x368;\n      local_70 = PTR_LAB_000b78e4 + 0x330;\n      local_6c = 0;\n      local_94 = (undefined8 *)0x0;\n      local_90 = (undefined8 *)0x0;\n      param_4 = (undefined1 *)0x38;\n      puVar21 = PTR_DAT_000b758c + -0x18a0;\n      puVar9 = (undefined8 *)0x2f;\n      iVar6 = (*(code *)PTR_inflateInit2__000b7d68)(&local_94,0x2f);\n      if (iVar6 == 0) goto LAB_00050b74;\n      (*(code *)PTR_free_000b7d34)(local_100);\n      uVar8 = 0x16;\n      if (iVar6 == -4) {\n        uVar8 = 0xc;\n      }\n      puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n      *puVar10 = uVar8;\n    }\n    dVar30 = (double)CONCAT44(puVar21,param_4);\n    local_100 = param_11;\n    if (param_11 == (undefined8 *)0x0) {\n      iVar6 = 0;\n      local_fc = (undefined8 *)0x0;\n      puVar20 = (undefined8 *)0xffffffff;\n      goto LAB_000510b8;\n    }\n    local_100 = (undefined8 *)0x0;\n    iVar6 = 0;\n    local_fc = (undefined8 *)0x0;\n    local_104 = (undefined8 *)0x0;\n    puVar20 = (undefined8 *)0xffffffff;\nLAB_00051080:\n    uVar26 = ptimer_read(local_104);\n    *param_11 = uVar26;\n  }" { (expression_statement "local_100 = (undefined8 *)(*(code *)PTR_xmalloc_000b7480)(0x8000);" (assignment_expression "local_100 = (undefined8 *)(*(code *)PTR_xmalloc_000b7480)(0x8000)" identifier = (cast_expression "(undefined8 *)(*(code *)PTR_xmalloc_000b7480)(0x8000)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_xmalloc_000b7480)(0x8000)" (parenthesized_expression "(*(code *)PTR_xmalloc_000b7480)" ( (pointer_expression "*(code *)PTR_xmalloc_000b7480" * (cast_expression "(code *)PTR_xmalloc_000b7480" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x8000)" ( number_literal ))))) ;) (if_statement "if (local_100 == (undefined8 *)0x0) {\n      puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n      *puVar10 = 0xc;\n    }\n    else {\n      local_74 = PTR_LAB_000b78e4 + 0x368;\n      local_70 = PTR_LAB_000b78e4 + 0x330;\n      local_6c = 0;\n      local_94 = (undefined8 *)0x0;\n      local_90 = (undefined8 *)0x0;\n      param_4 = (undefined1 *)0x38;\n      puVar21 = PTR_DAT_000b758c + -0x18a0;\n      puVar9 = (undefined8 *)0x2f;\n      iVar6 = (*(code *)PTR_inflateInit2__000b7d68)(&local_94,0x2f);\n      if (iVar6 == 0) goto LAB_00050b74;\n      (*(code *)PTR_free_000b7d34)(local_100);\n      uVar8 = 0x16;\n      if (iVar6 == -4) {\n        uVar8 = 0xc;\n      }\n      puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n      *puVar10 = uVar8;\n    }" if (parenthesized_expression "(local_100 == (undefined8 *)0x0)" ( (binary_expression "local_100 == (undefined8 *)0x0" identifier == (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n      *puVar10 = 0xc;\n    }" { (expression_statement "puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();" (assignment_expression "puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_000b7eb8)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_000b7eb8)()" (parenthesized_expression "(*(code *)PTR___errno_location_000b7eb8)" ( (pointer_expression "*(code *)PTR___errno_location_000b7eb8" * (cast_expression "(code *)PTR___errno_location_000b7eb8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "*puVar10 = 0xc;" (assignment_expression "*puVar10 = 0xc" (pointer_expression "*puVar10" * identifier) = number_literal) ;) }) (else_clause "else {\n      local_74 = PTR_LAB_000b78e4 + 0x368;\n      local_70 = PTR_LAB_000b78e4 + 0x330;\n      local_6c = 0;\n      local_94 = (undefined8 *)0x0;\n      local_90 = (undefined8 *)0x0;\n      param_4 = (undefined1 *)0x38;\n      puVar21 = PTR_DAT_000b758c + -0x18a0;\n      puVar9 = (undefined8 *)0x2f;\n      iVar6 = (*(code *)PTR_inflateInit2__000b7d68)(&local_94,0x2f);\n      if (iVar6 == 0) goto LAB_00050b74;\n      (*(code *)PTR_free_000b7d34)(local_100);\n      uVar8 = 0x16;\n      if (iVar6 == -4) {\n        uVar8 = 0xc;\n      }\n      puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n      *puVar10 = uVar8;\n    }" else (compound_statement "{\n      local_74 = PTR_LAB_000b78e4 + 0x368;\n      local_70 = PTR_LAB_000b78e4 + 0x330;\n      local_6c = 0;\n      local_94 = (undefined8 *)0x0;\n      local_90 = (undefined8 *)0x0;\n      param_4 = (undefined1 *)0x38;\n      puVar21 = PTR_DAT_000b758c + -0x18a0;\n      puVar9 = (undefined8 *)0x2f;\n      iVar6 = (*(code *)PTR_inflateInit2__000b7d68)(&local_94,0x2f);\n      if (iVar6 == 0) goto LAB_00050b74;\n      (*(code *)PTR_free_000b7d34)(local_100);\n      uVar8 = 0x16;\n      if (iVar6 == -4) {\n        uVar8 = 0xc;\n      }\n      puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n      *puVar10 = uVar8;\n    }" { (expression_statement "local_74 = PTR_LAB_000b78e4 + 0x368;" (assignment_expression "local_74 = PTR_LAB_000b78e4 + 0x368" identifier = (binary_expression "PTR_LAB_000b78e4 + 0x368" identifier + number_literal)) ;) (expression_statement "local_70 = PTR_LAB_000b78e4 + 0x330;" (assignment_expression "local_70 = PTR_LAB_000b78e4 + 0x330" identifier = (binary_expression "PTR_LAB_000b78e4 + 0x330" identifier + number_literal)) ;) (expression_statement "local_6c = 0;" (assignment_expression "local_6c = 0" identifier = number_literal) ;) (expression_statement "local_94 = (undefined8 *)0x0;" (assignment_expression "local_94 = (undefined8 *)0x0" identifier = (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_90 = (undefined8 *)0x0;" (assignment_expression "local_90 = (undefined8 *)0x0" identifier = (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "param_4 = (undefined1 *)0x38;" (assignment_expression "param_4 = (undefined1 *)0x38" identifier = (cast_expression "(undefined1 *)0x38" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar21 = PTR_DAT_000b758c + -0x18a0;" (assignment_expression "puVar21 = PTR_DAT_000b758c + -0x18a0" identifier = (binary_expression "PTR_DAT_000b758c + -0x18a0" identifier + number_literal)) ;) (expression_statement "puVar9 = (undefined8 *)0x2f;" (assignment_expression "puVar9 = (undefined8 *)0x2f" identifier = (cast_expression "(undefined8 *)0x2f" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar6 = (*(code *)PTR_inflateInit2__000b7d68)(&local_94,0x2f);" (assignment_expression "iVar6 = (*(code *)PTR_inflateInit2__000b7d68)(&local_94,0x2f)" identifier = (call_expression "(*(code *)PTR_inflateInit2__000b7d68)(&local_94,0x2f)" (parenthesized_expression "(*(code *)PTR_inflateInit2__000b7d68)" ( (pointer_expression "*(code *)PTR_inflateInit2__000b7d68" * (cast_expression "(code *)PTR_inflateInit2__000b7d68" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_94,0x2f)" ( (pointer_expression "&local_94" & identifier) , number_literal )))) ;) (if_statement "if (iVar6 == 0) goto LAB_00050b74;" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00050b74;" goto statement_identifier ;)) (expression_statement "(*(code *)PTR_free_000b7d34)(local_100);" (call_expression "(*(code *)PTR_free_000b7d34)(local_100)" (parenthesized_expression "(*(code *)PTR_free_000b7d34)" ( (pointer_expression "*(code *)PTR_free_000b7d34" * (cast_expression "(code *)PTR_free_000b7d34" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_100)" ( identifier ))) ;) (expression_statement "uVar8 = 0x16;" (assignment_expression "uVar8 = 0x16" identifier = number_literal) ;) (if_statement "if (iVar6 == -4) {\n        uVar8 = 0xc;\n      }" if (parenthesized_expression "(iVar6 == -4)" ( (binary_expression "iVar6 == -4" identifier == number_literal) )) (compound_statement "{\n        uVar8 = 0xc;\n      }" { (expression_statement "uVar8 = 0xc;" (assignment_expression "uVar8 = 0xc" identifier = number_literal) ;) })) (expression_statement "puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();" (assignment_expression "puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_000b7eb8)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_000b7eb8)()" (parenthesized_expression "(*(code *)PTR___errno_location_000b7eb8)" ( (pointer_expression "*(code *)PTR___errno_location_000b7eb8" * (cast_expression "(code *)PTR___errno_location_000b7eb8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "*puVar10 = uVar8;" (assignment_expression "*puVar10 = uVar8" (pointer_expression "*puVar10" * identifier) = identifier) ;) }))) (expression_statement "dVar30 = (double)CONCAT44(puVar21,param_4);" (assignment_expression "dVar30 = (double)CONCAT44(puVar21,param_4)" identifier = (cast_expression "(double)CONCAT44(puVar21,param_4)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(puVar21,param_4)" identifier (argument_list "(puVar21,param_4)" ( identifier , identifier ))))) ;) (expression_statement "local_100 = param_11;" (assignment_expression "local_100 = param_11" identifier = identifier) ;) (if_statement "if (param_11 == (undefined8 *)0x0) {\n      iVar6 = 0;\n      local_fc = (undefined8 *)0x0;\n      puVar20 = (undefined8 *)0xffffffff;\n      goto LAB_000510b8;\n    }" if (parenthesized_expression "(param_11 == (undefined8 *)0x0)" ( (binary_expression "param_11 == (undefined8 *)0x0" identifier == (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      iVar6 = 0;\n      local_fc = (undefined8 *)0x0;\n      puVar20 = (undefined8 *)0xffffffff;\n      goto LAB_000510b8;\n    }" { (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) (expression_statement "local_fc = (undefined8 *)0x0;" (assignment_expression "local_fc = (undefined8 *)0x0" identifier = (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar20 = (undefined8 *)0xffffffff;" (assignment_expression "puVar20 = (undefined8 *)0xffffffff" identifier = (cast_expression "(undefined8 *)0xffffffff" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_000510b8;" goto statement_identifier ;) })) (expression_statement "local_100 = (undefined8 *)0x0;" (assignment_expression "local_100 = (undefined8 *)0x0" identifier = (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) (expression_statement "local_fc = (undefined8 *)0x0;" (assignment_expression "local_fc = (undefined8 *)0x0" identifier = (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_104 = (undefined8 *)0x0;" (assignment_expression "local_104 = (undefined8 *)0x0" identifier = (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar20 = (undefined8 *)0xffffffff;" (assignment_expression "puVar20 = (undefined8 *)0xffffffff" identifier = (cast_expression "(undefined8 *)0xffffffff" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_00051080:\n    uVar26 = ptimer_read(local_104);" statement_identifier : (expression_statement "uVar26 = ptimer_read(local_104);" (assignment_expression "uVar26 = ptimer_read(local_104)" identifier = (call_expression "ptimer_read(local_104)" identifier (argument_list "(local_104)" ( identifier )))) ;)) (expression_statement "*param_11 = uVar26;" (assignment_expression "*param_11 = uVar26" (pointer_expression "*param_11" * identifier) = identifier) ;) }))) (if_statement "if (local_104 != (undefined8 *)0x0) {\n    ptimer_destroy(local_104);\n  }" if (parenthesized_expression "(local_104 != (undefined8 *)0x0)" ( (binary_expression "local_104 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    ptimer_destroy(local_104);\n  }" { (expression_statement "ptimer_destroy(local_104);" (call_expression "ptimer_destroy(local_104)" identifier (argument_list "(local_104)" ( identifier ))) ;) })) (labeled_statement "LAB_000510b8:\n  if (local_100 != (undefined8 *)0x0) {\n    puVar9 = (undefined8 *)(*(code *)PTR_inflateEnd_000b7e58)(&local_94);\n    if ((-1 < (int)puVar20) && (puVar20 = puVar9, puVar9 != (undefined8 *)0x0)) {\n      puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)(local_100);\n      *puVar10 = 0x16;\n      puVar20 = (undefined8 *)0xffffffff;\n    }\n    (*(code *)PTR_free_000b7d34)(local_100);\n    puVar9 = local_8c;\n    if (((iVar6 != 0) || (local_8c != local_fc)) &&\n       (dVar30 = (double)CONCAT44(iVar6,SUB84(dVar30,0)), PTR_opt_000b746c[0x16b] != '\0')) {\n      iVar7 = iVar6;\n      puVar9 = local_fc;\n      debug_logprintf(PTR_DAT_000b758c + -0x180c);\n      dVar30 = (double)CONCAT44(iVar7,puVar9);\n      puVar9 = local_8c;\n    }\n  }" statement_identifier : (if_statement "if (local_100 != (undefined8 *)0x0) {\n    puVar9 = (undefined8 *)(*(code *)PTR_inflateEnd_000b7e58)(&local_94);\n    if ((-1 < (int)puVar20) && (puVar20 = puVar9, puVar9 != (undefined8 *)0x0)) {\n      puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)(local_100);\n      *puVar10 = 0x16;\n      puVar20 = (undefined8 *)0xffffffff;\n    }\n    (*(code *)PTR_free_000b7d34)(local_100);\n    puVar9 = local_8c;\n    if (((iVar6 != 0) || (local_8c != local_fc)) &&\n       (dVar30 = (double)CONCAT44(iVar6,SUB84(dVar30,0)), PTR_opt_000b746c[0x16b] != '\0')) {\n      iVar7 = iVar6;\n      puVar9 = local_fc;\n      debug_logprintf(PTR_DAT_000b758c + -0x180c);\n      dVar30 = (double)CONCAT44(iVar7,puVar9);\n      puVar9 = local_8c;\n    }\n  }" if (parenthesized_expression "(local_100 != (undefined8 *)0x0)" ( (binary_expression "local_100 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    puVar9 = (undefined8 *)(*(code *)PTR_inflateEnd_000b7e58)(&local_94);\n    if ((-1 < (int)puVar20) && (puVar20 = puVar9, puVar9 != (undefined8 *)0x0)) {\n      puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)(local_100);\n      *puVar10 = 0x16;\n      puVar20 = (undefined8 *)0xffffffff;\n    }\n    (*(code *)PTR_free_000b7d34)(local_100);\n    puVar9 = local_8c;\n    if (((iVar6 != 0) || (local_8c != local_fc)) &&\n       (dVar30 = (double)CONCAT44(iVar6,SUB84(dVar30,0)), PTR_opt_000b746c[0x16b] != '\0')) {\n      iVar7 = iVar6;\n      puVar9 = local_fc;\n      debug_logprintf(PTR_DAT_000b758c + -0x180c);\n      dVar30 = (double)CONCAT44(iVar7,puVar9);\n      puVar9 = local_8c;\n    }\n  }" { (expression_statement "puVar9 = (undefined8 *)(*(code *)PTR_inflateEnd_000b7e58)(&local_94);" (assignment_expression "puVar9 = (undefined8 *)(*(code *)PTR_inflateEnd_000b7e58)(&local_94)" identifier = (cast_expression "(undefined8 *)(*(code *)PTR_inflateEnd_000b7e58)(&local_94)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_inflateEnd_000b7e58)(&local_94)" (parenthesized_expression "(*(code *)PTR_inflateEnd_000b7e58)" ( (pointer_expression "*(code *)PTR_inflateEnd_000b7e58" * (cast_expression "(code *)PTR_inflateEnd_000b7e58" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_94)" ( (pointer_expression "&local_94" & identifier) ))))) ;) (if_statement "if ((-1 < (int)puVar20) && (puVar20 = puVar9, puVar9 != (undefined8 *)0x0)) {\n      puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)(local_100);\n      *puVar10 = 0x16;\n      puVar20 = (undefined8 *)0xffffffff;\n    }" if (parenthesized_expression "((-1 < (int)puVar20) && (puVar20 = puVar9, puVar9 != (undefined8 *)0x0))" ( (binary_expression "(-1 < (int)puVar20) && (puVar20 = puVar9, puVar9 != (undefined8 *)0x0)" (parenthesized_expression "(-1 < (int)puVar20)" ( (binary_expression "-1 < (int)puVar20" number_literal < (cast_expression "(int)puVar20" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "(puVar20 = puVar9, puVar9 != (undefined8 *)0x0)" ( (comma_expression "puVar20 = puVar9, puVar9 != (undefined8 *)0x0" (assignment_expression "puVar20 = puVar9" identifier = identifier) , (binary_expression "puVar9 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n      puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)(local_100);\n      *puVar10 = 0x16;\n      puVar20 = (undefined8 *)0xffffffff;\n    }" { (expression_statement "puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)(local_100);" (assignment_expression "puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)(local_100)" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_000b7eb8)(local_100)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_000b7eb8)(local_100)" (parenthesized_expression "(*(code *)PTR___errno_location_000b7eb8)" ( (pointer_expression "*(code *)PTR___errno_location_000b7eb8" * (cast_expression "(code *)PTR___errno_location_000b7eb8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_100)" ( identifier ))))) ;) (expression_statement "*puVar10 = 0x16;" (assignment_expression "*puVar10 = 0x16" (pointer_expression "*puVar10" * identifier) = number_literal) ;) (expression_statement "puVar20 = (undefined8 *)0xffffffff;" (assignment_expression "puVar20 = (undefined8 *)0xffffffff" identifier = (cast_expression "(undefined8 *)0xffffffff" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (expression_statement "(*(code *)PTR_free_000b7d34)(local_100);" (call_expression "(*(code *)PTR_free_000b7d34)(local_100)" (parenthesized_expression "(*(code *)PTR_free_000b7d34)" ( (pointer_expression "*(code *)PTR_free_000b7d34" * (cast_expression "(code *)PTR_free_000b7d34" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_100)" ( identifier ))) ;) (expression_statement "puVar9 = local_8c;" (assignment_expression "puVar9 = local_8c" identifier = identifier) ;) (if_statement "if (((iVar6 != 0) || (local_8c != local_fc)) &&\n       (dVar30 = (double)CONCAT44(iVar6,SUB84(dVar30,0)), PTR_opt_000b746c[0x16b] != '\0')) {\n      iVar7 = iVar6;\n      puVar9 = local_fc;\n      debug_logprintf(PTR_DAT_000b758c + -0x180c);\n      dVar30 = (double)CONCAT44(iVar7,puVar9);\n      puVar9 = local_8c;\n    }" if (parenthesized_expression "(((iVar6 != 0) || (local_8c != local_fc)) &&\n       (dVar30 = (double)CONCAT44(iVar6,SUB84(dVar30,0)), PTR_opt_000b746c[0x16b] != '\0'))" ( (binary_expression "((iVar6 != 0) || (local_8c != local_fc)) &&\n       (dVar30 = (double)CONCAT44(iVar6,SUB84(dVar30,0)), PTR_opt_000b746c[0x16b] != '\0')" (parenthesized_expression "((iVar6 != 0) || (local_8c != local_fc))" ( (binary_expression "(iVar6 != 0) || (local_8c != local_fc)" (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) || (parenthesized_expression "(local_8c != local_fc)" ( (binary_expression "local_8c != local_fc" identifier != identifier) ))) )) && (parenthesized_expression "(dVar30 = (double)CONCAT44(iVar6,SUB84(dVar30,0)), PTR_opt_000b746c[0x16b] != '\0')" ( (comma_expression "dVar30 = (double)CONCAT44(iVar6,SUB84(dVar30,0)), PTR_opt_000b746c[0x16b] != '\0'" (assignment_expression "dVar30 = (double)CONCAT44(iVar6,SUB84(dVar30,0))" identifier = (cast_expression "(double)CONCAT44(iVar6,SUB84(dVar30,0))" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(iVar6,SUB84(dVar30,0))" identifier (argument_list "(iVar6,SUB84(dVar30,0))" ( identifier , (call_expression "SUB84(dVar30,0)" identifier (argument_list "(dVar30,0)" ( identifier , number_literal ))) ))))) , (binary_expression "PTR_opt_000b746c[0x16b] != '\0'" (subscript_expression "PTR_opt_000b746c[0x16b]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence '))) ))) )) (compound_statement "{\n      iVar7 = iVar6;\n      puVar9 = local_fc;\n      debug_logprintf(PTR_DAT_000b758c + -0x180c);\n      dVar30 = (double)CONCAT44(iVar7,puVar9);\n      puVar9 = local_8c;\n    }" { (expression_statement "iVar7 = iVar6;" (assignment_expression "iVar7 = iVar6" identifier = identifier) ;) (expression_statement "puVar9 = local_fc;" (assignment_expression "puVar9 = local_fc" identifier = identifier) ;) (expression_statement "debug_logprintf(PTR_DAT_000b758c + -0x180c);" (call_expression "debug_logprintf(PTR_DAT_000b758c + -0x180c)" identifier (argument_list "(PTR_DAT_000b758c + -0x180c)" ( (binary_expression "PTR_DAT_000b758c + -0x180c" identifier + number_literal) ))) ;) (expression_statement "dVar30 = (double)CONCAT44(iVar7,puVar9);" (assignment_expression "dVar30 = (double)CONCAT44(iVar7,puVar9)" identifier = (cast_expression "(double)CONCAT44(iVar7,puVar9)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(iVar7,puVar9)" identifier (argument_list "(iVar7,puVar9)" ( identifier , identifier ))))) ;) (expression_statement "puVar9 = local_8c;" (assignment_expression "puVar9 = local_8c" identifier = identifier) ;) })) }))) (if_statement "if (param_9 != (int *)0x0) {\n    puVar16 = (undefined1 *)param_9[1] + (int)local_fc;\n    *param_9 = (uint)(puVar16 < (undefined1 *)param_9[1]) + *param_9 + iVar6;\n    param_9[1] = (int)puVar16;\n  }" if (parenthesized_expression "(param_9 != (int *)0x0)" ( (binary_expression "param_9 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    puVar16 = (undefined1 *)param_9[1] + (int)local_fc;\n    *param_9 = (uint)(puVar16 < (undefined1 *)param_9[1]) + *param_9 + iVar6;\n    param_9[1] = (int)puVar16;\n  }" { (expression_statement "puVar16 = (undefined1 *)param_9[1] + (int)local_fc;" (assignment_expression "puVar16 = (undefined1 *)param_9[1] + (int)local_fc" identifier = (binary_expression "(undefined1 *)param_9[1] + (int)local_fc" (cast_expression "(undefined1 *)param_9[1]" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_9[1]" identifier [ number_literal ])) + (cast_expression "(int)local_fc" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "*param_9 = (uint)(puVar16 < (undefined1 *)param_9[1]) + *param_9 + iVar6;" (assignment_expression "*param_9 = (uint)(puVar16 < (undefined1 *)param_9[1]) + *param_9 + iVar6" (pointer_expression "*param_9" * identifier) = (binary_expression "(uint)(puVar16 < (undefined1 *)param_9[1]) + *param_9 + iVar6" (binary_expression "(uint)(puVar16 < (undefined1 *)param_9[1]) + *param_9" (call_expression "(uint)(puVar16 < (undefined1 *)param_9[1])" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar16 < (undefined1 *)param_9[1])" ( (binary_expression "puVar16 < (undefined1 *)param_9[1]" identifier < (cast_expression "(undefined1 *)param_9[1]" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_9[1]" identifier [ number_literal ]))) ))) + (pointer_expression "*param_9" * identifier)) + identifier)) ;) (expression_statement "param_9[1] = (int)puVar16;" (assignment_expression "param_9[1] = (int)puVar16" (subscript_expression "param_9[1]" identifier [ number_literal ]) = (cast_expression "(int)puVar16" ( (type_descriptor "int" primitive_type) ) identifier)) ;) })) (if_statement "if (param_10 != (int *)0x0) {\n    uVar5 = param_10[1] + local_9c;\n    *param_10 = (int)((int)local_a0 + (uint)(uVar5 < (uint)param_10[1]) + *param_10);\n    param_10[1] = uVar5;\n    puVar9 = local_a0;\n  }" if (parenthesized_expression "(param_10 != (int *)0x0)" ( (binary_expression "param_10 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar5 = param_10[1] + local_9c;\n    *param_10 = (int)((int)local_a0 + (uint)(uVar5 < (uint)param_10[1]) + *param_10);\n    param_10[1] = uVar5;\n    puVar9 = local_a0;\n  }" { (expression_statement "uVar5 = param_10[1] + local_9c;" (assignment_expression "uVar5 = param_10[1] + local_9c" identifier = (binary_expression "param_10[1] + local_9c" (subscript_expression "param_10[1]" identifier [ number_literal ]) + identifier)) ;) (expression_statement "*param_10 = (int)((int)local_a0 + (uint)(uVar5 < (uint)param_10[1]) + *param_10);" (assignment_expression "*param_10 = (int)((int)local_a0 + (uint)(uVar5 < (uint)param_10[1]) + *param_10)" (pointer_expression "*param_10" * identifier) = (cast_expression "(int)((int)local_a0 + (uint)(uVar5 < (uint)param_10[1]) + *param_10)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)local_a0 + (uint)(uVar5 < (uint)param_10[1]) + *param_10)" ( (binary_expression "(int)local_a0 + (uint)(uVar5 < (uint)param_10[1]) + *param_10" (binary_expression "(int)local_a0 + (uint)(uVar5 < (uint)param_10[1])" (cast_expression "(int)local_a0" ( (type_descriptor "int" primitive_type) ) identifier) + (call_expression "(uint)(uVar5 < (uint)param_10[1])" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar5 < (uint)param_10[1])" ( (binary_expression "uVar5 < (uint)param_10[1]" identifier < (cast_expression "(uint)param_10[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_10[1]" identifier [ number_literal ]))) )))) + (pointer_expression "*param_10" * identifier)) )))) ;) (expression_statement "param_10[1] = uVar5;" (assignment_expression "param_10[1] = uVar5" (subscript_expression "param_10[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar9 = local_a0;" (assignment_expression "puVar9 = local_a0" identifier = identifier) ;) })) (expression_statement "(*(code *)PTR_free_000b7d34)(puVar4);" (call_expression "(*(code *)PTR_free_000b7d34)(puVar4)" (parenthesized_expression "(*(code *)PTR_free_000b7d34)" ( (pointer_expression "*(code *)PTR_free_000b7d34" * (cast_expression "(code *)PTR_free_000b7d34" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar4)" ( identifier ))) ;) (if_statement "if (local_5c == *(int *)PTR___stack_chk_guard_000b7c68) {\n    return puVar20;\n  }" if (parenthesized_expression "(local_5c == *(int *)PTR___stack_chk_guard_000b7c68)" ( (binary_expression "local_5c == *(int *)PTR___stack_chk_guard_000b7c68" identifier == (pointer_expression "*(int *)PTR___stack_chk_guard_000b7c68" * (cast_expression "(int *)PTR___stack_chk_guard_000b7c68" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return puVar20;\n  }" { (return_statement "return puVar20;" return identifier ;) })) (expression_statement "iVar6 = local_5c;" (assignment_expression "iVar6 = local_5c" identifier = identifier) ;) (expression_statement "puVar21 = PTR___stack_chk_fail_000b7bfc;" (assignment_expression "puVar21 = PTR___stack_chk_fail_000b7bfc" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_000b7bfc)();" (call_expression "(*(code *)PTR___stack_chk_fail_000b7bfc)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000b7bfc)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000b7bfc" * (cast_expression "(code *)PTR___stack_chk_fail_000b7bfc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (if_statement "if (*(char *)(*(int *)(puVar21 + 0x65acc) + 0x223) == '\0') {\n    dVar25 = *(double *)(*(int *)(puVar21 + 0x65bec) + -0x6f98);\n  }\n  else {\n    dVar25 = *(double *)(*(int *)(puVar21 + 0x65bec) + -0x15d8);\n  }" if (parenthesized_expression "(*(char *)(*(int *)(puVar21 + 0x65acc) + 0x223) == '\0')" ( (binary_expression "*(char *)(*(int *)(puVar21 + 0x65acc) + 0x223) == '\0'" (pointer_expression "*(char *)(*(int *)(puVar21 + 0x65acc) + 0x223)" * (cast_expression "(char *)(*(int *)(puVar21 + 0x65acc) + 0x223)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar21 + 0x65acc) + 0x223)" ( (binary_expression "*(int *)(puVar21 + 0x65acc) + 0x223" (pointer_expression "*(int *)(puVar21 + 0x65acc)" * (cast_expression "(int *)(puVar21 + 0x65acc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + 0x65acc)" ( (binary_expression "puVar21 + 0x65acc" identifier + number_literal) )))) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    dVar25 = *(double *)(*(int *)(puVar21 + 0x65bec) + -0x6f98);\n  }" { (expression_statement "dVar25 = *(double *)(*(int *)(puVar21 + 0x65bec) + -0x6f98);" (assignment_expression "dVar25 = *(double *)(*(int *)(puVar21 + 0x65bec) + -0x6f98)" identifier = (pointer_expression "*(double *)(*(int *)(puVar21 + 0x65bec) + -0x6f98)" * (cast_expression "(double *)(*(int *)(puVar21 + 0x65bec) + -0x6f98)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar21 + 0x65bec) + -0x6f98)" ( (binary_expression "*(int *)(puVar21 + 0x65bec) + -0x6f98" (pointer_expression "*(int *)(puVar21 + 0x65bec)" * (cast_expression "(int *)(puVar21 + 0x65bec)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + 0x65bec)" ( (binary_expression "puVar21 + 0x65bec" identifier + number_literal) )))) + number_literal) ))))) ;) }) (else_clause "else {\n    dVar25 = *(double *)(*(int *)(puVar21 + 0x65bec) + -0x15d8);\n  }" else (compound_statement "{\n    dVar25 = *(double *)(*(int *)(puVar21 + 0x65bec) + -0x15d8);\n  }" { (expression_statement "dVar25 = *(double *)(*(int *)(puVar21 + 0x65bec) + -0x15d8);" (assignment_expression "dVar25 = *(double *)(*(int *)(puVar21 + 0x65bec) + -0x15d8)" identifier = (pointer_expression "*(double *)(*(int *)(puVar21 + 0x65bec) + -0x15d8)" * (cast_expression "(double *)(*(int *)(puVar21 + 0x65bec) + -0x15d8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar21 + 0x65bec) + -0x15d8)" ( (binary_expression "*(int *)(puVar21 + 0x65bec) + -0x15d8" (pointer_expression "*(int *)(puVar21 + 0x65bec)" * (cast_expression "(int *)(puVar21 + 0x65bec)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + 0x65bec)" ( (binary_expression "puVar21 + 0x65bec" identifier + number_literal) )))) + number_literal) ))))) ;) }))) (if_statement "if (dVar30 == 0.0) {\n    dVar30 = (double)ptimer_resolution();\n    dVar30 = dVar30 * *(double *)(*(int *)(puVar21 + 0x65bec) + -0x2580);\n  }" if (parenthesized_expression "(dVar30 == 0.0)" ( (binary_expression "dVar30 == 0.0" identifier == number_literal) )) (compound_statement "{\n    dVar30 = (double)ptimer_resolution();\n    dVar30 = dVar30 * *(double *)(*(int *)(puVar21 + 0x65bec) + -0x2580);\n  }" { (expression_statement "dVar30 = (double)ptimer_resolution();" (assignment_expression "dVar30 = (double)ptimer_resolution()" identifier = (cast_expression "(double)ptimer_resolution()" ( (type_descriptor "double" primitive_type) ) (call_expression "ptimer_resolution()" identifier (argument_list "()" ( ))))) ;) (expression_statement "dVar30 = dVar30 * *(double *)(*(int *)(puVar21 + 0x65bec) + -0x2580);" (assignment_expression "dVar30 = dVar30 * *(double *)(*(int *)(puVar21 + 0x65bec) + -0x2580)" identifier = (binary_expression "dVar30 * *(double *)(*(int *)(puVar21 + 0x65bec) + -0x2580)" identifier * (pointer_expression "*(double *)(*(int *)(puVar21 + 0x65bec) + -0x2580)" * (cast_expression "(double *)(*(int *)(puVar21 + 0x65bec) + -0x2580)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar21 + 0x65bec) + -0x2580)" ( (binary_expression "*(int *)(puVar21 + 0x65bec) + -0x2580" (pointer_expression "*(int *)(puVar21 + 0x65bec)" * (cast_expression "(int *)(puVar21 + 0x65bec)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + 0x65bec)" ( (binary_expression "puVar21 + 0x65bec" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "uVar26 = convert_to_bits(iVar6,puVar9);" (assignment_expression "uVar26 = convert_to_bits(iVar6,puVar9)" identifier = (call_expression "convert_to_bits(iVar6,puVar9)" identifier (argument_list "(iVar6,puVar9)" ( identifier , identifier )))) ;) (expression_statement "dVar28 = (double)(**(code **)(puVar21 + 0x65f54))((int)((ulonglong)uVar26 >> 0x20),(int)uVar26);" (assignment_expression "dVar28 = (double)(**(code **)(puVar21 + 0x65f54))((int)((ulonglong)uVar26 >> 0x20),(int)uVar26)" identifier = (cast_expression "(double)(**(code **)(puVar21 + 0x65f54))((int)((ulonglong)uVar26 >> 0x20),(int)uVar26)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(puVar21 + 0x65f54))((int)((ulonglong)uVar26 >> 0x20),(int)uVar26)" (parenthesized_expression "(**(code **)(puVar21 + 0x65f54))" ( (pointer_expression "**(code **)(puVar21 + 0x65f54)" * (pointer_expression "*(code **)(puVar21 + 0x65f54)" * (cast_expression "(code **)(puVar21 + 0x65f54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + 0x65f54)" ( (binary_expression "puVar21 + 0x65f54" identifier + number_literal) ))))) )) (argument_list "((int)((ulonglong)uVar26 >> 0x20),(int)uVar26)" ( (cast_expression "(int)((ulonglong)uVar26 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar26 >> 0x20)" ( (binary_expression "(ulonglong)uVar26 >> 0x20" (cast_expression "(ulonglong)uVar26" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (cast_expression "(int)uVar26" ( (type_descriptor "int" primitive_type) ) identifier) ))))) ;) (expression_statement "dVar28 = dVar28 / dVar30;" (assignment_expression "dVar28 = dVar28 / dVar30" identifier = (binary_expression "dVar28 / dVar30" identifier / identifier)) ;) (if_statement "if (dVar28 < dVar25) {\n    *(undefined4 *)local_120._0_4_ = 0;\n  }\n  else if (dVar28 < dVar25 * dVar25) {\n    *(undefined4 *)local_120._0_4_ = 1;\n    local_120._0_4_ = (undefined8 *)&DAT_00000001;\n  }\n  else if (dVar28 < dVar25 * dVar25 * dVar25) {\n    *(undefined4 *)local_120._0_4_ = 2;\n    local_120._0_4_ = (undefined8 *)0x2;\n  }\n  else {\n    *(undefined4 *)local_120._0_4_ = 3;\n    local_120._0_4_ = (undefined8 *)0x3;\n  }" if (parenthesized_expression "(dVar28 < dVar25)" ( (binary_expression "dVar28 < dVar25" identifier < identifier) )) (compound_statement "{\n    *(undefined4 *)local_120._0_4_ = 0;\n  }" { (expression_statement "*(undefined4 *)local_120._0_4_ = 0;" (assignment_expression "*(undefined4 *)local_120._0_4_ = 0" (pointer_expression "*(undefined4 *)local_120._0_4_" * (cast_expression "(undefined4 *)local_120._0_4_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "local_120._0_4_" identifier . field_identifier))) = number_literal) ;) }) (else_clause "else if (dVar28 < dVar25 * dVar25) {\n    *(undefined4 *)local_120._0_4_ = 1;\n    local_120._0_4_ = (undefined8 *)&DAT_00000001;\n  }\n  else if (dVar28 < dVar25 * dVar25 * dVar25) {\n    *(undefined4 *)local_120._0_4_ = 2;\n    local_120._0_4_ = (undefined8 *)0x2;\n  }\n  else {\n    *(undefined4 *)local_120._0_4_ = 3;\n    local_120._0_4_ = (undefined8 *)0x3;\n  }" else (if_statement "if (dVar28 < dVar25 * dVar25) {\n    *(undefined4 *)local_120._0_4_ = 1;\n    local_120._0_4_ = (undefined8 *)&DAT_00000001;\n  }\n  else if (dVar28 < dVar25 * dVar25 * dVar25) {\n    *(undefined4 *)local_120._0_4_ = 2;\n    local_120._0_4_ = (undefined8 *)0x2;\n  }\n  else {\n    *(undefined4 *)local_120._0_4_ = 3;\n    local_120._0_4_ = (undefined8 *)0x3;\n  }" if (parenthesized_expression "(dVar28 < dVar25 * dVar25)" ( (binary_expression "dVar28 < dVar25 * dVar25" identifier < (binary_expression "dVar25 * dVar25" identifier * identifier)) )) (compound_statement "{\n    *(undefined4 *)local_120._0_4_ = 1;\n    local_120._0_4_ = (undefined8 *)&DAT_00000001;\n  }" { (expression_statement "*(undefined4 *)local_120._0_4_ = 1;" (assignment_expression "*(undefined4 *)local_120._0_4_ = 1" (pointer_expression "*(undefined4 *)local_120._0_4_" * (cast_expression "(undefined4 *)local_120._0_4_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "local_120._0_4_" identifier . field_identifier))) = number_literal) ;) (expression_statement "local_120._0_4_ = (undefined8 *)&DAT_00000001;" (assignment_expression "local_120._0_4_ = (undefined8 *)&DAT_00000001" (field_expression "local_120._0_4_" identifier . field_identifier) = (cast_expression "(undefined8 *)&DAT_00000001" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000001" & identifier))) ;) }) (else_clause "else if (dVar28 < dVar25 * dVar25 * dVar25) {\n    *(undefined4 *)local_120._0_4_ = 2;\n    local_120._0_4_ = (undefined8 *)0x2;\n  }\n  else {\n    *(undefined4 *)local_120._0_4_ = 3;\n    local_120._0_4_ = (undefined8 *)0x3;\n  }" else (if_statement "if (dVar28 < dVar25 * dVar25 * dVar25) {\n    *(undefined4 *)local_120._0_4_ = 2;\n    local_120._0_4_ = (undefined8 *)0x2;\n  }\n  else {\n    *(undefined4 *)local_120._0_4_ = 3;\n    local_120._0_4_ = (undefined8 *)0x3;\n  }" if (parenthesized_expression "(dVar28 < dVar25 * dVar25 * dVar25)" ( (binary_expression "dVar28 < dVar25 * dVar25 * dVar25" identifier < (binary_expression "dVar25 * dVar25 * dVar25" (binary_expression "dVar25 * dVar25" identifier * identifier) * identifier)) )) (compound_statement "{\n    *(undefined4 *)local_120._0_4_ = 2;\n    local_120._0_4_ = (undefined8 *)0x2;\n  }" { (expression_statement "*(undefined4 *)local_120._0_4_ = 2;" (assignment_expression "*(undefined4 *)local_120._0_4_ = 2" (pointer_expression "*(undefined4 *)local_120._0_4_" * (cast_expression "(undefined4 *)local_120._0_4_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "local_120._0_4_" identifier . field_identifier))) = number_literal) ;) (expression_statement "local_120._0_4_ = (undefined8 *)0x2;" (assignment_expression "local_120._0_4_ = (undefined8 *)0x2" (field_expression "local_120._0_4_" identifier . field_identifier) = (cast_expression "(undefined8 *)0x2" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    *(undefined4 *)local_120._0_4_ = 3;\n    local_120._0_4_ = (undefined8 *)0x3;\n  }" else (compound_statement "{\n    *(undefined4 *)local_120._0_4_ = 3;\n    local_120._0_4_ = (undefined8 *)0x3;\n  }" { (expression_statement "*(undefined4 *)local_120._0_4_ = 3;" (assignment_expression "*(undefined4 *)local_120._0_4_ = 3" (pointer_expression "*(undefined4 *)local_120._0_4_" * (cast_expression "(undefined4 *)local_120._0_4_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "local_120._0_4_" identifier . field_identifier))) = number_literal) ;) (expression_statement "local_120._0_4_ = (undefined8 *)0x3;" (assignment_expression "local_120._0_4_ = (undefined8 *)0x3" (field_expression "local_120._0_4_" identifier . field_identifier) = (cast_expression "(undefined8 *)0x3" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))))))) (return_statement "return local_120._0_4_;" return (field_expression "local_120._0_4_" identifier . field_identifier) ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) )))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE 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 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 ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (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 (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (field_expression IDENT . field_identifier)) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) || (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + LIT)) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (binary_expression (binary_expression IDENT + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) < IDENT) )))) + IDENT) , (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT == LIT) && (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < IDENT) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT == LIT) && (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) < IDENT) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) })))) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (field_expression IDENT . field_identifier)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (break_statement break ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < IDENT) )) || (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) , (binary_expression (binary_expression IDENT == IDENT) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) , (binary_expression IDENT < IDENT)) )))) )) ))) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT)) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT ))))) ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;)) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))) + IDENT) + (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression 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 { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) ))) << LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (field_expression IDENT . field_identifier)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_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 IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (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 *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression & IDENT) , LIT )))) ;) (expression_statement (assignment_expression IDENT = (field_expression IDENT . field_identifier)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))))) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT != IDENT) || (parenthesized_expression ( (binary_expression IDENT != IDENT) ))) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (char_literal ' escape_sequence ')) ))) )) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)))))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) ))) << LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression LIT - IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (goto_statement goto statement_identifier ;)) }) while (parenthesized_expression ( (binary_expression IDENT == LIT) )) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT - (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) )) - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT == LIT) && (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , LIT ))) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) })) })) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - (parenthesized_expression ( (binary_expression IDENT - IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }))) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) ;) (if_statement if (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))) + (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (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) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (binary_expression IDENT / IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT / IDENT) - IDENT) )) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) << LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) << LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - (parenthesized_expression ( (binary_expression IDENT - IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }))))) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) })) }))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) ;) }))) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT != LIT) || (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) && (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (binary_expression IDENT != IDENT) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT <= IDENT)) ))))) )) ))) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT)) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;)) (expression_statement (assignment_expression IDENT = (field_expression IDENT . field_identifier)) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , LIT , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }))) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) }) (else_clause else (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 = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression & IDENT) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( 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 { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression & IDENT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) || (parenthesized_expression ( (binary_expression IDENT != IDENT) ))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , (call_expression IDENT (argument_list ( IDENT , LIT ))) ))))) , (binary_expression (subscript_expression IDENT [ LIT ]) != (char_literal ' escape_sequence '))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( 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 { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ))) + (pointer_expression * IDENT)) + IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )))) + (pointer_expression * IDENT)) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) , (cast_expression ( (type_descriptor TYPE) ) IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT / IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (field_expression IDENT . field_identifier))) = LIT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT < (binary_expression IDENT * IDENT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (field_expression IDENT . field_identifier))) = LIT) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT < (binary_expression (binary_expression IDENT * IDENT) * IDENT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (field_expression IDENT . field_identifier))) = LIT) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (field_expression IDENT . field_identifier))) = LIT) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }))))))) (return_statement return (field_expression IDENT . field_identifier) ;) })))
(function_definition "undefined8 *\nfd_read_body(int param_1,undefined8 *param_2,undefined *param_3,undefined1 *param_4,int param_5,\n            undefined8 *param_6,undefined *param_7,undefined1 *param_8,int *param_9,int *param_10,\n            undefined8 *param_11,uint param_12,undefined8 *param_13)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  undefined8 *puVar3;\n  undefined8 *puVar4;\n  uint uVar5;\n  int iVar6;\n  int iVar7;\n  undefined4 uVar8;\n  undefined8 *puVar9;\n  undefined4 *puVar10;\n  uint uVar11;\n  undefined8 *puVar12;\n  int iVar13;\n  int *piVar14;\n  undefined8 *puVar15;\n  undefined1 *puVar16;\n  int iVar17;\n  undefined8 *puVar18;\n  undefined4 uVar19;\n  undefined8 *puVar20;\n  undefined *puVar21;\n  int iVar22;\n  code *pcVar23;\n  undefined8 *puVar24;\n  double dVar25;\n  undefined8 uVar26;\n  double dVar27;\n  double dVar28;\n  double dVar29;\n  double dVar30;\n  double dVar31;\n  double dVar32;\n  double dVar33;\n  double dVar34;\n  undefined8 local_120;\n  undefined8 *local_104;\n  undefined8 *local_100;\n  undefined8 *local_fc;\n  undefined8 *local_f0;\n  int local_e4;\n  undefined8 *local_e0;\n  undefined1 auStack_ac [8];\n  undefined1 *local_a4;\n  undefined8 *local_a0;\n  int local_9c;\n  undefined8 *local_94;\n  undefined8 *local_90;\n  undefined8 *local_8c;\n  undefined8 *local_88;\n  int local_84;\n  undefined *local_74;\n  undefined *local_70;\n  undefined4 local_6c;\n  int local_5c;\n  \n  local_5c = *(int *)PTR___stack_chk_guard_000b7c68;\n  puVar9 = param_2;\n  puVar21 = param_3;\n  puVar4 = (undefined8 *)(*(code *)PTR_xmalloc_000b7480)(0x2000);\n  uVar5 = param_12 & 4;\n  local_a4 = (undefined1 *)0x0;\n  auStack_ac._4_4_ = (undefined *)0x0;\n  local_9c = 0;\n  local_a0 = (undefined8 *)0x0;\n  if ((param_12 & 8) == 0) {\n    local_100 = (undefined8 *)0x0;\nLAB_00050b74:\n    if ((param_12 & 2) != 0) {\n      auStack_ac._4_4_ = param_7;\n      local_a4 = param_8;\n    }\n    if (*(int *)(PTR_opt_000b746c + 0x10c) == 0) {\n      iVar7 = 0;\n      if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n        local_e4 = 0;\n        goto LAB_00051950;\n      }\n      local_e4 = 0;\nLAB_00051978:\n      if (param_11 != (undefined8 *)0x0) goto LAB_00050c48;\n      local_104 = param_11;\n      local_e0 = (undefined8 *)0x2000;\n    }\n    else {\n      param_4 = param_8;\n      puVar21 = param_7;\n      if ((undefined *)auStack_ac._4_4_ != (undefined *)0x0 || local_a4 != (undefined1 *)0x0) {\n        puVar21 = (undefined *)0x0;\n        param_4 = (undefined1 *)0x0;\n      }\n      if (*(int *)(PTR_opt_000b746c + 0x30) != 0) {\n        iVar6 = (*(code *)PTR_strlen_000b7c94)();\n        param_1 = param_1 + iVar6 + 1;\n      }\n      local_120 = (double)CONCAT44(puVar21 + (uint)(param_4 + (int)param_6 < param_4) + param_5,\n                                   param_4 + (int)param_6);\n      iVar7 = progress_create(param_1);\n      local_e4 = progress_interactive_p(iVar7);\n      if (*(int *)(PTR_opt_000b746c + 0x158) == 0 && *(int *)(PTR_opt_000b746c + 0x15c) == 0) {\n        if (iVar7 == 0) goto LAB_00051978;\n      }\n      else {\nLAB_00051950:\n        puVar2 = PTR_DAT_000b7720;\n        *(undefined4 *)(PTR_DAT_000b7720 + -0x2fe8) = 0;\n        *(undefined4 *)(puVar2 + -0x2fe4) = 0;\n        *(undefined4 *)(puVar2 + -0x2fe0) = 0;\n        *(undefined4 *)(puVar2 + -0x2fdc) = 0;\n        *(undefined4 *)(puVar2 + -0x2fd8) = 0;\n        *(undefined4 *)(puVar2 + -0x2fd4) = 0;\n      }\nLAB_00050c48:\n      local_104 = (undefined8 *)ptimer_new();\n      iVar6 = *(int *)(PTR_opt_000b746c + 0x158);\n      local_e0 = *(undefined8 **)(PTR_opt_000b746c + 0x15c);\n      if (iVar6 == 0 && local_e0 == (undefined8 *)0x0) {\n        local_e0 = (undefined8 *)0x2000;\n      }\n      else if ((0 < iVar6) || ((iVar6 == 0 && ((undefined8 *)0x1fff < local_e0)))) {\n        local_e0 = (undefined8 *)0x2000;\n      }\n    }\n    puVar2 = PTR_DAT_000b758c;\n    dVar25 = (double)CONCAT44(puVar21,param_4);\n    iVar22 = 0;\n    local_f0 = (undefined8 *)0x0;\n    iVar6 = 0;\n    local_fc = (undefined8 *)0x0;\n    dVar29 = 0.0;\n    puVar24 = (undefined8 *)0x0;\n    dVar32 = *(double *)(PTR_DAT_000b758c + -0x2340);\n    dVar33 = *(double *)(PTR_DAT_000b758c + -0x2580);\n    dVar34 = *(double *)(PTR_DAT_000b758c + -0x15d0);\n    dVar28 = *(double *)(PTR_DAT_000b758c + -0x15d8);\n    while( true ) {\n      uVar8 = SUB84(dVar25,0);\n      iVar17 = (int)local_e0 >> 0x1f;\n      puVar20 = local_e0;\n      puVar3 = local_120._0_4_;\n      if ((param_12 & 1) == 0) break;\n      if (param_5 <= iVar6) {\n        if (param_5 != iVar6) goto LAB_000518d4;\n        if (local_fc < param_6) goto LAB_000517b0;\n        bVar1 = (int)puVar24 < 0;\n        dVar30 = dVar25;\n        goto LAB_000518d8;\n      }\nLAB_000517b0:\n      dVar31 = *(double *)(PTR_opt_000b746c + 0x120);\n      if (uVar5 != 0) goto LAB_00051820;\n      puVar15 = (undefined8 *)((int)param_6 - (int)local_fc);\n      iVar13 = (param_5 - iVar6) - (uint)(param_6 < puVar15);\n      dVar25 = (double)CONCAT44(iVar13,uVar8);\n      puVar9 = local_e0;\n      if ((iVar17 < iVar13) ||\n         ((dVar30 = (double)CONCAT44(iVar13,uVar8), iVar13 == iVar17 &&\n          (dVar30 = (double)CONCAT44(iVar13,uVar8), local_e0 < puVar15)))) goto LAB_00051864;\nLAB_00051868:\n      puVar18 = SUB84(dVar30,0);\n      if (local_e4 == 0) {\n        puVar9 = puVar4;\n        puVar24 = (undefined8 *)(*(code *)PTR_fd_read_000b7770)(param_2,puVar4);\n        local_120 = dVar31;\nLAB_000516fc:\n        bVar1 = (int)puVar24 < 0;\n        dVar30 = (double)CONCAT44(puVar15,puVar18);\n        if ((int)puVar24 < 1) goto LAB_000518d8;\n        if (iVar7 == 0) {\n          if (*(int *)(PTR_opt_000b746c + 0x158) == 0 && *(int *)(PTR_opt_000b746c + 0x15c) == 0)\n          goto LAB_00051720;\n          ptimer_measure(local_104);\n        }\n        else {\n          ptimer_measure(local_104);\n        }\nLAB_000515b0:\n        dVar29 = (double)ptimer_read(local_104);\nLAB_000515c4:\n        puVar12 = (undefined8 *)((int)local_fc + (int)puVar24);\n        iVar6 = (uint)(puVar12 < local_fc) + iVar6 + ((int)puVar24 >> 0x1f);\n        puVar9 = param_13;\n        puVar15 = puVar4;\n        puVar18 = puVar24;\n        local_fc = puVar12;\n        if (local_100 == (undefined8 *)0x0) {\n          local_120 = (double)(ZEXT48(auStack_ac + 4) << 0x20);\n          puVar20 = (undefined8 *)FUN_000503a4(param_3,param_13);\n          dVar30 = (double)CONCAT44(puVar15,puVar18);\n          puVar3 = (undefined8 *)(auStack_ac + 4);\n          if ((int)puVar20 < 0) goto LAB_00051040;\n        }\n        else {\n          local_120 = 0.0;\n          local_120._0_4_ = (undefined8 *)0x0;\n          puVar20 = (undefined8 *)FUN_000503a4(0,param_13);\n          dVar30 = (double)CONCAT44(puVar15,puVar18);\n          puVar3 = local_120._0_4_;\n          if ((int)puVar20 < 0) goto LAB_00051040;\n          puVar21 = PTR_DAT_000b758c + -0x1898;\n          pcVar23 = (code *)(PTR_LAB_000b78e4 + 0x3a4);\n          local_94 = puVar4;\n          local_90 = puVar24;\n          do {\n            local_84 = 0x8000;\n            local_88 = local_100;\n            puVar9 = (undefined8 *)0x0;\n            iVar17 = (*(code *)PTR_inflate_000b7d40)(&local_94,0);\n            puVar3 = local_120._0_4_;\n            if (iVar17 == -3) {\nLAB_000511f4:\n              puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n              dVar30 = (double)CONCAT44(puVar15,puVar18);\n              *puVar10 = 0x16;\n              puVar20 = (undefined8 *)0xffffffff;\n              goto LAB_00051040;\n            }\n            if (iVar17 < -2) {\n              if (iVar17 == -4) {\n                puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n                dVar30 = (double)CONCAT44(puVar15,puVar18);\n                *puVar10 = 0xc;\n                puVar20 = (undefined8 *)0xffffffff;\n                goto LAB_00051040;\n              }\n            }\n            else if (iVar17 == 1) {\n              if (((param_12 & 1) != 0) &&\n                 (((param_5 != iVar6 || (param_6 != puVar12)) && (PTR_opt_000b746c[0x16b] != '\0')))\n                 ) {\n                debug_logprintf(puVar21);\n              }\n            }\n            else if (iVar17 == 2) goto LAB_000511f4;\n            local_120 = (double)(ZEXT48(auStack_ac + 4) << 0x20);\n            puVar18 = (undefined8 *)(0x8000 - local_84);\n            puVar9 = (undefined8 *)0x0;\n            puVar15 = local_100;\n            puVar20 = (undefined8 *)(*pcVar23)(param_3,0);\n            dVar30 = (double)CONCAT44(puVar15,puVar18);\n            puVar3 = (undefined8 *)(auStack_ac + 4);\n            if ((int)puVar20 < 0) goto LAB_00051040;\n          } while (local_84 == 0);\n        }\n        dVar31 = local_120;\n        if (uVar5 != 0) {\n          puVar20 = (undefined8 *)((int)local_f0 - (int)puVar24);\n          iVar22 = (iVar22 - ((int)puVar24 >> 0x1f)) - (uint)(local_f0 < puVar20);\n          local_f0 = puVar20;\n          if (iVar22 == 0 && puVar20 == (undefined8 *)0x0) {\n            iVar17 = fd_read_line(param_2);\n            dVar25 = (double)CONCAT44(puVar15,puVar18);\n            if (iVar17 == 0) {\n              puVar24 = (undefined8 *)0xffffffff;\n              goto LAB_000518d4;\n            }\n            if (param_13 != (undefined8 *)0x0) {\n              puVar15 = (undefined8 *)(*(code *)PTR_strlen_000b7c94)(iVar17);\n              puVar9 = (undefined8 *)&DAT_00000001;\n              puVar18 = param_13;\n              (*(code *)PTR_fwrite_000b7c24)(iVar17,1);\n            }\n            (*(code *)PTR_free_000b7d34)(iVar17);\n          }\n        }\n        goto LAB_00051748;\n      }\n      if (*(double *)(PTR_opt_000b746c + 0x120) == 0.0) {\n        dVar31 = *(double *)(PTR_DAT_000b758c + -0x15e0);\n      }\n      else {\n        dVar25 = (double)ptimer_read(local_104);\n        puVar18 = SUB84(dVar30,0);\n        if (*(double *)(PTR_opt_000b746c + 0x120) <\n            (dVar25 - dVar29) + *(double *)(PTR_DAT_000b758c + -0x15e0)) {\n          dVar31 = *(double *)(PTR_opt_000b746c + 0x120) - (dVar25 - dVar29);\n          if (dVar31 < 0.0) {\n            puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n            *puVar10 = 0x91;\n            puVar20 = (undefined8 *)0xffffffff;\n            goto LAB_00051040;\n          }\n        }\n        else {\n          dVar31 = *(double *)(PTR_DAT_000b758c + -0x15e0);\n        }\n      }\n      puVar9 = puVar4;\n      puVar24 = (undefined8 *)(*(code *)PTR_fd_read_000b7770)(param_2,puVar4);\n      local_120 = dVar31;\n      if (-1 < (int)puVar24) goto LAB_000516fc;\n      piVar14 = (int *)(*(code *)PTR___errno_location_000b7eb8)();\n      dVar25 = (double)CONCAT44(puVar15,puVar18);\n      local_120._0_4_ = (undefined8 *)((ulonglong)dVar31 >> 0x20);\n      if (*piVar14 != 0x91) goto LAB_000518d4;\n      if (iVar7 == 0) {\n        if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n          ptimer_measure(local_104);\n          puVar24 = (undefined8 *)0x0;\n          goto LAB_00051748;\n        }\n        puVar24 = (undefined8 *)0x0;\nLAB_00051720:\n        dVar25 = (double)CONCAT44(puVar15,puVar18);\n        if (param_11 != (undefined8 *)0x0) {\n          ptimer_measure(local_104);\n          dVar31 = local_120;\n          if (0 < (int)puVar24) goto LAB_000515b0;\n          goto LAB_00051748;\n        }\n        if (0 < (int)puVar24) goto LAB_000515c4;\n      }\n      else {\n        ptimer_measure(local_104);\n        puVar24 = (undefined8 *)0x0;\nLAB_00051748:\n        local_120 = dVar31;\n        dVar25 = (double)CONCAT44(puVar15,puVar18);\n        if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n          dVar30 = (double)ptimer_read(local_104);\n          puVar21 = PTR_DAT_000b7720;\n          dVar30 = dVar30 - *(double *)(PTR_DAT_000b7720 + -0x2fe0);\n          puVar20 = (undefined8 *)((int)puVar24 + *(int *)(PTR_DAT_000b7720 + -0x2fe4));\n          iVar17 = (uint)(puVar20 < puVar24) +\n                   ((int)puVar24 >> 0x1f) + *(int *)(PTR_DAT_000b7720 + -0x2fe8);\n          *(int *)(PTR_DAT_000b7720 + -0x2fe8) = iVar17;\n          *(undefined8 **)(puVar21 + -0x2fe4) = puVar20;\n          dVar31 = (double)(*(code *)PTR_FUN_000b78f4)(iVar17,puVar20);\n          puVar9 = *(undefined8 **)(PTR_opt_000b746c + 0x15c);\n          dVar27 = (double)(*(code *)PTR_FUN_000b78f4)\n                                     (*(undefined4 *)(PTR_opt_000b746c + 0x158),puVar9);\n          dVar25 = (double)CONCAT44(puVar15,puVar18);\n          if (dVar30 < dVar31 / dVar27) {\n            dVar30 = (dVar31 / dVar27 - dVar30) + *(double *)(PTR_DAT_000b7720 + -0x2fd8);\n            if (dVar30 < dVar32) {\n              if (PTR_opt_000b746c[0x16b] != '\0') {\n                uVar11 = number_to_static_string(iVar17,puVar20);\n                local_120 = (double)((ulonglong)uVar11 << 0x20);\n                dVar25 = dVar30 * *(double *)(puVar2 + -0x15d8);\n                debug_logprintf(PTR_DAT_000b758c + -0x1864);\n                puVar9 = puVar20;\n              }\n              goto LAB_0005175c;\n            }\n            if (PTR_opt_000b746c[0x16b] != '\0') {\n              uVar11 = number_to_static_string(iVar17,puVar20);\n              local_120 = (double)((ulonglong)uVar11 << 0x20);\n              dVar25 = dVar30 * dVar28;\n              debug_logprintf(PTR_DAT_000b758c + -0x183c);\n              puVar9 = puVar20;\n            }\n            dVar31 = (double)ptimer_read(local_104);\n            xsleep(dVar30);\n            dVar27 = (double)ptimer_measure(local_104);\n            dVar30 = dVar30 - (dVar27 - dVar31);\n            if (dVar33 < dVar30) {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x2580);\n            }\n            else if (dVar34 <= dVar30) {\n              *(double *)(PTR_DAT_000b7720 + -0x2fd8) = dVar30;\n            }\n            else {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x15d0);\n            }\n          }\n          puVar21 = PTR_DAT_000b7720;\n          *(undefined4 *)(PTR_DAT_000b7720 + -0x2fe4) = 0;\n          *(undefined4 *)(puVar21 + -0x2fe8) = 0;\n          uVar26 = ptimer_read(local_104);\n          *(undefined8 *)(puVar21 + -0x2fe0) = uVar26;\n        }\n      }\nLAB_0005175c:\n      if (iVar7 != 0) {\n        local_120 = (double)ptimer_read(local_104);\n        iVar17 = (int)puVar24 >> 0x1f;\n        puVar20 = puVar24;\n        progress_update(iVar7);\n        dVar25 = (double)CONCAT44(iVar17,puVar20);\n      }\n    }\n    dVar31 = *(double *)(PTR_opt_000b746c + 0x120);\n    if (uVar5 == 0) {\nLAB_00051864:\n      puVar15 = puVar20;\n      dVar30 = dVar25;\n      goto LAB_00051868;\n    }\nLAB_00051820:\n    if (iVar22 != 0 || local_f0 != (undefined8 *)0x0) {\nLAB_00051830:\n      puVar20 = local_f0;\n      if ((iVar17 <= iVar22) &&\n         ((puVar15 = local_e0, dVar30 = dVar25, iVar17 != iVar22 ||\n          (puVar20 = local_f0, local_e0 <= local_f0)))) goto LAB_00051868;\n      goto LAB_00051864;\n    }\n    iVar13 = fd_read_line(param_2);\n    puVar20 = SUB84(dVar25,0);\n    if (iVar13 == 0) {\nLAB_00050e90:\n      puVar24 = (undefined8 *)0xffffffff;\nLAB_000518d4:\n      bVar1 = (int)puVar24 < 0;\n      dVar30 = dVar25;\nLAB_000518d8:\n      puVar20 = (undefined8 *)0xffffffff;\n      puVar3 = local_120._0_4_;\n      if (!bVar1) {\n        puVar20 = puVar24;\n      }\n    }\n    else {\n      if (param_13 != (undefined8 *)0x0) {\n        uVar8 = (*(code *)PTR_strlen_000b7c94)(iVar13);\n        puVar20 = param_13;\n        (*(code *)PTR_fwrite_000b7c24)(iVar13,1,uVar8);\n      }\n      uVar8 = 0x10;\n      puVar9 = (undefined8 *)auStack_ac;\n      local_f0 = (undefined8 *)(*(code *)PTR_strtol_000b7d3c)(iVar13,puVar9);\n      iVar22 = (int)local_f0 >> 0x1f;\n      (*(code *)PTR_free_000b7d34)(iVar13);\n      dVar25 = (double)CONCAT44(uVar8,puVar20);\n      if (iVar22 < 0) goto LAB_00050e90;\n      if (local_f0 != (undefined8 *)0x0) goto LAB_00051830;\n      iVar22 = fd_read_line(param_2);\n      dVar30 = (double)CONCAT44(uVar8,puVar20);\n      if (iVar22 == 0) {\n        puVar20 = (undefined8 *)0xffffffff;\n      }\n      else {\n        if (param_13 != (undefined8 *)0x0) {\n          uVar8 = (*(code *)PTR_strlen_000b7c94)(iVar22);\n          puVar9 = (undefined8 *)&DAT_00000001;\n          (*(code *)PTR_fwrite_000b7c24)(iVar22,1);\n          puVar20 = param_13;\n        }\n        (*(code *)PTR_free_000b7d34)(iVar22);\n        dVar30 = (double)CONCAT44(uVar8,puVar20);\n        puVar20 = (undefined8 *)0x0;\n      }\n    }\nLAB_00051040:\n    local_120._0_4_ = puVar3;\n    if (iVar7 != 0) {\n      uVar26 = ptimer_read(local_104);\n      uVar19 = (undefined4)uVar26;\n      uVar8 = (undefined4)((ulonglong)uVar26 >> 0x20);\n      progress_finish(iVar7);\n      dVar30 = (double)CONCAT44(uVar8,uVar19);\n    }\n    if (param_11 != (undefined8 *)0x0) goto LAB_00051080;\n  }\n  else {\n    local_100 = (undefined8 *)(*(code *)PTR_xmalloc_000b7480)(0x8000);\n    if (local_100 == (undefined8 *)0x0) {\n      puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n      *puVar10 = 0xc;\n    }\n    else {\n      local_74 = PTR_LAB_000b78e4 + 0x368;\n      local_70 = PTR_LAB_000b78e4 + 0x330;\n      local_6c = 0;\n      local_94 = (undefined8 *)0x0;\n      local_90 = (undefined8 *)0x0;\n      param_4 = (undefined1 *)0x38;\n      puVar21 = PTR_DAT_000b758c + -0x18a0;\n      puVar9 = (undefined8 *)0x2f;\n      iVar6 = (*(code *)PTR_inflateInit2__000b7d68)(&local_94,0x2f);\n      if (iVar6 == 0) goto LAB_00050b74;\n      (*(code *)PTR_free_000b7d34)(local_100);\n      uVar8 = 0x16;\n      if (iVar6 == -4) {\n        uVar8 = 0xc;\n      }\n      puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n      *puVar10 = uVar8;\n    }\n    dVar30 = (double)CONCAT44(puVar21,param_4);\n    local_100 = param_11;\n    if (param_11 == (undefined8 *)0x0) {\n      iVar6 = 0;\n      local_fc = (undefined8 *)0x0;\n      puVar20 = (undefined8 *)0xffffffff;\n      goto LAB_000510b8;\n    }\n    local_100 = (undefined8 *)0x0;\n    iVar6 = 0;\n    local_fc = (undefined8 *)0x0;\n    local_104 = (undefined8 *)0x0;\n    puVar20 = (undefined8 *)0xffffffff;\nLAB_00051080:\n    uVar26 = ptimer_read(local_104);\n    *param_11 = uVar26;\n  }\n  if (local_104 != (undefined8 *)0x0) {\n    ptimer_destroy(local_104);\n  }\nLAB_000510b8:\n  if (local_100 != (undefined8 *)0x0) {\n    puVar9 = (undefined8 *)(*(code *)PTR_inflateEnd_000b7e58)(&local_94);\n    if ((-1 < (int)puVar20) && (puVar20 = puVar9, puVar9 != (undefined8 *)0x0)) {\n      puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)(local_100);\n      *puVar10 = 0x16;\n      puVar20 = (undefined8 *)0xffffffff;\n    }\n    (*(code *)PTR_free_000b7d34)(local_100);\n    puVar9 = local_8c;\n    if (((iVar6 != 0) || (local_8c != local_fc)) &&\n       (dVar30 = (double)CONCAT44(iVar6,SUB84(dVar30,0)), PTR_opt_000b746c[0x16b] != '\0')) {\n      iVar7 = iVar6;\n      puVar9 = local_fc;\n      debug_logprintf(PTR_DAT_000b758c + -0x180c);\n      dVar30 = (double)CONCAT44(iVar7,puVar9);\n      puVar9 = local_8c;\n    }\n  }\n  if (param_9 != (int *)0x0) {\n    puVar16 = (undefined1 *)param_9[1] + (int)local_fc;\n    *param_9 = (uint)(puVar16 < (undefined1 *)param_9[1]) + *param_9 + iVar6;\n    param_9[1] = (int)puVar16;\n  }\n  if (param_10 != (int *)0x0) {\n    uVar5 = param_10[1] + local_9c;\n    *param_10 = (int)((int)local_a0 + (uint)(uVar5 < (uint)param_10[1]) + *param_10);\n    param_10[1] = uVar5;\n    puVar9 = local_a0;\n  }\n  (*(code *)PTR_free_000b7d34)(puVar4);\n  if (local_5c == *(int *)PTR___stack_chk_guard_000b7c68) {\n    return puVar20;\n  }\n  iVar6 = local_5c;\n  puVar21 = PTR___stack_chk_fail_000b7bfc;\n  (*(code *)PTR___stack_chk_fail_000b7bfc)();\n  if (*(char *)(*(int *)(puVar21 + 0x65acc) + 0x223) == '\0') {\n    dVar25 = *(double *)(*(int *)(puVar21 + 0x65bec) + -0x6f98);\n  }\n  else {\n    dVar25 = *(double *)(*(int *)(puVar21 + 0x65bec) + -0x15d8);\n  }\n  if (dVar30 == 0.0) {\n    dVar30 = (double)ptimer_resolution();\n    dVar30 = dVar30 * *(double *)(*(int *)(puVar21 + 0x65bec) + -0x2580);\n  }\n  uVar26 = convert_to_bits(iVar6,puVar9);\n  dVar28 = (double)(**(code **)(puVar21 + 0x65f54))((int)((ulonglong)uVar26 >> 0x20),(int)uVar26);\n  dVar28 = dVar28 / dVar30;\n  if (dVar28 < dVar25) {\n    *(undefined4 *)local_120._0_4_ = 0;\n  }\n  else if (dVar28 < dVar25 * dVar25) {\n    *(undefined4 *)local_120._0_4_ = 1;\n    local_120._0_4_ = (undefined8 *)&DAT_00000001;\n  }\n  else if (dVar28 < dVar25 * dVar25 * dVar25) {\n    *(undefined4 *)local_120._0_4_ = 2;\n    local_120._0_4_ = (undefined8 *)0x2;\n  }\n  else {\n    *(undefined4 *)local_120._0_4_ = 3;\n    local_120._0_4_ = (undefined8 *)0x3;\n  }\n  return local_120._0_4_;\n}" (type_identifier "undefined8") (pointer_declarator "*\nfd_read_body(int param_1,undefined8 *param_2,undefined *param_3,undefined1 *param_4,int param_5,\n            undefined8 *param_6,undefined *param_7,undefined1 *param_8,int *param_9,int *param_10,\n            undefined8 *param_11,uint param_12,undefined8 *param_13)" (* "*") (function_declarator "fd_read_body(int param_1,undefined8 *param_2,undefined *param_3,undefined1 *param_4,int param_5,\n            undefined8 *param_6,undefined *param_7,undefined1 *param_8,int *param_9,int *param_10,\n            undefined8 *param_11,uint param_12,undefined8 *param_13)" (identifier "fd_read_body") (parameter_list "(int param_1,undefined8 *param_2,undefined *param_3,undefined1 *param_4,int param_5,\n            undefined8 *param_6,undefined *param_7,undefined1 *param_8,int *param_9,int *param_10,\n            undefined8 *param_11,uint param_12,undefined8 *param_13)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "undefined8 *param_2" (type_identifier "undefined8") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "undefined *param_3" (type_identifier "undefined") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) (, ",") (parameter_declaration "undefined1 *param_4" (type_identifier "undefined1") (pointer_declarator "*param_4" (* "*") (identifier "param_4"))) (, ",") (parameter_declaration "int param_5" (primitive_type "int") (identifier "param_5")) (, ",") (parameter_declaration "undefined8 *param_6" (type_identifier "undefined8") (pointer_declarator "*param_6" (* "*") (identifier "param_6"))) (, ",") (parameter_declaration "undefined *param_7" (type_identifier "undefined") (pointer_declarator "*param_7" (* "*") (identifier "param_7"))) (, ",") (parameter_declaration "undefined1 *param_8" (type_identifier "undefined1") (pointer_declarator "*param_8" (* "*") (identifier "param_8"))) (, ",") (parameter_declaration "int *param_9" (primitive_type "int") (pointer_declarator "*param_9" (* "*") (identifier "param_9"))) (, ",") (parameter_declaration "int *param_10" (primitive_type "int") (pointer_declarator "*param_10" (* "*") (identifier "param_10"))) (, ",") (parameter_declaration "undefined8 *param_11" (type_identifier "undefined8") (pointer_declarator "*param_11" (* "*") (identifier "param_11"))) (, ",") (parameter_declaration "uint param_12" (type_identifier "uint") (identifier "param_12")) (, ",") (parameter_declaration "undefined8 *param_13" (type_identifier "undefined8") (pointer_declarator "*param_13" (* "*") (identifier "param_13"))) () ")")))) (compound_statement "{\n  bool bVar1;\n  undefined *puVar2;\n  undefined8 *puVar3;\n  undefined8 *puVar4;\n  uint uVar5;\n  int iVar6;\n  int iVar7;\n  undefined4 uVar8;\n  undefined8 *puVar9;\n  undefined4 *puVar10;\n  uint uVar11;\n  undefined8 *puVar12;\n  int iVar13;\n  int *piVar14;\n  undefined8 *puVar15;\n  undefined1 *puVar16;\n  int iVar17;\n  undefined8 *puVar18;\n  undefined4 uVar19;\n  undefined8 *puVar20;\n  undefined *puVar21;\n  int iVar22;\n  code *pcVar23;\n  undefined8 *puVar24;\n  double dVar25;\n  undefined8 uVar26;\n  double dVar27;\n  double dVar28;\n  double dVar29;\n  double dVar30;\n  double dVar31;\n  double dVar32;\n  double dVar33;\n  double dVar34;\n  undefined8 local_120;\n  undefined8 *local_104;\n  undefined8 *local_100;\n  undefined8 *local_fc;\n  undefined8 *local_f0;\n  int local_e4;\n  undefined8 *local_e0;\n  undefined1 auStack_ac [8];\n  undefined1 *local_a4;\n  undefined8 *local_a0;\n  int local_9c;\n  undefined8 *local_94;\n  undefined8 *local_90;\n  undefined8 *local_8c;\n  undefined8 *local_88;\n  int local_84;\n  undefined *local_74;\n  undefined *local_70;\n  undefined4 local_6c;\n  int local_5c;\n  \n  local_5c = *(int *)PTR___stack_chk_guard_000b7c68;\n  puVar9 = param_2;\n  puVar21 = param_3;\n  puVar4 = (undefined8 *)(*(code *)PTR_xmalloc_000b7480)(0x2000);\n  uVar5 = param_12 & 4;\n  local_a4 = (undefined1 *)0x0;\n  auStack_ac._4_4_ = (undefined *)0x0;\n  local_9c = 0;\n  local_a0 = (undefined8 *)0x0;\n  if ((param_12 & 8) == 0) {\n    local_100 = (undefined8 *)0x0;\nLAB_00050b74:\n    if ((param_12 & 2) != 0) {\n      auStack_ac._4_4_ = param_7;\n      local_a4 = param_8;\n    }\n    if (*(int *)(PTR_opt_000b746c + 0x10c) == 0) {\n      iVar7 = 0;\n      if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n        local_e4 = 0;\n        goto LAB_00051950;\n      }\n      local_e4 = 0;\nLAB_00051978:\n      if (param_11 != (undefined8 *)0x0) goto LAB_00050c48;\n      local_104 = param_11;\n      local_e0 = (undefined8 *)0x2000;\n    }\n    else {\n      param_4 = param_8;\n      puVar21 = param_7;\n      if ((undefined *)auStack_ac._4_4_ != (undefined *)0x0 || local_a4 != (undefined1 *)0x0) {\n        puVar21 = (undefined *)0x0;\n        param_4 = (undefined1 *)0x0;\n      }\n      if (*(int *)(PTR_opt_000b746c + 0x30) != 0) {\n        iVar6 = (*(code *)PTR_strlen_000b7c94)();\n        param_1 = param_1 + iVar6 + 1;\n      }\n      local_120 = (double)CONCAT44(puVar21 + (uint)(param_4 + (int)param_6 < param_4) + param_5,\n                                   param_4 + (int)param_6);\n      iVar7 = progress_create(param_1);\n      local_e4 = progress_interactive_p(iVar7);\n      if (*(int *)(PTR_opt_000b746c + 0x158) == 0 && *(int *)(PTR_opt_000b746c + 0x15c) == 0) {\n        if (iVar7 == 0) goto LAB_00051978;\n      }\n      else {\nLAB_00051950:\n        puVar2 = PTR_DAT_000b7720;\n        *(undefined4 *)(PTR_DAT_000b7720 + -0x2fe8) = 0;\n        *(undefined4 *)(puVar2 + -0x2fe4) = 0;\n        *(undefined4 *)(puVar2 + -0x2fe0) = 0;\n        *(undefined4 *)(puVar2 + -0x2fdc) = 0;\n        *(undefined4 *)(puVar2 + -0x2fd8) = 0;\n        *(undefined4 *)(puVar2 + -0x2fd4) = 0;\n      }\nLAB_00050c48:\n      local_104 = (undefined8 *)ptimer_new();\n      iVar6 = *(int *)(PTR_opt_000b746c + 0x158);\n      local_e0 = *(undefined8 **)(PTR_opt_000b746c + 0x15c);\n      if (iVar6 == 0 && local_e0 == (undefined8 *)0x0) {\n        local_e0 = (undefined8 *)0x2000;\n      }\n      else if ((0 < iVar6) || ((iVar6 == 0 && ((undefined8 *)0x1fff < local_e0)))) {\n        local_e0 = (undefined8 *)0x2000;\n      }\n    }\n    puVar2 = PTR_DAT_000b758c;\n    dVar25 = (double)CONCAT44(puVar21,param_4);\n    iVar22 = 0;\n    local_f0 = (undefined8 *)0x0;\n    iVar6 = 0;\n    local_fc = (undefined8 *)0x0;\n    dVar29 = 0.0;\n    puVar24 = (undefined8 *)0x0;\n    dVar32 = *(double *)(PTR_DAT_000b758c + -0x2340);\n    dVar33 = *(double *)(PTR_DAT_000b758c + -0x2580);\n    dVar34 = *(double *)(PTR_DAT_000b758c + -0x15d0);\n    dVar28 = *(double *)(PTR_DAT_000b758c + -0x15d8);\n    while( true ) {\n      uVar8 = SUB84(dVar25,0);\n      iVar17 = (int)local_e0 >> 0x1f;\n      puVar20 = local_e0;\n      puVar3 = local_120._0_4_;\n      if ((param_12 & 1) == 0) break;\n      if (param_5 <= iVar6) {\n        if (param_5 != iVar6) goto LAB_000518d4;\n        if (local_fc < param_6) goto LAB_000517b0;\n        bVar1 = (int)puVar24 < 0;\n        dVar30 = dVar25;\n        goto LAB_000518d8;\n      }\nLAB_000517b0:\n      dVar31 = *(double *)(PTR_opt_000b746c + 0x120);\n      if (uVar5 != 0) goto LAB_00051820;\n      puVar15 = (undefined8 *)((int)param_6 - (int)local_fc);\n      iVar13 = (param_5 - iVar6) - (uint)(param_6 < puVar15);\n      dVar25 = (double)CONCAT44(iVar13,uVar8);\n      puVar9 = local_e0;\n      if ((iVar17 < iVar13) ||\n         ((dVar30 = (double)CONCAT44(iVar13,uVar8), iVar13 == iVar17 &&\n          (dVar30 = (double)CONCAT44(iVar13,uVar8), local_e0 < puVar15)))) goto LAB_00051864;\nLAB_00051868:\n      puVar18 = SUB84(dVar30,0);\n      if (local_e4 == 0) {\n        puVar9 = puVar4;\n        puVar24 = (undefined8 *)(*(code *)PTR_fd_read_000b7770)(param_2,puVar4);\n        local_120 = dVar31;\nLAB_000516fc:\n        bVar1 = (int)puVar24 < 0;\n        dVar30 = (double)CONCAT44(puVar15,puVar18);\n        if ((int)puVar24 < 1) goto LAB_000518d8;\n        if (iVar7 == 0) {\n          if (*(int *)(PTR_opt_000b746c + 0x158) == 0 && *(int *)(PTR_opt_000b746c + 0x15c) == 0)\n          goto LAB_00051720;\n          ptimer_measure(local_104);\n        }\n        else {\n          ptimer_measure(local_104);\n        }\nLAB_000515b0:\n        dVar29 = (double)ptimer_read(local_104);\nLAB_000515c4:\n        puVar12 = (undefined8 *)((int)local_fc + (int)puVar24);\n        iVar6 = (uint)(puVar12 < local_fc) + iVar6 + ((int)puVar24 >> 0x1f);\n        puVar9 = param_13;\n        puVar15 = puVar4;\n        puVar18 = puVar24;\n        local_fc = puVar12;\n        if (local_100 == (undefined8 *)0x0) {\n          local_120 = (double)(ZEXT48(auStack_ac + 4) << 0x20);\n          puVar20 = (undefined8 *)FUN_000503a4(param_3,param_13);\n          dVar30 = (double)CONCAT44(puVar15,puVar18);\n          puVar3 = (undefined8 *)(auStack_ac + 4);\n          if ((int)puVar20 < 0) goto LAB_00051040;\n        }\n        else {\n          local_120 = 0.0;\n          local_120._0_4_ = (undefined8 *)0x0;\n          puVar20 = (undefined8 *)FUN_000503a4(0,param_13);\n          dVar30 = (double)CONCAT44(puVar15,puVar18);\n          puVar3 = local_120._0_4_;\n          if ((int)puVar20 < 0) goto LAB_00051040;\n          puVar21 = PTR_DAT_000b758c + -0x1898;\n          pcVar23 = (code *)(PTR_LAB_000b78e4 + 0x3a4);\n          local_94 = puVar4;\n          local_90 = puVar24;\n          do {\n            local_84 = 0x8000;\n            local_88 = local_100;\n            puVar9 = (undefined8 *)0x0;\n            iVar17 = (*(code *)PTR_inflate_000b7d40)(&local_94,0);\n            puVar3 = local_120._0_4_;\n            if (iVar17 == -3) {\nLAB_000511f4:\n              puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n              dVar30 = (double)CONCAT44(puVar15,puVar18);\n              *puVar10 = 0x16;\n              puVar20 = (undefined8 *)0xffffffff;\n              goto LAB_00051040;\n            }\n            if (iVar17 < -2) {\n              if (iVar17 == -4) {\n                puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n                dVar30 = (double)CONCAT44(puVar15,puVar18);\n                *puVar10 = 0xc;\n                puVar20 = (undefined8 *)0xffffffff;\n                goto LAB_00051040;\n              }\n            }\n            else if (iVar17 == 1) {\n              if (((param_12 & 1) != 0) &&\n                 (((param_5 != iVar6 || (param_6 != puVar12)) && (PTR_opt_000b746c[0x16b] != '\0')))\n                 ) {\n                debug_logprintf(puVar21);\n              }\n            }\n            else if (iVar17 == 2) goto LAB_000511f4;\n            local_120 = (double)(ZEXT48(auStack_ac + 4) << 0x20);\n            puVar18 = (undefined8 *)(0x8000 - local_84);\n            puVar9 = (undefined8 *)0x0;\n            puVar15 = local_100;\n            puVar20 = (undefined8 *)(*pcVar23)(param_3,0);\n            dVar30 = (double)CONCAT44(puVar15,puVar18);\n            puVar3 = (undefined8 *)(auStack_ac + 4);\n            if ((int)puVar20 < 0) goto LAB_00051040;\n          } while (local_84 == 0);\n        }\n        dVar31 = local_120;\n        if (uVar5 != 0) {\n          puVar20 = (undefined8 *)((int)local_f0 - (int)puVar24);\n          iVar22 = (iVar22 - ((int)puVar24 >> 0x1f)) - (uint)(local_f0 < puVar20);\n          local_f0 = puVar20;\n          if (iVar22 == 0 && puVar20 == (undefined8 *)0x0) {\n            iVar17 = fd_read_line(param_2);\n            dVar25 = (double)CONCAT44(puVar15,puVar18);\n            if (iVar17 == 0) {\n              puVar24 = (undefined8 *)0xffffffff;\n              goto LAB_000518d4;\n            }\n            if (param_13 != (undefined8 *)0x0) {\n              puVar15 = (undefined8 *)(*(code *)PTR_strlen_000b7c94)(iVar17);\n              puVar9 = (undefined8 *)&DAT_00000001;\n              puVar18 = param_13;\n              (*(code *)PTR_fwrite_000b7c24)(iVar17,1);\n            }\n            (*(code *)PTR_free_000b7d34)(iVar17);\n          }\n        }\n        goto LAB_00051748;\n      }\n      if (*(double *)(PTR_opt_000b746c + 0x120) == 0.0) {\n        dVar31 = *(double *)(PTR_DAT_000b758c + -0x15e0);\n      }\n      else {\n        dVar25 = (double)ptimer_read(local_104);\n        puVar18 = SUB84(dVar30,0);\n        if (*(double *)(PTR_opt_000b746c + 0x120) <\n            (dVar25 - dVar29) + *(double *)(PTR_DAT_000b758c + -0x15e0)) {\n          dVar31 = *(double *)(PTR_opt_000b746c + 0x120) - (dVar25 - dVar29);\n          if (dVar31 < 0.0) {\n            puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n            *puVar10 = 0x91;\n            puVar20 = (undefined8 *)0xffffffff;\n            goto LAB_00051040;\n          }\n        }\n        else {\n          dVar31 = *(double *)(PTR_DAT_000b758c + -0x15e0);\n        }\n      }\n      puVar9 = puVar4;\n      puVar24 = (undefined8 *)(*(code *)PTR_fd_read_000b7770)(param_2,puVar4);\n      local_120 = dVar31;\n      if (-1 < (int)puVar24) goto LAB_000516fc;\n      piVar14 = (int *)(*(code *)PTR___errno_location_000b7eb8)();\n      dVar25 = (double)CONCAT44(puVar15,puVar18);\n      local_120._0_4_ = (undefined8 *)((ulonglong)dVar31 >> 0x20);\n      if (*piVar14 != 0x91) goto LAB_000518d4;\n      if (iVar7 == 0) {\n        if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n          ptimer_measure(local_104);\n          puVar24 = (undefined8 *)0x0;\n          goto LAB_00051748;\n        }\n        puVar24 = (undefined8 *)0x0;\nLAB_00051720:\n        dVar25 = (double)CONCAT44(puVar15,puVar18);\n        if (param_11 != (undefined8 *)0x0) {\n          ptimer_measure(local_104);\n          dVar31 = local_120;\n          if (0 < (int)puVar24) goto LAB_000515b0;\n          goto LAB_00051748;\n        }\n        if (0 < (int)puVar24) goto LAB_000515c4;\n      }\n      else {\n        ptimer_measure(local_104);\n        puVar24 = (undefined8 *)0x0;\nLAB_00051748:\n        local_120 = dVar31;\n        dVar25 = (double)CONCAT44(puVar15,puVar18);\n        if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n          dVar30 = (double)ptimer_read(local_104);\n          puVar21 = PTR_DAT_000b7720;\n          dVar30 = dVar30 - *(double *)(PTR_DAT_000b7720 + -0x2fe0);\n          puVar20 = (undefined8 *)((int)puVar24 + *(int *)(PTR_DAT_000b7720 + -0x2fe4));\n          iVar17 = (uint)(puVar20 < puVar24) +\n                   ((int)puVar24 >> 0x1f) + *(int *)(PTR_DAT_000b7720 + -0x2fe8);\n          *(int *)(PTR_DAT_000b7720 + -0x2fe8) = iVar17;\n          *(undefined8 **)(puVar21 + -0x2fe4) = puVar20;\n          dVar31 = (double)(*(code *)PTR_FUN_000b78f4)(iVar17,puVar20);\n          puVar9 = *(undefined8 **)(PTR_opt_000b746c + 0x15c);\n          dVar27 = (double)(*(code *)PTR_FUN_000b78f4)\n                                     (*(undefined4 *)(PTR_opt_000b746c + 0x158),puVar9);\n          dVar25 = (double)CONCAT44(puVar15,puVar18);\n          if (dVar30 < dVar31 / dVar27) {\n            dVar30 = (dVar31 / dVar27 - dVar30) + *(double *)(PTR_DAT_000b7720 + -0x2fd8);\n            if (dVar30 < dVar32) {\n              if (PTR_opt_000b746c[0x16b] != '\0') {\n                uVar11 = number_to_static_string(iVar17,puVar20);\n                local_120 = (double)((ulonglong)uVar11 << 0x20);\n                dVar25 = dVar30 * *(double *)(puVar2 + -0x15d8);\n                debug_logprintf(PTR_DAT_000b758c + -0x1864);\n                puVar9 = puVar20;\n              }\n              goto LAB_0005175c;\n            }\n            if (PTR_opt_000b746c[0x16b] != '\0') {\n              uVar11 = number_to_static_string(iVar17,puVar20);\n              local_120 = (double)((ulonglong)uVar11 << 0x20);\n              dVar25 = dVar30 * dVar28;\n              debug_logprintf(PTR_DAT_000b758c + -0x183c);\n              puVar9 = puVar20;\n            }\n            dVar31 = (double)ptimer_read(local_104);\n            xsleep(dVar30);\n            dVar27 = (double)ptimer_measure(local_104);\n            dVar30 = dVar30 - (dVar27 - dVar31);\n            if (dVar33 < dVar30) {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x2580);\n            }\n            else if (dVar34 <= dVar30) {\n              *(double *)(PTR_DAT_000b7720 + -0x2fd8) = dVar30;\n            }\n            else {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x15d0);\n            }\n          }\n          puVar21 = PTR_DAT_000b7720;\n          *(undefined4 *)(PTR_DAT_000b7720 + -0x2fe4) = 0;\n          *(undefined4 *)(puVar21 + -0x2fe8) = 0;\n          uVar26 = ptimer_read(local_104);\n          *(undefined8 *)(puVar21 + -0x2fe0) = uVar26;\n        }\n      }\nLAB_0005175c:\n      if (iVar7 != 0) {\n        local_120 = (double)ptimer_read(local_104);\n        iVar17 = (int)puVar24 >> 0x1f;\n        puVar20 = puVar24;\n        progress_update(iVar7);\n        dVar25 = (double)CONCAT44(iVar17,puVar20);\n      }\n    }\n    dVar31 = *(double *)(PTR_opt_000b746c + 0x120);\n    if (uVar5 == 0) {\nLAB_00051864:\n      puVar15 = puVar20;\n      dVar30 = dVar25;\n      goto LAB_00051868;\n    }\nLAB_00051820:\n    if (iVar22 != 0 || local_f0 != (undefined8 *)0x0) {\nLAB_00051830:\n      puVar20 = local_f0;\n      if ((iVar17 <= iVar22) &&\n         ((puVar15 = local_e0, dVar30 = dVar25, iVar17 != iVar22 ||\n          (puVar20 = local_f0, local_e0 <= local_f0)))) goto LAB_00051868;\n      goto LAB_00051864;\n    }\n    iVar13 = fd_read_line(param_2);\n    puVar20 = SUB84(dVar25,0);\n    if (iVar13 == 0) {\nLAB_00050e90:\n      puVar24 = (undefined8 *)0xffffffff;\nLAB_000518d4:\n      bVar1 = (int)puVar24 < 0;\n      dVar30 = dVar25;\nLAB_000518d8:\n      puVar20 = (undefined8 *)0xffffffff;\n      puVar3 = local_120._0_4_;\n      if (!bVar1) {\n        puVar20 = puVar24;\n      }\n    }\n    else {\n      if (param_13 != (undefined8 *)0x0) {\n        uVar8 = (*(code *)PTR_strlen_000b7c94)(iVar13);\n        puVar20 = param_13;\n        (*(code *)PTR_fwrite_000b7c24)(iVar13,1,uVar8);\n      }\n      uVar8 = 0x10;\n      puVar9 = (undefined8 *)auStack_ac;\n      local_f0 = (undefined8 *)(*(code *)PTR_strtol_000b7d3c)(iVar13,puVar9);\n      iVar22 = (int)local_f0 >> 0x1f;\n      (*(code *)PTR_free_000b7d34)(iVar13);\n      dVar25 = (double)CONCAT44(uVar8,puVar20);\n      if (iVar22 < 0) goto LAB_00050e90;\n      if (local_f0 != (undefined8 *)0x0) goto LAB_00051830;\n      iVar22 = fd_read_line(param_2);\n      dVar30 = (double)CONCAT44(uVar8,puVar20);\n      if (iVar22 == 0) {\n        puVar20 = (undefined8 *)0xffffffff;\n      }\n      else {\n        if (param_13 != (undefined8 *)0x0) {\n          uVar8 = (*(code *)PTR_strlen_000b7c94)(iVar22);\n          puVar9 = (undefined8 *)&DAT_00000001;\n          (*(code *)PTR_fwrite_000b7c24)(iVar22,1);\n          puVar20 = param_13;\n        }\n        (*(code *)PTR_free_000b7d34)(iVar22);\n        dVar30 = (double)CONCAT44(uVar8,puVar20);\n        puVar20 = (undefined8 *)0x0;\n      }\n    }\nLAB_00051040:\n    local_120._0_4_ = puVar3;\n    if (iVar7 != 0) {\n      uVar26 = ptimer_read(local_104);\n      uVar19 = (undefined4)uVar26;\n      uVar8 = (undefined4)((ulonglong)uVar26 >> 0x20);\n      progress_finish(iVar7);\n      dVar30 = (double)CONCAT44(uVar8,uVar19);\n    }\n    if (param_11 != (undefined8 *)0x0) goto LAB_00051080;\n  }\n  else {\n    local_100 = (undefined8 *)(*(code *)PTR_xmalloc_000b7480)(0x8000);\n    if (local_100 == (undefined8 *)0x0) {\n      puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n      *puVar10 = 0xc;\n    }\n    else {\n      local_74 = PTR_LAB_000b78e4 + 0x368;\n      local_70 = PTR_LAB_000b78e4 + 0x330;\n      local_6c = 0;\n      local_94 = (undefined8 *)0x0;\n      local_90 = (undefined8 *)0x0;\n      param_4 = (undefined1 *)0x38;\n      puVar21 = PTR_DAT_000b758c + -0x18a0;\n      puVar9 = (undefined8 *)0x2f;\n      iVar6 = (*(code *)PTR_inflateInit2__000b7d68)(&local_94,0x2f);\n      if (iVar6 == 0) goto LAB_00050b74;\n      (*(code *)PTR_free_000b7d34)(local_100);\n      uVar8 = 0x16;\n      if (iVar6 == -4) {\n        uVar8 = 0xc;\n      }\n      puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n      *puVar10 = uVar8;\n    }\n    dVar30 = (double)CONCAT44(puVar21,param_4);\n    local_100 = param_11;\n    if (param_11 == (undefined8 *)0x0) {\n      iVar6 = 0;\n      local_fc = (undefined8 *)0x0;\n      puVar20 = (undefined8 *)0xffffffff;\n      goto LAB_000510b8;\n    }\n    local_100 = (undefined8 *)0x0;\n    iVar6 = 0;\n    local_fc = (undefined8 *)0x0;\n    local_104 = (undefined8 *)0x0;\n    puVar20 = (undefined8 *)0xffffffff;\nLAB_00051080:\n    uVar26 = ptimer_read(local_104);\n    *param_11 = uVar26;\n  }\n  if (local_104 != (undefined8 *)0x0) {\n    ptimer_destroy(local_104);\n  }\nLAB_000510b8:\n  if (local_100 != (undefined8 *)0x0) {\n    puVar9 = (undefined8 *)(*(code *)PTR_inflateEnd_000b7e58)(&local_94);\n    if ((-1 < (int)puVar20) && (puVar20 = puVar9, puVar9 != (undefined8 *)0x0)) {\n      puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)(local_100);\n      *puVar10 = 0x16;\n      puVar20 = (undefined8 *)0xffffffff;\n    }\n    (*(code *)PTR_free_000b7d34)(local_100);\n    puVar9 = local_8c;\n    if (((iVar6 != 0) || (local_8c != local_fc)) &&\n       (dVar30 = (double)CONCAT44(iVar6,SUB84(dVar30,0)), PTR_opt_000b746c[0x16b] != '\0')) {\n      iVar7 = iVar6;\n      puVar9 = local_fc;\n      debug_logprintf(PTR_DAT_000b758c + -0x180c);\n      dVar30 = (double)CONCAT44(iVar7,puVar9);\n      puVar9 = local_8c;\n    }\n  }\n  if (param_9 != (int *)0x0) {\n    puVar16 = (undefined1 *)param_9[1] + (int)local_fc;\n    *param_9 = (uint)(puVar16 < (undefined1 *)param_9[1]) + *param_9 + iVar6;\n    param_9[1] = (int)puVar16;\n  }\n  if (param_10 != (int *)0x0) {\n    uVar5 = param_10[1] + local_9c;\n    *param_10 = (int)((int)local_a0 + (uint)(uVar5 < (uint)param_10[1]) + *param_10);\n    param_10[1] = uVar5;\n    puVar9 = local_a0;\n  }\n  (*(code *)PTR_free_000b7d34)(puVar4);\n  if (local_5c == *(int *)PTR___stack_chk_guard_000b7c68) {\n    return puVar20;\n  }\n  iVar6 = local_5c;\n  puVar21 = PTR___stack_chk_fail_000b7bfc;\n  (*(code *)PTR___stack_chk_fail_000b7bfc)();\n  if (*(char *)(*(int *)(puVar21 + 0x65acc) + 0x223) == '\0') {\n    dVar25 = *(double *)(*(int *)(puVar21 + 0x65bec) + -0x6f98);\n  }\n  else {\n    dVar25 = *(double *)(*(int *)(puVar21 + 0x65bec) + -0x15d8);\n  }\n  if (dVar30 == 0.0) {\n    dVar30 = (double)ptimer_resolution();\n    dVar30 = dVar30 * *(double *)(*(int *)(puVar21 + 0x65bec) + -0x2580);\n  }\n  uVar26 = convert_to_bits(iVar6,puVar9);\n  dVar28 = (double)(**(code **)(puVar21 + 0x65f54))((int)((ulonglong)uVar26 >> 0x20),(int)uVar26);\n  dVar28 = dVar28 / dVar30;\n  if (dVar28 < dVar25) {\n    *(undefined4 *)local_120._0_4_ = 0;\n  }\n  else if (dVar28 < dVar25 * dVar25) {\n    *(undefined4 *)local_120._0_4_ = 1;\n    local_120._0_4_ = (undefined8 *)&DAT_00000001;\n  }\n  else if (dVar28 < dVar25 * dVar25 * dVar25) {\n    *(undefined4 *)local_120._0_4_ = 2;\n    local_120._0_4_ = (undefined8 *)0x2;\n  }\n  else {\n    *(undefined4 *)local_120._0_4_ = 3;\n    local_120._0_4_ = (undefined8 *)0x3;\n  }\n  return local_120._0_4_;\n}" ({ "{") (declaration "bool bVar1;" (primitive_type "bool") (identifier "bVar1") (; ";")) (declaration "undefined *puVar2;" (type_identifier "undefined") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "undefined8 *puVar3;" (type_identifier "undefined8") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "undefined8 *puVar4;" (type_identifier "undefined8") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "uint uVar5;" (type_identifier "uint") (identifier "uVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "undefined4 uVar8;" (type_identifier "undefined4") (identifier "uVar8") (; ";")) (declaration "undefined8 *puVar9;" (type_identifier "undefined8") (pointer_declarator "*puVar9" (* "*") (identifier "puVar9")) (; ";")) (declaration "undefined4 *puVar10;" (type_identifier "undefined4") (pointer_declarator "*puVar10" (* "*") (identifier "puVar10")) (; ";")) (declaration "uint uVar11;" (type_identifier "uint") (identifier "uVar11") (; ";")) (declaration "undefined8 *puVar12;" (type_identifier "undefined8") (pointer_declarator "*puVar12" (* "*") (identifier "puVar12")) (; ";")) (declaration "int iVar13;" (primitive_type "int") (identifier "iVar13") (; ";")) (declaration "int *piVar14;" (primitive_type "int") (pointer_declarator "*piVar14" (* "*") (identifier "piVar14")) (; ";")) (declaration "undefined8 *puVar15;" (type_identifier "undefined8") (pointer_declarator "*puVar15" (* "*") (identifier "puVar15")) (; ";")) (declaration "undefined1 *puVar16;" (type_identifier "undefined1") (pointer_declarator "*puVar16" (* "*") (identifier "puVar16")) (; ";")) (declaration "int iVar17;" (primitive_type "int") (identifier "iVar17") (; ";")) (declaration "undefined8 *puVar18;" (type_identifier "undefined8") (pointer_declarator "*puVar18" (* "*") (identifier "puVar18")) (; ";")) (declaration "undefined4 uVar19;" (type_identifier "undefined4") (identifier "uVar19") (; ";")) (declaration "undefined8 *puVar20;" (type_identifier "undefined8") (pointer_declarator "*puVar20" (* "*") (identifier "puVar20")) (; ";")) (declaration "undefined *puVar21;" (type_identifier "undefined") (pointer_declarator "*puVar21" (* "*") (identifier "puVar21")) (; ";")) (declaration "int iVar22;" (primitive_type "int") (identifier "iVar22") (; ";")) (declaration "code *pcVar23;" (type_identifier "code") (pointer_declarator "*pcVar23" (* "*") (identifier "pcVar23")) (; ";")) (declaration "undefined8 *puVar24;" (type_identifier "undefined8") (pointer_declarator "*puVar24" (* "*") (identifier "puVar24")) (; ";")) (declaration "double dVar25;" (primitive_type "double") (identifier "dVar25") (; ";")) (declaration "undefined8 uVar26;" (type_identifier "undefined8") (identifier "uVar26") (; ";")) (declaration "double dVar27;" (primitive_type "double") (identifier "dVar27") (; ";")) (declaration "double dVar28;" (primitive_type "double") (identifier "dVar28") (; ";")) (declaration "double dVar29;" (primitive_type "double") (identifier "dVar29") (; ";")) (declaration "double dVar30;" (primitive_type "double") (identifier "dVar30") (; ";")) (declaration "double dVar31;" (primitive_type "double") (identifier "dVar31") (; ";")) (declaration "double dVar32;" (primitive_type "double") (identifier "dVar32") (; ";")) (declaration "double dVar33;" (primitive_type "double") (identifier "dVar33") (; ";")) (declaration "double dVar34;" (primitive_type "double") (identifier "dVar34") (; ";")) (declaration "undefined8 local_120;" (type_identifier "undefined8") (identifier "local_120") (; ";")) (declaration "undefined8 *local_104;" (type_identifier "undefined8") (pointer_declarator "*local_104" (* "*") (identifier "local_104")) (; ";")) (declaration "undefined8 *local_100;" (type_identifier "undefined8") (pointer_declarator "*local_100" (* "*") (identifier "local_100")) (; ";")) (declaration "undefined8 *local_fc;" (type_identifier "undefined8") (pointer_declarator "*local_fc" (* "*") (identifier "local_fc")) (; ";")) (declaration "undefined8 *local_f0;" (type_identifier "undefined8") (pointer_declarator "*local_f0" (* "*") (identifier "local_f0")) (; ";")) (declaration "int local_e4;" (primitive_type "int") (identifier "local_e4") (; ";")) (declaration "undefined8 *local_e0;" (type_identifier "undefined8") (pointer_declarator "*local_e0" (* "*") (identifier "local_e0")) (; ";")) (declaration "undefined1 auStack_ac [8];" (type_identifier "undefined1") (array_declarator "auStack_ac [8]" (identifier "auStack_ac") ([ "[") (number_literal "8") (] "]")) (; ";")) (declaration "undefined1 *local_a4;" (type_identifier "undefined1") (pointer_declarator "*local_a4" (* "*") (identifier "local_a4")) (; ";")) (declaration "undefined8 *local_a0;" (type_identifier "undefined8") (pointer_declarator "*local_a0" (* "*") (identifier "local_a0")) (; ";")) (declaration "int local_9c;" (primitive_type "int") (identifier "local_9c") (; ";")) (declaration "undefined8 *local_94;" (type_identifier "undefined8") (pointer_declarator "*local_94" (* "*") (identifier "local_94")) (; ";")) (declaration "undefined8 *local_90;" (type_identifier "undefined8") (pointer_declarator "*local_90" (* "*") (identifier "local_90")) (; ";")) (declaration "undefined8 *local_8c;" (type_identifier "undefined8") (pointer_declarator "*local_8c" (* "*") (identifier "local_8c")) (; ";")) (declaration "undefined8 *local_88;" (type_identifier "undefined8") (pointer_declarator "*local_88" (* "*") (identifier "local_88")) (; ";")) (declaration "int local_84;" (primitive_type "int") (identifier "local_84") (; ";")) (declaration "undefined *local_74;" (type_identifier "undefined") (pointer_declarator "*local_74" (* "*") (identifier "local_74")) (; ";")) (declaration "undefined *local_70;" (type_identifier "undefined") (pointer_declarator "*local_70" (* "*") (identifier "local_70")) (; ";")) (declaration "undefined4 local_6c;" (type_identifier "undefined4") (identifier "local_6c") (; ";")) (declaration "int local_5c;" (primitive_type "int") (identifier "local_5c") (; ";")) (expression_statement "local_5c = *(int *)PTR___stack_chk_guard_000b7c68;" (assignment_expression "local_5c = *(int *)PTR___stack_chk_guard_000b7c68" (identifier "local_5c") (= "=") (pointer_expression "*(int *)PTR___stack_chk_guard_000b7c68" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_000b7c68" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_000b7c68")))) (; ";")) (expression_statement "puVar9 = param_2;" (assignment_expression "puVar9 = param_2" (identifier "puVar9") (= "=") (identifier "param_2")) (; ";")) (expression_statement "puVar21 = param_3;" (assignment_expression "puVar21 = param_3" (identifier "puVar21") (= "=") (identifier "param_3")) (; ";")) (expression_statement "puVar4 = (undefined8 *)(*(code *)PTR_xmalloc_000b7480)(0x2000);" (assignment_expression "puVar4 = (undefined8 *)(*(code *)PTR_xmalloc_000b7480)(0x2000)" (identifier "puVar4") (= "=") (cast_expression "(undefined8 *)(*(code *)PTR_xmalloc_000b7480)(0x2000)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_xmalloc_000b7480)(0x2000)" (parenthesized_expression "(*(code *)PTR_xmalloc_000b7480)" (( "(") (pointer_expression "*(code *)PTR_xmalloc_000b7480" (* "*") (cast_expression "(code *)PTR_xmalloc_000b7480" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_xmalloc_000b7480"))) () ")")) (argument_list "(0x2000)" (( "(") (number_literal "0x2000") () ")"))))) (; ";")) (expression_statement "uVar5 = param_12 & 4;" (assignment_expression "uVar5 = param_12 & 4" (identifier "uVar5") (= "=") (binary_expression "param_12 & 4" (identifier "param_12") (& "&") (number_literal "4"))) (; ";")) (expression_statement "local_a4 = (undefined1 *)0x0;" (assignment_expression "local_a4 = (undefined1 *)0x0" (identifier "local_a4") (= "=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "auStack_ac._4_4_ = (undefined *)0x0;" (assignment_expression "auStack_ac._4_4_ = (undefined *)0x0" (field_expression "auStack_ac._4_4_" (identifier "auStack_ac") (. ".") (field_identifier "_4_4_")) (= "=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_9c = 0;" (assignment_expression "local_9c = 0" (identifier "local_9c") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_a0 = (undefined8 *)0x0;" (assignment_expression "local_a0 = (undefined8 *)0x0" (identifier "local_a0") (= "=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if ((param_12 & 8) == 0) {\n    local_100 = (undefined8 *)0x0;\nLAB_00050b74:\n    if ((param_12 & 2) != 0) {\n      auStack_ac._4_4_ = param_7;\n      local_a4 = param_8;\n    }\n    if (*(int *)(PTR_opt_000b746c + 0x10c) == 0) {\n      iVar7 = 0;\n      if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n        local_e4 = 0;\n        goto LAB_00051950;\n      }\n      local_e4 = 0;\nLAB_00051978:\n      if (param_11 != (undefined8 *)0x0) goto LAB_00050c48;\n      local_104 = param_11;\n      local_e0 = (undefined8 *)0x2000;\n    }\n    else {\n      param_4 = param_8;\n      puVar21 = param_7;\n      if ((undefined *)auStack_ac._4_4_ != (undefined *)0x0 || local_a4 != (undefined1 *)0x0) {\n        puVar21 = (undefined *)0x0;\n        param_4 = (undefined1 *)0x0;\n      }\n      if (*(int *)(PTR_opt_000b746c + 0x30) != 0) {\n        iVar6 = (*(code *)PTR_strlen_000b7c94)();\n        param_1 = param_1 + iVar6 + 1;\n      }\n      local_120 = (double)CONCAT44(puVar21 + (uint)(param_4 + (int)param_6 < param_4) + param_5,\n                                   param_4 + (int)param_6);\n      iVar7 = progress_create(param_1);\n      local_e4 = progress_interactive_p(iVar7);\n      if (*(int *)(PTR_opt_000b746c + 0x158) == 0 && *(int *)(PTR_opt_000b746c + 0x15c) == 0) {\n        if (iVar7 == 0) goto LAB_00051978;\n      }\n      else {\nLAB_00051950:\n        puVar2 = PTR_DAT_000b7720;\n        *(undefined4 *)(PTR_DAT_000b7720 + -0x2fe8) = 0;\n        *(undefined4 *)(puVar2 + -0x2fe4) = 0;\n        *(undefined4 *)(puVar2 + -0x2fe0) = 0;\n        *(undefined4 *)(puVar2 + -0x2fdc) = 0;\n        *(undefined4 *)(puVar2 + -0x2fd8) = 0;\n        *(undefined4 *)(puVar2 + -0x2fd4) = 0;\n      }\nLAB_00050c48:\n      local_104 = (undefined8 *)ptimer_new();\n      iVar6 = *(int *)(PTR_opt_000b746c + 0x158);\n      local_e0 = *(undefined8 **)(PTR_opt_000b746c + 0x15c);\n      if (iVar6 == 0 && local_e0 == (undefined8 *)0x0) {\n        local_e0 = (undefined8 *)0x2000;\n      }\n      else if ((0 < iVar6) || ((iVar6 == 0 && ((undefined8 *)0x1fff < local_e0)))) {\n        local_e0 = (undefined8 *)0x2000;\n      }\n    }\n    puVar2 = PTR_DAT_000b758c;\n    dVar25 = (double)CONCAT44(puVar21,param_4);\n    iVar22 = 0;\n    local_f0 = (undefined8 *)0x0;\n    iVar6 = 0;\n    local_fc = (undefined8 *)0x0;\n    dVar29 = 0.0;\n    puVar24 = (undefined8 *)0x0;\n    dVar32 = *(double *)(PTR_DAT_000b758c + -0x2340);\n    dVar33 = *(double *)(PTR_DAT_000b758c + -0x2580);\n    dVar34 = *(double *)(PTR_DAT_000b758c + -0x15d0);\n    dVar28 = *(double *)(PTR_DAT_000b758c + -0x15d8);\n    while( true ) {\n      uVar8 = SUB84(dVar25,0);\n      iVar17 = (int)local_e0 >> 0x1f;\n      puVar20 = local_e0;\n      puVar3 = local_120._0_4_;\n      if ((param_12 & 1) == 0) break;\n      if (param_5 <= iVar6) {\n        if (param_5 != iVar6) goto LAB_000518d4;\n        if (local_fc < param_6) goto LAB_000517b0;\n        bVar1 = (int)puVar24 < 0;\n        dVar30 = dVar25;\n        goto LAB_000518d8;\n      }\nLAB_000517b0:\n      dVar31 = *(double *)(PTR_opt_000b746c + 0x120);\n      if (uVar5 != 0) goto LAB_00051820;\n      puVar15 = (undefined8 *)((int)param_6 - (int)local_fc);\n      iVar13 = (param_5 - iVar6) - (uint)(param_6 < puVar15);\n      dVar25 = (double)CONCAT44(iVar13,uVar8);\n      puVar9 = local_e0;\n      if ((iVar17 < iVar13) ||\n         ((dVar30 = (double)CONCAT44(iVar13,uVar8), iVar13 == iVar17 &&\n          (dVar30 = (double)CONCAT44(iVar13,uVar8), local_e0 < puVar15)))) goto LAB_00051864;\nLAB_00051868:\n      puVar18 = SUB84(dVar30,0);\n      if (local_e4 == 0) {\n        puVar9 = puVar4;\n        puVar24 = (undefined8 *)(*(code *)PTR_fd_read_000b7770)(param_2,puVar4);\n        local_120 = dVar31;\nLAB_000516fc:\n        bVar1 = (int)puVar24 < 0;\n        dVar30 = (double)CONCAT44(puVar15,puVar18);\n        if ((int)puVar24 < 1) goto LAB_000518d8;\n        if (iVar7 == 0) {\n          if (*(int *)(PTR_opt_000b746c + 0x158) == 0 && *(int *)(PTR_opt_000b746c + 0x15c) == 0)\n          goto LAB_00051720;\n          ptimer_measure(local_104);\n        }\n        else {\n          ptimer_measure(local_104);\n        }\nLAB_000515b0:\n        dVar29 = (double)ptimer_read(local_104);\nLAB_000515c4:\n        puVar12 = (undefined8 *)((int)local_fc + (int)puVar24);\n        iVar6 = (uint)(puVar12 < local_fc) + iVar6 + ((int)puVar24 >> 0x1f);\n        puVar9 = param_13;\n        puVar15 = puVar4;\n        puVar18 = puVar24;\n        local_fc = puVar12;\n        if (local_100 == (undefined8 *)0x0) {\n          local_120 = (double)(ZEXT48(auStack_ac + 4) << 0x20);\n          puVar20 = (undefined8 *)FUN_000503a4(param_3,param_13);\n          dVar30 = (double)CONCAT44(puVar15,puVar18);\n          puVar3 = (undefined8 *)(auStack_ac + 4);\n          if ((int)puVar20 < 0) goto LAB_00051040;\n        }\n        else {\n          local_120 = 0.0;\n          local_120._0_4_ = (undefined8 *)0x0;\n          puVar20 = (undefined8 *)FUN_000503a4(0,param_13);\n          dVar30 = (double)CONCAT44(puVar15,puVar18);\n          puVar3 = local_120._0_4_;\n          if ((int)puVar20 < 0) goto LAB_00051040;\n          puVar21 = PTR_DAT_000b758c + -0x1898;\n          pcVar23 = (code *)(PTR_LAB_000b78e4 + 0x3a4);\n          local_94 = puVar4;\n          local_90 = puVar24;\n          do {\n            local_84 = 0x8000;\n            local_88 = local_100;\n            puVar9 = (undefined8 *)0x0;\n            iVar17 = (*(code *)PTR_inflate_000b7d40)(&local_94,0);\n            puVar3 = local_120._0_4_;\n            if (iVar17 == -3) {\nLAB_000511f4:\n              puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n              dVar30 = (double)CONCAT44(puVar15,puVar18);\n              *puVar10 = 0x16;\n              puVar20 = (undefined8 *)0xffffffff;\n              goto LAB_00051040;\n            }\n            if (iVar17 < -2) {\n              if (iVar17 == -4) {\n                puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n                dVar30 = (double)CONCAT44(puVar15,puVar18);\n                *puVar10 = 0xc;\n                puVar20 = (undefined8 *)0xffffffff;\n                goto LAB_00051040;\n              }\n            }\n            else if (iVar17 == 1) {\n              if (((param_12 & 1) != 0) &&\n                 (((param_5 != iVar6 || (param_6 != puVar12)) && (PTR_opt_000b746c[0x16b] != '\0')))\n                 ) {\n                debug_logprintf(puVar21);\n              }\n            }\n            else if (iVar17 == 2) goto LAB_000511f4;\n            local_120 = (double)(ZEXT48(auStack_ac + 4) << 0x20);\n            puVar18 = (undefined8 *)(0x8000 - local_84);\n            puVar9 = (undefined8 *)0x0;\n            puVar15 = local_100;\n            puVar20 = (undefined8 *)(*pcVar23)(param_3,0);\n            dVar30 = (double)CONCAT44(puVar15,puVar18);\n            puVar3 = (undefined8 *)(auStack_ac + 4);\n            if ((int)puVar20 < 0) goto LAB_00051040;\n          } while (local_84 == 0);\n        }\n        dVar31 = local_120;\n        if (uVar5 != 0) {\n          puVar20 = (undefined8 *)((int)local_f0 - (int)puVar24);\n          iVar22 = (iVar22 - ((int)puVar24 >> 0x1f)) - (uint)(local_f0 < puVar20);\n          local_f0 = puVar20;\n          if (iVar22 == 0 && puVar20 == (undefined8 *)0x0) {\n            iVar17 = fd_read_line(param_2);\n            dVar25 = (double)CONCAT44(puVar15,puVar18);\n            if (iVar17 == 0) {\n              puVar24 = (undefined8 *)0xffffffff;\n              goto LAB_000518d4;\n            }\n            if (param_13 != (undefined8 *)0x0) {\n              puVar15 = (undefined8 *)(*(code *)PTR_strlen_000b7c94)(iVar17);\n              puVar9 = (undefined8 *)&DAT_00000001;\n              puVar18 = param_13;\n              (*(code *)PTR_fwrite_000b7c24)(iVar17,1);\n            }\n            (*(code *)PTR_free_000b7d34)(iVar17);\n          }\n        }\n        goto LAB_00051748;\n      }\n      if (*(double *)(PTR_opt_000b746c + 0x120) == 0.0) {\n        dVar31 = *(double *)(PTR_DAT_000b758c + -0x15e0);\n      }\n      else {\n        dVar25 = (double)ptimer_read(local_104);\n        puVar18 = SUB84(dVar30,0);\n        if (*(double *)(PTR_opt_000b746c + 0x120) <\n            (dVar25 - dVar29) + *(double *)(PTR_DAT_000b758c + -0x15e0)) {\n          dVar31 = *(double *)(PTR_opt_000b746c + 0x120) - (dVar25 - dVar29);\n          if (dVar31 < 0.0) {\n            puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n            *puVar10 = 0x91;\n            puVar20 = (undefined8 *)0xffffffff;\n            goto LAB_00051040;\n          }\n        }\n        else {\n          dVar31 = *(double *)(PTR_DAT_000b758c + -0x15e0);\n        }\n      }\n      puVar9 = puVar4;\n      puVar24 = (undefined8 *)(*(code *)PTR_fd_read_000b7770)(param_2,puVar4);\n      local_120 = dVar31;\n      if (-1 < (int)puVar24) goto LAB_000516fc;\n      piVar14 = (int *)(*(code *)PTR___errno_location_000b7eb8)();\n      dVar25 = (double)CONCAT44(puVar15,puVar18);\n      local_120._0_4_ = (undefined8 *)((ulonglong)dVar31 >> 0x20);\n      if (*piVar14 != 0x91) goto LAB_000518d4;\n      if (iVar7 == 0) {\n        if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n          ptimer_measure(local_104);\n          puVar24 = (undefined8 *)0x0;\n          goto LAB_00051748;\n        }\n        puVar24 = (undefined8 *)0x0;\nLAB_00051720:\n        dVar25 = (double)CONCAT44(puVar15,puVar18);\n        if (param_11 != (undefined8 *)0x0) {\n          ptimer_measure(local_104);\n          dVar31 = local_120;\n          if (0 < (int)puVar24) goto LAB_000515b0;\n          goto LAB_00051748;\n        }\n        if (0 < (int)puVar24) goto LAB_000515c4;\n      }\n      else {\n        ptimer_measure(local_104);\n        puVar24 = (undefined8 *)0x0;\nLAB_00051748:\n        local_120 = dVar31;\n        dVar25 = (double)CONCAT44(puVar15,puVar18);\n        if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n          dVar30 = (double)ptimer_read(local_104);\n          puVar21 = PTR_DAT_000b7720;\n          dVar30 = dVar30 - *(double *)(PTR_DAT_000b7720 + -0x2fe0);\n          puVar20 = (undefined8 *)((int)puVar24 + *(int *)(PTR_DAT_000b7720 + -0x2fe4));\n          iVar17 = (uint)(puVar20 < puVar24) +\n                   ((int)puVar24 >> 0x1f) + *(int *)(PTR_DAT_000b7720 + -0x2fe8);\n          *(int *)(PTR_DAT_000b7720 + -0x2fe8) = iVar17;\n          *(undefined8 **)(puVar21 + -0x2fe4) = puVar20;\n          dVar31 = (double)(*(code *)PTR_FUN_000b78f4)(iVar17,puVar20);\n          puVar9 = *(undefined8 **)(PTR_opt_000b746c + 0x15c);\n          dVar27 = (double)(*(code *)PTR_FUN_000b78f4)\n                                     (*(undefined4 *)(PTR_opt_000b746c + 0x158),puVar9);\n          dVar25 = (double)CONCAT44(puVar15,puVar18);\n          if (dVar30 < dVar31 / dVar27) {\n            dVar30 = (dVar31 / dVar27 - dVar30) + *(double *)(PTR_DAT_000b7720 + -0x2fd8);\n            if (dVar30 < dVar32) {\n              if (PTR_opt_000b746c[0x16b] != '\0') {\n                uVar11 = number_to_static_string(iVar17,puVar20);\n                local_120 = (double)((ulonglong)uVar11 << 0x20);\n                dVar25 = dVar30 * *(double *)(puVar2 + -0x15d8);\n                debug_logprintf(PTR_DAT_000b758c + -0x1864);\n                puVar9 = puVar20;\n              }\n              goto LAB_0005175c;\n            }\n            if (PTR_opt_000b746c[0x16b] != '\0') {\n              uVar11 = number_to_static_string(iVar17,puVar20);\n              local_120 = (double)((ulonglong)uVar11 << 0x20);\n              dVar25 = dVar30 * dVar28;\n              debug_logprintf(PTR_DAT_000b758c + -0x183c);\n              puVar9 = puVar20;\n            }\n            dVar31 = (double)ptimer_read(local_104);\n            xsleep(dVar30);\n            dVar27 = (double)ptimer_measure(local_104);\n            dVar30 = dVar30 - (dVar27 - dVar31);\n            if (dVar33 < dVar30) {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x2580);\n            }\n            else if (dVar34 <= dVar30) {\n              *(double *)(PTR_DAT_000b7720 + -0x2fd8) = dVar30;\n            }\n            else {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x15d0);\n            }\n          }\n          puVar21 = PTR_DAT_000b7720;\n          *(undefined4 *)(PTR_DAT_000b7720 + -0x2fe4) = 0;\n          *(undefined4 *)(puVar21 + -0x2fe8) = 0;\n          uVar26 = ptimer_read(local_104);\n          *(undefined8 *)(puVar21 + -0x2fe0) = uVar26;\n        }\n      }\nLAB_0005175c:\n      if (iVar7 != 0) {\n        local_120 = (double)ptimer_read(local_104);\n        iVar17 = (int)puVar24 >> 0x1f;\n        puVar20 = puVar24;\n        progress_update(iVar7);\n        dVar25 = (double)CONCAT44(iVar17,puVar20);\n      }\n    }\n    dVar31 = *(double *)(PTR_opt_000b746c + 0x120);\n    if (uVar5 == 0) {\nLAB_00051864:\n      puVar15 = puVar20;\n      dVar30 = dVar25;\n      goto LAB_00051868;\n    }\nLAB_00051820:\n    if (iVar22 != 0 || local_f0 != (undefined8 *)0x0) {\nLAB_00051830:\n      puVar20 = local_f0;\n      if ((iVar17 <= iVar22) &&\n         ((puVar15 = local_e0, dVar30 = dVar25, iVar17 != iVar22 ||\n          (puVar20 = local_f0, local_e0 <= local_f0)))) goto LAB_00051868;\n      goto LAB_00051864;\n    }\n    iVar13 = fd_read_line(param_2);\n    puVar20 = SUB84(dVar25,0);\n    if (iVar13 == 0) {\nLAB_00050e90:\n      puVar24 = (undefined8 *)0xffffffff;\nLAB_000518d4:\n      bVar1 = (int)puVar24 < 0;\n      dVar30 = dVar25;\nLAB_000518d8:\n      puVar20 = (undefined8 *)0xffffffff;\n      puVar3 = local_120._0_4_;\n      if (!bVar1) {\n        puVar20 = puVar24;\n      }\n    }\n    else {\n      if (param_13 != (undefined8 *)0x0) {\n        uVar8 = (*(code *)PTR_strlen_000b7c94)(iVar13);\n        puVar20 = param_13;\n        (*(code *)PTR_fwrite_000b7c24)(iVar13,1,uVar8);\n      }\n      uVar8 = 0x10;\n      puVar9 = (undefined8 *)auStack_ac;\n      local_f0 = (undefined8 *)(*(code *)PTR_strtol_000b7d3c)(iVar13,puVar9);\n      iVar22 = (int)local_f0 >> 0x1f;\n      (*(code *)PTR_free_000b7d34)(iVar13);\n      dVar25 = (double)CONCAT44(uVar8,puVar20);\n      if (iVar22 < 0) goto LAB_00050e90;\n      if (local_f0 != (undefined8 *)0x0) goto LAB_00051830;\n      iVar22 = fd_read_line(param_2);\n      dVar30 = (double)CONCAT44(uVar8,puVar20);\n      if (iVar22 == 0) {\n        puVar20 = (undefined8 *)0xffffffff;\n      }\n      else {\n        if (param_13 != (undefined8 *)0x0) {\n          uVar8 = (*(code *)PTR_strlen_000b7c94)(iVar22);\n          puVar9 = (undefined8 *)&DAT_00000001;\n          (*(code *)PTR_fwrite_000b7c24)(iVar22,1);\n          puVar20 = param_13;\n        }\n        (*(code *)PTR_free_000b7d34)(iVar22);\n        dVar30 = (double)CONCAT44(uVar8,puVar20);\n        puVar20 = (undefined8 *)0x0;\n      }\n    }\nLAB_00051040:\n    local_120._0_4_ = puVar3;\n    if (iVar7 != 0) {\n      uVar26 = ptimer_read(local_104);\n      uVar19 = (undefined4)uVar26;\n      uVar8 = (undefined4)((ulonglong)uVar26 >> 0x20);\n      progress_finish(iVar7);\n      dVar30 = (double)CONCAT44(uVar8,uVar19);\n    }\n    if (param_11 != (undefined8 *)0x0) goto LAB_00051080;\n  }\n  else {\n    local_100 = (undefined8 *)(*(code *)PTR_xmalloc_000b7480)(0x8000);\n    if (local_100 == (undefined8 *)0x0) {\n      puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n      *puVar10 = 0xc;\n    }\n    else {\n      local_74 = PTR_LAB_000b78e4 + 0x368;\n      local_70 = PTR_LAB_000b78e4 + 0x330;\n      local_6c = 0;\n      local_94 = (undefined8 *)0x0;\n      local_90 = (undefined8 *)0x0;\n      param_4 = (undefined1 *)0x38;\n      puVar21 = PTR_DAT_000b758c + -0x18a0;\n      puVar9 = (undefined8 *)0x2f;\n      iVar6 = (*(code *)PTR_inflateInit2__000b7d68)(&local_94,0x2f);\n      if (iVar6 == 0) goto LAB_00050b74;\n      (*(code *)PTR_free_000b7d34)(local_100);\n      uVar8 = 0x16;\n      if (iVar6 == -4) {\n        uVar8 = 0xc;\n      }\n      puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n      *puVar10 = uVar8;\n    }\n    dVar30 = (double)CONCAT44(puVar21,param_4);\n    local_100 = param_11;\n    if (param_11 == (undefined8 *)0x0) {\n      iVar6 = 0;\n      local_fc = (undefined8 *)0x0;\n      puVar20 = (undefined8 *)0xffffffff;\n      goto LAB_000510b8;\n    }\n    local_100 = (undefined8 *)0x0;\n    iVar6 = 0;\n    local_fc = (undefined8 *)0x0;\n    local_104 = (undefined8 *)0x0;\n    puVar20 = (undefined8 *)0xffffffff;\nLAB_00051080:\n    uVar26 = ptimer_read(local_104);\n    *param_11 = uVar26;\n  }" (if "if") (parenthesized_expression "((param_12 & 8) == 0)" (( "(") (binary_expression "(param_12 & 8) == 0" (parenthesized_expression "(param_12 & 8)" (( "(") (binary_expression "param_12 & 8" (identifier "param_12") (& "&") (number_literal "8")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    local_100 = (undefined8 *)0x0;\nLAB_00050b74:\n    if ((param_12 & 2) != 0) {\n      auStack_ac._4_4_ = param_7;\n      local_a4 = param_8;\n    }\n    if (*(int *)(PTR_opt_000b746c + 0x10c) == 0) {\n      iVar7 = 0;\n      if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n        local_e4 = 0;\n        goto LAB_00051950;\n      }\n      local_e4 = 0;\nLAB_00051978:\n      if (param_11 != (undefined8 *)0x0) goto LAB_00050c48;\n      local_104 = param_11;\n      local_e0 = (undefined8 *)0x2000;\n    }\n    else {\n      param_4 = param_8;\n      puVar21 = param_7;\n      if ((undefined *)auStack_ac._4_4_ != (undefined *)0x0 || local_a4 != (undefined1 *)0x0) {\n        puVar21 = (undefined *)0x0;\n        param_4 = (undefined1 *)0x0;\n      }\n      if (*(int *)(PTR_opt_000b746c + 0x30) != 0) {\n        iVar6 = (*(code *)PTR_strlen_000b7c94)();\n        param_1 = param_1 + iVar6 + 1;\n      }\n      local_120 = (double)CONCAT44(puVar21 + (uint)(param_4 + (int)param_6 < param_4) + param_5,\n                                   param_4 + (int)param_6);\n      iVar7 = progress_create(param_1);\n      local_e4 = progress_interactive_p(iVar7);\n      if (*(int *)(PTR_opt_000b746c + 0x158) == 0 && *(int *)(PTR_opt_000b746c + 0x15c) == 0) {\n        if (iVar7 == 0) goto LAB_00051978;\n      }\n      else {\nLAB_00051950:\n        puVar2 = PTR_DAT_000b7720;\n        *(undefined4 *)(PTR_DAT_000b7720 + -0x2fe8) = 0;\n        *(undefined4 *)(puVar2 + -0x2fe4) = 0;\n        *(undefined4 *)(puVar2 + -0x2fe0) = 0;\n        *(undefined4 *)(puVar2 + -0x2fdc) = 0;\n        *(undefined4 *)(puVar2 + -0x2fd8) = 0;\n        *(undefined4 *)(puVar2 + -0x2fd4) = 0;\n      }\nLAB_00050c48:\n      local_104 = (undefined8 *)ptimer_new();\n      iVar6 = *(int *)(PTR_opt_000b746c + 0x158);\n      local_e0 = *(undefined8 **)(PTR_opt_000b746c + 0x15c);\n      if (iVar6 == 0 && local_e0 == (undefined8 *)0x0) {\n        local_e0 = (undefined8 *)0x2000;\n      }\n      else if ((0 < iVar6) || ((iVar6 == 0 && ((undefined8 *)0x1fff < local_e0)))) {\n        local_e0 = (undefined8 *)0x2000;\n      }\n    }\n    puVar2 = PTR_DAT_000b758c;\n    dVar25 = (double)CONCAT44(puVar21,param_4);\n    iVar22 = 0;\n    local_f0 = (undefined8 *)0x0;\n    iVar6 = 0;\n    local_fc = (undefined8 *)0x0;\n    dVar29 = 0.0;\n    puVar24 = (undefined8 *)0x0;\n    dVar32 = *(double *)(PTR_DAT_000b758c + -0x2340);\n    dVar33 = *(double *)(PTR_DAT_000b758c + -0x2580);\n    dVar34 = *(double *)(PTR_DAT_000b758c + -0x15d0);\n    dVar28 = *(double *)(PTR_DAT_000b758c + -0x15d8);\n    while( true ) {\n      uVar8 = SUB84(dVar25,0);\n      iVar17 = (int)local_e0 >> 0x1f;\n      puVar20 = local_e0;\n      puVar3 = local_120._0_4_;\n      if ((param_12 & 1) == 0) break;\n      if (param_5 <= iVar6) {\n        if (param_5 != iVar6) goto LAB_000518d4;\n        if (local_fc < param_6) goto LAB_000517b0;\n        bVar1 = (int)puVar24 < 0;\n        dVar30 = dVar25;\n        goto LAB_000518d8;\n      }\nLAB_000517b0:\n      dVar31 = *(double *)(PTR_opt_000b746c + 0x120);\n      if (uVar5 != 0) goto LAB_00051820;\n      puVar15 = (undefined8 *)((int)param_6 - (int)local_fc);\n      iVar13 = (param_5 - iVar6) - (uint)(param_6 < puVar15);\n      dVar25 = (double)CONCAT44(iVar13,uVar8);\n      puVar9 = local_e0;\n      if ((iVar17 < iVar13) ||\n         ((dVar30 = (double)CONCAT44(iVar13,uVar8), iVar13 == iVar17 &&\n          (dVar30 = (double)CONCAT44(iVar13,uVar8), local_e0 < puVar15)))) goto LAB_00051864;\nLAB_00051868:\n      puVar18 = SUB84(dVar30,0);\n      if (local_e4 == 0) {\n        puVar9 = puVar4;\n        puVar24 = (undefined8 *)(*(code *)PTR_fd_read_000b7770)(param_2,puVar4);\n        local_120 = dVar31;\nLAB_000516fc:\n        bVar1 = (int)puVar24 < 0;\n        dVar30 = (double)CONCAT44(puVar15,puVar18);\n        if ((int)puVar24 < 1) goto LAB_000518d8;\n        if (iVar7 == 0) {\n          if (*(int *)(PTR_opt_000b746c + 0x158) == 0 && *(int *)(PTR_opt_000b746c + 0x15c) == 0)\n          goto LAB_00051720;\n          ptimer_measure(local_104);\n        }\n        else {\n          ptimer_measure(local_104);\n        }\nLAB_000515b0:\n        dVar29 = (double)ptimer_read(local_104);\nLAB_000515c4:\n        puVar12 = (undefined8 *)((int)local_fc + (int)puVar24);\n        iVar6 = (uint)(puVar12 < local_fc) + iVar6 + ((int)puVar24 >> 0x1f);\n        puVar9 = param_13;\n        puVar15 = puVar4;\n        puVar18 = puVar24;\n        local_fc = puVar12;\n        if (local_100 == (undefined8 *)0x0) {\n          local_120 = (double)(ZEXT48(auStack_ac + 4) << 0x20);\n          puVar20 = (undefined8 *)FUN_000503a4(param_3,param_13);\n          dVar30 = (double)CONCAT44(puVar15,puVar18);\n          puVar3 = (undefined8 *)(auStack_ac + 4);\n          if ((int)puVar20 < 0) goto LAB_00051040;\n        }\n        else {\n          local_120 = 0.0;\n          local_120._0_4_ = (undefined8 *)0x0;\n          puVar20 = (undefined8 *)FUN_000503a4(0,param_13);\n          dVar30 = (double)CONCAT44(puVar15,puVar18);\n          puVar3 = local_120._0_4_;\n          if ((int)puVar20 < 0) goto LAB_00051040;\n          puVar21 = PTR_DAT_000b758c + -0x1898;\n          pcVar23 = (code *)(PTR_LAB_000b78e4 + 0x3a4);\n          local_94 = puVar4;\n          local_90 = puVar24;\n          do {\n            local_84 = 0x8000;\n            local_88 = local_100;\n            puVar9 = (undefined8 *)0x0;\n            iVar17 = (*(code *)PTR_inflate_000b7d40)(&local_94,0);\n            puVar3 = local_120._0_4_;\n            if (iVar17 == -3) {\nLAB_000511f4:\n              puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n              dVar30 = (double)CONCAT44(puVar15,puVar18);\n              *puVar10 = 0x16;\n              puVar20 = (undefined8 *)0xffffffff;\n              goto LAB_00051040;\n            }\n            if (iVar17 < -2) {\n              if (iVar17 == -4) {\n                puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n                dVar30 = (double)CONCAT44(puVar15,puVar18);\n                *puVar10 = 0xc;\n                puVar20 = (undefined8 *)0xffffffff;\n                goto LAB_00051040;\n              }\n            }\n            else if (iVar17 == 1) {\n              if (((param_12 & 1) != 0) &&\n                 (((param_5 != iVar6 || (param_6 != puVar12)) && (PTR_opt_000b746c[0x16b] != '\0')))\n                 ) {\n                debug_logprintf(puVar21);\n              }\n            }\n            else if (iVar17 == 2) goto LAB_000511f4;\n            local_120 = (double)(ZEXT48(auStack_ac + 4) << 0x20);\n            puVar18 = (undefined8 *)(0x8000 - local_84);\n            puVar9 = (undefined8 *)0x0;\n            puVar15 = local_100;\n            puVar20 = (undefined8 *)(*pcVar23)(param_3,0);\n            dVar30 = (double)CONCAT44(puVar15,puVar18);\n            puVar3 = (undefined8 *)(auStack_ac + 4);\n            if ((int)puVar20 < 0) goto LAB_00051040;\n          } while (local_84 == 0);\n        }\n        dVar31 = local_120;\n        if (uVar5 != 0) {\n          puVar20 = (undefined8 *)((int)local_f0 - (int)puVar24);\n          iVar22 = (iVar22 - ((int)puVar24 >> 0x1f)) - (uint)(local_f0 < puVar20);\n          local_f0 = puVar20;\n          if (iVar22 == 0 && puVar20 == (undefined8 *)0x0) {\n            iVar17 = fd_read_line(param_2);\n            dVar25 = (double)CONCAT44(puVar15,puVar18);\n            if (iVar17 == 0) {\n              puVar24 = (undefined8 *)0xffffffff;\n              goto LAB_000518d4;\n            }\n            if (param_13 != (undefined8 *)0x0) {\n              puVar15 = (undefined8 *)(*(code *)PTR_strlen_000b7c94)(iVar17);\n              puVar9 = (undefined8 *)&DAT_00000001;\n              puVar18 = param_13;\n              (*(code *)PTR_fwrite_000b7c24)(iVar17,1);\n            }\n            (*(code *)PTR_free_000b7d34)(iVar17);\n          }\n        }\n        goto LAB_00051748;\n      }\n      if (*(double *)(PTR_opt_000b746c + 0x120) == 0.0) {\n        dVar31 = *(double *)(PTR_DAT_000b758c + -0x15e0);\n      }\n      else {\n        dVar25 = (double)ptimer_read(local_104);\n        puVar18 = SUB84(dVar30,0);\n        if (*(double *)(PTR_opt_000b746c + 0x120) <\n            (dVar25 - dVar29) + *(double *)(PTR_DAT_000b758c + -0x15e0)) {\n          dVar31 = *(double *)(PTR_opt_000b746c + 0x120) - (dVar25 - dVar29);\n          if (dVar31 < 0.0) {\n            puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n            *puVar10 = 0x91;\n            puVar20 = (undefined8 *)0xffffffff;\n            goto LAB_00051040;\n          }\n        }\n        else {\n          dVar31 = *(double *)(PTR_DAT_000b758c + -0x15e0);\n        }\n      }\n      puVar9 = puVar4;\n      puVar24 = (undefined8 *)(*(code *)PTR_fd_read_000b7770)(param_2,puVar4);\n      local_120 = dVar31;\n      if (-1 < (int)puVar24) goto LAB_000516fc;\n      piVar14 = (int *)(*(code *)PTR___errno_location_000b7eb8)();\n      dVar25 = (double)CONCAT44(puVar15,puVar18);\n      local_120._0_4_ = (undefined8 *)((ulonglong)dVar31 >> 0x20);\n      if (*piVar14 != 0x91) goto LAB_000518d4;\n      if (iVar7 == 0) {\n        if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n          ptimer_measure(local_104);\n          puVar24 = (undefined8 *)0x0;\n          goto LAB_00051748;\n        }\n        puVar24 = (undefined8 *)0x0;\nLAB_00051720:\n        dVar25 = (double)CONCAT44(puVar15,puVar18);\n        if (param_11 != (undefined8 *)0x0) {\n          ptimer_measure(local_104);\n          dVar31 = local_120;\n          if (0 < (int)puVar24) goto LAB_000515b0;\n          goto LAB_00051748;\n        }\n        if (0 < (int)puVar24) goto LAB_000515c4;\n      }\n      else {\n        ptimer_measure(local_104);\n        puVar24 = (undefined8 *)0x0;\nLAB_00051748:\n        local_120 = dVar31;\n        dVar25 = (double)CONCAT44(puVar15,puVar18);\n        if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n          dVar30 = (double)ptimer_read(local_104);\n          puVar21 = PTR_DAT_000b7720;\n          dVar30 = dVar30 - *(double *)(PTR_DAT_000b7720 + -0x2fe0);\n          puVar20 = (undefined8 *)((int)puVar24 + *(int *)(PTR_DAT_000b7720 + -0x2fe4));\n          iVar17 = (uint)(puVar20 < puVar24) +\n                   ((int)puVar24 >> 0x1f) + *(int *)(PTR_DAT_000b7720 + -0x2fe8);\n          *(int *)(PTR_DAT_000b7720 + -0x2fe8) = iVar17;\n          *(undefined8 **)(puVar21 + -0x2fe4) = puVar20;\n          dVar31 = (double)(*(code *)PTR_FUN_000b78f4)(iVar17,puVar20);\n          puVar9 = *(undefined8 **)(PTR_opt_000b746c + 0x15c);\n          dVar27 = (double)(*(code *)PTR_FUN_000b78f4)\n                                     (*(undefined4 *)(PTR_opt_000b746c + 0x158),puVar9);\n          dVar25 = (double)CONCAT44(puVar15,puVar18);\n          if (dVar30 < dVar31 / dVar27) {\n            dVar30 = (dVar31 / dVar27 - dVar30) + *(double *)(PTR_DAT_000b7720 + -0x2fd8);\n            if (dVar30 < dVar32) {\n              if (PTR_opt_000b746c[0x16b] != '\0') {\n                uVar11 = number_to_static_string(iVar17,puVar20);\n                local_120 = (double)((ulonglong)uVar11 << 0x20);\n                dVar25 = dVar30 * *(double *)(puVar2 + -0x15d8);\n                debug_logprintf(PTR_DAT_000b758c + -0x1864);\n                puVar9 = puVar20;\n              }\n              goto LAB_0005175c;\n            }\n            if (PTR_opt_000b746c[0x16b] != '\0') {\n              uVar11 = number_to_static_string(iVar17,puVar20);\n              local_120 = (double)((ulonglong)uVar11 << 0x20);\n              dVar25 = dVar30 * dVar28;\n              debug_logprintf(PTR_DAT_000b758c + -0x183c);\n              puVar9 = puVar20;\n            }\n            dVar31 = (double)ptimer_read(local_104);\n            xsleep(dVar30);\n            dVar27 = (double)ptimer_measure(local_104);\n            dVar30 = dVar30 - (dVar27 - dVar31);\n            if (dVar33 < dVar30) {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x2580);\n            }\n            else if (dVar34 <= dVar30) {\n              *(double *)(PTR_DAT_000b7720 + -0x2fd8) = dVar30;\n            }\n            else {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x15d0);\n            }\n          }\n          puVar21 = PTR_DAT_000b7720;\n          *(undefined4 *)(PTR_DAT_000b7720 + -0x2fe4) = 0;\n          *(undefined4 *)(puVar21 + -0x2fe8) = 0;\n          uVar26 = ptimer_read(local_104);\n          *(undefined8 *)(puVar21 + -0x2fe0) = uVar26;\n        }\n      }\nLAB_0005175c:\n      if (iVar7 != 0) {\n        local_120 = (double)ptimer_read(local_104);\n        iVar17 = (int)puVar24 >> 0x1f;\n        puVar20 = puVar24;\n        progress_update(iVar7);\n        dVar25 = (double)CONCAT44(iVar17,puVar20);\n      }\n    }\n    dVar31 = *(double *)(PTR_opt_000b746c + 0x120);\n    if (uVar5 == 0) {\nLAB_00051864:\n      puVar15 = puVar20;\n      dVar30 = dVar25;\n      goto LAB_00051868;\n    }\nLAB_00051820:\n    if (iVar22 != 0 || local_f0 != (undefined8 *)0x0) {\nLAB_00051830:\n      puVar20 = local_f0;\n      if ((iVar17 <= iVar22) &&\n         ((puVar15 = local_e0, dVar30 = dVar25, iVar17 != iVar22 ||\n          (puVar20 = local_f0, local_e0 <= local_f0)))) goto LAB_00051868;\n      goto LAB_00051864;\n    }\n    iVar13 = fd_read_line(param_2);\n    puVar20 = SUB84(dVar25,0);\n    if (iVar13 == 0) {\nLAB_00050e90:\n      puVar24 = (undefined8 *)0xffffffff;\nLAB_000518d4:\n      bVar1 = (int)puVar24 < 0;\n      dVar30 = dVar25;\nLAB_000518d8:\n      puVar20 = (undefined8 *)0xffffffff;\n      puVar3 = local_120._0_4_;\n      if (!bVar1) {\n        puVar20 = puVar24;\n      }\n    }\n    else {\n      if (param_13 != (undefined8 *)0x0) {\n        uVar8 = (*(code *)PTR_strlen_000b7c94)(iVar13);\n        puVar20 = param_13;\n        (*(code *)PTR_fwrite_000b7c24)(iVar13,1,uVar8);\n      }\n      uVar8 = 0x10;\n      puVar9 = (undefined8 *)auStack_ac;\n      local_f0 = (undefined8 *)(*(code *)PTR_strtol_000b7d3c)(iVar13,puVar9);\n      iVar22 = (int)local_f0 >> 0x1f;\n      (*(code *)PTR_free_000b7d34)(iVar13);\n      dVar25 = (double)CONCAT44(uVar8,puVar20);\n      if (iVar22 < 0) goto LAB_00050e90;\n      if (local_f0 != (undefined8 *)0x0) goto LAB_00051830;\n      iVar22 = fd_read_line(param_2);\n      dVar30 = (double)CONCAT44(uVar8,puVar20);\n      if (iVar22 == 0) {\n        puVar20 = (undefined8 *)0xffffffff;\n      }\n      else {\n        if (param_13 != (undefined8 *)0x0) {\n          uVar8 = (*(code *)PTR_strlen_000b7c94)(iVar22);\n          puVar9 = (undefined8 *)&DAT_00000001;\n          (*(code *)PTR_fwrite_000b7c24)(iVar22,1);\n          puVar20 = param_13;\n        }\n        (*(code *)PTR_free_000b7d34)(iVar22);\n        dVar30 = (double)CONCAT44(uVar8,puVar20);\n        puVar20 = (undefined8 *)0x0;\n      }\n    }\nLAB_00051040:\n    local_120._0_4_ = puVar3;\n    if (iVar7 != 0) {\n      uVar26 = ptimer_read(local_104);\n      uVar19 = (undefined4)uVar26;\n      uVar8 = (undefined4)((ulonglong)uVar26 >> 0x20);\n      progress_finish(iVar7);\n      dVar30 = (double)CONCAT44(uVar8,uVar19);\n    }\n    if (param_11 != (undefined8 *)0x0) goto LAB_00051080;\n  }" ({ "{") (expression_statement "local_100 = (undefined8 *)0x0;" (assignment_expression "local_100 = (undefined8 *)0x0" (identifier "local_100") (= "=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (labeled_statement "LAB_00050b74:\n    if ((param_12 & 2) != 0) {\n      auStack_ac._4_4_ = param_7;\n      local_a4 = param_8;\n    }" (statement_identifier "LAB_00050b74") (: ":") (if_statement "if ((param_12 & 2) != 0) {\n      auStack_ac._4_4_ = param_7;\n      local_a4 = param_8;\n    }" (if "if") (parenthesized_expression "((param_12 & 2) != 0)" (( "(") (binary_expression "(param_12 & 2) != 0" (parenthesized_expression "(param_12 & 2)" (( "(") (binary_expression "param_12 & 2" (identifier "param_12") (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      auStack_ac._4_4_ = param_7;\n      local_a4 = param_8;\n    }" ({ "{") (expression_statement "auStack_ac._4_4_ = param_7;" (assignment_expression "auStack_ac._4_4_ = param_7" (field_expression "auStack_ac._4_4_" (identifier "auStack_ac") (. ".") (field_identifier "_4_4_")) (= "=") (identifier "param_7")) (; ";")) (expression_statement "local_a4 = param_8;" (assignment_expression "local_a4 = param_8" (identifier "local_a4") (= "=") (identifier "param_8")) (; ";")) (} "}")))) (if_statement "if (*(int *)(PTR_opt_000b746c + 0x10c) == 0) {\n      iVar7 = 0;\n      if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n        local_e4 = 0;\n        goto LAB_00051950;\n      }\n      local_e4 = 0;\nLAB_00051978:\n      if (param_11 != (undefined8 *)0x0) goto LAB_00050c48;\n      local_104 = param_11;\n      local_e0 = (undefined8 *)0x2000;\n    }\n    else {\n      param_4 = param_8;\n      puVar21 = param_7;\n      if ((undefined *)auStack_ac._4_4_ != (undefined *)0x0 || local_a4 != (undefined1 *)0x0) {\n        puVar21 = (undefined *)0x0;\n        param_4 = (undefined1 *)0x0;\n      }\n      if (*(int *)(PTR_opt_000b746c + 0x30) != 0) {\n        iVar6 = (*(code *)PTR_strlen_000b7c94)();\n        param_1 = param_1 + iVar6 + 1;\n      }\n      local_120 = (double)CONCAT44(puVar21 + (uint)(param_4 + (int)param_6 < param_4) + param_5,\n                                   param_4 + (int)param_6);\n      iVar7 = progress_create(param_1);\n      local_e4 = progress_interactive_p(iVar7);\n      if (*(int *)(PTR_opt_000b746c + 0x158) == 0 && *(int *)(PTR_opt_000b746c + 0x15c) == 0) {\n        if (iVar7 == 0) goto LAB_00051978;\n      }\n      else {\nLAB_00051950:\n        puVar2 = PTR_DAT_000b7720;\n        *(undefined4 *)(PTR_DAT_000b7720 + -0x2fe8) = 0;\n        *(undefined4 *)(puVar2 + -0x2fe4) = 0;\n        *(undefined4 *)(puVar2 + -0x2fe0) = 0;\n        *(undefined4 *)(puVar2 + -0x2fdc) = 0;\n        *(undefined4 *)(puVar2 + -0x2fd8) = 0;\n        *(undefined4 *)(puVar2 + -0x2fd4) = 0;\n      }\nLAB_00050c48:\n      local_104 = (undefined8 *)ptimer_new();\n      iVar6 = *(int *)(PTR_opt_000b746c + 0x158);\n      local_e0 = *(undefined8 **)(PTR_opt_000b746c + 0x15c);\n      if (iVar6 == 0 && local_e0 == (undefined8 *)0x0) {\n        local_e0 = (undefined8 *)0x2000;\n      }\n      else if ((0 < iVar6) || ((iVar6 == 0 && ((undefined8 *)0x1fff < local_e0)))) {\n        local_e0 = (undefined8 *)0x2000;\n      }\n    }" (if "if") (parenthesized_expression "(*(int *)(PTR_opt_000b746c + 0x10c) == 0)" (( "(") (binary_expression "*(int *)(PTR_opt_000b746c + 0x10c) == 0" (pointer_expression "*(int *)(PTR_opt_000b746c + 0x10c)" (* "*") (cast_expression "(int *)(PTR_opt_000b746c + 0x10c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_opt_000b746c + 0x10c)" (( "(") (binary_expression "PTR_opt_000b746c + 0x10c" (identifier "PTR_opt_000b746c") (+ "+") (number_literal "0x10c")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      iVar7 = 0;\n      if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n        local_e4 = 0;\n        goto LAB_00051950;\n      }\n      local_e4 = 0;\nLAB_00051978:\n      if (param_11 != (undefined8 *)0x0) goto LAB_00050c48;\n      local_104 = param_11;\n      local_e0 = (undefined8 *)0x2000;\n    }" ({ "{") (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" (identifier "iVar7") (= "=") (number_literal "0")) (; ";")) (if_statement "if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n        local_e4 = 0;\n        goto LAB_00051950;\n      }" (if "if") (parenthesized_expression "(*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0)" (( "(") (binary_expression "*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0" (binary_expression "*(int *)(PTR_opt_000b746c + 0x158) != 0" (pointer_expression "*(int *)(PTR_opt_000b746c + 0x158)" (* "*") (cast_expression "(int *)(PTR_opt_000b746c + 0x158)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_opt_000b746c + 0x158)" (( "(") (binary_expression "PTR_opt_000b746c + 0x158" (identifier "PTR_opt_000b746c") (+ "+") (number_literal "0x158")) () ")")))) (!= "!=") (number_literal "0")) (|| "||") (binary_expression "*(int *)(PTR_opt_000b746c + 0x15c) != 0" (pointer_expression "*(int *)(PTR_opt_000b746c + 0x15c)" (* "*") (cast_expression "(int *)(PTR_opt_000b746c + 0x15c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_opt_000b746c + 0x15c)" (( "(") (binary_expression "PTR_opt_000b746c + 0x15c" (identifier "PTR_opt_000b746c") (+ "+") (number_literal "0x15c")) () ")")))) (!= "!=") (number_literal "0"))) () ")")) (compound_statement "{\n        local_e4 = 0;\n        goto LAB_00051950;\n      }" ({ "{") (expression_statement "local_e4 = 0;" (assignment_expression "local_e4 = 0" (identifier "local_e4") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_00051950;" (goto "goto") (statement_identifier "LAB_00051950") (; ";")) (} "}"))) (expression_statement "local_e4 = 0;" (assignment_expression "local_e4 = 0" (identifier "local_e4") (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_00051978:\n      if (param_11 != (undefined8 *)0x0) goto LAB_00050c48;" (statement_identifier "LAB_00051978") (: ":") (if_statement "if (param_11 != (undefined8 *)0x0) goto LAB_00050c48;" (if "if") (parenthesized_expression "(param_11 != (undefined8 *)0x0)" (( "(") (binary_expression "param_11 != (undefined8 *)0x0" (identifier "param_11") (!= "!=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00050c48;" (goto "goto") (statement_identifier "LAB_00050c48") (; ";")))) (expression_statement "local_104 = param_11;" (assignment_expression "local_104 = param_11" (identifier "local_104") (= "=") (identifier "param_11")) (; ";")) (expression_statement "local_e0 = (undefined8 *)0x2000;" (assignment_expression "local_e0 = (undefined8 *)0x2000" (identifier "local_e0") (= "=") (cast_expression "(undefined8 *)0x2000" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x2000"))) (; ";")) (} "}")) (else_clause "else {\n      param_4 = param_8;\n      puVar21 = param_7;\n      if ((undefined *)auStack_ac._4_4_ != (undefined *)0x0 || local_a4 != (undefined1 *)0x0) {\n        puVar21 = (undefined *)0x0;\n        param_4 = (undefined1 *)0x0;\n      }\n      if (*(int *)(PTR_opt_000b746c + 0x30) != 0) {\n        iVar6 = (*(code *)PTR_strlen_000b7c94)();\n        param_1 = param_1 + iVar6 + 1;\n      }\n      local_120 = (double)CONCAT44(puVar21 + (uint)(param_4 + (int)param_6 < param_4) + param_5,\n                                   param_4 + (int)param_6);\n      iVar7 = progress_create(param_1);\n      local_e4 = progress_interactive_p(iVar7);\n      if (*(int *)(PTR_opt_000b746c + 0x158) == 0 && *(int *)(PTR_opt_000b746c + 0x15c) == 0) {\n        if (iVar7 == 0) goto LAB_00051978;\n      }\n      else {\nLAB_00051950:\n        puVar2 = PTR_DAT_000b7720;\n        *(undefined4 *)(PTR_DAT_000b7720 + -0x2fe8) = 0;\n        *(undefined4 *)(puVar2 + -0x2fe4) = 0;\n        *(undefined4 *)(puVar2 + -0x2fe0) = 0;\n        *(undefined4 *)(puVar2 + -0x2fdc) = 0;\n        *(undefined4 *)(puVar2 + -0x2fd8) = 0;\n        *(undefined4 *)(puVar2 + -0x2fd4) = 0;\n      }\nLAB_00050c48:\n      local_104 = (undefined8 *)ptimer_new();\n      iVar6 = *(int *)(PTR_opt_000b746c + 0x158);\n      local_e0 = *(undefined8 **)(PTR_opt_000b746c + 0x15c);\n      if (iVar6 == 0 && local_e0 == (undefined8 *)0x0) {\n        local_e0 = (undefined8 *)0x2000;\n      }\n      else if ((0 < iVar6) || ((iVar6 == 0 && ((undefined8 *)0x1fff < local_e0)))) {\n        local_e0 = (undefined8 *)0x2000;\n      }\n    }" (else "else") (compound_statement "{\n      param_4 = param_8;\n      puVar21 = param_7;\n      if ((undefined *)auStack_ac._4_4_ != (undefined *)0x0 || local_a4 != (undefined1 *)0x0) {\n        puVar21 = (undefined *)0x0;\n        param_4 = (undefined1 *)0x0;\n      }\n      if (*(int *)(PTR_opt_000b746c + 0x30) != 0) {\n        iVar6 = (*(code *)PTR_strlen_000b7c94)();\n        param_1 = param_1 + iVar6 + 1;\n      }\n      local_120 = (double)CONCAT44(puVar21 + (uint)(param_4 + (int)param_6 < param_4) + param_5,\n                                   param_4 + (int)param_6);\n      iVar7 = progress_create(param_1);\n      local_e4 = progress_interactive_p(iVar7);\n      if (*(int *)(PTR_opt_000b746c + 0x158) == 0 && *(int *)(PTR_opt_000b746c + 0x15c) == 0) {\n        if (iVar7 == 0) goto LAB_00051978;\n      }\n      else {\nLAB_00051950:\n        puVar2 = PTR_DAT_000b7720;\n        *(undefined4 *)(PTR_DAT_000b7720 + -0x2fe8) = 0;\n        *(undefined4 *)(puVar2 + -0x2fe4) = 0;\n        *(undefined4 *)(puVar2 + -0x2fe0) = 0;\n        *(undefined4 *)(puVar2 + -0x2fdc) = 0;\n        *(undefined4 *)(puVar2 + -0x2fd8) = 0;\n        *(undefined4 *)(puVar2 + -0x2fd4) = 0;\n      }\nLAB_00050c48:\n      local_104 = (undefined8 *)ptimer_new();\n      iVar6 = *(int *)(PTR_opt_000b746c + 0x158);\n      local_e0 = *(undefined8 **)(PTR_opt_000b746c + 0x15c);\n      if (iVar6 == 0 && local_e0 == (undefined8 *)0x0) {\n        local_e0 = (undefined8 *)0x2000;\n      }\n      else if ((0 < iVar6) || ((iVar6 == 0 && ((undefined8 *)0x1fff < local_e0)))) {\n        local_e0 = (undefined8 *)0x2000;\n      }\n    }" ({ "{") (expression_statement "param_4 = param_8;" (assignment_expression "param_4 = param_8" (identifier "param_4") (= "=") (identifier "param_8")) (; ";")) (expression_statement "puVar21 = param_7;" (assignment_expression "puVar21 = param_7" (identifier "puVar21") (= "=") (identifier "param_7")) (; ";")) (if_statement "if ((undefined *)auStack_ac._4_4_ != (undefined *)0x0 || local_a4 != (undefined1 *)0x0) {\n        puVar21 = (undefined *)0x0;\n        param_4 = (undefined1 *)0x0;\n      }" (if "if") (parenthesized_expression "((undefined *)auStack_ac._4_4_ != (undefined *)0x0 || local_a4 != (undefined1 *)0x0)" (( "(") (binary_expression "(undefined *)auStack_ac._4_4_ != (undefined *)0x0 || local_a4 != (undefined1 *)0x0" (binary_expression "(undefined *)auStack_ac._4_4_ != (undefined *)0x0" (cast_expression "(undefined *)auStack_ac._4_4_" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (field_expression "auStack_ac._4_4_" (identifier "auStack_ac") (. ".") (field_identifier "_4_4_"))) (!= "!=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (|| "||") (binary_expression "local_a4 != (undefined1 *)0x0" (identifier "local_a4") (!= "!=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")")) (compound_statement "{\n        puVar21 = (undefined *)0x0;\n        param_4 = (undefined1 *)0x0;\n      }" ({ "{") (expression_statement "puVar21 = (undefined *)0x0;" (assignment_expression "puVar21 = (undefined *)0x0" (identifier "puVar21") (= "=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "param_4 = (undefined1 *)0x0;" (assignment_expression "param_4 = (undefined1 *)0x0" (identifier "param_4") (= "=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}"))) (if_statement "if (*(int *)(PTR_opt_000b746c + 0x30) != 0) {\n        iVar6 = (*(code *)PTR_strlen_000b7c94)();\n        param_1 = param_1 + iVar6 + 1;\n      }" (if "if") (parenthesized_expression "(*(int *)(PTR_opt_000b746c + 0x30) != 0)" (( "(") (binary_expression "*(int *)(PTR_opt_000b746c + 0x30) != 0" (pointer_expression "*(int *)(PTR_opt_000b746c + 0x30)" (* "*") (cast_expression "(int *)(PTR_opt_000b746c + 0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_opt_000b746c + 0x30)" (( "(") (binary_expression "PTR_opt_000b746c + 0x30" (identifier "PTR_opt_000b746c") (+ "+") (number_literal "0x30")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        iVar6 = (*(code *)PTR_strlen_000b7c94)();\n        param_1 = param_1 + iVar6 + 1;\n      }" ({ "{") (expression_statement "iVar6 = (*(code *)PTR_strlen_000b7c94)();" (assignment_expression "iVar6 = (*(code *)PTR_strlen_000b7c94)()" (identifier "iVar6") (= "=") (call_expression "(*(code *)PTR_strlen_000b7c94)()" (parenthesized_expression "(*(code *)PTR_strlen_000b7c94)" (( "(") (pointer_expression "*(code *)PTR_strlen_000b7c94" (* "*") (cast_expression "(code *)PTR_strlen_000b7c94" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strlen_000b7c94"))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "param_1 = param_1 + iVar6 + 1;" (assignment_expression "param_1 = param_1 + iVar6 + 1" (identifier "param_1") (= "=") (binary_expression "param_1 + iVar6 + 1" (binary_expression "param_1 + iVar6" (identifier "param_1") (+ "+") (identifier "iVar6")) (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "local_120 = (double)CONCAT44(puVar21 + (uint)(param_4 + (int)param_6 < param_4) + param_5,\n                                   param_4 + (int)param_6);" (assignment_expression "local_120 = (double)CONCAT44(puVar21 + (uint)(param_4 + (int)param_6 < param_4) + param_5,\n                                   param_4 + (int)param_6)" (identifier "local_120") (= "=") (cast_expression "(double)CONCAT44(puVar21 + (uint)(param_4 + (int)param_6 < param_4) + param_5,\n                                   param_4 + (int)param_6)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "CONCAT44(puVar21 + (uint)(param_4 + (int)param_6 < param_4) + param_5,\n                                   param_4 + (int)param_6)" (identifier "CONCAT44") (argument_list "(puVar21 + (uint)(param_4 + (int)param_6 < param_4) + param_5,\n                                   param_4 + (int)param_6)" (( "(") (binary_expression "puVar21 + (uint)(param_4 + (int)param_6 < param_4) + param_5" (binary_expression "puVar21 + (uint)(param_4 + (int)param_6 < param_4)" (identifier "puVar21") (+ "+") (call_expression "(uint)(param_4 + (int)param_6 < param_4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(param_4 + (int)param_6 < param_4)" (( "(") (binary_expression "param_4 + (int)param_6 < param_4" (binary_expression "param_4 + (int)param_6" (identifier "param_4") (+ "+") (cast_expression "(int)param_6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_6"))) (< "<") (identifier "param_4")) () ")")))) (+ "+") (identifier "param_5")) (, ",") (binary_expression "param_4 + (int)param_6" (identifier "param_4") (+ "+") (cast_expression "(int)param_6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_6"))) () ")"))))) (; ";")) (expression_statement "iVar7 = progress_create(param_1);" (assignment_expression "iVar7 = progress_create(param_1)" (identifier "iVar7") (= "=") (call_expression "progress_create(param_1)" (identifier "progress_create") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (expression_statement "local_e4 = progress_interactive_p(iVar7);" (assignment_expression "local_e4 = progress_interactive_p(iVar7)" (identifier "local_e4") (= "=") (call_expression "progress_interactive_p(iVar7)" (identifier "progress_interactive_p") (argument_list "(iVar7)" (( "(") (identifier "iVar7") () ")")))) (; ";")) (if_statement "if (*(int *)(PTR_opt_000b746c + 0x158) == 0 && *(int *)(PTR_opt_000b746c + 0x15c) == 0) {\n        if (iVar7 == 0) goto LAB_00051978;\n      }\n      else {\nLAB_00051950:\n        puVar2 = PTR_DAT_000b7720;\n        *(undefined4 *)(PTR_DAT_000b7720 + -0x2fe8) = 0;\n        *(undefined4 *)(puVar2 + -0x2fe4) = 0;\n        *(undefined4 *)(puVar2 + -0x2fe0) = 0;\n        *(undefined4 *)(puVar2 + -0x2fdc) = 0;\n        *(undefined4 *)(puVar2 + -0x2fd8) = 0;\n        *(undefined4 *)(puVar2 + -0x2fd4) = 0;\n      }" (if "if") (parenthesized_expression "(*(int *)(PTR_opt_000b746c + 0x158) == 0 && *(int *)(PTR_opt_000b746c + 0x15c) == 0)" (( "(") (binary_expression "*(int *)(PTR_opt_000b746c + 0x158) == 0 && *(int *)(PTR_opt_000b746c + 0x15c) == 0" (binary_expression "*(int *)(PTR_opt_000b746c + 0x158) == 0" (pointer_expression "*(int *)(PTR_opt_000b746c + 0x158)" (* "*") (cast_expression "(int *)(PTR_opt_000b746c + 0x158)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_opt_000b746c + 0x158)" (( "(") (binary_expression "PTR_opt_000b746c + 0x158" (identifier "PTR_opt_000b746c") (+ "+") (number_literal "0x158")) () ")")))) (== "==") (number_literal "0")) (&& "&&") (binary_expression "*(int *)(PTR_opt_000b746c + 0x15c) == 0" (pointer_expression "*(int *)(PTR_opt_000b746c + 0x15c)" (* "*") (cast_expression "(int *)(PTR_opt_000b746c + 0x15c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_opt_000b746c + 0x15c)" (( "(") (binary_expression "PTR_opt_000b746c + 0x15c" (identifier "PTR_opt_000b746c") (+ "+") (number_literal "0x15c")) () ")")))) (== "==") (number_literal "0"))) () ")")) (compound_statement "{\n        if (iVar7 == 0) goto LAB_00051978;\n      }" ({ "{") (if_statement "if (iVar7 == 0) goto LAB_00051978;" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00051978;" (goto "goto") (statement_identifier "LAB_00051978") (; ";"))) (} "}")) (else_clause "else {\nLAB_00051950:\n        puVar2 = PTR_DAT_000b7720;\n        *(undefined4 *)(PTR_DAT_000b7720 + -0x2fe8) = 0;\n        *(undefined4 *)(puVar2 + -0x2fe4) = 0;\n        *(undefined4 *)(puVar2 + -0x2fe0) = 0;\n        *(undefined4 *)(puVar2 + -0x2fdc) = 0;\n        *(undefined4 *)(puVar2 + -0x2fd8) = 0;\n        *(undefined4 *)(puVar2 + -0x2fd4) = 0;\n      }" (else "else") (compound_statement "{\nLAB_00051950:\n        puVar2 = PTR_DAT_000b7720;\n        *(undefined4 *)(PTR_DAT_000b7720 + -0x2fe8) = 0;\n        *(undefined4 *)(puVar2 + -0x2fe4) = 0;\n        *(undefined4 *)(puVar2 + -0x2fe0) = 0;\n        *(undefined4 *)(puVar2 + -0x2fdc) = 0;\n        *(undefined4 *)(puVar2 + -0x2fd8) = 0;\n        *(undefined4 *)(puVar2 + -0x2fd4) = 0;\n      }" ({ "{") (labeled_statement "LAB_00051950:\n        puVar2 = PTR_DAT_000b7720;" (statement_identifier "LAB_00051950") (: ":") (expression_statement "puVar2 = PTR_DAT_000b7720;" (assignment_expression "puVar2 = PTR_DAT_000b7720" (identifier "puVar2") (= "=") (identifier "PTR_DAT_000b7720")) (; ";"))) (expression_statement "*(undefined4 *)(PTR_DAT_000b7720 + -0x2fe8) = 0;" (assignment_expression "*(undefined4 *)(PTR_DAT_000b7720 + -0x2fe8) = 0" (pointer_expression "*(undefined4 *)(PTR_DAT_000b7720 + -0x2fe8)" (* "*") (cast_expression "(undefined4 *)(PTR_DAT_000b7720 + -0x2fe8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_000b7720 + -0x2fe8)" (( "(") (binary_expression "PTR_DAT_000b7720 + -0x2fe8" (identifier "PTR_DAT_000b7720") (+ "+") (number_literal "-0x2fe8")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(puVar2 + -0x2fe4) = 0;" (assignment_expression "*(undefined4 *)(puVar2 + -0x2fe4) = 0" (pointer_expression "*(undefined4 *)(puVar2 + -0x2fe4)" (* "*") (cast_expression "(undefined4 *)(puVar2 + -0x2fe4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + -0x2fe4)" (( "(") (binary_expression "puVar2 + -0x2fe4" (identifier "puVar2") (+ "+") (number_literal "-0x2fe4")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(puVar2 + -0x2fe0) = 0;" (assignment_expression "*(undefined4 *)(puVar2 + -0x2fe0) = 0" (pointer_expression "*(undefined4 *)(puVar2 + -0x2fe0)" (* "*") (cast_expression "(undefined4 *)(puVar2 + -0x2fe0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + -0x2fe0)" (( "(") (binary_expression "puVar2 + -0x2fe0" (identifier "puVar2") (+ "+") (number_literal "-0x2fe0")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(puVar2 + -0x2fdc) = 0;" (assignment_expression "*(undefined4 *)(puVar2 + -0x2fdc) = 0" (pointer_expression "*(undefined4 *)(puVar2 + -0x2fdc)" (* "*") (cast_expression "(undefined4 *)(puVar2 + -0x2fdc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + -0x2fdc)" (( "(") (binary_expression "puVar2 + -0x2fdc" (identifier "puVar2") (+ "+") (number_literal "-0x2fdc")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(puVar2 + -0x2fd8) = 0;" (assignment_expression "*(undefined4 *)(puVar2 + -0x2fd8) = 0" (pointer_expression "*(undefined4 *)(puVar2 + -0x2fd8)" (* "*") (cast_expression "(undefined4 *)(puVar2 + -0x2fd8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + -0x2fd8)" (( "(") (binary_expression "puVar2 + -0x2fd8" (identifier "puVar2") (+ "+") (number_literal "-0x2fd8")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(puVar2 + -0x2fd4) = 0;" (assignment_expression "*(undefined4 *)(puVar2 + -0x2fd4) = 0" (pointer_expression "*(undefined4 *)(puVar2 + -0x2fd4)" (* "*") (cast_expression "(undefined4 *)(puVar2 + -0x2fd4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + -0x2fd4)" (( "(") (binary_expression "puVar2 + -0x2fd4" (identifier "puVar2") (+ "+") (number_literal "-0x2fd4")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}")))) (labeled_statement "LAB_00050c48:\n      local_104 = (undefined8 *)ptimer_new();" (statement_identifier "LAB_00050c48") (: ":") (expression_statement "local_104 = (undefined8 *)ptimer_new();" (assignment_expression "local_104 = (undefined8 *)ptimer_new()" (identifier "local_104") (= "=") (cast_expression "(undefined8 *)ptimer_new()" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "ptimer_new()" (identifier "ptimer_new") (argument_list "()" (( "(") () ")"))))) (; ";"))) (expression_statement "iVar6 = *(int *)(PTR_opt_000b746c + 0x158);" (assignment_expression "iVar6 = *(int *)(PTR_opt_000b746c + 0x158)" (identifier "iVar6") (= "=") (pointer_expression "*(int *)(PTR_opt_000b746c + 0x158)" (* "*") (cast_expression "(int *)(PTR_opt_000b746c + 0x158)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_opt_000b746c + 0x158)" (( "(") (binary_expression "PTR_opt_000b746c + 0x158" (identifier "PTR_opt_000b746c") (+ "+") (number_literal "0x158")) () ")"))))) (; ";")) (expression_statement "local_e0 = *(undefined8 **)(PTR_opt_000b746c + 0x15c);" (assignment_expression "local_e0 = *(undefined8 **)(PTR_opt_000b746c + 0x15c)" (identifier "local_e0") (= "=") (pointer_expression "*(undefined8 **)(PTR_opt_000b746c + 0x15c)" (* "*") (cast_expression "(undefined8 **)(PTR_opt_000b746c + 0x15c)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR_opt_000b746c + 0x15c)" (( "(") (binary_expression "PTR_opt_000b746c + 0x15c" (identifier "PTR_opt_000b746c") (+ "+") (number_literal "0x15c")) () ")"))))) (; ";")) (if_statement "if (iVar6 == 0 && local_e0 == (undefined8 *)0x0) {\n        local_e0 = (undefined8 *)0x2000;\n      }\n      else if ((0 < iVar6) || ((iVar6 == 0 && ((undefined8 *)0x1fff < local_e0)))) {\n        local_e0 = (undefined8 *)0x2000;\n      }" (if "if") (parenthesized_expression "(iVar6 == 0 && local_e0 == (undefined8 *)0x0)" (( "(") (binary_expression "iVar6 == 0 && local_e0 == (undefined8 *)0x0" (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) (&& "&&") (binary_expression "local_e0 == (undefined8 *)0x0" (identifier "local_e0") (== "==") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")")) (compound_statement "{\n        local_e0 = (undefined8 *)0x2000;\n      }" ({ "{") (expression_statement "local_e0 = (undefined8 *)0x2000;" (assignment_expression "local_e0 = (undefined8 *)0x2000" (identifier "local_e0") (= "=") (cast_expression "(undefined8 *)0x2000" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x2000"))) (; ";")) (} "}")) (else_clause "else if ((0 < iVar6) || ((iVar6 == 0 && ((undefined8 *)0x1fff < local_e0)))) {\n        local_e0 = (undefined8 *)0x2000;\n      }" (else "else") (if_statement "if ((0 < iVar6) || ((iVar6 == 0 && ((undefined8 *)0x1fff < local_e0)))) {\n        local_e0 = (undefined8 *)0x2000;\n      }" (if "if") (parenthesized_expression "((0 < iVar6) || ((iVar6 == 0 && ((undefined8 *)0x1fff < local_e0))))" (( "(") (binary_expression "(0 < iVar6) || ((iVar6 == 0 && ((undefined8 *)0x1fff < local_e0)))" (parenthesized_expression "(0 < iVar6)" (( "(") (binary_expression "0 < iVar6" (number_literal "0") (< "<") (identifier "iVar6")) () ")")) (|| "||") (parenthesized_expression "((iVar6 == 0 && ((undefined8 *)0x1fff < local_e0)))" (( "(") (parenthesized_expression "(iVar6 == 0 && ((undefined8 *)0x1fff < local_e0))" (( "(") (binary_expression "iVar6 == 0 && ((undefined8 *)0x1fff < local_e0)" (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) (&& "&&") (parenthesized_expression "((undefined8 *)0x1fff < local_e0)" (( "(") (binary_expression "(undefined8 *)0x1fff < local_e0" (cast_expression "(undefined8 *)0x1fff" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1fff")) (< "<") (identifier "local_e0")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n        local_e0 = (undefined8 *)0x2000;\n      }" ({ "{") (expression_statement "local_e0 = (undefined8 *)0x2000;" (assignment_expression "local_e0 = (undefined8 *)0x2000" (identifier "local_e0") (= "=") (cast_expression "(undefined8 *)0x2000" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x2000"))) (; ";")) (} "}"))))) (} "}")))) (expression_statement "puVar2 = PTR_DAT_000b758c;" (assignment_expression "puVar2 = PTR_DAT_000b758c" (identifier "puVar2") (= "=") (identifier "PTR_DAT_000b758c")) (; ";")) (expression_statement "dVar25 = (double)CONCAT44(puVar21,param_4);" (assignment_expression "dVar25 = (double)CONCAT44(puVar21,param_4)" (identifier "dVar25") (= "=") (cast_expression "(double)CONCAT44(puVar21,param_4)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "CONCAT44(puVar21,param_4)" (identifier "CONCAT44") (argument_list "(puVar21,param_4)" (( "(") (identifier "puVar21") (, ",") (identifier "param_4") () ")"))))) (; ";")) (expression_statement "iVar22 = 0;" (assignment_expression "iVar22 = 0" (identifier "iVar22") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_f0 = (undefined8 *)0x0;" (assignment_expression "local_f0 = (undefined8 *)0x0" (identifier "local_f0") (= "=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" (identifier "iVar6") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_fc = (undefined8 *)0x0;" (assignment_expression "local_fc = (undefined8 *)0x0" (identifier "local_fc") (= "=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "dVar29 = 0.0;" (assignment_expression "dVar29 = 0.0" (identifier "dVar29") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "puVar24 = (undefined8 *)0x0;" (assignment_expression "puVar24 = (undefined8 *)0x0" (identifier "puVar24") (= "=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "dVar32 = *(double *)(PTR_DAT_000b758c + -0x2340);" (assignment_expression "dVar32 = *(double *)(PTR_DAT_000b758c + -0x2340)" (identifier "dVar32") (= "=") (pointer_expression "*(double *)(PTR_DAT_000b758c + -0x2340)" (* "*") (cast_expression "(double *)(PTR_DAT_000b758c + -0x2340)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_000b758c + -0x2340)" (( "(") (binary_expression "PTR_DAT_000b758c + -0x2340" (identifier "PTR_DAT_000b758c") (+ "+") (number_literal "-0x2340")) () ")"))))) (; ";")) (expression_statement "dVar33 = *(double *)(PTR_DAT_000b758c + -0x2580);" (assignment_expression "dVar33 = *(double *)(PTR_DAT_000b758c + -0x2580)" (identifier "dVar33") (= "=") (pointer_expression "*(double *)(PTR_DAT_000b758c + -0x2580)" (* "*") (cast_expression "(double *)(PTR_DAT_000b758c + -0x2580)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_000b758c + -0x2580)" (( "(") (binary_expression "PTR_DAT_000b758c + -0x2580" (identifier "PTR_DAT_000b758c") (+ "+") (number_literal "-0x2580")) () ")"))))) (; ";")) (expression_statement "dVar34 = *(double *)(PTR_DAT_000b758c + -0x15d0);" (assignment_expression "dVar34 = *(double *)(PTR_DAT_000b758c + -0x15d0)" (identifier "dVar34") (= "=") (pointer_expression "*(double *)(PTR_DAT_000b758c + -0x15d0)" (* "*") (cast_expression "(double *)(PTR_DAT_000b758c + -0x15d0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_000b758c + -0x15d0)" (( "(") (binary_expression "PTR_DAT_000b758c + -0x15d0" (identifier "PTR_DAT_000b758c") (+ "+") (number_literal "-0x15d0")) () ")"))))) (; ";")) (expression_statement "dVar28 = *(double *)(PTR_DAT_000b758c + -0x15d8);" (assignment_expression "dVar28 = *(double *)(PTR_DAT_000b758c + -0x15d8)" (identifier "dVar28") (= "=") (pointer_expression "*(double *)(PTR_DAT_000b758c + -0x15d8)" (* "*") (cast_expression "(double *)(PTR_DAT_000b758c + -0x15d8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_000b758c + -0x15d8)" (( "(") (binary_expression "PTR_DAT_000b758c + -0x15d8" (identifier "PTR_DAT_000b758c") (+ "+") (number_literal "-0x15d8")) () ")"))))) (; ";")) (while_statement "while( true ) {\n      uVar8 = SUB84(dVar25,0);\n      iVar17 = (int)local_e0 >> 0x1f;\n      puVar20 = local_e0;\n      puVar3 = local_120._0_4_;\n      if ((param_12 & 1) == 0) break;\n      if (param_5 <= iVar6) {\n        if (param_5 != iVar6) goto LAB_000518d4;\n        if (local_fc < param_6) goto LAB_000517b0;\n        bVar1 = (int)puVar24 < 0;\n        dVar30 = dVar25;\n        goto LAB_000518d8;\n      }\nLAB_000517b0:\n      dVar31 = *(double *)(PTR_opt_000b746c + 0x120);\n      if (uVar5 != 0) goto LAB_00051820;\n      puVar15 = (undefined8 *)((int)param_6 - (int)local_fc);\n      iVar13 = (param_5 - iVar6) - (uint)(param_6 < puVar15);\n      dVar25 = (double)CONCAT44(iVar13,uVar8);\n      puVar9 = local_e0;\n      if ((iVar17 < iVar13) ||\n         ((dVar30 = (double)CONCAT44(iVar13,uVar8), iVar13 == iVar17 &&\n          (dVar30 = (double)CONCAT44(iVar13,uVar8), local_e0 < puVar15)))) goto LAB_00051864;\nLAB_00051868:\n      puVar18 = SUB84(dVar30,0);\n      if (local_e4 == 0) {\n        puVar9 = puVar4;\n        puVar24 = (undefined8 *)(*(code *)PTR_fd_read_000b7770)(param_2,puVar4);\n        local_120 = dVar31;\nLAB_000516fc:\n        bVar1 = (int)puVar24 < 0;\n        dVar30 = (double)CONCAT44(puVar15,puVar18);\n        if ((int)puVar24 < 1) goto LAB_000518d8;\n        if (iVar7 == 0) {\n          if (*(int *)(PTR_opt_000b746c + 0x158) == 0 && *(int *)(PTR_opt_000b746c + 0x15c) == 0)\n          goto LAB_00051720;\n          ptimer_measure(local_104);\n        }\n        else {\n          ptimer_measure(local_104);\n        }\nLAB_000515b0:\n        dVar29 = (double)ptimer_read(local_104);\nLAB_000515c4:\n        puVar12 = (undefined8 *)((int)local_fc + (int)puVar24);\n        iVar6 = (uint)(puVar12 < local_fc) + iVar6 + ((int)puVar24 >> 0x1f);\n        puVar9 = param_13;\n        puVar15 = puVar4;\n        puVar18 = puVar24;\n        local_fc = puVar12;\n        if (local_100 == (undefined8 *)0x0) {\n          local_120 = (double)(ZEXT48(auStack_ac + 4) << 0x20);\n          puVar20 = (undefined8 *)FUN_000503a4(param_3,param_13);\n          dVar30 = (double)CONCAT44(puVar15,puVar18);\n          puVar3 = (undefined8 *)(auStack_ac + 4);\n          if ((int)puVar20 < 0) goto LAB_00051040;\n        }\n        else {\n          local_120 = 0.0;\n          local_120._0_4_ = (undefined8 *)0x0;\n          puVar20 = (undefined8 *)FUN_000503a4(0,param_13);\n          dVar30 = (double)CONCAT44(puVar15,puVar18);\n          puVar3 = local_120._0_4_;\n          if ((int)puVar20 < 0) goto LAB_00051040;\n          puVar21 = PTR_DAT_000b758c + -0x1898;\n          pcVar23 = (code *)(PTR_LAB_000b78e4 + 0x3a4);\n          local_94 = puVar4;\n          local_90 = puVar24;\n          do {\n            local_84 = 0x8000;\n            local_88 = local_100;\n            puVar9 = (undefined8 *)0x0;\n            iVar17 = (*(code *)PTR_inflate_000b7d40)(&local_94,0);\n            puVar3 = local_120._0_4_;\n            if (iVar17 == -3) {\nLAB_000511f4:\n              puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n              dVar30 = (double)CONCAT44(puVar15,puVar18);\n              *puVar10 = 0x16;\n              puVar20 = (undefined8 *)0xffffffff;\n              goto LAB_00051040;\n            }\n            if (iVar17 < -2) {\n              if (iVar17 == -4) {\n                puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n                dVar30 = (double)CONCAT44(puVar15,puVar18);\n                *puVar10 = 0xc;\n                puVar20 = (undefined8 *)0xffffffff;\n                goto LAB_00051040;\n              }\n            }\n            else if (iVar17 == 1) {\n              if (((param_12 & 1) != 0) &&\n                 (((param_5 != iVar6 || (param_6 != puVar12)) && (PTR_opt_000b746c[0x16b] != '\0')))\n                 ) {\n                debug_logprintf(puVar21);\n              }\n            }\n            else if (iVar17 == 2) goto LAB_000511f4;\n            local_120 = (double)(ZEXT48(auStack_ac + 4) << 0x20);\n            puVar18 = (undefined8 *)(0x8000 - local_84);\n            puVar9 = (undefined8 *)0x0;\n            puVar15 = local_100;\n            puVar20 = (undefined8 *)(*pcVar23)(param_3,0);\n            dVar30 = (double)CONCAT44(puVar15,puVar18);\n            puVar3 = (undefined8 *)(auStack_ac + 4);\n            if ((int)puVar20 < 0) goto LAB_00051040;\n          } while (local_84 == 0);\n        }\n        dVar31 = local_120;\n        if (uVar5 != 0) {\n          puVar20 = (undefined8 *)((int)local_f0 - (int)puVar24);\n          iVar22 = (iVar22 - ((int)puVar24 >> 0x1f)) - (uint)(local_f0 < puVar20);\n          local_f0 = puVar20;\n          if (iVar22 == 0 && puVar20 == (undefined8 *)0x0) {\n            iVar17 = fd_read_line(param_2);\n            dVar25 = (double)CONCAT44(puVar15,puVar18);\n            if (iVar17 == 0) {\n              puVar24 = (undefined8 *)0xffffffff;\n              goto LAB_000518d4;\n            }\n            if (param_13 != (undefined8 *)0x0) {\n              puVar15 = (undefined8 *)(*(code *)PTR_strlen_000b7c94)(iVar17);\n              puVar9 = (undefined8 *)&DAT_00000001;\n              puVar18 = param_13;\n              (*(code *)PTR_fwrite_000b7c24)(iVar17,1);\n            }\n            (*(code *)PTR_free_000b7d34)(iVar17);\n          }\n        }\n        goto LAB_00051748;\n      }\n      if (*(double *)(PTR_opt_000b746c + 0x120) == 0.0) {\n        dVar31 = *(double *)(PTR_DAT_000b758c + -0x15e0);\n      }\n      else {\n        dVar25 = (double)ptimer_read(local_104);\n        puVar18 = SUB84(dVar30,0);\n        if (*(double *)(PTR_opt_000b746c + 0x120) <\n            (dVar25 - dVar29) + *(double *)(PTR_DAT_000b758c + -0x15e0)) {\n          dVar31 = *(double *)(PTR_opt_000b746c + 0x120) - (dVar25 - dVar29);\n          if (dVar31 < 0.0) {\n            puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n            *puVar10 = 0x91;\n            puVar20 = (undefined8 *)0xffffffff;\n            goto LAB_00051040;\n          }\n        }\n        else {\n          dVar31 = *(double *)(PTR_DAT_000b758c + -0x15e0);\n        }\n      }\n      puVar9 = puVar4;\n      puVar24 = (undefined8 *)(*(code *)PTR_fd_read_000b7770)(param_2,puVar4);\n      local_120 = dVar31;\n      if (-1 < (int)puVar24) goto LAB_000516fc;\n      piVar14 = (int *)(*(code *)PTR___errno_location_000b7eb8)();\n      dVar25 = (double)CONCAT44(puVar15,puVar18);\n      local_120._0_4_ = (undefined8 *)((ulonglong)dVar31 >> 0x20);\n      if (*piVar14 != 0x91) goto LAB_000518d4;\n      if (iVar7 == 0) {\n        if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n          ptimer_measure(local_104);\n          puVar24 = (undefined8 *)0x0;\n          goto LAB_00051748;\n        }\n        puVar24 = (undefined8 *)0x0;\nLAB_00051720:\n        dVar25 = (double)CONCAT44(puVar15,puVar18);\n        if (param_11 != (undefined8 *)0x0) {\n          ptimer_measure(local_104);\n          dVar31 = local_120;\n          if (0 < (int)puVar24) goto LAB_000515b0;\n          goto LAB_00051748;\n        }\n        if (0 < (int)puVar24) goto LAB_000515c4;\n      }\n      else {\n        ptimer_measure(local_104);\n        puVar24 = (undefined8 *)0x0;\nLAB_00051748:\n        local_120 = dVar31;\n        dVar25 = (double)CONCAT44(puVar15,puVar18);\n        if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n          dVar30 = (double)ptimer_read(local_104);\n          puVar21 = PTR_DAT_000b7720;\n          dVar30 = dVar30 - *(double *)(PTR_DAT_000b7720 + -0x2fe0);\n          puVar20 = (undefined8 *)((int)puVar24 + *(int *)(PTR_DAT_000b7720 + -0x2fe4));\n          iVar17 = (uint)(puVar20 < puVar24) +\n                   ((int)puVar24 >> 0x1f) + *(int *)(PTR_DAT_000b7720 + -0x2fe8);\n          *(int *)(PTR_DAT_000b7720 + -0x2fe8) = iVar17;\n          *(undefined8 **)(puVar21 + -0x2fe4) = puVar20;\n          dVar31 = (double)(*(code *)PTR_FUN_000b78f4)(iVar17,puVar20);\n          puVar9 = *(undefined8 **)(PTR_opt_000b746c + 0x15c);\n          dVar27 = (double)(*(code *)PTR_FUN_000b78f4)\n                                     (*(undefined4 *)(PTR_opt_000b746c + 0x158),puVar9);\n          dVar25 = (double)CONCAT44(puVar15,puVar18);\n          if (dVar30 < dVar31 / dVar27) {\n            dVar30 = (dVar31 / dVar27 - dVar30) + *(double *)(PTR_DAT_000b7720 + -0x2fd8);\n            if (dVar30 < dVar32) {\n              if (PTR_opt_000b746c[0x16b] != '\0') {\n                uVar11 = number_to_static_string(iVar17,puVar20);\n                local_120 = (double)((ulonglong)uVar11 << 0x20);\n                dVar25 = dVar30 * *(double *)(puVar2 + -0x15d8);\n                debug_logprintf(PTR_DAT_000b758c + -0x1864);\n                puVar9 = puVar20;\n              }\n              goto LAB_0005175c;\n            }\n            if (PTR_opt_000b746c[0x16b] != '\0') {\n              uVar11 = number_to_static_string(iVar17,puVar20);\n              local_120 = (double)((ulonglong)uVar11 << 0x20);\n              dVar25 = dVar30 * dVar28;\n              debug_logprintf(PTR_DAT_000b758c + -0x183c);\n              puVar9 = puVar20;\n            }\n            dVar31 = (double)ptimer_read(local_104);\n            xsleep(dVar30);\n            dVar27 = (double)ptimer_measure(local_104);\n            dVar30 = dVar30 - (dVar27 - dVar31);\n            if (dVar33 < dVar30) {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x2580);\n            }\n            else if (dVar34 <= dVar30) {\n              *(double *)(PTR_DAT_000b7720 + -0x2fd8) = dVar30;\n            }\n            else {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x15d0);\n            }\n          }\n          puVar21 = PTR_DAT_000b7720;\n          *(undefined4 *)(PTR_DAT_000b7720 + -0x2fe4) = 0;\n          *(undefined4 *)(puVar21 + -0x2fe8) = 0;\n          uVar26 = ptimer_read(local_104);\n          *(undefined8 *)(puVar21 + -0x2fe0) = uVar26;\n        }\n      }\nLAB_0005175c:\n      if (iVar7 != 0) {\n        local_120 = (double)ptimer_read(local_104);\n        iVar17 = (int)puVar24 >> 0x1f;\n        puVar20 = puVar24;\n        progress_update(iVar7);\n        dVar25 = (double)CONCAT44(iVar17,puVar20);\n      }\n    }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n      uVar8 = SUB84(dVar25,0);\n      iVar17 = (int)local_e0 >> 0x1f;\n      puVar20 = local_e0;\n      puVar3 = local_120._0_4_;\n      if ((param_12 & 1) == 0) break;\n      if (param_5 <= iVar6) {\n        if (param_5 != iVar6) goto LAB_000518d4;\n        if (local_fc < param_6) goto LAB_000517b0;\n        bVar1 = (int)puVar24 < 0;\n        dVar30 = dVar25;\n        goto LAB_000518d8;\n      }\nLAB_000517b0:\n      dVar31 = *(double *)(PTR_opt_000b746c + 0x120);\n      if (uVar5 != 0) goto LAB_00051820;\n      puVar15 = (undefined8 *)((int)param_6 - (int)local_fc);\n      iVar13 = (param_5 - iVar6) - (uint)(param_6 < puVar15);\n      dVar25 = (double)CONCAT44(iVar13,uVar8);\n      puVar9 = local_e0;\n      if ((iVar17 < iVar13) ||\n         ((dVar30 = (double)CONCAT44(iVar13,uVar8), iVar13 == iVar17 &&\n          (dVar30 = (double)CONCAT44(iVar13,uVar8), local_e0 < puVar15)))) goto LAB_00051864;\nLAB_00051868:\n      puVar18 = SUB84(dVar30,0);\n      if (local_e4 == 0) {\n        puVar9 = puVar4;\n        puVar24 = (undefined8 *)(*(code *)PTR_fd_read_000b7770)(param_2,puVar4);\n        local_120 = dVar31;\nLAB_000516fc:\n        bVar1 = (int)puVar24 < 0;\n        dVar30 = (double)CONCAT44(puVar15,puVar18);\n        if ((int)puVar24 < 1) goto LAB_000518d8;\n        if (iVar7 == 0) {\n          if (*(int *)(PTR_opt_000b746c + 0x158) == 0 && *(int *)(PTR_opt_000b746c + 0x15c) == 0)\n          goto LAB_00051720;\n          ptimer_measure(local_104);\n        }\n        else {\n          ptimer_measure(local_104);\n        }\nLAB_000515b0:\n        dVar29 = (double)ptimer_read(local_104);\nLAB_000515c4:\n        puVar12 = (undefined8 *)((int)local_fc + (int)puVar24);\n        iVar6 = (uint)(puVar12 < local_fc) + iVar6 + ((int)puVar24 >> 0x1f);\n        puVar9 = param_13;\n        puVar15 = puVar4;\n        puVar18 = puVar24;\n        local_fc = puVar12;\n        if (local_100 == (undefined8 *)0x0) {\n          local_120 = (double)(ZEXT48(auStack_ac + 4) << 0x20);\n          puVar20 = (undefined8 *)FUN_000503a4(param_3,param_13);\n          dVar30 = (double)CONCAT44(puVar15,puVar18);\n          puVar3 = (undefined8 *)(auStack_ac + 4);\n          if ((int)puVar20 < 0) goto LAB_00051040;\n        }\n        else {\n          local_120 = 0.0;\n          local_120._0_4_ = (undefined8 *)0x0;\n          puVar20 = (undefined8 *)FUN_000503a4(0,param_13);\n          dVar30 = (double)CONCAT44(puVar15,puVar18);\n          puVar3 = local_120._0_4_;\n          if ((int)puVar20 < 0) goto LAB_00051040;\n          puVar21 = PTR_DAT_000b758c + -0x1898;\n          pcVar23 = (code *)(PTR_LAB_000b78e4 + 0x3a4);\n          local_94 = puVar4;\n          local_90 = puVar24;\n          do {\n            local_84 = 0x8000;\n            local_88 = local_100;\n            puVar9 = (undefined8 *)0x0;\n            iVar17 = (*(code *)PTR_inflate_000b7d40)(&local_94,0);\n            puVar3 = local_120._0_4_;\n            if (iVar17 == -3) {\nLAB_000511f4:\n              puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n              dVar30 = (double)CONCAT44(puVar15,puVar18);\n              *puVar10 = 0x16;\n              puVar20 = (undefined8 *)0xffffffff;\n              goto LAB_00051040;\n            }\n            if (iVar17 < -2) {\n              if (iVar17 == -4) {\n                puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n                dVar30 = (double)CONCAT44(puVar15,puVar18);\n                *puVar10 = 0xc;\n                puVar20 = (undefined8 *)0xffffffff;\n                goto LAB_00051040;\n              }\n            }\n            else if (iVar17 == 1) {\n              if (((param_12 & 1) != 0) &&\n                 (((param_5 != iVar6 || (param_6 != puVar12)) && (PTR_opt_000b746c[0x16b] != '\0')))\n                 ) {\n                debug_logprintf(puVar21);\n              }\n            }\n            else if (iVar17 == 2) goto LAB_000511f4;\n            local_120 = (double)(ZEXT48(auStack_ac + 4) << 0x20);\n            puVar18 = (undefined8 *)(0x8000 - local_84);\n            puVar9 = (undefined8 *)0x0;\n            puVar15 = local_100;\n            puVar20 = (undefined8 *)(*pcVar23)(param_3,0);\n            dVar30 = (double)CONCAT44(puVar15,puVar18);\n            puVar3 = (undefined8 *)(auStack_ac + 4);\n            if ((int)puVar20 < 0) goto LAB_00051040;\n          } while (local_84 == 0);\n        }\n        dVar31 = local_120;\n        if (uVar5 != 0) {\n          puVar20 = (undefined8 *)((int)local_f0 - (int)puVar24);\n          iVar22 = (iVar22 - ((int)puVar24 >> 0x1f)) - (uint)(local_f0 < puVar20);\n          local_f0 = puVar20;\n          if (iVar22 == 0 && puVar20 == (undefined8 *)0x0) {\n            iVar17 = fd_read_line(param_2);\n            dVar25 = (double)CONCAT44(puVar15,puVar18);\n            if (iVar17 == 0) {\n              puVar24 = (undefined8 *)0xffffffff;\n              goto LAB_000518d4;\n            }\n            if (param_13 != (undefined8 *)0x0) {\n              puVar15 = (undefined8 *)(*(code *)PTR_strlen_000b7c94)(iVar17);\n              puVar9 = (undefined8 *)&DAT_00000001;\n              puVar18 = param_13;\n              (*(code *)PTR_fwrite_000b7c24)(iVar17,1);\n            }\n            (*(code *)PTR_free_000b7d34)(iVar17);\n          }\n        }\n        goto LAB_00051748;\n      }\n      if (*(double *)(PTR_opt_000b746c + 0x120) == 0.0) {\n        dVar31 = *(double *)(PTR_DAT_000b758c + -0x15e0);\n      }\n      else {\n        dVar25 = (double)ptimer_read(local_104);\n        puVar18 = SUB84(dVar30,0);\n        if (*(double *)(PTR_opt_000b746c + 0x120) <\n            (dVar25 - dVar29) + *(double *)(PTR_DAT_000b758c + -0x15e0)) {\n          dVar31 = *(double *)(PTR_opt_000b746c + 0x120) - (dVar25 - dVar29);\n          if (dVar31 < 0.0) {\n            puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n            *puVar10 = 0x91;\n            puVar20 = (undefined8 *)0xffffffff;\n            goto LAB_00051040;\n          }\n        }\n        else {\n          dVar31 = *(double *)(PTR_DAT_000b758c + -0x15e0);\n        }\n      }\n      puVar9 = puVar4;\n      puVar24 = (undefined8 *)(*(code *)PTR_fd_read_000b7770)(param_2,puVar4);\n      local_120 = dVar31;\n      if (-1 < (int)puVar24) goto LAB_000516fc;\n      piVar14 = (int *)(*(code *)PTR___errno_location_000b7eb8)();\n      dVar25 = (double)CONCAT44(puVar15,puVar18);\n      local_120._0_4_ = (undefined8 *)((ulonglong)dVar31 >> 0x20);\n      if (*piVar14 != 0x91) goto LAB_000518d4;\n      if (iVar7 == 0) {\n        if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n          ptimer_measure(local_104);\n          puVar24 = (undefined8 *)0x0;\n          goto LAB_00051748;\n        }\n        puVar24 = (undefined8 *)0x0;\nLAB_00051720:\n        dVar25 = (double)CONCAT44(puVar15,puVar18);\n        if (param_11 != (undefined8 *)0x0) {\n          ptimer_measure(local_104);\n          dVar31 = local_120;\n          if (0 < (int)puVar24) goto LAB_000515b0;\n          goto LAB_00051748;\n        }\n        if (0 < (int)puVar24) goto LAB_000515c4;\n      }\n      else {\n        ptimer_measure(local_104);\n        puVar24 = (undefined8 *)0x0;\nLAB_00051748:\n        local_120 = dVar31;\n        dVar25 = (double)CONCAT44(puVar15,puVar18);\n        if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n          dVar30 = (double)ptimer_read(local_104);\n          puVar21 = PTR_DAT_000b7720;\n          dVar30 = dVar30 - *(double *)(PTR_DAT_000b7720 + -0x2fe0);\n          puVar20 = (undefined8 *)((int)puVar24 + *(int *)(PTR_DAT_000b7720 + -0x2fe4));\n          iVar17 = (uint)(puVar20 < puVar24) +\n                   ((int)puVar24 >> 0x1f) + *(int *)(PTR_DAT_000b7720 + -0x2fe8);\n          *(int *)(PTR_DAT_000b7720 + -0x2fe8) = iVar17;\n          *(undefined8 **)(puVar21 + -0x2fe4) = puVar20;\n          dVar31 = (double)(*(code *)PTR_FUN_000b78f4)(iVar17,puVar20);\n          puVar9 = *(undefined8 **)(PTR_opt_000b746c + 0x15c);\n          dVar27 = (double)(*(code *)PTR_FUN_000b78f4)\n                                     (*(undefined4 *)(PTR_opt_000b746c + 0x158),puVar9);\n          dVar25 = (double)CONCAT44(puVar15,puVar18);\n          if (dVar30 < dVar31 / dVar27) {\n            dVar30 = (dVar31 / dVar27 - dVar30) + *(double *)(PTR_DAT_000b7720 + -0x2fd8);\n            if (dVar30 < dVar32) {\n              if (PTR_opt_000b746c[0x16b] != '\0') {\n                uVar11 = number_to_static_string(iVar17,puVar20);\n                local_120 = (double)((ulonglong)uVar11 << 0x20);\n                dVar25 = dVar30 * *(double *)(puVar2 + -0x15d8);\n                debug_logprintf(PTR_DAT_000b758c + -0x1864);\n                puVar9 = puVar20;\n              }\n              goto LAB_0005175c;\n            }\n            if (PTR_opt_000b746c[0x16b] != '\0') {\n              uVar11 = number_to_static_string(iVar17,puVar20);\n              local_120 = (double)((ulonglong)uVar11 << 0x20);\n              dVar25 = dVar30 * dVar28;\n              debug_logprintf(PTR_DAT_000b758c + -0x183c);\n              puVar9 = puVar20;\n            }\n            dVar31 = (double)ptimer_read(local_104);\n            xsleep(dVar30);\n            dVar27 = (double)ptimer_measure(local_104);\n            dVar30 = dVar30 - (dVar27 - dVar31);\n            if (dVar33 < dVar30) {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x2580);\n            }\n            else if (dVar34 <= dVar30) {\n              *(double *)(PTR_DAT_000b7720 + -0x2fd8) = dVar30;\n            }\n            else {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x15d0);\n            }\n          }\n          puVar21 = PTR_DAT_000b7720;\n          *(undefined4 *)(PTR_DAT_000b7720 + -0x2fe4) = 0;\n          *(undefined4 *)(puVar21 + -0x2fe8) = 0;\n          uVar26 = ptimer_read(local_104);\n          *(undefined8 *)(puVar21 + -0x2fe0) = uVar26;\n        }\n      }\nLAB_0005175c:\n      if (iVar7 != 0) {\n        local_120 = (double)ptimer_read(local_104);\n        iVar17 = (int)puVar24 >> 0x1f;\n        puVar20 = puVar24;\n        progress_update(iVar7);\n        dVar25 = (double)CONCAT44(iVar17,puVar20);\n      }\n    }" ({ "{") (expression_statement "uVar8 = SUB84(dVar25,0);" (assignment_expression "uVar8 = SUB84(dVar25,0)" (identifier "uVar8") (= "=") (call_expression "SUB84(dVar25,0)" (identifier "SUB84") (argument_list "(dVar25,0)" (( "(") (identifier "dVar25") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "iVar17 = (int)local_e0 >> 0x1f;" (assignment_expression "iVar17 = (int)local_e0 >> 0x1f" (identifier "iVar17") (= "=") (binary_expression "(int)local_e0 >> 0x1f" (cast_expression "(int)local_e0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_e0")) (>> ">>") (number_literal "0x1f"))) (; ";")) (expression_statement "puVar20 = local_e0;" (assignment_expression "puVar20 = local_e0" (identifier "puVar20") (= "=") (identifier "local_e0")) (; ";")) (expression_statement "puVar3 = local_120._0_4_;" (assignment_expression "puVar3 = local_120._0_4_" (identifier "puVar3") (= "=") (field_expression "local_120._0_4_" (identifier "local_120") (. ".") (field_identifier "_0_4_"))) (; ";")) (if_statement "if ((param_12 & 1) == 0) break;" (if "if") (parenthesized_expression "((param_12 & 1) == 0)" (( "(") (binary_expression "(param_12 & 1) == 0" (parenthesized_expression "(param_12 & 1)" (( "(") (binary_expression "param_12 & 1" (identifier "param_12") (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (if_statement "if (param_5 <= iVar6) {\n        if (param_5 != iVar6) goto LAB_000518d4;\n        if (local_fc < param_6) goto LAB_000517b0;\n        bVar1 = (int)puVar24 < 0;\n        dVar30 = dVar25;\n        goto LAB_000518d8;\n      }" (if "if") (parenthesized_expression "(param_5 <= iVar6)" (( "(") (binary_expression "param_5 <= iVar6" (identifier "param_5") (<= "<=") (identifier "iVar6")) () ")")) (compound_statement "{\n        if (param_5 != iVar6) goto LAB_000518d4;\n        if (local_fc < param_6) goto LAB_000517b0;\n        bVar1 = (int)puVar24 < 0;\n        dVar30 = dVar25;\n        goto LAB_000518d8;\n      }" ({ "{") (if_statement "if (param_5 != iVar6) goto LAB_000518d4;" (if "if") (parenthesized_expression "(param_5 != iVar6)" (( "(") (binary_expression "param_5 != iVar6" (identifier "param_5") (!= "!=") (identifier "iVar6")) () ")")) (goto_statement "goto LAB_000518d4;" (goto "goto") (statement_identifier "LAB_000518d4") (; ";"))) (if_statement "if (local_fc < param_6) goto LAB_000517b0;" (if "if") (parenthesized_expression "(local_fc < param_6)" (( "(") (binary_expression "local_fc < param_6" (identifier "local_fc") (< "<") (identifier "param_6")) () ")")) (goto_statement "goto LAB_000517b0;" (goto "goto") (statement_identifier "LAB_000517b0") (; ";"))) (expression_statement "bVar1 = (int)puVar24 < 0;" (assignment_expression "bVar1 = (int)puVar24 < 0" (identifier "bVar1") (= "=") (binary_expression "(int)puVar24 < 0" (cast_expression "(int)puVar24" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar24")) (< "<") (number_literal "0"))) (; ";")) (expression_statement "dVar30 = dVar25;" (assignment_expression "dVar30 = dVar25" (identifier "dVar30") (= "=") (identifier "dVar25")) (; ";")) (goto_statement "goto LAB_000518d8;" (goto "goto") (statement_identifier "LAB_000518d8") (; ";")) (} "}"))) (labeled_statement "LAB_000517b0:\n      dVar31 = *(double *)(PTR_opt_000b746c + 0x120);" (statement_identifier "LAB_000517b0") (: ":") (expression_statement "dVar31 = *(double *)(PTR_opt_000b746c + 0x120);" (assignment_expression "dVar31 = *(double *)(PTR_opt_000b746c + 0x120)" (identifier "dVar31") (= "=") (pointer_expression "*(double *)(PTR_opt_000b746c + 0x120)" (* "*") (cast_expression "(double *)(PTR_opt_000b746c + 0x120)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_opt_000b746c + 0x120)" (( "(") (binary_expression "PTR_opt_000b746c + 0x120" (identifier "PTR_opt_000b746c") (+ "+") (number_literal "0x120")) () ")"))))) (; ";"))) (if_statement "if (uVar5 != 0) goto LAB_00051820;" (if "if") (parenthesized_expression "(uVar5 != 0)" (( "(") (binary_expression "uVar5 != 0" (identifier "uVar5") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00051820;" (goto "goto") (statement_identifier "LAB_00051820") (; ";"))) (expression_statement "puVar15 = (undefined8 *)((int)param_6 - (int)local_fc);" (assignment_expression "puVar15 = (undefined8 *)((int)param_6 - (int)local_fc)" (identifier "puVar15") (= "=") (cast_expression "(undefined8 *)((int)param_6 - (int)local_fc)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_6 - (int)local_fc)" (( "(") (binary_expression "(int)param_6 - (int)local_fc" (cast_expression "(int)param_6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_6")) (- "-") (cast_expression "(int)local_fc" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_fc"))) () ")")))) (; ";")) (expression_statement "iVar13 = (param_5 - iVar6) - (uint)(param_6 < puVar15);" (assignment_expression "iVar13 = (param_5 - iVar6) - (uint)(param_6 < puVar15)" (identifier "iVar13") (= "=") (binary_expression "(param_5 - iVar6) - (uint)(param_6 < puVar15)" (parenthesized_expression "(param_5 - iVar6)" (( "(") (binary_expression "param_5 - iVar6" (identifier "param_5") (- "-") (identifier "iVar6")) () ")")) (- "-") (call_expression "(uint)(param_6 < puVar15)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(param_6 < puVar15)" (( "(") (binary_expression "param_6 < puVar15" (identifier "param_6") (< "<") (identifier "puVar15")) () ")"))))) (; ";")) (expression_statement "dVar25 = (double)CONCAT44(iVar13,uVar8);" (assignment_expression "dVar25 = (double)CONCAT44(iVar13,uVar8)" (identifier "dVar25") (= "=") (cast_expression "(double)CONCAT44(iVar13,uVar8)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "CONCAT44(iVar13,uVar8)" (identifier "CONCAT44") (argument_list "(iVar13,uVar8)" (( "(") (identifier "iVar13") (, ",") (identifier "uVar8") () ")"))))) (; ";")) (expression_statement "puVar9 = local_e0;" (assignment_expression "puVar9 = local_e0" (identifier "puVar9") (= "=") (identifier "local_e0")) (; ";")) (if_statement "if ((iVar17 < iVar13) ||\n         ((dVar30 = (double)CONCAT44(iVar13,uVar8), iVar13 == iVar17 &&\n          (dVar30 = (double)CONCAT44(iVar13,uVar8), local_e0 < puVar15)))) goto LAB_00051864;" (if "if") (parenthesized_expression "((iVar17 < iVar13) ||\n         ((dVar30 = (double)CONCAT44(iVar13,uVar8), iVar13 == iVar17 &&\n          (dVar30 = (double)CONCAT44(iVar13,uVar8), local_e0 < puVar15))))" (( "(") (binary_expression "(iVar17 < iVar13) ||\n         ((dVar30 = (double)CONCAT44(iVar13,uVar8), iVar13 == iVar17 &&\n          (dVar30 = (double)CONCAT44(iVar13,uVar8), local_e0 < puVar15)))" (parenthesized_expression "(iVar17 < iVar13)" (( "(") (binary_expression "iVar17 < iVar13" (identifier "iVar17") (< "<") (identifier "iVar13")) () ")")) (|| "||") (parenthesized_expression "((dVar30 = (double)CONCAT44(iVar13,uVar8), iVar13 == iVar17 &&\n          (dVar30 = (double)CONCAT44(iVar13,uVar8), local_e0 < puVar15)))" (( "(") (parenthesized_expression "(dVar30 = (double)CONCAT44(iVar13,uVar8), iVar13 == iVar17 &&\n          (dVar30 = (double)CONCAT44(iVar13,uVar8), local_e0 < puVar15))" (( "(") (comma_expression "dVar30 = (double)CONCAT44(iVar13,uVar8), iVar13 == iVar17 &&\n          (dVar30 = (double)CONCAT44(iVar13,uVar8), local_e0 < puVar15)" (assignment_expression "dVar30 = (double)CONCAT44(iVar13,uVar8)" (identifier "dVar30") (= "=") (cast_expression "(double)CONCAT44(iVar13,uVar8)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "CONCAT44(iVar13,uVar8)" (identifier "CONCAT44") (argument_list "(iVar13,uVar8)" (( "(") (identifier "iVar13") (, ",") (identifier "uVar8") () ")"))))) (, ",") (binary_expression "iVar13 == iVar17 &&\n          (dVar30 = (double)CONCAT44(iVar13,uVar8), local_e0 < puVar15)" (binary_expression "iVar13 == iVar17" (identifier "iVar13") (== "==") (identifier "iVar17")) (&& "&&") (parenthesized_expression "(dVar30 = (double)CONCAT44(iVar13,uVar8), local_e0 < puVar15)" (( "(") (comma_expression "dVar30 = (double)CONCAT44(iVar13,uVar8), local_e0 < puVar15" (assignment_expression "dVar30 = (double)CONCAT44(iVar13,uVar8)" (identifier "dVar30") (= "=") (cast_expression "(double)CONCAT44(iVar13,uVar8)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "CONCAT44(iVar13,uVar8)" (identifier "CONCAT44") (argument_list "(iVar13,uVar8)" (( "(") (identifier "iVar13") (, ",") (identifier "uVar8") () ")"))))) (, ",") (binary_expression "local_e0 < puVar15" (identifier "local_e0") (< "<") (identifier "puVar15"))) () ")")))) () ")")) () ")"))) () ")")) (goto_statement "goto LAB_00051864;" (goto "goto") (statement_identifier "LAB_00051864") (; ";"))) (labeled_statement "LAB_00051868:\n      puVar18 = SUB84(dVar30,0);" (statement_identifier "LAB_00051868") (: ":") (expression_statement "puVar18 = SUB84(dVar30,0);" (assignment_expression "puVar18 = SUB84(dVar30,0)" (identifier "puVar18") (= "=") (call_expression "SUB84(dVar30,0)" (identifier "SUB84") (argument_list "(dVar30,0)" (( "(") (identifier "dVar30") (, ",") (number_literal "0") () ")")))) (; ";"))) (if_statement "if (local_e4 == 0) {\n        puVar9 = puVar4;\n        puVar24 = (undefined8 *)(*(code *)PTR_fd_read_000b7770)(param_2,puVar4);\n        local_120 = dVar31;\nLAB_000516fc:\n        bVar1 = (int)puVar24 < 0;\n        dVar30 = (double)CONCAT44(puVar15,puVar18);\n        if ((int)puVar24 < 1) goto LAB_000518d8;\n        if (iVar7 == 0) {\n          if (*(int *)(PTR_opt_000b746c + 0x158) == 0 && *(int *)(PTR_opt_000b746c + 0x15c) == 0)\n          goto LAB_00051720;\n          ptimer_measure(local_104);\n        }\n        else {\n          ptimer_measure(local_104);\n        }\nLAB_000515b0:\n        dVar29 = (double)ptimer_read(local_104);\nLAB_000515c4:\n        puVar12 = (undefined8 *)((int)local_fc + (int)puVar24);\n        iVar6 = (uint)(puVar12 < local_fc) + iVar6 + ((int)puVar24 >> 0x1f);\n        puVar9 = param_13;\n        puVar15 = puVar4;\n        puVar18 = puVar24;\n        local_fc = puVar12;\n        if (local_100 == (undefined8 *)0x0) {\n          local_120 = (double)(ZEXT48(auStack_ac + 4) << 0x20);\n          puVar20 = (undefined8 *)FUN_000503a4(param_3,param_13);\n          dVar30 = (double)CONCAT44(puVar15,puVar18);\n          puVar3 = (undefined8 *)(auStack_ac + 4);\n          if ((int)puVar20 < 0) goto LAB_00051040;\n        }\n        else {\n          local_120 = 0.0;\n          local_120._0_4_ = (undefined8 *)0x0;\n          puVar20 = (undefined8 *)FUN_000503a4(0,param_13);\n          dVar30 = (double)CONCAT44(puVar15,puVar18);\n          puVar3 = local_120._0_4_;\n          if ((int)puVar20 < 0) goto LAB_00051040;\n          puVar21 = PTR_DAT_000b758c + -0x1898;\n          pcVar23 = (code *)(PTR_LAB_000b78e4 + 0x3a4);\n          local_94 = puVar4;\n          local_90 = puVar24;\n          do {\n            local_84 = 0x8000;\n            local_88 = local_100;\n            puVar9 = (undefined8 *)0x0;\n            iVar17 = (*(code *)PTR_inflate_000b7d40)(&local_94,0);\n            puVar3 = local_120._0_4_;\n            if (iVar17 == -3) {\nLAB_000511f4:\n              puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n              dVar30 = (double)CONCAT44(puVar15,puVar18);\n              *puVar10 = 0x16;\n              puVar20 = (undefined8 *)0xffffffff;\n              goto LAB_00051040;\n            }\n            if (iVar17 < -2) {\n              if (iVar17 == -4) {\n                puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n                dVar30 = (double)CONCAT44(puVar15,puVar18);\n                *puVar10 = 0xc;\n                puVar20 = (undefined8 *)0xffffffff;\n                goto LAB_00051040;\n              }\n            }\n            else if (iVar17 == 1) {\n              if (((param_12 & 1) != 0) &&\n                 (((param_5 != iVar6 || (param_6 != puVar12)) && (PTR_opt_000b746c[0x16b] != '\0')))\n                 ) {\n                debug_logprintf(puVar21);\n              }\n            }\n            else if (iVar17 == 2) goto LAB_000511f4;\n            local_120 = (double)(ZEXT48(auStack_ac + 4) << 0x20);\n            puVar18 = (undefined8 *)(0x8000 - local_84);\n            puVar9 = (undefined8 *)0x0;\n            puVar15 = local_100;\n            puVar20 = (undefined8 *)(*pcVar23)(param_3,0);\n            dVar30 = (double)CONCAT44(puVar15,puVar18);\n            puVar3 = (undefined8 *)(auStack_ac + 4);\n            if ((int)puVar20 < 0) goto LAB_00051040;\n          } while (local_84 == 0);\n        }\n        dVar31 = local_120;\n        if (uVar5 != 0) {\n          puVar20 = (undefined8 *)((int)local_f0 - (int)puVar24);\n          iVar22 = (iVar22 - ((int)puVar24 >> 0x1f)) - (uint)(local_f0 < puVar20);\n          local_f0 = puVar20;\n          if (iVar22 == 0 && puVar20 == (undefined8 *)0x0) {\n            iVar17 = fd_read_line(param_2);\n            dVar25 = (double)CONCAT44(puVar15,puVar18);\n            if (iVar17 == 0) {\n              puVar24 = (undefined8 *)0xffffffff;\n              goto LAB_000518d4;\n            }\n            if (param_13 != (undefined8 *)0x0) {\n              puVar15 = (undefined8 *)(*(code *)PTR_strlen_000b7c94)(iVar17);\n              puVar9 = (undefined8 *)&DAT_00000001;\n              puVar18 = param_13;\n              (*(code *)PTR_fwrite_000b7c24)(iVar17,1);\n            }\n            (*(code *)PTR_free_000b7d34)(iVar17);\n          }\n        }\n        goto LAB_00051748;\n      }" (if "if") (parenthesized_expression "(local_e4 == 0)" (( "(") (binary_expression "local_e4 == 0" (identifier "local_e4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        puVar9 = puVar4;\n        puVar24 = (undefined8 *)(*(code *)PTR_fd_read_000b7770)(param_2,puVar4);\n        local_120 = dVar31;\nLAB_000516fc:\n        bVar1 = (int)puVar24 < 0;\n        dVar30 = (double)CONCAT44(puVar15,puVar18);\n        if ((int)puVar24 < 1) goto LAB_000518d8;\n        if (iVar7 == 0) {\n          if (*(int *)(PTR_opt_000b746c + 0x158) == 0 && *(int *)(PTR_opt_000b746c + 0x15c) == 0)\n          goto LAB_00051720;\n          ptimer_measure(local_104);\n        }\n        else {\n          ptimer_measure(local_104);\n        }\nLAB_000515b0:\n        dVar29 = (double)ptimer_read(local_104);\nLAB_000515c4:\n        puVar12 = (undefined8 *)((int)local_fc + (int)puVar24);\n        iVar6 = (uint)(puVar12 < local_fc) + iVar6 + ((int)puVar24 >> 0x1f);\n        puVar9 = param_13;\n        puVar15 = puVar4;\n        puVar18 = puVar24;\n        local_fc = puVar12;\n        if (local_100 == (undefined8 *)0x0) {\n          local_120 = (double)(ZEXT48(auStack_ac + 4) << 0x20);\n          puVar20 = (undefined8 *)FUN_000503a4(param_3,param_13);\n          dVar30 = (double)CONCAT44(puVar15,puVar18);\n          puVar3 = (undefined8 *)(auStack_ac + 4);\n          if ((int)puVar20 < 0) goto LAB_00051040;\n        }\n        else {\n          local_120 = 0.0;\n          local_120._0_4_ = (undefined8 *)0x0;\n          puVar20 = (undefined8 *)FUN_000503a4(0,param_13);\n          dVar30 = (double)CONCAT44(puVar15,puVar18);\n          puVar3 = local_120._0_4_;\n          if ((int)puVar20 < 0) goto LAB_00051040;\n          puVar21 = PTR_DAT_000b758c + -0x1898;\n          pcVar23 = (code *)(PTR_LAB_000b78e4 + 0x3a4);\n          local_94 = puVar4;\n          local_90 = puVar24;\n          do {\n            local_84 = 0x8000;\n            local_88 = local_100;\n            puVar9 = (undefined8 *)0x0;\n            iVar17 = (*(code *)PTR_inflate_000b7d40)(&local_94,0);\n            puVar3 = local_120._0_4_;\n            if (iVar17 == -3) {\nLAB_000511f4:\n              puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n              dVar30 = (double)CONCAT44(puVar15,puVar18);\n              *puVar10 = 0x16;\n              puVar20 = (undefined8 *)0xffffffff;\n              goto LAB_00051040;\n            }\n            if (iVar17 < -2) {\n              if (iVar17 == -4) {\n                puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n                dVar30 = (double)CONCAT44(puVar15,puVar18);\n                *puVar10 = 0xc;\n                puVar20 = (undefined8 *)0xffffffff;\n                goto LAB_00051040;\n              }\n            }\n            else if (iVar17 == 1) {\n              if (((param_12 & 1) != 0) &&\n                 (((param_5 != iVar6 || (param_6 != puVar12)) && (PTR_opt_000b746c[0x16b] != '\0')))\n                 ) {\n                debug_logprintf(puVar21);\n              }\n            }\n            else if (iVar17 == 2) goto LAB_000511f4;\n            local_120 = (double)(ZEXT48(auStack_ac + 4) << 0x20);\n            puVar18 = (undefined8 *)(0x8000 - local_84);\n            puVar9 = (undefined8 *)0x0;\n            puVar15 = local_100;\n            puVar20 = (undefined8 *)(*pcVar23)(param_3,0);\n            dVar30 = (double)CONCAT44(puVar15,puVar18);\n            puVar3 = (undefined8 *)(auStack_ac + 4);\n            if ((int)puVar20 < 0) goto LAB_00051040;\n          } while (local_84 == 0);\n        }\n        dVar31 = local_120;\n        if (uVar5 != 0) {\n          puVar20 = (undefined8 *)((int)local_f0 - (int)puVar24);\n          iVar22 = (iVar22 - ((int)puVar24 >> 0x1f)) - (uint)(local_f0 < puVar20);\n          local_f0 = puVar20;\n          if (iVar22 == 0 && puVar20 == (undefined8 *)0x0) {\n            iVar17 = fd_read_line(param_2);\n            dVar25 = (double)CONCAT44(puVar15,puVar18);\n            if (iVar17 == 0) {\n              puVar24 = (undefined8 *)0xffffffff;\n              goto LAB_000518d4;\n            }\n            if (param_13 != (undefined8 *)0x0) {\n              puVar15 = (undefined8 *)(*(code *)PTR_strlen_000b7c94)(iVar17);\n              puVar9 = (undefined8 *)&DAT_00000001;\n              puVar18 = param_13;\n              (*(code *)PTR_fwrite_000b7c24)(iVar17,1);\n            }\n            (*(code *)PTR_free_000b7d34)(iVar17);\n          }\n        }\n        goto LAB_00051748;\n      }" ({ "{") (expression_statement "puVar9 = puVar4;" (assignment_expression "puVar9 = puVar4" (identifier "puVar9") (= "=") (identifier "puVar4")) (; ";")) (expression_statement "puVar24 = (undefined8 *)(*(code *)PTR_fd_read_000b7770)(param_2,puVar4);" (assignment_expression "puVar24 = (undefined8 *)(*(code *)PTR_fd_read_000b7770)(param_2,puVar4)" (identifier "puVar24") (= "=") (cast_expression "(undefined8 *)(*(code *)PTR_fd_read_000b7770)(param_2,puVar4)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_fd_read_000b7770)(param_2,puVar4)" (parenthesized_expression "(*(code *)PTR_fd_read_000b7770)" (( "(") (pointer_expression "*(code *)PTR_fd_read_000b7770" (* "*") (cast_expression "(code *)PTR_fd_read_000b7770" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_fd_read_000b7770"))) () ")")) (argument_list "(param_2,puVar4)" (( "(") (identifier "param_2") (, ",") (identifier "puVar4") () ")"))))) (; ";")) (expression_statement "local_120 = dVar31;" (assignment_expression "local_120 = dVar31" (identifier "local_120") (= "=") (identifier "dVar31")) (; ";")) (labeled_statement "LAB_000516fc:\n        bVar1 = (int)puVar24 < 0;" (statement_identifier "LAB_000516fc") (: ":") (expression_statement "bVar1 = (int)puVar24 < 0;" (assignment_expression "bVar1 = (int)puVar24 < 0" (identifier "bVar1") (= "=") (binary_expression "(int)puVar24 < 0" (cast_expression "(int)puVar24" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar24")) (< "<") (number_literal "0"))) (; ";"))) (expression_statement "dVar30 = (double)CONCAT44(puVar15,puVar18);" (assignment_expression "dVar30 = (double)CONCAT44(puVar15,puVar18)" (identifier "dVar30") (= "=") (cast_expression "(double)CONCAT44(puVar15,puVar18)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "CONCAT44(puVar15,puVar18)" (identifier "CONCAT44") (argument_list "(puVar15,puVar18)" (( "(") (identifier "puVar15") (, ",") (identifier "puVar18") () ")"))))) (; ";")) (if_statement "if ((int)puVar24 < 1) goto LAB_000518d8;" (if "if") (parenthesized_expression "((int)puVar24 < 1)" (( "(") (binary_expression "(int)puVar24 < 1" (cast_expression "(int)puVar24" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar24")) (< "<") (number_literal "1")) () ")")) (goto_statement "goto LAB_000518d8;" (goto "goto") (statement_identifier "LAB_000518d8") (; ";"))) (if_statement "if (iVar7 == 0) {\n          if (*(int *)(PTR_opt_000b746c + 0x158) == 0 && *(int *)(PTR_opt_000b746c + 0x15c) == 0)\n          goto LAB_00051720;\n          ptimer_measure(local_104);\n        }\n        else {\n          ptimer_measure(local_104);\n        }" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          if (*(int *)(PTR_opt_000b746c + 0x158) == 0 && *(int *)(PTR_opt_000b746c + 0x15c) == 0)\n          goto LAB_00051720;\n          ptimer_measure(local_104);\n        }" ({ "{") (if_statement "if (*(int *)(PTR_opt_000b746c + 0x158) == 0 && *(int *)(PTR_opt_000b746c + 0x15c) == 0)\n          goto LAB_00051720;" (if "if") (parenthesized_expression "(*(int *)(PTR_opt_000b746c + 0x158) == 0 && *(int *)(PTR_opt_000b746c + 0x15c) == 0)" (( "(") (binary_expression "*(int *)(PTR_opt_000b746c + 0x158) == 0 && *(int *)(PTR_opt_000b746c + 0x15c) == 0" (binary_expression "*(int *)(PTR_opt_000b746c + 0x158) == 0" (pointer_expression "*(int *)(PTR_opt_000b746c + 0x158)" (* "*") (cast_expression "(int *)(PTR_opt_000b746c + 0x158)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_opt_000b746c + 0x158)" (( "(") (binary_expression "PTR_opt_000b746c + 0x158" (identifier "PTR_opt_000b746c") (+ "+") (number_literal "0x158")) () ")")))) (== "==") (number_literal "0")) (&& "&&") (binary_expression "*(int *)(PTR_opt_000b746c + 0x15c) == 0" (pointer_expression "*(int *)(PTR_opt_000b746c + 0x15c)" (* "*") (cast_expression "(int *)(PTR_opt_000b746c + 0x15c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_opt_000b746c + 0x15c)" (( "(") (binary_expression "PTR_opt_000b746c + 0x15c" (identifier "PTR_opt_000b746c") (+ "+") (number_literal "0x15c")) () ")")))) (== "==") (number_literal "0"))) () ")")) (goto_statement "goto LAB_00051720;" (goto "goto") (statement_identifier "LAB_00051720") (; ";"))) (expression_statement "ptimer_measure(local_104);" (call_expression "ptimer_measure(local_104)" (identifier "ptimer_measure") (argument_list "(local_104)" (( "(") (identifier "local_104") () ")"))) (; ";")) (} "}")) (else_clause "else {\n          ptimer_measure(local_104);\n        }" (else "else") (compound_statement "{\n          ptimer_measure(local_104);\n        }" ({ "{") (expression_statement "ptimer_measure(local_104);" (call_expression "ptimer_measure(local_104)" (identifier "ptimer_measure") (argument_list "(local_104)" (( "(") (identifier "local_104") () ")"))) (; ";")) (} "}")))) (labeled_statement "LAB_000515b0:\n        dVar29 = (double)ptimer_read(local_104);" (statement_identifier "LAB_000515b0") (: ":") (expression_statement "dVar29 = (double)ptimer_read(local_104);" (assignment_expression "dVar29 = (double)ptimer_read(local_104)" (identifier "dVar29") (= "=") (cast_expression "(double)ptimer_read(local_104)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "ptimer_read(local_104)" (identifier "ptimer_read") (argument_list "(local_104)" (( "(") (identifier "local_104") () ")"))))) (; ";"))) (labeled_statement "LAB_000515c4:\n        puVar12 = (undefined8 *)((int)local_fc + (int)puVar24);" (statement_identifier "LAB_000515c4") (: ":") (expression_statement "puVar12 = (undefined8 *)((int)local_fc + (int)puVar24);" (assignment_expression "puVar12 = (undefined8 *)((int)local_fc + (int)puVar24)" (identifier "puVar12") (= "=") (cast_expression "(undefined8 *)((int)local_fc + (int)puVar24)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_fc + (int)puVar24)" (( "(") (binary_expression "(int)local_fc + (int)puVar24" (cast_expression "(int)local_fc" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_fc")) (+ "+") (cast_expression "(int)puVar24" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar24"))) () ")")))) (; ";"))) (expression_statement "iVar6 = (uint)(puVar12 < local_fc) + iVar6 + ((int)puVar24 >> 0x1f);" (assignment_expression "iVar6 = (uint)(puVar12 < local_fc) + iVar6 + ((int)puVar24 >> 0x1f)" (identifier "iVar6") (= "=") (binary_expression "(uint)(puVar12 < local_fc) + iVar6 + ((int)puVar24 >> 0x1f)" (binary_expression "(uint)(puVar12 < local_fc) + iVar6" (call_expression "(uint)(puVar12 < local_fc)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(puVar12 < local_fc)" (( "(") (binary_expression "puVar12 < local_fc" (identifier "puVar12") (< "<") (identifier "local_fc")) () ")"))) (+ "+") (identifier "iVar6")) (+ "+") (parenthesized_expression "((int)puVar24 >> 0x1f)" (( "(") (binary_expression "(int)puVar24 >> 0x1f" (cast_expression "(int)puVar24" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar24")) (>> ">>") (number_literal "0x1f")) () ")")))) (; ";")) (expression_statement "puVar9 = param_13;" (assignment_expression "puVar9 = param_13" (identifier "puVar9") (= "=") (identifier "param_13")) (; ";")) (expression_statement "puVar15 = puVar4;" (assignment_expression "puVar15 = puVar4" (identifier "puVar15") (= "=") (identifier "puVar4")) (; ";")) (expression_statement "puVar18 = puVar24;" (assignment_expression "puVar18 = puVar24" (identifier "puVar18") (= "=") (identifier "puVar24")) (; ";")) (expression_statement "local_fc = puVar12;" (assignment_expression "local_fc = puVar12" (identifier "local_fc") (= "=") (identifier "puVar12")) (; ";")) (if_statement "if (local_100 == (undefined8 *)0x0) {\n          local_120 = (double)(ZEXT48(auStack_ac + 4) << 0x20);\n          puVar20 = (undefined8 *)FUN_000503a4(param_3,param_13);\n          dVar30 = (double)CONCAT44(puVar15,puVar18);\n          puVar3 = (undefined8 *)(auStack_ac + 4);\n          if ((int)puVar20 < 0) goto LAB_00051040;\n        }\n        else {\n          local_120 = 0.0;\n          local_120._0_4_ = (undefined8 *)0x0;\n          puVar20 = (undefined8 *)FUN_000503a4(0,param_13);\n          dVar30 = (double)CONCAT44(puVar15,puVar18);\n          puVar3 = local_120._0_4_;\n          if ((int)puVar20 < 0) goto LAB_00051040;\n          puVar21 = PTR_DAT_000b758c + -0x1898;\n          pcVar23 = (code *)(PTR_LAB_000b78e4 + 0x3a4);\n          local_94 = puVar4;\n          local_90 = puVar24;\n          do {\n            local_84 = 0x8000;\n            local_88 = local_100;\n            puVar9 = (undefined8 *)0x0;\n            iVar17 = (*(code *)PTR_inflate_000b7d40)(&local_94,0);\n            puVar3 = local_120._0_4_;\n            if (iVar17 == -3) {\nLAB_000511f4:\n              puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n              dVar30 = (double)CONCAT44(puVar15,puVar18);\n              *puVar10 = 0x16;\n              puVar20 = (undefined8 *)0xffffffff;\n              goto LAB_00051040;\n            }\n            if (iVar17 < -2) {\n              if (iVar17 == -4) {\n                puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n                dVar30 = (double)CONCAT44(puVar15,puVar18);\n                *puVar10 = 0xc;\n                puVar20 = (undefined8 *)0xffffffff;\n                goto LAB_00051040;\n              }\n            }\n            else if (iVar17 == 1) {\n              if (((param_12 & 1) != 0) &&\n                 (((param_5 != iVar6 || (param_6 != puVar12)) && (PTR_opt_000b746c[0x16b] != '\0')))\n                 ) {\n                debug_logprintf(puVar21);\n              }\n            }\n            else if (iVar17 == 2) goto LAB_000511f4;\n            local_120 = (double)(ZEXT48(auStack_ac + 4) << 0x20);\n            puVar18 = (undefined8 *)(0x8000 - local_84);\n            puVar9 = (undefined8 *)0x0;\n            puVar15 = local_100;\n            puVar20 = (undefined8 *)(*pcVar23)(param_3,0);\n            dVar30 = (double)CONCAT44(puVar15,puVar18);\n            puVar3 = (undefined8 *)(auStack_ac + 4);\n            if ((int)puVar20 < 0) goto LAB_00051040;\n          } while (local_84 == 0);\n        }" (if "if") (parenthesized_expression "(local_100 == (undefined8 *)0x0)" (( "(") (binary_expression "local_100 == (undefined8 *)0x0" (identifier "local_100") (== "==") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          local_120 = (double)(ZEXT48(auStack_ac + 4) << 0x20);\n          puVar20 = (undefined8 *)FUN_000503a4(param_3,param_13);\n          dVar30 = (double)CONCAT44(puVar15,puVar18);\n          puVar3 = (undefined8 *)(auStack_ac + 4);\n          if ((int)puVar20 < 0) goto LAB_00051040;\n        }" ({ "{") (expression_statement "local_120 = (double)(ZEXT48(auStack_ac + 4) << 0x20);" (assignment_expression "local_120 = (double)(ZEXT48(auStack_ac + 4) << 0x20)" (identifier "local_120") (= "=") (cast_expression "(double)(ZEXT48(auStack_ac + 4) << 0x20)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (parenthesized_expression "(ZEXT48(auStack_ac + 4) << 0x20)" (( "(") (binary_expression "ZEXT48(auStack_ac + 4) << 0x20" (call_expression "ZEXT48(auStack_ac + 4)" (identifier "ZEXT48") (argument_list "(auStack_ac + 4)" (( "(") (binary_expression "auStack_ac + 4" (identifier "auStack_ac") (+ "+") (number_literal "4")) () ")"))) (<< "<<") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "puVar20 = (undefined8 *)FUN_000503a4(param_3,param_13);" (assignment_expression "puVar20 = (undefined8 *)FUN_000503a4(param_3,param_13)" (identifier "puVar20") (= "=") (cast_expression "(undefined8 *)FUN_000503a4(param_3,param_13)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_000503a4(param_3,param_13)" (identifier "FUN_000503a4") (argument_list "(param_3,param_13)" (( "(") (identifier "param_3") (, ",") (identifier "param_13") () ")"))))) (; ";")) (expression_statement "dVar30 = (double)CONCAT44(puVar15,puVar18);" (assignment_expression "dVar30 = (double)CONCAT44(puVar15,puVar18)" (identifier "dVar30") (= "=") (cast_expression "(double)CONCAT44(puVar15,puVar18)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "CONCAT44(puVar15,puVar18)" (identifier "CONCAT44") (argument_list "(puVar15,puVar18)" (( "(") (identifier "puVar15") (, ",") (identifier "puVar18") () ")"))))) (; ";")) (expression_statement "puVar3 = (undefined8 *)(auStack_ac + 4);" (assignment_expression "puVar3 = (undefined8 *)(auStack_ac + 4)" (identifier "puVar3") (= "=") (cast_expression "(undefined8 *)(auStack_ac + 4)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(auStack_ac + 4)" (( "(") (binary_expression "auStack_ac + 4" (identifier "auStack_ac") (+ "+") (number_literal "4")) () ")")))) (; ";")) (if_statement "if ((int)puVar20 < 0) goto LAB_00051040;" (if "if") (parenthesized_expression "((int)puVar20 < 0)" (( "(") (binary_expression "(int)puVar20 < 0" (cast_expression "(int)puVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar20")) (< "<") (number_literal "0")) () ")")) (goto_statement "goto LAB_00051040;" (goto "goto") (statement_identifier "LAB_00051040") (; ";"))) (} "}")) (else_clause "else {\n          local_120 = 0.0;\n          local_120._0_4_ = (undefined8 *)0x0;\n          puVar20 = (undefined8 *)FUN_000503a4(0,param_13);\n          dVar30 = (double)CONCAT44(puVar15,puVar18);\n          puVar3 = local_120._0_4_;\n          if ((int)puVar20 < 0) goto LAB_00051040;\n          puVar21 = PTR_DAT_000b758c + -0x1898;\n          pcVar23 = (code *)(PTR_LAB_000b78e4 + 0x3a4);\n          local_94 = puVar4;\n          local_90 = puVar24;\n          do {\n            local_84 = 0x8000;\n            local_88 = local_100;\n            puVar9 = (undefined8 *)0x0;\n            iVar17 = (*(code *)PTR_inflate_000b7d40)(&local_94,0);\n            puVar3 = local_120._0_4_;\n            if (iVar17 == -3) {\nLAB_000511f4:\n              puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n              dVar30 = (double)CONCAT44(puVar15,puVar18);\n              *puVar10 = 0x16;\n              puVar20 = (undefined8 *)0xffffffff;\n              goto LAB_00051040;\n            }\n            if (iVar17 < -2) {\n              if (iVar17 == -4) {\n                puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n                dVar30 = (double)CONCAT44(puVar15,puVar18);\n                *puVar10 = 0xc;\n                puVar20 = (undefined8 *)0xffffffff;\n                goto LAB_00051040;\n              }\n            }\n            else if (iVar17 == 1) {\n              if (((param_12 & 1) != 0) &&\n                 (((param_5 != iVar6 || (param_6 != puVar12)) && (PTR_opt_000b746c[0x16b] != '\0')))\n                 ) {\n                debug_logprintf(puVar21);\n              }\n            }\n            else if (iVar17 == 2) goto LAB_000511f4;\n            local_120 = (double)(ZEXT48(auStack_ac + 4) << 0x20);\n            puVar18 = (undefined8 *)(0x8000 - local_84);\n            puVar9 = (undefined8 *)0x0;\n            puVar15 = local_100;\n            puVar20 = (undefined8 *)(*pcVar23)(param_3,0);\n            dVar30 = (double)CONCAT44(puVar15,puVar18);\n            puVar3 = (undefined8 *)(auStack_ac + 4);\n            if ((int)puVar20 < 0) goto LAB_00051040;\n          } while (local_84 == 0);\n        }" (else "else") (compound_statement "{\n          local_120 = 0.0;\n          local_120._0_4_ = (undefined8 *)0x0;\n          puVar20 = (undefined8 *)FUN_000503a4(0,param_13);\n          dVar30 = (double)CONCAT44(puVar15,puVar18);\n          puVar3 = local_120._0_4_;\n          if ((int)puVar20 < 0) goto LAB_00051040;\n          puVar21 = PTR_DAT_000b758c + -0x1898;\n          pcVar23 = (code *)(PTR_LAB_000b78e4 + 0x3a4);\n          local_94 = puVar4;\n          local_90 = puVar24;\n          do {\n            local_84 = 0x8000;\n            local_88 = local_100;\n            puVar9 = (undefined8 *)0x0;\n            iVar17 = (*(code *)PTR_inflate_000b7d40)(&local_94,0);\n            puVar3 = local_120._0_4_;\n            if (iVar17 == -3) {\nLAB_000511f4:\n              puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n              dVar30 = (double)CONCAT44(puVar15,puVar18);\n              *puVar10 = 0x16;\n              puVar20 = (undefined8 *)0xffffffff;\n              goto LAB_00051040;\n            }\n            if (iVar17 < -2) {\n              if (iVar17 == -4) {\n                puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n                dVar30 = (double)CONCAT44(puVar15,puVar18);\n                *puVar10 = 0xc;\n                puVar20 = (undefined8 *)0xffffffff;\n                goto LAB_00051040;\n              }\n            }\n            else if (iVar17 == 1) {\n              if (((param_12 & 1) != 0) &&\n                 (((param_5 != iVar6 || (param_6 != puVar12)) && (PTR_opt_000b746c[0x16b] != '\0')))\n                 ) {\n                debug_logprintf(puVar21);\n              }\n            }\n            else if (iVar17 == 2) goto LAB_000511f4;\n            local_120 = (double)(ZEXT48(auStack_ac + 4) << 0x20);\n            puVar18 = (undefined8 *)(0x8000 - local_84);\n            puVar9 = (undefined8 *)0x0;\n            puVar15 = local_100;\n            puVar20 = (undefined8 *)(*pcVar23)(param_3,0);\n            dVar30 = (double)CONCAT44(puVar15,puVar18);\n            puVar3 = (undefined8 *)(auStack_ac + 4);\n            if ((int)puVar20 < 0) goto LAB_00051040;\n          } while (local_84 == 0);\n        }" ({ "{") (expression_statement "local_120 = 0.0;" (assignment_expression "local_120 = 0.0" (identifier "local_120") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "local_120._0_4_ = (undefined8 *)0x0;" (assignment_expression "local_120._0_4_ = (undefined8 *)0x0" (field_expression "local_120._0_4_" (identifier "local_120") (. ".") (field_identifier "_0_4_")) (= "=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "puVar20 = (undefined8 *)FUN_000503a4(0,param_13);" (assignment_expression "puVar20 = (undefined8 *)FUN_000503a4(0,param_13)" (identifier "puVar20") (= "=") (cast_expression "(undefined8 *)FUN_000503a4(0,param_13)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_000503a4(0,param_13)" (identifier "FUN_000503a4") (argument_list "(0,param_13)" (( "(") (number_literal "0") (, ",") (identifier "param_13") () ")"))))) (; ";")) (expression_statement "dVar30 = (double)CONCAT44(puVar15,puVar18);" (assignment_expression "dVar30 = (double)CONCAT44(puVar15,puVar18)" (identifier "dVar30") (= "=") (cast_expression "(double)CONCAT44(puVar15,puVar18)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "CONCAT44(puVar15,puVar18)" (identifier "CONCAT44") (argument_list "(puVar15,puVar18)" (( "(") (identifier "puVar15") (, ",") (identifier "puVar18") () ")"))))) (; ";")) (expression_statement "puVar3 = local_120._0_4_;" (assignment_expression "puVar3 = local_120._0_4_" (identifier "puVar3") (= "=") (field_expression "local_120._0_4_" (identifier "local_120") (. ".") (field_identifier "_0_4_"))) (; ";")) (if_statement "if ((int)puVar20 < 0) goto LAB_00051040;" (if "if") (parenthesized_expression "((int)puVar20 < 0)" (( "(") (binary_expression "(int)puVar20 < 0" (cast_expression "(int)puVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar20")) (< "<") (number_literal "0")) () ")")) (goto_statement "goto LAB_00051040;" (goto "goto") (statement_identifier "LAB_00051040") (; ";"))) (expression_statement "puVar21 = PTR_DAT_000b758c + -0x1898;" (assignment_expression "puVar21 = PTR_DAT_000b758c + -0x1898" (identifier "puVar21") (= "=") (binary_expression "PTR_DAT_000b758c + -0x1898" (identifier "PTR_DAT_000b758c") (+ "+") (number_literal "-0x1898"))) (; ";")) (expression_statement "pcVar23 = (code *)(PTR_LAB_000b78e4 + 0x3a4);" (assignment_expression "pcVar23 = (code *)(PTR_LAB_000b78e4 + 0x3a4)" (identifier "pcVar23") (= "=") (cast_expression "(code *)(PTR_LAB_000b78e4 + 0x3a4)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000b78e4 + 0x3a4)" (( "(") (binary_expression "PTR_LAB_000b78e4 + 0x3a4" (identifier "PTR_LAB_000b78e4") (+ "+") (number_literal "0x3a4")) () ")")))) (; ";")) (expression_statement "local_94 = puVar4;" (assignment_expression "local_94 = puVar4" (identifier "local_94") (= "=") (identifier "puVar4")) (; ";")) (expression_statement "local_90 = puVar24;" (assignment_expression "local_90 = puVar24" (identifier "local_90") (= "=") (identifier "puVar24")) (; ";")) (do_statement "do {\n            local_84 = 0x8000;\n            local_88 = local_100;\n            puVar9 = (undefined8 *)0x0;\n            iVar17 = (*(code *)PTR_inflate_000b7d40)(&local_94,0);\n            puVar3 = local_120._0_4_;\n            if (iVar17 == -3) {\nLAB_000511f4:\n              puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n              dVar30 = (double)CONCAT44(puVar15,puVar18);\n              *puVar10 = 0x16;\n              puVar20 = (undefined8 *)0xffffffff;\n              goto LAB_00051040;\n            }\n            if (iVar17 < -2) {\n              if (iVar17 == -4) {\n                puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n                dVar30 = (double)CONCAT44(puVar15,puVar18);\n                *puVar10 = 0xc;\n                puVar20 = (undefined8 *)0xffffffff;\n                goto LAB_00051040;\n              }\n            }\n            else if (iVar17 == 1) {\n              if (((param_12 & 1) != 0) &&\n                 (((param_5 != iVar6 || (param_6 != puVar12)) && (PTR_opt_000b746c[0x16b] != '\0')))\n                 ) {\n                debug_logprintf(puVar21);\n              }\n            }\n            else if (iVar17 == 2) goto LAB_000511f4;\n            local_120 = (double)(ZEXT48(auStack_ac + 4) << 0x20);\n            puVar18 = (undefined8 *)(0x8000 - local_84);\n            puVar9 = (undefined8 *)0x0;\n            puVar15 = local_100;\n            puVar20 = (undefined8 *)(*pcVar23)(param_3,0);\n            dVar30 = (double)CONCAT44(puVar15,puVar18);\n            puVar3 = (undefined8 *)(auStack_ac + 4);\n            if ((int)puVar20 < 0) goto LAB_00051040;\n          } while (local_84 == 0);" (do "do") (compound_statement "{\n            local_84 = 0x8000;\n            local_88 = local_100;\n            puVar9 = (undefined8 *)0x0;\n            iVar17 = (*(code *)PTR_inflate_000b7d40)(&local_94,0);\n            puVar3 = local_120._0_4_;\n            if (iVar17 == -3) {\nLAB_000511f4:\n              puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n              dVar30 = (double)CONCAT44(puVar15,puVar18);\n              *puVar10 = 0x16;\n              puVar20 = (undefined8 *)0xffffffff;\n              goto LAB_00051040;\n            }\n            if (iVar17 < -2) {\n              if (iVar17 == -4) {\n                puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n                dVar30 = (double)CONCAT44(puVar15,puVar18);\n                *puVar10 = 0xc;\n                puVar20 = (undefined8 *)0xffffffff;\n                goto LAB_00051040;\n              }\n            }\n            else if (iVar17 == 1) {\n              if (((param_12 & 1) != 0) &&\n                 (((param_5 != iVar6 || (param_6 != puVar12)) && (PTR_opt_000b746c[0x16b] != '\0')))\n                 ) {\n                debug_logprintf(puVar21);\n              }\n            }\n            else if (iVar17 == 2) goto LAB_000511f4;\n            local_120 = (double)(ZEXT48(auStack_ac + 4) << 0x20);\n            puVar18 = (undefined8 *)(0x8000 - local_84);\n            puVar9 = (undefined8 *)0x0;\n            puVar15 = local_100;\n            puVar20 = (undefined8 *)(*pcVar23)(param_3,0);\n            dVar30 = (double)CONCAT44(puVar15,puVar18);\n            puVar3 = (undefined8 *)(auStack_ac + 4);\n            if ((int)puVar20 < 0) goto LAB_00051040;\n          }" ({ "{") (expression_statement "local_84 = 0x8000;" (assignment_expression "local_84 = 0x8000" (identifier "local_84") (= "=") (number_literal "0x8000")) (; ";")) (expression_statement "local_88 = local_100;" (assignment_expression "local_88 = local_100" (identifier "local_88") (= "=") (identifier "local_100")) (; ";")) (expression_statement "puVar9 = (undefined8 *)0x0;" (assignment_expression "puVar9 = (undefined8 *)0x0" (identifier "puVar9") (= "=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "iVar17 = (*(code *)PTR_inflate_000b7d40)(&local_94,0);" (assignment_expression "iVar17 = (*(code *)PTR_inflate_000b7d40)(&local_94,0)" (identifier "iVar17") (= "=") (call_expression "(*(code *)PTR_inflate_000b7d40)(&local_94,0)" (parenthesized_expression "(*(code *)PTR_inflate_000b7d40)" (( "(") (pointer_expression "*(code *)PTR_inflate_000b7d40" (* "*") (cast_expression "(code *)PTR_inflate_000b7d40" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_inflate_000b7d40"))) () ")")) (argument_list "(&local_94,0)" (( "(") (pointer_expression "&local_94" (& "&") (identifier "local_94")) (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "puVar3 = local_120._0_4_;" (assignment_expression "puVar3 = local_120._0_4_" (identifier "puVar3") (= "=") (field_expression "local_120._0_4_" (identifier "local_120") (. ".") (field_identifier "_0_4_"))) (; ";")) (if_statement "if (iVar17 == -3) {\nLAB_000511f4:\n              puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n              dVar30 = (double)CONCAT44(puVar15,puVar18);\n              *puVar10 = 0x16;\n              puVar20 = (undefined8 *)0xffffffff;\n              goto LAB_00051040;\n            }" (if "if") (parenthesized_expression "(iVar17 == -3)" (( "(") (binary_expression "iVar17 == -3" (identifier "iVar17") (== "==") (number_literal "-3")) () ")")) (compound_statement "{\nLAB_000511f4:\n              puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n              dVar30 = (double)CONCAT44(puVar15,puVar18);\n              *puVar10 = 0x16;\n              puVar20 = (undefined8 *)0xffffffff;\n              goto LAB_00051040;\n            }" ({ "{") (labeled_statement "LAB_000511f4:\n              puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();" (statement_identifier "LAB_000511f4") (: ":") (expression_statement "puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();" (assignment_expression "puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)()" (identifier "puVar10") (= "=") (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_000b7eb8)()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___errno_location_000b7eb8)()" (parenthesized_expression "(*(code *)PTR___errno_location_000b7eb8)" (( "(") (pointer_expression "*(code *)PTR___errno_location_000b7eb8" (* "*") (cast_expression "(code *)PTR___errno_location_000b7eb8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___errno_location_000b7eb8"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";"))) (expression_statement "dVar30 = (double)CONCAT44(puVar15,puVar18);" (assignment_expression "dVar30 = (double)CONCAT44(puVar15,puVar18)" (identifier "dVar30") (= "=") (cast_expression "(double)CONCAT44(puVar15,puVar18)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "CONCAT44(puVar15,puVar18)" (identifier "CONCAT44") (argument_list "(puVar15,puVar18)" (( "(") (identifier "puVar15") (, ",") (identifier "puVar18") () ")"))))) (; ";")) (expression_statement "*puVar10 = 0x16;" (assignment_expression "*puVar10 = 0x16" (pointer_expression "*puVar10" (* "*") (identifier "puVar10")) (= "=") (number_literal "0x16")) (; ";")) (expression_statement "puVar20 = (undefined8 *)0xffffffff;" (assignment_expression "puVar20 = (undefined8 *)0xffffffff" (identifier "puVar20") (= "=") (cast_expression "(undefined8 *)0xffffffff" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) (; ";")) (goto_statement "goto LAB_00051040;" (goto "goto") (statement_identifier "LAB_00051040") (; ";")) (} "}"))) (if_statement "if (iVar17 < -2) {\n              if (iVar17 == -4) {\n                puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n                dVar30 = (double)CONCAT44(puVar15,puVar18);\n                *puVar10 = 0xc;\n                puVar20 = (undefined8 *)0xffffffff;\n                goto LAB_00051040;\n              }\n            }\n            else if (iVar17 == 1) {\n              if (((param_12 & 1) != 0) &&\n                 (((param_5 != iVar6 || (param_6 != puVar12)) && (PTR_opt_000b746c[0x16b] != '\0')))\n                 ) {\n                debug_logprintf(puVar21);\n              }\n            }\n            else if (iVar17 == 2) goto LAB_000511f4;" (if "if") (parenthesized_expression "(iVar17 < -2)" (( "(") (binary_expression "iVar17 < -2" (identifier "iVar17") (< "<") (number_literal "-2")) () ")")) (compound_statement "{\n              if (iVar17 == -4) {\n                puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n                dVar30 = (double)CONCAT44(puVar15,puVar18);\n                *puVar10 = 0xc;\n                puVar20 = (undefined8 *)0xffffffff;\n                goto LAB_00051040;\n              }\n            }" ({ "{") (if_statement "if (iVar17 == -4) {\n                puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n                dVar30 = (double)CONCAT44(puVar15,puVar18);\n                *puVar10 = 0xc;\n                puVar20 = (undefined8 *)0xffffffff;\n                goto LAB_00051040;\n              }" (if "if") (parenthesized_expression "(iVar17 == -4)" (( "(") (binary_expression "iVar17 == -4" (identifier "iVar17") (== "==") (number_literal "-4")) () ")")) (compound_statement "{\n                puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n                dVar30 = (double)CONCAT44(puVar15,puVar18);\n                *puVar10 = 0xc;\n                puVar20 = (undefined8 *)0xffffffff;\n                goto LAB_00051040;\n              }" ({ "{") (expression_statement "puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();" (assignment_expression "puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)()" (identifier "puVar10") (= "=") (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_000b7eb8)()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___errno_location_000b7eb8)()" (parenthesized_expression "(*(code *)PTR___errno_location_000b7eb8)" (( "(") (pointer_expression "*(code *)PTR___errno_location_000b7eb8" (* "*") (cast_expression "(code *)PTR___errno_location_000b7eb8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___errno_location_000b7eb8"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "dVar30 = (double)CONCAT44(puVar15,puVar18);" (assignment_expression "dVar30 = (double)CONCAT44(puVar15,puVar18)" (identifier "dVar30") (= "=") (cast_expression "(double)CONCAT44(puVar15,puVar18)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "CONCAT44(puVar15,puVar18)" (identifier "CONCAT44") (argument_list "(puVar15,puVar18)" (( "(") (identifier "puVar15") (, ",") (identifier "puVar18") () ")"))))) (; ";")) (expression_statement "*puVar10 = 0xc;" (assignment_expression "*puVar10 = 0xc" (pointer_expression "*puVar10" (* "*") (identifier "puVar10")) (= "=") (number_literal "0xc")) (; ";")) (expression_statement "puVar20 = (undefined8 *)0xffffffff;" (assignment_expression "puVar20 = (undefined8 *)0xffffffff" (identifier "puVar20") (= "=") (cast_expression "(undefined8 *)0xffffffff" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) (; ";")) (goto_statement "goto LAB_00051040;" (goto "goto") (statement_identifier "LAB_00051040") (; ";")) (} "}"))) (} "}")) (else_clause "else if (iVar17 == 1) {\n              if (((param_12 & 1) != 0) &&\n                 (((param_5 != iVar6 || (param_6 != puVar12)) && (PTR_opt_000b746c[0x16b] != '\0')))\n                 ) {\n                debug_logprintf(puVar21);\n              }\n            }\n            else if (iVar17 == 2) goto LAB_000511f4;" (else "else") (if_statement "if (iVar17 == 1) {\n              if (((param_12 & 1) != 0) &&\n                 (((param_5 != iVar6 || (param_6 != puVar12)) && (PTR_opt_000b746c[0x16b] != '\0')))\n                 ) {\n                debug_logprintf(puVar21);\n              }\n            }\n            else if (iVar17 == 2) goto LAB_000511f4;" (if "if") (parenthesized_expression "(iVar17 == 1)" (( "(") (binary_expression "iVar17 == 1" (identifier "iVar17") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n              if (((param_12 & 1) != 0) &&\n                 (((param_5 != iVar6 || (param_6 != puVar12)) && (PTR_opt_000b746c[0x16b] != '\0')))\n                 ) {\n                debug_logprintf(puVar21);\n              }\n            }" ({ "{") (if_statement "if (((param_12 & 1) != 0) &&\n                 (((param_5 != iVar6 || (param_6 != puVar12)) && (PTR_opt_000b746c[0x16b] != '\0')))\n                 ) {\n                debug_logprintf(puVar21);\n              }" (if "if") (parenthesized_expression "(((param_12 & 1) != 0) &&\n                 (((param_5 != iVar6 || (param_6 != puVar12)) && (PTR_opt_000b746c[0x16b] != '\0')))\n                 )" (( "(") (binary_expression "((param_12 & 1) != 0) &&\n                 (((param_5 != iVar6 || (param_6 != puVar12)) && (PTR_opt_000b746c[0x16b] != '\0')))" (parenthesized_expression "((param_12 & 1) != 0)" (( "(") (binary_expression "(param_12 & 1) != 0" (parenthesized_expression "(param_12 & 1)" (( "(") (binary_expression "param_12 & 1" (identifier "param_12") (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(((param_5 != iVar6 || (param_6 != puVar12)) && (PTR_opt_000b746c[0x16b] != '\0')))" (( "(") (parenthesized_expression "((param_5 != iVar6 || (param_6 != puVar12)) && (PTR_opt_000b746c[0x16b] != '\0'))" (( "(") (binary_expression "(param_5 != iVar6 || (param_6 != puVar12)) && (PTR_opt_000b746c[0x16b] != '\0')" (parenthesized_expression "(param_5 != iVar6 || (param_6 != puVar12))" (( "(") (binary_expression "param_5 != iVar6 || (param_6 != puVar12)" (binary_expression "param_5 != iVar6" (identifier "param_5") (!= "!=") (identifier "iVar6")) (|| "||") (parenthesized_expression "(param_6 != puVar12)" (( "(") (binary_expression "param_6 != puVar12" (identifier "param_6") (!= "!=") (identifier "puVar12")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(PTR_opt_000b746c[0x16b] != '\0')" (( "(") (binary_expression "PTR_opt_000b746c[0x16b] != '\0'" (subscript_expression "PTR_opt_000b746c[0x16b]" (identifier "PTR_opt_000b746c") ([ "[") (number_literal "0x16b") (] "]")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n                debug_logprintf(puVar21);\n              }" ({ "{") (expression_statement "debug_logprintf(puVar21);" (call_expression "debug_logprintf(puVar21)" (identifier "debug_logprintf") (argument_list "(puVar21)" (( "(") (identifier "puVar21") () ")"))) (; ";")) (} "}"))) (} "}")) (else_clause "else if (iVar17 == 2) goto LAB_000511f4;" (else "else") (if_statement "if (iVar17 == 2) goto LAB_000511f4;" (if "if") (parenthesized_expression "(iVar17 == 2)" (( "(") (binary_expression "iVar17 == 2" (identifier "iVar17") (== "==") (number_literal "2")) () ")")) (goto_statement "goto LAB_000511f4;" (goto "goto") (statement_identifier "LAB_000511f4") (; ";"))))))) (expression_statement "local_120 = (double)(ZEXT48(auStack_ac + 4) << 0x20);" (assignment_expression "local_120 = (double)(ZEXT48(auStack_ac + 4) << 0x20)" (identifier "local_120") (= "=") (cast_expression "(double)(ZEXT48(auStack_ac + 4) << 0x20)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (parenthesized_expression "(ZEXT48(auStack_ac + 4) << 0x20)" (( "(") (binary_expression "ZEXT48(auStack_ac + 4) << 0x20" (call_expression "ZEXT48(auStack_ac + 4)" (identifier "ZEXT48") (argument_list "(auStack_ac + 4)" (( "(") (binary_expression "auStack_ac + 4" (identifier "auStack_ac") (+ "+") (number_literal "4")) () ")"))) (<< "<<") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "puVar18 = (undefined8 *)(0x8000 - local_84);" (assignment_expression "puVar18 = (undefined8 *)(0x8000 - local_84)" (identifier "puVar18") (= "=") (cast_expression "(undefined8 *)(0x8000 - local_84)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(0x8000 - local_84)" (( "(") (binary_expression "0x8000 - local_84" (number_literal "0x8000") (- "-") (identifier "local_84")) () ")")))) (; ";")) (expression_statement "puVar9 = (undefined8 *)0x0;" (assignment_expression "puVar9 = (undefined8 *)0x0" (identifier "puVar9") (= "=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "puVar15 = local_100;" (assignment_expression "puVar15 = local_100" (identifier "puVar15") (= "=") (identifier "local_100")) (; ";")) (expression_statement "puVar20 = (undefined8 *)(*pcVar23)(param_3,0);" (assignment_expression "puVar20 = (undefined8 *)(*pcVar23)(param_3,0)" (identifier "puVar20") (= "=") (cast_expression "(undefined8 *)(*pcVar23)(param_3,0)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*pcVar23)(param_3,0)" (parenthesized_expression "(*pcVar23)" (( "(") (pointer_expression "*pcVar23" (* "*") (identifier "pcVar23")) () ")")) (argument_list "(param_3,0)" (( "(") (identifier "param_3") (, ",") (number_literal "0") () ")"))))) (; ";")) (expression_statement "dVar30 = (double)CONCAT44(puVar15,puVar18);" (assignment_expression "dVar30 = (double)CONCAT44(puVar15,puVar18)" (identifier "dVar30") (= "=") (cast_expression "(double)CONCAT44(puVar15,puVar18)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "CONCAT44(puVar15,puVar18)" (identifier "CONCAT44") (argument_list "(puVar15,puVar18)" (( "(") (identifier "puVar15") (, ",") (identifier "puVar18") () ")"))))) (; ";")) (expression_statement "puVar3 = (undefined8 *)(auStack_ac + 4);" (assignment_expression "puVar3 = (undefined8 *)(auStack_ac + 4)" (identifier "puVar3") (= "=") (cast_expression "(undefined8 *)(auStack_ac + 4)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(auStack_ac + 4)" (( "(") (binary_expression "auStack_ac + 4" (identifier "auStack_ac") (+ "+") (number_literal "4")) () ")")))) (; ";")) (if_statement "if ((int)puVar20 < 0) goto LAB_00051040;" (if "if") (parenthesized_expression "((int)puVar20 < 0)" (( "(") (binary_expression "(int)puVar20 < 0" (cast_expression "(int)puVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar20")) (< "<") (number_literal "0")) () ")")) (goto_statement "goto LAB_00051040;" (goto "goto") (statement_identifier "LAB_00051040") (; ";"))) (} "}")) (while "while") (parenthesized_expression "(local_84 == 0)" (( "(") (binary_expression "local_84 == 0" (identifier "local_84") (== "==") (number_literal "0")) () ")")) (; ";")) (} "}")))) (expression_statement "dVar31 = local_120;" (assignment_expression "dVar31 = local_120" (identifier "dVar31") (= "=") (identifier "local_120")) (; ";")) (if_statement "if (uVar5 != 0) {\n          puVar20 = (undefined8 *)((int)local_f0 - (int)puVar24);\n          iVar22 = (iVar22 - ((int)puVar24 >> 0x1f)) - (uint)(local_f0 < puVar20);\n          local_f0 = puVar20;\n          if (iVar22 == 0 && puVar20 == (undefined8 *)0x0) {\n            iVar17 = fd_read_line(param_2);\n            dVar25 = (double)CONCAT44(puVar15,puVar18);\n            if (iVar17 == 0) {\n              puVar24 = (undefined8 *)0xffffffff;\n              goto LAB_000518d4;\n            }\n            if (param_13 != (undefined8 *)0x0) {\n              puVar15 = (undefined8 *)(*(code *)PTR_strlen_000b7c94)(iVar17);\n              puVar9 = (undefined8 *)&DAT_00000001;\n              puVar18 = param_13;\n              (*(code *)PTR_fwrite_000b7c24)(iVar17,1);\n            }\n            (*(code *)PTR_free_000b7d34)(iVar17);\n          }\n        }" (if "if") (parenthesized_expression "(uVar5 != 0)" (( "(") (binary_expression "uVar5 != 0" (identifier "uVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          puVar20 = (undefined8 *)((int)local_f0 - (int)puVar24);\n          iVar22 = (iVar22 - ((int)puVar24 >> 0x1f)) - (uint)(local_f0 < puVar20);\n          local_f0 = puVar20;\n          if (iVar22 == 0 && puVar20 == (undefined8 *)0x0) {\n            iVar17 = fd_read_line(param_2);\n            dVar25 = (double)CONCAT44(puVar15,puVar18);\n            if (iVar17 == 0) {\n              puVar24 = (undefined8 *)0xffffffff;\n              goto LAB_000518d4;\n            }\n            if (param_13 != (undefined8 *)0x0) {\n              puVar15 = (undefined8 *)(*(code *)PTR_strlen_000b7c94)(iVar17);\n              puVar9 = (undefined8 *)&DAT_00000001;\n              puVar18 = param_13;\n              (*(code *)PTR_fwrite_000b7c24)(iVar17,1);\n            }\n            (*(code *)PTR_free_000b7d34)(iVar17);\n          }\n        }" ({ "{") (expression_statement "puVar20 = (undefined8 *)((int)local_f0 - (int)puVar24);" (assignment_expression "puVar20 = (undefined8 *)((int)local_f0 - (int)puVar24)" (identifier "puVar20") (= "=") (cast_expression "(undefined8 *)((int)local_f0 - (int)puVar24)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_f0 - (int)puVar24)" (( "(") (binary_expression "(int)local_f0 - (int)puVar24" (cast_expression "(int)local_f0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_f0")) (- "-") (cast_expression "(int)puVar24" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar24"))) () ")")))) (; ";")) (expression_statement "iVar22 = (iVar22 - ((int)puVar24 >> 0x1f)) - (uint)(local_f0 < puVar20);" (assignment_expression "iVar22 = (iVar22 - ((int)puVar24 >> 0x1f)) - (uint)(local_f0 < puVar20)" (identifier "iVar22") (= "=") (binary_expression "(iVar22 - ((int)puVar24 >> 0x1f)) - (uint)(local_f0 < puVar20)" (parenthesized_expression "(iVar22 - ((int)puVar24 >> 0x1f))" (( "(") (binary_expression "iVar22 - ((int)puVar24 >> 0x1f)" (identifier "iVar22") (- "-") (parenthesized_expression "((int)puVar24 >> 0x1f)" (( "(") (binary_expression "(int)puVar24 >> 0x1f" (cast_expression "(int)puVar24" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar24")) (>> ">>") (number_literal "0x1f")) () ")"))) () ")")) (- "-") (call_expression "(uint)(local_f0 < puVar20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_f0 < puVar20)" (( "(") (binary_expression "local_f0 < puVar20" (identifier "local_f0") (< "<") (identifier "puVar20")) () ")"))))) (; ";")) (expression_statement "local_f0 = puVar20;" (assignment_expression "local_f0 = puVar20" (identifier "local_f0") (= "=") (identifier "puVar20")) (; ";")) (if_statement "if (iVar22 == 0 && puVar20 == (undefined8 *)0x0) {\n            iVar17 = fd_read_line(param_2);\n            dVar25 = (double)CONCAT44(puVar15,puVar18);\n            if (iVar17 == 0) {\n              puVar24 = (undefined8 *)0xffffffff;\n              goto LAB_000518d4;\n            }\n            if (param_13 != (undefined8 *)0x0) {\n              puVar15 = (undefined8 *)(*(code *)PTR_strlen_000b7c94)(iVar17);\n              puVar9 = (undefined8 *)&DAT_00000001;\n              puVar18 = param_13;\n              (*(code *)PTR_fwrite_000b7c24)(iVar17,1);\n            }\n            (*(code *)PTR_free_000b7d34)(iVar17);\n          }" (if "if") (parenthesized_expression "(iVar22 == 0 && puVar20 == (undefined8 *)0x0)" (( "(") (binary_expression "iVar22 == 0 && puVar20 == (undefined8 *)0x0" (binary_expression "iVar22 == 0" (identifier "iVar22") (== "==") (number_literal "0")) (&& "&&") (binary_expression "puVar20 == (undefined8 *)0x0" (identifier "puVar20") (== "==") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")")) (compound_statement "{\n            iVar17 = fd_read_line(param_2);\n            dVar25 = (double)CONCAT44(puVar15,puVar18);\n            if (iVar17 == 0) {\n              puVar24 = (undefined8 *)0xffffffff;\n              goto LAB_000518d4;\n            }\n            if (param_13 != (undefined8 *)0x0) {\n              puVar15 = (undefined8 *)(*(code *)PTR_strlen_000b7c94)(iVar17);\n              puVar9 = (undefined8 *)&DAT_00000001;\n              puVar18 = param_13;\n              (*(code *)PTR_fwrite_000b7c24)(iVar17,1);\n            }\n            (*(code *)PTR_free_000b7d34)(iVar17);\n          }" ({ "{") (expression_statement "iVar17 = fd_read_line(param_2);" (assignment_expression "iVar17 = fd_read_line(param_2)" (identifier "iVar17") (= "=") (call_expression "fd_read_line(param_2)" (identifier "fd_read_line") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (expression_statement "dVar25 = (double)CONCAT44(puVar15,puVar18);" (assignment_expression "dVar25 = (double)CONCAT44(puVar15,puVar18)" (identifier "dVar25") (= "=") (cast_expression "(double)CONCAT44(puVar15,puVar18)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "CONCAT44(puVar15,puVar18)" (identifier "CONCAT44") (argument_list "(puVar15,puVar18)" (( "(") (identifier "puVar15") (, ",") (identifier "puVar18") () ")"))))) (; ";")) (if_statement "if (iVar17 == 0) {\n              puVar24 = (undefined8 *)0xffffffff;\n              goto LAB_000518d4;\n            }" (if "if") (parenthesized_expression "(iVar17 == 0)" (( "(") (binary_expression "iVar17 == 0" (identifier "iVar17") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              puVar24 = (undefined8 *)0xffffffff;\n              goto LAB_000518d4;\n            }" ({ "{") (expression_statement "puVar24 = (undefined8 *)0xffffffff;" (assignment_expression "puVar24 = (undefined8 *)0xffffffff" (identifier "puVar24") (= "=") (cast_expression "(undefined8 *)0xffffffff" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) (; ";")) (goto_statement "goto LAB_000518d4;" (goto "goto") (statement_identifier "LAB_000518d4") (; ";")) (} "}"))) (if_statement "if (param_13 != (undefined8 *)0x0) {\n              puVar15 = (undefined8 *)(*(code *)PTR_strlen_000b7c94)(iVar17);\n              puVar9 = (undefined8 *)&DAT_00000001;\n              puVar18 = param_13;\n              (*(code *)PTR_fwrite_000b7c24)(iVar17,1);\n            }" (if "if") (parenthesized_expression "(param_13 != (undefined8 *)0x0)" (( "(") (binary_expression "param_13 != (undefined8 *)0x0" (identifier "param_13") (!= "!=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              puVar15 = (undefined8 *)(*(code *)PTR_strlen_000b7c94)(iVar17);\n              puVar9 = (undefined8 *)&DAT_00000001;\n              puVar18 = param_13;\n              (*(code *)PTR_fwrite_000b7c24)(iVar17,1);\n            }" ({ "{") (expression_statement "puVar15 = (undefined8 *)(*(code *)PTR_strlen_000b7c94)(iVar17);" (assignment_expression "puVar15 = (undefined8 *)(*(code *)PTR_strlen_000b7c94)(iVar17)" (identifier "puVar15") (= "=") (cast_expression "(undefined8 *)(*(code *)PTR_strlen_000b7c94)(iVar17)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_strlen_000b7c94)(iVar17)" (parenthesized_expression "(*(code *)PTR_strlen_000b7c94)" (( "(") (pointer_expression "*(code *)PTR_strlen_000b7c94" (* "*") (cast_expression "(code *)PTR_strlen_000b7c94" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strlen_000b7c94"))) () ")")) (argument_list "(iVar17)" (( "(") (identifier "iVar17") () ")"))))) (; ";")) (expression_statement "puVar9 = (undefined8 *)&DAT_00000001;" (assignment_expression "puVar9 = (undefined8 *)&DAT_00000001" (identifier "puVar9") (= "=") (cast_expression "(undefined8 *)&DAT_00000001" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&DAT_00000001" (& "&") (identifier "DAT_00000001")))) (; ";")) (expression_statement "puVar18 = param_13;" (assignment_expression "puVar18 = param_13" (identifier "puVar18") (= "=") (identifier "param_13")) (; ";")) (expression_statement "(*(code *)PTR_fwrite_000b7c24)(iVar17,1);" (call_expression "(*(code *)PTR_fwrite_000b7c24)(iVar17,1)" (parenthesized_expression "(*(code *)PTR_fwrite_000b7c24)" (( "(") (pointer_expression "*(code *)PTR_fwrite_000b7c24" (* "*") (cast_expression "(code *)PTR_fwrite_000b7c24" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_fwrite_000b7c24"))) () ")")) (argument_list "(iVar17,1)" (( "(") (identifier "iVar17") (, ",") (number_literal "1") () ")"))) (; ";")) (} "}"))) (expression_statement "(*(code *)PTR_free_000b7d34)(iVar17);" (call_expression "(*(code *)PTR_free_000b7d34)(iVar17)" (parenthesized_expression "(*(code *)PTR_free_000b7d34)" (( "(") (pointer_expression "*(code *)PTR_free_000b7d34" (* "*") (cast_expression "(code *)PTR_free_000b7d34" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_000b7d34"))) () ")")) (argument_list "(iVar17)" (( "(") (identifier "iVar17") () ")"))) (; ";")) (} "}"))) (} "}"))) (goto_statement "goto LAB_00051748;" (goto "goto") (statement_identifier "LAB_00051748") (; ";")) (} "}"))) (if_statement "if (*(double *)(PTR_opt_000b746c + 0x120) == 0.0) {\n        dVar31 = *(double *)(PTR_DAT_000b758c + -0x15e0);\n      }\n      else {\n        dVar25 = (double)ptimer_read(local_104);\n        puVar18 = SUB84(dVar30,0);\n        if (*(double *)(PTR_opt_000b746c + 0x120) <\n            (dVar25 - dVar29) + *(double *)(PTR_DAT_000b758c + -0x15e0)) {\n          dVar31 = *(double *)(PTR_opt_000b746c + 0x120) - (dVar25 - dVar29);\n          if (dVar31 < 0.0) {\n            puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n            *puVar10 = 0x91;\n            puVar20 = (undefined8 *)0xffffffff;\n            goto LAB_00051040;\n          }\n        }\n        else {\n          dVar31 = *(double *)(PTR_DAT_000b758c + -0x15e0);\n        }\n      }" (if "if") (parenthesized_expression "(*(double *)(PTR_opt_000b746c + 0x120) == 0.0)" (( "(") (binary_expression "*(double *)(PTR_opt_000b746c + 0x120) == 0.0" (pointer_expression "*(double *)(PTR_opt_000b746c + 0x120)" (* "*") (cast_expression "(double *)(PTR_opt_000b746c + 0x120)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_opt_000b746c + 0x120)" (( "(") (binary_expression "PTR_opt_000b746c + 0x120" (identifier "PTR_opt_000b746c") (+ "+") (number_literal "0x120")) () ")")))) (== "==") (number_literal "0.0")) () ")")) (compound_statement "{\n        dVar31 = *(double *)(PTR_DAT_000b758c + -0x15e0);\n      }" ({ "{") (expression_statement "dVar31 = *(double *)(PTR_DAT_000b758c + -0x15e0);" (assignment_expression "dVar31 = *(double *)(PTR_DAT_000b758c + -0x15e0)" (identifier "dVar31") (= "=") (pointer_expression "*(double *)(PTR_DAT_000b758c + -0x15e0)" (* "*") (cast_expression "(double *)(PTR_DAT_000b758c + -0x15e0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_000b758c + -0x15e0)" (( "(") (binary_expression "PTR_DAT_000b758c + -0x15e0" (identifier "PTR_DAT_000b758c") (+ "+") (number_literal "-0x15e0")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n        dVar25 = (double)ptimer_read(local_104);\n        puVar18 = SUB84(dVar30,0);\n        if (*(double *)(PTR_opt_000b746c + 0x120) <\n            (dVar25 - dVar29) + *(double *)(PTR_DAT_000b758c + -0x15e0)) {\n          dVar31 = *(double *)(PTR_opt_000b746c + 0x120) - (dVar25 - dVar29);\n          if (dVar31 < 0.0) {\n            puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n            *puVar10 = 0x91;\n            puVar20 = (undefined8 *)0xffffffff;\n            goto LAB_00051040;\n          }\n        }\n        else {\n          dVar31 = *(double *)(PTR_DAT_000b758c + -0x15e0);\n        }\n      }" (else "else") (compound_statement "{\n        dVar25 = (double)ptimer_read(local_104);\n        puVar18 = SUB84(dVar30,0);\n        if (*(double *)(PTR_opt_000b746c + 0x120) <\n            (dVar25 - dVar29) + *(double *)(PTR_DAT_000b758c + -0x15e0)) {\n          dVar31 = *(double *)(PTR_opt_000b746c + 0x120) - (dVar25 - dVar29);\n          if (dVar31 < 0.0) {\n            puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n            *puVar10 = 0x91;\n            puVar20 = (undefined8 *)0xffffffff;\n            goto LAB_00051040;\n          }\n        }\n        else {\n          dVar31 = *(double *)(PTR_DAT_000b758c + -0x15e0);\n        }\n      }" ({ "{") (expression_statement "dVar25 = (double)ptimer_read(local_104);" (assignment_expression "dVar25 = (double)ptimer_read(local_104)" (identifier "dVar25") (= "=") (cast_expression "(double)ptimer_read(local_104)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "ptimer_read(local_104)" (identifier "ptimer_read") (argument_list "(local_104)" (( "(") (identifier "local_104") () ")"))))) (; ";")) (expression_statement "puVar18 = SUB84(dVar30,0);" (assignment_expression "puVar18 = SUB84(dVar30,0)" (identifier "puVar18") (= "=") (call_expression "SUB84(dVar30,0)" (identifier "SUB84") (argument_list "(dVar30,0)" (( "(") (identifier "dVar30") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (*(double *)(PTR_opt_000b746c + 0x120) <\n            (dVar25 - dVar29) + *(double *)(PTR_DAT_000b758c + -0x15e0)) {\n          dVar31 = *(double *)(PTR_opt_000b746c + 0x120) - (dVar25 - dVar29);\n          if (dVar31 < 0.0) {\n            puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n            *puVar10 = 0x91;\n            puVar20 = (undefined8 *)0xffffffff;\n            goto LAB_00051040;\n          }\n        }\n        else {\n          dVar31 = *(double *)(PTR_DAT_000b758c + -0x15e0);\n        }" (if "if") (parenthesized_expression "(*(double *)(PTR_opt_000b746c + 0x120) <\n            (dVar25 - dVar29) + *(double *)(PTR_DAT_000b758c + -0x15e0))" (( "(") (binary_expression "*(double *)(PTR_opt_000b746c + 0x120) <\n            (dVar25 - dVar29) + *(double *)(PTR_DAT_000b758c + -0x15e0)" (pointer_expression "*(double *)(PTR_opt_000b746c + 0x120)" (* "*") (cast_expression "(double *)(PTR_opt_000b746c + 0x120)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_opt_000b746c + 0x120)" (( "(") (binary_expression "PTR_opt_000b746c + 0x120" (identifier "PTR_opt_000b746c") (+ "+") (number_literal "0x120")) () ")")))) (< "<") (binary_expression "(dVar25 - dVar29) + *(double *)(PTR_DAT_000b758c + -0x15e0)" (parenthesized_expression "(dVar25 - dVar29)" (( "(") (binary_expression "dVar25 - dVar29" (identifier "dVar25") (- "-") (identifier "dVar29")) () ")")) (+ "+") (pointer_expression "*(double *)(PTR_DAT_000b758c + -0x15e0)" (* "*") (cast_expression "(double *)(PTR_DAT_000b758c + -0x15e0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_000b758c + -0x15e0)" (( "(") (binary_expression "PTR_DAT_000b758c + -0x15e0" (identifier "PTR_DAT_000b758c") (+ "+") (number_literal "-0x15e0")) () ")")))))) () ")")) (compound_statement "{\n          dVar31 = *(double *)(PTR_opt_000b746c + 0x120) - (dVar25 - dVar29);\n          if (dVar31 < 0.0) {\n            puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n            *puVar10 = 0x91;\n            puVar20 = (undefined8 *)0xffffffff;\n            goto LAB_00051040;\n          }\n        }" ({ "{") (expression_statement "dVar31 = *(double *)(PTR_opt_000b746c + 0x120) - (dVar25 - dVar29);" (assignment_expression "dVar31 = *(double *)(PTR_opt_000b746c + 0x120) - (dVar25 - dVar29)" (identifier "dVar31") (= "=") (binary_expression "*(double *)(PTR_opt_000b746c + 0x120) - (dVar25 - dVar29)" (pointer_expression "*(double *)(PTR_opt_000b746c + 0x120)" (* "*") (cast_expression "(double *)(PTR_opt_000b746c + 0x120)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_opt_000b746c + 0x120)" (( "(") (binary_expression "PTR_opt_000b746c + 0x120" (identifier "PTR_opt_000b746c") (+ "+") (number_literal "0x120")) () ")")))) (- "-") (parenthesized_expression "(dVar25 - dVar29)" (( "(") (binary_expression "dVar25 - dVar29" (identifier "dVar25") (- "-") (identifier "dVar29")) () ")")))) (; ";")) (if_statement "if (dVar31 < 0.0) {\n            puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n            *puVar10 = 0x91;\n            puVar20 = (undefined8 *)0xffffffff;\n            goto LAB_00051040;\n          }" (if "if") (parenthesized_expression "(dVar31 < 0.0)" (( "(") (binary_expression "dVar31 < 0.0" (identifier "dVar31") (< "<") (number_literal "0.0")) () ")")) (compound_statement "{\n            puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n            *puVar10 = 0x91;\n            puVar20 = (undefined8 *)0xffffffff;\n            goto LAB_00051040;\n          }" ({ "{") (expression_statement "puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();" (assignment_expression "puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)()" (identifier "puVar10") (= "=") (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_000b7eb8)()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___errno_location_000b7eb8)()" (parenthesized_expression "(*(code *)PTR___errno_location_000b7eb8)" (( "(") (pointer_expression "*(code *)PTR___errno_location_000b7eb8" (* "*") (cast_expression "(code *)PTR___errno_location_000b7eb8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___errno_location_000b7eb8"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "*puVar10 = 0x91;" (assignment_expression "*puVar10 = 0x91" (pointer_expression "*puVar10" (* "*") (identifier "puVar10")) (= "=") (number_literal "0x91")) (; ";")) (expression_statement "puVar20 = (undefined8 *)0xffffffff;" (assignment_expression "puVar20 = (undefined8 *)0xffffffff" (identifier "puVar20") (= "=") (cast_expression "(undefined8 *)0xffffffff" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) (; ";")) (goto_statement "goto LAB_00051040;" (goto "goto") (statement_identifier "LAB_00051040") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n          dVar31 = *(double *)(PTR_DAT_000b758c + -0x15e0);\n        }" (else "else") (compound_statement "{\n          dVar31 = *(double *)(PTR_DAT_000b758c + -0x15e0);\n        }" ({ "{") (expression_statement "dVar31 = *(double *)(PTR_DAT_000b758c + -0x15e0);" (assignment_expression "dVar31 = *(double *)(PTR_DAT_000b758c + -0x15e0)" (identifier "dVar31") (= "=") (pointer_expression "*(double *)(PTR_DAT_000b758c + -0x15e0)" (* "*") (cast_expression "(double *)(PTR_DAT_000b758c + -0x15e0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_000b758c + -0x15e0)" (( "(") (binary_expression "PTR_DAT_000b758c + -0x15e0" (identifier "PTR_DAT_000b758c") (+ "+") (number_literal "-0x15e0")) () ")"))))) (; ";")) (} "}")))) (} "}")))) (expression_statement "puVar9 = puVar4;" (assignment_expression "puVar9 = puVar4" (identifier "puVar9") (= "=") (identifier "puVar4")) (; ";")) (expression_statement "puVar24 = (undefined8 *)(*(code *)PTR_fd_read_000b7770)(param_2,puVar4);" (assignment_expression "puVar24 = (undefined8 *)(*(code *)PTR_fd_read_000b7770)(param_2,puVar4)" (identifier "puVar24") (= "=") (cast_expression "(undefined8 *)(*(code *)PTR_fd_read_000b7770)(param_2,puVar4)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_fd_read_000b7770)(param_2,puVar4)" (parenthesized_expression "(*(code *)PTR_fd_read_000b7770)" (( "(") (pointer_expression "*(code *)PTR_fd_read_000b7770" (* "*") (cast_expression "(code *)PTR_fd_read_000b7770" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_fd_read_000b7770"))) () ")")) (argument_list "(param_2,puVar4)" (( "(") (identifier "param_2") (, ",") (identifier "puVar4") () ")"))))) (; ";")) (expression_statement "local_120 = dVar31;" (assignment_expression "local_120 = dVar31" (identifier "local_120") (= "=") (identifier "dVar31")) (; ";")) (if_statement "if (-1 < (int)puVar24) goto LAB_000516fc;" (if "if") (parenthesized_expression "(-1 < (int)puVar24)" (( "(") (binary_expression "-1 < (int)puVar24" (number_literal "-1") (< "<") (cast_expression "(int)puVar24" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar24"))) () ")")) (goto_statement "goto LAB_000516fc;" (goto "goto") (statement_identifier "LAB_000516fc") (; ";"))) (expression_statement "piVar14 = (int *)(*(code *)PTR___errno_location_000b7eb8)();" (assignment_expression "piVar14 = (int *)(*(code *)PTR___errno_location_000b7eb8)()" (identifier "piVar14") (= "=") (cast_expression "(int *)(*(code *)PTR___errno_location_000b7eb8)()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___errno_location_000b7eb8)()" (parenthesized_expression "(*(code *)PTR___errno_location_000b7eb8)" (( "(") (pointer_expression "*(code *)PTR___errno_location_000b7eb8" (* "*") (cast_expression "(code *)PTR___errno_location_000b7eb8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___errno_location_000b7eb8"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "dVar25 = (double)CONCAT44(puVar15,puVar18);" (assignment_expression "dVar25 = (double)CONCAT44(puVar15,puVar18)" (identifier "dVar25") (= "=") (cast_expression "(double)CONCAT44(puVar15,puVar18)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "CONCAT44(puVar15,puVar18)" (identifier "CONCAT44") (argument_list "(puVar15,puVar18)" (( "(") (identifier "puVar15") (, ",") (identifier "puVar18") () ")"))))) (; ";")) (expression_statement "local_120._0_4_ = (undefined8 *)((ulonglong)dVar31 >> 0x20);" (assignment_expression "local_120._0_4_ = (undefined8 *)((ulonglong)dVar31 >> 0x20)" (field_expression "local_120._0_4_" (identifier "local_120") (. ".") (field_identifier "_0_4_")) (= "=") (cast_expression "(undefined8 *)((ulonglong)dVar31 >> 0x20)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((ulonglong)dVar31 >> 0x20)" (( "(") (binary_expression "(ulonglong)dVar31 >> 0x20" (cast_expression "(ulonglong)dVar31" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar31")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (if_statement "if (*piVar14 != 0x91) goto LAB_000518d4;" (if "if") (parenthesized_expression "(*piVar14 != 0x91)" (( "(") (binary_expression "*piVar14 != 0x91" (pointer_expression "*piVar14" (* "*") (identifier "piVar14")) (!= "!=") (number_literal "0x91")) () ")")) (goto_statement "goto LAB_000518d4;" (goto "goto") (statement_identifier "LAB_000518d4") (; ";"))) (if_statement "if (iVar7 == 0) {\n        if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n          ptimer_measure(local_104);\n          puVar24 = (undefined8 *)0x0;\n          goto LAB_00051748;\n        }\n        puVar24 = (undefined8 *)0x0;\nLAB_00051720:\n        dVar25 = (double)CONCAT44(puVar15,puVar18);\n        if (param_11 != (undefined8 *)0x0) {\n          ptimer_measure(local_104);\n          dVar31 = local_120;\n          if (0 < (int)puVar24) goto LAB_000515b0;\n          goto LAB_00051748;\n        }\n        if (0 < (int)puVar24) goto LAB_000515c4;\n      }\n      else {\n        ptimer_measure(local_104);\n        puVar24 = (undefined8 *)0x0;\nLAB_00051748:\n        local_120 = dVar31;\n        dVar25 = (double)CONCAT44(puVar15,puVar18);\n        if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n          dVar30 = (double)ptimer_read(local_104);\n          puVar21 = PTR_DAT_000b7720;\n          dVar30 = dVar30 - *(double *)(PTR_DAT_000b7720 + -0x2fe0);\n          puVar20 = (undefined8 *)((int)puVar24 + *(int *)(PTR_DAT_000b7720 + -0x2fe4));\n          iVar17 = (uint)(puVar20 < puVar24) +\n                   ((int)puVar24 >> 0x1f) + *(int *)(PTR_DAT_000b7720 + -0x2fe8);\n          *(int *)(PTR_DAT_000b7720 + -0x2fe8) = iVar17;\n          *(undefined8 **)(puVar21 + -0x2fe4) = puVar20;\n          dVar31 = (double)(*(code *)PTR_FUN_000b78f4)(iVar17,puVar20);\n          puVar9 = *(undefined8 **)(PTR_opt_000b746c + 0x15c);\n          dVar27 = (double)(*(code *)PTR_FUN_000b78f4)\n                                     (*(undefined4 *)(PTR_opt_000b746c + 0x158),puVar9);\n          dVar25 = (double)CONCAT44(puVar15,puVar18);\n          if (dVar30 < dVar31 / dVar27) {\n            dVar30 = (dVar31 / dVar27 - dVar30) + *(double *)(PTR_DAT_000b7720 + -0x2fd8);\n            if (dVar30 < dVar32) {\n              if (PTR_opt_000b746c[0x16b] != '\0') {\n                uVar11 = number_to_static_string(iVar17,puVar20);\n                local_120 = (double)((ulonglong)uVar11 << 0x20);\n                dVar25 = dVar30 * *(double *)(puVar2 + -0x15d8);\n                debug_logprintf(PTR_DAT_000b758c + -0x1864);\n                puVar9 = puVar20;\n              }\n              goto LAB_0005175c;\n            }\n            if (PTR_opt_000b746c[0x16b] != '\0') {\n              uVar11 = number_to_static_string(iVar17,puVar20);\n              local_120 = (double)((ulonglong)uVar11 << 0x20);\n              dVar25 = dVar30 * dVar28;\n              debug_logprintf(PTR_DAT_000b758c + -0x183c);\n              puVar9 = puVar20;\n            }\n            dVar31 = (double)ptimer_read(local_104);\n            xsleep(dVar30);\n            dVar27 = (double)ptimer_measure(local_104);\n            dVar30 = dVar30 - (dVar27 - dVar31);\n            if (dVar33 < dVar30) {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x2580);\n            }\n            else if (dVar34 <= dVar30) {\n              *(double *)(PTR_DAT_000b7720 + -0x2fd8) = dVar30;\n            }\n            else {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x15d0);\n            }\n          }\n          puVar21 = PTR_DAT_000b7720;\n          *(undefined4 *)(PTR_DAT_000b7720 + -0x2fe4) = 0;\n          *(undefined4 *)(puVar21 + -0x2fe8) = 0;\n          uVar26 = ptimer_read(local_104);\n          *(undefined8 *)(puVar21 + -0x2fe0) = uVar26;\n        }\n      }" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n          ptimer_measure(local_104);\n          puVar24 = (undefined8 *)0x0;\n          goto LAB_00051748;\n        }\n        puVar24 = (undefined8 *)0x0;\nLAB_00051720:\n        dVar25 = (double)CONCAT44(puVar15,puVar18);\n        if (param_11 != (undefined8 *)0x0) {\n          ptimer_measure(local_104);\n          dVar31 = local_120;\n          if (0 < (int)puVar24) goto LAB_000515b0;\n          goto LAB_00051748;\n        }\n        if (0 < (int)puVar24) goto LAB_000515c4;\n      }" ({ "{") (if_statement "if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n          ptimer_measure(local_104);\n          puVar24 = (undefined8 *)0x0;\n          goto LAB_00051748;\n        }" (if "if") (parenthesized_expression "(*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0)" (( "(") (binary_expression "*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0" (binary_expression "*(int *)(PTR_opt_000b746c + 0x158) != 0" (pointer_expression "*(int *)(PTR_opt_000b746c + 0x158)" (* "*") (cast_expression "(int *)(PTR_opt_000b746c + 0x158)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_opt_000b746c + 0x158)" (( "(") (binary_expression "PTR_opt_000b746c + 0x158" (identifier "PTR_opt_000b746c") (+ "+") (number_literal "0x158")) () ")")))) (!= "!=") (number_literal "0")) (|| "||") (binary_expression "*(int *)(PTR_opt_000b746c + 0x15c) != 0" (pointer_expression "*(int *)(PTR_opt_000b746c + 0x15c)" (* "*") (cast_expression "(int *)(PTR_opt_000b746c + 0x15c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_opt_000b746c + 0x15c)" (( "(") (binary_expression "PTR_opt_000b746c + 0x15c" (identifier "PTR_opt_000b746c") (+ "+") (number_literal "0x15c")) () ")")))) (!= "!=") (number_literal "0"))) () ")")) (compound_statement "{\n          ptimer_measure(local_104);\n          puVar24 = (undefined8 *)0x0;\n          goto LAB_00051748;\n        }" ({ "{") (expression_statement "ptimer_measure(local_104);" (call_expression "ptimer_measure(local_104)" (identifier "ptimer_measure") (argument_list "(local_104)" (( "(") (identifier "local_104") () ")"))) (; ";")) (expression_statement "puVar24 = (undefined8 *)0x0;" (assignment_expression "puVar24 = (undefined8 *)0x0" (identifier "puVar24") (= "=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (goto_statement "goto LAB_00051748;" (goto "goto") (statement_identifier "LAB_00051748") (; ";")) (} "}"))) (expression_statement "puVar24 = (undefined8 *)0x0;" (assignment_expression "puVar24 = (undefined8 *)0x0" (identifier "puVar24") (= "=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (labeled_statement "LAB_00051720:\n        dVar25 = (double)CONCAT44(puVar15,puVar18);" (statement_identifier "LAB_00051720") (: ":") (expression_statement "dVar25 = (double)CONCAT44(puVar15,puVar18);" (assignment_expression "dVar25 = (double)CONCAT44(puVar15,puVar18)" (identifier "dVar25") (= "=") (cast_expression "(double)CONCAT44(puVar15,puVar18)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "CONCAT44(puVar15,puVar18)" (identifier "CONCAT44") (argument_list "(puVar15,puVar18)" (( "(") (identifier "puVar15") (, ",") (identifier "puVar18") () ")"))))) (; ";"))) (if_statement "if (param_11 != (undefined8 *)0x0) {\n          ptimer_measure(local_104);\n          dVar31 = local_120;\n          if (0 < (int)puVar24) goto LAB_000515b0;\n          goto LAB_00051748;\n        }" (if "if") (parenthesized_expression "(param_11 != (undefined8 *)0x0)" (( "(") (binary_expression "param_11 != (undefined8 *)0x0" (identifier "param_11") (!= "!=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          ptimer_measure(local_104);\n          dVar31 = local_120;\n          if (0 < (int)puVar24) goto LAB_000515b0;\n          goto LAB_00051748;\n        }" ({ "{") (expression_statement "ptimer_measure(local_104);" (call_expression "ptimer_measure(local_104)" (identifier "ptimer_measure") (argument_list "(local_104)" (( "(") (identifier "local_104") () ")"))) (; ";")) (expression_statement "dVar31 = local_120;" (assignment_expression "dVar31 = local_120" (identifier "dVar31") (= "=") (identifier "local_120")) (; ";")) (if_statement "if (0 < (int)puVar24) goto LAB_000515b0;" (if "if") (parenthesized_expression "(0 < (int)puVar24)" (( "(") (binary_expression "0 < (int)puVar24" (number_literal "0") (< "<") (cast_expression "(int)puVar24" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar24"))) () ")")) (goto_statement "goto LAB_000515b0;" (goto "goto") (statement_identifier "LAB_000515b0") (; ";"))) (goto_statement "goto LAB_00051748;" (goto "goto") (statement_identifier "LAB_00051748") (; ";")) (} "}"))) (if_statement "if (0 < (int)puVar24) goto LAB_000515c4;" (if "if") (parenthesized_expression "(0 < (int)puVar24)" (( "(") (binary_expression "0 < (int)puVar24" (number_literal "0") (< "<") (cast_expression "(int)puVar24" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar24"))) () ")")) (goto_statement "goto LAB_000515c4;" (goto "goto") (statement_identifier "LAB_000515c4") (; ";"))) (} "}")) (else_clause "else {\n        ptimer_measure(local_104);\n        puVar24 = (undefined8 *)0x0;\nLAB_00051748:\n        local_120 = dVar31;\n        dVar25 = (double)CONCAT44(puVar15,puVar18);\n        if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n          dVar30 = (double)ptimer_read(local_104);\n          puVar21 = PTR_DAT_000b7720;\n          dVar30 = dVar30 - *(double *)(PTR_DAT_000b7720 + -0x2fe0);\n          puVar20 = (undefined8 *)((int)puVar24 + *(int *)(PTR_DAT_000b7720 + -0x2fe4));\n          iVar17 = (uint)(puVar20 < puVar24) +\n                   ((int)puVar24 >> 0x1f) + *(int *)(PTR_DAT_000b7720 + -0x2fe8);\n          *(int *)(PTR_DAT_000b7720 + -0x2fe8) = iVar17;\n          *(undefined8 **)(puVar21 + -0x2fe4) = puVar20;\n          dVar31 = (double)(*(code *)PTR_FUN_000b78f4)(iVar17,puVar20);\n          puVar9 = *(undefined8 **)(PTR_opt_000b746c + 0x15c);\n          dVar27 = (double)(*(code *)PTR_FUN_000b78f4)\n                                     (*(undefined4 *)(PTR_opt_000b746c + 0x158),puVar9);\n          dVar25 = (double)CONCAT44(puVar15,puVar18);\n          if (dVar30 < dVar31 / dVar27) {\n            dVar30 = (dVar31 / dVar27 - dVar30) + *(double *)(PTR_DAT_000b7720 + -0x2fd8);\n            if (dVar30 < dVar32) {\n              if (PTR_opt_000b746c[0x16b] != '\0') {\n                uVar11 = number_to_static_string(iVar17,puVar20);\n                local_120 = (double)((ulonglong)uVar11 << 0x20);\n                dVar25 = dVar30 * *(double *)(puVar2 + -0x15d8);\n                debug_logprintf(PTR_DAT_000b758c + -0x1864);\n                puVar9 = puVar20;\n              }\n              goto LAB_0005175c;\n            }\n            if (PTR_opt_000b746c[0x16b] != '\0') {\n              uVar11 = number_to_static_string(iVar17,puVar20);\n              local_120 = (double)((ulonglong)uVar11 << 0x20);\n              dVar25 = dVar30 * dVar28;\n              debug_logprintf(PTR_DAT_000b758c + -0x183c);\n              puVar9 = puVar20;\n            }\n            dVar31 = (double)ptimer_read(local_104);\n            xsleep(dVar30);\n            dVar27 = (double)ptimer_measure(local_104);\n            dVar30 = dVar30 - (dVar27 - dVar31);\n            if (dVar33 < dVar30) {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x2580);\n            }\n            else if (dVar34 <= dVar30) {\n              *(double *)(PTR_DAT_000b7720 + -0x2fd8) = dVar30;\n            }\n            else {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x15d0);\n            }\n          }\n          puVar21 = PTR_DAT_000b7720;\n          *(undefined4 *)(PTR_DAT_000b7720 + -0x2fe4) = 0;\n          *(undefined4 *)(puVar21 + -0x2fe8) = 0;\n          uVar26 = ptimer_read(local_104);\n          *(undefined8 *)(puVar21 + -0x2fe0) = uVar26;\n        }\n      }" (else "else") (compound_statement "{\n        ptimer_measure(local_104);\n        puVar24 = (undefined8 *)0x0;\nLAB_00051748:\n        local_120 = dVar31;\n        dVar25 = (double)CONCAT44(puVar15,puVar18);\n        if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n          dVar30 = (double)ptimer_read(local_104);\n          puVar21 = PTR_DAT_000b7720;\n          dVar30 = dVar30 - *(double *)(PTR_DAT_000b7720 + -0x2fe0);\n          puVar20 = (undefined8 *)((int)puVar24 + *(int *)(PTR_DAT_000b7720 + -0x2fe4));\n          iVar17 = (uint)(puVar20 < puVar24) +\n                   ((int)puVar24 >> 0x1f) + *(int *)(PTR_DAT_000b7720 + -0x2fe8);\n          *(int *)(PTR_DAT_000b7720 + -0x2fe8) = iVar17;\n          *(undefined8 **)(puVar21 + -0x2fe4) = puVar20;\n          dVar31 = (double)(*(code *)PTR_FUN_000b78f4)(iVar17,puVar20);\n          puVar9 = *(undefined8 **)(PTR_opt_000b746c + 0x15c);\n          dVar27 = (double)(*(code *)PTR_FUN_000b78f4)\n                                     (*(undefined4 *)(PTR_opt_000b746c + 0x158),puVar9);\n          dVar25 = (double)CONCAT44(puVar15,puVar18);\n          if (dVar30 < dVar31 / dVar27) {\n            dVar30 = (dVar31 / dVar27 - dVar30) + *(double *)(PTR_DAT_000b7720 + -0x2fd8);\n            if (dVar30 < dVar32) {\n              if (PTR_opt_000b746c[0x16b] != '\0') {\n                uVar11 = number_to_static_string(iVar17,puVar20);\n                local_120 = (double)((ulonglong)uVar11 << 0x20);\n                dVar25 = dVar30 * *(double *)(puVar2 + -0x15d8);\n                debug_logprintf(PTR_DAT_000b758c + -0x1864);\n                puVar9 = puVar20;\n              }\n              goto LAB_0005175c;\n            }\n            if (PTR_opt_000b746c[0x16b] != '\0') {\n              uVar11 = number_to_static_string(iVar17,puVar20);\n              local_120 = (double)((ulonglong)uVar11 << 0x20);\n              dVar25 = dVar30 * dVar28;\n              debug_logprintf(PTR_DAT_000b758c + -0x183c);\n              puVar9 = puVar20;\n            }\n            dVar31 = (double)ptimer_read(local_104);\n            xsleep(dVar30);\n            dVar27 = (double)ptimer_measure(local_104);\n            dVar30 = dVar30 - (dVar27 - dVar31);\n            if (dVar33 < dVar30) {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x2580);\n            }\n            else if (dVar34 <= dVar30) {\n              *(double *)(PTR_DAT_000b7720 + -0x2fd8) = dVar30;\n            }\n            else {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x15d0);\n            }\n          }\n          puVar21 = PTR_DAT_000b7720;\n          *(undefined4 *)(PTR_DAT_000b7720 + -0x2fe4) = 0;\n          *(undefined4 *)(puVar21 + -0x2fe8) = 0;\n          uVar26 = ptimer_read(local_104);\n          *(undefined8 *)(puVar21 + -0x2fe0) = uVar26;\n        }\n      }" ({ "{") (expression_statement "ptimer_measure(local_104);" (call_expression "ptimer_measure(local_104)" (identifier "ptimer_measure") (argument_list "(local_104)" (( "(") (identifier "local_104") () ")"))) (; ";")) (expression_statement "puVar24 = (undefined8 *)0x0;" (assignment_expression "puVar24 = (undefined8 *)0x0" (identifier "puVar24") (= "=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (labeled_statement "LAB_00051748:\n        local_120 = dVar31;" (statement_identifier "LAB_00051748") (: ":") (expression_statement "local_120 = dVar31;" (assignment_expression "local_120 = dVar31" (identifier "local_120") (= "=") (identifier "dVar31")) (; ";"))) (expression_statement "dVar25 = (double)CONCAT44(puVar15,puVar18);" (assignment_expression "dVar25 = (double)CONCAT44(puVar15,puVar18)" (identifier "dVar25") (= "=") (cast_expression "(double)CONCAT44(puVar15,puVar18)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "CONCAT44(puVar15,puVar18)" (identifier "CONCAT44") (argument_list "(puVar15,puVar18)" (( "(") (identifier "puVar15") (, ",") (identifier "puVar18") () ")"))))) (; ";")) (if_statement "if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {\n          dVar30 = (double)ptimer_read(local_104);\n          puVar21 = PTR_DAT_000b7720;\n          dVar30 = dVar30 - *(double *)(PTR_DAT_000b7720 + -0x2fe0);\n          puVar20 = (undefined8 *)((int)puVar24 + *(int *)(PTR_DAT_000b7720 + -0x2fe4));\n          iVar17 = (uint)(puVar20 < puVar24) +\n                   ((int)puVar24 >> 0x1f) + *(int *)(PTR_DAT_000b7720 + -0x2fe8);\n          *(int *)(PTR_DAT_000b7720 + -0x2fe8) = iVar17;\n          *(undefined8 **)(puVar21 + -0x2fe4) = puVar20;\n          dVar31 = (double)(*(code *)PTR_FUN_000b78f4)(iVar17,puVar20);\n          puVar9 = *(undefined8 **)(PTR_opt_000b746c + 0x15c);\n          dVar27 = (double)(*(code *)PTR_FUN_000b78f4)\n                                     (*(undefined4 *)(PTR_opt_000b746c + 0x158),puVar9);\n          dVar25 = (double)CONCAT44(puVar15,puVar18);\n          if (dVar30 < dVar31 / dVar27) {\n            dVar30 = (dVar31 / dVar27 - dVar30) + *(double *)(PTR_DAT_000b7720 + -0x2fd8);\n            if (dVar30 < dVar32) {\n              if (PTR_opt_000b746c[0x16b] != '\0') {\n                uVar11 = number_to_static_string(iVar17,puVar20);\n                local_120 = (double)((ulonglong)uVar11 << 0x20);\n                dVar25 = dVar30 * *(double *)(puVar2 + -0x15d8);\n                debug_logprintf(PTR_DAT_000b758c + -0x1864);\n                puVar9 = puVar20;\n              }\n              goto LAB_0005175c;\n            }\n            if (PTR_opt_000b746c[0x16b] != '\0') {\n              uVar11 = number_to_static_string(iVar17,puVar20);\n              local_120 = (double)((ulonglong)uVar11 << 0x20);\n              dVar25 = dVar30 * dVar28;\n              debug_logprintf(PTR_DAT_000b758c + -0x183c);\n              puVar9 = puVar20;\n            }\n            dVar31 = (double)ptimer_read(local_104);\n            xsleep(dVar30);\n            dVar27 = (double)ptimer_measure(local_104);\n            dVar30 = dVar30 - (dVar27 - dVar31);\n            if (dVar33 < dVar30) {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x2580);\n            }\n            else if (dVar34 <= dVar30) {\n              *(double *)(PTR_DAT_000b7720 + -0x2fd8) = dVar30;\n            }\n            else {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x15d0);\n            }\n          }\n          puVar21 = PTR_DAT_000b7720;\n          *(undefined4 *)(PTR_DAT_000b7720 + -0x2fe4) = 0;\n          *(undefined4 *)(puVar21 + -0x2fe8) = 0;\n          uVar26 = ptimer_read(local_104);\n          *(undefined8 *)(puVar21 + -0x2fe0) = uVar26;\n        }" (if "if") (parenthesized_expression "(*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0)" (( "(") (binary_expression "*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0" (binary_expression "*(int *)(PTR_opt_000b746c + 0x158) != 0" (pointer_expression "*(int *)(PTR_opt_000b746c + 0x158)" (* "*") (cast_expression "(int *)(PTR_opt_000b746c + 0x158)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_opt_000b746c + 0x158)" (( "(") (binary_expression "PTR_opt_000b746c + 0x158" (identifier "PTR_opt_000b746c") (+ "+") (number_literal "0x158")) () ")")))) (!= "!=") (number_literal "0")) (|| "||") (binary_expression "*(int *)(PTR_opt_000b746c + 0x15c) != 0" (pointer_expression "*(int *)(PTR_opt_000b746c + 0x15c)" (* "*") (cast_expression "(int *)(PTR_opt_000b746c + 0x15c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_opt_000b746c + 0x15c)" (( "(") (binary_expression "PTR_opt_000b746c + 0x15c" (identifier "PTR_opt_000b746c") (+ "+") (number_literal "0x15c")) () ")")))) (!= "!=") (number_literal "0"))) () ")")) (compound_statement "{\n          dVar30 = (double)ptimer_read(local_104);\n          puVar21 = PTR_DAT_000b7720;\n          dVar30 = dVar30 - *(double *)(PTR_DAT_000b7720 + -0x2fe0);\n          puVar20 = (undefined8 *)((int)puVar24 + *(int *)(PTR_DAT_000b7720 + -0x2fe4));\n          iVar17 = (uint)(puVar20 < puVar24) +\n                   ((int)puVar24 >> 0x1f) + *(int *)(PTR_DAT_000b7720 + -0x2fe8);\n          *(int *)(PTR_DAT_000b7720 + -0x2fe8) = iVar17;\n          *(undefined8 **)(puVar21 + -0x2fe4) = puVar20;\n          dVar31 = (double)(*(code *)PTR_FUN_000b78f4)(iVar17,puVar20);\n          puVar9 = *(undefined8 **)(PTR_opt_000b746c + 0x15c);\n          dVar27 = (double)(*(code *)PTR_FUN_000b78f4)\n                                     (*(undefined4 *)(PTR_opt_000b746c + 0x158),puVar9);\n          dVar25 = (double)CONCAT44(puVar15,puVar18);\n          if (dVar30 < dVar31 / dVar27) {\n            dVar30 = (dVar31 / dVar27 - dVar30) + *(double *)(PTR_DAT_000b7720 + -0x2fd8);\n            if (dVar30 < dVar32) {\n              if (PTR_opt_000b746c[0x16b] != '\0') {\n                uVar11 = number_to_static_string(iVar17,puVar20);\n                local_120 = (double)((ulonglong)uVar11 << 0x20);\n                dVar25 = dVar30 * *(double *)(puVar2 + -0x15d8);\n                debug_logprintf(PTR_DAT_000b758c + -0x1864);\n                puVar9 = puVar20;\n              }\n              goto LAB_0005175c;\n            }\n            if (PTR_opt_000b746c[0x16b] != '\0') {\n              uVar11 = number_to_static_string(iVar17,puVar20);\n              local_120 = (double)((ulonglong)uVar11 << 0x20);\n              dVar25 = dVar30 * dVar28;\n              debug_logprintf(PTR_DAT_000b758c + -0x183c);\n              puVar9 = puVar20;\n            }\n            dVar31 = (double)ptimer_read(local_104);\n            xsleep(dVar30);\n            dVar27 = (double)ptimer_measure(local_104);\n            dVar30 = dVar30 - (dVar27 - dVar31);\n            if (dVar33 < dVar30) {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x2580);\n            }\n            else if (dVar34 <= dVar30) {\n              *(double *)(PTR_DAT_000b7720 + -0x2fd8) = dVar30;\n            }\n            else {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x15d0);\n            }\n          }\n          puVar21 = PTR_DAT_000b7720;\n          *(undefined4 *)(PTR_DAT_000b7720 + -0x2fe4) = 0;\n          *(undefined4 *)(puVar21 + -0x2fe8) = 0;\n          uVar26 = ptimer_read(local_104);\n          *(undefined8 *)(puVar21 + -0x2fe0) = uVar26;\n        }" ({ "{") (expression_statement "dVar30 = (double)ptimer_read(local_104);" (assignment_expression "dVar30 = (double)ptimer_read(local_104)" (identifier "dVar30") (= "=") (cast_expression "(double)ptimer_read(local_104)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "ptimer_read(local_104)" (identifier "ptimer_read") (argument_list "(local_104)" (( "(") (identifier "local_104") () ")"))))) (; ";")) (expression_statement "puVar21 = PTR_DAT_000b7720;" (assignment_expression "puVar21 = PTR_DAT_000b7720" (identifier "puVar21") (= "=") (identifier "PTR_DAT_000b7720")) (; ";")) (expression_statement "dVar30 = dVar30 - *(double *)(PTR_DAT_000b7720 + -0x2fe0);" (assignment_expression "dVar30 = dVar30 - *(double *)(PTR_DAT_000b7720 + -0x2fe0)" (identifier "dVar30") (= "=") (binary_expression "dVar30 - *(double *)(PTR_DAT_000b7720 + -0x2fe0)" (identifier "dVar30") (- "-") (pointer_expression "*(double *)(PTR_DAT_000b7720 + -0x2fe0)" (* "*") (cast_expression "(double *)(PTR_DAT_000b7720 + -0x2fe0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_000b7720 + -0x2fe0)" (( "(") (binary_expression "PTR_DAT_000b7720 + -0x2fe0" (identifier "PTR_DAT_000b7720") (+ "+") (number_literal "-0x2fe0")) () ")")))))) (; ";")) (expression_statement "puVar20 = (undefined8 *)((int)puVar24 + *(int *)(PTR_DAT_000b7720 + -0x2fe4));" (assignment_expression "puVar20 = (undefined8 *)((int)puVar24 + *(int *)(PTR_DAT_000b7720 + -0x2fe4))" (identifier "puVar20") (= "=") (cast_expression "(undefined8 *)((int)puVar24 + *(int *)(PTR_DAT_000b7720 + -0x2fe4))" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar24 + *(int *)(PTR_DAT_000b7720 + -0x2fe4))" (( "(") (binary_expression "(int)puVar24 + *(int *)(PTR_DAT_000b7720 + -0x2fe4)" (cast_expression "(int)puVar24" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar24")) (+ "+") (pointer_expression "*(int *)(PTR_DAT_000b7720 + -0x2fe4)" (* "*") (cast_expression "(int *)(PTR_DAT_000b7720 + -0x2fe4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_000b7720 + -0x2fe4)" (( "(") (binary_expression "PTR_DAT_000b7720 + -0x2fe4" (identifier "PTR_DAT_000b7720") (+ "+") (number_literal "-0x2fe4")) () ")"))))) () ")")))) (; ";")) (expression_statement "iVar17 = (uint)(puVar20 < puVar24) +\n                   ((int)puVar24 >> 0x1f) + *(int *)(PTR_DAT_000b7720 + -0x2fe8);" (assignment_expression "iVar17 = (uint)(puVar20 < puVar24) +\n                   ((int)puVar24 >> 0x1f) + *(int *)(PTR_DAT_000b7720 + -0x2fe8)" (identifier "iVar17") (= "=") (binary_expression "(uint)(puVar20 < puVar24) +\n                   ((int)puVar24 >> 0x1f) + *(int *)(PTR_DAT_000b7720 + -0x2fe8)" (binary_expression "(uint)(puVar20 < puVar24) +\n                   ((int)puVar24 >> 0x1f)" (call_expression "(uint)(puVar20 < puVar24)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(puVar20 < puVar24)" (( "(") (binary_expression "puVar20 < puVar24" (identifier "puVar20") (< "<") (identifier "puVar24")) () ")"))) (+ "+") (parenthesized_expression "((int)puVar24 >> 0x1f)" (( "(") (binary_expression "(int)puVar24 >> 0x1f" (cast_expression "(int)puVar24" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar24")) (>> ">>") (number_literal "0x1f")) () ")"))) (+ "+") (pointer_expression "*(int *)(PTR_DAT_000b7720 + -0x2fe8)" (* "*") (cast_expression "(int *)(PTR_DAT_000b7720 + -0x2fe8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_000b7720 + -0x2fe8)" (( "(") (binary_expression "PTR_DAT_000b7720 + -0x2fe8" (identifier "PTR_DAT_000b7720") (+ "+") (number_literal "-0x2fe8")) () ")")))))) (; ";")) (expression_statement "*(int *)(PTR_DAT_000b7720 + -0x2fe8) = iVar17;" (assignment_expression "*(int *)(PTR_DAT_000b7720 + -0x2fe8) = iVar17" (pointer_expression "*(int *)(PTR_DAT_000b7720 + -0x2fe8)" (* "*") (cast_expression "(int *)(PTR_DAT_000b7720 + -0x2fe8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_000b7720 + -0x2fe8)" (( "(") (binary_expression "PTR_DAT_000b7720 + -0x2fe8" (identifier "PTR_DAT_000b7720") (+ "+") (number_literal "-0x2fe8")) () ")")))) (= "=") (identifier "iVar17")) (; ";")) (expression_statement "*(undefined8 **)(puVar21 + -0x2fe4) = puVar20;" (assignment_expression "*(undefined8 **)(puVar21 + -0x2fe4) = puVar20" (pointer_expression "*(undefined8 **)(puVar21 + -0x2fe4)" (* "*") (cast_expression "(undefined8 **)(puVar21 + -0x2fe4)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar21 + -0x2fe4)" (( "(") (binary_expression "puVar21 + -0x2fe4" (identifier "puVar21") (+ "+") (number_literal "-0x2fe4")) () ")")))) (= "=") (identifier "puVar20")) (; ";")) (expression_statement "dVar31 = (double)(*(code *)PTR_FUN_000b78f4)(iVar17,puVar20);" (assignment_expression "dVar31 = (double)(*(code *)PTR_FUN_000b78f4)(iVar17,puVar20)" (identifier "dVar31") (= "=") (cast_expression "(double)(*(code *)PTR_FUN_000b78f4)(iVar17,puVar20)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "(*(code *)PTR_FUN_000b78f4)(iVar17,puVar20)" (parenthesized_expression "(*(code *)PTR_FUN_000b78f4)" (( "(") (pointer_expression "*(code *)PTR_FUN_000b78f4" (* "*") (cast_expression "(code *)PTR_FUN_000b78f4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_000b78f4"))) () ")")) (argument_list "(iVar17,puVar20)" (( "(") (identifier "iVar17") (, ",") (identifier "puVar20") () ")"))))) (; ";")) (expression_statement "puVar9 = *(undefined8 **)(PTR_opt_000b746c + 0x15c);" (assignment_expression "puVar9 = *(undefined8 **)(PTR_opt_000b746c + 0x15c)" (identifier "puVar9") (= "=") (pointer_expression "*(undefined8 **)(PTR_opt_000b746c + 0x15c)" (* "*") (cast_expression "(undefined8 **)(PTR_opt_000b746c + 0x15c)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR_opt_000b746c + 0x15c)" (( "(") (binary_expression "PTR_opt_000b746c + 0x15c" (identifier "PTR_opt_000b746c") (+ "+") (number_literal "0x15c")) () ")"))))) (; ";")) (expression_statement "dVar27 = (double)(*(code *)PTR_FUN_000b78f4)\n                                     (*(undefined4 *)(PTR_opt_000b746c + 0x158),puVar9);" (assignment_expression "dVar27 = (double)(*(code *)PTR_FUN_000b78f4)\n                                     (*(undefined4 *)(PTR_opt_000b746c + 0x158),puVar9)" (identifier "dVar27") (= "=") (cast_expression "(double)(*(code *)PTR_FUN_000b78f4)\n                                     (*(undefined4 *)(PTR_opt_000b746c + 0x158),puVar9)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "(*(code *)PTR_FUN_000b78f4)\n                                     (*(undefined4 *)(PTR_opt_000b746c + 0x158),puVar9)" (parenthesized_expression "(*(code *)PTR_FUN_000b78f4)" (( "(") (pointer_expression "*(code *)PTR_FUN_000b78f4" (* "*") (cast_expression "(code *)PTR_FUN_000b78f4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_000b78f4"))) () ")")) (argument_list "(*(undefined4 *)(PTR_opt_000b746c + 0x158),puVar9)" (( "(") (pointer_expression "*(undefined4 *)(PTR_opt_000b746c + 0x158)" (* "*") (cast_expression "(undefined4 *)(PTR_opt_000b746c + 0x158)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_opt_000b746c + 0x158)" (( "(") (binary_expression "PTR_opt_000b746c + 0x158" (identifier "PTR_opt_000b746c") (+ "+") (number_literal "0x158")) () ")")))) (, ",") (identifier "puVar9") () ")"))))) (; ";")) (expression_statement "dVar25 = (double)CONCAT44(puVar15,puVar18);" (assignment_expression "dVar25 = (double)CONCAT44(puVar15,puVar18)" (identifier "dVar25") (= "=") (cast_expression "(double)CONCAT44(puVar15,puVar18)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "CONCAT44(puVar15,puVar18)" (identifier "CONCAT44") (argument_list "(puVar15,puVar18)" (( "(") (identifier "puVar15") (, ",") (identifier "puVar18") () ")"))))) (; ";")) (if_statement "if (dVar30 < dVar31 / dVar27) {\n            dVar30 = (dVar31 / dVar27 - dVar30) + *(double *)(PTR_DAT_000b7720 + -0x2fd8);\n            if (dVar30 < dVar32) {\n              if (PTR_opt_000b746c[0x16b] != '\0') {\n                uVar11 = number_to_static_string(iVar17,puVar20);\n                local_120 = (double)((ulonglong)uVar11 << 0x20);\n                dVar25 = dVar30 * *(double *)(puVar2 + -0x15d8);\n                debug_logprintf(PTR_DAT_000b758c + -0x1864);\n                puVar9 = puVar20;\n              }\n              goto LAB_0005175c;\n            }\n            if (PTR_opt_000b746c[0x16b] != '\0') {\n              uVar11 = number_to_static_string(iVar17,puVar20);\n              local_120 = (double)((ulonglong)uVar11 << 0x20);\n              dVar25 = dVar30 * dVar28;\n              debug_logprintf(PTR_DAT_000b758c + -0x183c);\n              puVar9 = puVar20;\n            }\n            dVar31 = (double)ptimer_read(local_104);\n            xsleep(dVar30);\n            dVar27 = (double)ptimer_measure(local_104);\n            dVar30 = dVar30 - (dVar27 - dVar31);\n            if (dVar33 < dVar30) {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x2580);\n            }\n            else if (dVar34 <= dVar30) {\n              *(double *)(PTR_DAT_000b7720 + -0x2fd8) = dVar30;\n            }\n            else {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x15d0);\n            }\n          }" (if "if") (parenthesized_expression "(dVar30 < dVar31 / dVar27)" (( "(") (binary_expression "dVar30 < dVar31 / dVar27" (identifier "dVar30") (< "<") (binary_expression "dVar31 / dVar27" (identifier "dVar31") (/ "/") (identifier "dVar27"))) () ")")) (compound_statement "{\n            dVar30 = (dVar31 / dVar27 - dVar30) + *(double *)(PTR_DAT_000b7720 + -0x2fd8);\n            if (dVar30 < dVar32) {\n              if (PTR_opt_000b746c[0x16b] != '\0') {\n                uVar11 = number_to_static_string(iVar17,puVar20);\n                local_120 = (double)((ulonglong)uVar11 << 0x20);\n                dVar25 = dVar30 * *(double *)(puVar2 + -0x15d8);\n                debug_logprintf(PTR_DAT_000b758c + -0x1864);\n                puVar9 = puVar20;\n              }\n              goto LAB_0005175c;\n            }\n            if (PTR_opt_000b746c[0x16b] != '\0') {\n              uVar11 = number_to_static_string(iVar17,puVar20);\n              local_120 = (double)((ulonglong)uVar11 << 0x20);\n              dVar25 = dVar30 * dVar28;\n              debug_logprintf(PTR_DAT_000b758c + -0x183c);\n              puVar9 = puVar20;\n            }\n            dVar31 = (double)ptimer_read(local_104);\n            xsleep(dVar30);\n            dVar27 = (double)ptimer_measure(local_104);\n            dVar30 = dVar30 - (dVar27 - dVar31);\n            if (dVar33 < dVar30) {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x2580);\n            }\n            else if (dVar34 <= dVar30) {\n              *(double *)(PTR_DAT_000b7720 + -0x2fd8) = dVar30;\n            }\n            else {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x15d0);\n            }\n          }" ({ "{") (expression_statement "dVar30 = (dVar31 / dVar27 - dVar30) + *(double *)(PTR_DAT_000b7720 + -0x2fd8);" (assignment_expression "dVar30 = (dVar31 / dVar27 - dVar30) + *(double *)(PTR_DAT_000b7720 + -0x2fd8)" (identifier "dVar30") (= "=") (binary_expression "(dVar31 / dVar27 - dVar30) + *(double *)(PTR_DAT_000b7720 + -0x2fd8)" (parenthesized_expression "(dVar31 / dVar27 - dVar30)" (( "(") (binary_expression "dVar31 / dVar27 - dVar30" (binary_expression "dVar31 / dVar27" (identifier "dVar31") (/ "/") (identifier "dVar27")) (- "-") (identifier "dVar30")) () ")")) (+ "+") (pointer_expression "*(double *)(PTR_DAT_000b7720 + -0x2fd8)" (* "*") (cast_expression "(double *)(PTR_DAT_000b7720 + -0x2fd8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_000b7720 + -0x2fd8)" (( "(") (binary_expression "PTR_DAT_000b7720 + -0x2fd8" (identifier "PTR_DAT_000b7720") (+ "+") (number_literal "-0x2fd8")) () ")")))))) (; ";")) (if_statement "if (dVar30 < dVar32) {\n              if (PTR_opt_000b746c[0x16b] != '\0') {\n                uVar11 = number_to_static_string(iVar17,puVar20);\n                local_120 = (double)((ulonglong)uVar11 << 0x20);\n                dVar25 = dVar30 * *(double *)(puVar2 + -0x15d8);\n                debug_logprintf(PTR_DAT_000b758c + -0x1864);\n                puVar9 = puVar20;\n              }\n              goto LAB_0005175c;\n            }" (if "if") (parenthesized_expression "(dVar30 < dVar32)" (( "(") (binary_expression "dVar30 < dVar32" (identifier "dVar30") (< "<") (identifier "dVar32")) () ")")) (compound_statement "{\n              if (PTR_opt_000b746c[0x16b] != '\0') {\n                uVar11 = number_to_static_string(iVar17,puVar20);\n                local_120 = (double)((ulonglong)uVar11 << 0x20);\n                dVar25 = dVar30 * *(double *)(puVar2 + -0x15d8);\n                debug_logprintf(PTR_DAT_000b758c + -0x1864);\n                puVar9 = puVar20;\n              }\n              goto LAB_0005175c;\n            }" ({ "{") (if_statement "if (PTR_opt_000b746c[0x16b] != '\0') {\n                uVar11 = number_to_static_string(iVar17,puVar20);\n                local_120 = (double)((ulonglong)uVar11 << 0x20);\n                dVar25 = dVar30 * *(double *)(puVar2 + -0x15d8);\n                debug_logprintf(PTR_DAT_000b758c + -0x1864);\n                puVar9 = puVar20;\n              }" (if "if") (parenthesized_expression "(PTR_opt_000b746c[0x16b] != '\0')" (( "(") (binary_expression "PTR_opt_000b746c[0x16b] != '\0'" (subscript_expression "PTR_opt_000b746c[0x16b]" (identifier "PTR_opt_000b746c") ([ "[") (number_literal "0x16b") (] "]")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                uVar11 = number_to_static_string(iVar17,puVar20);\n                local_120 = (double)((ulonglong)uVar11 << 0x20);\n                dVar25 = dVar30 * *(double *)(puVar2 + -0x15d8);\n                debug_logprintf(PTR_DAT_000b758c + -0x1864);\n                puVar9 = puVar20;\n              }" ({ "{") (expression_statement "uVar11 = number_to_static_string(iVar17,puVar20);" (assignment_expression "uVar11 = number_to_static_string(iVar17,puVar20)" (identifier "uVar11") (= "=") (call_expression "number_to_static_string(iVar17,puVar20)" (identifier "number_to_static_string") (argument_list "(iVar17,puVar20)" (( "(") (identifier "iVar17") (, ",") (identifier "puVar20") () ")")))) (; ";")) (expression_statement "local_120 = (double)((ulonglong)uVar11 << 0x20);" (assignment_expression "local_120 = (double)((ulonglong)uVar11 << 0x20)" (identifier "local_120") (= "=") (cast_expression "(double)((ulonglong)uVar11 << 0x20)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (parenthesized_expression "((ulonglong)uVar11 << 0x20)" (( "(") (binary_expression "(ulonglong)uVar11 << 0x20" (cast_expression "(ulonglong)uVar11" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar11")) (<< "<<") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "dVar25 = dVar30 * *(double *)(puVar2 + -0x15d8);" (assignment_expression "dVar25 = dVar30 * *(double *)(puVar2 + -0x15d8)" (identifier "dVar25") (= "=") (binary_expression "dVar30 * *(double *)(puVar2 + -0x15d8)" (identifier "dVar30") (* "*") (pointer_expression "*(double *)(puVar2 + -0x15d8)" (* "*") (cast_expression "(double *)(puVar2 + -0x15d8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + -0x15d8)" (( "(") (binary_expression "puVar2 + -0x15d8" (identifier "puVar2") (+ "+") (number_literal "-0x15d8")) () ")")))))) (; ";")) (expression_statement "debug_logprintf(PTR_DAT_000b758c + -0x1864);" (call_expression "debug_logprintf(PTR_DAT_000b758c + -0x1864)" (identifier "debug_logprintf") (argument_list "(PTR_DAT_000b758c + -0x1864)" (( "(") (binary_expression "PTR_DAT_000b758c + -0x1864" (identifier "PTR_DAT_000b758c") (+ "+") (number_literal "-0x1864")) () ")"))) (; ";")) (expression_statement "puVar9 = puVar20;" (assignment_expression "puVar9 = puVar20" (identifier "puVar9") (= "=") (identifier "puVar20")) (; ";")) (} "}"))) (goto_statement "goto LAB_0005175c;" (goto "goto") (statement_identifier "LAB_0005175c") (; ";")) (} "}"))) (if_statement "if (PTR_opt_000b746c[0x16b] != '\0') {\n              uVar11 = number_to_static_string(iVar17,puVar20);\n              local_120 = (double)((ulonglong)uVar11 << 0x20);\n              dVar25 = dVar30 * dVar28;\n              debug_logprintf(PTR_DAT_000b758c + -0x183c);\n              puVar9 = puVar20;\n            }" (if "if") (parenthesized_expression "(PTR_opt_000b746c[0x16b] != '\0')" (( "(") (binary_expression "PTR_opt_000b746c[0x16b] != '\0'" (subscript_expression "PTR_opt_000b746c[0x16b]" (identifier "PTR_opt_000b746c") ([ "[") (number_literal "0x16b") (] "]")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n              uVar11 = number_to_static_string(iVar17,puVar20);\n              local_120 = (double)((ulonglong)uVar11 << 0x20);\n              dVar25 = dVar30 * dVar28;\n              debug_logprintf(PTR_DAT_000b758c + -0x183c);\n              puVar9 = puVar20;\n            }" ({ "{") (expression_statement "uVar11 = number_to_static_string(iVar17,puVar20);" (assignment_expression "uVar11 = number_to_static_string(iVar17,puVar20)" (identifier "uVar11") (= "=") (call_expression "number_to_static_string(iVar17,puVar20)" (identifier "number_to_static_string") (argument_list "(iVar17,puVar20)" (( "(") (identifier "iVar17") (, ",") (identifier "puVar20") () ")")))) (; ";")) (expression_statement "local_120 = (double)((ulonglong)uVar11 << 0x20);" (assignment_expression "local_120 = (double)((ulonglong)uVar11 << 0x20)" (identifier "local_120") (= "=") (cast_expression "(double)((ulonglong)uVar11 << 0x20)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (parenthesized_expression "((ulonglong)uVar11 << 0x20)" (( "(") (binary_expression "(ulonglong)uVar11 << 0x20" (cast_expression "(ulonglong)uVar11" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar11")) (<< "<<") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "dVar25 = dVar30 * dVar28;" (assignment_expression "dVar25 = dVar30 * dVar28" (identifier "dVar25") (= "=") (binary_expression "dVar30 * dVar28" (identifier "dVar30") (* "*") (identifier "dVar28"))) (; ";")) (expression_statement "debug_logprintf(PTR_DAT_000b758c + -0x183c);" (call_expression "debug_logprintf(PTR_DAT_000b758c + -0x183c)" (identifier "debug_logprintf") (argument_list "(PTR_DAT_000b758c + -0x183c)" (( "(") (binary_expression "PTR_DAT_000b758c + -0x183c" (identifier "PTR_DAT_000b758c") (+ "+") (number_literal "-0x183c")) () ")"))) (; ";")) (expression_statement "puVar9 = puVar20;" (assignment_expression "puVar9 = puVar20" (identifier "puVar9") (= "=") (identifier "puVar20")) (; ";")) (} "}"))) (expression_statement "dVar31 = (double)ptimer_read(local_104);" (assignment_expression "dVar31 = (double)ptimer_read(local_104)" (identifier "dVar31") (= "=") (cast_expression "(double)ptimer_read(local_104)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "ptimer_read(local_104)" (identifier "ptimer_read") (argument_list "(local_104)" (( "(") (identifier "local_104") () ")"))))) (; ";")) (expression_statement "xsleep(dVar30);" (call_expression "xsleep(dVar30)" (identifier "xsleep") (argument_list "(dVar30)" (( "(") (identifier "dVar30") () ")"))) (; ";")) (expression_statement "dVar27 = (double)ptimer_measure(local_104);" (assignment_expression "dVar27 = (double)ptimer_measure(local_104)" (identifier "dVar27") (= "=") (cast_expression "(double)ptimer_measure(local_104)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "ptimer_measure(local_104)" (identifier "ptimer_measure") (argument_list "(local_104)" (( "(") (identifier "local_104") () ")"))))) (; ";")) (expression_statement "dVar30 = dVar30 - (dVar27 - dVar31);" (assignment_expression "dVar30 = dVar30 - (dVar27 - dVar31)" (identifier "dVar30") (= "=") (binary_expression "dVar30 - (dVar27 - dVar31)" (identifier "dVar30") (- "-") (parenthesized_expression "(dVar27 - dVar31)" (( "(") (binary_expression "dVar27 - dVar31" (identifier "dVar27") (- "-") (identifier "dVar31")) () ")")))) (; ";")) (if_statement "if (dVar33 < dVar30) {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x2580);\n            }\n            else if (dVar34 <= dVar30) {\n              *(double *)(PTR_DAT_000b7720 + -0x2fd8) = dVar30;\n            }\n            else {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x15d0);\n            }" (if "if") (parenthesized_expression "(dVar33 < dVar30)" (( "(") (binary_expression "dVar33 < dVar30" (identifier "dVar33") (< "<") (identifier "dVar30")) () ")")) (compound_statement "{\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x2580);\n            }" ({ "{") (expression_statement "*(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x2580);" (assignment_expression "*(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x2580)" (pointer_expression "*(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8)" (* "*") (cast_expression "(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_000b7720 + -0x2fd8)" (( "(") (binary_expression "PTR_DAT_000b7720 + -0x2fd8" (identifier "PTR_DAT_000b7720") (+ "+") (number_literal "-0x2fd8")) () ")")))) (= "=") (pointer_expression "*(undefined8 *)(puVar2 + -0x2580)" (* "*") (cast_expression "(undefined8 *)(puVar2 + -0x2580)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + -0x2580)" (( "(") (binary_expression "puVar2 + -0x2580" (identifier "puVar2") (+ "+") (number_literal "-0x2580")) () ")"))))) (; ";")) (} "}")) (else_clause "else if (dVar34 <= dVar30) {\n              *(double *)(PTR_DAT_000b7720 + -0x2fd8) = dVar30;\n            }\n            else {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x15d0);\n            }" (else "else") (if_statement "if (dVar34 <= dVar30) {\n              *(double *)(PTR_DAT_000b7720 + -0x2fd8) = dVar30;\n            }\n            else {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x15d0);\n            }" (if "if") (parenthesized_expression "(dVar34 <= dVar30)" (( "(") (binary_expression "dVar34 <= dVar30" (identifier "dVar34") (<= "<=") (identifier "dVar30")) () ")")) (compound_statement "{\n              *(double *)(PTR_DAT_000b7720 + -0x2fd8) = dVar30;\n            }" ({ "{") (expression_statement "*(double *)(PTR_DAT_000b7720 + -0x2fd8) = dVar30;" (assignment_expression "*(double *)(PTR_DAT_000b7720 + -0x2fd8) = dVar30" (pointer_expression "*(double *)(PTR_DAT_000b7720 + -0x2fd8)" (* "*") (cast_expression "(double *)(PTR_DAT_000b7720 + -0x2fd8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_000b7720 + -0x2fd8)" (( "(") (binary_expression "PTR_DAT_000b7720 + -0x2fd8" (identifier "PTR_DAT_000b7720") (+ "+") (number_literal "-0x2fd8")) () ")")))) (= "=") (identifier "dVar30")) (; ";")) (} "}")) (else_clause "else {\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x15d0);\n            }" (else "else") (compound_statement "{\n              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x15d0);\n            }" ({ "{") (expression_statement "*(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x15d0);" (assignment_expression "*(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x15d0)" (pointer_expression "*(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8)" (* "*") (cast_expression "(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_000b7720 + -0x2fd8)" (( "(") (binary_expression "PTR_DAT_000b7720 + -0x2fd8" (identifier "PTR_DAT_000b7720") (+ "+") (number_literal "-0x2fd8")) () ")")))) (= "=") (pointer_expression "*(undefined8 *)(puVar2 + -0x15d0)" (* "*") (cast_expression "(undefined8 *)(puVar2 + -0x15d0)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + -0x15d0)" (( "(") (binary_expression "puVar2 + -0x15d0" (identifier "puVar2") (+ "+") (number_literal "-0x15d0")) () ")"))))) (; ";")) (} "}")))))) (} "}"))) (expression_statement "puVar21 = PTR_DAT_000b7720;" (assignment_expression "puVar21 = PTR_DAT_000b7720" (identifier "puVar21") (= "=") (identifier "PTR_DAT_000b7720")) (; ";")) (expression_statement "*(undefined4 *)(PTR_DAT_000b7720 + -0x2fe4) = 0;" (assignment_expression "*(undefined4 *)(PTR_DAT_000b7720 + -0x2fe4) = 0" (pointer_expression "*(undefined4 *)(PTR_DAT_000b7720 + -0x2fe4)" (* "*") (cast_expression "(undefined4 *)(PTR_DAT_000b7720 + -0x2fe4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_000b7720 + -0x2fe4)" (( "(") (binary_expression "PTR_DAT_000b7720 + -0x2fe4" (identifier "PTR_DAT_000b7720") (+ "+") (number_literal "-0x2fe4")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(puVar21 + -0x2fe8) = 0;" (assignment_expression "*(undefined4 *)(puVar21 + -0x2fe8) = 0" (pointer_expression "*(undefined4 *)(puVar21 + -0x2fe8)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -0x2fe8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x2fe8)" (( "(") (binary_expression "puVar21 + -0x2fe8" (identifier "puVar21") (+ "+") (number_literal "-0x2fe8")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar26 = ptimer_read(local_104);" (assignment_expression "uVar26 = ptimer_read(local_104)" (identifier "uVar26") (= "=") (call_expression "ptimer_read(local_104)" (identifier "ptimer_read") (argument_list "(local_104)" (( "(") (identifier "local_104") () ")")))) (; ";")) (expression_statement "*(undefined8 *)(puVar21 + -0x2fe0) = uVar26;" (assignment_expression "*(undefined8 *)(puVar21 + -0x2fe0) = uVar26" (pointer_expression "*(undefined8 *)(puVar21 + -0x2fe0)" (* "*") (cast_expression "(undefined8 *)(puVar21 + -0x2fe0)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x2fe0)" (( "(") (binary_expression "puVar21 + -0x2fe0" (identifier "puVar21") (+ "+") (number_literal "-0x2fe0")) () ")")))) (= "=") (identifier "uVar26")) (; ";")) (} "}"))) (} "}")))) (labeled_statement "LAB_0005175c:\n      if (iVar7 != 0) {\n        local_120 = (double)ptimer_read(local_104);\n        iVar17 = (int)puVar24 >> 0x1f;\n        puVar20 = puVar24;\n        progress_update(iVar7);\n        dVar25 = (double)CONCAT44(iVar17,puVar20);\n      }" (statement_identifier "LAB_0005175c") (: ":") (if_statement "if (iVar7 != 0) {\n        local_120 = (double)ptimer_read(local_104);\n        iVar17 = (int)puVar24 >> 0x1f;\n        puVar20 = puVar24;\n        progress_update(iVar7);\n        dVar25 = (double)CONCAT44(iVar17,puVar20);\n      }" (if "if") (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        local_120 = (double)ptimer_read(local_104);\n        iVar17 = (int)puVar24 >> 0x1f;\n        puVar20 = puVar24;\n        progress_update(iVar7);\n        dVar25 = (double)CONCAT44(iVar17,puVar20);\n      }" ({ "{") (expression_statement "local_120 = (double)ptimer_read(local_104);" (assignment_expression "local_120 = (double)ptimer_read(local_104)" (identifier "local_120") (= "=") (cast_expression "(double)ptimer_read(local_104)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "ptimer_read(local_104)" (identifier "ptimer_read") (argument_list "(local_104)" (( "(") (identifier "local_104") () ")"))))) (; ";")) (expression_statement "iVar17 = (int)puVar24 >> 0x1f;" (assignment_expression "iVar17 = (int)puVar24 >> 0x1f" (identifier "iVar17") (= "=") (binary_expression "(int)puVar24 >> 0x1f" (cast_expression "(int)puVar24" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar24")) (>> ">>") (number_literal "0x1f"))) (; ";")) (expression_statement "puVar20 = puVar24;" (assignment_expression "puVar20 = puVar24" (identifier "puVar20") (= "=") (identifier "puVar24")) (; ";")) (expression_statement "progress_update(iVar7);" (call_expression "progress_update(iVar7)" (identifier "progress_update") (argument_list "(iVar7)" (( "(") (identifier "iVar7") () ")"))) (; ";")) (expression_statement "dVar25 = (double)CONCAT44(iVar17,puVar20);" (assignment_expression "dVar25 = (double)CONCAT44(iVar17,puVar20)" (identifier "dVar25") (= "=") (cast_expression "(double)CONCAT44(iVar17,puVar20)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "CONCAT44(iVar17,puVar20)" (identifier "CONCAT44") (argument_list "(iVar17,puVar20)" (( "(") (identifier "iVar17") (, ",") (identifier "puVar20") () ")"))))) (; ";")) (} "}")))) (} "}"))) (expression_statement "dVar31 = *(double *)(PTR_opt_000b746c + 0x120);" (assignment_expression "dVar31 = *(double *)(PTR_opt_000b746c + 0x120)" (identifier "dVar31") (= "=") (pointer_expression "*(double *)(PTR_opt_000b746c + 0x120)" (* "*") (cast_expression "(double *)(PTR_opt_000b746c + 0x120)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_opt_000b746c + 0x120)" (( "(") (binary_expression "PTR_opt_000b746c + 0x120" (identifier "PTR_opt_000b746c") (+ "+") (number_literal "0x120")) () ")"))))) (; ";")) (if_statement "if (uVar5 == 0) {\nLAB_00051864:\n      puVar15 = puVar20;\n      dVar30 = dVar25;\n      goto LAB_00051868;\n    }" (if "if") (parenthesized_expression "(uVar5 == 0)" (( "(") (binary_expression "uVar5 == 0" (identifier "uVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_00051864:\n      puVar15 = puVar20;\n      dVar30 = dVar25;\n      goto LAB_00051868;\n    }" ({ "{") (labeled_statement "LAB_00051864:\n      puVar15 = puVar20;" (statement_identifier "LAB_00051864") (: ":") (expression_statement "puVar15 = puVar20;" (assignment_expression "puVar15 = puVar20" (identifier "puVar15") (= "=") (identifier "puVar20")) (; ";"))) (expression_statement "dVar30 = dVar25;" (assignment_expression "dVar30 = dVar25" (identifier "dVar30") (= "=") (identifier "dVar25")) (; ";")) (goto_statement "goto LAB_00051868;" (goto "goto") (statement_identifier "LAB_00051868") (; ";")) (} "}"))) (labeled_statement "LAB_00051820:\n    if (iVar22 != 0 || local_f0 != (undefined8 *)0x0) {\nLAB_00051830:\n      puVar20 = local_f0;\n      if ((iVar17 <= iVar22) &&\n         ((puVar15 = local_e0, dVar30 = dVar25, iVar17 != iVar22 ||\n          (puVar20 = local_f0, local_e0 <= local_f0)))) goto LAB_00051868;\n      goto LAB_00051864;\n    }" (statement_identifier "LAB_00051820") (: ":") (if_statement "if (iVar22 != 0 || local_f0 != (undefined8 *)0x0) {\nLAB_00051830:\n      puVar20 = local_f0;\n      if ((iVar17 <= iVar22) &&\n         ((puVar15 = local_e0, dVar30 = dVar25, iVar17 != iVar22 ||\n          (puVar20 = local_f0, local_e0 <= local_f0)))) goto LAB_00051868;\n      goto LAB_00051864;\n    }" (if "if") (parenthesized_expression "(iVar22 != 0 || local_f0 != (undefined8 *)0x0)" (( "(") (binary_expression "iVar22 != 0 || local_f0 != (undefined8 *)0x0" (binary_expression "iVar22 != 0" (identifier "iVar22") (!= "!=") (number_literal "0")) (|| "||") (binary_expression "local_f0 != (undefined8 *)0x0" (identifier "local_f0") (!= "!=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")")) (compound_statement "{\nLAB_00051830:\n      puVar20 = local_f0;\n      if ((iVar17 <= iVar22) &&\n         ((puVar15 = local_e0, dVar30 = dVar25, iVar17 != iVar22 ||\n          (puVar20 = local_f0, local_e0 <= local_f0)))) goto LAB_00051868;\n      goto LAB_00051864;\n    }" ({ "{") (labeled_statement "LAB_00051830:\n      puVar20 = local_f0;" (statement_identifier "LAB_00051830") (: ":") (expression_statement "puVar20 = local_f0;" (assignment_expression "puVar20 = local_f0" (identifier "puVar20") (= "=") (identifier "local_f0")) (; ";"))) (if_statement "if ((iVar17 <= iVar22) &&\n         ((puVar15 = local_e0, dVar30 = dVar25, iVar17 != iVar22 ||\n          (puVar20 = local_f0, local_e0 <= local_f0)))) goto LAB_00051868;" (if "if") (parenthesized_expression "((iVar17 <= iVar22) &&\n         ((puVar15 = local_e0, dVar30 = dVar25, iVar17 != iVar22 ||\n          (puVar20 = local_f0, local_e0 <= local_f0))))" (( "(") (binary_expression "(iVar17 <= iVar22) &&\n         ((puVar15 = local_e0, dVar30 = dVar25, iVar17 != iVar22 ||\n          (puVar20 = local_f0, local_e0 <= local_f0)))" (parenthesized_expression "(iVar17 <= iVar22)" (( "(") (binary_expression "iVar17 <= iVar22" (identifier "iVar17") (<= "<=") (identifier "iVar22")) () ")")) (&& "&&") (parenthesized_expression "((puVar15 = local_e0, dVar30 = dVar25, iVar17 != iVar22 ||\n          (puVar20 = local_f0, local_e0 <= local_f0)))" (( "(") (parenthesized_expression "(puVar15 = local_e0, dVar30 = dVar25, iVar17 != iVar22 ||\n          (puVar20 = local_f0, local_e0 <= local_f0))" (( "(") (comma_expression "puVar15 = local_e0, dVar30 = dVar25, iVar17 != iVar22 ||\n          (puVar20 = local_f0, local_e0 <= local_f0)" (assignment_expression "puVar15 = local_e0" (identifier "puVar15") (= "=") (identifier "local_e0")) (, ",") (comma_expression "dVar30 = dVar25, iVar17 != iVar22 ||\n          (puVar20 = local_f0, local_e0 <= local_f0)" (assignment_expression "dVar30 = dVar25" (identifier "dVar30") (= "=") (identifier "dVar25")) (, ",") (binary_expression "iVar17 != iVar22 ||\n          (puVar20 = local_f0, local_e0 <= local_f0)" (binary_expression "iVar17 != iVar22" (identifier "iVar17") (!= "!=") (identifier "iVar22")) (|| "||") (parenthesized_expression "(puVar20 = local_f0, local_e0 <= local_f0)" (( "(") (comma_expression "puVar20 = local_f0, local_e0 <= local_f0" (assignment_expression "puVar20 = local_f0" (identifier "puVar20") (= "=") (identifier "local_f0")) (, ",") (binary_expression "local_e0 <= local_f0" (identifier "local_e0") (<= "<=") (identifier "local_f0"))) () ")"))))) () ")")) () ")"))) () ")")) (goto_statement "goto LAB_00051868;" (goto "goto") (statement_identifier "LAB_00051868") (; ";"))) (goto_statement "goto LAB_00051864;" (goto "goto") (statement_identifier "LAB_00051864") (; ";")) (} "}")))) (expression_statement "iVar13 = fd_read_line(param_2);" (assignment_expression "iVar13 = fd_read_line(param_2)" (identifier "iVar13") (= "=") (call_expression "fd_read_line(param_2)" (identifier "fd_read_line") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (expression_statement "puVar20 = SUB84(dVar25,0);" (assignment_expression "puVar20 = SUB84(dVar25,0)" (identifier "puVar20") (= "=") (call_expression "SUB84(dVar25,0)" (identifier "SUB84") (argument_list "(dVar25,0)" (( "(") (identifier "dVar25") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar13 == 0) {\nLAB_00050e90:\n      puVar24 = (undefined8 *)0xffffffff;\nLAB_000518d4:\n      bVar1 = (int)puVar24 < 0;\n      dVar30 = dVar25;\nLAB_000518d8:\n      puVar20 = (undefined8 *)0xffffffff;\n      puVar3 = local_120._0_4_;\n      if (!bVar1) {\n        puVar20 = puVar24;\n      }\n    }\n    else {\n      if (param_13 != (undefined8 *)0x0) {\n        uVar8 = (*(code *)PTR_strlen_000b7c94)(iVar13);\n        puVar20 = param_13;\n        (*(code *)PTR_fwrite_000b7c24)(iVar13,1,uVar8);\n      }\n      uVar8 = 0x10;\n      puVar9 = (undefined8 *)auStack_ac;\n      local_f0 = (undefined8 *)(*(code *)PTR_strtol_000b7d3c)(iVar13,puVar9);\n      iVar22 = (int)local_f0 >> 0x1f;\n      (*(code *)PTR_free_000b7d34)(iVar13);\n      dVar25 = (double)CONCAT44(uVar8,puVar20);\n      if (iVar22 < 0) goto LAB_00050e90;\n      if (local_f0 != (undefined8 *)0x0) goto LAB_00051830;\n      iVar22 = fd_read_line(param_2);\n      dVar30 = (double)CONCAT44(uVar8,puVar20);\n      if (iVar22 == 0) {\n        puVar20 = (undefined8 *)0xffffffff;\n      }\n      else {\n        if (param_13 != (undefined8 *)0x0) {\n          uVar8 = (*(code *)PTR_strlen_000b7c94)(iVar22);\n          puVar9 = (undefined8 *)&DAT_00000001;\n          (*(code *)PTR_fwrite_000b7c24)(iVar22,1);\n          puVar20 = param_13;\n        }\n        (*(code *)PTR_free_000b7d34)(iVar22);\n        dVar30 = (double)CONCAT44(uVar8,puVar20);\n        puVar20 = (undefined8 *)0x0;\n      }\n    }" (if "if") (parenthesized_expression "(iVar13 == 0)" (( "(") (binary_expression "iVar13 == 0" (identifier "iVar13") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_00050e90:\n      puVar24 = (undefined8 *)0xffffffff;\nLAB_000518d4:\n      bVar1 = (int)puVar24 < 0;\n      dVar30 = dVar25;\nLAB_000518d8:\n      puVar20 = (undefined8 *)0xffffffff;\n      puVar3 = local_120._0_4_;\n      if (!bVar1) {\n        puVar20 = puVar24;\n      }\n    }" ({ "{") (labeled_statement "LAB_00050e90:\n      puVar24 = (undefined8 *)0xffffffff;" (statement_identifier "LAB_00050e90") (: ":") (expression_statement "puVar24 = (undefined8 *)0xffffffff;" (assignment_expression "puVar24 = (undefined8 *)0xffffffff" (identifier "puVar24") (= "=") (cast_expression "(undefined8 *)0xffffffff" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) (; ";"))) (labeled_statement "LAB_000518d4:\n      bVar1 = (int)puVar24 < 0;" (statement_identifier "LAB_000518d4") (: ":") (expression_statement "bVar1 = (int)puVar24 < 0;" (assignment_expression "bVar1 = (int)puVar24 < 0" (identifier "bVar1") (= "=") (binary_expression "(int)puVar24 < 0" (cast_expression "(int)puVar24" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar24")) (< "<") (number_literal "0"))) (; ";"))) (expression_statement "dVar30 = dVar25;" (assignment_expression "dVar30 = dVar25" (identifier "dVar30") (= "=") (identifier "dVar25")) (; ";")) (labeled_statement "LAB_000518d8:\n      puVar20 = (undefined8 *)0xffffffff;" (statement_identifier "LAB_000518d8") (: ":") (expression_statement "puVar20 = (undefined8 *)0xffffffff;" (assignment_expression "puVar20 = (undefined8 *)0xffffffff" (identifier "puVar20") (= "=") (cast_expression "(undefined8 *)0xffffffff" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) (; ";"))) (expression_statement "puVar3 = local_120._0_4_;" (assignment_expression "puVar3 = local_120._0_4_" (identifier "puVar3") (= "=") (field_expression "local_120._0_4_" (identifier "local_120") (. ".") (field_identifier "_0_4_"))) (; ";")) (if_statement "if (!bVar1) {\n        puVar20 = puVar24;\n      }" (if "if") (parenthesized_expression "(!bVar1)" (( "(") (unary_expression "!bVar1" (! "!") (identifier "bVar1")) () ")")) (compound_statement "{\n        puVar20 = puVar24;\n      }" ({ "{") (expression_statement "puVar20 = puVar24;" (assignment_expression "puVar20 = puVar24" (identifier "puVar20") (= "=") (identifier "puVar24")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n      if (param_13 != (undefined8 *)0x0) {\n        uVar8 = (*(code *)PTR_strlen_000b7c94)(iVar13);\n        puVar20 = param_13;\n        (*(code *)PTR_fwrite_000b7c24)(iVar13,1,uVar8);\n      }\n      uVar8 = 0x10;\n      puVar9 = (undefined8 *)auStack_ac;\n      local_f0 = (undefined8 *)(*(code *)PTR_strtol_000b7d3c)(iVar13,puVar9);\n      iVar22 = (int)local_f0 >> 0x1f;\n      (*(code *)PTR_free_000b7d34)(iVar13);\n      dVar25 = (double)CONCAT44(uVar8,puVar20);\n      if (iVar22 < 0) goto LAB_00050e90;\n      if (local_f0 != (undefined8 *)0x0) goto LAB_00051830;\n      iVar22 = fd_read_line(param_2);\n      dVar30 = (double)CONCAT44(uVar8,puVar20);\n      if (iVar22 == 0) {\n        puVar20 = (undefined8 *)0xffffffff;\n      }\n      else {\n        if (param_13 != (undefined8 *)0x0) {\n          uVar8 = (*(code *)PTR_strlen_000b7c94)(iVar22);\n          puVar9 = (undefined8 *)&DAT_00000001;\n          (*(code *)PTR_fwrite_000b7c24)(iVar22,1);\n          puVar20 = param_13;\n        }\n        (*(code *)PTR_free_000b7d34)(iVar22);\n        dVar30 = (double)CONCAT44(uVar8,puVar20);\n        puVar20 = (undefined8 *)0x0;\n      }\n    }" (else "else") (compound_statement "{\n      if (param_13 != (undefined8 *)0x0) {\n        uVar8 = (*(code *)PTR_strlen_000b7c94)(iVar13);\n        puVar20 = param_13;\n        (*(code *)PTR_fwrite_000b7c24)(iVar13,1,uVar8);\n      }\n      uVar8 = 0x10;\n      puVar9 = (undefined8 *)auStack_ac;\n      local_f0 = (undefined8 *)(*(code *)PTR_strtol_000b7d3c)(iVar13,puVar9);\n      iVar22 = (int)local_f0 >> 0x1f;\n      (*(code *)PTR_free_000b7d34)(iVar13);\n      dVar25 = (double)CONCAT44(uVar8,puVar20);\n      if (iVar22 < 0) goto LAB_00050e90;\n      if (local_f0 != (undefined8 *)0x0) goto LAB_00051830;\n      iVar22 = fd_read_line(param_2);\n      dVar30 = (double)CONCAT44(uVar8,puVar20);\n      if (iVar22 == 0) {\n        puVar20 = (undefined8 *)0xffffffff;\n      }\n      else {\n        if (param_13 != (undefined8 *)0x0) {\n          uVar8 = (*(code *)PTR_strlen_000b7c94)(iVar22);\n          puVar9 = (undefined8 *)&DAT_00000001;\n          (*(code *)PTR_fwrite_000b7c24)(iVar22,1);\n          puVar20 = param_13;\n        }\n        (*(code *)PTR_free_000b7d34)(iVar22);\n        dVar30 = (double)CONCAT44(uVar8,puVar20);\n        puVar20 = (undefined8 *)0x0;\n      }\n    }" ({ "{") (if_statement "if (param_13 != (undefined8 *)0x0) {\n        uVar8 = (*(code *)PTR_strlen_000b7c94)(iVar13);\n        puVar20 = param_13;\n        (*(code *)PTR_fwrite_000b7c24)(iVar13,1,uVar8);\n      }" (if "if") (parenthesized_expression "(param_13 != (undefined8 *)0x0)" (( "(") (binary_expression "param_13 != (undefined8 *)0x0" (identifier "param_13") (!= "!=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        uVar8 = (*(code *)PTR_strlen_000b7c94)(iVar13);\n        puVar20 = param_13;\n        (*(code *)PTR_fwrite_000b7c24)(iVar13,1,uVar8);\n      }" ({ "{") (expression_statement "uVar8 = (*(code *)PTR_strlen_000b7c94)(iVar13);" (assignment_expression "uVar8 = (*(code *)PTR_strlen_000b7c94)(iVar13)" (identifier "uVar8") (= "=") (call_expression "(*(code *)PTR_strlen_000b7c94)(iVar13)" (parenthesized_expression "(*(code *)PTR_strlen_000b7c94)" (( "(") (pointer_expression "*(code *)PTR_strlen_000b7c94" (* "*") (cast_expression "(code *)PTR_strlen_000b7c94" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strlen_000b7c94"))) () ")")) (argument_list "(iVar13)" (( "(") (identifier "iVar13") () ")")))) (; ";")) (expression_statement "puVar20 = param_13;" (assignment_expression "puVar20 = param_13" (identifier "puVar20") (= "=") (identifier "param_13")) (; ";")) (expression_statement "(*(code *)PTR_fwrite_000b7c24)(iVar13,1,uVar8);" (call_expression "(*(code *)PTR_fwrite_000b7c24)(iVar13,1,uVar8)" (parenthesized_expression "(*(code *)PTR_fwrite_000b7c24)" (( "(") (pointer_expression "*(code *)PTR_fwrite_000b7c24" (* "*") (cast_expression "(code *)PTR_fwrite_000b7c24" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_fwrite_000b7c24"))) () ")")) (argument_list "(iVar13,1,uVar8)" (( "(") (identifier "iVar13") (, ",") (number_literal "1") (, ",") (identifier "uVar8") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar8 = 0x10;" (assignment_expression "uVar8 = 0x10" (identifier "uVar8") (= "=") (number_literal "0x10")) (; ";")) (expression_statement "puVar9 = (undefined8 *)auStack_ac;" (assignment_expression "puVar9 = (undefined8 *)auStack_ac" (identifier "puVar9") (= "=") (cast_expression "(undefined8 *)auStack_ac" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "auStack_ac"))) (; ";")) (expression_statement "local_f0 = (undefined8 *)(*(code *)PTR_strtol_000b7d3c)(iVar13,puVar9);" (assignment_expression "local_f0 = (undefined8 *)(*(code *)PTR_strtol_000b7d3c)(iVar13,puVar9)" (identifier "local_f0") (= "=") (cast_expression "(undefined8 *)(*(code *)PTR_strtol_000b7d3c)(iVar13,puVar9)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_strtol_000b7d3c)(iVar13,puVar9)" (parenthesized_expression "(*(code *)PTR_strtol_000b7d3c)" (( "(") (pointer_expression "*(code *)PTR_strtol_000b7d3c" (* "*") (cast_expression "(code *)PTR_strtol_000b7d3c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strtol_000b7d3c"))) () ")")) (argument_list "(iVar13,puVar9)" (( "(") (identifier "iVar13") (, ",") (identifier "puVar9") () ")"))))) (; ";")) (expression_statement "iVar22 = (int)local_f0 >> 0x1f;" (assignment_expression "iVar22 = (int)local_f0 >> 0x1f" (identifier "iVar22") (= "=") (binary_expression "(int)local_f0 >> 0x1f" (cast_expression "(int)local_f0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_f0")) (>> ">>") (number_literal "0x1f"))) (; ";")) (expression_statement "(*(code *)PTR_free_000b7d34)(iVar13);" (call_expression "(*(code *)PTR_free_000b7d34)(iVar13)" (parenthesized_expression "(*(code *)PTR_free_000b7d34)" (( "(") (pointer_expression "*(code *)PTR_free_000b7d34" (* "*") (cast_expression "(code *)PTR_free_000b7d34" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_000b7d34"))) () ")")) (argument_list "(iVar13)" (( "(") (identifier "iVar13") () ")"))) (; ";")) (expression_statement "dVar25 = (double)CONCAT44(uVar8,puVar20);" (assignment_expression "dVar25 = (double)CONCAT44(uVar8,puVar20)" (identifier "dVar25") (= "=") (cast_expression "(double)CONCAT44(uVar8,puVar20)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "CONCAT44(uVar8,puVar20)" (identifier "CONCAT44") (argument_list "(uVar8,puVar20)" (( "(") (identifier "uVar8") (, ",") (identifier "puVar20") () ")"))))) (; ";")) (if_statement "if (iVar22 < 0) goto LAB_00050e90;" (if "if") (parenthesized_expression "(iVar22 < 0)" (( "(") (binary_expression "iVar22 < 0" (identifier "iVar22") (< "<") (number_literal "0")) () ")")) (goto_statement "goto LAB_00050e90;" (goto "goto") (statement_identifier "LAB_00050e90") (; ";"))) (if_statement "if (local_f0 != (undefined8 *)0x0) goto LAB_00051830;" (if "if") (parenthesized_expression "(local_f0 != (undefined8 *)0x0)" (( "(") (binary_expression "local_f0 != (undefined8 *)0x0" (identifier "local_f0") (!= "!=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00051830;" (goto "goto") (statement_identifier "LAB_00051830") (; ";"))) (expression_statement "iVar22 = fd_read_line(param_2);" (assignment_expression "iVar22 = fd_read_line(param_2)" (identifier "iVar22") (= "=") (call_expression "fd_read_line(param_2)" (identifier "fd_read_line") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (expression_statement "dVar30 = (double)CONCAT44(uVar8,puVar20);" (assignment_expression "dVar30 = (double)CONCAT44(uVar8,puVar20)" (identifier "dVar30") (= "=") (cast_expression "(double)CONCAT44(uVar8,puVar20)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "CONCAT44(uVar8,puVar20)" (identifier "CONCAT44") (argument_list "(uVar8,puVar20)" (( "(") (identifier "uVar8") (, ",") (identifier "puVar20") () ")"))))) (; ";")) (if_statement "if (iVar22 == 0) {\n        puVar20 = (undefined8 *)0xffffffff;\n      }\n      else {\n        if (param_13 != (undefined8 *)0x0) {\n          uVar8 = (*(code *)PTR_strlen_000b7c94)(iVar22);\n          puVar9 = (undefined8 *)&DAT_00000001;\n          (*(code *)PTR_fwrite_000b7c24)(iVar22,1);\n          puVar20 = param_13;\n        }\n        (*(code *)PTR_free_000b7d34)(iVar22);\n        dVar30 = (double)CONCAT44(uVar8,puVar20);\n        puVar20 = (undefined8 *)0x0;\n      }" (if "if") (parenthesized_expression "(iVar22 == 0)" (( "(") (binary_expression "iVar22 == 0" (identifier "iVar22") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        puVar20 = (undefined8 *)0xffffffff;\n      }" ({ "{") (expression_statement "puVar20 = (undefined8 *)0xffffffff;" (assignment_expression "puVar20 = (undefined8 *)0xffffffff" (identifier "puVar20") (= "=") (cast_expression "(undefined8 *)0xffffffff" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) (; ";")) (} "}")) (else_clause "else {\n        if (param_13 != (undefined8 *)0x0) {\n          uVar8 = (*(code *)PTR_strlen_000b7c94)(iVar22);\n          puVar9 = (undefined8 *)&DAT_00000001;\n          (*(code *)PTR_fwrite_000b7c24)(iVar22,1);\n          puVar20 = param_13;\n        }\n        (*(code *)PTR_free_000b7d34)(iVar22);\n        dVar30 = (double)CONCAT44(uVar8,puVar20);\n        puVar20 = (undefined8 *)0x0;\n      }" (else "else") (compound_statement "{\n        if (param_13 != (undefined8 *)0x0) {\n          uVar8 = (*(code *)PTR_strlen_000b7c94)(iVar22);\n          puVar9 = (undefined8 *)&DAT_00000001;\n          (*(code *)PTR_fwrite_000b7c24)(iVar22,1);\n          puVar20 = param_13;\n        }\n        (*(code *)PTR_free_000b7d34)(iVar22);\n        dVar30 = (double)CONCAT44(uVar8,puVar20);\n        puVar20 = (undefined8 *)0x0;\n      }" ({ "{") (if_statement "if (param_13 != (undefined8 *)0x0) {\n          uVar8 = (*(code *)PTR_strlen_000b7c94)(iVar22);\n          puVar9 = (undefined8 *)&DAT_00000001;\n          (*(code *)PTR_fwrite_000b7c24)(iVar22,1);\n          puVar20 = param_13;\n        }" (if "if") (parenthesized_expression "(param_13 != (undefined8 *)0x0)" (( "(") (binary_expression "param_13 != (undefined8 *)0x0" (identifier "param_13") (!= "!=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          uVar8 = (*(code *)PTR_strlen_000b7c94)(iVar22);\n          puVar9 = (undefined8 *)&DAT_00000001;\n          (*(code *)PTR_fwrite_000b7c24)(iVar22,1);\n          puVar20 = param_13;\n        }" ({ "{") (expression_statement "uVar8 = (*(code *)PTR_strlen_000b7c94)(iVar22);" (assignment_expression "uVar8 = (*(code *)PTR_strlen_000b7c94)(iVar22)" (identifier "uVar8") (= "=") (call_expression "(*(code *)PTR_strlen_000b7c94)(iVar22)" (parenthesized_expression "(*(code *)PTR_strlen_000b7c94)" (( "(") (pointer_expression "*(code *)PTR_strlen_000b7c94" (* "*") (cast_expression "(code *)PTR_strlen_000b7c94" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strlen_000b7c94"))) () ")")) (argument_list "(iVar22)" (( "(") (identifier "iVar22") () ")")))) (; ";")) (expression_statement "puVar9 = (undefined8 *)&DAT_00000001;" (assignment_expression "puVar9 = (undefined8 *)&DAT_00000001" (identifier "puVar9") (= "=") (cast_expression "(undefined8 *)&DAT_00000001" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&DAT_00000001" (& "&") (identifier "DAT_00000001")))) (; ";")) (expression_statement "(*(code *)PTR_fwrite_000b7c24)(iVar22,1);" (call_expression "(*(code *)PTR_fwrite_000b7c24)(iVar22,1)" (parenthesized_expression "(*(code *)PTR_fwrite_000b7c24)" (( "(") (pointer_expression "*(code *)PTR_fwrite_000b7c24" (* "*") (cast_expression "(code *)PTR_fwrite_000b7c24" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_fwrite_000b7c24"))) () ")")) (argument_list "(iVar22,1)" (( "(") (identifier "iVar22") (, ",") (number_literal "1") () ")"))) (; ";")) (expression_statement "puVar20 = param_13;" (assignment_expression "puVar20 = param_13" (identifier "puVar20") (= "=") (identifier "param_13")) (; ";")) (} "}"))) (expression_statement "(*(code *)PTR_free_000b7d34)(iVar22);" (call_expression "(*(code *)PTR_free_000b7d34)(iVar22)" (parenthesized_expression "(*(code *)PTR_free_000b7d34)" (( "(") (pointer_expression "*(code *)PTR_free_000b7d34" (* "*") (cast_expression "(code *)PTR_free_000b7d34" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_000b7d34"))) () ")")) (argument_list "(iVar22)" (( "(") (identifier "iVar22") () ")"))) (; ";")) (expression_statement "dVar30 = (double)CONCAT44(uVar8,puVar20);" (assignment_expression "dVar30 = (double)CONCAT44(uVar8,puVar20)" (identifier "dVar30") (= "=") (cast_expression "(double)CONCAT44(uVar8,puVar20)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "CONCAT44(uVar8,puVar20)" (identifier "CONCAT44") (argument_list "(uVar8,puVar20)" (( "(") (identifier "uVar8") (, ",") (identifier "puVar20") () ")"))))) (; ";")) (expression_statement "puVar20 = (undefined8 *)0x0;" (assignment_expression "puVar20 = (undefined8 *)0x0" (identifier "puVar20") (= "=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")))) (} "}")))) (labeled_statement "LAB_00051040:\n    local_120._0_4_ = puVar3;" (statement_identifier "LAB_00051040") (: ":") (expression_statement "local_120._0_4_ = puVar3;" (assignment_expression "local_120._0_4_ = puVar3" (field_expression "local_120._0_4_" (identifier "local_120") (. ".") (field_identifier "_0_4_")) (= "=") (identifier "puVar3")) (; ";"))) (if_statement "if (iVar7 != 0) {\n      uVar26 = ptimer_read(local_104);\n      uVar19 = (undefined4)uVar26;\n      uVar8 = (undefined4)((ulonglong)uVar26 >> 0x20);\n      progress_finish(iVar7);\n      dVar30 = (double)CONCAT44(uVar8,uVar19);\n    }" (if "if") (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      uVar26 = ptimer_read(local_104);\n      uVar19 = (undefined4)uVar26;\n      uVar8 = (undefined4)((ulonglong)uVar26 >> 0x20);\n      progress_finish(iVar7);\n      dVar30 = (double)CONCAT44(uVar8,uVar19);\n    }" ({ "{") (expression_statement "uVar26 = ptimer_read(local_104);" (assignment_expression "uVar26 = ptimer_read(local_104)" (identifier "uVar26") (= "=") (call_expression "ptimer_read(local_104)" (identifier "ptimer_read") (argument_list "(local_104)" (( "(") (identifier "local_104") () ")")))) (; ";")) (expression_statement "uVar19 = (undefined4)uVar26;" (assignment_expression "uVar19 = (undefined4)uVar26" (identifier "uVar19") (= "=") (cast_expression "(undefined4)uVar26" (( "(") (type_descriptor "undefined4" (type_identifier "undefined4")) () ")") (identifier "uVar26"))) (; ";")) (expression_statement "uVar8 = (undefined4)((ulonglong)uVar26 >> 0x20);" (assignment_expression "uVar8 = (undefined4)((ulonglong)uVar26 >> 0x20)" (identifier "uVar8") (= "=") (call_expression "(undefined4)((ulonglong)uVar26 >> 0x20)" (parenthesized_expression "(undefined4)" (( "(") (identifier "undefined4") () ")")) (argument_list "((ulonglong)uVar26 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar26 >> 0x20" (cast_expression "(ulonglong)uVar26" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar26")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "progress_finish(iVar7);" (call_expression "progress_finish(iVar7)" (identifier "progress_finish") (argument_list "(iVar7)" (( "(") (identifier "iVar7") () ")"))) (; ";")) (expression_statement "dVar30 = (double)CONCAT44(uVar8,uVar19);" (assignment_expression "dVar30 = (double)CONCAT44(uVar8,uVar19)" (identifier "dVar30") (= "=") (cast_expression "(double)CONCAT44(uVar8,uVar19)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "CONCAT44(uVar8,uVar19)" (identifier "CONCAT44") (argument_list "(uVar8,uVar19)" (( "(") (identifier "uVar8") (, ",") (identifier "uVar19") () ")"))))) (; ";")) (} "}"))) (if_statement "if (param_11 != (undefined8 *)0x0) goto LAB_00051080;" (if "if") (parenthesized_expression "(param_11 != (undefined8 *)0x0)" (( "(") (binary_expression "param_11 != (undefined8 *)0x0" (identifier "param_11") (!= "!=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00051080;" (goto "goto") (statement_identifier "LAB_00051080") (; ";"))) (} "}")) (else_clause "else {\n    local_100 = (undefined8 *)(*(code *)PTR_xmalloc_000b7480)(0x8000);\n    if (local_100 == (undefined8 *)0x0) {\n      puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n      *puVar10 = 0xc;\n    }\n    else {\n      local_74 = PTR_LAB_000b78e4 + 0x368;\n      local_70 = PTR_LAB_000b78e4 + 0x330;\n      local_6c = 0;\n      local_94 = (undefined8 *)0x0;\n      local_90 = (undefined8 *)0x0;\n      param_4 = (undefined1 *)0x38;\n      puVar21 = PTR_DAT_000b758c + -0x18a0;\n      puVar9 = (undefined8 *)0x2f;\n      iVar6 = (*(code *)PTR_inflateInit2__000b7d68)(&local_94,0x2f);\n      if (iVar6 == 0) goto LAB_00050b74;\n      (*(code *)PTR_free_000b7d34)(local_100);\n      uVar8 = 0x16;\n      if (iVar6 == -4) {\n        uVar8 = 0xc;\n      }\n      puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n      *puVar10 = uVar8;\n    }\n    dVar30 = (double)CONCAT44(puVar21,param_4);\n    local_100 = param_11;\n    if (param_11 == (undefined8 *)0x0) {\n      iVar6 = 0;\n      local_fc = (undefined8 *)0x0;\n      puVar20 = (undefined8 *)0xffffffff;\n      goto LAB_000510b8;\n    }\n    local_100 = (undefined8 *)0x0;\n    iVar6 = 0;\n    local_fc = (undefined8 *)0x0;\n    local_104 = (undefined8 *)0x0;\n    puVar20 = (undefined8 *)0xffffffff;\nLAB_00051080:\n    uVar26 = ptimer_read(local_104);\n    *param_11 = uVar26;\n  }" (else "else") (compound_statement "{\n    local_100 = (undefined8 *)(*(code *)PTR_xmalloc_000b7480)(0x8000);\n    if (local_100 == (undefined8 *)0x0) {\n      puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n      *puVar10 = 0xc;\n    }\n    else {\n      local_74 = PTR_LAB_000b78e4 + 0x368;\n      local_70 = PTR_LAB_000b78e4 + 0x330;\n      local_6c = 0;\n      local_94 = (undefined8 *)0x0;\n      local_90 = (undefined8 *)0x0;\n      param_4 = (undefined1 *)0x38;\n      puVar21 = PTR_DAT_000b758c + -0x18a0;\n      puVar9 = (undefined8 *)0x2f;\n      iVar6 = (*(code *)PTR_inflateInit2__000b7d68)(&local_94,0x2f);\n      if (iVar6 == 0) goto LAB_00050b74;\n      (*(code *)PTR_free_000b7d34)(local_100);\n      uVar8 = 0x16;\n      if (iVar6 == -4) {\n        uVar8 = 0xc;\n      }\n      puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n      *puVar10 = uVar8;\n    }\n    dVar30 = (double)CONCAT44(puVar21,param_4);\n    local_100 = param_11;\n    if (param_11 == (undefined8 *)0x0) {\n      iVar6 = 0;\n      local_fc = (undefined8 *)0x0;\n      puVar20 = (undefined8 *)0xffffffff;\n      goto LAB_000510b8;\n    }\n    local_100 = (undefined8 *)0x0;\n    iVar6 = 0;\n    local_fc = (undefined8 *)0x0;\n    local_104 = (undefined8 *)0x0;\n    puVar20 = (undefined8 *)0xffffffff;\nLAB_00051080:\n    uVar26 = ptimer_read(local_104);\n    *param_11 = uVar26;\n  }" ({ "{") (expression_statement "local_100 = (undefined8 *)(*(code *)PTR_xmalloc_000b7480)(0x8000);" (assignment_expression "local_100 = (undefined8 *)(*(code *)PTR_xmalloc_000b7480)(0x8000)" (identifier "local_100") (= "=") (cast_expression "(undefined8 *)(*(code *)PTR_xmalloc_000b7480)(0x8000)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_xmalloc_000b7480)(0x8000)" (parenthesized_expression "(*(code *)PTR_xmalloc_000b7480)" (( "(") (pointer_expression "*(code *)PTR_xmalloc_000b7480" (* "*") (cast_expression "(code *)PTR_xmalloc_000b7480" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_xmalloc_000b7480"))) () ")")) (argument_list "(0x8000)" (( "(") (number_literal "0x8000") () ")"))))) (; ";")) (if_statement "if (local_100 == (undefined8 *)0x0) {\n      puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n      *puVar10 = 0xc;\n    }\n    else {\n      local_74 = PTR_LAB_000b78e4 + 0x368;\n      local_70 = PTR_LAB_000b78e4 + 0x330;\n      local_6c = 0;\n      local_94 = (undefined8 *)0x0;\n      local_90 = (undefined8 *)0x0;\n      param_4 = (undefined1 *)0x38;\n      puVar21 = PTR_DAT_000b758c + -0x18a0;\n      puVar9 = (undefined8 *)0x2f;\n      iVar6 = (*(code *)PTR_inflateInit2__000b7d68)(&local_94,0x2f);\n      if (iVar6 == 0) goto LAB_00050b74;\n      (*(code *)PTR_free_000b7d34)(local_100);\n      uVar8 = 0x16;\n      if (iVar6 == -4) {\n        uVar8 = 0xc;\n      }\n      puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n      *puVar10 = uVar8;\n    }" (if "if") (parenthesized_expression "(local_100 == (undefined8 *)0x0)" (( "(") (binary_expression "local_100 == (undefined8 *)0x0" (identifier "local_100") (== "==") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n      *puVar10 = 0xc;\n    }" ({ "{") (expression_statement "puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();" (assignment_expression "puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)()" (identifier "puVar10") (= "=") (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_000b7eb8)()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___errno_location_000b7eb8)()" (parenthesized_expression "(*(code *)PTR___errno_location_000b7eb8)" (( "(") (pointer_expression "*(code *)PTR___errno_location_000b7eb8" (* "*") (cast_expression "(code *)PTR___errno_location_000b7eb8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___errno_location_000b7eb8"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "*puVar10 = 0xc;" (assignment_expression "*puVar10 = 0xc" (pointer_expression "*puVar10" (* "*") (identifier "puVar10")) (= "=") (number_literal "0xc")) (; ";")) (} "}")) (else_clause "else {\n      local_74 = PTR_LAB_000b78e4 + 0x368;\n      local_70 = PTR_LAB_000b78e4 + 0x330;\n      local_6c = 0;\n      local_94 = (undefined8 *)0x0;\n      local_90 = (undefined8 *)0x0;\n      param_4 = (undefined1 *)0x38;\n      puVar21 = PTR_DAT_000b758c + -0x18a0;\n      puVar9 = (undefined8 *)0x2f;\n      iVar6 = (*(code *)PTR_inflateInit2__000b7d68)(&local_94,0x2f);\n      if (iVar6 == 0) goto LAB_00050b74;\n      (*(code *)PTR_free_000b7d34)(local_100);\n      uVar8 = 0x16;\n      if (iVar6 == -4) {\n        uVar8 = 0xc;\n      }\n      puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n      *puVar10 = uVar8;\n    }" (else "else") (compound_statement "{\n      local_74 = PTR_LAB_000b78e4 + 0x368;\n      local_70 = PTR_LAB_000b78e4 + 0x330;\n      local_6c = 0;\n      local_94 = (undefined8 *)0x0;\n      local_90 = (undefined8 *)0x0;\n      param_4 = (undefined1 *)0x38;\n      puVar21 = PTR_DAT_000b758c + -0x18a0;\n      puVar9 = (undefined8 *)0x2f;\n      iVar6 = (*(code *)PTR_inflateInit2__000b7d68)(&local_94,0x2f);\n      if (iVar6 == 0) goto LAB_00050b74;\n      (*(code *)PTR_free_000b7d34)(local_100);\n      uVar8 = 0x16;\n      if (iVar6 == -4) {\n        uVar8 = 0xc;\n      }\n      puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();\n      *puVar10 = uVar8;\n    }" ({ "{") (expression_statement "local_74 = PTR_LAB_000b78e4 + 0x368;" (assignment_expression "local_74 = PTR_LAB_000b78e4 + 0x368" (identifier "local_74") (= "=") (binary_expression "PTR_LAB_000b78e4 + 0x368" (identifier "PTR_LAB_000b78e4") (+ "+") (number_literal "0x368"))) (; ";")) (expression_statement "local_70 = PTR_LAB_000b78e4 + 0x330;" (assignment_expression "local_70 = PTR_LAB_000b78e4 + 0x330" (identifier "local_70") (= "=") (binary_expression "PTR_LAB_000b78e4 + 0x330" (identifier "PTR_LAB_000b78e4") (+ "+") (number_literal "0x330"))) (; ";")) (expression_statement "local_6c = 0;" (assignment_expression "local_6c = 0" (identifier "local_6c") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_94 = (undefined8 *)0x0;" (assignment_expression "local_94 = (undefined8 *)0x0" (identifier "local_94") (= "=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_90 = (undefined8 *)0x0;" (assignment_expression "local_90 = (undefined8 *)0x0" (identifier "local_90") (= "=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "param_4 = (undefined1 *)0x38;" (assignment_expression "param_4 = (undefined1 *)0x38" (identifier "param_4") (= "=") (cast_expression "(undefined1 *)0x38" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x38"))) (; ";")) (expression_statement "puVar21 = PTR_DAT_000b758c + -0x18a0;" (assignment_expression "puVar21 = PTR_DAT_000b758c + -0x18a0" (identifier "puVar21") (= "=") (binary_expression "PTR_DAT_000b758c + -0x18a0" (identifier "PTR_DAT_000b758c") (+ "+") (number_literal "-0x18a0"))) (; ";")) (expression_statement "puVar9 = (undefined8 *)0x2f;" (assignment_expression "puVar9 = (undefined8 *)0x2f" (identifier "puVar9") (= "=") (cast_expression "(undefined8 *)0x2f" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x2f"))) (; ";")) (expression_statement "iVar6 = (*(code *)PTR_inflateInit2__000b7d68)(&local_94,0x2f);" (assignment_expression "iVar6 = (*(code *)PTR_inflateInit2__000b7d68)(&local_94,0x2f)" (identifier "iVar6") (= "=") (call_expression "(*(code *)PTR_inflateInit2__000b7d68)(&local_94,0x2f)" (parenthesized_expression "(*(code *)PTR_inflateInit2__000b7d68)" (( "(") (pointer_expression "*(code *)PTR_inflateInit2__000b7d68" (* "*") (cast_expression "(code *)PTR_inflateInit2__000b7d68" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_inflateInit2__000b7d68"))) () ")")) (argument_list "(&local_94,0x2f)" (( "(") (pointer_expression "&local_94" (& "&") (identifier "local_94")) (, ",") (number_literal "0x2f") () ")")))) (; ";")) (if_statement "if (iVar6 == 0) goto LAB_00050b74;" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00050b74;" (goto "goto") (statement_identifier "LAB_00050b74") (; ";"))) (expression_statement "(*(code *)PTR_free_000b7d34)(local_100);" (call_expression "(*(code *)PTR_free_000b7d34)(local_100)" (parenthesized_expression "(*(code *)PTR_free_000b7d34)" (( "(") (pointer_expression "*(code *)PTR_free_000b7d34" (* "*") (cast_expression "(code *)PTR_free_000b7d34" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_000b7d34"))) () ")")) (argument_list "(local_100)" (( "(") (identifier "local_100") () ")"))) (; ";")) (expression_statement "uVar8 = 0x16;" (assignment_expression "uVar8 = 0x16" (identifier "uVar8") (= "=") (number_literal "0x16")) (; ";")) (if_statement "if (iVar6 == -4) {\n        uVar8 = 0xc;\n      }" (if "if") (parenthesized_expression "(iVar6 == -4)" (( "(") (binary_expression "iVar6 == -4" (identifier "iVar6") (== "==") (number_literal "-4")) () ")")) (compound_statement "{\n        uVar8 = 0xc;\n      }" ({ "{") (expression_statement "uVar8 = 0xc;" (assignment_expression "uVar8 = 0xc" (identifier "uVar8") (= "=") (number_literal "0xc")) (; ";")) (} "}"))) (expression_statement "puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();" (assignment_expression "puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)()" (identifier "puVar10") (= "=") (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_000b7eb8)()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___errno_location_000b7eb8)()" (parenthesized_expression "(*(code *)PTR___errno_location_000b7eb8)" (( "(") (pointer_expression "*(code *)PTR___errno_location_000b7eb8" (* "*") (cast_expression "(code *)PTR___errno_location_000b7eb8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___errno_location_000b7eb8"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "*puVar10 = uVar8;" (assignment_expression "*puVar10 = uVar8" (pointer_expression "*puVar10" (* "*") (identifier "puVar10")) (= "=") (identifier "uVar8")) (; ";")) (} "}")))) (expression_statement "dVar30 = (double)CONCAT44(puVar21,param_4);" (assignment_expression "dVar30 = (double)CONCAT44(puVar21,param_4)" (identifier "dVar30") (= "=") (cast_expression "(double)CONCAT44(puVar21,param_4)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "CONCAT44(puVar21,param_4)" (identifier "CONCAT44") (argument_list "(puVar21,param_4)" (( "(") (identifier "puVar21") (, ",") (identifier "param_4") () ")"))))) (; ";")) (expression_statement "local_100 = param_11;" (assignment_expression "local_100 = param_11" (identifier "local_100") (= "=") (identifier "param_11")) (; ";")) (if_statement "if (param_11 == (undefined8 *)0x0) {\n      iVar6 = 0;\n      local_fc = (undefined8 *)0x0;\n      puVar20 = (undefined8 *)0xffffffff;\n      goto LAB_000510b8;\n    }" (if "if") (parenthesized_expression "(param_11 == (undefined8 *)0x0)" (( "(") (binary_expression "param_11 == (undefined8 *)0x0" (identifier "param_11") (== "==") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      iVar6 = 0;\n      local_fc = (undefined8 *)0x0;\n      puVar20 = (undefined8 *)0xffffffff;\n      goto LAB_000510b8;\n    }" ({ "{") (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" (identifier "iVar6") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_fc = (undefined8 *)0x0;" (assignment_expression "local_fc = (undefined8 *)0x0" (identifier "local_fc") (= "=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "puVar20 = (undefined8 *)0xffffffff;" (assignment_expression "puVar20 = (undefined8 *)0xffffffff" (identifier "puVar20") (= "=") (cast_expression "(undefined8 *)0xffffffff" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) (; ";")) (goto_statement "goto LAB_000510b8;" (goto "goto") (statement_identifier "LAB_000510b8") (; ";")) (} "}"))) (expression_statement "local_100 = (undefined8 *)0x0;" (assignment_expression "local_100 = (undefined8 *)0x0" (identifier "local_100") (= "=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" (identifier "iVar6") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_fc = (undefined8 *)0x0;" (assignment_expression "local_fc = (undefined8 *)0x0" (identifier "local_fc") (= "=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_104 = (undefined8 *)0x0;" (assignment_expression "local_104 = (undefined8 *)0x0" (identifier "local_104") (= "=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "puVar20 = (undefined8 *)0xffffffff;" (assignment_expression "puVar20 = (undefined8 *)0xffffffff" (identifier "puVar20") (= "=") (cast_expression "(undefined8 *)0xffffffff" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) (; ";")) (labeled_statement "LAB_00051080:\n    uVar26 = ptimer_read(local_104);" (statement_identifier "LAB_00051080") (: ":") (expression_statement "uVar26 = ptimer_read(local_104);" (assignment_expression "uVar26 = ptimer_read(local_104)" (identifier "uVar26") (= "=") (call_expression "ptimer_read(local_104)" (identifier "ptimer_read") (argument_list "(local_104)" (( "(") (identifier "local_104") () ")")))) (; ";"))) (expression_statement "*param_11 = uVar26;" (assignment_expression "*param_11 = uVar26" (pointer_expression "*param_11" (* "*") (identifier "param_11")) (= "=") (identifier "uVar26")) (; ";")) (} "}")))) (if_statement "if (local_104 != (undefined8 *)0x0) {\n    ptimer_destroy(local_104);\n  }" (if "if") (parenthesized_expression "(local_104 != (undefined8 *)0x0)" (( "(") (binary_expression "local_104 != (undefined8 *)0x0" (identifier "local_104") (!= "!=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    ptimer_destroy(local_104);\n  }" ({ "{") (expression_statement "ptimer_destroy(local_104);" (call_expression "ptimer_destroy(local_104)" (identifier "ptimer_destroy") (argument_list "(local_104)" (( "(") (identifier "local_104") () ")"))) (; ";")) (} "}"))) (labeled_statement "LAB_000510b8:\n  if (local_100 != (undefined8 *)0x0) {\n    puVar9 = (undefined8 *)(*(code *)PTR_inflateEnd_000b7e58)(&local_94);\n    if ((-1 < (int)puVar20) && (puVar20 = puVar9, puVar9 != (undefined8 *)0x0)) {\n      puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)(local_100);\n      *puVar10 = 0x16;\n      puVar20 = (undefined8 *)0xffffffff;\n    }\n    (*(code *)PTR_free_000b7d34)(local_100);\n    puVar9 = local_8c;\n    if (((iVar6 != 0) || (local_8c != local_fc)) &&\n       (dVar30 = (double)CONCAT44(iVar6,SUB84(dVar30,0)), PTR_opt_000b746c[0x16b] != '\0')) {\n      iVar7 = iVar6;\n      puVar9 = local_fc;\n      debug_logprintf(PTR_DAT_000b758c + -0x180c);\n      dVar30 = (double)CONCAT44(iVar7,puVar9);\n      puVar9 = local_8c;\n    }\n  }" (statement_identifier "LAB_000510b8") (: ":") (if_statement "if (local_100 != (undefined8 *)0x0) {\n    puVar9 = (undefined8 *)(*(code *)PTR_inflateEnd_000b7e58)(&local_94);\n    if ((-1 < (int)puVar20) && (puVar20 = puVar9, puVar9 != (undefined8 *)0x0)) {\n      puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)(local_100);\n      *puVar10 = 0x16;\n      puVar20 = (undefined8 *)0xffffffff;\n    }\n    (*(code *)PTR_free_000b7d34)(local_100);\n    puVar9 = local_8c;\n    if (((iVar6 != 0) || (local_8c != local_fc)) &&\n       (dVar30 = (double)CONCAT44(iVar6,SUB84(dVar30,0)), PTR_opt_000b746c[0x16b] != '\0')) {\n      iVar7 = iVar6;\n      puVar9 = local_fc;\n      debug_logprintf(PTR_DAT_000b758c + -0x180c);\n      dVar30 = (double)CONCAT44(iVar7,puVar9);\n      puVar9 = local_8c;\n    }\n  }" (if "if") (parenthesized_expression "(local_100 != (undefined8 *)0x0)" (( "(") (binary_expression "local_100 != (undefined8 *)0x0" (identifier "local_100") (!= "!=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    puVar9 = (undefined8 *)(*(code *)PTR_inflateEnd_000b7e58)(&local_94);\n    if ((-1 < (int)puVar20) && (puVar20 = puVar9, puVar9 != (undefined8 *)0x0)) {\n      puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)(local_100);\n      *puVar10 = 0x16;\n      puVar20 = (undefined8 *)0xffffffff;\n    }\n    (*(code *)PTR_free_000b7d34)(local_100);\n    puVar9 = local_8c;\n    if (((iVar6 != 0) || (local_8c != local_fc)) &&\n       (dVar30 = (double)CONCAT44(iVar6,SUB84(dVar30,0)), PTR_opt_000b746c[0x16b] != '\0')) {\n      iVar7 = iVar6;\n      puVar9 = local_fc;\n      debug_logprintf(PTR_DAT_000b758c + -0x180c);\n      dVar30 = (double)CONCAT44(iVar7,puVar9);\n      puVar9 = local_8c;\n    }\n  }" ({ "{") (expression_statement "puVar9 = (undefined8 *)(*(code *)PTR_inflateEnd_000b7e58)(&local_94);" (assignment_expression "puVar9 = (undefined8 *)(*(code *)PTR_inflateEnd_000b7e58)(&local_94)" (identifier "puVar9") (= "=") (cast_expression "(undefined8 *)(*(code *)PTR_inflateEnd_000b7e58)(&local_94)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_inflateEnd_000b7e58)(&local_94)" (parenthesized_expression "(*(code *)PTR_inflateEnd_000b7e58)" (( "(") (pointer_expression "*(code *)PTR_inflateEnd_000b7e58" (* "*") (cast_expression "(code *)PTR_inflateEnd_000b7e58" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_inflateEnd_000b7e58"))) () ")")) (argument_list "(&local_94)" (( "(") (pointer_expression "&local_94" (& "&") (identifier "local_94")) () ")"))))) (; ";")) (if_statement "if ((-1 < (int)puVar20) && (puVar20 = puVar9, puVar9 != (undefined8 *)0x0)) {\n      puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)(local_100);\n      *puVar10 = 0x16;\n      puVar20 = (undefined8 *)0xffffffff;\n    }" (if "if") (parenthesized_expression "((-1 < (int)puVar20) && (puVar20 = puVar9, puVar9 != (undefined8 *)0x0))" (( "(") (binary_expression "(-1 < (int)puVar20) && (puVar20 = puVar9, puVar9 != (undefined8 *)0x0)" (parenthesized_expression "(-1 < (int)puVar20)" (( "(") (binary_expression "-1 < (int)puVar20" (number_literal "-1") (< "<") (cast_expression "(int)puVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar20"))) () ")")) (&& "&&") (parenthesized_expression "(puVar20 = puVar9, puVar9 != (undefined8 *)0x0)" (( "(") (comma_expression "puVar20 = puVar9, puVar9 != (undefined8 *)0x0" (assignment_expression "puVar20 = puVar9" (identifier "puVar20") (= "=") (identifier "puVar9")) (, ",") (binary_expression "puVar9 != (undefined8 *)0x0" (identifier "puVar9") (!= "!=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (compound_statement "{\n      puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)(local_100);\n      *puVar10 = 0x16;\n      puVar20 = (undefined8 *)0xffffffff;\n    }" ({ "{") (expression_statement "puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)(local_100);" (assignment_expression "puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)(local_100)" (identifier "puVar10") (= "=") (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_000b7eb8)(local_100)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___errno_location_000b7eb8)(local_100)" (parenthesized_expression "(*(code *)PTR___errno_location_000b7eb8)" (( "(") (pointer_expression "*(code *)PTR___errno_location_000b7eb8" (* "*") (cast_expression "(code *)PTR___errno_location_000b7eb8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___errno_location_000b7eb8"))) () ")")) (argument_list "(local_100)" (( "(") (identifier "local_100") () ")"))))) (; ";")) (expression_statement "*puVar10 = 0x16;" (assignment_expression "*puVar10 = 0x16" (pointer_expression "*puVar10" (* "*") (identifier "puVar10")) (= "=") (number_literal "0x16")) (; ";")) (expression_statement "puVar20 = (undefined8 *)0xffffffff;" (assignment_expression "puVar20 = (undefined8 *)0xffffffff" (identifier "puVar20") (= "=") (cast_expression "(undefined8 *)0xffffffff" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) (; ";")) (} "}"))) (expression_statement "(*(code *)PTR_free_000b7d34)(local_100);" (call_expression "(*(code *)PTR_free_000b7d34)(local_100)" (parenthesized_expression "(*(code *)PTR_free_000b7d34)" (( "(") (pointer_expression "*(code *)PTR_free_000b7d34" (* "*") (cast_expression "(code *)PTR_free_000b7d34" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_000b7d34"))) () ")")) (argument_list "(local_100)" (( "(") (identifier "local_100") () ")"))) (; ";")) (expression_statement "puVar9 = local_8c;" (assignment_expression "puVar9 = local_8c" (identifier "puVar9") (= "=") (identifier "local_8c")) (; ";")) (if_statement "if (((iVar6 != 0) || (local_8c != local_fc)) &&\n       (dVar30 = (double)CONCAT44(iVar6,SUB84(dVar30,0)), PTR_opt_000b746c[0x16b] != '\0')) {\n      iVar7 = iVar6;\n      puVar9 = local_fc;\n      debug_logprintf(PTR_DAT_000b758c + -0x180c);\n      dVar30 = (double)CONCAT44(iVar7,puVar9);\n      puVar9 = local_8c;\n    }" (if "if") (parenthesized_expression "(((iVar6 != 0) || (local_8c != local_fc)) &&\n       (dVar30 = (double)CONCAT44(iVar6,SUB84(dVar30,0)), PTR_opt_000b746c[0x16b] != '\0'))" (( "(") (binary_expression "((iVar6 != 0) || (local_8c != local_fc)) &&\n       (dVar30 = (double)CONCAT44(iVar6,SUB84(dVar30,0)), PTR_opt_000b746c[0x16b] != '\0')" (parenthesized_expression "((iVar6 != 0) || (local_8c != local_fc))" (( "(") (binary_expression "(iVar6 != 0) || (local_8c != local_fc)" (parenthesized_expression "(iVar6 != 0)" (( "(") (binary_expression "iVar6 != 0" (identifier "iVar6") (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(local_8c != local_fc)" (( "(") (binary_expression "local_8c != local_fc" (identifier "local_8c") (!= "!=") (identifier "local_fc")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(dVar30 = (double)CONCAT44(iVar6,SUB84(dVar30,0)), PTR_opt_000b746c[0x16b] != '\0')" (( "(") (comma_expression "dVar30 = (double)CONCAT44(iVar6,SUB84(dVar30,0)), PTR_opt_000b746c[0x16b] != '\0'" (assignment_expression "dVar30 = (double)CONCAT44(iVar6,SUB84(dVar30,0))" (identifier "dVar30") (= "=") (cast_expression "(double)CONCAT44(iVar6,SUB84(dVar30,0))" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "CONCAT44(iVar6,SUB84(dVar30,0))" (identifier "CONCAT44") (argument_list "(iVar6,SUB84(dVar30,0))" (( "(") (identifier "iVar6") (, ",") (call_expression "SUB84(dVar30,0)" (identifier "SUB84") (argument_list "(dVar30,0)" (( "(") (identifier "dVar30") (, ",") (number_literal "0") () ")"))) () ")"))))) (, ",") (binary_expression "PTR_opt_000b746c[0x16b] != '\0'" (subscript_expression "PTR_opt_000b746c[0x16b]" (identifier "PTR_opt_000b746c") ([ "[") (number_literal "0x16b") (] "]")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) () ")"))) () ")")) (compound_statement "{\n      iVar7 = iVar6;\n      puVar9 = local_fc;\n      debug_logprintf(PTR_DAT_000b758c + -0x180c);\n      dVar30 = (double)CONCAT44(iVar7,puVar9);\n      puVar9 = local_8c;\n    }" ({ "{") (expression_statement "iVar7 = iVar6;" (assignment_expression "iVar7 = iVar6" (identifier "iVar7") (= "=") (identifier "iVar6")) (; ";")) (expression_statement "puVar9 = local_fc;" (assignment_expression "puVar9 = local_fc" (identifier "puVar9") (= "=") (identifier "local_fc")) (; ";")) (expression_statement "debug_logprintf(PTR_DAT_000b758c + -0x180c);" (call_expression "debug_logprintf(PTR_DAT_000b758c + -0x180c)" (identifier "debug_logprintf") (argument_list "(PTR_DAT_000b758c + -0x180c)" (( "(") (binary_expression "PTR_DAT_000b758c + -0x180c" (identifier "PTR_DAT_000b758c") (+ "+") (number_literal "-0x180c")) () ")"))) (; ";")) (expression_statement "dVar30 = (double)CONCAT44(iVar7,puVar9);" (assignment_expression "dVar30 = (double)CONCAT44(iVar7,puVar9)" (identifier "dVar30") (= "=") (cast_expression "(double)CONCAT44(iVar7,puVar9)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "CONCAT44(iVar7,puVar9)" (identifier "CONCAT44") (argument_list "(iVar7,puVar9)" (( "(") (identifier "iVar7") (, ",") (identifier "puVar9") () ")"))))) (; ";")) (expression_statement "puVar9 = local_8c;" (assignment_expression "puVar9 = local_8c" (identifier "puVar9") (= "=") (identifier "local_8c")) (; ";")) (} "}"))) (} "}")))) (if_statement "if (param_9 != (int *)0x0) {\n    puVar16 = (undefined1 *)param_9[1] + (int)local_fc;\n    *param_9 = (uint)(puVar16 < (undefined1 *)param_9[1]) + *param_9 + iVar6;\n    param_9[1] = (int)puVar16;\n  }" (if "if") (parenthesized_expression "(param_9 != (int *)0x0)" (( "(") (binary_expression "param_9 != (int *)0x0" (identifier "param_9") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    puVar16 = (undefined1 *)param_9[1] + (int)local_fc;\n    *param_9 = (uint)(puVar16 < (undefined1 *)param_9[1]) + *param_9 + iVar6;\n    param_9[1] = (int)puVar16;\n  }" ({ "{") (expression_statement "puVar16 = (undefined1 *)param_9[1] + (int)local_fc;" (assignment_expression "puVar16 = (undefined1 *)param_9[1] + (int)local_fc" (identifier "puVar16") (= "=") (binary_expression "(undefined1 *)param_9[1] + (int)local_fc" (cast_expression "(undefined1 *)param_9[1]" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_9[1]" (identifier "param_9") ([ "[") (number_literal "1") (] "]"))) (+ "+") (cast_expression "(int)local_fc" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_fc")))) (; ";")) (expression_statement "*param_9 = (uint)(puVar16 < (undefined1 *)param_9[1]) + *param_9 + iVar6;" (assignment_expression "*param_9 = (uint)(puVar16 < (undefined1 *)param_9[1]) + *param_9 + iVar6" (pointer_expression "*param_9" (* "*") (identifier "param_9")) (= "=") (binary_expression "(uint)(puVar16 < (undefined1 *)param_9[1]) + *param_9 + iVar6" (binary_expression "(uint)(puVar16 < (undefined1 *)param_9[1]) + *param_9" (call_expression "(uint)(puVar16 < (undefined1 *)param_9[1])" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(puVar16 < (undefined1 *)param_9[1])" (( "(") (binary_expression "puVar16 < (undefined1 *)param_9[1]" (identifier "puVar16") (< "<") (cast_expression "(undefined1 *)param_9[1]" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_9[1]" (identifier "param_9") ([ "[") (number_literal "1") (] "]")))) () ")"))) (+ "+") (pointer_expression "*param_9" (* "*") (identifier "param_9"))) (+ "+") (identifier "iVar6"))) (; ";")) (expression_statement "param_9[1] = (int)puVar16;" (assignment_expression "param_9[1] = (int)puVar16" (subscript_expression "param_9[1]" (identifier "param_9") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(int)puVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar16"))) (; ";")) (} "}"))) (if_statement "if (param_10 != (int *)0x0) {\n    uVar5 = param_10[1] + local_9c;\n    *param_10 = (int)((int)local_a0 + (uint)(uVar5 < (uint)param_10[1]) + *param_10);\n    param_10[1] = uVar5;\n    puVar9 = local_a0;\n  }" (if "if") (parenthesized_expression "(param_10 != (int *)0x0)" (( "(") (binary_expression "param_10 != (int *)0x0" (identifier "param_10") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    uVar5 = param_10[1] + local_9c;\n    *param_10 = (int)((int)local_a0 + (uint)(uVar5 < (uint)param_10[1]) + *param_10);\n    param_10[1] = uVar5;\n    puVar9 = local_a0;\n  }" ({ "{") (expression_statement "uVar5 = param_10[1] + local_9c;" (assignment_expression "uVar5 = param_10[1] + local_9c" (identifier "uVar5") (= "=") (binary_expression "param_10[1] + local_9c" (subscript_expression "param_10[1]" (identifier "param_10") ([ "[") (number_literal "1") (] "]")) (+ "+") (identifier "local_9c"))) (; ";")) (expression_statement "*param_10 = (int)((int)local_a0 + (uint)(uVar5 < (uint)param_10[1]) + *param_10);" (assignment_expression "*param_10 = (int)((int)local_a0 + (uint)(uVar5 < (uint)param_10[1]) + *param_10)" (pointer_expression "*param_10" (* "*") (identifier "param_10")) (= "=") (cast_expression "(int)((int)local_a0 + (uint)(uVar5 < (uint)param_10[1]) + *param_10)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((int)local_a0 + (uint)(uVar5 < (uint)param_10[1]) + *param_10)" (( "(") (binary_expression "(int)local_a0 + (uint)(uVar5 < (uint)param_10[1]) + *param_10" (binary_expression "(int)local_a0 + (uint)(uVar5 < (uint)param_10[1])" (cast_expression "(int)local_a0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a0")) (+ "+") (call_expression "(uint)(uVar5 < (uint)param_10[1])" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar5 < (uint)param_10[1])" (( "(") (binary_expression "uVar5 < (uint)param_10[1]" (identifier "uVar5") (< "<") (cast_expression "(uint)param_10[1]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "param_10[1]" (identifier "param_10") ([ "[") (number_literal "1") (] "]")))) () ")")))) (+ "+") (pointer_expression "*param_10" (* "*") (identifier "param_10"))) () ")")))) (; ";")) (expression_statement "param_10[1] = uVar5;" (assignment_expression "param_10[1] = uVar5" (subscript_expression "param_10[1]" (identifier "param_10") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar5")) (; ";")) (expression_statement "puVar9 = local_a0;" (assignment_expression "puVar9 = local_a0" (identifier "puVar9") (= "=") (identifier "local_a0")) (; ";")) (} "}"))) (expression_statement "(*(code *)PTR_free_000b7d34)(puVar4);" (call_expression "(*(code *)PTR_free_000b7d34)(puVar4)" (parenthesized_expression "(*(code *)PTR_free_000b7d34)" (( "(") (pointer_expression "*(code *)PTR_free_000b7d34" (* "*") (cast_expression "(code *)PTR_free_000b7d34" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_000b7d34"))) () ")")) (argument_list "(puVar4)" (( "(") (identifier "puVar4") () ")"))) (; ";")) (if_statement "if (local_5c == *(int *)PTR___stack_chk_guard_000b7c68) {\n    return puVar20;\n  }" (if "if") (parenthesized_expression "(local_5c == *(int *)PTR___stack_chk_guard_000b7c68)" (( "(") (binary_expression "local_5c == *(int *)PTR___stack_chk_guard_000b7c68" (identifier "local_5c") (== "==") (pointer_expression "*(int *)PTR___stack_chk_guard_000b7c68" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_000b7c68" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_000b7c68")))) () ")")) (compound_statement "{\n    return puVar20;\n  }" ({ "{") (return_statement "return puVar20;" (return "return") (identifier "puVar20") (; ";")) (} "}"))) (expression_statement "iVar6 = local_5c;" (assignment_expression "iVar6 = local_5c" (identifier "iVar6") (= "=") (identifier "local_5c")) (; ";")) (expression_statement "puVar21 = PTR___stack_chk_fail_000b7bfc;" (assignment_expression "puVar21 = PTR___stack_chk_fail_000b7bfc" (identifier "puVar21") (= "=") (identifier "PTR___stack_chk_fail_000b7bfc")) (; ";")) (expression_statement "(*(code *)PTR___stack_chk_fail_000b7bfc)();" (call_expression "(*(code *)PTR___stack_chk_fail_000b7bfc)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000b7bfc)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_000b7bfc" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_000b7bfc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_000b7bfc"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (*(char *)(*(int *)(puVar21 + 0x65acc) + 0x223) == '\0') {\n    dVar25 = *(double *)(*(int *)(puVar21 + 0x65bec) + -0x6f98);\n  }\n  else {\n    dVar25 = *(double *)(*(int *)(puVar21 + 0x65bec) + -0x15d8);\n  }" (if "if") (parenthesized_expression "(*(char *)(*(int *)(puVar21 + 0x65acc) + 0x223) == '\0')" (( "(") (binary_expression "*(char *)(*(int *)(puVar21 + 0x65acc) + 0x223) == '\0'" (pointer_expression "*(char *)(*(int *)(puVar21 + 0x65acc) + 0x223)" (* "*") (cast_expression "(char *)(*(int *)(puVar21 + 0x65acc) + 0x223)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar21 + 0x65acc) + 0x223)" (( "(") (binary_expression "*(int *)(puVar21 + 0x65acc) + 0x223" (pointer_expression "*(int *)(puVar21 + 0x65acc)" (* "*") (cast_expression "(int *)(puVar21 + 0x65acc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + 0x65acc)" (( "(") (binary_expression "puVar21 + 0x65acc" (identifier "puVar21") (+ "+") (number_literal "0x65acc")) () ")")))) (+ "+") (number_literal "0x223")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    dVar25 = *(double *)(*(int *)(puVar21 + 0x65bec) + -0x6f98);\n  }" ({ "{") (expression_statement "dVar25 = *(double *)(*(int *)(puVar21 + 0x65bec) + -0x6f98);" (assignment_expression "dVar25 = *(double *)(*(int *)(puVar21 + 0x65bec) + -0x6f98)" (identifier "dVar25") (= "=") (pointer_expression "*(double *)(*(int *)(puVar21 + 0x65bec) + -0x6f98)" (* "*") (cast_expression "(double *)(*(int *)(puVar21 + 0x65bec) + -0x6f98)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar21 + 0x65bec) + -0x6f98)" (( "(") (binary_expression "*(int *)(puVar21 + 0x65bec) + -0x6f98" (pointer_expression "*(int *)(puVar21 + 0x65bec)" (* "*") (cast_expression "(int *)(puVar21 + 0x65bec)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + 0x65bec)" (( "(") (binary_expression "puVar21 + 0x65bec" (identifier "puVar21") (+ "+") (number_literal "0x65bec")) () ")")))) (+ "+") (number_literal "-0x6f98")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n    dVar25 = *(double *)(*(int *)(puVar21 + 0x65bec) + -0x15d8);\n  }" (else "else") (compound_statement "{\n    dVar25 = *(double *)(*(int *)(puVar21 + 0x65bec) + -0x15d8);\n  }" ({ "{") (expression_statement "dVar25 = *(double *)(*(int *)(puVar21 + 0x65bec) + -0x15d8);" (assignment_expression "dVar25 = *(double *)(*(int *)(puVar21 + 0x65bec) + -0x15d8)" (identifier "dVar25") (= "=") (pointer_expression "*(double *)(*(int *)(puVar21 + 0x65bec) + -0x15d8)" (* "*") (cast_expression "(double *)(*(int *)(puVar21 + 0x65bec) + -0x15d8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar21 + 0x65bec) + -0x15d8)" (( "(") (binary_expression "*(int *)(puVar21 + 0x65bec) + -0x15d8" (pointer_expression "*(int *)(puVar21 + 0x65bec)" (* "*") (cast_expression "(int *)(puVar21 + 0x65bec)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + 0x65bec)" (( "(") (binary_expression "puVar21 + 0x65bec" (identifier "puVar21") (+ "+") (number_literal "0x65bec")) () ")")))) (+ "+") (number_literal "-0x15d8")) () ")"))))) (; ";")) (} "}")))) (if_statement "if (dVar30 == 0.0) {\n    dVar30 = (double)ptimer_resolution();\n    dVar30 = dVar30 * *(double *)(*(int *)(puVar21 + 0x65bec) + -0x2580);\n  }" (if "if") (parenthesized_expression "(dVar30 == 0.0)" (( "(") (binary_expression "dVar30 == 0.0" (identifier "dVar30") (== "==") (number_literal "0.0")) () ")")) (compound_statement "{\n    dVar30 = (double)ptimer_resolution();\n    dVar30 = dVar30 * *(double *)(*(int *)(puVar21 + 0x65bec) + -0x2580);\n  }" ({ "{") (expression_statement "dVar30 = (double)ptimer_resolution();" (assignment_expression "dVar30 = (double)ptimer_resolution()" (identifier "dVar30") (= "=") (cast_expression "(double)ptimer_resolution()" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "ptimer_resolution()" (identifier "ptimer_resolution") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "dVar30 = dVar30 * *(double *)(*(int *)(puVar21 + 0x65bec) + -0x2580);" (assignment_expression "dVar30 = dVar30 * *(double *)(*(int *)(puVar21 + 0x65bec) + -0x2580)" (identifier "dVar30") (= "=") (binary_expression "dVar30 * *(double *)(*(int *)(puVar21 + 0x65bec) + -0x2580)" (identifier "dVar30") (* "*") (pointer_expression "*(double *)(*(int *)(puVar21 + 0x65bec) + -0x2580)" (* "*") (cast_expression "(double *)(*(int *)(puVar21 + 0x65bec) + -0x2580)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar21 + 0x65bec) + -0x2580)" (( "(") (binary_expression "*(int *)(puVar21 + 0x65bec) + -0x2580" (pointer_expression "*(int *)(puVar21 + 0x65bec)" (* "*") (cast_expression "(int *)(puVar21 + 0x65bec)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + 0x65bec)" (( "(") (binary_expression "puVar21 + 0x65bec" (identifier "puVar21") (+ "+") (number_literal "0x65bec")) () ")")))) (+ "+") (number_literal "-0x2580")) () ")")))))) (; ";")) (} "}"))) (expression_statement "uVar26 = convert_to_bits(iVar6,puVar9);" (assignment_expression "uVar26 = convert_to_bits(iVar6,puVar9)" (identifier "uVar26") (= "=") (call_expression "convert_to_bits(iVar6,puVar9)" (identifier "convert_to_bits") (argument_list "(iVar6,puVar9)" (( "(") (identifier "iVar6") (, ",") (identifier "puVar9") () ")")))) (; ";")) (expression_statement "dVar28 = (double)(**(code **)(puVar21 + 0x65f54))((int)((ulonglong)uVar26 >> 0x20),(int)uVar26);" (assignment_expression "dVar28 = (double)(**(code **)(puVar21 + 0x65f54))((int)((ulonglong)uVar26 >> 0x20),(int)uVar26)" (identifier "dVar28") (= "=") (cast_expression "(double)(**(code **)(puVar21 + 0x65f54))((int)((ulonglong)uVar26 >> 0x20),(int)uVar26)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "(**(code **)(puVar21 + 0x65f54))((int)((ulonglong)uVar26 >> 0x20),(int)uVar26)" (parenthesized_expression "(**(code **)(puVar21 + 0x65f54))" (( "(") (pointer_expression "**(code **)(puVar21 + 0x65f54)" (* "*") (pointer_expression "*(code **)(puVar21 + 0x65f54)" (* "*") (cast_expression "(code **)(puVar21 + 0x65f54)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar21 + 0x65f54)" (( "(") (binary_expression "puVar21 + 0x65f54" (identifier "puVar21") (+ "+") (number_literal "0x65f54")) () ")"))))) () ")")) (argument_list "((int)((ulonglong)uVar26 >> 0x20),(int)uVar26)" (( "(") (cast_expression "(int)((ulonglong)uVar26 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)uVar26 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar26 >> 0x20" (cast_expression "(ulonglong)uVar26" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar26")) (>> ">>") (number_literal "0x20")) () ")"))) (, ",") (cast_expression "(int)uVar26" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar26")) () ")"))))) (; ";")) (expression_statement "dVar28 = dVar28 / dVar30;" (assignment_expression "dVar28 = dVar28 / dVar30" (identifier "dVar28") (= "=") (binary_expression "dVar28 / dVar30" (identifier "dVar28") (/ "/") (identifier "dVar30"))) (; ";")) (if_statement "if (dVar28 < dVar25) {\n    *(undefined4 *)local_120._0_4_ = 0;\n  }\n  else if (dVar28 < dVar25 * dVar25) {\n    *(undefined4 *)local_120._0_4_ = 1;\n    local_120._0_4_ = (undefined8 *)&DAT_00000001;\n  }\n  else if (dVar28 < dVar25 * dVar25 * dVar25) {\n    *(undefined4 *)local_120._0_4_ = 2;\n    local_120._0_4_ = (undefined8 *)0x2;\n  }\n  else {\n    *(undefined4 *)local_120._0_4_ = 3;\n    local_120._0_4_ = (undefined8 *)0x3;\n  }" (if "if") (parenthesized_expression "(dVar28 < dVar25)" (( "(") (binary_expression "dVar28 < dVar25" (identifier "dVar28") (< "<") (identifier "dVar25")) () ")")) (compound_statement "{\n    *(undefined4 *)local_120._0_4_ = 0;\n  }" ({ "{") (expression_statement "*(undefined4 *)local_120._0_4_ = 0;" (assignment_expression "*(undefined4 *)local_120._0_4_ = 0" (pointer_expression "*(undefined4 *)local_120._0_4_" (* "*") (cast_expression "(undefined4 *)local_120._0_4_" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (field_expression "local_120._0_4_" (identifier "local_120") (. ".") (field_identifier "_0_4_")))) (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else if (dVar28 < dVar25 * dVar25) {\n    *(undefined4 *)local_120._0_4_ = 1;\n    local_120._0_4_ = (undefined8 *)&DAT_00000001;\n  }\n  else if (dVar28 < dVar25 * dVar25 * dVar25) {\n    *(undefined4 *)local_120._0_4_ = 2;\n    local_120._0_4_ = (undefined8 *)0x2;\n  }\n  else {\n    *(undefined4 *)local_120._0_4_ = 3;\n    local_120._0_4_ = (undefined8 *)0x3;\n  }" (else "else") (if_statement "if (dVar28 < dVar25 * dVar25) {\n    *(undefined4 *)local_120._0_4_ = 1;\n    local_120._0_4_ = (undefined8 *)&DAT_00000001;\n  }\n  else if (dVar28 < dVar25 * dVar25 * dVar25) {\n    *(undefined4 *)local_120._0_4_ = 2;\n    local_120._0_4_ = (undefined8 *)0x2;\n  }\n  else {\n    *(undefined4 *)local_120._0_4_ = 3;\n    local_120._0_4_ = (undefined8 *)0x3;\n  }" (if "if") (parenthesized_expression "(dVar28 < dVar25 * dVar25)" (( "(") (binary_expression "dVar28 < dVar25 * dVar25" (identifier "dVar28") (< "<") (binary_expression "dVar25 * dVar25" (identifier "dVar25") (* "*") (identifier "dVar25"))) () ")")) (compound_statement "{\n    *(undefined4 *)local_120._0_4_ = 1;\n    local_120._0_4_ = (undefined8 *)&DAT_00000001;\n  }" ({ "{") (expression_statement "*(undefined4 *)local_120._0_4_ = 1;" (assignment_expression "*(undefined4 *)local_120._0_4_ = 1" (pointer_expression "*(undefined4 *)local_120._0_4_" (* "*") (cast_expression "(undefined4 *)local_120._0_4_" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (field_expression "local_120._0_4_" (identifier "local_120") (. ".") (field_identifier "_0_4_")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "local_120._0_4_ = (undefined8 *)&DAT_00000001;" (assignment_expression "local_120._0_4_ = (undefined8 *)&DAT_00000001" (field_expression "local_120._0_4_" (identifier "local_120") (. ".") (field_identifier "_0_4_")) (= "=") (cast_expression "(undefined8 *)&DAT_00000001" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&DAT_00000001" (& "&") (identifier "DAT_00000001")))) (; ";")) (} "}")) (else_clause "else if (dVar28 < dVar25 * dVar25 * dVar25) {\n    *(undefined4 *)local_120._0_4_ = 2;\n    local_120._0_4_ = (undefined8 *)0x2;\n  }\n  else {\n    *(undefined4 *)local_120._0_4_ = 3;\n    local_120._0_4_ = (undefined8 *)0x3;\n  }" (else "else") (if_statement "if (dVar28 < dVar25 * dVar25 * dVar25) {\n    *(undefined4 *)local_120._0_4_ = 2;\n    local_120._0_4_ = (undefined8 *)0x2;\n  }\n  else {\n    *(undefined4 *)local_120._0_4_ = 3;\n    local_120._0_4_ = (undefined8 *)0x3;\n  }" (if "if") (parenthesized_expression "(dVar28 < dVar25 * dVar25 * dVar25)" (( "(") (binary_expression "dVar28 < dVar25 * dVar25 * dVar25" (identifier "dVar28") (< "<") (binary_expression "dVar25 * dVar25 * dVar25" (binary_expression "dVar25 * dVar25" (identifier "dVar25") (* "*") (identifier "dVar25")) (* "*") (identifier "dVar25"))) () ")")) (compound_statement "{\n    *(undefined4 *)local_120._0_4_ = 2;\n    local_120._0_4_ = (undefined8 *)0x2;\n  }" ({ "{") (expression_statement "*(undefined4 *)local_120._0_4_ = 2;" (assignment_expression "*(undefined4 *)local_120._0_4_ = 2" (pointer_expression "*(undefined4 *)local_120._0_4_" (* "*") (cast_expression "(undefined4 *)local_120._0_4_" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (field_expression "local_120._0_4_" (identifier "local_120") (. ".") (field_identifier "_0_4_")))) (= "=") (number_literal "2")) (; ";")) (expression_statement "local_120._0_4_ = (undefined8 *)0x2;" (assignment_expression "local_120._0_4_ = (undefined8 *)0x2" (field_expression "local_120._0_4_" (identifier "local_120") (. ".") (field_identifier "_0_4_")) (= "=") (cast_expression "(undefined8 *)0x2" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x2"))) (; ";")) (} "}")) (else_clause "else {\n    *(undefined4 *)local_120._0_4_ = 3;\n    local_120._0_4_ = (undefined8 *)0x3;\n  }" (else "else") (compound_statement "{\n    *(undefined4 *)local_120._0_4_ = 3;\n    local_120._0_4_ = (undefined8 *)0x3;\n  }" ({ "{") (expression_statement "*(undefined4 *)local_120._0_4_ = 3;" (assignment_expression "*(undefined4 *)local_120._0_4_ = 3" (pointer_expression "*(undefined4 *)local_120._0_4_" (* "*") (cast_expression "(undefined4 *)local_120._0_4_" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (field_expression "local_120._0_4_" (identifier "local_120") (. ".") (field_identifier "_0_4_")))) (= "=") (number_literal "3")) (; ";")) (expression_statement "local_120._0_4_ = (undefined8 *)0x3;" (assignment_expression "local_120._0_4_ = (undefined8 *)0x3" (field_expression "local_120._0_4_" (identifier "local_120") (. ".") (field_identifier "_0_4_")) (= "=") (cast_expression "(undefined8 *)0x3" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x3"))) (; ";")) (} "}")))))))) (return_statement "return local_120._0_4_;" (return "return") (field_expression "local_120._0_4_" (identifier "local_120") (. ".") (field_identifier "_0_4_")) (; ";")) (} "}")))
(translation_unit (function_definition type: (type_identifier) declarator: (pointer_declarator declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier)))))) body: (compound_statement (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: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) 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: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (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: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (labeled_statement label: (statement_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: (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (field_expression argument: (identifier) field: (field_identifier))) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (binary_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (identifier))))) right: (identifier)) (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (if_statement condition: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier)))) alternative: (else_clause (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (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: (identifier) right: (number_literal))))) 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: (identifier) right: (number_literal))))) 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: (identifier) right: (number_literal))))) 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: (identifier) right: (number_literal))))) 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: (identifier) right: (number_literal))))) 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: (identifier) right: (number_literal))))) right: (number_literal)))))) (labeled_statement label: (statement_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)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)) right: (identifier)))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (field_expression argument: (identifier) field: (field_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (break_statement)) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (parenthesized_expression (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) right: (binary_expression left: (identifier) right: (identifier)))))))))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (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: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier))))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (identifier) arguments: (argument_list (identifier))))))) (labeled_statement label: (statement_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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (identifier)))) right: (identifier)) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (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: (identifier) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) consequence: (goto_statement label: (statement_identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (field_expression argument: (identifier) field: (field_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (pointer_expression argument: (identifier)) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (field_expression argument: (identifier) field: (field_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (goto_statement label: (statement_identifier))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence))))))))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier))))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal)))))) (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: (number_literal) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (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: (identifier) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) consequence: (goto_statement label: (statement_identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (number_literal)))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier)))))))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (goto_statement label: (statement_identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))))))) (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: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (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: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) 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: (identifier)) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (goto_statement label: (statement_identifier))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (goto_statement label: (statement_identifier)))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))))) (if_statement condition: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (identifier)))) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (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)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (identifier))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (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: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (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: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_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: (primitive_type)) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (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: (identifier) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)))) alternative: (else_clause (compound_statement (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: (identifier) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (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: (identifier) right: (number_literal))))) 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: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (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: (identifier) right: (number_literal))))) right: (identifier)))))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (parenthesized_expression (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (identifier))))))))))) consequence: (goto_statement label: (statement_identifier))) (goto_statement label: (statement_identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (field_expression argument: (identifier) field: (field_identifier)))) (if_statement condition: (parenthesized_expression (unary_expression argument: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier)))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (number_literal) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_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: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_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: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (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: (goto_statement label: (statement_identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))) alternative: (else_clause (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: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (pointer_expression argument: (identifier)) (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (identifier) arguments: (argument_list (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 (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (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 (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (pointer_expression argument: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal))))))) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (identifier) arguments: (argument_list (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: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal)))))) right: (pointer_expression argument: (identifier))) right: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))))))) right: (pointer_expression argument: (identifier))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) consequence: (compound_statement (return_statement (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (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: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (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)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (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)))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (identifier) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (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)))))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (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)))) (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (field_expression argument: (identifier) field: (field_identifier)))) right: (number_literal)))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (field_expression argument: (identifier) field: (field_identifier)))) right: (number_literal))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier)))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (field_expression argument: (identifier) field: (field_identifier)))) right: (number_literal))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (field_expression argument: (identifier) field: (field_identifier)))) right: (number_literal))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))))))))) (return_statement (field_expression argument: (identifier) field: (field_identifier))))))

/* WARNING: Type propagation algorithm not settling */

undefined8 *
MASKED(int param_1,undefined8 *param_2,undefined *param_3,undefined1 *param_4,int param_5,
            undefined8 *param_6,undefined *param_7,undefined1 *param_8,int *param_9,int *param_10,
            undefined8 *param_11,uint param_12,undefined8 *param_13)

{
  bool bVar1;
  undefined *puVar2;
  undefined8 *puVar3;
  undefined8 *puVar4;
  uint uVar5;
  int iVar6;
  int iVar7;
  undefined4 uVar8;
  undefined8 *puVar9;
  undefined4 *puVar10;
  uint uVar11;
  undefined8 *puVar12;
  int iVar13;
  int *piVar14;
  undefined8 *puVar15;
  undefined1 *puVar16;
  int iVar17;
  undefined8 *puVar18;
  undefined4 uVar19;
  undefined8 *puVar20;
  undefined *puVar21;
  int iVar22;
  code *pcVar23;
  undefined8 *puVar24;
  double dVar25;
  undefined8 uVar26;
  double dVar27;
  double dVar28;
  double dVar29;
  double dVar30;
  double dVar31;
  double dVar32;
  double dVar33;
  double dVar34;
  undefined8 local_120;
  undefined8 *local_104;
  undefined8 *local_100;
  undefined8 *local_fc;
  undefined8 *local_f0;
  int local_e4;
  undefined8 *local_e0;
  undefined1 auStack_ac [8];
  undefined1 *local_a4;
  undefined8 *local_a0;
  int local_9c;
  undefined8 *local_94;
  undefined8 *local_90;
  undefined8 *local_8c;
  undefined8 *local_88;
  int local_84;
  undefined *local_74;
  undefined *local_70;
  undefined4 local_6c;
  int local_5c;
  
  local_5c = *(int *)PTR___stack_chk_guard_000b7c68;
  puVar9 = param_2;
  puVar21 = param_3;
  puVar4 = (undefined8 *)(*(code *)PTR_xmalloc_000b7480)(0x2000);
  uVar5 = param_12 & 4;
  local_a4 = (undefined1 *)0x0;
  auStack_ac._4_4_ = (undefined *)0x0;
  local_9c = 0;
  local_a0 = (undefined8 *)0x0;
  if ((param_12 & 8) == 0) {
    local_100 = (undefined8 *)0x0;
LAB_00050b74:
    if ((param_12 & 2) != 0) {
      auStack_ac._4_4_ = param_7;
      local_a4 = param_8;
    }
    if (*(int *)(PTR_opt_000b746c + 0x10c) == 0) {
      iVar7 = 0;
      if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {
        local_e4 = 0;
        goto LAB_00051950;
      }
      local_e4 = 0;
LAB_00051978:
      if (param_11 != (undefined8 *)0x0) goto LAB_00050c48;
      local_104 = param_11;
      local_e0 = (undefined8 *)0x2000;
    }
    else {
      param_4 = param_8;
      puVar21 = param_7;
      if ((undefined *)auStack_ac._4_4_ != (undefined *)0x0 || local_a4 != (undefined1 *)0x0) {
        puVar21 = (undefined *)0x0;
        param_4 = (undefined1 *)0x0;
      }
      if (*(int *)(PTR_opt_000b746c + 0x30) != 0) {
        iVar6 = (*(code *)PTR_strlen_000b7c94)();
        param_1 = param_1 + iVar6 + 1;
      }
      local_120 = (double)CONCAT44(puVar21 + (uint)(param_4 + (int)param_6 < param_4) + param_5,
                                   param_4 + (int)param_6);
      iVar7 = progress_create(param_1);
      local_e4 = progress_interactive_p(iVar7);
      if (*(int *)(PTR_opt_000b746c + 0x158) == 0 && *(int *)(PTR_opt_000b746c + 0x15c) == 0) {
        if (iVar7 == 0) goto LAB_00051978;
      }
      else {
LAB_00051950:
        puVar2 = PTR_DAT_000b7720;
        *(undefined4 *)(PTR_DAT_000b7720 + -0x2fe8) = 0;
        *(undefined4 *)(puVar2 + -0x2fe4) = 0;
        *(undefined4 *)(puVar2 + -0x2fe0) = 0;
        *(undefined4 *)(puVar2 + -0x2fdc) = 0;
        *(undefined4 *)(puVar2 + -0x2fd8) = 0;
        *(undefined4 *)(puVar2 + -0x2fd4) = 0;
      }
LAB_00050c48:
      local_104 = (undefined8 *)ptimer_new();
      iVar6 = *(int *)(PTR_opt_000b746c + 0x158);
      local_e0 = *(undefined8 **)(PTR_opt_000b746c + 0x15c);
      if (iVar6 == 0 && local_e0 == (undefined8 *)0x0) {
        local_e0 = (undefined8 *)0x2000;
      }
      else if ((0 < iVar6) || ((iVar6 == 0 && ((undefined8 *)0x1fff < local_e0)))) {
        local_e0 = (undefined8 *)0x2000;
      }
    }
    puVar2 = PTR_DAT_000b758c;
    dVar25 = (double)CONCAT44(puVar21,param_4);
    iVar22 = 0;
    local_f0 = (undefined8 *)0x0;
    iVar6 = 0;
    local_fc = (undefined8 *)0x0;
    dVar29 = 0.0;
    puVar24 = (undefined8 *)0x0;
    dVar32 = *(double *)(PTR_DAT_000b758c + -0x2340);
    dVar33 = *(double *)(PTR_DAT_000b758c + -0x2580);
    dVar34 = *(double *)(PTR_DAT_000b758c + -0x15d0);
    dVar28 = *(double *)(PTR_DAT_000b758c + -0x15d8);
    while( true ) {
      uVar8 = SUB84(dVar25,0);
      iVar17 = (int)local_e0 >> 0x1f;
      puVar20 = local_e0;
      puVar3 = local_120._0_4_;
      if ((param_12 & 1) == 0) break;
      if (param_5 <= iVar6) {
        if (param_5 != iVar6) goto LAB_000518d4;
        if (local_fc < param_6) goto LAB_000517b0;
        bVar1 = (int)puVar24 < 0;
        dVar30 = dVar25;
        goto LAB_000518d8;
      }
LAB_000517b0:
      dVar31 = *(double *)(PTR_opt_000b746c + 0x120);
      if (uVar5 != 0) goto LAB_00051820;
      puVar15 = (undefined8 *)((int)param_6 - (int)local_fc);
      iVar13 = (param_5 - iVar6) - (uint)(param_6 < puVar15);
      dVar25 = (double)CONCAT44(iVar13,uVar8);
      puVar9 = local_e0;
      if ((iVar17 < iVar13) ||
         ((dVar30 = (double)CONCAT44(iVar13,uVar8), iVar13 == iVar17 &&
          (dVar30 = (double)CONCAT44(iVar13,uVar8), local_e0 < puVar15)))) goto LAB_00051864;
LAB_00051868:
      puVar18 = SUB84(dVar30,0);
      if (local_e4 == 0) {
        puVar9 = puVar4;
        puVar24 = (undefined8 *)(*(code *)PTR_fd_read_000b7770)(param_2,puVar4);
        local_120 = dVar31;
LAB_000516fc:
        bVar1 = (int)puVar24 < 0;
        dVar30 = (double)CONCAT44(puVar15,puVar18);
        if ((int)puVar24 < 1) goto LAB_000518d8;
        if (iVar7 == 0) {
          if (*(int *)(PTR_opt_000b746c + 0x158) == 0 && *(int *)(PTR_opt_000b746c + 0x15c) == 0)
          goto LAB_00051720;
          ptimer_measure(local_104);
        }
        else {
          ptimer_measure(local_104);
        }
LAB_000515b0:
        dVar29 = (double)ptimer_read(local_104);
LAB_000515c4:
        puVar12 = (undefined8 *)((int)local_fc + (int)puVar24);
        iVar6 = (uint)(puVar12 < local_fc) + iVar6 + ((int)puVar24 >> 0x1f);
        puVar9 = param_13;
        puVar15 = puVar4;
        puVar18 = puVar24;
        local_fc = puVar12;
        if (local_100 == (undefined8 *)0x0) {
          local_120 = (double)(ZEXT48(auStack_ac + 4) << 0x20);
          puVar20 = (undefined8 *)FUN_000503a4(param_3,param_13);
          dVar30 = (double)CONCAT44(puVar15,puVar18);
          puVar3 = (undefined8 *)(auStack_ac + 4);
          if ((int)puVar20 < 0) goto LAB_00051040;
        }
        else {
          local_120 = 0.0;
          local_120._0_4_ = (undefined8 *)0x0;
          puVar20 = (undefined8 *)FUN_000503a4(0,param_13);
          dVar30 = (double)CONCAT44(puVar15,puVar18);
          puVar3 = local_120._0_4_;
          if ((int)puVar20 < 0) goto LAB_00051040;
          puVar21 = PTR_DAT_000b758c + -0x1898;
          pcVar23 = (code *)(PTR_LAB_000b78e4 + 0x3a4);
          local_94 = puVar4;
          local_90 = puVar24;
          do {
            local_84 = 0x8000;
            local_88 = local_100;
            puVar9 = (undefined8 *)0x0;
            iVar17 = (*(code *)PTR_inflate_000b7d40)(&local_94,0);
            puVar3 = local_120._0_4_;
            if (iVar17 == -3) {
LAB_000511f4:
              puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();
              dVar30 = (double)CONCAT44(puVar15,puVar18);
              *puVar10 = 0x16;
              puVar20 = (undefined8 *)0xffffffff;
              goto LAB_00051040;
            }
            if (iVar17 < -2) {
              if (iVar17 == -4) {
                puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();
                dVar30 = (double)CONCAT44(puVar15,puVar18);
                *puVar10 = 0xc;
                puVar20 = (undefined8 *)0xffffffff;
                goto LAB_00051040;
              }
            }
            else if (iVar17 == 1) {
              if (((param_12 & 1) != 0) &&
                 (((param_5 != iVar6 || (param_6 != puVar12)) && (PTR_opt_000b746c[0x16b] != '\0')))
                 ) {
                debug_logprintf(puVar21);
              }
            }
            else if (iVar17 == 2) goto LAB_000511f4;
            local_120 = (double)(ZEXT48(auStack_ac + 4) << 0x20);
            puVar18 = (undefined8 *)(0x8000 - local_84);
            puVar9 = (undefined8 *)0x0;
            puVar15 = local_100;
            puVar20 = (undefined8 *)(*pcVar23)(param_3,0);
            dVar30 = (double)CONCAT44(puVar15,puVar18);
            puVar3 = (undefined8 *)(auStack_ac + 4);
            if ((int)puVar20 < 0) goto LAB_00051040;
          } while (local_84 == 0);
        }
        dVar31 = local_120;
        if (uVar5 != 0) {
          puVar20 = (undefined8 *)((int)local_f0 - (int)puVar24);
          iVar22 = (iVar22 - ((int)puVar24 >> 0x1f)) - (uint)(local_f0 < puVar20);
          local_f0 = puVar20;
          if (iVar22 == 0 && puVar20 == (undefined8 *)0x0) {
            iVar17 = fd_read_line(param_2);
            dVar25 = (double)CONCAT44(puVar15,puVar18);
            if (iVar17 == 0) {
              puVar24 = (undefined8 *)0xffffffff;
              goto LAB_000518d4;
            }
            if (param_13 != (undefined8 *)0x0) {
              puVar15 = (undefined8 *)(*(code *)PTR_strlen_000b7c94)(iVar17);
              puVar9 = (undefined8 *)&DAT_00000001;
              puVar18 = param_13;
              (*(code *)PTR_fwrite_000b7c24)(iVar17,1);
            }
            (*(code *)PTR_free_000b7d34)(iVar17);
          }
        }
        goto LAB_00051748;
      }
      if (*(double *)(PTR_opt_000b746c + 0x120) == 0.0) {
        dVar31 = *(double *)(PTR_DAT_000b758c + -0x15e0);
      }
      else {
        dVar25 = (double)ptimer_read(local_104);
        puVar18 = SUB84(dVar30,0);
        if (*(double *)(PTR_opt_000b746c + 0x120) <
            (dVar25 - dVar29) + *(double *)(PTR_DAT_000b758c + -0x15e0)) {
          dVar31 = *(double *)(PTR_opt_000b746c + 0x120) - (dVar25 - dVar29);
          if (dVar31 < 0.0) {
            puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();
            *puVar10 = 0x91;
            puVar20 = (undefined8 *)0xffffffff;
            goto LAB_00051040;
          }
        }
        else {
          dVar31 = *(double *)(PTR_DAT_000b758c + -0x15e0);
        }
      }
      puVar9 = puVar4;
      puVar24 = (undefined8 *)(*(code *)PTR_fd_read_000b7770)(param_2,puVar4);
      local_120 = dVar31;
      if (-1 < (int)puVar24) goto LAB_000516fc;
      piVar14 = (int *)(*(code *)PTR___errno_location_000b7eb8)();
      dVar25 = (double)CONCAT44(puVar15,puVar18);
      local_120._0_4_ = (undefined8 *)((ulonglong)dVar31 >> 0x20);
      if (*piVar14 != 0x91) goto LAB_000518d4;
      if (iVar7 == 0) {
        if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {
          ptimer_measure(local_104);
          puVar24 = (undefined8 *)0x0;
          goto LAB_00051748;
        }
        puVar24 = (undefined8 *)0x0;
LAB_00051720:
        dVar25 = (double)CONCAT44(puVar15,puVar18);
        if (param_11 != (undefined8 *)0x0) {
          ptimer_measure(local_104);
          dVar31 = local_120;
          if (0 < (int)puVar24) goto LAB_000515b0;
          goto LAB_00051748;
        }
        if (0 < (int)puVar24) goto LAB_000515c4;
      }
      else {
        ptimer_measure(local_104);
        puVar24 = (undefined8 *)0x0;
LAB_00051748:
        local_120 = dVar31;
        dVar25 = (double)CONCAT44(puVar15,puVar18);
        if (*(int *)(PTR_opt_000b746c + 0x158) != 0 || *(int *)(PTR_opt_000b746c + 0x15c) != 0) {
          dVar30 = (double)ptimer_read(local_104);
          puVar21 = PTR_DAT_000b7720;
          dVar30 = dVar30 - *(double *)(PTR_DAT_000b7720 + -0x2fe0);
          puVar20 = (undefined8 *)((int)puVar24 + *(int *)(PTR_DAT_000b7720 + -0x2fe4));
          iVar17 = (uint)(puVar20 < puVar24) +
                   ((int)puVar24 >> 0x1f) + *(int *)(PTR_DAT_000b7720 + -0x2fe8);
          *(int *)(PTR_DAT_000b7720 + -0x2fe8) = iVar17;
          *(undefined8 **)(puVar21 + -0x2fe4) = puVar20;
          dVar31 = (double)(*(code *)PTR_FUN_000b78f4)(iVar17,puVar20);
          puVar9 = *(undefined8 **)(PTR_opt_000b746c + 0x15c);
          dVar27 = (double)(*(code *)PTR_FUN_000b78f4)
                                     (*(undefined4 *)(PTR_opt_000b746c + 0x158),puVar9);
          dVar25 = (double)CONCAT44(puVar15,puVar18);
          if (dVar30 < dVar31 / dVar27) {
            dVar30 = (dVar31 / dVar27 - dVar30) + *(double *)(PTR_DAT_000b7720 + -0x2fd8);
            if (dVar30 < dVar32) {
              if (PTR_opt_000b746c[0x16b] != '\0') {
                uVar11 = number_to_static_string(iVar17,puVar20);
                local_120 = (double)((ulonglong)uVar11 << 0x20);
                dVar25 = dVar30 * *(double *)(puVar2 + -0x15d8);
                debug_logprintf(PTR_DAT_000b758c + -0x1864);
                puVar9 = puVar20;
              }
              goto LAB_0005175c;
            }
            if (PTR_opt_000b746c[0x16b] != '\0') {
              uVar11 = number_to_static_string(iVar17,puVar20);
              local_120 = (double)((ulonglong)uVar11 << 0x20);
              dVar25 = dVar30 * dVar28;
              debug_logprintf(PTR_DAT_000b758c + -0x183c);
              puVar9 = puVar20;
            }
            dVar31 = (double)ptimer_read(local_104);
            xsleep(dVar30);
            dVar27 = (double)ptimer_measure(local_104);
            dVar30 = dVar30 - (dVar27 - dVar31);
            if (dVar33 < dVar30) {
              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x2580);
            }
            else if (dVar34 <= dVar30) {
              *(double *)(PTR_DAT_000b7720 + -0x2fd8) = dVar30;
            }
            else {
              *(undefined8 *)(PTR_DAT_000b7720 + -0x2fd8) = *(undefined8 *)(puVar2 + -0x15d0);
            }
          }
          puVar21 = PTR_DAT_000b7720;
          *(undefined4 *)(PTR_DAT_000b7720 + -0x2fe4) = 0;
          *(undefined4 *)(puVar21 + -0x2fe8) = 0;
          uVar26 = ptimer_read(local_104);
          *(undefined8 *)(puVar21 + -0x2fe0) = uVar26;
        }
      }
LAB_0005175c:
      if (iVar7 != 0) {
        local_120 = (double)ptimer_read(local_104);
        iVar17 = (int)puVar24 >> 0x1f;
        puVar20 = puVar24;
        progress_update(iVar7);
        dVar25 = (double)CONCAT44(iVar17,puVar20);
      }
    }
    dVar31 = *(double *)(PTR_opt_000b746c + 0x120);
    if (uVar5 == 0) {
LAB_00051864:
      puVar15 = puVar20;
      dVar30 = dVar25;
      goto LAB_00051868;
    }
LAB_00051820:
    if (iVar22 != 0 || local_f0 != (undefined8 *)0x0) {
LAB_00051830:
      puVar20 = local_f0;
      if ((iVar17 <= iVar22) &&
         ((puVar15 = local_e0, dVar30 = dVar25, iVar17 != iVar22 ||
          (puVar20 = local_f0, local_e0 <= local_f0)))) goto LAB_00051868;
      goto LAB_00051864;
    }
    iVar13 = fd_read_line(param_2);
    puVar20 = SUB84(dVar25,0);
    if (iVar13 == 0) {
LAB_00050e90:
      puVar24 = (undefined8 *)0xffffffff;
LAB_000518d4:
      bVar1 = (int)puVar24 < 0;
      dVar30 = dVar25;
LAB_000518d8:
      puVar20 = (undefined8 *)0xffffffff;
      puVar3 = local_120._0_4_;
      if (!bVar1) {
        puVar20 = puVar24;
      }
    }
    else {
      if (param_13 != (undefined8 *)0x0) {
        uVar8 = (*(code *)PTR_strlen_000b7c94)(iVar13);
        puVar20 = param_13;
        (*(code *)PTR_fwrite_000b7c24)(iVar13,1,uVar8);
      }
      uVar8 = 0x10;
      puVar9 = (undefined8 *)auStack_ac;
      local_f0 = (undefined8 *)(*(code *)PTR_strtol_000b7d3c)(iVar13,puVar9);
      iVar22 = (int)local_f0 >> 0x1f;
      (*(code *)PTR_free_000b7d34)(iVar13);
      dVar25 = (double)CONCAT44(uVar8,puVar20);
      if (iVar22 < 0) goto LAB_00050e90;
      if (local_f0 != (undefined8 *)0x0) goto LAB_00051830;
      iVar22 = fd_read_line(param_2);
      dVar30 = (double)CONCAT44(uVar8,puVar20);
      if (iVar22 == 0) {
        puVar20 = (undefined8 *)0xffffffff;
      }
      else {
        if (param_13 != (undefined8 *)0x0) {
          uVar8 = (*(code *)PTR_strlen_000b7c94)(iVar22);
          puVar9 = (undefined8 *)&DAT_00000001;
          (*(code *)PTR_fwrite_000b7c24)(iVar22,1);
          puVar20 = param_13;
        }
        (*(code *)PTR_free_000b7d34)(iVar22);
        dVar30 = (double)CONCAT44(uVar8,puVar20);
        puVar20 = (undefined8 *)0x0;
      }
    }
LAB_00051040:
    local_120._0_4_ = puVar3;
    if (iVar7 != 0) {
      uVar26 = ptimer_read(local_104);
      uVar19 = (undefined4)uVar26;
      uVar8 = (undefined4)((ulonglong)uVar26 >> 0x20);
      progress_finish(iVar7);
      dVar30 = (double)CONCAT44(uVar8,uVar19);
    }
    if (param_11 != (undefined8 *)0x0) goto LAB_00051080;
  }
  else {
    local_100 = (undefined8 *)(*(code *)PTR_xmalloc_000b7480)(0x8000);
    if (local_100 == (undefined8 *)0x0) {
      puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();
      *puVar10 = 0xc;
    }
    else {
      local_74 = PTR_LAB_000b78e4 + 0x368;
      local_70 = PTR_LAB_000b78e4 + 0x330;
      local_6c = 0;
      local_94 = (undefined8 *)0x0;
      local_90 = (undefined8 *)0x0;
      param_4 = (undefined1 *)0x38;
      puVar21 = PTR_DAT_000b758c + -0x18a0;
      puVar9 = (undefined8 *)0x2f;
      iVar6 = (*(code *)PTR_inflateInit2__000b7d68)(&local_94,0x2f);
      if (iVar6 == 0) goto LAB_00050b74;
      (*(code *)PTR_free_000b7d34)(local_100);
      uVar8 = 0x16;
      if (iVar6 == -4) {
        uVar8 = 0xc;
      }
      puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)();
      *puVar10 = uVar8;
    }
    dVar30 = (double)CONCAT44(puVar21,param_4);
    local_100 = param_11;
    if (param_11 == (undefined8 *)0x0) {
      iVar6 = 0;
      local_fc = (undefined8 *)0x0;
      puVar20 = (undefined8 *)0xffffffff;
      goto LAB_000510b8;
    }
    local_100 = (undefined8 *)0x0;
    iVar6 = 0;
    local_fc = (undefined8 *)0x0;
    local_104 = (undefined8 *)0x0;
    puVar20 = (undefined8 *)0xffffffff;
LAB_00051080:
    uVar26 = ptimer_read(local_104);
    *param_11 = uVar26;
  }
  if (local_104 != (undefined8 *)0x0) {
    ptimer_destroy(local_104);
  }
LAB_000510b8:
  if (local_100 != (undefined8 *)0x0) {
    puVar9 = (undefined8 *)(*(code *)PTR_inflateEnd_000b7e58)(&local_94);
    if ((-1 < (int)puVar20) && (puVar20 = puVar9, puVar9 != (undefined8 *)0x0)) {
      puVar10 = (undefined4 *)(*(code *)PTR___errno_location_000b7eb8)(local_100);
      *puVar10 = 0x16;
      puVar20 = (undefined8 *)0xffffffff;
    }
    (*(code *)PTR_free_000b7d34)(local_100);
    puVar9 = local_8c;
    if (((iVar6 != 0) || (local_8c != local_fc)) &&
       (dVar30 = (double)CONCAT44(iVar6,SUB84(dVar30,0)), PTR_opt_000b746c[0x16b] != '\0')) {
      iVar7 = iVar6;
      puVar9 = local_fc;
      debug_logprintf(PTR_DAT_000b758c + -0x180c);
      dVar30 = (double)CONCAT44(iVar7,puVar9);
      puVar9 = local_8c;
    }
  }
  if (param_9 != (int *)0x0) {
    puVar16 = (undefined1 *)param_9[1] + (int)local_fc;
    *param_9 = (uint)(puVar16 < (undefined1 *)param_9[1]) + *param_9 + iVar6;
    param_9[1] = (int)puVar16;
  }
  if (param_10 != (int *)0x0) {
    uVar5 = param_10[1] + local_9c;
    *param_10 = (int)((int)local_a0 + (uint)(uVar5 < (uint)param_10[1]) + *param_10);
    param_10[1] = uVar5;
    puVar9 = local_a0;
  }
  (*(code *)PTR_free_000b7d34)(puVar4);
  if (local_5c == *(int *)PTR___stack_chk_guard_000b7c68) {
    return puVar20;
  }
  iVar6 = local_5c;
  puVar21 = PTR___stack_chk_fail_000b7bfc;
  (*(code *)PTR___stack_chk_fail_000b7bfc)();
  if (*(char *)(*(int *)(puVar21 + 0x65acc) + 0x223) == '\0') {
    dVar25 = *(double *)(*(int *)(puVar21 + 0x65bec) + -0x6f98);
  }
  else {
    dVar25 = *(double *)(*(int *)(puVar21 + 0x65bec) + -0x15d8);
  }
  if (dVar30 == 0.0) {
    dVar30 = (double)ptimer_resolution();
    dVar30 = dVar30 * *(double *)(*(int *)(puVar21 + 0x65bec) + -0x2580);
  }
  uVar26 = convert_to_bits(iVar6,puVar9);
  dVar28 = (double)(**(code **)(puVar21 + 0x65f54))((int)((ulonglong)uVar26 >> 0x20),(int)uVar26);
  dVar28 = dVar28 / dVar30;
  if (dVar28 < dVar25) {
    *(undefined4 *)local_120._0_4_ = 0;
  }
  else if (dVar28 < dVar25 * dVar25) {
    *(undefined4 *)local_120._0_4_ = 1;
    local_120._0_4_ = (undefined8 *)&DAT_00000001;
  }
  else if (dVar28 < dVar25 * dVar25 * dVar25) {
    *(undefined4 *)local_120._0_4_ = 2;
    local_120._0_4_ = (undefined8 *)0x2;
  }
  else {
    *(undefined4 *)local_120._0_4_ = 3;
    local_120._0_4_ = (undefined8 *)0x3;
  }
  return local_120._0_4_;
}

