
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
/* WARNING: Enum "anon_enum_32": Some values do not have unique names */

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)

{
  char cVar1;
  long lVar2;
  uint uVar3;
  int iVar4;
  int iVar5;
  uInt uVar6;
  uInt uVar7;
  Bytef *buf;
  ptimer *pt;
  char *pcVar8;
  int *piVar9;
  ulong uVar10;
  ulong uVar11;
  char *pcVar12;
  ulong uVar13;
  double *buf_00;
  uLong uVar14;
  long in_FS_OFFSET;
  byte bVar15;
  double dVar16;
  double dVar17;
  double seconds;
  void *local_130;
  double local_110;
  bool local_dc;
  _Bool local_db;
  bool local_da;
  wgint skip;
  wgint sum_written;
  char *endl;
  z_stream gzstream;
  
  bVar15 = 0;
  lVar2 = *(long *)(in_FS_OFFSET + 0x28);
  buf = (Bytef *)xmalloc(0x2000);
  uVar3 = flags & 1;
  skip = 0;
  sum_written = 0;
  buf_00 = (double *)0x0;
  if ((flags & 8U) == 0) {
LAB_001335e1:
    if ((flags & 2U) != 0) {
      skip = startpos;
    }
    if (opt.show_progress == 0) {
      local_db = false;
      local_130 = (void *)0x0;
    }
    else {
      if (skip != 0) {
        startpos = 0;
      }
      if (opt.dir_prefix != (char *)0x0) {
        uVar10 = 0xffffffffffffffff;
        pcVar8 = opt.dir_prefix;
        do {
          if (uVar10 == 0) break;
          uVar10 = uVar10 - 1;
          cVar1 = *pcVar8;
          pcVar8 = pcVar8 + (ulong)bVar15 * -2 + 1;
        } while (cVar1 != '\0');
        downloaded_filename = downloaded_filename + ~uVar10;
      }
      local_130 = progress_create(downloaded_filename,startpos,startpos + toread);
      local_db = progress_interactive_p(local_130);
    }
    if (opt.limit_rate == 0) {
      if (local_130 != (void *)0x0 || elapsed != (double *)0x0) goto LAB_00133682;
      uVar10 = 0x2000;
      pt = (ptimer *)0x0;
    }
    else {
      limit_data.chunk_bytes = 0;
      limit_data.chunk_start = 0.0;
      limit_data.sleep_adjust = 0.0;
LAB_00133682:
      pt = ptimer_new();
      if ((opt.limit_rate == 0) || (uVar10 = opt.limit_rate, 0x1fff < opt.limit_rate)) {
        uVar10 = 0x2000;
      }
    }
    local_da = elapsed != (double *)0x0;
    local_dc = local_130 != (void *)0x0;
    iVar4 = (int)uVar10;
    uVar13 = 0;
    uVar14 = 0;
    local_110 = 0.0;
    uVar7 = 0;
    while ((dVar16 = opt.read_timeout, uVar3 == 0 || ((long)uVar14 < toread))) {
      if ((flags & 4U) == 0) {
        uVar11 = uVar10 & 0xffffffff;
        if (uVar3 != 0) {
          uVar11 = toread - uVar14;
          if ((long)iVar4 < (long)(toread - uVar14)) {
            uVar11 = (long)iVar4;
          }
        }
      }
      else {
        if (uVar13 == 0) {
          pcVar8 = fd_read_line(fd);
          if (pcVar8 != (char *)0x0) {
            if (out2 != (FILE *)0x0) {
              uVar13 = 0xffffffffffffffff;
              pcVar12 = pcVar8;
              do {
                if (uVar13 == 0) break;
                uVar13 = uVar13 - 1;
                cVar1 = *pcVar12;
                pcVar12 = pcVar12 + (ulong)bVar15 * -2 + 1;
              } while (cVar1 != '\0');
              fwrite(pcVar8,1,~uVar13 - 1,(FILE *)out2);
            }
            uVar13 = strtol(pcVar8,&endl,0x10);
            free(pcVar8);
            if (-1 < (long)uVar13) {
              if (uVar13 != 0) goto LAB_00133ef7;
              pcVar8 = fd_read_line(fd);
              uVar6 = 0xffffffff;
              if (pcVar8 != (char *)0x0) {
                if (out2 == (FILE *)0x0) goto LAB_001338bc;
                uVar10 = 0xffffffffffffffff;
                pcVar12 = pcVar8;
                goto code_r0x001338a0;
              }
              goto LAB_00133a74;
            }
          }
          uVar7 = 0xffffffff;
          break;
        }
LAB_00133ef7:
        uVar11 = (long)iVar4;
        if ((long)uVar13 < (long)iVar4) {
          uVar11 = uVar13;
        }
      }
      if (local_db == false) {
        uVar7 = fd_read(fd,(char *)buf,(int)uVar11,dVar16);
LAB_00133e68:
        if ((int)uVar7 < 1) break;
        if (local_dc) {
          ptimer_measure(pt);
LAB_00133d9f:
          local_110 = ptimer_read(pt);
        }
        else if ((opt.limit_rate != 0) || (local_da)) {
          ptimer_measure(pt);
          if ((int)uVar7 < 1) goto LAB_00133ea0;
          goto LAB_00133d9f;
        }
        uVar14 = uVar14 + (long)(int)uVar7;
        if (buf_00 == (double *)0x0) {
          uVar6 = write_data(out,out2,(char *)buf,uVar7,&skip,&sum_written);
          if ((int)uVar6 < 0) goto LAB_00133a74;
        }
        else {
          uVar6 = write_data((FILE *)0x0,out2,(char *)buf,uVar7,(wgint *)0x0,(wgint *)0x0);
          if ((int)uVar6 < 0) goto LAB_00133a74;
          gzstream.next_in = buf;
          gzstream.avail_in = uVar7;
          do {
            gzstream.avail_out = 0x8000;
            gzstream.next_out = (Bytef *)buf_00;
            iVar5 = inflate(&gzstream,0);
            if (iVar5 == -3) {
LAB_00133b59:
              piVar9 = __errno_location();
              *piVar9 = 0x16;
              uVar6 = 0xffffffff;
              goto LAB_00133a74;
            }
            if (iVar5 < -2) {
              if (iVar5 == -4) {
                piVar9 = __errno_location();
                *piVar9 = 0xc;
                uVar6 = 0xffffffff;
                goto LAB_00133a74;
              }
            }
            else if (iVar5 == 1) {
              if (((toread != uVar14) && (uVar3 != 0)) && (opt.debug != false)) {
                debug_logprintf("zlib stream ended unexpectedly after %ld/%ld bytes\n",uVar14,toread
                               );
              }
            }
            else if (iVar5 == 2) goto LAB_00133b59;
            uVar6 = write_data(out,(FILE *)0x0,(char *)buf_00,0x8000 - gzstream.avail_out,&skip,
                               &sum_written);
            if ((int)uVar6 < 0) goto LAB_00133a74;
          } while (gzstream.avail_out == 0);
        }
        if (((flags & 4U) != 0) && (uVar13 = uVar13 - (long)(int)uVar7, uVar13 == 0)) {
          pcVar8 = fd_read_line(fd);
          if (pcVar8 == (char *)0x0) {
            uVar7 = 0xffffffff;
            break;
          }
          if (out2 != (FILE *)0x0) {
            uVar11 = 0xffffffffffffffff;
            pcVar12 = pcVar8;
            do {
              if (uVar11 == 0) break;
              uVar11 = uVar11 - 1;
              cVar1 = *pcVar12;
              pcVar12 = pcVar12 + (ulong)bVar15 * -2 + 1;
            } while (cVar1 != '\0');
            fwrite(pcVar8,1,~uVar11 - 1,(FILE *)out2);
          }
          free(pcVar8);
        }
LAB_00133ea0:
        if (opt.limit_rate != 0) {
          dVar17 = ptimer_read(pt);
          dVar16 = limit_data.sleep_adjust;
          dVar17 = dVar17 - limit_data.chunk_start;
          limit_data.chunk_bytes = (int)uVar7 + limit_data.chunk_bytes;
          if (dVar17 < (double)limit_data.chunk_bytes / (double)opt.limit_rate) {
            seconds = ((double)limit_data.chunk_bytes / (double)opt.limit_rate - dVar17) +
                      limit_data.sleep_adjust;
            if (seconds < _DAT_0015c908) {
              if (opt.debug != false) {
                pcVar8 = number_to_static_string(limit_data.chunk_bytes);
                debug_logprintf("deferring a %.2f ms sleep (%s/%.2f).\n",seconds * DAT_0015d650,
                                dVar17,pcVar8);
              }
              goto LAB_00133eae;
            }
            if (opt.debug != false) {
              pcVar8 = number_to_static_string(limit_data.chunk_bytes);
              debug_logprintf("\nsleeping %.2f ms for %s bytes, adjust %.2f ms\n",
                              seconds * DAT_0015d650,dVar16,pcVar8);
            }
            dVar16 = ptimer_read(pt);
            xsleep(seconds);
            dVar17 = ptimer_measure(pt);
            limit_data.sleep_adjust = seconds - (dVar17 - dVar16);
            if (limit_data.sleep_adjust <= _DAT_0015c710) {
              if (limit_data.sleep_adjust < DAT_0015d658) {
                limit_data.sleep_adjust = DAT_0015d658;
              }
            }
            else {
              limit_data.sleep_adjust = _DAT_0015c710;
            }
          }
          limit_data.chunk_bytes = 0;
          limit_data.chunk_start = ptimer_read(pt);
        }
      }
      else {
        dVar16 = DAT_0015d648;
        if (opt.read_timeout != 0.0) {
          dVar17 = ptimer_read(pt);
          dVar16 = DAT_0015d648;
          if ((opt.read_timeout < (dVar17 - local_110) + DAT_0015d648) &&
             (dVar16 = opt.read_timeout - (dVar17 - local_110), dVar16 < 0.0)) {
            piVar9 = __errno_location();
            *piVar9 = 0x6e;
            uVar6 = 0xffffffff;
            goto LAB_00133a74;
          }
        }
        uVar7 = fd_read(fd,(char *)buf,(int)uVar11,dVar16);
        if (-1 < (int)uVar7) goto LAB_00133e68;
        piVar9 = __errno_location();
        if (*piVar9 != 0x6e) break;
        if (local_dc) {
          ptimer_measure(pt);
          uVar7 = 0;
          goto LAB_00133ea0;
        }
        if ((opt.limit_rate != 0) || (local_da)) {
          ptimer_measure(pt);
          uVar7 = 0;
          goto LAB_00133ea0;
        }
        uVar7 = 0;
      }
LAB_00133eae:
      if (local_dc) {
        dVar16 = ptimer_read(pt);
        progress_update(local_130,(long)(int)uVar7,dVar16);
      }
    }
    uVar6 = 0xffffffff;
    if (-1 < (int)uVar7) {
      uVar6 = uVar7;
    }
    goto LAB_00133a74;
  }
  buf_00 = (double *)xmalloc(0x8000);
  if (buf_00 == (double *)0x0) {
    piVar9 = __errno_location();
    *piVar9 = 0xc;
  }
  else {
    gzstream.zalloc = zalloc;
    gzstream.zfree = zfree;
    gzstream.opaque = (voidpf)0x0;
    gzstream.next_in = (Bytef *)0x0;
    gzstream.avail_in = 0;
    iVar4 = inflateInit2_(&gzstream,0x2f,"1.2.11",0x70);
    if (iVar4 == 0) goto LAB_001335e1;
    free(buf_00);
    iVar5 = 0xc;
    if (iVar4 != -4) {
      iVar5 = 0x16;
    }
    piVar9 = __errno_location();
    *piVar9 = iVar5;
  }
  uVar14 = 0;
  uVar6 = 0xffffffff;
  if (elapsed == (double *)0x0) goto LAB_00133ab4;
  buf_00 = (double *)0x0;
  uVar14 = 0;
  pt = (ptimer *)0x0;
  uVar6 = 0xffffffff;
LAB_00133a96:
  dVar16 = ptimer_read(pt);
  *elapsed = dVar16;
  goto LAB_00133aa7;
  while( true ) {
    uVar10 = uVar10 - 1;
    cVar1 = *pcVar12;
    pcVar12 = pcVar12 + (ulong)bVar15 * -2 + 1;
    if (cVar1 == '\0') break;
code_r0x001338a0:
    if (uVar10 == 0) break;
  }
  fwrite(pcVar8,1,~uVar10 - 1,(FILE *)out2);
LAB_001338bc:
  free(pcVar8);
  uVar6 = 0;
LAB_00133a74:
  if (local_130 != (void *)0x0) {
    dVar16 = ptimer_read(pt);
    progress_finish(local_130,dVar16);
  }
  if (elapsed != (double *)0x0) goto LAB_00133a96;
LAB_00133aa7:
  elapsed = buf_00;
  if (pt != (ptimer *)0x0) {
    ptimer_destroy(pt);
  }
LAB_00133ab4:
  if (elapsed != (double *)0x0) {
    uVar7 = inflateEnd(&gzstream);
    if ((-1 < (int)uVar6) && (uVar6 = uVar7, uVar7 != 0)) {
      piVar9 = __errno_location();
      *piVar9 = 0x16;
      uVar6 = 0xffffffff;
    }
    free(elapsed);
    if ((gzstream.total_in != uVar14) && (opt.debug != false)) {
      debug_logprintf("zlib read size differs from raw read size (%lu/%lu)\n",gzstream.total_in,
                      uVar14);
    }
  }
  if (qtyread != (wgint *)0x0) {
    *qtyread = *qtyread + uVar14;
  }
  if (qtywritten != (wgint *)0x0) {
    *qtywritten = *qtywritten + sum_written;
  }
  free(buf);
  if (lVar2 == *(long *)(in_FS_OFFSET + 0x28)) {
    return uVar6;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail();
}



/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

int FUN_00133529(long param_1,undefined4 param_2,undefined8 param_3,long param_4,long param_5,
                long *param_6,long *param_7,undefined8 *param_8,uint param_9,FILE *param_10)

{
  char cVar1;
  uint uVar2;
  int iVar3;
  int iVar4;
  int iVar5;
  void *__ptr;
  long lVar6;
  char *pcVar7;
  int *piVar8;
  ulong uVar9;
  ulong uVar10;
  char *pcVar11;
  ulong uVar12;
  undefined8 *__ptr_00;
  long lVar13;
  long in_FS_OFFSET;
  byte bVar14;
  undefined8 uVar15;
  double dVar16;
  double dVar17;
  double dVar18;
  long local_130;
  double local_110;
  bool local_dc;
  char local_db;
  bool local_da;
  long local_d0;
  long local_c8;
  char *local_c0;
  void *local_b8;
  int local_b0;
  long local_a8;
  undefined8 *local_a0;
  int local_98;
  code *local_78;
  code *local_70;
  undefined8 local_68;
  long local_40;
  
  bVar14 = 0;
  local_40 = *(long *)(in_FS_OFFSET + 0x28);
  __ptr = (void *)FUN_001494bf(0x2000);
  uVar2 = param_9 & 1;
  local_d0 = 0;
  local_c8 = 0;
  __ptr_00 = (undefined8 *)0x0;
  if ((param_9 & 8) == 0) {
LAB_001335e1:
    if ((param_9 & 2) != 0) {
      local_d0 = param_5;
    }
    if (DAT_00177498 == 0) {
      local_db = '\0';
      local_130 = 0;
    }
    else {
      if (local_d0 != 0) {
        param_5 = 0;
      }
      if (DAT_001772f8 != (char *)0x0) {
        uVar9 = 0xffffffffffffffff;
        pcVar7 = DAT_001772f8;
        do {
          if (uVar9 == 0) break;
          uVar9 = uVar9 - 1;
          cVar1 = *pcVar7;
          pcVar7 = pcVar7 + (ulong)bVar14 * -2 + 1;
        } while (cVar1 != '\0');
        param_1 = param_1 + ~uVar9;
      }
      local_130 = FUN_00130cae(param_1,param_5,param_5 + param_4);
      local_db = FUN_00130cfd(local_130);
    }
    if (DAT_001774e8 == 0) {
      if (local_130 != 0 || param_8 != (undefined8 *)0x0) goto LAB_00133682;
      uVar9 = 0x2000;
      lVar6 = 0;
    }
    else {
      DAT_00176e60 = 0;
      DAT_00176e68 = 0.0;
      DAT_00176e70 = 0.0;
LAB_00133682:
      lVar6 = FUN_00130d6b();
      if ((DAT_001774e8 == 0) || (uVar9 = DAT_001774e8, 0x1fff < (long)DAT_001774e8)) {
        uVar9 = 0x2000;
      }
    }
    local_da = param_8 != (undefined8 *)0x0;
    local_dc = local_130 != 0;
    iVar3 = (int)uVar9;
    uVar12 = 0;
    lVar13 = 0;
    local_110 = 0.0;
    iVar5 = 0;
    while ((dVar18 = DAT_001774b0, uVar2 == 0 || (lVar13 < param_4))) {
      if ((param_9 & 4) == 0) {
        uVar10 = uVar9 & 0xffffffff;
        if (uVar2 != 0) {
          uVar10 = param_4 - lVar13;
          if ((long)iVar3 < param_4 - lVar13) {
            uVar10 = (long)iVar3;
          }
        }
      }
      else {
        if (uVar12 == 0) {
          pcVar7 = (char *)FUN_0013350a(param_2);
          if (pcVar7 != (char *)0x0) {
            if (param_10 != (FILE *)0x0) {
              uVar12 = 0xffffffffffffffff;
              pcVar11 = pcVar7;
              do {
                if (uVar12 == 0) break;
                uVar12 = uVar12 - 1;
                cVar1 = *pcVar11;
                pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;
              } while (cVar1 != '\0');
              fwrite(pcVar7,1,~uVar12 - 1,param_10);
            }
            uVar12 = strtol(pcVar7,&local_c0,0x10);
            free(pcVar7);
            if (-1 < (long)uVar12) {
              if (uVar12 != 0) goto LAB_00133ef7;
              pcVar7 = (char *)FUN_0013350a(param_2);
              iVar4 = -1;
              if (pcVar7 != (char *)0x0) {
                if (param_10 == (FILE *)0x0) goto LAB_001338bc;
                uVar9 = 0xffffffffffffffff;
                pcVar11 = pcVar7;
                goto code_r0x001338a0;
              }
              goto LAB_00133a74;
            }
          }
          iVar5 = -1;
          break;
        }
LAB_00133ef7:
        uVar10 = (long)iVar3;
        if ((long)uVar12 < (long)iVar3) {
          uVar10 = uVar12;
        }
      }
      if (local_db == '\0') {
        iVar5 = FUN_0010d64e(dVar18,param_2,__ptr,uVar10 & 0xffffffff);
LAB_00133e68:
        if (iVar5 < 1) break;
        if (local_dc) {
          FUN_00130ebd(lVar6);
LAB_00133d9f:
          local_110 = (double)FUN_00130f52(lVar6);
        }
        else if ((DAT_001774e8 != 0) || (local_da)) {
          FUN_00130ebd(lVar6);
          if (iVar5 < 1) goto LAB_00133ea0;
          goto LAB_00133d9f;
        }
        lVar13 = lVar13 + iVar5;
        if (__ptr_00 == (undefined8 *)0x0) {
          iVar4 = FUN_00133125(param_3,param_10,__ptr,iVar5,&local_d0,&local_c8);
          if (iVar4 < 0) goto LAB_00133a74;
        }
        else {
          iVar4 = FUN_00133125(0,param_10,__ptr,iVar5,0,0);
          if (iVar4 < 0) goto LAB_00133a74;
          local_b8 = __ptr;
          local_b0 = iVar5;
          do {
            local_98 = 0x8000;
            local_a0 = __ptr_00;
            iVar4 = inflate(&local_b8,0);
            if (iVar4 == -3) {
LAB_00133b59:
              piVar8 = __errno_location();
              *piVar8 = 0x16;
              iVar4 = -1;
              goto LAB_00133a74;
            }
            if (iVar4 < -2) {
              if (iVar4 == -4) {
                piVar8 = __errno_location();
                *piVar8 = 0xc;
                iVar4 = -1;
                goto LAB_00133a74;
              }
            }
            else if (iVar4 == 1) {
              if (((param_4 != lVar13) && (uVar2 != 0)) && (DAT_001774fb != '\0')) {
                FUN_0012bddf("zlib stream ended unexpectedly after %ld/%ld bytes\n",lVar13,param_4);
              }
            }
            else if (iVar4 == 2) goto LAB_00133b59;
            iVar4 = FUN_00133125(param_3,0,__ptr_00,0x8000 - local_98,&local_d0,&local_c8);
            if (iVar4 < 0) goto LAB_00133a74;
          } while (local_98 == 0);
        }
        if (((param_9 & 4) != 0) && (uVar12 = uVar12 - (long)iVar5, uVar12 == 0)) {
          pcVar7 = (char *)FUN_0013350a(param_2);
          if (pcVar7 == (char *)0x0) {
            iVar5 = -1;
            break;
          }
          if (param_10 != (FILE *)0x0) {
            uVar10 = 0xffffffffffffffff;
            pcVar11 = pcVar7;
            do {
              if (uVar10 == 0) break;
              uVar10 = uVar10 - 1;
              cVar1 = *pcVar11;
              pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;
            } while (cVar1 != '\0');
            fwrite(pcVar7,1,~uVar10 - 1,param_10);
          }
          free(pcVar7);
        }
LAB_00133ea0:
        if (DAT_001774e8 != 0) {
          dVar16 = (double)FUN_00130f52(lVar6);
          dVar18 = DAT_00176e70;
          dVar16 = dVar16 - DAT_00176e68;
          DAT_00176e60 = iVar5 + DAT_00176e60;
          if (dVar16 < (double)DAT_00176e60 / (double)(long)DAT_001774e8) {
            dVar17 = ((double)DAT_00176e60 / (double)(long)DAT_001774e8 - dVar16) + DAT_00176e70;
            if (dVar17 < _DAT_0015c908) {
              if (DAT_001774fb != '\0') {
                uVar15 = FUN_0013d39d();
                FUN_0012bddf(dVar17 * DAT_0015d650,dVar16,"deferring a %.2f ms sleep (%s/%.2f).\n",
                             uVar15);
              }
              goto LAB_00133eae;
            }
            if (DAT_001774fb != '\0') {
              uVar15 = FUN_0013d39d();
              FUN_0012bddf(dVar17 * DAT_0015d650,dVar18,
                           "\nsleeping %.2f ms for %s bytes, adjust %.2f ms\n",uVar15);
            }
            dVar18 = (double)FUN_00130f52(lVar6);
            FUN_0013d652(dVar17);
            dVar16 = (double)FUN_00130ebd(lVar6);
            DAT_00176e70 = dVar17 - (dVar16 - dVar18);
            if (DAT_00176e70 <= _DAT_0015c710) {
              if (DAT_00176e70 < DAT_0015d658) {
                DAT_00176e70 = DAT_0015d658;
              }
            }
            else {
              DAT_00176e70 = _DAT_0015c710;
            }
          }
          DAT_00176e60 = 0;
          DAT_00176e68 = (double)FUN_00130f52(lVar6);
        }
      }
      else {
        if (DAT_001774b0 != 0.0) {
          dVar18 = (double)FUN_00130f52(lVar6);
          if ((DAT_001774b0 < (dVar18 - local_110) + DAT_0015d648) &&
             (DAT_001774b0 - (dVar18 - local_110) < 0.0)) {
            piVar8 = __errno_location();
            *piVar8 = 0x6e;
            iVar4 = -1;
            goto LAB_00133a74;
          }
        }
        iVar5 = FUN_0010d64e(param_2,__ptr,uVar10 & 0xffffffff);
        if (-1 < iVar5) goto LAB_00133e68;
        piVar8 = __errno_location();
        if (*piVar8 != 0x6e) break;
        if (local_dc) {
          FUN_00130ebd(lVar6);
          iVar5 = 0;
          goto LAB_00133ea0;
        }
        if ((DAT_001774e8 != 0) || (local_da)) {
          FUN_00130ebd(lVar6);
          iVar5 = 0;
          goto LAB_00133ea0;
        }
        iVar5 = 0;
      }
LAB_00133eae:
      if (local_dc) {
        FUN_00130f52(lVar6);
        FUN_00130d09(local_130,(long)iVar5);
      }
    }
    iVar4 = -1;
    if (-1 < iVar5) {
      iVar4 = iVar5;
    }
    goto LAB_00133a74;
  }
  __ptr_00 = (undefined8 *)FUN_001494bf(0x8000);
  if (__ptr_00 == (undefined8 *)0x0) {
    piVar8 = __errno_location();
    *piVar8 = 0xc;
  }
  else {
    local_78 = FUN_00133111;
    local_70 = FUN_00133100;
    local_68 = 0;
    local_b8 = (void *)0x0;
    local_b0 = 0;
    iVar3 = inflateInit2_(&local_b8,0x2f,"1.2.11",0x70);
    if (iVar3 == 0) goto LAB_001335e1;
    free(__ptr_00);
    iVar5 = 0xc;
    if (iVar3 != -4) {
      iVar5 = 0x16;
    }
    piVar8 = __errno_location();
    *piVar8 = iVar5;
  }
  lVar13 = 0;
  iVar4 = -1;
  if (param_8 == (undefined8 *)0x0) goto LAB_00133ab4;
  __ptr_00 = (undefined8 *)0x0;
  lVar13 = 0;
  lVar6 = 0;
  iVar4 = -1;
LAB_00133a96:
  uVar15 = FUN_00130f52(lVar6);
  *param_8 = uVar15;
  goto LAB_00133aa7;
  while( true ) {
    uVar9 = uVar9 - 1;
    cVar1 = *pcVar11;
    pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;
    if (cVar1 == '\0') break;
code_r0x001338a0:
    if (uVar9 == 0) break;
  }
  fwrite(pcVar7,1,~uVar9 - 1,param_10);
LAB_001338bc:
  free(pcVar7);
  iVar4 = 0;
LAB_00133a74:
  if (local_130 != 0) {
    FUN_00130f52(lVar6);
    FUN_00130d26(local_130);
  }
  if (param_8 != (undefined8 *)0x0) goto LAB_00133a96;
LAB_00133aa7:
  param_8 = __ptr_00;
  if (lVar6 != 0) {
    FUN_00130d39(lVar6);
  }
LAB_00133ab4:
  if (param_8 != (undefined8 *)0x0) {
    iVar3 = inflateEnd(&local_b8);
    if ((-1 < iVar4) && (iVar4 = iVar3, iVar3 != 0)) {
      piVar8 = __errno_location();
      *piVar8 = 0x16;
      iVar4 = -1;
    }
    free(param_8);
    if ((local_a8 != lVar13) && (DAT_001774fb != '\0')) {
      FUN_0012bddf("zlib read size differs from raw read size (%lu/%lu)\n",local_a8,lVar13);
    }
  }
  if (param_6 != (long *)0x0) {
    *param_6 = *param_6 + lVar13;
  }
  if (param_7 != (long *)0x0) {
    *param_7 = *param_7 + local_c8;
  }
  free(__ptr);
  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {
    return iVar4;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail();
}


PUSH R15
PUSH R14
PUSH R13
PUSH R12
PUSH RBP
PUSH RBX
SUB RSP,0x128
MOV R12,RDI
MOV dword ptr [RSP + 0x1c],ESI
MOV qword ptr [RSP + 0x40],RDX
MOV qword ptr [RSP + 0x20],RCX
MOV RBP,R8
MOV qword ptr [RSP + 0x58],R9
MOV RAX,qword ptr [RSP + 0x160]
MOV qword ptr [RSP + 0x60],RAX
MOV RAX,qword ptr [RSP + 0x168]
MOV qword ptr [RSP + 0x30],RAX
MOV EBX,dword ptr [RSP + 0x170]
MOV RAX,qword ptr [RSP + 0x178]
MOV qword ptr [RSP + 0x38],RAX
MOV RAX,qword ptr FS:[0x28]
MOV qword ptr [RSP + 0x118],RAX
XOR EAX,EAX
MOV EDI,0x2000
CALL 0x001494bf
MOV qword ptr [RSP + 0x8],RAX
MOV EAX,EBX
AND EAX,0x1
MOV dword ptr [RSP + 0x14],EAX
SETNZ byte ptr [RSP + 0x7f]
MOV EAX,EBX
AND EAX,0x4
MOV dword ptr [RSP + 0x18],EAX
MOV qword ptr [RSP + 0x88],0x0
MOV qword ptr [RSP + 0x90],0x0
MOV R14D,0x0
TEST BL,0x8
JNZ 0x001336c7
TEST BL,0x2
JZ 0x001335ee
MOV qword ptr [RSP + 0x88],RBP
CMP dword ptr [0x00177498],0x0
JZ 0x001337a9
CMP qword ptr [RSP + 0x88],0x0
MOV EAX,0x0
CMOVNZ RBP,RAX
MOV RDI,qword ptr [0x001772f8]
TEST RDI,RDI
JZ 0x00133628
MOV RCX,-0x1
SCASB.REPNE RDI
NOT RCX
ADD R12,RCX
MOV RAX,qword ptr [RSP + 0x20]
LEA RDX,[RBP + RAX*0x1]
MOV RSI,RBP
MOV RDI,R12
CALL 0x00130cae
MOV qword ptr [RSP + 0x28],RAX
MOV RDI,RAX
CALL 0x00130cfd
MOV byte ptr [RSP + 0x7d],AL
CMP qword ptr [0x001774e8],0x0
JNZ 0x001337bc
MOV RAX,qword ptr [RSP + 0x28]
TEST RAX,RAX
SETNZ byte ptr [RSP + 0x7c]
MOV RDX,qword ptr [RSP + 0x30]
TEST RDX,RDX
SETNZ byte ptr [RSP + 0x7e]
OR RAX,RDX
MOV R13,RAX
JZ 0x00133d55
CALL 0x00130d6b
MOV R13,RAX
MOV RAX,qword ptr [0x001774e8]
TEST RAX,RAX
JZ 0x0013369e
CMP RAX,0x1fff
JLE 0x001336a3
MOV EAX,0x2000
MOV dword ptr [RSP + 0x78],EAX
MOV R12D,0x0
MOV R15D,0x0
PXOR XMM4,XMM4
MOVSD qword ptr [RSP + 0x48],XMM4
MOV EBP,0x0
JMP 0x00133eca
MOV EDI,0x8000
CALL 0x001494bf
MOV R14,RAX
TEST RAX,RAX
JZ 0x00133769
LEA RAX,[0x133111]
MOV qword ptr [RSP + 0xe0],RAX
LEA RAX,[0x133100]
MOV qword ptr [RSP + 0xe8],RAX
MOV qword ptr [RSP + 0xf0],0x0
MOV qword ptr [RSP + 0xa0],0x0
MOV dword ptr [RSP + 0xa8],0x0
LEA RDI,[RSP + 0xa0]
MOV ECX,0x70
LEA RDX,[0x15d388]
MOV ESI,0x2f
CALL 0x0010c4a0
MOV R13D,EAX
TEST EAX,EAX
JZ 0x001335e1
MOV RDI,R14
CALL 0x0010c550
CMP R13D,-0x4
MOV EBX,0xc
MOV EAX,0x16
CMOVNZ EBX,EAX
CALL 0x0010c9b0
MOV dword ptr [RAX],EBX
JMP 0x00133774
CALL 0x0010c9b0
MOV dword ptr [RAX],0xc
MOV R14,qword ptr [RSP + 0x30]
MOV R15D,0x0
MOV EBX,0xffffffff
TEST R14,R14
JZ 0x00133ab4
MOV R14D,0x0
MOV R15D,0x0
MOV R13D,0x0
MOV EBX,0xffffffff
JMP 0x00133a96
MOV byte ptr [RSP + 0x7d],0x0
MOV qword ptr [RSP + 0x28],0x0
JMP 0x0013364e
MOV qword ptr [0x00176e60],0x0
MOV qword ptr [0x00176e68],0x0
MOV qword ptr [0x00176e70],0x0
CMP qword ptr [RSP + 0x28],0x0
SETNZ byte ptr [RSP + 0x7c]
CMP qword ptr [RSP + 0x30],0x0
SETNZ byte ptr [RSP + 0x7e]
JMP 0x00133682
MOV EDI,dword ptr [RSP + 0x1c]
CALL 0x0013350a
MOV RBX,RAX
TEST RAX,RAX
JZ 0x001338ce
MOV RSI,qword ptr [RSP + 0x38]
TEST RSI,RSI
JZ 0x00133842
MOV RCX,-0x1
MOV EAX,0x0
MOV RDI,RBX
SCASB.REPNE RDI
MOV RDX,RCX
NOT RDX
LEA RDX,[RDX + -0x1]
MOV RCX,RSI
MOV ESI,0x1
MOV RDI,RBX
CALL 0x0010cc80
LEA RSI,[RSP + 0x98]
MOV EDX,0x10
MOV RDI,RBX
CALL 0x0010c7f0
MOV R12,RAX
MOV RDI,RBX
CALL 0x0010c550
TEST R12,R12
JS 0x001338ce
JNZ 0x00133ef7
MOV EDI,dword ptr [RSP + 0x1c]
CALL 0x0013350a
MOV RBP,RAX
MOV EBX,0xffffffff
TEST RAX,RAX
JZ 0x00133a74
MOV RSI,qword ptr [RSP + 0x38]
TEST RSI,RSI
JZ 0x001338bc
MOV RCX,-0x1
MOV EAX,0x0
MOV RDI,RBP
SCASB.REPNE RDI
MOV RAX,RCX
NOT RAX
LEA RDX,[RAX + -0x1]
MOV RCX,RSI
MOV ESI,0x1
MOV RDI,RBP
CALL 0x0010cc80
MOV RDI,RBP
CALL 0x0010c550
MOV EBX,0x0
JMP 0x00133a74
MOV EBP,0xffffffff
JMP 0x00133f5d
MOV EAX,dword ptr [RSP + 0x78]
MOV EBX,EAX
CMP dword ptr [RSP + 0x14],0x0
JZ 0x00133f03
MOV RBX,qword ptr [RSP + 0x20]
SUB RBX,R15
CDQE
CMP RBX,RAX
CMOVG RBX,RAX
JMP 0x00133f03
MOV RDI,R13
CALL 0x00130f52
MOVAPD XMM1,XMM0
SUBSD XMM1,qword ptr [RSP + 0x48]
MOVSD XMM0,qword ptr [0x001774b0]
MOVAPD XMM2,XMM1
ADDSD XMM2,qword ptr [0x0015d648]
COMISD XMM2,XMM0
JBE 0x00133952
SUBSD XMM0,XMM1
PXOR XMM1,XMM1
COMISD XMM1,XMM0
JBE 0x00133f35
CALL 0x0010c9b0
MOV dword ptr [RAX],0x6e
MOV EBX,0xffffffff
JMP 0x00133a74
MOVSD XMM0,qword ptr [0x0015d648]
JMP 0x00133f35
CMP byte ptr [RSP + 0x7c],0x0
JZ 0x00133f6c
MOV RDI,R13
CALL 0x00130ebd
MOV EBP,0x0
JMP 0x00133ea0
MOV R9D,0x0
MOV R8D,0x0
MOV ECX,EBP
MOV RDX,qword ptr [RSP + 0x8]
MOV RSI,qword ptr [RSP + 0x38]
MOV EDI,0x0
CALL 0x00133125
TEST EAX,EAX
JS 0x00133d69
MOV dword ptr [RSP + 0xa8],EBP
MOV RAX,qword ptr [RSP + 0x8]
MOV qword ptr [RSP + 0xa0],RAX
LEA RAX,[RSP + 0xa0]
MOV qword ptr [RSP + 0x50],RAX
LEA RAX,[RSP + 0x90]
MOV qword ptr [RSP + 0x68],RAX
LEA RAX,[RSP + 0x88]
MOV qword ptr [RSP + 0x70],RAX
MOV dword ptr [RSP + 0xc0],0x8000
MOV qword ptr [RSP + 0xb8],R14
MOV ESI,0x0
MOV RDI,qword ptr [RSP + 0x50]
CALL 0x0010c520
CMP EAX,-0x3
JZ 0x00133b59
JLE 0x00133a5f
CMP EAX,0x1
JZ 0x00133b6e
CMP EAX,0x2
JZ 0x00133b59
MOV ECX,0x8000
SUB ECX,dword ptr [RSP + 0xc0]
MOV R9,qword ptr [RSP + 0x68]
MOV R8,qword ptr [RSP + 0x70]
MOV RDX,R14
MOV ESI,0x0
MOV RDI,qword ptr [RSP + 0x40]
CALL 0x00133125
TEST EAX,EAX
JS 0x00133d70
CMP dword ptr [RSP + 0xc0],0x0
JZ 0x001339e1
JMP 0x00133de6
CMP EAX,-0x4
JNZ 0x00133a20
CALL 0x0010c9b0
MOV dword ptr [RAX],0xc
MOV EBX,0xffffffff
MOV RBP,qword ptr [RSP + 0x28]
TEST RBP,RBP
JZ 0x00133a8e
MOV RDI,R13
CALL 0x00130f52
MOV RDI,RBP
CALL 0x00130d26
CMP qword ptr [RSP + 0x30],0x0
JZ 0x00133aa7
MOV RDI,R13
CALL 0x00130f52
MOV RAX,qword ptr [RSP + 0x30]
MOVSD qword ptr [RAX],XMM0
TEST R13,R13
JZ 0x00133ab4
MOV RDI,R13
CALL 0x00130d39
TEST R14,R14
JZ 0x00133b02
LEA RDI,[RSP + 0xa0]
CALL 0x0010c170
TEST EBX,EBX
JS 0x00133ae0
MOV EBX,EAX
TEST EAX,EAX
JZ 0x00133ae0
CALL 0x0010c9b0
MOV dword ptr [RAX],0x16
MOV EBX,0xffffffff
MOV RDI,R14
CALL 0x0010c550
MOV RSI,qword ptr [RSP + 0xb0]
CMP RSI,R15
JZ 0x00133b02
CMP byte ptr [0x001774fb],0x0
JNZ 0x00133d7e
MOV RAX,qword ptr [RSP + 0x58]
TEST RAX,RAX
JZ 0x00133b0f
ADD qword ptr [RAX],R15
MOV RCX,qword ptr [RSP + 0x60]
TEST RCX,RCX
JZ 0x00133b24
MOV RAX,qword ptr [RSP + 0x90]
ADD qword ptr [RCX],RAX
MOV RDI,qword ptr [RSP + 0x8]
CALL 0x0010c550
MOV EAX,EBX
MOV RDX,qword ptr [RSP + 0x118]
XOR RDX,qword ptr FS:[0x28]
JNZ 0x00133f99
ADD RSP,0x128
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
CALL 0x0010c9b0
MOV dword ptr [RAX],0x16
MOV EBX,0xffffffff
JMP 0x00133a74
CMP qword ptr [RSP + 0x20],R15
JZ 0x00133a20
CMP byte ptr [RSP + 0x7f],0x0
JZ 0x00133a20
LEA RAX,[0x1772c0]
CMP byte ptr [RAX + 0x23b],0x0
JZ 0x00133a20
MOV RDX,qword ptr [RSP + 0x20]
MOV RSI,R15
LEA RDI,[0x15d3f0]
MOV EAX,0x0
CALL 0x0012bddf
JMP 0x00133a20
MOV RDI,R13
CALL 0x00130f52
LEA RAX,[0x176e60]
MOVAPD XMM3,XMM0
SUBSD XMM3,qword ptr [RAX + 0x8]
MOVSD qword ptr [RSP + 0x68],XMM3
MOVSXD RDI,EBP
ADD RDI,qword ptr [RAX]
MOV qword ptr [RAX],RDI
PXOR XMM0,XMM0
CVTSI2SD XMM0,RDI
PXOR XMM1,XMM1
CVTSI2SD XMM1,qword ptr [0x001774e8]
DIVSD XMM0,XMM1
COMISD XMM0,XMM3
JBE 0x00133c8e
MOVSD XMM5,qword ptr [RAX + 0x10]
MOVSD qword ptr [RSP + 0x70],XMM5
SUBSD XMM0,XMM3
ADDSD XMM0,XMM5
MOVSD qword ptr [RSP + 0x50],XMM0
MOVSD XMM7,qword ptr [0x0015c908]
COMISD XMM7,XMM0
JA 0x00133cae
CMP byte ptr [0x001774fb],0x0
JNZ 0x00133ced
MOV RDI,R13
CALL 0x00130f52
MOVSD qword ptr [RSP + 0x68],XMM0
MOVSD XMM0,qword ptr [RSP + 0x50]
CALL 0x0013d652
MOV RDI,R13
CALL 0x00130ebd
SUBSD XMM0,qword ptr [RSP + 0x68]
MOVSD XMM7,qword ptr [RSP + 0x50]
SUBSD XMM7,XMM0
MOVAPD XMM0,XMM7
COMISD XMM7,qword ptr [0x0015c710]
JBE 0x00133d1f
LEA RAX,[0x176e60]
MOV RCX,qword ptr [0x0015c710]
MOV qword ptr [RAX + 0x10],RCX
LEA RBX,[0x176e60]
MOV qword ptr [RBX],0x0
MOV RDI,R13
CALL 0x00130f52
MOVSD qword ptr [RBX + 0x8],XMM0
JMP 0x00133eae
CMP byte ptr [0x001774fb],0x0
JZ 0x00133eae
CALL 0x0013d39d
MOVSD XMM0,qword ptr [RSP + 0x50]
MULSD XMM0,qword ptr [0x0015d650]
MOVSD XMM1,qword ptr [RSP + 0x68]
MOV RSI,RAX
LEA RDI,[0x15d428]
MOV EAX,0x2
CALL 0x0012bddf
JMP 0x00133eae
CALL 0x0013d39d
MOVSD XMM1,qword ptr [RSP + 0x70]
MOV RSI,RAX
MOVSD XMM0,qword ptr [RSP + 0x50]
MULSD XMM0,qword ptr [0x0015d650]
LEA RDI,[0x15d450]
MOV EAX,0x2
CALL 0x0012bddf
JMP 0x00133c39
MOVSD XMM7,qword ptr [0x0015d658]
COMISD XMM7,XMM0
JA 0x00133d3e
LEA RAX,[0x176e60]
MOVSD qword ptr [RAX + 0x10],XMM0
JMP 0x00133c8e
LEA RAX,[0x176e60]
MOV RCX,qword ptr [0x0015d658]
MOV qword ptr [RAX + 0x10],RCX
JMP 0x00133c8e
MOV EAX,0x2000
JMP 0x001336a3
MOV EBP,0xffffffff
JMP 0x00133f5d
MOV EBX,EAX
JMP 0x00133a74
MOV EBX,EAX
JMP 0x00133a74
MOV EBX,EAX
JMP 0x00133a74
MOV RDX,R15
LEA RDI,[0x15d480]
MOV EAX,0x0
CALL 0x0012bddf
JMP 0x00133b02
MOV RDI,R13
CALL 0x00130ebd
MOV RDI,R13
CALL 0x00130f52
MOVSD qword ptr [RSP + 0x48],XMM0
MOVSXD RBX,EBP
ADD R15,RBX
TEST R14,R14
JNZ 0x0013397c
LEA R9,[RSP + 0x90]
LEA R8,[RSP + 0x88]
MOV ECX,EBP
MOV RDX,qword ptr [RSP + 0x8]
MOV RSI,qword ptr [RSP + 0x38]
MOV RDI,qword ptr [RSP + 0x40]
CALL 0x00133125
TEST EAX,EAX
JS 0x00133d77
CMP dword ptr [RSP + 0x18],0x0
JZ 0x00133ea0
SUB R12,RBX
JNZ 0x00133ea0
MOV EDI,dword ptr [RSP + 0x1c]
CALL 0x0013350a
MOV RBX,RAX
TEST RAX,RAX
JZ 0x00133d5f
MOV RSI,qword ptr [RSP + 0x38]
TEST RSI,RSI
JZ 0x00133e41
MOV RCX,-0x1
MOV EAX,0x0
MOV RDI,RBX
SCASB.REPNE RDI
NOT RCX
LEA RDX,[RCX + -0x1]
MOV RCX,RSI
MOV ESI,0x1
MOV RDI,RBX
CALL 0x0010cc80
MOV RDI,RBX
CALL 0x0010c550
JMP 0x00133ea0
MOV qword ptr [RSP + 0x50],RBP
MOVSD XMM0,qword ptr [RSP + 0x50]
MOV EDX,EBX
MOV RSI,qword ptr [RSP + 0x8]
MOV EDI,dword ptr [RSP + 0x1c]
CALL 0x0010d64e
MOV EBP,EAX
TEST EBP,EBP
JLE 0x00133f5d
CMP byte ptr [RSP + 0x7c],0x0
JNZ 0x00133d97
CMP qword ptr [0x001774e8],0x0
JNZ 0x00133e90
CMP byte ptr [RSP + 0x7e],0x0
JZ 0x00133dad
MOV RDI,R13
CALL 0x00130ebd
TEST EBP,EBP
JG 0x00133d9f
CMP qword ptr [0x001774e8],0x0
JNZ 0x00133bb6
CMP byte ptr [RSP + 0x7c],0x0
JZ 0x00133eca
MOV RDI,R13
CALL 0x00130f52
MOVSXD RSI,EBP
MOV RDI,qword ptr [RSP + 0x28]
CALL 0x00130d09
CMP dword ptr [RSP + 0x14],0x0
JZ 0x00133edc
CMP R15,qword ptr [RSP + 0x20]
JGE 0x00133f5d
MOV RBP,qword ptr [0x001774b0]
CMP dword ptr [RSP + 0x18],0x0
JZ 0x001338d8
TEST R12,R12
JZ 0x001337f8
MOVSXD RBX,dword ptr [RSP + 0x78]
CMP RBX,R12
CMOVG RBX,R12
CMP byte ptr [RSP + 0x7d],0x0
JZ 0x00133e4b
LEA RAX,[0x1772c0]
PXOR XMM0,XMM0
UCOMISD XMM0,qword ptr [RAX + 0x1f0]
JP 0x001338ff
MOVSD XMM0,qword ptr [0x0015d648]
JNZ 0x001338ff
MOV EDX,EBX
MOV RSI,qword ptr [RSP + 0x8]
MOV EDI,dword ptr [RSP + 0x1c]
CALL 0x0010d64e
MOV EBP,EAX
TEST EAX,EAX
JNS 0x00133e68
CALL 0x0010c9b0
CMP dword ptr [RAX],0x6e
JZ 0x0013395f
TEST EBP,EBP
MOV EBX,0xffffffff
CMOVNS EBX,EBP
JMP 0x00133a74
CMP qword ptr [0x001774e8],0x0
JNZ 0x00133f7d
CMP byte ptr [RSP + 0x7e],0x0
JZ 0x00133f8f
MOV RDI,R13
CALL 0x00130ebd
MOV EBP,0x0
JMP 0x00133ea0
MOV EBP,0x0
JMP 0x00133eae
CALL 0x0010ca20
(translation_unit "/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */\n\nint FUN_00133529(long param_1,undefined4 param_2,undefined8 param_3,long param_4,long param_5,\n                long *param_6,long *param_7,undefined8 *param_8,uint param_9,FILE *param_10)\n\n{\n  char cVar1;\n  uint uVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  void *__ptr;\n  long lVar6;\n  char *pcVar7;\n  int *piVar8;\n  ulong uVar9;\n  ulong uVar10;\n  char *pcVar11;\n  ulong uVar12;\n  undefined8 *__ptr_00;\n  long lVar13;\n  long in_FS_OFFSET;\n  byte bVar14;\n  undefined8 uVar15;\n  double dVar16;\n  double dVar17;\n  double dVar18;\n  long local_130;\n  double local_110;\n  bool local_dc;\n  char local_db;\n  bool local_da;\n  long local_d0;\n  long local_c8;\n  char *local_c0;\n  void *local_b8;\n  int local_b0;\n  long local_a8;\n  undefined8 *local_a0;\n  int local_98;\n  code *local_78;\n  code *local_70;\n  undefined8 local_68;\n  long local_40;\n  \n  bVar14 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  __ptr = (void *)FUN_001494bf(0x2000);\n  uVar2 = param_9 & 1;\n  local_d0 = 0;\n  local_c8 = 0;\n  __ptr_00 = (undefined8 *)0x0;\n  if ((param_9 & 8) == 0) {\nLAB_001335e1:\n    if ((param_9 & 2) != 0) {\n      local_d0 = param_5;\n    }\n    if (DAT_00177498 == 0) {\n      local_db = '\0';\n      local_130 = 0;\n    }\n    else {\n      if (local_d0 != 0) {\n        param_5 = 0;\n      }\n      if (DAT_001772f8 != (char *)0x0) {\n        uVar9 = 0xffffffffffffffff;\n        pcVar7 = DAT_001772f8;\n        do {\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar1 = *pcVar7;\n          pcVar7 = pcVar7 + (ulong)bVar14 * -2 + 1;\n        } while (cVar1 != '\0');\n        param_1 = param_1 + ~uVar9;\n      }\n      local_130 = FUN_00130cae(param_1,param_5,param_5 + param_4);\n      local_db = FUN_00130cfd(local_130);\n    }\n    if (DAT_001774e8 == 0) {\n      if (local_130 != 0 || param_8 != (undefined8 *)0x0) goto LAB_00133682;\n      uVar9 = 0x2000;\n      lVar6 = 0;\n    }\n    else {\n      DAT_00176e60 = 0;\n      DAT_00176e68 = 0.0;\n      DAT_00176e70 = 0.0;\nLAB_00133682:\n      lVar6 = FUN_00130d6b();\n      if ((DAT_001774e8 == 0) || (uVar9 = DAT_001774e8, 0x1fff < (long)DAT_001774e8)) {\n        uVar9 = 0x2000;\n      }\n    }\n    local_da = param_8 != (undefined8 *)0x0;\n    local_dc = local_130 != 0;\n    iVar3 = (int)uVar9;\n    uVar12 = 0;\n    lVar13 = 0;\n    local_110 = 0.0;\n    iVar5 = 0;\n    while ((dVar18 = DAT_001774b0, uVar2 == 0 || (lVar13 < param_4))) {\n      if ((param_9 & 4) == 0) {\n        uVar10 = uVar9 & 0xffffffff;\n        if (uVar2 != 0) {\n          uVar10 = param_4 - lVar13;\n          if ((long)iVar3 < param_4 - lVar13) {\n            uVar10 = (long)iVar3;\n          }\n        }\n      }\n      else {\n        if (uVar12 == 0) {\n          pcVar7 = (char *)FUN_0013350a(param_2);\n          if (pcVar7 != (char *)0x0) {\n            if (param_10 != (FILE *)0x0) {\n              uVar12 = 0xffffffffffffffff;\n              pcVar11 = pcVar7;\n              do {\n                if (uVar12 == 0) break;\n                uVar12 = uVar12 - 1;\n                cVar1 = *pcVar11;\n                pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n              } while (cVar1 != '\0');\n              fwrite(pcVar7,1,~uVar12 - 1,param_10);\n            }\n            uVar12 = strtol(pcVar7,&local_c0,0x10);\n            free(pcVar7);\n            if (-1 < (long)uVar12) {\n              if (uVar12 != 0) goto LAB_00133ef7;\n              pcVar7 = (char *)FUN_0013350a(param_2);\n              iVar4 = -1;\n              if (pcVar7 != (char *)0x0) {\n                if (param_10 == (FILE *)0x0) goto LAB_001338bc;\n                uVar9 = 0xffffffffffffffff;\n                pcVar11 = pcVar7;\n                goto code_r0x001338a0;\n              }\n              goto LAB_00133a74;\n            }\n          }\n          iVar5 = -1;\n          break;\n        }\nLAB_00133ef7:\n        uVar10 = (long)iVar3;\n        if ((long)uVar12 < (long)iVar3) {\n          uVar10 = uVar12;\n        }\n      }\n      if (local_db == '\0') {\n        iVar5 = FUN_0010d64e(dVar18,param_2,__ptr,uVar10 & 0xffffffff);\nLAB_00133e68:\n        if (iVar5 < 1) break;\n        if (local_dc) {\n          FUN_00130ebd(lVar6);\nLAB_00133d9f:\n          local_110 = (double)FUN_00130f52(lVar6);\n        }\n        else if ((DAT_001774e8 != 0) || (local_da)) {\n          FUN_00130ebd(lVar6);\n          if (iVar5 < 1) goto LAB_00133ea0;\n          goto LAB_00133d9f;\n        }\n        lVar13 = lVar13 + iVar5;\n        if (__ptr_00 == (undefined8 *)0x0) {\n          iVar4 = FUN_00133125(param_3,param_10,__ptr,iVar5,&local_d0,&local_c8);\n          if (iVar4 < 0) goto LAB_00133a74;\n        }\n        else {\n          iVar4 = FUN_00133125(0,param_10,__ptr,iVar5,0,0);\n          if (iVar4 < 0) goto LAB_00133a74;\n          local_b8 = __ptr;\n          local_b0 = iVar5;\n          do {\n            local_98 = 0x8000;\n            local_a0 = __ptr_00;\n            iVar4 = inflate(&local_b8,0);\n            if (iVar4 == -3) {\nLAB_00133b59:\n              piVar8 = __errno_location();\n              *piVar8 = 0x16;\n              iVar4 = -1;\n              goto LAB_00133a74;\n            }\n            if (iVar4 < -2) {\n              if (iVar4 == -4) {\n                piVar8 = __errno_location();\n                *piVar8 = 0xc;\n                iVar4 = -1;\n                goto LAB_00133a74;\n              }\n            }\n            else if (iVar4 == 1) {\n              if (((param_4 != lVar13) && (uVar2 != 0)) && (DAT_001774fb != '\0')) {\n                FUN_0012bddf("zlib stream ended unexpectedly after %ld/%ld bytes\n",lVar13,param_4);\n              }\n            }\n            else if (iVar4 == 2) goto LAB_00133b59;\n            iVar4 = FUN_00133125(param_3,0,__ptr_00,0x8000 - local_98,&local_d0,&local_c8);\n            if (iVar4 < 0) goto LAB_00133a74;\n          } while (local_98 == 0);\n        }\n        if (((param_9 & 4) != 0) && (uVar12 = uVar12 - (long)iVar5, uVar12 == 0)) {\n          pcVar7 = (char *)FUN_0013350a(param_2);\n          if (pcVar7 == (char *)0x0) {\n            iVar5 = -1;\n            break;\n          }\n          if (param_10 != (FILE *)0x0) {\n            uVar10 = 0xffffffffffffffff;\n            pcVar11 = pcVar7;\n            do {\n              if (uVar10 == 0) break;\n              uVar10 = uVar10 - 1;\n              cVar1 = *pcVar11;\n              pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n            } while (cVar1 != '\0');\n            fwrite(pcVar7,1,~uVar10 - 1,param_10);\n          }\n          free(pcVar7);\n        }\nLAB_00133ea0:\n        if (DAT_001774e8 != 0) {\n          dVar16 = (double)FUN_00130f52(lVar6);\n          dVar18 = DAT_00176e70;\n          dVar16 = dVar16 - DAT_00176e68;\n          DAT_00176e60 = iVar5 + DAT_00176e60;\n          if (dVar16 < (double)DAT_00176e60 / (double)(long)DAT_001774e8) {\n            dVar17 = ((double)DAT_00176e60 / (double)(long)DAT_001774e8 - dVar16) + DAT_00176e70;\n            if (dVar17 < _DAT_0015c908) {\n              if (DAT_001774fb != '\0') {\n                uVar15 = FUN_0013d39d();\n                FUN_0012bddf(dVar17 * DAT_0015d650,dVar16,"deferring a %.2f ms sleep (%s/%.2f).\n",\n                             uVar15);\n              }\n              goto LAB_00133eae;\n            }\n            if (DAT_001774fb != '\0') {\n              uVar15 = FUN_0013d39d();\n              FUN_0012bddf(dVar17 * DAT_0015d650,dVar18,\n                           "\nsleeping %.2f ms for %s bytes, adjust %.2f ms\n",uVar15);\n            }\n            dVar18 = (double)FUN_00130f52(lVar6);\n            FUN_0013d652(dVar17);\n            dVar16 = (double)FUN_00130ebd(lVar6);\n            DAT_00176e70 = dVar17 - (dVar16 - dVar18);\n            if (DAT_00176e70 <= _DAT_0015c710) {\n              if (DAT_00176e70 < DAT_0015d658) {\n                DAT_00176e70 = DAT_0015d658;\n              }\n            }\n            else {\n              DAT_00176e70 = _DAT_0015c710;\n            }\n          }\n          DAT_00176e60 = 0;\n          DAT_00176e68 = (double)FUN_00130f52(lVar6);\n        }\n      }\n      else {\n        if (DAT_001774b0 != 0.0) {\n          dVar18 = (double)FUN_00130f52(lVar6);\n          if ((DAT_001774b0 < (dVar18 - local_110) + DAT_0015d648) &&\n             (DAT_001774b0 - (dVar18 - local_110) < 0.0)) {\n            piVar8 = __errno_location();\n            *piVar8 = 0x6e;\n            iVar4 = -1;\n            goto LAB_00133a74;\n          }\n        }\n        iVar5 = FUN_0010d64e(param_2,__ptr,uVar10 & 0xffffffff);\n        if (-1 < iVar5) goto LAB_00133e68;\n        piVar8 = __errno_location();\n        if (*piVar8 != 0x6e) break;\n        if (local_dc) {\n          FUN_00130ebd(lVar6);\n          iVar5 = 0;\n          goto LAB_00133ea0;\n        }\n        if ((DAT_001774e8 != 0) || (local_da)) {\n          FUN_00130ebd(lVar6);\n          iVar5 = 0;\n          goto LAB_00133ea0;\n        }\n        iVar5 = 0;\n      }\nLAB_00133eae:\n      if (local_dc) {\n        FUN_00130f52(lVar6);\n        FUN_00130d09(local_130,(long)iVar5);\n      }\n    }\n    iVar4 = -1;\n    if (-1 < iVar5) {\n      iVar4 = iVar5;\n    }\n    goto LAB_00133a74;\n  }\n  __ptr_00 = (undefined8 *)FUN_001494bf(0x8000);\n  if (__ptr_00 == (undefined8 *)0x0) {\n    piVar8 = __errno_location();\n    *piVar8 = 0xc;\n  }\n  else {\n    local_78 = FUN_00133111;\n    local_70 = FUN_00133100;\n    local_68 = 0;\n    local_b8 = (void *)0x0;\n    local_b0 = 0;\n    iVar3 = inflateInit2_(&local_b8,0x2f,"1.2.11",0x70);\n    if (iVar3 == 0) goto LAB_001335e1;\n    free(__ptr_00);\n    iVar5 = 0xc;\n    if (iVar3 != -4) {\n      iVar5 = 0x16;\n    }\n    piVar8 = __errno_location();\n    *piVar8 = iVar5;\n  }\n  lVar13 = 0;\n  iVar4 = -1;\n  if (param_8 == (undefined8 *)0x0) goto LAB_00133ab4;\n  __ptr_00 = (undefined8 *)0x0;\n  lVar13 = 0;\n  lVar6 = 0;\n  iVar4 = -1;\nLAB_00133a96:\n  uVar15 = FUN_00130f52(lVar6);\n  *param_8 = uVar15;\n  goto LAB_00133aa7;\n  while( true ) {\n    uVar9 = uVar9 - 1;\n    cVar1 = *pcVar11;\n    pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n    if (cVar1 == '\0') break;\ncode_r0x001338a0:\n    if (uVar9 == 0) break;\n  }\n  fwrite(pcVar7,1,~uVar9 - 1,param_10);\nLAB_001338bc:\n  free(pcVar7);\n  iVar4 = 0;\nLAB_00133a74:\n  if (local_130 != 0) {\n    FUN_00130f52(lVar6);\n    FUN_00130d26(local_130);\n  }\n  if (param_8 != (undefined8 *)0x0) goto LAB_00133a96;\nLAB_00133aa7:\n  param_8 = __ptr_00;\n  if (lVar6 != 0) {\n    FUN_00130d39(lVar6);\n  }\nLAB_00133ab4:\n  if (param_8 != (undefined8 *)0x0) {\n    iVar3 = inflateEnd(&local_b8);\n    if ((-1 < iVar4) && (iVar4 = iVar3, iVar3 != 0)) {\n      piVar8 = __errno_location();\n      *piVar8 = 0x16;\n      iVar4 = -1;\n    }\n    free(param_8);\n    if ((local_a8 != lVar13) && (DAT_001774fb != '\0')) {\n      FUN_0012bddf("zlib read size differs from raw read size (%lu/%lu)\n",local_a8,lVar13);\n    }\n  }\n  if (param_6 != (long *)0x0) {\n    *param_6 = *param_6 + lVar13;\n  }\n  if (param_7 != (long *)0x0) {\n    *param_7 = *param_7 + local_c8;\n  }\n  free(__ptr);\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar4;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}\n\n" comment (function_definition "int FUN_00133529(long param_1,undefined4 param_2,undefined8 param_3,long param_4,long param_5,\n                long *param_6,long *param_7,undefined8 *param_8,uint param_9,FILE *param_10)\n\n{\n  char cVar1;\n  uint uVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  void *__ptr;\n  long lVar6;\n  char *pcVar7;\n  int *piVar8;\n  ulong uVar9;\n  ulong uVar10;\n  char *pcVar11;\n  ulong uVar12;\n  undefined8 *__ptr_00;\n  long lVar13;\n  long in_FS_OFFSET;\n  byte bVar14;\n  undefined8 uVar15;\n  double dVar16;\n  double dVar17;\n  double dVar18;\n  long local_130;\n  double local_110;\n  bool local_dc;\n  char local_db;\n  bool local_da;\n  long local_d0;\n  long local_c8;\n  char *local_c0;\n  void *local_b8;\n  int local_b0;\n  long local_a8;\n  undefined8 *local_a0;\n  int local_98;\n  code *local_78;\n  code *local_70;\n  undefined8 local_68;\n  long local_40;\n  \n  bVar14 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  __ptr = (void *)FUN_001494bf(0x2000);\n  uVar2 = param_9 & 1;\n  local_d0 = 0;\n  local_c8 = 0;\n  __ptr_00 = (undefined8 *)0x0;\n  if ((param_9 & 8) == 0) {\nLAB_001335e1:\n    if ((param_9 & 2) != 0) {\n      local_d0 = param_5;\n    }\n    if (DAT_00177498 == 0) {\n      local_db = '\0';\n      local_130 = 0;\n    }\n    else {\n      if (local_d0 != 0) {\n        param_5 = 0;\n      }\n      if (DAT_001772f8 != (char *)0x0) {\n        uVar9 = 0xffffffffffffffff;\n        pcVar7 = DAT_001772f8;\n        do {\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar1 = *pcVar7;\n          pcVar7 = pcVar7 + (ulong)bVar14 * -2 + 1;\n        } while (cVar1 != '\0');\n        param_1 = param_1 + ~uVar9;\n      }\n      local_130 = FUN_00130cae(param_1,param_5,param_5 + param_4);\n      local_db = FUN_00130cfd(local_130);\n    }\n    if (DAT_001774e8 == 0) {\n      if (local_130 != 0 || param_8 != (undefined8 *)0x0) goto LAB_00133682;\n      uVar9 = 0x2000;\n      lVar6 = 0;\n    }\n    else {\n      DAT_00176e60 = 0;\n      DAT_00176e68 = 0.0;\n      DAT_00176e70 = 0.0;\nLAB_00133682:\n      lVar6 = FUN_00130d6b();\n      if ((DAT_001774e8 == 0) || (uVar9 = DAT_001774e8, 0x1fff < (long)DAT_001774e8)) {\n        uVar9 = 0x2000;\n      }\n    }\n    local_da = param_8 != (undefined8 *)0x0;\n    local_dc = local_130 != 0;\n    iVar3 = (int)uVar9;\n    uVar12 = 0;\n    lVar13 = 0;\n    local_110 = 0.0;\n    iVar5 = 0;\n    while ((dVar18 = DAT_001774b0, uVar2 == 0 || (lVar13 < param_4))) {\n      if ((param_9 & 4) == 0) {\n        uVar10 = uVar9 & 0xffffffff;\n        if (uVar2 != 0) {\n          uVar10 = param_4 - lVar13;\n          if ((long)iVar3 < param_4 - lVar13) {\n            uVar10 = (long)iVar3;\n          }\n        }\n      }\n      else {\n        if (uVar12 == 0) {\n          pcVar7 = (char *)FUN_0013350a(param_2);\n          if (pcVar7 != (char *)0x0) {\n            if (param_10 != (FILE *)0x0) {\n              uVar12 = 0xffffffffffffffff;\n              pcVar11 = pcVar7;\n              do {\n                if (uVar12 == 0) break;\n                uVar12 = uVar12 - 1;\n                cVar1 = *pcVar11;\n                pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n              } while (cVar1 != '\0');\n              fwrite(pcVar7,1,~uVar12 - 1,param_10);\n            }\n            uVar12 = strtol(pcVar7,&local_c0,0x10);\n            free(pcVar7);\n            if (-1 < (long)uVar12) {\n              if (uVar12 != 0) goto LAB_00133ef7;\n              pcVar7 = (char *)FUN_0013350a(param_2);\n              iVar4 = -1;\n              if (pcVar7 != (char *)0x0) {\n                if (param_10 == (FILE *)0x0) goto LAB_001338bc;\n                uVar9 = 0xffffffffffffffff;\n                pcVar11 = pcVar7;\n                goto code_r0x001338a0;\n              }\n              goto LAB_00133a74;\n            }\n          }\n          iVar5 = -1;\n          break;\n        }\nLAB_00133ef7:\n        uVar10 = (long)iVar3;\n        if ((long)uVar12 < (long)iVar3) {\n          uVar10 = uVar12;\n        }\n      }\n      if (local_db == '\0') {\n        iVar5 = FUN_0010d64e(dVar18,param_2,__ptr,uVar10 & 0xffffffff);\nLAB_00133e68:\n        if (iVar5 < 1) break;\n        if (local_dc) {\n          FUN_00130ebd(lVar6);\nLAB_00133d9f:\n          local_110 = (double)FUN_00130f52(lVar6);\n        }\n        else if ((DAT_001774e8 != 0) || (local_da)) {\n          FUN_00130ebd(lVar6);\n          if (iVar5 < 1) goto LAB_00133ea0;\n          goto LAB_00133d9f;\n        }\n        lVar13 = lVar13 + iVar5;\n        if (__ptr_00 == (undefined8 *)0x0) {\n          iVar4 = FUN_00133125(param_3,param_10,__ptr,iVar5,&local_d0,&local_c8);\n          if (iVar4 < 0) goto LAB_00133a74;\n        }\n        else {\n          iVar4 = FUN_00133125(0,param_10,__ptr,iVar5,0,0);\n          if (iVar4 < 0) goto LAB_00133a74;\n          local_b8 = __ptr;\n          local_b0 = iVar5;\n          do {\n            local_98 = 0x8000;\n            local_a0 = __ptr_00;\n            iVar4 = inflate(&local_b8,0);\n            if (iVar4 == -3) {\nLAB_00133b59:\n              piVar8 = __errno_location();\n              *piVar8 = 0x16;\n              iVar4 = -1;\n              goto LAB_00133a74;\n            }\n            if (iVar4 < -2) {\n              if (iVar4 == -4) {\n                piVar8 = __errno_location();\n                *piVar8 = 0xc;\n                iVar4 = -1;\n                goto LAB_00133a74;\n              }\n            }\n            else if (iVar4 == 1) {\n              if (((param_4 != lVar13) && (uVar2 != 0)) && (DAT_001774fb != '\0')) {\n                FUN_0012bddf("zlib stream ended unexpectedly after %ld/%ld bytes\n",lVar13,param_4);\n              }\n            }\n            else if (iVar4 == 2) goto LAB_00133b59;\n            iVar4 = FUN_00133125(param_3,0,__ptr_00,0x8000 - local_98,&local_d0,&local_c8);\n            if (iVar4 < 0) goto LAB_00133a74;\n          } while (local_98 == 0);\n        }\n        if (((param_9 & 4) != 0) && (uVar12 = uVar12 - (long)iVar5, uVar12 == 0)) {\n          pcVar7 = (char *)FUN_0013350a(param_2);\n          if (pcVar7 == (char *)0x0) {\n            iVar5 = -1;\n            break;\n          }\n          if (param_10 != (FILE *)0x0) {\n            uVar10 = 0xffffffffffffffff;\n            pcVar11 = pcVar7;\n            do {\n              if (uVar10 == 0) break;\n              uVar10 = uVar10 - 1;\n              cVar1 = *pcVar11;\n              pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n            } while (cVar1 != '\0');\n            fwrite(pcVar7,1,~uVar10 - 1,param_10);\n          }\n          free(pcVar7);\n        }\nLAB_00133ea0:\n        if (DAT_001774e8 != 0) {\n          dVar16 = (double)FUN_00130f52(lVar6);\n          dVar18 = DAT_00176e70;\n          dVar16 = dVar16 - DAT_00176e68;\n          DAT_00176e60 = iVar5 + DAT_00176e60;\n          if (dVar16 < (double)DAT_00176e60 / (double)(long)DAT_001774e8) {\n            dVar17 = ((double)DAT_00176e60 / (double)(long)DAT_001774e8 - dVar16) + DAT_00176e70;\n            if (dVar17 < _DAT_0015c908) {\n              if (DAT_001774fb != '\0') {\n                uVar15 = FUN_0013d39d();\n                FUN_0012bddf(dVar17 * DAT_0015d650,dVar16,"deferring a %.2f ms sleep (%s/%.2f).\n",\n                             uVar15);\n              }\n              goto LAB_00133eae;\n            }\n            if (DAT_001774fb != '\0') {\n              uVar15 = FUN_0013d39d();\n              FUN_0012bddf(dVar17 * DAT_0015d650,dVar18,\n                           "\nsleeping %.2f ms for %s bytes, adjust %.2f ms\n",uVar15);\n            }\n            dVar18 = (double)FUN_00130f52(lVar6);\n            FUN_0013d652(dVar17);\n            dVar16 = (double)FUN_00130ebd(lVar6);\n            DAT_00176e70 = dVar17 - (dVar16 - dVar18);\n            if (DAT_00176e70 <= _DAT_0015c710) {\n              if (DAT_00176e70 < DAT_0015d658) {\n                DAT_00176e70 = DAT_0015d658;\n              }\n            }\n            else {\n              DAT_00176e70 = _DAT_0015c710;\n            }\n          }\n          DAT_00176e60 = 0;\n          DAT_00176e68 = (double)FUN_00130f52(lVar6);\n        }\n      }\n      else {\n        if (DAT_001774b0 != 0.0) {\n          dVar18 = (double)FUN_00130f52(lVar6);\n          if ((DAT_001774b0 < (dVar18 - local_110) + DAT_0015d648) &&\n             (DAT_001774b0 - (dVar18 - local_110) < 0.0)) {\n            piVar8 = __errno_location();\n            *piVar8 = 0x6e;\n            iVar4 = -1;\n            goto LAB_00133a74;\n          }\n        }\n        iVar5 = FUN_0010d64e(param_2,__ptr,uVar10 & 0xffffffff);\n        if (-1 < iVar5) goto LAB_00133e68;\n        piVar8 = __errno_location();\n        if (*piVar8 != 0x6e) break;\n        if (local_dc) {\n          FUN_00130ebd(lVar6);\n          iVar5 = 0;\n          goto LAB_00133ea0;\n        }\n        if ((DAT_001774e8 != 0) || (local_da)) {\n          FUN_00130ebd(lVar6);\n          iVar5 = 0;\n          goto LAB_00133ea0;\n        }\n        iVar5 = 0;\n      }\nLAB_00133eae:\n      if (local_dc) {\n        FUN_00130f52(lVar6);\n        FUN_00130d09(local_130,(long)iVar5);\n      }\n    }\n    iVar4 = -1;\n    if (-1 < iVar5) {\n      iVar4 = iVar5;\n    }\n    goto LAB_00133a74;\n  }\n  __ptr_00 = (undefined8 *)FUN_001494bf(0x8000);\n  if (__ptr_00 == (undefined8 *)0x0) {\n    piVar8 = __errno_location();\n    *piVar8 = 0xc;\n  }\n  else {\n    local_78 = FUN_00133111;\n    local_70 = FUN_00133100;\n    local_68 = 0;\n    local_b8 = (void *)0x0;\n    local_b0 = 0;\n    iVar3 = inflateInit2_(&local_b8,0x2f,"1.2.11",0x70);\n    if (iVar3 == 0) goto LAB_001335e1;\n    free(__ptr_00);\n    iVar5 = 0xc;\n    if (iVar3 != -4) {\n      iVar5 = 0x16;\n    }\n    piVar8 = __errno_location();\n    *piVar8 = iVar5;\n  }\n  lVar13 = 0;\n  iVar4 = -1;\n  if (param_8 == (undefined8 *)0x0) goto LAB_00133ab4;\n  __ptr_00 = (undefined8 *)0x0;\n  lVar13 = 0;\n  lVar6 = 0;\n  iVar4 = -1;\nLAB_00133a96:\n  uVar15 = FUN_00130f52(lVar6);\n  *param_8 = uVar15;\n  goto LAB_00133aa7;\n  while( true ) {\n    uVar9 = uVar9 - 1;\n    cVar1 = *pcVar11;\n    pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n    if (cVar1 == '\0') break;\ncode_r0x001338a0:\n    if (uVar9 == 0) break;\n  }\n  fwrite(pcVar7,1,~uVar9 - 1,param_10);\nLAB_001338bc:\n  free(pcVar7);\n  iVar4 = 0;\nLAB_00133a74:\n  if (local_130 != 0) {\n    FUN_00130f52(lVar6);\n    FUN_00130d26(local_130);\n  }\n  if (param_8 != (undefined8 *)0x0) goto LAB_00133a96;\nLAB_00133aa7:\n  param_8 = __ptr_00;\n  if (lVar6 != 0) {\n    FUN_00130d39(lVar6);\n  }\nLAB_00133ab4:\n  if (param_8 != (undefined8 *)0x0) {\n    iVar3 = inflateEnd(&local_b8);\n    if ((-1 < iVar4) && (iVar4 = iVar3, iVar3 != 0)) {\n      piVar8 = __errno_location();\n      *piVar8 = 0x16;\n      iVar4 = -1;\n    }\n    free(param_8);\n    if ((local_a8 != lVar13) && (DAT_001774fb != '\0')) {\n      FUN_0012bddf("zlib read size differs from raw read size (%lu/%lu)\n",local_a8,lVar13);\n    }\n  }\n  if (param_6 != (long *)0x0) {\n    *param_6 = *param_6 + lVar13;\n  }\n  if (param_7 != (long *)0x0) {\n    *param_7 = *param_7 + local_c8;\n  }\n  free(__ptr);\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar4;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}" primitive_type (function_declarator "FUN_00133529(long param_1,undefined4 param_2,undefined8 param_3,long param_4,long param_5,\n                long *param_6,long *param_7,undefined8 *param_8,uint param_9,FILE *param_10)" identifier (parameter_list "(long param_1,undefined4 param_2,undefined8 param_3,long param_4,long param_5,\n                long *param_6,long *param_7,undefined8 *param_8,uint param_9,FILE *param_10)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "undefined8 param_3" type_identifier identifier) , (parameter_declaration "long param_4" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long param_5" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long *param_6" (sized_type_specifier "long" long) (pointer_declarator "*param_6" * identifier)) , (parameter_declaration "long *param_7" (sized_type_specifier "long" long) (pointer_declarator "*param_7" * identifier)) , (parameter_declaration "undefined8 *param_8" type_identifier (pointer_declarator "*param_8" * identifier)) , (parameter_declaration "uint param_9" type_identifier identifier) , (parameter_declaration "FILE *param_10" type_identifier (pointer_declarator "*param_10" * identifier)) ))) (compound_statement "{\n  char cVar1;\n  uint uVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  void *__ptr;\n  long lVar6;\n  char *pcVar7;\n  int *piVar8;\n  ulong uVar9;\n  ulong uVar10;\n  char *pcVar11;\n  ulong uVar12;\n  undefined8 *__ptr_00;\n  long lVar13;\n  long in_FS_OFFSET;\n  byte bVar14;\n  undefined8 uVar15;\n  double dVar16;\n  double dVar17;\n  double dVar18;\n  long local_130;\n  double local_110;\n  bool local_dc;\n  char local_db;\n  bool local_da;\n  long local_d0;\n  long local_c8;\n  char *local_c0;\n  void *local_b8;\n  int local_b0;\n  long local_a8;\n  undefined8 *local_a0;\n  int local_98;\n  code *local_78;\n  code *local_70;\n  undefined8 local_68;\n  long local_40;\n  \n  bVar14 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  __ptr = (void *)FUN_001494bf(0x2000);\n  uVar2 = param_9 & 1;\n  local_d0 = 0;\n  local_c8 = 0;\n  __ptr_00 = (undefined8 *)0x0;\n  if ((param_9 & 8) == 0) {\nLAB_001335e1:\n    if ((param_9 & 2) != 0) {\n      local_d0 = param_5;\n    }\n    if (DAT_00177498 == 0) {\n      local_db = '\0';\n      local_130 = 0;\n    }\n    else {\n      if (local_d0 != 0) {\n        param_5 = 0;\n      }\n      if (DAT_001772f8 != (char *)0x0) {\n        uVar9 = 0xffffffffffffffff;\n        pcVar7 = DAT_001772f8;\n        do {\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar1 = *pcVar7;\n          pcVar7 = pcVar7 + (ulong)bVar14 * -2 + 1;\n        } while (cVar1 != '\0');\n        param_1 = param_1 + ~uVar9;\n      }\n      local_130 = FUN_00130cae(param_1,param_5,param_5 + param_4);\n      local_db = FUN_00130cfd(local_130);\n    }\n    if (DAT_001774e8 == 0) {\n      if (local_130 != 0 || param_8 != (undefined8 *)0x0) goto LAB_00133682;\n      uVar9 = 0x2000;\n      lVar6 = 0;\n    }\n    else {\n      DAT_00176e60 = 0;\n      DAT_00176e68 = 0.0;\n      DAT_00176e70 = 0.0;\nLAB_00133682:\n      lVar6 = FUN_00130d6b();\n      if ((DAT_001774e8 == 0) || (uVar9 = DAT_001774e8, 0x1fff < (long)DAT_001774e8)) {\n        uVar9 = 0x2000;\n      }\n    }\n    local_da = param_8 != (undefined8 *)0x0;\n    local_dc = local_130 != 0;\n    iVar3 = (int)uVar9;\n    uVar12 = 0;\n    lVar13 = 0;\n    local_110 = 0.0;\n    iVar5 = 0;\n    while ((dVar18 = DAT_001774b0, uVar2 == 0 || (lVar13 < param_4))) {\n      if ((param_9 & 4) == 0) {\n        uVar10 = uVar9 & 0xffffffff;\n        if (uVar2 != 0) {\n          uVar10 = param_4 - lVar13;\n          if ((long)iVar3 < param_4 - lVar13) {\n            uVar10 = (long)iVar3;\n          }\n        }\n      }\n      else {\n        if (uVar12 == 0) {\n          pcVar7 = (char *)FUN_0013350a(param_2);\n          if (pcVar7 != (char *)0x0) {\n            if (param_10 != (FILE *)0x0) {\n              uVar12 = 0xffffffffffffffff;\n              pcVar11 = pcVar7;\n              do {\n                if (uVar12 == 0) break;\n                uVar12 = uVar12 - 1;\n                cVar1 = *pcVar11;\n                pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n              } while (cVar1 != '\0');\n              fwrite(pcVar7,1,~uVar12 - 1,param_10);\n            }\n            uVar12 = strtol(pcVar7,&local_c0,0x10);\n            free(pcVar7);\n            if (-1 < (long)uVar12) {\n              if (uVar12 != 0) goto LAB_00133ef7;\n              pcVar7 = (char *)FUN_0013350a(param_2);\n              iVar4 = -1;\n              if (pcVar7 != (char *)0x0) {\n                if (param_10 == (FILE *)0x0) goto LAB_001338bc;\n                uVar9 = 0xffffffffffffffff;\n                pcVar11 = pcVar7;\n                goto code_r0x001338a0;\n              }\n              goto LAB_00133a74;\n            }\n          }\n          iVar5 = -1;\n          break;\n        }\nLAB_00133ef7:\n        uVar10 = (long)iVar3;\n        if ((long)uVar12 < (long)iVar3) {\n          uVar10 = uVar12;\n        }\n      }\n      if (local_db == '\0') {\n        iVar5 = FUN_0010d64e(dVar18,param_2,__ptr,uVar10 & 0xffffffff);\nLAB_00133e68:\n        if (iVar5 < 1) break;\n        if (local_dc) {\n          FUN_00130ebd(lVar6);\nLAB_00133d9f:\n          local_110 = (double)FUN_00130f52(lVar6);\n        }\n        else if ((DAT_001774e8 != 0) || (local_da)) {\n          FUN_00130ebd(lVar6);\n          if (iVar5 < 1) goto LAB_00133ea0;\n          goto LAB_00133d9f;\n        }\n        lVar13 = lVar13 + iVar5;\n        if (__ptr_00 == (undefined8 *)0x0) {\n          iVar4 = FUN_00133125(param_3,param_10,__ptr,iVar5,&local_d0,&local_c8);\n          if (iVar4 < 0) goto LAB_00133a74;\n        }\n        else {\n          iVar4 = FUN_00133125(0,param_10,__ptr,iVar5,0,0);\n          if (iVar4 < 0) goto LAB_00133a74;\n          local_b8 = __ptr;\n          local_b0 = iVar5;\n          do {\n            local_98 = 0x8000;\n            local_a0 = __ptr_00;\n            iVar4 = inflate(&local_b8,0);\n            if (iVar4 == -3) {\nLAB_00133b59:\n              piVar8 = __errno_location();\n              *piVar8 = 0x16;\n              iVar4 = -1;\n              goto LAB_00133a74;\n            }\n            if (iVar4 < -2) {\n              if (iVar4 == -4) {\n                piVar8 = __errno_location();\n                *piVar8 = 0xc;\n                iVar4 = -1;\n                goto LAB_00133a74;\n              }\n            }\n            else if (iVar4 == 1) {\n              if (((param_4 != lVar13) && (uVar2 != 0)) && (DAT_001774fb != '\0')) {\n                FUN_0012bddf("zlib stream ended unexpectedly after %ld/%ld bytes\n",lVar13,param_4);\n              }\n            }\n            else if (iVar4 == 2) goto LAB_00133b59;\n            iVar4 = FUN_00133125(param_3,0,__ptr_00,0x8000 - local_98,&local_d0,&local_c8);\n            if (iVar4 < 0) goto LAB_00133a74;\n          } while (local_98 == 0);\n        }\n        if (((param_9 & 4) != 0) && (uVar12 = uVar12 - (long)iVar5, uVar12 == 0)) {\n          pcVar7 = (char *)FUN_0013350a(param_2);\n          if (pcVar7 == (char *)0x0) {\n            iVar5 = -1;\n            break;\n          }\n          if (param_10 != (FILE *)0x0) {\n            uVar10 = 0xffffffffffffffff;\n            pcVar11 = pcVar7;\n            do {\n              if (uVar10 == 0) break;\n              uVar10 = uVar10 - 1;\n              cVar1 = *pcVar11;\n              pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n            } while (cVar1 != '\0');\n            fwrite(pcVar7,1,~uVar10 - 1,param_10);\n          }\n          free(pcVar7);\n        }\nLAB_00133ea0:\n        if (DAT_001774e8 != 0) {\n          dVar16 = (double)FUN_00130f52(lVar6);\n          dVar18 = DAT_00176e70;\n          dVar16 = dVar16 - DAT_00176e68;\n          DAT_00176e60 = iVar5 + DAT_00176e60;\n          if (dVar16 < (double)DAT_00176e60 / (double)(long)DAT_001774e8) {\n            dVar17 = ((double)DAT_00176e60 / (double)(long)DAT_001774e8 - dVar16) + DAT_00176e70;\n            if (dVar17 < _DAT_0015c908) {\n              if (DAT_001774fb != '\0') {\n                uVar15 = FUN_0013d39d();\n                FUN_0012bddf(dVar17 * DAT_0015d650,dVar16,"deferring a %.2f ms sleep (%s/%.2f).\n",\n                             uVar15);\n              }\n              goto LAB_00133eae;\n            }\n            if (DAT_001774fb != '\0') {\n              uVar15 = FUN_0013d39d();\n              FUN_0012bddf(dVar17 * DAT_0015d650,dVar18,\n                           "\nsleeping %.2f ms for %s bytes, adjust %.2f ms\n",uVar15);\n            }\n            dVar18 = (double)FUN_00130f52(lVar6);\n            FUN_0013d652(dVar17);\n            dVar16 = (double)FUN_00130ebd(lVar6);\n            DAT_00176e70 = dVar17 - (dVar16 - dVar18);\n            if (DAT_00176e70 <= _DAT_0015c710) {\n              if (DAT_00176e70 < DAT_0015d658) {\n                DAT_00176e70 = DAT_0015d658;\n              }\n            }\n            else {\n              DAT_00176e70 = _DAT_0015c710;\n            }\n          }\n          DAT_00176e60 = 0;\n          DAT_00176e68 = (double)FUN_00130f52(lVar6);\n        }\n      }\n      else {\n        if (DAT_001774b0 != 0.0) {\n          dVar18 = (double)FUN_00130f52(lVar6);\n          if ((DAT_001774b0 < (dVar18 - local_110) + DAT_0015d648) &&\n             (DAT_001774b0 - (dVar18 - local_110) < 0.0)) {\n            piVar8 = __errno_location();\n            *piVar8 = 0x6e;\n            iVar4 = -1;\n            goto LAB_00133a74;\n          }\n        }\n        iVar5 = FUN_0010d64e(param_2,__ptr,uVar10 & 0xffffffff);\n        if (-1 < iVar5) goto LAB_00133e68;\n        piVar8 = __errno_location();\n        if (*piVar8 != 0x6e) break;\n        if (local_dc) {\n          FUN_00130ebd(lVar6);\n          iVar5 = 0;\n          goto LAB_00133ea0;\n        }\n        if ((DAT_001774e8 != 0) || (local_da)) {\n          FUN_00130ebd(lVar6);\n          iVar5 = 0;\n          goto LAB_00133ea0;\n        }\n        iVar5 = 0;\n      }\nLAB_00133eae:\n      if (local_dc) {\n        FUN_00130f52(lVar6);\n        FUN_00130d09(local_130,(long)iVar5);\n      }\n    }\n    iVar4 = -1;\n    if (-1 < iVar5) {\n      iVar4 = iVar5;\n    }\n    goto LAB_00133a74;\n  }\n  __ptr_00 = (undefined8 *)FUN_001494bf(0x8000);\n  if (__ptr_00 == (undefined8 *)0x0) {\n    piVar8 = __errno_location();\n    *piVar8 = 0xc;\n  }\n  else {\n    local_78 = FUN_00133111;\n    local_70 = FUN_00133100;\n    local_68 = 0;\n    local_b8 = (void *)0x0;\n    local_b0 = 0;\n    iVar3 = inflateInit2_(&local_b8,0x2f,"1.2.11",0x70);\n    if (iVar3 == 0) goto LAB_001335e1;\n    free(__ptr_00);\n    iVar5 = 0xc;\n    if (iVar3 != -4) {\n      iVar5 = 0x16;\n    }\n    piVar8 = __errno_location();\n    *piVar8 = iVar5;\n  }\n  lVar13 = 0;\n  iVar4 = -1;\n  if (param_8 == (undefined8 *)0x0) goto LAB_00133ab4;\n  __ptr_00 = (undefined8 *)0x0;\n  lVar13 = 0;\n  lVar6 = 0;\n  iVar4 = -1;\nLAB_00133a96:\n  uVar15 = FUN_00130f52(lVar6);\n  *param_8 = uVar15;\n  goto LAB_00133aa7;\n  while( true ) {\n    uVar9 = uVar9 - 1;\n    cVar1 = *pcVar11;\n    pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n    if (cVar1 == '\0') break;\ncode_r0x001338a0:\n    if (uVar9 == 0) break;\n  }\n  fwrite(pcVar7,1,~uVar9 - 1,param_10);\nLAB_001338bc:\n  free(pcVar7);\n  iVar4 = 0;\nLAB_00133a74:\n  if (local_130 != 0) {\n    FUN_00130f52(lVar6);\n    FUN_00130d26(local_130);\n  }\n  if (param_8 != (undefined8 *)0x0) goto LAB_00133a96;\nLAB_00133aa7:\n  param_8 = __ptr_00;\n  if (lVar6 != 0) {\n    FUN_00130d39(lVar6);\n  }\nLAB_00133ab4:\n  if (param_8 != (undefined8 *)0x0) {\n    iVar3 = inflateEnd(&local_b8);\n    if ((-1 < iVar4) && (iVar4 = iVar3, iVar3 != 0)) {\n      piVar8 = __errno_location();\n      *piVar8 = 0x16;\n      iVar4 = -1;\n    }\n    free(param_8);\n    if ((local_a8 != lVar13) && (DAT_001774fb != '\0')) {\n      FUN_0012bddf("zlib read size differs from raw read size (%lu/%lu)\n",local_a8,lVar13);\n    }\n  }\n  if (param_6 != (long *)0x0) {\n    *param_6 = *param_6 + lVar13;\n  }\n  if (param_7 != (long *)0x0) {\n    *param_7 = *param_7 + local_c8;\n  }\n  free(__ptr);\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar4;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "void *__ptr;" primitive_type (pointer_declarator "*__ptr" * identifier) ;) (declaration "long lVar6;" (sized_type_specifier "long" long) identifier ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (declaration "ulong uVar9;" type_identifier identifier ;) (declaration "ulong uVar10;" type_identifier identifier ;) (declaration "char *pcVar11;" primitive_type (pointer_declarator "*pcVar11" * identifier) ;) (declaration "ulong uVar12;" type_identifier identifier ;) (declaration "undefined8 *__ptr_00;" type_identifier (pointer_declarator "*__ptr_00" * identifier) ;) (declaration "long lVar13;" (sized_type_specifier "long" long) identifier ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "byte bVar14;" type_identifier identifier ;) (declaration "undefined8 uVar15;" type_identifier identifier ;) (declaration "double dVar16;" primitive_type identifier ;) (declaration "double dVar17;" primitive_type identifier ;) (declaration "double dVar18;" primitive_type identifier ;) (declaration "long local_130;" (sized_type_specifier "long" long) identifier ;) (declaration "double local_110;" primitive_type identifier ;) (declaration "bool local_dc;" primitive_type identifier ;) (declaration "char local_db;" primitive_type identifier ;) (declaration "bool local_da;" primitive_type identifier ;) (declaration "long local_d0;" (sized_type_specifier "long" long) identifier ;) (declaration "long local_c8;" (sized_type_specifier "long" long) identifier ;) (declaration "char *local_c0;" primitive_type (pointer_declarator "*local_c0" * identifier) ;) (declaration "void *local_b8;" primitive_type (pointer_declarator "*local_b8" * identifier) ;) (declaration "int local_b0;" primitive_type identifier ;) (declaration "long local_a8;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 *local_a0;" type_identifier (pointer_declarator "*local_a0" * identifier) ;) (declaration "int local_98;" primitive_type identifier ;) (declaration "code *local_78;" type_identifier (pointer_declarator "*local_78" * identifier) ;) (declaration "code *local_70;" type_identifier (pointer_declarator "*local_70" * identifier) ;) (declaration "undefined8 local_68;" type_identifier identifier ;) (declaration "long local_40;" (sized_type_specifier "long" long) identifier ;) (expression_statement "bVar14 = 0;" (assignment_expression "bVar14 = 0" identifier = number_literal) ;) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (expression_statement "__ptr = (void *)FUN_001494bf(0x2000);" (assignment_expression "__ptr = (void *)FUN_001494bf(0x2000)" identifier = (cast_expression "(void *)FUN_001494bf(0x2000)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001494bf(0x2000)" identifier (argument_list "(0x2000)" ( number_literal ))))) ;) (expression_statement "uVar2 = param_9 & 1;" (assignment_expression "uVar2 = param_9 & 1" identifier = (binary_expression "param_9 & 1" identifier & number_literal)) ;) (expression_statement "local_d0 = 0;" (assignment_expression "local_d0 = 0" identifier = number_literal) ;) (expression_statement "local_c8 = 0;" (assignment_expression "local_c8 = 0" identifier = number_literal) ;) (expression_statement "__ptr_00 = (undefined8 *)0x0;" (assignment_expression "__ptr_00 = (undefined8 *)0x0" identifier = (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if ((param_9 & 8) == 0) {\nLAB_001335e1:\n    if ((param_9 & 2) != 0) {\n      local_d0 = param_5;\n    }\n    if (DAT_00177498 == 0) {\n      local_db = '\0';\n      local_130 = 0;\n    }\n    else {\n      if (local_d0 != 0) {\n        param_5 = 0;\n      }\n      if (DAT_001772f8 != (char *)0x0) {\n        uVar9 = 0xffffffffffffffff;\n        pcVar7 = DAT_001772f8;\n        do {\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar1 = *pcVar7;\n          pcVar7 = pcVar7 + (ulong)bVar14 * -2 + 1;\n        } while (cVar1 != '\0');\n        param_1 = param_1 + ~uVar9;\n      }\n      local_130 = FUN_00130cae(param_1,param_5,param_5 + param_4);\n      local_db = FUN_00130cfd(local_130);\n    }\n    if (DAT_001774e8 == 0) {\n      if (local_130 != 0 || param_8 != (undefined8 *)0x0) goto LAB_00133682;\n      uVar9 = 0x2000;\n      lVar6 = 0;\n    }\n    else {\n      DAT_00176e60 = 0;\n      DAT_00176e68 = 0.0;\n      DAT_00176e70 = 0.0;\nLAB_00133682:\n      lVar6 = FUN_00130d6b();\n      if ((DAT_001774e8 == 0) || (uVar9 = DAT_001774e8, 0x1fff < (long)DAT_001774e8)) {\n        uVar9 = 0x2000;\n      }\n    }\n    local_da = param_8 != (undefined8 *)0x0;\n    local_dc = local_130 != 0;\n    iVar3 = (int)uVar9;\n    uVar12 = 0;\n    lVar13 = 0;\n    local_110 = 0.0;\n    iVar5 = 0;\n    while ((dVar18 = DAT_001774b0, uVar2 == 0 || (lVar13 < param_4))) {\n      if ((param_9 & 4) == 0) {\n        uVar10 = uVar9 & 0xffffffff;\n        if (uVar2 != 0) {\n          uVar10 = param_4 - lVar13;\n          if ((long)iVar3 < param_4 - lVar13) {\n            uVar10 = (long)iVar3;\n          }\n        }\n      }\n      else {\n        if (uVar12 == 0) {\n          pcVar7 = (char *)FUN_0013350a(param_2);\n          if (pcVar7 != (char *)0x0) {\n            if (param_10 != (FILE *)0x0) {\n              uVar12 = 0xffffffffffffffff;\n              pcVar11 = pcVar7;\n              do {\n                if (uVar12 == 0) break;\n                uVar12 = uVar12 - 1;\n                cVar1 = *pcVar11;\n                pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n              } while (cVar1 != '\0');\n              fwrite(pcVar7,1,~uVar12 - 1,param_10);\n            }\n            uVar12 = strtol(pcVar7,&local_c0,0x10);\n            free(pcVar7);\n            if (-1 < (long)uVar12) {\n              if (uVar12 != 0) goto LAB_00133ef7;\n              pcVar7 = (char *)FUN_0013350a(param_2);\n              iVar4 = -1;\n              if (pcVar7 != (char *)0x0) {\n                if (param_10 == (FILE *)0x0) goto LAB_001338bc;\n                uVar9 = 0xffffffffffffffff;\n                pcVar11 = pcVar7;\n                goto code_r0x001338a0;\n              }\n              goto LAB_00133a74;\n            }\n          }\n          iVar5 = -1;\n          break;\n        }\nLAB_00133ef7:\n        uVar10 = (long)iVar3;\n        if ((long)uVar12 < (long)iVar3) {\n          uVar10 = uVar12;\n        }\n      }\n      if (local_db == '\0') {\n        iVar5 = FUN_0010d64e(dVar18,param_2,__ptr,uVar10 & 0xffffffff);\nLAB_00133e68:\n        if (iVar5 < 1) break;\n        if (local_dc) {\n          FUN_00130ebd(lVar6);\nLAB_00133d9f:\n          local_110 = (double)FUN_00130f52(lVar6);\n        }\n        else if ((DAT_001774e8 != 0) || (local_da)) {\n          FUN_00130ebd(lVar6);\n          if (iVar5 < 1) goto LAB_00133ea0;\n          goto LAB_00133d9f;\n        }\n        lVar13 = lVar13 + iVar5;\n        if (__ptr_00 == (undefined8 *)0x0) {\n          iVar4 = FUN_00133125(param_3,param_10,__ptr,iVar5,&local_d0,&local_c8);\n          if (iVar4 < 0) goto LAB_00133a74;\n        }\n        else {\n          iVar4 = FUN_00133125(0,param_10,__ptr,iVar5,0,0);\n          if (iVar4 < 0) goto LAB_00133a74;\n          local_b8 = __ptr;\n          local_b0 = iVar5;\n          do {\n            local_98 = 0x8000;\n            local_a0 = __ptr_00;\n            iVar4 = inflate(&local_b8,0);\n            if (iVar4 == -3) {\nLAB_00133b59:\n              piVar8 = __errno_location();\n              *piVar8 = 0x16;\n              iVar4 = -1;\n              goto LAB_00133a74;\n            }\n            if (iVar4 < -2) {\n              if (iVar4 == -4) {\n                piVar8 = __errno_location();\n                *piVar8 = 0xc;\n                iVar4 = -1;\n                goto LAB_00133a74;\n              }\n            }\n            else if (iVar4 == 1) {\n              if (((param_4 != lVar13) && (uVar2 != 0)) && (DAT_001774fb != '\0')) {\n                FUN_0012bddf("zlib stream ended unexpectedly after %ld/%ld bytes\n",lVar13,param_4);\n              }\n            }\n            else if (iVar4 == 2) goto LAB_00133b59;\n            iVar4 = FUN_00133125(param_3,0,__ptr_00,0x8000 - local_98,&local_d0,&local_c8);\n            if (iVar4 < 0) goto LAB_00133a74;\n          } while (local_98 == 0);\n        }\n        if (((param_9 & 4) != 0) && (uVar12 = uVar12 - (long)iVar5, uVar12 == 0)) {\n          pcVar7 = (char *)FUN_0013350a(param_2);\n          if (pcVar7 == (char *)0x0) {\n            iVar5 = -1;\n            break;\n          }\n          if (param_10 != (FILE *)0x0) {\n            uVar10 = 0xffffffffffffffff;\n            pcVar11 = pcVar7;\n            do {\n              if (uVar10 == 0) break;\n              uVar10 = uVar10 - 1;\n              cVar1 = *pcVar11;\n              pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n            } while (cVar1 != '\0');\n            fwrite(pcVar7,1,~uVar10 - 1,param_10);\n          }\n          free(pcVar7);\n        }\nLAB_00133ea0:\n        if (DAT_001774e8 != 0) {\n          dVar16 = (double)FUN_00130f52(lVar6);\n          dVar18 = DAT_00176e70;\n          dVar16 = dVar16 - DAT_00176e68;\n          DAT_00176e60 = iVar5 + DAT_00176e60;\n          if (dVar16 < (double)DAT_00176e60 / (double)(long)DAT_001774e8) {\n            dVar17 = ((double)DAT_00176e60 / (double)(long)DAT_001774e8 - dVar16) + DAT_00176e70;\n            if (dVar17 < _DAT_0015c908) {\n              if (DAT_001774fb != '\0') {\n                uVar15 = FUN_0013d39d();\n                FUN_0012bddf(dVar17 * DAT_0015d650,dVar16,"deferring a %.2f ms sleep (%s/%.2f).\n",\n                             uVar15);\n              }\n              goto LAB_00133eae;\n            }\n            if (DAT_001774fb != '\0') {\n              uVar15 = FUN_0013d39d();\n              FUN_0012bddf(dVar17 * DAT_0015d650,dVar18,\n                           "\nsleeping %.2f ms for %s bytes, adjust %.2f ms\n",uVar15);\n            }\n            dVar18 = (double)FUN_00130f52(lVar6);\n            FUN_0013d652(dVar17);\n            dVar16 = (double)FUN_00130ebd(lVar6);\n            DAT_00176e70 = dVar17 - (dVar16 - dVar18);\n            if (DAT_00176e70 <= _DAT_0015c710) {\n              if (DAT_00176e70 < DAT_0015d658) {\n                DAT_00176e70 = DAT_0015d658;\n              }\n            }\n            else {\n              DAT_00176e70 = _DAT_0015c710;\n            }\n          }\n          DAT_00176e60 = 0;\n          DAT_00176e68 = (double)FUN_00130f52(lVar6);\n        }\n      }\n      else {\n        if (DAT_001774b0 != 0.0) {\n          dVar18 = (double)FUN_00130f52(lVar6);\n          if ((DAT_001774b0 < (dVar18 - local_110) + DAT_0015d648) &&\n             (DAT_001774b0 - (dVar18 - local_110) < 0.0)) {\n            piVar8 = __errno_location();\n            *piVar8 = 0x6e;\n            iVar4 = -1;\n            goto LAB_00133a74;\n          }\n        }\n        iVar5 = FUN_0010d64e(param_2,__ptr,uVar10 & 0xffffffff);\n        if (-1 < iVar5) goto LAB_00133e68;\n        piVar8 = __errno_location();\n        if (*piVar8 != 0x6e) break;\n        if (local_dc) {\n          FUN_00130ebd(lVar6);\n          iVar5 = 0;\n          goto LAB_00133ea0;\n        }\n        if ((DAT_001774e8 != 0) || (local_da)) {\n          FUN_00130ebd(lVar6);\n          iVar5 = 0;\n          goto LAB_00133ea0;\n        }\n        iVar5 = 0;\n      }\nLAB_00133eae:\n      if (local_dc) {\n        FUN_00130f52(lVar6);\n        FUN_00130d09(local_130,(long)iVar5);\n      }\n    }\n    iVar4 = -1;\n    if (-1 < iVar5) {\n      iVar4 = iVar5;\n    }\n    goto LAB_00133a74;\n  }" if (parenthesized_expression "((param_9 & 8) == 0)" ( (binary_expression "(param_9 & 8) == 0" (parenthesized_expression "(param_9 & 8)" ( (binary_expression "param_9 & 8" identifier & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_001335e1:\n    if ((param_9 & 2) != 0) {\n      local_d0 = param_5;\n    }\n    if (DAT_00177498 == 0) {\n      local_db = '\0';\n      local_130 = 0;\n    }\n    else {\n      if (local_d0 != 0) {\n        param_5 = 0;\n      }\n      if (DAT_001772f8 != (char *)0x0) {\n        uVar9 = 0xffffffffffffffff;\n        pcVar7 = DAT_001772f8;\n        do {\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar1 = *pcVar7;\n          pcVar7 = pcVar7 + (ulong)bVar14 * -2 + 1;\n        } while (cVar1 != '\0');\n        param_1 = param_1 + ~uVar9;\n      }\n      local_130 = FUN_00130cae(param_1,param_5,param_5 + param_4);\n      local_db = FUN_00130cfd(local_130);\n    }\n    if (DAT_001774e8 == 0) {\n      if (local_130 != 0 || param_8 != (undefined8 *)0x0) goto LAB_00133682;\n      uVar9 = 0x2000;\n      lVar6 = 0;\n    }\n    else {\n      DAT_00176e60 = 0;\n      DAT_00176e68 = 0.0;\n      DAT_00176e70 = 0.0;\nLAB_00133682:\n      lVar6 = FUN_00130d6b();\n      if ((DAT_001774e8 == 0) || (uVar9 = DAT_001774e8, 0x1fff < (long)DAT_001774e8)) {\n        uVar9 = 0x2000;\n      }\n    }\n    local_da = param_8 != (undefined8 *)0x0;\n    local_dc = local_130 != 0;\n    iVar3 = (int)uVar9;\n    uVar12 = 0;\n    lVar13 = 0;\n    local_110 = 0.0;\n    iVar5 = 0;\n    while ((dVar18 = DAT_001774b0, uVar2 == 0 || (lVar13 < param_4))) {\n      if ((param_9 & 4) == 0) {\n        uVar10 = uVar9 & 0xffffffff;\n        if (uVar2 != 0) {\n          uVar10 = param_4 - lVar13;\n          if ((long)iVar3 < param_4 - lVar13) {\n            uVar10 = (long)iVar3;\n          }\n        }\n      }\n      else {\n        if (uVar12 == 0) {\n          pcVar7 = (char *)FUN_0013350a(param_2);\n          if (pcVar7 != (char *)0x0) {\n            if (param_10 != (FILE *)0x0) {\n              uVar12 = 0xffffffffffffffff;\n              pcVar11 = pcVar7;\n              do {\n                if (uVar12 == 0) break;\n                uVar12 = uVar12 - 1;\n                cVar1 = *pcVar11;\n                pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n              } while (cVar1 != '\0');\n              fwrite(pcVar7,1,~uVar12 - 1,param_10);\n            }\n            uVar12 = strtol(pcVar7,&local_c0,0x10);\n            free(pcVar7);\n            if (-1 < (long)uVar12) {\n              if (uVar12 != 0) goto LAB_00133ef7;\n              pcVar7 = (char *)FUN_0013350a(param_2);\n              iVar4 = -1;\n              if (pcVar7 != (char *)0x0) {\n                if (param_10 == (FILE *)0x0) goto LAB_001338bc;\n                uVar9 = 0xffffffffffffffff;\n                pcVar11 = pcVar7;\n                goto code_r0x001338a0;\n              }\n              goto LAB_00133a74;\n            }\n          }\n          iVar5 = -1;\n          break;\n        }\nLAB_00133ef7:\n        uVar10 = (long)iVar3;\n        if ((long)uVar12 < (long)iVar3) {\n          uVar10 = uVar12;\n        }\n      }\n      if (local_db == '\0') {\n        iVar5 = FUN_0010d64e(dVar18,param_2,__ptr,uVar10 & 0xffffffff);\nLAB_00133e68:\n        if (iVar5 < 1) break;\n        if (local_dc) {\n          FUN_00130ebd(lVar6);\nLAB_00133d9f:\n          local_110 = (double)FUN_00130f52(lVar6);\n        }\n        else if ((DAT_001774e8 != 0) || (local_da)) {\n          FUN_00130ebd(lVar6);\n          if (iVar5 < 1) goto LAB_00133ea0;\n          goto LAB_00133d9f;\n        }\n        lVar13 = lVar13 + iVar5;\n        if (__ptr_00 == (undefined8 *)0x0) {\n          iVar4 = FUN_00133125(param_3,param_10,__ptr,iVar5,&local_d0,&local_c8);\n          if (iVar4 < 0) goto LAB_00133a74;\n        }\n        else {\n          iVar4 = FUN_00133125(0,param_10,__ptr,iVar5,0,0);\n          if (iVar4 < 0) goto LAB_00133a74;\n          local_b8 = __ptr;\n          local_b0 = iVar5;\n          do {\n            local_98 = 0x8000;\n            local_a0 = __ptr_00;\n            iVar4 = inflate(&local_b8,0);\n            if (iVar4 == -3) {\nLAB_00133b59:\n              piVar8 = __errno_location();\n              *piVar8 = 0x16;\n              iVar4 = -1;\n              goto LAB_00133a74;\n            }\n            if (iVar4 < -2) {\n              if (iVar4 == -4) {\n                piVar8 = __errno_location();\n                *piVar8 = 0xc;\n                iVar4 = -1;\n                goto LAB_00133a74;\n              }\n            }\n            else if (iVar4 == 1) {\n              if (((param_4 != lVar13) && (uVar2 != 0)) && (DAT_001774fb != '\0')) {\n                FUN_0012bddf("zlib stream ended unexpectedly after %ld/%ld bytes\n",lVar13,param_4);\n              }\n            }\n            else if (iVar4 == 2) goto LAB_00133b59;\n            iVar4 = FUN_00133125(param_3,0,__ptr_00,0x8000 - local_98,&local_d0,&local_c8);\n            if (iVar4 < 0) goto LAB_00133a74;\n          } while (local_98 == 0);\n        }\n        if (((param_9 & 4) != 0) && (uVar12 = uVar12 - (long)iVar5, uVar12 == 0)) {\n          pcVar7 = (char *)FUN_0013350a(param_2);\n          if (pcVar7 == (char *)0x0) {\n            iVar5 = -1;\n            break;\n          }\n          if (param_10 != (FILE *)0x0) {\n            uVar10 = 0xffffffffffffffff;\n            pcVar11 = pcVar7;\n            do {\n              if (uVar10 == 0) break;\n              uVar10 = uVar10 - 1;\n              cVar1 = *pcVar11;\n              pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n            } while (cVar1 != '\0');\n            fwrite(pcVar7,1,~uVar10 - 1,param_10);\n          }\n          free(pcVar7);\n        }\nLAB_00133ea0:\n        if (DAT_001774e8 != 0) {\n          dVar16 = (double)FUN_00130f52(lVar6);\n          dVar18 = DAT_00176e70;\n          dVar16 = dVar16 - DAT_00176e68;\n          DAT_00176e60 = iVar5 + DAT_00176e60;\n          if (dVar16 < (double)DAT_00176e60 / (double)(long)DAT_001774e8) {\n            dVar17 = ((double)DAT_00176e60 / (double)(long)DAT_001774e8 - dVar16) + DAT_00176e70;\n            if (dVar17 < _DAT_0015c908) {\n              if (DAT_001774fb != '\0') {\n                uVar15 = FUN_0013d39d();\n                FUN_0012bddf(dVar17 * DAT_0015d650,dVar16,"deferring a %.2f ms sleep (%s/%.2f).\n",\n                             uVar15);\n              }\n              goto LAB_00133eae;\n            }\n            if (DAT_001774fb != '\0') {\n              uVar15 = FUN_0013d39d();\n              FUN_0012bddf(dVar17 * DAT_0015d650,dVar18,\n                           "\nsleeping %.2f ms for %s bytes, adjust %.2f ms\n",uVar15);\n            }\n            dVar18 = (double)FUN_00130f52(lVar6);\n            FUN_0013d652(dVar17);\n            dVar16 = (double)FUN_00130ebd(lVar6);\n            DAT_00176e70 = dVar17 - (dVar16 - dVar18);\n            if (DAT_00176e70 <= _DAT_0015c710) {\n              if (DAT_00176e70 < DAT_0015d658) {\n                DAT_00176e70 = DAT_0015d658;\n              }\n            }\n            else {\n              DAT_00176e70 = _DAT_0015c710;\n            }\n          }\n          DAT_00176e60 = 0;\n          DAT_00176e68 = (double)FUN_00130f52(lVar6);\n        }\n      }\n      else {\n        if (DAT_001774b0 != 0.0) {\n          dVar18 = (double)FUN_00130f52(lVar6);\n          if ((DAT_001774b0 < (dVar18 - local_110) + DAT_0015d648) &&\n             (DAT_001774b0 - (dVar18 - local_110) < 0.0)) {\n            piVar8 = __errno_location();\n            *piVar8 = 0x6e;\n            iVar4 = -1;\n            goto LAB_00133a74;\n          }\n        }\n        iVar5 = FUN_0010d64e(param_2,__ptr,uVar10 & 0xffffffff);\n        if (-1 < iVar5) goto LAB_00133e68;\n        piVar8 = __errno_location();\n        if (*piVar8 != 0x6e) break;\n        if (local_dc) {\n          FUN_00130ebd(lVar6);\n          iVar5 = 0;\n          goto LAB_00133ea0;\n        }\n        if ((DAT_001774e8 != 0) || (local_da)) {\n          FUN_00130ebd(lVar6);\n          iVar5 = 0;\n          goto LAB_00133ea0;\n        }\n        iVar5 = 0;\n      }\nLAB_00133eae:\n      if (local_dc) {\n        FUN_00130f52(lVar6);\n        FUN_00130d09(local_130,(long)iVar5);\n      }\n    }\n    iVar4 = -1;\n    if (-1 < iVar5) {\n      iVar4 = iVar5;\n    }\n    goto LAB_00133a74;\n  }" { (labeled_statement "LAB_001335e1:\n    if ((param_9 & 2) != 0) {\n      local_d0 = param_5;\n    }" statement_identifier : (if_statement "if ((param_9 & 2) != 0) {\n      local_d0 = param_5;\n    }" if (parenthesized_expression "((param_9 & 2) != 0)" ( (binary_expression "(param_9 & 2) != 0" (parenthesized_expression "(param_9 & 2)" ( (binary_expression "param_9 & 2" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      local_d0 = param_5;\n    }" { (expression_statement "local_d0 = param_5;" (assignment_expression "local_d0 = param_5" identifier = identifier) ;) }))) (if_statement "if (DAT_00177498 == 0) {\n      local_db = '\0';\n      local_130 = 0;\n    }\n    else {\n      if (local_d0 != 0) {\n        param_5 = 0;\n      }\n      if (DAT_001772f8 != (char *)0x0) {\n        uVar9 = 0xffffffffffffffff;\n        pcVar7 = DAT_001772f8;\n        do {\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar1 = *pcVar7;\n          pcVar7 = pcVar7 + (ulong)bVar14 * -2 + 1;\n        } while (cVar1 != '\0');\n        param_1 = param_1 + ~uVar9;\n      }\n      local_130 = FUN_00130cae(param_1,param_5,param_5 + param_4);\n      local_db = FUN_00130cfd(local_130);\n    }" if (parenthesized_expression "(DAT_00177498 == 0)" ( (binary_expression "DAT_00177498 == 0" identifier == number_literal) )) (compound_statement "{\n      local_db = '\0';\n      local_130 = 0;\n    }" { (expression_statement "local_db = '\0';" (assignment_expression "local_db = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "local_130 = 0;" (assignment_expression "local_130 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      if (local_d0 != 0) {\n        param_5 = 0;\n      }\n      if (DAT_001772f8 != (char *)0x0) {\n        uVar9 = 0xffffffffffffffff;\n        pcVar7 = DAT_001772f8;\n        do {\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar1 = *pcVar7;\n          pcVar7 = pcVar7 + (ulong)bVar14 * -2 + 1;\n        } while (cVar1 != '\0');\n        param_1 = param_1 + ~uVar9;\n      }\n      local_130 = FUN_00130cae(param_1,param_5,param_5 + param_4);\n      local_db = FUN_00130cfd(local_130);\n    }" else (compound_statement "{\n      if (local_d0 != 0) {\n        param_5 = 0;\n      }\n      if (DAT_001772f8 != (char *)0x0) {\n        uVar9 = 0xffffffffffffffff;\n        pcVar7 = DAT_001772f8;\n        do {\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar1 = *pcVar7;\n          pcVar7 = pcVar7 + (ulong)bVar14 * -2 + 1;\n        } while (cVar1 != '\0');\n        param_1 = param_1 + ~uVar9;\n      }\n      local_130 = FUN_00130cae(param_1,param_5,param_5 + param_4);\n      local_db = FUN_00130cfd(local_130);\n    }" { (if_statement "if (local_d0 != 0) {\n        param_5 = 0;\n      }" if (parenthesized_expression "(local_d0 != 0)" ( (binary_expression "local_d0 != 0" identifier != number_literal) )) (compound_statement "{\n        param_5 = 0;\n      }" { (expression_statement "param_5 = 0;" (assignment_expression "param_5 = 0" identifier = number_literal) ;) })) (if_statement "if (DAT_001772f8 != (char *)0x0) {\n        uVar9 = 0xffffffffffffffff;\n        pcVar7 = DAT_001772f8;\n        do {\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar1 = *pcVar7;\n          pcVar7 = pcVar7 + (ulong)bVar14 * -2 + 1;\n        } while (cVar1 != '\0');\n        param_1 = param_1 + ~uVar9;\n      }" if (parenthesized_expression "(DAT_001772f8 != (char *)0x0)" ( (binary_expression "DAT_001772f8 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar9 = 0xffffffffffffffff;\n        pcVar7 = DAT_001772f8;\n        do {\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar1 = *pcVar7;\n          pcVar7 = pcVar7 + (ulong)bVar14 * -2 + 1;\n        } while (cVar1 != '\0');\n        param_1 = param_1 + ~uVar9;\n      }" { (expression_statement "uVar9 = 0xffffffffffffffff;" (assignment_expression "uVar9 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar7 = DAT_001772f8;" (assignment_expression "pcVar7 = DAT_001772f8" identifier = identifier) ;) (do_statement "do {\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar1 = *pcVar7;\n          pcVar7 = pcVar7 + (ulong)bVar14 * -2 + 1;\n        } while (cVar1 != '\0');" do (compound_statement "{\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar1 = *pcVar7;\n          pcVar7 = pcVar7 + (ulong)bVar14 * -2 + 1;\n        }" { (if_statement "if (uVar9 == 0) break;" if (parenthesized_expression "(uVar9 == 0)" ( (binary_expression "uVar9 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar9 = uVar9 - 1;" (assignment_expression "uVar9 = uVar9 - 1" identifier = (binary_expression "uVar9 - 1" identifier - number_literal)) ;) (expression_statement "cVar1 = *pcVar7;" (assignment_expression "cVar1 = *pcVar7" identifier = (pointer_expression "*pcVar7" * identifier)) ;) (expression_statement "pcVar7 = pcVar7 + (ulong)bVar14 * -2 + 1;" (assignment_expression "pcVar7 = pcVar7 + (ulong)bVar14 * -2 + 1" identifier = (binary_expression "pcVar7 + (ulong)bVar14 * -2 + 1" (binary_expression "pcVar7 + (ulong)bVar14 * -2" identifier + (binary_expression "(ulong)bVar14 * -2" (cast_expression "(ulong)bVar14" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar1 != '\0')" ( (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "param_1 = param_1 + ~uVar9;" (assignment_expression "param_1 = param_1 + ~uVar9" identifier = (binary_expression "param_1 + ~uVar9" identifier + (unary_expression "~uVar9" ~ identifier))) ;) })) (expression_statement "local_130 = FUN_00130cae(param_1,param_5,param_5 + param_4);" (assignment_expression "local_130 = FUN_00130cae(param_1,param_5,param_5 + param_4)" identifier = (call_expression "FUN_00130cae(param_1,param_5,param_5 + param_4)" identifier (argument_list "(param_1,param_5,param_5 + param_4)" ( identifier , identifier , (binary_expression "param_5 + param_4" identifier + identifier) )))) ;) (expression_statement "local_db = FUN_00130cfd(local_130);" (assignment_expression "local_db = FUN_00130cfd(local_130)" identifier = (call_expression "FUN_00130cfd(local_130)" identifier (argument_list "(local_130)" ( identifier )))) ;) }))) (if_statement "if (DAT_001774e8 == 0) {\n      if (local_130 != 0 || param_8 != (undefined8 *)0x0) goto LAB_00133682;\n      uVar9 = 0x2000;\n      lVar6 = 0;\n    }\n    else {\n      DAT_00176e60 = 0;\n      DAT_00176e68 = 0.0;\n      DAT_00176e70 = 0.0;\nLAB_00133682:\n      lVar6 = FUN_00130d6b();\n      if ((DAT_001774e8 == 0) || (uVar9 = DAT_001774e8, 0x1fff < (long)DAT_001774e8)) {\n        uVar9 = 0x2000;\n      }\n    }" if (parenthesized_expression "(DAT_001774e8 == 0)" ( (binary_expression "DAT_001774e8 == 0" identifier == number_literal) )) (compound_statement "{\n      if (local_130 != 0 || param_8 != (undefined8 *)0x0) goto LAB_00133682;\n      uVar9 = 0x2000;\n      lVar6 = 0;\n    }" { (if_statement "if (local_130 != 0 || param_8 != (undefined8 *)0x0) goto LAB_00133682;" if (parenthesized_expression "(local_130 != 0 || param_8 != (undefined8 *)0x0)" ( (binary_expression "local_130 != 0 || param_8 != (undefined8 *)0x0" (binary_expression "local_130 != 0" identifier != number_literal) || (binary_expression "param_8 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) )) (goto_statement "goto LAB_00133682;" goto statement_identifier ;)) (expression_statement "uVar9 = 0x2000;" (assignment_expression "uVar9 = 0x2000" identifier = number_literal) ;) (expression_statement "lVar6 = 0;" (assignment_expression "lVar6 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      DAT_00176e60 = 0;\n      DAT_00176e68 = 0.0;\n      DAT_00176e70 = 0.0;\nLAB_00133682:\n      lVar6 = FUN_00130d6b();\n      if ((DAT_001774e8 == 0) || (uVar9 = DAT_001774e8, 0x1fff < (long)DAT_001774e8)) {\n        uVar9 = 0x2000;\n      }\n    }" else (compound_statement "{\n      DAT_00176e60 = 0;\n      DAT_00176e68 = 0.0;\n      DAT_00176e70 = 0.0;\nLAB_00133682:\n      lVar6 = FUN_00130d6b();\n      if ((DAT_001774e8 == 0) || (uVar9 = DAT_001774e8, 0x1fff < (long)DAT_001774e8)) {\n        uVar9 = 0x2000;\n      }\n    }" { (expression_statement "DAT_00176e60 = 0;" (assignment_expression "DAT_00176e60 = 0" identifier = number_literal) ;) (expression_statement "DAT_00176e68 = 0.0;" (assignment_expression "DAT_00176e68 = 0.0" identifier = number_literal) ;) (expression_statement "DAT_00176e70 = 0.0;" (assignment_expression "DAT_00176e70 = 0.0" identifier = number_literal) ;) (labeled_statement "LAB_00133682:\n      lVar6 = FUN_00130d6b();" statement_identifier : (expression_statement "lVar6 = FUN_00130d6b();" (assignment_expression "lVar6 = FUN_00130d6b()" identifier = (call_expression "FUN_00130d6b()" identifier (argument_list "()" ( )))) ;)) (if_statement "if ((DAT_001774e8 == 0) || (uVar9 = DAT_001774e8, 0x1fff < (long)DAT_001774e8)) {\n        uVar9 = 0x2000;\n      }" if (parenthesized_expression "((DAT_001774e8 == 0) || (uVar9 = DAT_001774e8, 0x1fff < (long)DAT_001774e8))" ( (binary_expression "(DAT_001774e8 == 0) || (uVar9 = DAT_001774e8, 0x1fff < (long)DAT_001774e8)" (parenthesized_expression "(DAT_001774e8 == 0)" ( (binary_expression "DAT_001774e8 == 0" identifier == number_literal) )) || (parenthesized_expression "(uVar9 = DAT_001774e8, 0x1fff < (long)DAT_001774e8)" ( (comma_expression "uVar9 = DAT_001774e8, 0x1fff < (long)DAT_001774e8" (assignment_expression "uVar9 = DAT_001774e8" identifier = identifier) , (binary_expression "0x1fff < (long)DAT_001774e8" number_literal < (cast_expression "(long)DAT_001774e8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ))) )) (compound_statement "{\n        uVar9 = 0x2000;\n      }" { (expression_statement "uVar9 = 0x2000;" (assignment_expression "uVar9 = 0x2000" identifier = number_literal) ;) })) }))) (expression_statement "local_da = param_8 != (undefined8 *)0x0;" (assignment_expression "local_da = param_8 != (undefined8 *)0x0" identifier = (binary_expression "param_8 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "local_dc = local_130 != 0;" (assignment_expression "local_dc = local_130 != 0" identifier = (binary_expression "local_130 != 0" identifier != number_literal)) ;) (expression_statement "iVar3 = (int)uVar9;" (assignment_expression "iVar3 = (int)uVar9" identifier = (cast_expression "(int)uVar9" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) (expression_statement "lVar13 = 0;" (assignment_expression "lVar13 = 0" identifier = number_literal) ;) (expression_statement "local_110 = 0.0;" (assignment_expression "local_110 = 0.0" identifier = number_literal) ;) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (while_statement "while ((dVar18 = DAT_001774b0, uVar2 == 0 || (lVar13 < param_4))) {\n      if ((param_9 & 4) == 0) {\n        uVar10 = uVar9 & 0xffffffff;\n        if (uVar2 != 0) {\n          uVar10 = param_4 - lVar13;\n          if ((long)iVar3 < param_4 - lVar13) {\n            uVar10 = (long)iVar3;\n          }\n        }\n      }\n      else {\n        if (uVar12 == 0) {\n          pcVar7 = (char *)FUN_0013350a(param_2);\n          if (pcVar7 != (char *)0x0) {\n            if (param_10 != (FILE *)0x0) {\n              uVar12 = 0xffffffffffffffff;\n              pcVar11 = pcVar7;\n              do {\n                if (uVar12 == 0) break;\n                uVar12 = uVar12 - 1;\n                cVar1 = *pcVar11;\n                pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n              } while (cVar1 != '\0');\n              fwrite(pcVar7,1,~uVar12 - 1,param_10);\n            }\n            uVar12 = strtol(pcVar7,&local_c0,0x10);\n            free(pcVar7);\n            if (-1 < (long)uVar12) {\n              if (uVar12 != 0) goto LAB_00133ef7;\n              pcVar7 = (char *)FUN_0013350a(param_2);\n              iVar4 = -1;\n              if (pcVar7 != (char *)0x0) {\n                if (param_10 == (FILE *)0x0) goto LAB_001338bc;\n                uVar9 = 0xffffffffffffffff;\n                pcVar11 = pcVar7;\n                goto code_r0x001338a0;\n              }\n              goto LAB_00133a74;\n            }\n          }\n          iVar5 = -1;\n          break;\n        }\nLAB_00133ef7:\n        uVar10 = (long)iVar3;\n        if ((long)uVar12 < (long)iVar3) {\n          uVar10 = uVar12;\n        }\n      }\n      if (local_db == '\0') {\n        iVar5 = FUN_0010d64e(dVar18,param_2,__ptr,uVar10 & 0xffffffff);\nLAB_00133e68:\n        if (iVar5 < 1) break;\n        if (local_dc) {\n          FUN_00130ebd(lVar6);\nLAB_00133d9f:\n          local_110 = (double)FUN_00130f52(lVar6);\n        }\n        else if ((DAT_001774e8 != 0) || (local_da)) {\n          FUN_00130ebd(lVar6);\n          if (iVar5 < 1) goto LAB_00133ea0;\n          goto LAB_00133d9f;\n        }\n        lVar13 = lVar13 + iVar5;\n        if (__ptr_00 == (undefined8 *)0x0) {\n          iVar4 = FUN_00133125(param_3,param_10,__ptr,iVar5,&local_d0,&local_c8);\n          if (iVar4 < 0) goto LAB_00133a74;\n        }\n        else {\n          iVar4 = FUN_00133125(0,param_10,__ptr,iVar5,0,0);\n          if (iVar4 < 0) goto LAB_00133a74;\n          local_b8 = __ptr;\n          local_b0 = iVar5;\n          do {\n            local_98 = 0x8000;\n            local_a0 = __ptr_00;\n            iVar4 = inflate(&local_b8,0);\n            if (iVar4 == -3) {\nLAB_00133b59:\n              piVar8 = __errno_location();\n              *piVar8 = 0x16;\n              iVar4 = -1;\n              goto LAB_00133a74;\n            }\n            if (iVar4 < -2) {\n              if (iVar4 == -4) {\n                piVar8 = __errno_location();\n                *piVar8 = 0xc;\n                iVar4 = -1;\n                goto LAB_00133a74;\n              }\n            }\n            else if (iVar4 == 1) {\n              if (((param_4 != lVar13) && (uVar2 != 0)) && (DAT_001774fb != '\0')) {\n                FUN_0012bddf("zlib stream ended unexpectedly after %ld/%ld bytes\n",lVar13,param_4);\n              }\n            }\n            else if (iVar4 == 2) goto LAB_00133b59;\n            iVar4 = FUN_00133125(param_3,0,__ptr_00,0x8000 - local_98,&local_d0,&local_c8);\n            if (iVar4 < 0) goto LAB_00133a74;\n          } while (local_98 == 0);\n        }\n        if (((param_9 & 4) != 0) && (uVar12 = uVar12 - (long)iVar5, uVar12 == 0)) {\n          pcVar7 = (char *)FUN_0013350a(param_2);\n          if (pcVar7 == (char *)0x0) {\n            iVar5 = -1;\n            break;\n          }\n          if (param_10 != (FILE *)0x0) {\n            uVar10 = 0xffffffffffffffff;\n            pcVar11 = pcVar7;\n            do {\n              if (uVar10 == 0) break;\n              uVar10 = uVar10 - 1;\n              cVar1 = *pcVar11;\n              pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n            } while (cVar1 != '\0');\n            fwrite(pcVar7,1,~uVar10 - 1,param_10);\n          }\n          free(pcVar7);\n        }\nLAB_00133ea0:\n        if (DAT_001774e8 != 0) {\n          dVar16 = (double)FUN_00130f52(lVar6);\n          dVar18 = DAT_00176e70;\n          dVar16 = dVar16 - DAT_00176e68;\n          DAT_00176e60 = iVar5 + DAT_00176e60;\n          if (dVar16 < (double)DAT_00176e60 / (double)(long)DAT_001774e8) {\n            dVar17 = ((double)DAT_00176e60 / (double)(long)DAT_001774e8 - dVar16) + DAT_00176e70;\n            if (dVar17 < _DAT_0015c908) {\n              if (DAT_001774fb != '\0') {\n                uVar15 = FUN_0013d39d();\n                FUN_0012bddf(dVar17 * DAT_0015d650,dVar16,"deferring a %.2f ms sleep (%s/%.2f).\n",\n                             uVar15);\n              }\n              goto LAB_00133eae;\n            }\n            if (DAT_001774fb != '\0') {\n              uVar15 = FUN_0013d39d();\n              FUN_0012bddf(dVar17 * DAT_0015d650,dVar18,\n                           "\nsleeping %.2f ms for %s bytes, adjust %.2f ms\n",uVar15);\n            }\n            dVar18 = (double)FUN_00130f52(lVar6);\n            FUN_0013d652(dVar17);\n            dVar16 = (double)FUN_00130ebd(lVar6);\n            DAT_00176e70 = dVar17 - (dVar16 - dVar18);\n            if (DAT_00176e70 <= _DAT_0015c710) {\n              if (DAT_00176e70 < DAT_0015d658) {\n                DAT_00176e70 = DAT_0015d658;\n              }\n            }\n            else {\n              DAT_00176e70 = _DAT_0015c710;\n            }\n          }\n          DAT_00176e60 = 0;\n          DAT_00176e68 = (double)FUN_00130f52(lVar6);\n        }\n      }\n      else {\n        if (DAT_001774b0 != 0.0) {\n          dVar18 = (double)FUN_00130f52(lVar6);\n          if ((DAT_001774b0 < (dVar18 - local_110) + DAT_0015d648) &&\n             (DAT_001774b0 - (dVar18 - local_110) < 0.0)) {\n            piVar8 = __errno_location();\n            *piVar8 = 0x6e;\n            iVar4 = -1;\n            goto LAB_00133a74;\n          }\n        }\n        iVar5 = FUN_0010d64e(param_2,__ptr,uVar10 & 0xffffffff);\n        if (-1 < iVar5) goto LAB_00133e68;\n        piVar8 = __errno_location();\n        if (*piVar8 != 0x6e) break;\n        if (local_dc) {\n          FUN_00130ebd(lVar6);\n          iVar5 = 0;\n          goto LAB_00133ea0;\n        }\n        if ((DAT_001774e8 != 0) || (local_da)) {\n          FUN_00130ebd(lVar6);\n          iVar5 = 0;\n          goto LAB_00133ea0;\n        }\n        iVar5 = 0;\n      }\nLAB_00133eae:\n      if (local_dc) {\n        FUN_00130f52(lVar6);\n        FUN_00130d09(local_130,(long)iVar5);\n      }\n    }" while (parenthesized_expression "((dVar18 = DAT_001774b0, uVar2 == 0 || (lVar13 < param_4)))" ( (parenthesized_expression "(dVar18 = DAT_001774b0, uVar2 == 0 || (lVar13 < param_4))" ( (comma_expression "dVar18 = DAT_001774b0, uVar2 == 0 || (lVar13 < param_4)" (assignment_expression "dVar18 = DAT_001774b0" identifier = identifier) , (binary_expression "uVar2 == 0 || (lVar13 < param_4)" (binary_expression "uVar2 == 0" identifier == number_literal) || (parenthesized_expression "(lVar13 < param_4)" ( (binary_expression "lVar13 < param_4" identifier < identifier) )))) )) )) (compound_statement "{\n      if ((param_9 & 4) == 0) {\n        uVar10 = uVar9 & 0xffffffff;\n        if (uVar2 != 0) {\n          uVar10 = param_4 - lVar13;\n          if ((long)iVar3 < param_4 - lVar13) {\n            uVar10 = (long)iVar3;\n          }\n        }\n      }\n      else {\n        if (uVar12 == 0) {\n          pcVar7 = (char *)FUN_0013350a(param_2);\n          if (pcVar7 != (char *)0x0) {\n            if (param_10 != (FILE *)0x0) {\n              uVar12 = 0xffffffffffffffff;\n              pcVar11 = pcVar7;\n              do {\n                if (uVar12 == 0) break;\n                uVar12 = uVar12 - 1;\n                cVar1 = *pcVar11;\n                pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n              } while (cVar1 != '\0');\n              fwrite(pcVar7,1,~uVar12 - 1,param_10);\n            }\n            uVar12 = strtol(pcVar7,&local_c0,0x10);\n            free(pcVar7);\n            if (-1 < (long)uVar12) {\n              if (uVar12 != 0) goto LAB_00133ef7;\n              pcVar7 = (char *)FUN_0013350a(param_2);\n              iVar4 = -1;\n              if (pcVar7 != (char *)0x0) {\n                if (param_10 == (FILE *)0x0) goto LAB_001338bc;\n                uVar9 = 0xffffffffffffffff;\n                pcVar11 = pcVar7;\n                goto code_r0x001338a0;\n              }\n              goto LAB_00133a74;\n            }\n          }\n          iVar5 = -1;\n          break;\n        }\nLAB_00133ef7:\n        uVar10 = (long)iVar3;\n        if ((long)uVar12 < (long)iVar3) {\n          uVar10 = uVar12;\n        }\n      }\n      if (local_db == '\0') {\n        iVar5 = FUN_0010d64e(dVar18,param_2,__ptr,uVar10 & 0xffffffff);\nLAB_00133e68:\n        if (iVar5 < 1) break;\n        if (local_dc) {\n          FUN_00130ebd(lVar6);\nLAB_00133d9f:\n          local_110 = (double)FUN_00130f52(lVar6);\n        }\n        else if ((DAT_001774e8 != 0) || (local_da)) {\n          FUN_00130ebd(lVar6);\n          if (iVar5 < 1) goto LAB_00133ea0;\n          goto LAB_00133d9f;\n        }\n        lVar13 = lVar13 + iVar5;\n        if (__ptr_00 == (undefined8 *)0x0) {\n          iVar4 = FUN_00133125(param_3,param_10,__ptr,iVar5,&local_d0,&local_c8);\n          if (iVar4 < 0) goto LAB_00133a74;\n        }\n        else {\n          iVar4 = FUN_00133125(0,param_10,__ptr,iVar5,0,0);\n          if (iVar4 < 0) goto LAB_00133a74;\n          local_b8 = __ptr;\n          local_b0 = iVar5;\n          do {\n            local_98 = 0x8000;\n            local_a0 = __ptr_00;\n            iVar4 = inflate(&local_b8,0);\n            if (iVar4 == -3) {\nLAB_00133b59:\n              piVar8 = __errno_location();\n              *piVar8 = 0x16;\n              iVar4 = -1;\n              goto LAB_00133a74;\n            }\n            if (iVar4 < -2) {\n              if (iVar4 == -4) {\n                piVar8 = __errno_location();\n                *piVar8 = 0xc;\n                iVar4 = -1;\n                goto LAB_00133a74;\n              }\n            }\n            else if (iVar4 == 1) {\n              if (((param_4 != lVar13) && (uVar2 != 0)) && (DAT_001774fb != '\0')) {\n                FUN_0012bddf("zlib stream ended unexpectedly after %ld/%ld bytes\n",lVar13,param_4);\n              }\n            }\n            else if (iVar4 == 2) goto LAB_00133b59;\n            iVar4 = FUN_00133125(param_3,0,__ptr_00,0x8000 - local_98,&local_d0,&local_c8);\n            if (iVar4 < 0) goto LAB_00133a74;\n          } while (local_98 == 0);\n        }\n        if (((param_9 & 4) != 0) && (uVar12 = uVar12 - (long)iVar5, uVar12 == 0)) {\n          pcVar7 = (char *)FUN_0013350a(param_2);\n          if (pcVar7 == (char *)0x0) {\n            iVar5 = -1;\n            break;\n          }\n          if (param_10 != (FILE *)0x0) {\n            uVar10 = 0xffffffffffffffff;\n            pcVar11 = pcVar7;\n            do {\n              if (uVar10 == 0) break;\n              uVar10 = uVar10 - 1;\n              cVar1 = *pcVar11;\n              pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n            } while (cVar1 != '\0');\n            fwrite(pcVar7,1,~uVar10 - 1,param_10);\n          }\n          free(pcVar7);\n        }\nLAB_00133ea0:\n        if (DAT_001774e8 != 0) {\n          dVar16 = (double)FUN_00130f52(lVar6);\n          dVar18 = DAT_00176e70;\n          dVar16 = dVar16 - DAT_00176e68;\n          DAT_00176e60 = iVar5 + DAT_00176e60;\n          if (dVar16 < (double)DAT_00176e60 / (double)(long)DAT_001774e8) {\n            dVar17 = ((double)DAT_00176e60 / (double)(long)DAT_001774e8 - dVar16) + DAT_00176e70;\n            if (dVar17 < _DAT_0015c908) {\n              if (DAT_001774fb != '\0') {\n                uVar15 = FUN_0013d39d();\n                FUN_0012bddf(dVar17 * DAT_0015d650,dVar16,"deferring a %.2f ms sleep (%s/%.2f).\n",\n                             uVar15);\n              }\n              goto LAB_00133eae;\n            }\n            if (DAT_001774fb != '\0') {\n              uVar15 = FUN_0013d39d();\n              FUN_0012bddf(dVar17 * DAT_0015d650,dVar18,\n                           "\nsleeping %.2f ms for %s bytes, adjust %.2f ms\n",uVar15);\n            }\n            dVar18 = (double)FUN_00130f52(lVar6);\n            FUN_0013d652(dVar17);\n            dVar16 = (double)FUN_00130ebd(lVar6);\n            DAT_00176e70 = dVar17 - (dVar16 - dVar18);\n            if (DAT_00176e70 <= _DAT_0015c710) {\n              if (DAT_00176e70 < DAT_0015d658) {\n                DAT_00176e70 = DAT_0015d658;\n              }\n            }\n            else {\n              DAT_00176e70 = _DAT_0015c710;\n            }\n          }\n          DAT_00176e60 = 0;\n          DAT_00176e68 = (double)FUN_00130f52(lVar6);\n        }\n      }\n      else {\n        if (DAT_001774b0 != 0.0) {\n          dVar18 = (double)FUN_00130f52(lVar6);\n          if ((DAT_001774b0 < (dVar18 - local_110) + DAT_0015d648) &&\n             (DAT_001774b0 - (dVar18 - local_110) < 0.0)) {\n            piVar8 = __errno_location();\n            *piVar8 = 0x6e;\n            iVar4 = -1;\n            goto LAB_00133a74;\n          }\n        }\n        iVar5 = FUN_0010d64e(param_2,__ptr,uVar10 & 0xffffffff);\n        if (-1 < iVar5) goto LAB_00133e68;\n        piVar8 = __errno_location();\n        if (*piVar8 != 0x6e) break;\n        if (local_dc) {\n          FUN_00130ebd(lVar6);\n          iVar5 = 0;\n          goto LAB_00133ea0;\n        }\n        if ((DAT_001774e8 != 0) || (local_da)) {\n          FUN_00130ebd(lVar6);\n          iVar5 = 0;\n          goto LAB_00133ea0;\n        }\n        iVar5 = 0;\n      }\nLAB_00133eae:\n      if (local_dc) {\n        FUN_00130f52(lVar6);\n        FUN_00130d09(local_130,(long)iVar5);\n      }\n    }" { (if_statement "if ((param_9 & 4) == 0) {\n        uVar10 = uVar9 & 0xffffffff;\n        if (uVar2 != 0) {\n          uVar10 = param_4 - lVar13;\n          if ((long)iVar3 < param_4 - lVar13) {\n            uVar10 = (long)iVar3;\n          }\n        }\n      }\n      else {\n        if (uVar12 == 0) {\n          pcVar7 = (char *)FUN_0013350a(param_2);\n          if (pcVar7 != (char *)0x0) {\n            if (param_10 != (FILE *)0x0) {\n              uVar12 = 0xffffffffffffffff;\n              pcVar11 = pcVar7;\n              do {\n                if (uVar12 == 0) break;\n                uVar12 = uVar12 - 1;\n                cVar1 = *pcVar11;\n                pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n              } while (cVar1 != '\0');\n              fwrite(pcVar7,1,~uVar12 - 1,param_10);\n            }\n            uVar12 = strtol(pcVar7,&local_c0,0x10);\n            free(pcVar7);\n            if (-1 < (long)uVar12) {\n              if (uVar12 != 0) goto LAB_00133ef7;\n              pcVar7 = (char *)FUN_0013350a(param_2);\n              iVar4 = -1;\n              if (pcVar7 != (char *)0x0) {\n                if (param_10 == (FILE *)0x0) goto LAB_001338bc;\n                uVar9 = 0xffffffffffffffff;\n                pcVar11 = pcVar7;\n                goto code_r0x001338a0;\n              }\n              goto LAB_00133a74;\n            }\n          }\n          iVar5 = -1;\n          break;\n        }\nLAB_00133ef7:\n        uVar10 = (long)iVar3;\n        if ((long)uVar12 < (long)iVar3) {\n          uVar10 = uVar12;\n        }\n      }" if (parenthesized_expression "((param_9 & 4) == 0)" ( (binary_expression "(param_9 & 4) == 0" (parenthesized_expression "(param_9 & 4)" ( (binary_expression "param_9 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        uVar10 = uVar9 & 0xffffffff;\n        if (uVar2 != 0) {\n          uVar10 = param_4 - lVar13;\n          if ((long)iVar3 < param_4 - lVar13) {\n            uVar10 = (long)iVar3;\n          }\n        }\n      }" { (expression_statement "uVar10 = uVar9 & 0xffffffff;" (assignment_expression "uVar10 = uVar9 & 0xffffffff" identifier = (binary_expression "uVar9 & 0xffffffff" identifier & number_literal)) ;) (if_statement "if (uVar2 != 0) {\n          uVar10 = param_4 - lVar13;\n          if ((long)iVar3 < param_4 - lVar13) {\n            uVar10 = (long)iVar3;\n          }\n        }" if (parenthesized_expression "(uVar2 != 0)" ( (binary_expression "uVar2 != 0" identifier != number_literal) )) (compound_statement "{\n          uVar10 = param_4 - lVar13;\n          if ((long)iVar3 < param_4 - lVar13) {\n            uVar10 = (long)iVar3;\n          }\n        }" { (expression_statement "uVar10 = param_4 - lVar13;" (assignment_expression "uVar10 = param_4 - lVar13" identifier = (binary_expression "param_4 - lVar13" identifier - identifier)) ;) (if_statement "if ((long)iVar3 < param_4 - lVar13) {\n            uVar10 = (long)iVar3;\n          }" if (parenthesized_expression "((long)iVar3 < param_4 - lVar13)" ( (binary_expression "(long)iVar3 < param_4 - lVar13" (cast_expression "(long)iVar3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) < (binary_expression "param_4 - lVar13" identifier - identifier)) )) (compound_statement "{\n            uVar10 = (long)iVar3;\n          }" { (expression_statement "uVar10 = (long)iVar3;" (assignment_expression "uVar10 = (long)iVar3" identifier = (cast_expression "(long)iVar3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) })) })) }) (else_clause "else {\n        if (uVar12 == 0) {\n          pcVar7 = (char *)FUN_0013350a(param_2);\n          if (pcVar7 != (char *)0x0) {\n            if (param_10 != (FILE *)0x0) {\n              uVar12 = 0xffffffffffffffff;\n              pcVar11 = pcVar7;\n              do {\n                if (uVar12 == 0) break;\n                uVar12 = uVar12 - 1;\n                cVar1 = *pcVar11;\n                pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n              } while (cVar1 != '\0');\n              fwrite(pcVar7,1,~uVar12 - 1,param_10);\n            }\n            uVar12 = strtol(pcVar7,&local_c0,0x10);\n            free(pcVar7);\n            if (-1 < (long)uVar12) {\n              if (uVar12 != 0) goto LAB_00133ef7;\n              pcVar7 = (char *)FUN_0013350a(param_2);\n              iVar4 = -1;\n              if (pcVar7 != (char *)0x0) {\n                if (param_10 == (FILE *)0x0) goto LAB_001338bc;\n                uVar9 = 0xffffffffffffffff;\n                pcVar11 = pcVar7;\n                goto code_r0x001338a0;\n              }\n              goto LAB_00133a74;\n            }\n          }\n          iVar5 = -1;\n          break;\n        }\nLAB_00133ef7:\n        uVar10 = (long)iVar3;\n        if ((long)uVar12 < (long)iVar3) {\n          uVar10 = uVar12;\n        }\n      }" else (compound_statement "{\n        if (uVar12 == 0) {\n          pcVar7 = (char *)FUN_0013350a(param_2);\n          if (pcVar7 != (char *)0x0) {\n            if (param_10 != (FILE *)0x0) {\n              uVar12 = 0xffffffffffffffff;\n              pcVar11 = pcVar7;\n              do {\n                if (uVar12 == 0) break;\n                uVar12 = uVar12 - 1;\n                cVar1 = *pcVar11;\n                pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n              } while (cVar1 != '\0');\n              fwrite(pcVar7,1,~uVar12 - 1,param_10);\n            }\n            uVar12 = strtol(pcVar7,&local_c0,0x10);\n            free(pcVar7);\n            if (-1 < (long)uVar12) {\n              if (uVar12 != 0) goto LAB_00133ef7;\n              pcVar7 = (char *)FUN_0013350a(param_2);\n              iVar4 = -1;\n              if (pcVar7 != (char *)0x0) {\n                if (param_10 == (FILE *)0x0) goto LAB_001338bc;\n                uVar9 = 0xffffffffffffffff;\n                pcVar11 = pcVar7;\n                goto code_r0x001338a0;\n              }\n              goto LAB_00133a74;\n            }\n          }\n          iVar5 = -1;\n          break;\n        }\nLAB_00133ef7:\n        uVar10 = (long)iVar3;\n        if ((long)uVar12 < (long)iVar3) {\n          uVar10 = uVar12;\n        }\n      }" { (if_statement "if (uVar12 == 0) {\n          pcVar7 = (char *)FUN_0013350a(param_2);\n          if (pcVar7 != (char *)0x0) {\n            if (param_10 != (FILE *)0x0) {\n              uVar12 = 0xffffffffffffffff;\n              pcVar11 = pcVar7;\n              do {\n                if (uVar12 == 0) break;\n                uVar12 = uVar12 - 1;\n                cVar1 = *pcVar11;\n                pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n              } while (cVar1 != '\0');\n              fwrite(pcVar7,1,~uVar12 - 1,param_10);\n            }\n            uVar12 = strtol(pcVar7,&local_c0,0x10);\n            free(pcVar7);\n            if (-1 < (long)uVar12) {\n              if (uVar12 != 0) goto LAB_00133ef7;\n              pcVar7 = (char *)FUN_0013350a(param_2);\n              iVar4 = -1;\n              if (pcVar7 != (char *)0x0) {\n                if (param_10 == (FILE *)0x0) goto LAB_001338bc;\n                uVar9 = 0xffffffffffffffff;\n                pcVar11 = pcVar7;\n                goto code_r0x001338a0;\n              }\n              goto LAB_00133a74;\n            }\n          }\n          iVar5 = -1;\n          break;\n        }" if (parenthesized_expression "(uVar12 == 0)" ( (binary_expression "uVar12 == 0" identifier == number_literal) )) (compound_statement "{\n          pcVar7 = (char *)FUN_0013350a(param_2);\n          if (pcVar7 != (char *)0x0) {\n            if (param_10 != (FILE *)0x0) {\n              uVar12 = 0xffffffffffffffff;\n              pcVar11 = pcVar7;\n              do {\n                if (uVar12 == 0) break;\n                uVar12 = uVar12 - 1;\n                cVar1 = *pcVar11;\n                pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n              } while (cVar1 != '\0');\n              fwrite(pcVar7,1,~uVar12 - 1,param_10);\n            }\n            uVar12 = strtol(pcVar7,&local_c0,0x10);\n            free(pcVar7);\n            if (-1 < (long)uVar12) {\n              if (uVar12 != 0) goto LAB_00133ef7;\n              pcVar7 = (char *)FUN_0013350a(param_2);\n              iVar4 = -1;\n              if (pcVar7 != (char *)0x0) {\n                if (param_10 == (FILE *)0x0) goto LAB_001338bc;\n                uVar9 = 0xffffffffffffffff;\n                pcVar11 = pcVar7;\n                goto code_r0x001338a0;\n              }\n              goto LAB_00133a74;\n            }\n          }\n          iVar5 = -1;\n          break;\n        }" { (expression_statement "pcVar7 = (char *)FUN_0013350a(param_2);" (assignment_expression "pcVar7 = (char *)FUN_0013350a(param_2)" identifier = (cast_expression "(char *)FUN_0013350a(param_2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0013350a(param_2)" identifier (argument_list "(param_2)" ( identifier ))))) ;) (if_statement "if (pcVar7 != (char *)0x0) {\n            if (param_10 != (FILE *)0x0) {\n              uVar12 = 0xffffffffffffffff;\n              pcVar11 = pcVar7;\n              do {\n                if (uVar12 == 0) break;\n                uVar12 = uVar12 - 1;\n                cVar1 = *pcVar11;\n                pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n              } while (cVar1 != '\0');\n              fwrite(pcVar7,1,~uVar12 - 1,param_10);\n            }\n            uVar12 = strtol(pcVar7,&local_c0,0x10);\n            free(pcVar7);\n            if (-1 < (long)uVar12) {\n              if (uVar12 != 0) goto LAB_00133ef7;\n              pcVar7 = (char *)FUN_0013350a(param_2);\n              iVar4 = -1;\n              if (pcVar7 != (char *)0x0) {\n                if (param_10 == (FILE *)0x0) goto LAB_001338bc;\n                uVar9 = 0xffffffffffffffff;\n                pcVar11 = pcVar7;\n                goto code_r0x001338a0;\n              }\n              goto LAB_00133a74;\n            }\n          }" if (parenthesized_expression "(pcVar7 != (char *)0x0)" ( (binary_expression "pcVar7 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            if (param_10 != (FILE *)0x0) {\n              uVar12 = 0xffffffffffffffff;\n              pcVar11 = pcVar7;\n              do {\n                if (uVar12 == 0) break;\n                uVar12 = uVar12 - 1;\n                cVar1 = *pcVar11;\n                pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n              } while (cVar1 != '\0');\n              fwrite(pcVar7,1,~uVar12 - 1,param_10);\n            }\n            uVar12 = strtol(pcVar7,&local_c0,0x10);\n            free(pcVar7);\n            if (-1 < (long)uVar12) {\n              if (uVar12 != 0) goto LAB_00133ef7;\n              pcVar7 = (char *)FUN_0013350a(param_2);\n              iVar4 = -1;\n              if (pcVar7 != (char *)0x0) {\n                if (param_10 == (FILE *)0x0) goto LAB_001338bc;\n                uVar9 = 0xffffffffffffffff;\n                pcVar11 = pcVar7;\n                goto code_r0x001338a0;\n              }\n              goto LAB_00133a74;\n            }\n          }" { (if_statement "if (param_10 != (FILE *)0x0) {\n              uVar12 = 0xffffffffffffffff;\n              pcVar11 = pcVar7;\n              do {\n                if (uVar12 == 0) break;\n                uVar12 = uVar12 - 1;\n                cVar1 = *pcVar11;\n                pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n              } while (cVar1 != '\0');\n              fwrite(pcVar7,1,~uVar12 - 1,param_10);\n            }" if (parenthesized_expression "(param_10 != (FILE *)0x0)" ( (binary_expression "param_10 != (FILE *)0x0" identifier != (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              uVar12 = 0xffffffffffffffff;\n              pcVar11 = pcVar7;\n              do {\n                if (uVar12 == 0) break;\n                uVar12 = uVar12 - 1;\n                cVar1 = *pcVar11;\n                pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n              } while (cVar1 != '\0');\n              fwrite(pcVar7,1,~uVar12 - 1,param_10);\n            }" { (expression_statement "uVar12 = 0xffffffffffffffff;" (assignment_expression "uVar12 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar11 = pcVar7;" (assignment_expression "pcVar11 = pcVar7" identifier = identifier) ;) (do_statement "do {\n                if (uVar12 == 0) break;\n                uVar12 = uVar12 - 1;\n                cVar1 = *pcVar11;\n                pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n              } while (cVar1 != '\0');" do (compound_statement "{\n                if (uVar12 == 0) break;\n                uVar12 = uVar12 - 1;\n                cVar1 = *pcVar11;\n                pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n              }" { (if_statement "if (uVar12 == 0) break;" if (parenthesized_expression "(uVar12 == 0)" ( (binary_expression "uVar12 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar12 = uVar12 - 1;" (assignment_expression "uVar12 = uVar12 - 1" identifier = (binary_expression "uVar12 - 1" identifier - number_literal)) ;) (expression_statement "cVar1 = *pcVar11;" (assignment_expression "cVar1 = *pcVar11" identifier = (pointer_expression "*pcVar11" * identifier)) ;) (expression_statement "pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;" (assignment_expression "pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1" identifier = (binary_expression "pcVar11 + (ulong)bVar14 * -2 + 1" (binary_expression "pcVar11 + (ulong)bVar14 * -2" identifier + (binary_expression "(ulong)bVar14 * -2" (cast_expression "(ulong)bVar14" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar1 != '\0')" ( (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "fwrite(pcVar7,1,~uVar12 - 1,param_10);" (call_expression "fwrite(pcVar7,1,~uVar12 - 1,param_10)" identifier (argument_list "(pcVar7,1,~uVar12 - 1,param_10)" ( identifier , number_literal , (binary_expression "~uVar12 - 1" (unary_expression "~uVar12" ~ identifier) - number_literal) , identifier ))) ;) })) (expression_statement "uVar12 = strtol(pcVar7,&local_c0,0x10);" (assignment_expression "uVar12 = strtol(pcVar7,&local_c0,0x10)" identifier = (call_expression "strtol(pcVar7,&local_c0,0x10)" identifier (argument_list "(pcVar7,&local_c0,0x10)" ( identifier , (pointer_expression "&local_c0" & identifier) , number_literal )))) ;) (expression_statement "free(pcVar7);" (call_expression "free(pcVar7)" identifier (argument_list "(pcVar7)" ( identifier ))) ;) (if_statement "if (-1 < (long)uVar12) {\n              if (uVar12 != 0) goto LAB_00133ef7;\n              pcVar7 = (char *)FUN_0013350a(param_2);\n              iVar4 = -1;\n              if (pcVar7 != (char *)0x0) {\n                if (param_10 == (FILE *)0x0) goto LAB_001338bc;\n                uVar9 = 0xffffffffffffffff;\n                pcVar11 = pcVar7;\n                goto code_r0x001338a0;\n              }\n              goto LAB_00133a74;\n            }" if (parenthesized_expression "(-1 < (long)uVar12)" ( (binary_expression "-1 < (long)uVar12" number_literal < (cast_expression "(long)uVar12" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )) (compound_statement "{\n              if (uVar12 != 0) goto LAB_00133ef7;\n              pcVar7 = (char *)FUN_0013350a(param_2);\n              iVar4 = -1;\n              if (pcVar7 != (char *)0x0) {\n                if (param_10 == (FILE *)0x0) goto LAB_001338bc;\n                uVar9 = 0xffffffffffffffff;\n                pcVar11 = pcVar7;\n                goto code_r0x001338a0;\n              }\n              goto LAB_00133a74;\n            }" { (if_statement "if (uVar12 != 0) goto LAB_00133ef7;" if (parenthesized_expression "(uVar12 != 0)" ( (binary_expression "uVar12 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00133ef7;" goto statement_identifier ;)) (expression_statement "pcVar7 = (char *)FUN_0013350a(param_2);" (assignment_expression "pcVar7 = (char *)FUN_0013350a(param_2)" identifier = (cast_expression "(char *)FUN_0013350a(param_2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0013350a(param_2)" identifier (argument_list "(param_2)" ( identifier ))))) ;) (expression_statement "iVar4 = -1;" (assignment_expression "iVar4 = -1" identifier = number_literal) ;) (if_statement "if (pcVar7 != (char *)0x0) {\n                if (param_10 == (FILE *)0x0) goto LAB_001338bc;\n                uVar9 = 0xffffffffffffffff;\n                pcVar11 = pcVar7;\n                goto code_r0x001338a0;\n              }" if (parenthesized_expression "(pcVar7 != (char *)0x0)" ( (binary_expression "pcVar7 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                if (param_10 == (FILE *)0x0) goto LAB_001338bc;\n                uVar9 = 0xffffffffffffffff;\n                pcVar11 = pcVar7;\n                goto code_r0x001338a0;\n              }" { (if_statement "if (param_10 == (FILE *)0x0) goto LAB_001338bc;" if (parenthesized_expression "(param_10 == (FILE *)0x0)" ( (binary_expression "param_10 == (FILE *)0x0" identifier == (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_001338bc;" goto statement_identifier ;)) (expression_statement "uVar9 = 0xffffffffffffffff;" (assignment_expression "uVar9 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar11 = pcVar7;" (assignment_expression "pcVar11 = pcVar7" identifier = identifier) ;) (goto_statement "goto code_r0x001338a0;" goto statement_identifier ;) })) (goto_statement "goto LAB_00133a74;" goto statement_identifier ;) })) })) (expression_statement "iVar5 = -1;" (assignment_expression "iVar5 = -1" identifier = number_literal) ;) (break_statement "break;" break ;) })) (labeled_statement "LAB_00133ef7:\n        uVar10 = (long)iVar3;" statement_identifier : (expression_statement "uVar10 = (long)iVar3;" (assignment_expression "uVar10 = (long)iVar3" identifier = (cast_expression "(long)iVar3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;)) (if_statement "if ((long)uVar12 < (long)iVar3) {\n          uVar10 = uVar12;\n        }" if (parenthesized_expression "((long)uVar12 < (long)iVar3)" ( (binary_expression "(long)uVar12 < (long)iVar3" (cast_expression "(long)uVar12" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) < (cast_expression "(long)iVar3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )) (compound_statement "{\n          uVar10 = uVar12;\n        }" { (expression_statement "uVar10 = uVar12;" (assignment_expression "uVar10 = uVar12" identifier = identifier) ;) })) }))) (if_statement "if (local_db == '\0') {\n        iVar5 = FUN_0010d64e(dVar18,param_2,__ptr,uVar10 & 0xffffffff);\nLAB_00133e68:\n        if (iVar5 < 1) break;\n        if (local_dc) {\n          FUN_00130ebd(lVar6);\nLAB_00133d9f:\n          local_110 = (double)FUN_00130f52(lVar6);\n        }\n        else if ((DAT_001774e8 != 0) || (local_da)) {\n          FUN_00130ebd(lVar6);\n          if (iVar5 < 1) goto LAB_00133ea0;\n          goto LAB_00133d9f;\n        }\n        lVar13 = lVar13 + iVar5;\n        if (__ptr_00 == (undefined8 *)0x0) {\n          iVar4 = FUN_00133125(param_3,param_10,__ptr,iVar5,&local_d0,&local_c8);\n          if (iVar4 < 0) goto LAB_00133a74;\n        }\n        else {\n          iVar4 = FUN_00133125(0,param_10,__ptr,iVar5,0,0);\n          if (iVar4 < 0) goto LAB_00133a74;\n          local_b8 = __ptr;\n          local_b0 = iVar5;\n          do {\n            local_98 = 0x8000;\n            local_a0 = __ptr_00;\n            iVar4 = inflate(&local_b8,0);\n            if (iVar4 == -3) {\nLAB_00133b59:\n              piVar8 = __errno_location();\n              *piVar8 = 0x16;\n              iVar4 = -1;\n              goto LAB_00133a74;\n            }\n            if (iVar4 < -2) {\n              if (iVar4 == -4) {\n                piVar8 = __errno_location();\n                *piVar8 = 0xc;\n                iVar4 = -1;\n                goto LAB_00133a74;\n              }\n            }\n            else if (iVar4 == 1) {\n              if (((param_4 != lVar13) && (uVar2 != 0)) && (DAT_001774fb != '\0')) {\n                FUN_0012bddf("zlib stream ended unexpectedly after %ld/%ld bytes\n",lVar13,param_4);\n              }\n            }\n            else if (iVar4 == 2) goto LAB_00133b59;\n            iVar4 = FUN_00133125(param_3,0,__ptr_00,0x8000 - local_98,&local_d0,&local_c8);\n            if (iVar4 < 0) goto LAB_00133a74;\n          } while (local_98 == 0);\n        }\n        if (((param_9 & 4) != 0) && (uVar12 = uVar12 - (long)iVar5, uVar12 == 0)) {\n          pcVar7 = (char *)FUN_0013350a(param_2);\n          if (pcVar7 == (char *)0x0) {\n            iVar5 = -1;\n            break;\n          }\n          if (param_10 != (FILE *)0x0) {\n            uVar10 = 0xffffffffffffffff;\n            pcVar11 = pcVar7;\n            do {\n              if (uVar10 == 0) break;\n              uVar10 = uVar10 - 1;\n              cVar1 = *pcVar11;\n              pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n            } while (cVar1 != '\0');\n            fwrite(pcVar7,1,~uVar10 - 1,param_10);\n          }\n          free(pcVar7);\n        }\nLAB_00133ea0:\n        if (DAT_001774e8 != 0) {\n          dVar16 = (double)FUN_00130f52(lVar6);\n          dVar18 = DAT_00176e70;\n          dVar16 = dVar16 - DAT_00176e68;\n          DAT_00176e60 = iVar5 + DAT_00176e60;\n          if (dVar16 < (double)DAT_00176e60 / (double)(long)DAT_001774e8) {\n            dVar17 = ((double)DAT_00176e60 / (double)(long)DAT_001774e8 - dVar16) + DAT_00176e70;\n            if (dVar17 < _DAT_0015c908) {\n              if (DAT_001774fb != '\0') {\n                uVar15 = FUN_0013d39d();\n                FUN_0012bddf(dVar17 * DAT_0015d650,dVar16,"deferring a %.2f ms sleep (%s/%.2f).\n",\n                             uVar15);\n              }\n              goto LAB_00133eae;\n            }\n            if (DAT_001774fb != '\0') {\n              uVar15 = FUN_0013d39d();\n              FUN_0012bddf(dVar17 * DAT_0015d650,dVar18,\n                           "\nsleeping %.2f ms for %s bytes, adjust %.2f ms\n",uVar15);\n            }\n            dVar18 = (double)FUN_00130f52(lVar6);\n            FUN_0013d652(dVar17);\n            dVar16 = (double)FUN_00130ebd(lVar6);\n            DAT_00176e70 = dVar17 - (dVar16 - dVar18);\n            if (DAT_00176e70 <= _DAT_0015c710) {\n              if (DAT_00176e70 < DAT_0015d658) {\n                DAT_00176e70 = DAT_0015d658;\n              }\n            }\n            else {\n              DAT_00176e70 = _DAT_0015c710;\n            }\n          }\n          DAT_00176e60 = 0;\n          DAT_00176e68 = (double)FUN_00130f52(lVar6);\n        }\n      }\n      else {\n        if (DAT_001774b0 != 0.0) {\n          dVar18 = (double)FUN_00130f52(lVar6);\n          if ((DAT_001774b0 < (dVar18 - local_110) + DAT_0015d648) &&\n             (DAT_001774b0 - (dVar18 - local_110) < 0.0)) {\n            piVar8 = __errno_location();\n            *piVar8 = 0x6e;\n            iVar4 = -1;\n            goto LAB_00133a74;\n          }\n        }\n        iVar5 = FUN_0010d64e(param_2,__ptr,uVar10 & 0xffffffff);\n        if (-1 < iVar5) goto LAB_00133e68;\n        piVar8 = __errno_location();\n        if (*piVar8 != 0x6e) break;\n        if (local_dc) {\n          FUN_00130ebd(lVar6);\n          iVar5 = 0;\n          goto LAB_00133ea0;\n        }\n        if ((DAT_001774e8 != 0) || (local_da)) {\n          FUN_00130ebd(lVar6);\n          iVar5 = 0;\n          goto LAB_00133ea0;\n        }\n        iVar5 = 0;\n      }" if (parenthesized_expression "(local_db == '\0')" ( (binary_expression "local_db == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        iVar5 = FUN_0010d64e(dVar18,param_2,__ptr,uVar10 & 0xffffffff);\nLAB_00133e68:\n        if (iVar5 < 1) break;\n        if (local_dc) {\n          FUN_00130ebd(lVar6);\nLAB_00133d9f:\n          local_110 = (double)FUN_00130f52(lVar6);\n        }\n        else if ((DAT_001774e8 != 0) || (local_da)) {\n          FUN_00130ebd(lVar6);\n          if (iVar5 < 1) goto LAB_00133ea0;\n          goto LAB_00133d9f;\n        }\n        lVar13 = lVar13 + iVar5;\n        if (__ptr_00 == (undefined8 *)0x0) {\n          iVar4 = FUN_00133125(param_3,param_10,__ptr,iVar5,&local_d0,&local_c8);\n          if (iVar4 < 0) goto LAB_00133a74;\n        }\n        else {\n          iVar4 = FUN_00133125(0,param_10,__ptr,iVar5,0,0);\n          if (iVar4 < 0) goto LAB_00133a74;\n          local_b8 = __ptr;\n          local_b0 = iVar5;\n          do {\n            local_98 = 0x8000;\n            local_a0 = __ptr_00;\n            iVar4 = inflate(&local_b8,0);\n            if (iVar4 == -3) {\nLAB_00133b59:\n              piVar8 = __errno_location();\n              *piVar8 = 0x16;\n              iVar4 = -1;\n              goto LAB_00133a74;\n            }\n            if (iVar4 < -2) {\n              if (iVar4 == -4) {\n                piVar8 = __errno_location();\n                *piVar8 = 0xc;\n                iVar4 = -1;\n                goto LAB_00133a74;\n              }\n            }\n            else if (iVar4 == 1) {\n              if (((param_4 != lVar13) && (uVar2 != 0)) && (DAT_001774fb != '\0')) {\n                FUN_0012bddf("zlib stream ended unexpectedly after %ld/%ld bytes\n",lVar13,param_4);\n              }\n            }\n            else if (iVar4 == 2) goto LAB_00133b59;\n            iVar4 = FUN_00133125(param_3,0,__ptr_00,0x8000 - local_98,&local_d0,&local_c8);\n            if (iVar4 < 0) goto LAB_00133a74;\n          } while (local_98 == 0);\n        }\n        if (((param_9 & 4) != 0) && (uVar12 = uVar12 - (long)iVar5, uVar12 == 0)) {\n          pcVar7 = (char *)FUN_0013350a(param_2);\n          if (pcVar7 == (char *)0x0) {\n            iVar5 = -1;\n            break;\n          }\n          if (param_10 != (FILE *)0x0) {\n            uVar10 = 0xffffffffffffffff;\n            pcVar11 = pcVar7;\n            do {\n              if (uVar10 == 0) break;\n              uVar10 = uVar10 - 1;\n              cVar1 = *pcVar11;\n              pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n            } while (cVar1 != '\0');\n            fwrite(pcVar7,1,~uVar10 - 1,param_10);\n          }\n          free(pcVar7);\n        }\nLAB_00133ea0:\n        if (DAT_001774e8 != 0) {\n          dVar16 = (double)FUN_00130f52(lVar6);\n          dVar18 = DAT_00176e70;\n          dVar16 = dVar16 - DAT_00176e68;\n          DAT_00176e60 = iVar5 + DAT_00176e60;\n          if (dVar16 < (double)DAT_00176e60 / (double)(long)DAT_001774e8) {\n            dVar17 = ((double)DAT_00176e60 / (double)(long)DAT_001774e8 - dVar16) + DAT_00176e70;\n            if (dVar17 < _DAT_0015c908) {\n              if (DAT_001774fb != '\0') {\n                uVar15 = FUN_0013d39d();\n                FUN_0012bddf(dVar17 * DAT_0015d650,dVar16,"deferring a %.2f ms sleep (%s/%.2f).\n",\n                             uVar15);\n              }\n              goto LAB_00133eae;\n            }\n            if (DAT_001774fb != '\0') {\n              uVar15 = FUN_0013d39d();\n              FUN_0012bddf(dVar17 * DAT_0015d650,dVar18,\n                           "\nsleeping %.2f ms for %s bytes, adjust %.2f ms\n",uVar15);\n            }\n            dVar18 = (double)FUN_00130f52(lVar6);\n            FUN_0013d652(dVar17);\n            dVar16 = (double)FUN_00130ebd(lVar6);\n            DAT_00176e70 = dVar17 - (dVar16 - dVar18);\n            if (DAT_00176e70 <= _DAT_0015c710) {\n              if (DAT_00176e70 < DAT_0015d658) {\n                DAT_00176e70 = DAT_0015d658;\n              }\n            }\n            else {\n              DAT_00176e70 = _DAT_0015c710;\n            }\n          }\n          DAT_00176e60 = 0;\n          DAT_00176e68 = (double)FUN_00130f52(lVar6);\n        }\n      }" { (expression_statement "iVar5 = FUN_0010d64e(dVar18,param_2,__ptr,uVar10 & 0xffffffff);" (assignment_expression "iVar5 = FUN_0010d64e(dVar18,param_2,__ptr,uVar10 & 0xffffffff)" identifier = (call_expression "FUN_0010d64e(dVar18,param_2,__ptr,uVar10 & 0xffffffff)" identifier (argument_list "(dVar18,param_2,__ptr,uVar10 & 0xffffffff)" ( identifier , identifier , identifier , (binary_expression "uVar10 & 0xffffffff" identifier & number_literal) )))) ;) (labeled_statement "LAB_00133e68:\n        if (iVar5 < 1) break;" statement_identifier : (if_statement "if (iVar5 < 1) break;" if (parenthesized_expression "(iVar5 < 1)" ( (binary_expression "iVar5 < 1" identifier < number_literal) )) (break_statement "break;" break ;))) (if_statement "if (local_dc) {\n          FUN_00130ebd(lVar6);\nLAB_00133d9f:\n          local_110 = (double)FUN_00130f52(lVar6);\n        }\n        else if ((DAT_001774e8 != 0) || (local_da)) {\n          FUN_00130ebd(lVar6);\n          if (iVar5 < 1) goto LAB_00133ea0;\n          goto LAB_00133d9f;\n        }" if (parenthesized_expression "(local_dc)" ( identifier )) (compound_statement "{\n          FUN_00130ebd(lVar6);\nLAB_00133d9f:\n          local_110 = (double)FUN_00130f52(lVar6);\n        }" { (expression_statement "FUN_00130ebd(lVar6);" (call_expression "FUN_00130ebd(lVar6)" identifier (argument_list "(lVar6)" ( identifier ))) ;) (labeled_statement "LAB_00133d9f:\n          local_110 = (double)FUN_00130f52(lVar6);" statement_identifier : (expression_statement "local_110 = (double)FUN_00130f52(lVar6);" (assignment_expression "local_110 = (double)FUN_00130f52(lVar6)" identifier = (cast_expression "(double)FUN_00130f52(lVar6)" ( (type_descriptor "double" primitive_type) ) (call_expression "FUN_00130f52(lVar6)" identifier (argument_list "(lVar6)" ( identifier ))))) ;)) }) (else_clause "else if ((DAT_001774e8 != 0) || (local_da)) {\n          FUN_00130ebd(lVar6);\n          if (iVar5 < 1) goto LAB_00133ea0;\n          goto LAB_00133d9f;\n        }" else (if_statement "if ((DAT_001774e8 != 0) || (local_da)) {\n          FUN_00130ebd(lVar6);\n          if (iVar5 < 1) goto LAB_00133ea0;\n          goto LAB_00133d9f;\n        }" if (parenthesized_expression "((DAT_001774e8 != 0) || (local_da))" ( (binary_expression "(DAT_001774e8 != 0) || (local_da)" (parenthesized_expression "(DAT_001774e8 != 0)" ( (binary_expression "DAT_001774e8 != 0" identifier != number_literal) )) || (parenthesized_expression "(local_da)" ( identifier ))) )) (compound_statement "{\n          FUN_00130ebd(lVar6);\n          if (iVar5 < 1) goto LAB_00133ea0;\n          goto LAB_00133d9f;\n        }" { (expression_statement "FUN_00130ebd(lVar6);" (call_expression "FUN_00130ebd(lVar6)" identifier (argument_list "(lVar6)" ( identifier ))) ;) (if_statement "if (iVar5 < 1) goto LAB_00133ea0;" if (parenthesized_expression "(iVar5 < 1)" ( (binary_expression "iVar5 < 1" identifier < number_literal) )) (goto_statement "goto LAB_00133ea0;" goto statement_identifier ;)) (goto_statement "goto LAB_00133d9f;" goto statement_identifier ;) })))) (expression_statement "lVar13 = lVar13 + iVar5;" (assignment_expression "lVar13 = lVar13 + iVar5" identifier = (binary_expression "lVar13 + iVar5" identifier + identifier)) ;) (if_statement "if (__ptr_00 == (undefined8 *)0x0) {\n          iVar4 = FUN_00133125(param_3,param_10,__ptr,iVar5,&local_d0,&local_c8);\n          if (iVar4 < 0) goto LAB_00133a74;\n        }\n        else {\n          iVar4 = FUN_00133125(0,param_10,__ptr,iVar5,0,0);\n          if (iVar4 < 0) goto LAB_00133a74;\n          local_b8 = __ptr;\n          local_b0 = iVar5;\n          do {\n            local_98 = 0x8000;\n            local_a0 = __ptr_00;\n            iVar4 = inflate(&local_b8,0);\n            if (iVar4 == -3) {\nLAB_00133b59:\n              piVar8 = __errno_location();\n              *piVar8 = 0x16;\n              iVar4 = -1;\n              goto LAB_00133a74;\n            }\n            if (iVar4 < -2) {\n              if (iVar4 == -4) {\n                piVar8 = __errno_location();\n                *piVar8 = 0xc;\n                iVar4 = -1;\n                goto LAB_00133a74;\n              }\n            }\n            else if (iVar4 == 1) {\n              if (((param_4 != lVar13) && (uVar2 != 0)) && (DAT_001774fb != '\0')) {\n                FUN_0012bddf("zlib stream ended unexpectedly after %ld/%ld bytes\n",lVar13,param_4);\n              }\n            }\n            else if (iVar4 == 2) goto LAB_00133b59;\n            iVar4 = FUN_00133125(param_3,0,__ptr_00,0x8000 - local_98,&local_d0,&local_c8);\n            if (iVar4 < 0) goto LAB_00133a74;\n          } while (local_98 == 0);\n        }" if (parenthesized_expression "(__ptr_00 == (undefined8 *)0x0)" ( (binary_expression "__ptr_00 == (undefined8 *)0x0" identifier == (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          iVar4 = FUN_00133125(param_3,param_10,__ptr,iVar5,&local_d0,&local_c8);\n          if (iVar4 < 0) goto LAB_00133a74;\n        }" { (expression_statement "iVar4 = FUN_00133125(param_3,param_10,__ptr,iVar5,&local_d0,&local_c8);" (assignment_expression "iVar4 = FUN_00133125(param_3,param_10,__ptr,iVar5,&local_d0,&local_c8)" identifier = (call_expression "FUN_00133125(param_3,param_10,__ptr,iVar5,&local_d0,&local_c8)" identifier (argument_list "(param_3,param_10,__ptr,iVar5,&local_d0,&local_c8)" ( identifier , identifier , identifier , identifier , (pointer_expression "&local_d0" & identifier) , (pointer_expression "&local_c8" & identifier) )))) ;) (if_statement "if (iVar4 < 0) goto LAB_00133a74;" if (parenthesized_expression "(iVar4 < 0)" ( (binary_expression "iVar4 < 0" identifier < number_literal) )) (goto_statement "goto LAB_00133a74;" goto statement_identifier ;)) }) (else_clause "else {\n          iVar4 = FUN_00133125(0,param_10,__ptr,iVar5,0,0);\n          if (iVar4 < 0) goto LAB_00133a74;\n          local_b8 = __ptr;\n          local_b0 = iVar5;\n          do {\n            local_98 = 0x8000;\n            local_a0 = __ptr_00;\n            iVar4 = inflate(&local_b8,0);\n            if (iVar4 == -3) {\nLAB_00133b59:\n              piVar8 = __errno_location();\n              *piVar8 = 0x16;\n              iVar4 = -1;\n              goto LAB_00133a74;\n            }\n            if (iVar4 < -2) {\n              if (iVar4 == -4) {\n                piVar8 = __errno_location();\n                *piVar8 = 0xc;\n                iVar4 = -1;\n                goto LAB_00133a74;\n              }\n            }\n            else if (iVar4 == 1) {\n              if (((param_4 != lVar13) && (uVar2 != 0)) && (DAT_001774fb != '\0')) {\n                FUN_0012bddf("zlib stream ended unexpectedly after %ld/%ld bytes\n",lVar13,param_4);\n              }\n            }\n            else if (iVar4 == 2) goto LAB_00133b59;\n            iVar4 = FUN_00133125(param_3,0,__ptr_00,0x8000 - local_98,&local_d0,&local_c8);\n            if (iVar4 < 0) goto LAB_00133a74;\n          } while (local_98 == 0);\n        }" else (compound_statement "{\n          iVar4 = FUN_00133125(0,param_10,__ptr,iVar5,0,0);\n          if (iVar4 < 0) goto LAB_00133a74;\n          local_b8 = __ptr;\n          local_b0 = iVar5;\n          do {\n            local_98 = 0x8000;\n            local_a0 = __ptr_00;\n            iVar4 = inflate(&local_b8,0);\n            if (iVar4 == -3) {\nLAB_00133b59:\n              piVar8 = __errno_location();\n              *piVar8 = 0x16;\n              iVar4 = -1;\n              goto LAB_00133a74;\n            }\n            if (iVar4 < -2) {\n              if (iVar4 == -4) {\n                piVar8 = __errno_location();\n                *piVar8 = 0xc;\n                iVar4 = -1;\n                goto LAB_00133a74;\n              }\n            }\n            else if (iVar4 == 1) {\n              if (((param_4 != lVar13) && (uVar2 != 0)) && (DAT_001774fb != '\0')) {\n                FUN_0012bddf("zlib stream ended unexpectedly after %ld/%ld bytes\n",lVar13,param_4);\n              }\n            }\n            else if (iVar4 == 2) goto LAB_00133b59;\n            iVar4 = FUN_00133125(param_3,0,__ptr_00,0x8000 - local_98,&local_d0,&local_c8);\n            if (iVar4 < 0) goto LAB_00133a74;\n          } while (local_98 == 0);\n        }" { (expression_statement "iVar4 = FUN_00133125(0,param_10,__ptr,iVar5,0,0);" (assignment_expression "iVar4 = FUN_00133125(0,param_10,__ptr,iVar5,0,0)" identifier = (call_expression "FUN_00133125(0,param_10,__ptr,iVar5,0,0)" identifier (argument_list "(0,param_10,__ptr,iVar5,0,0)" ( number_literal , identifier , identifier , identifier , number_literal , number_literal )))) ;) (if_statement "if (iVar4 < 0) goto LAB_00133a74;" if (parenthesized_expression "(iVar4 < 0)" ( (binary_expression "iVar4 < 0" identifier < number_literal) )) (goto_statement "goto LAB_00133a74;" goto statement_identifier ;)) (expression_statement "local_b8 = __ptr;" (assignment_expression "local_b8 = __ptr" identifier = identifier) ;) (expression_statement "local_b0 = iVar5;" (assignment_expression "local_b0 = iVar5" identifier = identifier) ;) (do_statement "do {\n            local_98 = 0x8000;\n            local_a0 = __ptr_00;\n            iVar4 = inflate(&local_b8,0);\n            if (iVar4 == -3) {\nLAB_00133b59:\n              piVar8 = __errno_location();\n              *piVar8 = 0x16;\n              iVar4 = -1;\n              goto LAB_00133a74;\n            }\n            if (iVar4 < -2) {\n              if (iVar4 == -4) {\n                piVar8 = __errno_location();\n                *piVar8 = 0xc;\n                iVar4 = -1;\n                goto LAB_00133a74;\n              }\n            }\n            else if (iVar4 == 1) {\n              if (((param_4 != lVar13) && (uVar2 != 0)) && (DAT_001774fb != '\0')) {\n                FUN_0012bddf("zlib stream ended unexpectedly after %ld/%ld bytes\n",lVar13,param_4);\n              }\n            }\n            else if (iVar4 == 2) goto LAB_00133b59;\n            iVar4 = FUN_00133125(param_3,0,__ptr_00,0x8000 - local_98,&local_d0,&local_c8);\n            if (iVar4 < 0) goto LAB_00133a74;\n          } while (local_98 == 0);" do (compound_statement "{\n            local_98 = 0x8000;\n            local_a0 = __ptr_00;\n            iVar4 = inflate(&local_b8,0);\n            if (iVar4 == -3) {\nLAB_00133b59:\n              piVar8 = __errno_location();\n              *piVar8 = 0x16;\n              iVar4 = -1;\n              goto LAB_00133a74;\n            }\n            if (iVar4 < -2) {\n              if (iVar4 == -4) {\n                piVar8 = __errno_location();\n                *piVar8 = 0xc;\n                iVar4 = -1;\n                goto LAB_00133a74;\n              }\n            }\n            else if (iVar4 == 1) {\n              if (((param_4 != lVar13) && (uVar2 != 0)) && (DAT_001774fb != '\0')) {\n                FUN_0012bddf("zlib stream ended unexpectedly after %ld/%ld bytes\n",lVar13,param_4);\n              }\n            }\n            else if (iVar4 == 2) goto LAB_00133b59;\n            iVar4 = FUN_00133125(param_3,0,__ptr_00,0x8000 - local_98,&local_d0,&local_c8);\n            if (iVar4 < 0) goto LAB_00133a74;\n          }" { (expression_statement "local_98 = 0x8000;" (assignment_expression "local_98 = 0x8000" identifier = number_literal) ;) (expression_statement "local_a0 = __ptr_00;" (assignment_expression "local_a0 = __ptr_00" identifier = identifier) ;) (expression_statement "iVar4 = inflate(&local_b8,0);" (assignment_expression "iVar4 = inflate(&local_b8,0)" identifier = (call_expression "inflate(&local_b8,0)" identifier (argument_list "(&local_b8,0)" ( (pointer_expression "&local_b8" & identifier) , number_literal )))) ;) (if_statement "if (iVar4 == -3) {\nLAB_00133b59:\n              piVar8 = __errno_location();\n              *piVar8 = 0x16;\n              iVar4 = -1;\n              goto LAB_00133a74;\n            }" if (parenthesized_expression "(iVar4 == -3)" ( (binary_expression "iVar4 == -3" identifier == number_literal) )) (compound_statement "{\nLAB_00133b59:\n              piVar8 = __errno_location();\n              *piVar8 = 0x16;\n              iVar4 = -1;\n              goto LAB_00133a74;\n            }" { (labeled_statement "LAB_00133b59:\n              piVar8 = __errno_location();" statement_identifier : (expression_statement "piVar8 = __errno_location();" (assignment_expression "piVar8 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;)) (expression_statement "*piVar8 = 0x16;" (assignment_expression "*piVar8 = 0x16" (pointer_expression "*piVar8" * identifier) = number_literal) ;) (expression_statement "iVar4 = -1;" (assignment_expression "iVar4 = -1" identifier = number_literal) ;) (goto_statement "goto LAB_00133a74;" goto statement_identifier ;) })) (if_statement "if (iVar4 < -2) {\n              if (iVar4 == -4) {\n                piVar8 = __errno_location();\n                *piVar8 = 0xc;\n                iVar4 = -1;\n                goto LAB_00133a74;\n              }\n            }\n            else if (iVar4 == 1) {\n              if (((param_4 != lVar13) && (uVar2 != 0)) && (DAT_001774fb != '\0')) {\n                FUN_0012bddf("zlib stream ended unexpectedly after %ld/%ld bytes\n",lVar13,param_4);\n              }\n            }\n            else if (iVar4 == 2) goto LAB_00133b59;" if (parenthesized_expression "(iVar4 < -2)" ( (binary_expression "iVar4 < -2" identifier < number_literal) )) (compound_statement "{\n              if (iVar4 == -4) {\n                piVar8 = __errno_location();\n                *piVar8 = 0xc;\n                iVar4 = -1;\n                goto LAB_00133a74;\n              }\n            }" { (if_statement "if (iVar4 == -4) {\n                piVar8 = __errno_location();\n                *piVar8 = 0xc;\n                iVar4 = -1;\n                goto LAB_00133a74;\n              }" if (parenthesized_expression "(iVar4 == -4)" ( (binary_expression "iVar4 == -4" identifier == number_literal) )) (compound_statement "{\n                piVar8 = __errno_location();\n                *piVar8 = 0xc;\n                iVar4 = -1;\n                goto LAB_00133a74;\n              }" { (expression_statement "piVar8 = __errno_location();" (assignment_expression "piVar8 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "*piVar8 = 0xc;" (assignment_expression "*piVar8 = 0xc" (pointer_expression "*piVar8" * identifier) = number_literal) ;) (expression_statement "iVar4 = -1;" (assignment_expression "iVar4 = -1" identifier = number_literal) ;) (goto_statement "goto LAB_00133a74;" goto statement_identifier ;) })) }) (else_clause "else if (iVar4 == 1) {\n              if (((param_4 != lVar13) && (uVar2 != 0)) && (DAT_001774fb != '\0')) {\n                FUN_0012bddf("zlib stream ended unexpectedly after %ld/%ld bytes\n",lVar13,param_4);\n              }\n            }\n            else if (iVar4 == 2) goto LAB_00133b59;" else (if_statement "if (iVar4 == 1) {\n              if (((param_4 != lVar13) && (uVar2 != 0)) && (DAT_001774fb != '\0')) {\n                FUN_0012bddf("zlib stream ended unexpectedly after %ld/%ld bytes\n",lVar13,param_4);\n              }\n            }\n            else if (iVar4 == 2) goto LAB_00133b59;" if (parenthesized_expression "(iVar4 == 1)" ( (binary_expression "iVar4 == 1" identifier == number_literal) )) (compound_statement "{\n              if (((param_4 != lVar13) && (uVar2 != 0)) && (DAT_001774fb != '\0')) {\n                FUN_0012bddf("zlib stream ended unexpectedly after %ld/%ld bytes\n",lVar13,param_4);\n              }\n            }" { (if_statement "if (((param_4 != lVar13) && (uVar2 != 0)) && (DAT_001774fb != '\0')) {\n                FUN_0012bddf("zlib stream ended unexpectedly after %ld/%ld bytes\n",lVar13,param_4);\n              }" if (parenthesized_expression "(((param_4 != lVar13) && (uVar2 != 0)) && (DAT_001774fb != '\0'))" ( (binary_expression "((param_4 != lVar13) && (uVar2 != 0)) && (DAT_001774fb != '\0')" (parenthesized_expression "((param_4 != lVar13) && (uVar2 != 0))" ( (binary_expression "(param_4 != lVar13) && (uVar2 != 0)" (parenthesized_expression "(param_4 != lVar13)" ( (binary_expression "param_4 != lVar13" identifier != identifier) )) && (parenthesized_expression "(uVar2 != 0)" ( (binary_expression "uVar2 != 0" identifier != number_literal) ))) )) && (parenthesized_expression "(DAT_001774fb != '\0')" ( (binary_expression "DAT_001774fb != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n                FUN_0012bddf("zlib stream ended unexpectedly after %ld/%ld bytes\n",lVar13,param_4);\n              }" { (expression_statement "FUN_0012bddf("zlib stream ended unexpectedly after %ld/%ld bytes\n",lVar13,param_4);" (call_expression "FUN_0012bddf("zlib stream ended unexpectedly after %ld/%ld bytes\n",lVar13,param_4)" identifier (argument_list "("zlib stream ended unexpectedly after %ld/%ld bytes\n",lVar13,param_4)" ( (string_literal ""zlib stream ended unexpectedly after %ld/%ld bytes\n"" " string_content escape_sequence ") , identifier , identifier ))) ;) })) }) (else_clause "else if (iVar4 == 2) goto LAB_00133b59;" else (if_statement "if (iVar4 == 2) goto LAB_00133b59;" if (parenthesized_expression "(iVar4 == 2)" ( (binary_expression "iVar4 == 2" identifier == number_literal) )) (goto_statement "goto LAB_00133b59;" goto statement_identifier ;)))))) (expression_statement "iVar4 = FUN_00133125(param_3,0,__ptr_00,0x8000 - local_98,&local_d0,&local_c8);" (assignment_expression "iVar4 = FUN_00133125(param_3,0,__ptr_00,0x8000 - local_98,&local_d0,&local_c8)" identifier = (call_expression "FUN_00133125(param_3,0,__ptr_00,0x8000 - local_98,&local_d0,&local_c8)" identifier (argument_list "(param_3,0,__ptr_00,0x8000 - local_98,&local_d0,&local_c8)" ( identifier , number_literal , identifier , (binary_expression "0x8000 - local_98" number_literal - identifier) , (pointer_expression "&local_d0" & identifier) , (pointer_expression "&local_c8" & identifier) )))) ;) (if_statement "if (iVar4 < 0) goto LAB_00133a74;" if (parenthesized_expression "(iVar4 < 0)" ( (binary_expression "iVar4 < 0" identifier < number_literal) )) (goto_statement "goto LAB_00133a74;" goto statement_identifier ;)) }) while (parenthesized_expression "(local_98 == 0)" ( (binary_expression "local_98 == 0" identifier == number_literal) )) ;) }))) (if_statement "if (((param_9 & 4) != 0) && (uVar12 = uVar12 - (long)iVar5, uVar12 == 0)) {\n          pcVar7 = (char *)FUN_0013350a(param_2);\n          if (pcVar7 == (char *)0x0) {\n            iVar5 = -1;\n            break;\n          }\n          if (param_10 != (FILE *)0x0) {\n            uVar10 = 0xffffffffffffffff;\n            pcVar11 = pcVar7;\n            do {\n              if (uVar10 == 0) break;\n              uVar10 = uVar10 - 1;\n              cVar1 = *pcVar11;\n              pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n            } while (cVar1 != '\0');\n            fwrite(pcVar7,1,~uVar10 - 1,param_10);\n          }\n          free(pcVar7);\n        }" if (parenthesized_expression "(((param_9 & 4) != 0) && (uVar12 = uVar12 - (long)iVar5, uVar12 == 0))" ( (binary_expression "((param_9 & 4) != 0) && (uVar12 = uVar12 - (long)iVar5, uVar12 == 0)" (parenthesized_expression "((param_9 & 4) != 0)" ( (binary_expression "(param_9 & 4) != 0" (parenthesized_expression "(param_9 & 4)" ( (binary_expression "param_9 & 4" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(uVar12 = uVar12 - (long)iVar5, uVar12 == 0)" ( (comma_expression "uVar12 = uVar12 - (long)iVar5, uVar12 == 0" (assignment_expression "uVar12 = uVar12 - (long)iVar5" identifier = (binary_expression "uVar12 - (long)iVar5" identifier - (cast_expression "(long)iVar5" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) , (binary_expression "uVar12 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n          pcVar7 = (char *)FUN_0013350a(param_2);\n          if (pcVar7 == (char *)0x0) {\n            iVar5 = -1;\n            break;\n          }\n          if (param_10 != (FILE *)0x0) {\n            uVar10 = 0xffffffffffffffff;\n            pcVar11 = pcVar7;\n            do {\n              if (uVar10 == 0) break;\n              uVar10 = uVar10 - 1;\n              cVar1 = *pcVar11;\n              pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n            } while (cVar1 != '\0');\n            fwrite(pcVar7,1,~uVar10 - 1,param_10);\n          }\n          free(pcVar7);\n        }" { (expression_statement "pcVar7 = (char *)FUN_0013350a(param_2);" (assignment_expression "pcVar7 = (char *)FUN_0013350a(param_2)" identifier = (cast_expression "(char *)FUN_0013350a(param_2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0013350a(param_2)" identifier (argument_list "(param_2)" ( identifier ))))) ;) (if_statement "if (pcVar7 == (char *)0x0) {\n            iVar5 = -1;\n            break;\n          }" if (parenthesized_expression "(pcVar7 == (char *)0x0)" ( (binary_expression "pcVar7 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            iVar5 = -1;\n            break;\n          }" { (expression_statement "iVar5 = -1;" (assignment_expression "iVar5 = -1" identifier = number_literal) ;) (break_statement "break;" break ;) })) (if_statement "if (param_10 != (FILE *)0x0) {\n            uVar10 = 0xffffffffffffffff;\n            pcVar11 = pcVar7;\n            do {\n              if (uVar10 == 0) break;\n              uVar10 = uVar10 - 1;\n              cVar1 = *pcVar11;\n              pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n            } while (cVar1 != '\0');\n            fwrite(pcVar7,1,~uVar10 - 1,param_10);\n          }" if (parenthesized_expression "(param_10 != (FILE *)0x0)" ( (binary_expression "param_10 != (FILE *)0x0" identifier != (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            uVar10 = 0xffffffffffffffff;\n            pcVar11 = pcVar7;\n            do {\n              if (uVar10 == 0) break;\n              uVar10 = uVar10 - 1;\n              cVar1 = *pcVar11;\n              pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n            } while (cVar1 != '\0');\n            fwrite(pcVar7,1,~uVar10 - 1,param_10);\n          }" { (expression_statement "uVar10 = 0xffffffffffffffff;" (assignment_expression "uVar10 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar11 = pcVar7;" (assignment_expression "pcVar11 = pcVar7" identifier = identifier) ;) (do_statement "do {\n              if (uVar10 == 0) break;\n              uVar10 = uVar10 - 1;\n              cVar1 = *pcVar11;\n              pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n            } while (cVar1 != '\0');" do (compound_statement "{\n              if (uVar10 == 0) break;\n              uVar10 = uVar10 - 1;\n              cVar1 = *pcVar11;\n              pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n            }" { (if_statement "if (uVar10 == 0) break;" if (parenthesized_expression "(uVar10 == 0)" ( (binary_expression "uVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar10 = uVar10 - 1;" (assignment_expression "uVar10 = uVar10 - 1" identifier = (binary_expression "uVar10 - 1" identifier - number_literal)) ;) (expression_statement "cVar1 = *pcVar11;" (assignment_expression "cVar1 = *pcVar11" identifier = (pointer_expression "*pcVar11" * identifier)) ;) (expression_statement "pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;" (assignment_expression "pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1" identifier = (binary_expression "pcVar11 + (ulong)bVar14 * -2 + 1" (binary_expression "pcVar11 + (ulong)bVar14 * -2" identifier + (binary_expression "(ulong)bVar14 * -2" (cast_expression "(ulong)bVar14" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar1 != '\0')" ( (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "fwrite(pcVar7,1,~uVar10 - 1,param_10);" (call_expression "fwrite(pcVar7,1,~uVar10 - 1,param_10)" identifier (argument_list "(pcVar7,1,~uVar10 - 1,param_10)" ( identifier , number_literal , (binary_expression "~uVar10 - 1" (unary_expression "~uVar10" ~ identifier) - number_literal) , identifier ))) ;) })) (expression_statement "free(pcVar7);" (call_expression "free(pcVar7)" identifier (argument_list "(pcVar7)" ( identifier ))) ;) })) (labeled_statement "LAB_00133ea0:\n        if (DAT_001774e8 != 0) {\n          dVar16 = (double)FUN_00130f52(lVar6);\n          dVar18 = DAT_00176e70;\n          dVar16 = dVar16 - DAT_00176e68;\n          DAT_00176e60 = iVar5 + DAT_00176e60;\n          if (dVar16 < (double)DAT_00176e60 / (double)(long)DAT_001774e8) {\n            dVar17 = ((double)DAT_00176e60 / (double)(long)DAT_001774e8 - dVar16) + DAT_00176e70;\n            if (dVar17 < _DAT_0015c908) {\n              if (DAT_001774fb != '\0') {\n                uVar15 = FUN_0013d39d();\n                FUN_0012bddf(dVar17 * DAT_0015d650,dVar16,"deferring a %.2f ms sleep (%s/%.2f).\n",\n                             uVar15);\n              }\n              goto LAB_00133eae;\n            }\n            if (DAT_001774fb != '\0') {\n              uVar15 = FUN_0013d39d();\n              FUN_0012bddf(dVar17 * DAT_0015d650,dVar18,\n                           "\nsleeping %.2f ms for %s bytes, adjust %.2f ms\n",uVar15);\n            }\n            dVar18 = (double)FUN_00130f52(lVar6);\n            FUN_0013d652(dVar17);\n            dVar16 = (double)FUN_00130ebd(lVar6);\n            DAT_00176e70 = dVar17 - (dVar16 - dVar18);\n            if (DAT_00176e70 <= _DAT_0015c710) {\n              if (DAT_00176e70 < DAT_0015d658) {\n                DAT_00176e70 = DAT_0015d658;\n              }\n            }\n            else {\n              DAT_00176e70 = _DAT_0015c710;\n            }\n          }\n          DAT_00176e60 = 0;\n          DAT_00176e68 = (double)FUN_00130f52(lVar6);\n        }" statement_identifier : (if_statement "if (DAT_001774e8 != 0) {\n          dVar16 = (double)FUN_00130f52(lVar6);\n          dVar18 = DAT_00176e70;\n          dVar16 = dVar16 - DAT_00176e68;\n          DAT_00176e60 = iVar5 + DAT_00176e60;\n          if (dVar16 < (double)DAT_00176e60 / (double)(long)DAT_001774e8) {\n            dVar17 = ((double)DAT_00176e60 / (double)(long)DAT_001774e8 - dVar16) + DAT_00176e70;\n            if (dVar17 < _DAT_0015c908) {\n              if (DAT_001774fb != '\0') {\n                uVar15 = FUN_0013d39d();\n                FUN_0012bddf(dVar17 * DAT_0015d650,dVar16,"deferring a %.2f ms sleep (%s/%.2f).\n",\n                             uVar15);\n              }\n              goto LAB_00133eae;\n            }\n            if (DAT_001774fb != '\0') {\n              uVar15 = FUN_0013d39d();\n              FUN_0012bddf(dVar17 * DAT_0015d650,dVar18,\n                           "\nsleeping %.2f ms for %s bytes, adjust %.2f ms\n",uVar15);\n            }\n            dVar18 = (double)FUN_00130f52(lVar6);\n            FUN_0013d652(dVar17);\n            dVar16 = (double)FUN_00130ebd(lVar6);\n            DAT_00176e70 = dVar17 - (dVar16 - dVar18);\n            if (DAT_00176e70 <= _DAT_0015c710) {\n              if (DAT_00176e70 < DAT_0015d658) {\n                DAT_00176e70 = DAT_0015d658;\n              }\n            }\n            else {\n              DAT_00176e70 = _DAT_0015c710;\n            }\n          }\n          DAT_00176e60 = 0;\n          DAT_00176e68 = (double)FUN_00130f52(lVar6);\n        }" if (parenthesized_expression "(DAT_001774e8 != 0)" ( (binary_expression "DAT_001774e8 != 0" identifier != number_literal) )) (compound_statement "{\n          dVar16 = (double)FUN_00130f52(lVar6);\n          dVar18 = DAT_00176e70;\n          dVar16 = dVar16 - DAT_00176e68;\n          DAT_00176e60 = iVar5 + DAT_00176e60;\n          if (dVar16 < (double)DAT_00176e60 / (double)(long)DAT_001774e8) {\n            dVar17 = ((double)DAT_00176e60 / (double)(long)DAT_001774e8 - dVar16) + DAT_00176e70;\n            if (dVar17 < _DAT_0015c908) {\n              if (DAT_001774fb != '\0') {\n                uVar15 = FUN_0013d39d();\n                FUN_0012bddf(dVar17 * DAT_0015d650,dVar16,"deferring a %.2f ms sleep (%s/%.2f).\n",\n                             uVar15);\n              }\n              goto LAB_00133eae;\n            }\n            if (DAT_001774fb != '\0') {\n              uVar15 = FUN_0013d39d();\n              FUN_0012bddf(dVar17 * DAT_0015d650,dVar18,\n                           "\nsleeping %.2f ms for %s bytes, adjust %.2f ms\n",uVar15);\n            }\n            dVar18 = (double)FUN_00130f52(lVar6);\n            FUN_0013d652(dVar17);\n            dVar16 = (double)FUN_00130ebd(lVar6);\n            DAT_00176e70 = dVar17 - (dVar16 - dVar18);\n            if (DAT_00176e70 <= _DAT_0015c710) {\n              if (DAT_00176e70 < DAT_0015d658) {\n                DAT_00176e70 = DAT_0015d658;\n              }\n            }\n            else {\n              DAT_00176e70 = _DAT_0015c710;\n            }\n          }\n          DAT_00176e60 = 0;\n          DAT_00176e68 = (double)FUN_00130f52(lVar6);\n        }" { (expression_statement "dVar16 = (double)FUN_00130f52(lVar6);" (assignment_expression "dVar16 = (double)FUN_00130f52(lVar6)" identifier = (cast_expression "(double)FUN_00130f52(lVar6)" ( (type_descriptor "double" primitive_type) ) (call_expression "FUN_00130f52(lVar6)" identifier (argument_list "(lVar6)" ( identifier ))))) ;) (expression_statement "dVar18 = DAT_00176e70;" (assignment_expression "dVar18 = DAT_00176e70" identifier = identifier) ;) (expression_statement "dVar16 = dVar16 - DAT_00176e68;" (assignment_expression "dVar16 = dVar16 - DAT_00176e68" identifier = (binary_expression "dVar16 - DAT_00176e68" identifier - identifier)) ;) (expression_statement "DAT_00176e60 = iVar5 + DAT_00176e60;" (assignment_expression "DAT_00176e60 = iVar5 + DAT_00176e60" identifier = (binary_expression "iVar5 + DAT_00176e60" identifier + identifier)) ;) (if_statement "if (dVar16 < (double)DAT_00176e60 / (double)(long)DAT_001774e8) {\n            dVar17 = ((double)DAT_00176e60 / (double)(long)DAT_001774e8 - dVar16) + DAT_00176e70;\n            if (dVar17 < _DAT_0015c908) {\n              if (DAT_001774fb != '\0') {\n                uVar15 = FUN_0013d39d();\n                FUN_0012bddf(dVar17 * DAT_0015d650,dVar16,"deferring a %.2f ms sleep (%s/%.2f).\n",\n                             uVar15);\n              }\n              goto LAB_00133eae;\n            }\n            if (DAT_001774fb != '\0') {\n              uVar15 = FUN_0013d39d();\n              FUN_0012bddf(dVar17 * DAT_0015d650,dVar18,\n                           "\nsleeping %.2f ms for %s bytes, adjust %.2f ms\n",uVar15);\n            }\n            dVar18 = (double)FUN_00130f52(lVar6);\n            FUN_0013d652(dVar17);\n            dVar16 = (double)FUN_00130ebd(lVar6);\n            DAT_00176e70 = dVar17 - (dVar16 - dVar18);\n            if (DAT_00176e70 <= _DAT_0015c710) {\n              if (DAT_00176e70 < DAT_0015d658) {\n                DAT_00176e70 = DAT_0015d658;\n              }\n            }\n            else {\n              DAT_00176e70 = _DAT_0015c710;\n            }\n          }" if (parenthesized_expression "(dVar16 < (double)DAT_00176e60 / (double)(long)DAT_001774e8)" ( (binary_expression "dVar16 < (double)DAT_00176e60 / (double)(long)DAT_001774e8" identifier < (binary_expression "(double)DAT_00176e60 / (double)(long)DAT_001774e8" (cast_expression "(double)DAT_00176e60" ( (type_descriptor "double" primitive_type) ) identifier) / (cast_expression "(double)(long)DAT_001774e8" ( (type_descriptor "double" primitive_type) ) (cast_expression "(long)DAT_001774e8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)))) )) (compound_statement "{\n            dVar17 = ((double)DAT_00176e60 / (double)(long)DAT_001774e8 - dVar16) + DAT_00176e70;\n            if (dVar17 < _DAT_0015c908) {\n              if (DAT_001774fb != '\0') {\n                uVar15 = FUN_0013d39d();\n                FUN_0012bddf(dVar17 * DAT_0015d650,dVar16,"deferring a %.2f ms sleep (%s/%.2f).\n",\n                             uVar15);\n              }\n              goto LAB_00133eae;\n            }\n            if (DAT_001774fb != '\0') {\n              uVar15 = FUN_0013d39d();\n              FUN_0012bddf(dVar17 * DAT_0015d650,dVar18,\n                           "\nsleeping %.2f ms for %s bytes, adjust %.2f ms\n",uVar15);\n            }\n            dVar18 = (double)FUN_00130f52(lVar6);\n            FUN_0013d652(dVar17);\n            dVar16 = (double)FUN_00130ebd(lVar6);\n            DAT_00176e70 = dVar17 - (dVar16 - dVar18);\n            if (DAT_00176e70 <= _DAT_0015c710) {\n              if (DAT_00176e70 < DAT_0015d658) {\n                DAT_00176e70 = DAT_0015d658;\n              }\n            }\n            else {\n              DAT_00176e70 = _DAT_0015c710;\n            }\n          }" { (expression_statement "dVar17 = ((double)DAT_00176e60 / (double)(long)DAT_001774e8 - dVar16) + DAT_00176e70;" (assignment_expression "dVar17 = ((double)DAT_00176e60 / (double)(long)DAT_001774e8 - dVar16) + DAT_00176e70" identifier = (binary_expression "((double)DAT_00176e60 / (double)(long)DAT_001774e8 - dVar16) + DAT_00176e70" (parenthesized_expression "((double)DAT_00176e60 / (double)(long)DAT_001774e8 - dVar16)" ( (binary_expression "(double)DAT_00176e60 / (double)(long)DAT_001774e8 - dVar16" (binary_expression "(double)DAT_00176e60 / (double)(long)DAT_001774e8" (cast_expression "(double)DAT_00176e60" ( (type_descriptor "double" primitive_type) ) identifier) / (cast_expression "(double)(long)DAT_001774e8" ( (type_descriptor "double" primitive_type) ) (cast_expression "(long)DAT_001774e8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) - identifier) )) + identifier)) ;) (if_statement "if (dVar17 < _DAT_0015c908) {\n              if (DAT_001774fb != '\0') {\n                uVar15 = FUN_0013d39d();\n                FUN_0012bddf(dVar17 * DAT_0015d650,dVar16,"deferring a %.2f ms sleep (%s/%.2f).\n",\n                             uVar15);\n              }\n              goto LAB_00133eae;\n            }" if (parenthesized_expression "(dVar17 < _DAT_0015c908)" ( (binary_expression "dVar17 < _DAT_0015c908" identifier < identifier) )) (compound_statement "{\n              if (DAT_001774fb != '\0') {\n                uVar15 = FUN_0013d39d();\n                FUN_0012bddf(dVar17 * DAT_0015d650,dVar16,"deferring a %.2f ms sleep (%s/%.2f).\n",\n                             uVar15);\n              }\n              goto LAB_00133eae;\n            }" { (if_statement "if (DAT_001774fb != '\0') {\n                uVar15 = FUN_0013d39d();\n                FUN_0012bddf(dVar17 * DAT_0015d650,dVar16,"deferring a %.2f ms sleep (%s/%.2f).\n",\n                             uVar15);\n              }" if (parenthesized_expression "(DAT_001774fb != '\0')" ( (binary_expression "DAT_001774fb != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                uVar15 = FUN_0013d39d();\n                FUN_0012bddf(dVar17 * DAT_0015d650,dVar16,"deferring a %.2f ms sleep (%s/%.2f).\n",\n                             uVar15);\n              }" { (expression_statement "uVar15 = FUN_0013d39d();" (assignment_expression "uVar15 = FUN_0013d39d()" identifier = (call_expression "FUN_0013d39d()" identifier (argument_list "()" ( )))) ;) (expression_statement "FUN_0012bddf(dVar17 * DAT_0015d650,dVar16,"deferring a %.2f ms sleep (%s/%.2f).\n",\n                             uVar15);" (call_expression "FUN_0012bddf(dVar17 * DAT_0015d650,dVar16,"deferring a %.2f ms sleep (%s/%.2f).\n",\n                             uVar15)" identifier (argument_list "(dVar17 * DAT_0015d650,dVar16,"deferring a %.2f ms sleep (%s/%.2f).\n",\n                             uVar15)" ( (binary_expression "dVar17 * DAT_0015d650" identifier * identifier) , identifier , (string_literal ""deferring a %.2f ms sleep (%s/%.2f).\n"" " string_content escape_sequence ") , identifier ))) ;) })) (goto_statement "goto LAB_00133eae;" goto statement_identifier ;) })) (if_statement "if (DAT_001774fb != '\0') {\n              uVar15 = FUN_0013d39d();\n              FUN_0012bddf(dVar17 * DAT_0015d650,dVar18,\n                           "\nsleeping %.2f ms for %s bytes, adjust %.2f ms\n",uVar15);\n            }" if (parenthesized_expression "(DAT_001774fb != '\0')" ( (binary_expression "DAT_001774fb != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              uVar15 = FUN_0013d39d();\n              FUN_0012bddf(dVar17 * DAT_0015d650,dVar18,\n                           "\nsleeping %.2f ms for %s bytes, adjust %.2f ms\n",uVar15);\n            }" { (expression_statement "uVar15 = FUN_0013d39d();" (assignment_expression "uVar15 = FUN_0013d39d()" identifier = (call_expression "FUN_0013d39d()" identifier (argument_list "()" ( )))) ;) (expression_statement "FUN_0012bddf(dVar17 * DAT_0015d650,dVar18,\n                           "\nsleeping %.2f ms for %s bytes, adjust %.2f ms\n",uVar15);" (call_expression "FUN_0012bddf(dVar17 * DAT_0015d650,dVar18,\n                           "\nsleeping %.2f ms for %s bytes, adjust %.2f ms\n",uVar15)" identifier (argument_list "(dVar17 * DAT_0015d650,dVar18,\n                           "\nsleeping %.2f ms for %s bytes, adjust %.2f ms\n",uVar15)" ( (binary_expression "dVar17 * DAT_0015d650" identifier * identifier) , identifier , (string_literal ""\nsleeping %.2f ms for %s bytes, adjust %.2f ms\n"" " escape_sequence string_content escape_sequence ") , identifier ))) ;) })) (expression_statement "dVar18 = (double)FUN_00130f52(lVar6);" (assignment_expression "dVar18 = (double)FUN_00130f52(lVar6)" identifier = (cast_expression "(double)FUN_00130f52(lVar6)" ( (type_descriptor "double" primitive_type) ) (call_expression "FUN_00130f52(lVar6)" identifier (argument_list "(lVar6)" ( identifier ))))) ;) (expression_statement "FUN_0013d652(dVar17);" (call_expression "FUN_0013d652(dVar17)" identifier (argument_list "(dVar17)" ( identifier ))) ;) (expression_statement "dVar16 = (double)FUN_00130ebd(lVar6);" (assignment_expression "dVar16 = (double)FUN_00130ebd(lVar6)" identifier = (cast_expression "(double)FUN_00130ebd(lVar6)" ( (type_descriptor "double" primitive_type) ) (call_expression "FUN_00130ebd(lVar6)" identifier (argument_list "(lVar6)" ( identifier ))))) ;) (expression_statement "DAT_00176e70 = dVar17 - (dVar16 - dVar18);" (assignment_expression "DAT_00176e70 = dVar17 - (dVar16 - dVar18)" identifier = (binary_expression "dVar17 - (dVar16 - dVar18)" identifier - (parenthesized_expression "(dVar16 - dVar18)" ( (binary_expression "dVar16 - dVar18" identifier - identifier) )))) ;) (if_statement "if (DAT_00176e70 <= _DAT_0015c710) {\n              if (DAT_00176e70 < DAT_0015d658) {\n                DAT_00176e70 = DAT_0015d658;\n              }\n            }\n            else {\n              DAT_00176e70 = _DAT_0015c710;\n            }" if (parenthesized_expression "(DAT_00176e70 <= _DAT_0015c710)" ( (binary_expression "DAT_00176e70 <= _DAT_0015c710" identifier <= identifier) )) (compound_statement "{\n              if (DAT_00176e70 < DAT_0015d658) {\n                DAT_00176e70 = DAT_0015d658;\n              }\n            }" { (if_statement "if (DAT_00176e70 < DAT_0015d658) {\n                DAT_00176e70 = DAT_0015d658;\n              }" if (parenthesized_expression "(DAT_00176e70 < DAT_0015d658)" ( (binary_expression "DAT_00176e70 < DAT_0015d658" identifier < identifier) )) (compound_statement "{\n                DAT_00176e70 = DAT_0015d658;\n              }" { (expression_statement "DAT_00176e70 = DAT_0015d658;" (assignment_expression "DAT_00176e70 = DAT_0015d658" identifier = identifier) ;) })) }) (else_clause "else {\n              DAT_00176e70 = _DAT_0015c710;\n            }" else (compound_statement "{\n              DAT_00176e70 = _DAT_0015c710;\n            }" { (expression_statement "DAT_00176e70 = _DAT_0015c710;" (assignment_expression "DAT_00176e70 = _DAT_0015c710" identifier = identifier) ;) }))) })) (expression_statement "DAT_00176e60 = 0;" (assignment_expression "DAT_00176e60 = 0" identifier = number_literal) ;) (expression_statement "DAT_00176e68 = (double)FUN_00130f52(lVar6);" (assignment_expression "DAT_00176e68 = (double)FUN_00130f52(lVar6)" identifier = (cast_expression "(double)FUN_00130f52(lVar6)" ( (type_descriptor "double" primitive_type) ) (call_expression "FUN_00130f52(lVar6)" identifier (argument_list "(lVar6)" ( identifier ))))) ;) }))) }) (else_clause "else {\n        if (DAT_001774b0 != 0.0) {\n          dVar18 = (double)FUN_00130f52(lVar6);\n          if ((DAT_001774b0 < (dVar18 - local_110) + DAT_0015d648) &&\n             (DAT_001774b0 - (dVar18 - local_110) < 0.0)) {\n            piVar8 = __errno_location();\n            *piVar8 = 0x6e;\n            iVar4 = -1;\n            goto LAB_00133a74;\n          }\n        }\n        iVar5 = FUN_0010d64e(param_2,__ptr,uVar10 & 0xffffffff);\n        if (-1 < iVar5) goto LAB_00133e68;\n        piVar8 = __errno_location();\n        if (*piVar8 != 0x6e) break;\n        if (local_dc) {\n          FUN_00130ebd(lVar6);\n          iVar5 = 0;\n          goto LAB_00133ea0;\n        }\n        if ((DAT_001774e8 != 0) || (local_da)) {\n          FUN_00130ebd(lVar6);\n          iVar5 = 0;\n          goto LAB_00133ea0;\n        }\n        iVar5 = 0;\n      }" else (compound_statement "{\n        if (DAT_001774b0 != 0.0) {\n          dVar18 = (double)FUN_00130f52(lVar6);\n          if ((DAT_001774b0 < (dVar18 - local_110) + DAT_0015d648) &&\n             (DAT_001774b0 - (dVar18 - local_110) < 0.0)) {\n            piVar8 = __errno_location();\n            *piVar8 = 0x6e;\n            iVar4 = -1;\n            goto LAB_00133a74;\n          }\n        }\n        iVar5 = FUN_0010d64e(param_2,__ptr,uVar10 & 0xffffffff);\n        if (-1 < iVar5) goto LAB_00133e68;\n        piVar8 = __errno_location();\n        if (*piVar8 != 0x6e) break;\n        if (local_dc) {\n          FUN_00130ebd(lVar6);\n          iVar5 = 0;\n          goto LAB_00133ea0;\n        }\n        if ((DAT_001774e8 != 0) || (local_da)) {\n          FUN_00130ebd(lVar6);\n          iVar5 = 0;\n          goto LAB_00133ea0;\n        }\n        iVar5 = 0;\n      }" { (if_statement "if (DAT_001774b0 != 0.0) {\n          dVar18 = (double)FUN_00130f52(lVar6);\n          if ((DAT_001774b0 < (dVar18 - local_110) + DAT_0015d648) &&\n             (DAT_001774b0 - (dVar18 - local_110) < 0.0)) {\n            piVar8 = __errno_location();\n            *piVar8 = 0x6e;\n            iVar4 = -1;\n            goto LAB_00133a74;\n          }\n        }" if (parenthesized_expression "(DAT_001774b0 != 0.0)" ( (binary_expression "DAT_001774b0 != 0.0" identifier != number_literal) )) (compound_statement "{\n          dVar18 = (double)FUN_00130f52(lVar6);\n          if ((DAT_001774b0 < (dVar18 - local_110) + DAT_0015d648) &&\n             (DAT_001774b0 - (dVar18 - local_110) < 0.0)) {\n            piVar8 = __errno_location();\n            *piVar8 = 0x6e;\n            iVar4 = -1;\n            goto LAB_00133a74;\n          }\n        }" { (expression_statement "dVar18 = (double)FUN_00130f52(lVar6);" (assignment_expression "dVar18 = (double)FUN_00130f52(lVar6)" identifier = (cast_expression "(double)FUN_00130f52(lVar6)" ( (type_descriptor "double" primitive_type) ) (call_expression "FUN_00130f52(lVar6)" identifier (argument_list "(lVar6)" ( identifier ))))) ;) (if_statement "if ((DAT_001774b0 < (dVar18 - local_110) + DAT_0015d648) &&\n             (DAT_001774b0 - (dVar18 - local_110) < 0.0)) {\n            piVar8 = __errno_location();\n            *piVar8 = 0x6e;\n            iVar4 = -1;\n            goto LAB_00133a74;\n          }" if (parenthesized_expression "((DAT_001774b0 < (dVar18 - local_110) + DAT_0015d648) &&\n             (DAT_001774b0 - (dVar18 - local_110) < 0.0))" ( (binary_expression "(DAT_001774b0 < (dVar18 - local_110) + DAT_0015d648) &&\n             (DAT_001774b0 - (dVar18 - local_110) < 0.0)" (parenthesized_expression "(DAT_001774b0 < (dVar18 - local_110) + DAT_0015d648)" ( (binary_expression "DAT_001774b0 < (dVar18 - local_110) + DAT_0015d648" identifier < (binary_expression "(dVar18 - local_110) + DAT_0015d648" (parenthesized_expression "(dVar18 - local_110)" ( (binary_expression "dVar18 - local_110" identifier - identifier) )) + identifier)) )) && (parenthesized_expression "(DAT_001774b0 - (dVar18 - local_110) < 0.0)" ( (binary_expression "DAT_001774b0 - (dVar18 - local_110) < 0.0" (binary_expression "DAT_001774b0 - (dVar18 - local_110)" identifier - (parenthesized_expression "(dVar18 - local_110)" ( (binary_expression "dVar18 - local_110" identifier - identifier) ))) < number_literal) ))) )) (compound_statement "{\n            piVar8 = __errno_location();\n            *piVar8 = 0x6e;\n            iVar4 = -1;\n            goto LAB_00133a74;\n          }" { (expression_statement "piVar8 = __errno_location();" (assignment_expression "piVar8 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "*piVar8 = 0x6e;" (assignment_expression "*piVar8 = 0x6e" (pointer_expression "*piVar8" * identifier) = number_literal) ;) (expression_statement "iVar4 = -1;" (assignment_expression "iVar4 = -1" identifier = number_literal) ;) (goto_statement "goto LAB_00133a74;" goto statement_identifier ;) })) })) (expression_statement "iVar5 = FUN_0010d64e(param_2,__ptr,uVar10 & 0xffffffff);" (assignment_expression "iVar5 = FUN_0010d64e(param_2,__ptr,uVar10 & 0xffffffff)" identifier = (call_expression "FUN_0010d64e(param_2,__ptr,uVar10 & 0xffffffff)" identifier (argument_list "(param_2,__ptr,uVar10 & 0xffffffff)" ( identifier , identifier , (binary_expression "uVar10 & 0xffffffff" identifier & number_literal) )))) ;) (if_statement "if (-1 < iVar5) goto LAB_00133e68;" if (parenthesized_expression "(-1 < iVar5)" ( (binary_expression "-1 < iVar5" number_literal < identifier) )) (goto_statement "goto LAB_00133e68;" goto statement_identifier ;)) (expression_statement "piVar8 = __errno_location();" (assignment_expression "piVar8 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (if_statement "if (*piVar8 != 0x6e) break;" if (parenthesized_expression "(*piVar8 != 0x6e)" ( (binary_expression "*piVar8 != 0x6e" (pointer_expression "*piVar8" * identifier) != number_literal) )) (break_statement "break;" break ;)) (if_statement "if (local_dc) {\n          FUN_00130ebd(lVar6);\n          iVar5 = 0;\n          goto LAB_00133ea0;\n        }" if (parenthesized_expression "(local_dc)" ( identifier )) (compound_statement "{\n          FUN_00130ebd(lVar6);\n          iVar5 = 0;\n          goto LAB_00133ea0;\n        }" { (expression_statement "FUN_00130ebd(lVar6);" (call_expression "FUN_00130ebd(lVar6)" identifier (argument_list "(lVar6)" ( identifier ))) ;) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00133ea0;" goto statement_identifier ;) })) (if_statement "if ((DAT_001774e8 != 0) || (local_da)) {\n          FUN_00130ebd(lVar6);\n          iVar5 = 0;\n          goto LAB_00133ea0;\n        }" if (parenthesized_expression "((DAT_001774e8 != 0) || (local_da))" ( (binary_expression "(DAT_001774e8 != 0) || (local_da)" (parenthesized_expression "(DAT_001774e8 != 0)" ( (binary_expression "DAT_001774e8 != 0" identifier != number_literal) )) || (parenthesized_expression "(local_da)" ( identifier ))) )) (compound_statement "{\n          FUN_00130ebd(lVar6);\n          iVar5 = 0;\n          goto LAB_00133ea0;\n        }" { (expression_statement "FUN_00130ebd(lVar6);" (call_expression "FUN_00130ebd(lVar6)" identifier (argument_list "(lVar6)" ( identifier ))) ;) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00133ea0;" goto statement_identifier ;) })) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) }))) (labeled_statement "LAB_00133eae:\n      if (local_dc) {\n        FUN_00130f52(lVar6);\n        FUN_00130d09(local_130,(long)iVar5);\n      }" statement_identifier : (if_statement "if (local_dc) {\n        FUN_00130f52(lVar6);\n        FUN_00130d09(local_130,(long)iVar5);\n      }" if (parenthesized_expression "(local_dc)" ( identifier )) (compound_statement "{\n        FUN_00130f52(lVar6);\n        FUN_00130d09(local_130,(long)iVar5);\n      }" { (expression_statement "FUN_00130f52(lVar6);" (call_expression "FUN_00130f52(lVar6)" identifier (argument_list "(lVar6)" ( identifier ))) ;) (expression_statement "FUN_00130d09(local_130,(long)iVar5);" (call_expression "FUN_00130d09(local_130,(long)iVar5)" identifier (argument_list "(local_130,(long)iVar5)" ( identifier , (cast_expression "(long)iVar5" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) ))) ;) }))) })) (expression_statement "iVar4 = -1;" (assignment_expression "iVar4 = -1" identifier = number_literal) ;) (if_statement "if (-1 < iVar5) {\n      iVar4 = iVar5;\n    }" if (parenthesized_expression "(-1 < iVar5)" ( (binary_expression "-1 < iVar5" number_literal < identifier) )) (compound_statement "{\n      iVar4 = iVar5;\n    }" { (expression_statement "iVar4 = iVar5;" (assignment_expression "iVar4 = iVar5" identifier = identifier) ;) })) (goto_statement "goto LAB_00133a74;" goto statement_identifier ;) })) (expression_statement "__ptr_00 = (undefined8 *)FUN_001494bf(0x8000);" (assignment_expression "__ptr_00 = (undefined8 *)FUN_001494bf(0x8000)" identifier = (cast_expression "(undefined8 *)FUN_001494bf(0x8000)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001494bf(0x8000)" identifier (argument_list "(0x8000)" ( number_literal ))))) ;) (if_statement "if (__ptr_00 == (undefined8 *)0x0) {\n    piVar8 = __errno_location();\n    *piVar8 = 0xc;\n  }\n  else {\n    local_78 = FUN_00133111;\n    local_70 = FUN_00133100;\n    local_68 = 0;\n    local_b8 = (void *)0x0;\n    local_b0 = 0;\n    iVar3 = inflateInit2_(&local_b8,0x2f,"1.2.11",0x70);\n    if (iVar3 == 0) goto LAB_001335e1;\n    free(__ptr_00);\n    iVar5 = 0xc;\n    if (iVar3 != -4) {\n      iVar5 = 0x16;\n    }\n    piVar8 = __errno_location();\n    *piVar8 = iVar5;\n  }" if (parenthesized_expression "(__ptr_00 == (undefined8 *)0x0)" ( (binary_expression "__ptr_00 == (undefined8 *)0x0" identifier == (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    piVar8 = __errno_location();\n    *piVar8 = 0xc;\n  }" { (expression_statement "piVar8 = __errno_location();" (assignment_expression "piVar8 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "*piVar8 = 0xc;" (assignment_expression "*piVar8 = 0xc" (pointer_expression "*piVar8" * identifier) = number_literal) ;) }) (else_clause "else {\n    local_78 = FUN_00133111;\n    local_70 = FUN_00133100;\n    local_68 = 0;\n    local_b8 = (void *)0x0;\n    local_b0 = 0;\n    iVar3 = inflateInit2_(&local_b8,0x2f,"1.2.11",0x70);\n    if (iVar3 == 0) goto LAB_001335e1;\n    free(__ptr_00);\n    iVar5 = 0xc;\n    if (iVar3 != -4) {\n      iVar5 = 0x16;\n    }\n    piVar8 = __errno_location();\n    *piVar8 = iVar5;\n  }" else (compound_statement "{\n    local_78 = FUN_00133111;\n    local_70 = FUN_00133100;\n    local_68 = 0;\n    local_b8 = (void *)0x0;\n    local_b0 = 0;\n    iVar3 = inflateInit2_(&local_b8,0x2f,"1.2.11",0x70);\n    if (iVar3 == 0) goto LAB_001335e1;\n    free(__ptr_00);\n    iVar5 = 0xc;\n    if (iVar3 != -4) {\n      iVar5 = 0x16;\n    }\n    piVar8 = __errno_location();\n    *piVar8 = iVar5;\n  }" { (expression_statement "local_78 = FUN_00133111;" (assignment_expression "local_78 = FUN_00133111" identifier = identifier) ;) (expression_statement "local_70 = FUN_00133100;" (assignment_expression "local_70 = FUN_00133100" identifier = identifier) ;) (expression_statement "local_68 = 0;" (assignment_expression "local_68 = 0" identifier = number_literal) ;) (expression_statement "local_b8 = (void *)0x0;" (assignment_expression "local_b8 = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_b0 = 0;" (assignment_expression "local_b0 = 0" identifier = number_literal) ;) (expression_statement "iVar3 = inflateInit2_(&local_b8,0x2f,"1.2.11",0x70);" (assignment_expression "iVar3 = inflateInit2_(&local_b8,0x2f,"1.2.11",0x70)" identifier = (call_expression "inflateInit2_(&local_b8,0x2f,"1.2.11",0x70)" identifier (argument_list "(&local_b8,0x2f,"1.2.11",0x70)" ( (pointer_expression "&local_b8" & identifier) , number_literal , (string_literal ""1.2.11"" " string_content ") , number_literal )))) ;) (if_statement "if (iVar3 == 0) goto LAB_001335e1;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_001335e1;" goto statement_identifier ;)) (expression_statement "free(__ptr_00);" (call_expression "free(__ptr_00)" identifier (argument_list "(__ptr_00)" ( identifier ))) ;) (expression_statement "iVar5 = 0xc;" (assignment_expression "iVar5 = 0xc" identifier = number_literal) ;) (if_statement "if (iVar3 != -4) {\n      iVar5 = 0x16;\n    }" if (parenthesized_expression "(iVar3 != -4)" ( (binary_expression "iVar3 != -4" identifier != number_literal) )) (compound_statement "{\n      iVar5 = 0x16;\n    }" { (expression_statement "iVar5 = 0x16;" (assignment_expression "iVar5 = 0x16" identifier = number_literal) ;) })) (expression_statement "piVar8 = __errno_location();" (assignment_expression "piVar8 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "*piVar8 = iVar5;" (assignment_expression "*piVar8 = iVar5" (pointer_expression "*piVar8" * identifier) = identifier) ;) }))) (expression_statement "lVar13 = 0;" (assignment_expression "lVar13 = 0" identifier = number_literal) ;) (expression_statement "iVar4 = -1;" (assignment_expression "iVar4 = -1" identifier = number_literal) ;) (if_statement "if (param_8 == (undefined8 *)0x0) goto LAB_00133ab4;" if (parenthesized_expression "(param_8 == (undefined8 *)0x0)" ( (binary_expression "param_8 == (undefined8 *)0x0" identifier == (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00133ab4;" goto statement_identifier ;)) (expression_statement "__ptr_00 = (undefined8 *)0x0;" (assignment_expression "__ptr_00 = (undefined8 *)0x0" identifier = (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "lVar13 = 0;" (assignment_expression "lVar13 = 0" identifier = number_literal) ;) (expression_statement "lVar6 = 0;" (assignment_expression "lVar6 = 0" identifier = number_literal) ;) (expression_statement "iVar4 = -1;" (assignment_expression "iVar4 = -1" identifier = number_literal) ;) (labeled_statement "LAB_00133a96:\n  uVar15 = FUN_00130f52(lVar6);" statement_identifier : (expression_statement "uVar15 = FUN_00130f52(lVar6);" (assignment_expression "uVar15 = FUN_00130f52(lVar6)" identifier = (call_expression "FUN_00130f52(lVar6)" identifier (argument_list "(lVar6)" ( identifier )))) ;)) (expression_statement "*param_8 = uVar15;" (assignment_expression "*param_8 = uVar15" (pointer_expression "*param_8" * identifier) = identifier) ;) (goto_statement "goto LAB_00133aa7;" goto statement_identifier ;) (while_statement "while( true ) {\n    uVar9 = uVar9 - 1;\n    cVar1 = *pcVar11;\n    pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n    if (cVar1 == '\0') break;\ncode_r0x001338a0:\n    if (uVar9 == 0) break;\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    uVar9 = uVar9 - 1;\n    cVar1 = *pcVar11;\n    pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n    if (cVar1 == '\0') break;\ncode_r0x001338a0:\n    if (uVar9 == 0) break;\n  }" { (expression_statement "uVar9 = uVar9 - 1;" (assignment_expression "uVar9 = uVar9 - 1" identifier = (binary_expression "uVar9 - 1" identifier - number_literal)) ;) (expression_statement "cVar1 = *pcVar11;" (assignment_expression "cVar1 = *pcVar11" identifier = (pointer_expression "*pcVar11" * identifier)) ;) (expression_statement "pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;" (assignment_expression "pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1" identifier = (binary_expression "pcVar11 + (ulong)bVar14 * -2 + 1" (binary_expression "pcVar11 + (ulong)bVar14 * -2" identifier + (binary_expression "(ulong)bVar14 * -2" (cast_expression "(ulong)bVar14" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (if_statement "if (cVar1 == '\0') break;" if (parenthesized_expression "(cVar1 == '\0')" ( (binary_expression "cVar1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (break_statement "break;" break ;)) (labeled_statement "code_r0x001338a0:\n    if (uVar9 == 0) break;" statement_identifier : (if_statement "if (uVar9 == 0) break;" if (parenthesized_expression "(uVar9 == 0)" ( (binary_expression "uVar9 == 0" identifier == number_literal) )) (break_statement "break;" break ;))) })) (expression_statement "fwrite(pcVar7,1,~uVar9 - 1,param_10);" (call_expression "fwrite(pcVar7,1,~uVar9 - 1,param_10)" identifier (argument_list "(pcVar7,1,~uVar9 - 1,param_10)" ( identifier , number_literal , (binary_expression "~uVar9 - 1" (unary_expression "~uVar9" ~ identifier) - number_literal) , identifier ))) ;) (labeled_statement "LAB_001338bc:\n  free(pcVar7);" statement_identifier : (expression_statement "free(pcVar7);" (call_expression "free(pcVar7)" identifier (argument_list "(pcVar7)" ( identifier ))) ;)) (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) (labeled_statement "LAB_00133a74:\n  if (local_130 != 0) {\n    FUN_00130f52(lVar6);\n    FUN_00130d26(local_130);\n  }" statement_identifier : (if_statement "if (local_130 != 0) {\n    FUN_00130f52(lVar6);\n    FUN_00130d26(local_130);\n  }" if (parenthesized_expression "(local_130 != 0)" ( (binary_expression "local_130 != 0" identifier != number_literal) )) (compound_statement "{\n    FUN_00130f52(lVar6);\n    FUN_00130d26(local_130);\n  }" { (expression_statement "FUN_00130f52(lVar6);" (call_expression "FUN_00130f52(lVar6)" identifier (argument_list "(lVar6)" ( identifier ))) ;) (expression_statement "FUN_00130d26(local_130);" (call_expression "FUN_00130d26(local_130)" identifier (argument_list "(local_130)" ( identifier ))) ;) }))) (if_statement "if (param_8 != (undefined8 *)0x0) goto LAB_00133a96;" if (parenthesized_expression "(param_8 != (undefined8 *)0x0)" ( (binary_expression "param_8 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00133a96;" goto statement_identifier ;)) (labeled_statement "LAB_00133aa7:\n  param_8 = __ptr_00;" statement_identifier : (expression_statement "param_8 = __ptr_00;" (assignment_expression "param_8 = __ptr_00" identifier = identifier) ;)) (if_statement "if (lVar6 != 0) {\n    FUN_00130d39(lVar6);\n  }" if (parenthesized_expression "(lVar6 != 0)" ( (binary_expression "lVar6 != 0" identifier != number_literal) )) (compound_statement "{\n    FUN_00130d39(lVar6);\n  }" { (expression_statement "FUN_00130d39(lVar6);" (call_expression "FUN_00130d39(lVar6)" identifier (argument_list "(lVar6)" ( identifier ))) ;) })) (labeled_statement "LAB_00133ab4:\n  if (param_8 != (undefined8 *)0x0) {\n    iVar3 = inflateEnd(&local_b8);\n    if ((-1 < iVar4) && (iVar4 = iVar3, iVar3 != 0)) {\n      piVar8 = __errno_location();\n      *piVar8 = 0x16;\n      iVar4 = -1;\n    }\n    free(param_8);\n    if ((local_a8 != lVar13) && (DAT_001774fb != '\0')) {\n      FUN_0012bddf("zlib read size differs from raw read size (%lu/%lu)\n",local_a8,lVar13);\n    }\n  }" statement_identifier : (if_statement "if (param_8 != (undefined8 *)0x0) {\n    iVar3 = inflateEnd(&local_b8);\n    if ((-1 < iVar4) && (iVar4 = iVar3, iVar3 != 0)) {\n      piVar8 = __errno_location();\n      *piVar8 = 0x16;\n      iVar4 = -1;\n    }\n    free(param_8);\n    if ((local_a8 != lVar13) && (DAT_001774fb != '\0')) {\n      FUN_0012bddf("zlib read size differs from raw read size (%lu/%lu)\n",local_a8,lVar13);\n    }\n  }" if (parenthesized_expression "(param_8 != (undefined8 *)0x0)" ( (binary_expression "param_8 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    iVar3 = inflateEnd(&local_b8);\n    if ((-1 < iVar4) && (iVar4 = iVar3, iVar3 != 0)) {\n      piVar8 = __errno_location();\n      *piVar8 = 0x16;\n      iVar4 = -1;\n    }\n    free(param_8);\n    if ((local_a8 != lVar13) && (DAT_001774fb != '\0')) {\n      FUN_0012bddf("zlib read size differs from raw read size (%lu/%lu)\n",local_a8,lVar13);\n    }\n  }" { (expression_statement "iVar3 = inflateEnd(&local_b8);" (assignment_expression "iVar3 = inflateEnd(&local_b8)" identifier = (call_expression "inflateEnd(&local_b8)" identifier (argument_list "(&local_b8)" ( (pointer_expression "&local_b8" & identifier) )))) ;) (if_statement "if ((-1 < iVar4) && (iVar4 = iVar3, iVar3 != 0)) {\n      piVar8 = __errno_location();\n      *piVar8 = 0x16;\n      iVar4 = -1;\n    }" if (parenthesized_expression "((-1 < iVar4) && (iVar4 = iVar3, iVar3 != 0))" ( (binary_expression "(-1 < iVar4) && (iVar4 = iVar3, iVar3 != 0)" (parenthesized_expression "(-1 < iVar4)" ( (binary_expression "-1 < iVar4" number_literal < identifier) )) && (parenthesized_expression "(iVar4 = iVar3, iVar3 != 0)" ( (comma_expression "iVar4 = iVar3, iVar3 != 0" (assignment_expression "iVar4 = iVar3" identifier = identifier) , (binary_expression "iVar3 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n      piVar8 = __errno_location();\n      *piVar8 = 0x16;\n      iVar4 = -1;\n    }" { (expression_statement "piVar8 = __errno_location();" (assignment_expression "piVar8 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "*piVar8 = 0x16;" (assignment_expression "*piVar8 = 0x16" (pointer_expression "*piVar8" * identifier) = number_literal) ;) (expression_statement "iVar4 = -1;" (assignment_expression "iVar4 = -1" identifier = number_literal) ;) })) (expression_statement "free(param_8);" (call_expression "free(param_8)" identifier (argument_list "(param_8)" ( identifier ))) ;) (if_statement "if ((local_a8 != lVar13) && (DAT_001774fb != '\0')) {\n      FUN_0012bddf("zlib read size differs from raw read size (%lu/%lu)\n",local_a8,lVar13);\n    }" if (parenthesized_expression "((local_a8 != lVar13) && (DAT_001774fb != '\0'))" ( (binary_expression "(local_a8 != lVar13) && (DAT_001774fb != '\0')" (parenthesized_expression "(local_a8 != lVar13)" ( (binary_expression "local_a8 != lVar13" identifier != identifier) )) && (parenthesized_expression "(DAT_001774fb != '\0')" ( (binary_expression "DAT_001774fb != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n      FUN_0012bddf("zlib read size differs from raw read size (%lu/%lu)\n",local_a8,lVar13);\n    }" { (expression_statement "FUN_0012bddf("zlib read size differs from raw read size (%lu/%lu)\n",local_a8,lVar13);" (call_expression "FUN_0012bddf("zlib read size differs from raw read size (%lu/%lu)\n",local_a8,lVar13)" identifier (argument_list "("zlib read size differs from raw read size (%lu/%lu)\n",local_a8,lVar13)" ( (string_literal ""zlib read size differs from raw read size (%lu/%lu)\n"" " string_content escape_sequence ") , identifier , identifier ))) ;) })) }))) (if_statement "if (param_6 != (long *)0x0) {\n    *param_6 = *param_6 + lVar13;\n  }" if (parenthesized_expression "(param_6 != (long *)0x0)" ( (binary_expression "param_6 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    *param_6 = *param_6 + lVar13;\n  }" { (expression_statement "*param_6 = *param_6 + lVar13;" (assignment_expression "*param_6 = *param_6 + lVar13" (pointer_expression "*param_6" * identifier) = (binary_expression "*param_6 + lVar13" (pointer_expression "*param_6" * identifier) + identifier)) ;) })) (if_statement "if (param_7 != (long *)0x0) {\n    *param_7 = *param_7 + local_c8;\n  }" if (parenthesized_expression "(param_7 != (long *)0x0)" ( (binary_expression "param_7 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    *param_7 = *param_7 + local_c8;\n  }" { (expression_statement "*param_7 = *param_7 + local_c8;" (assignment_expression "*param_7 = *param_7 + local_c8" (pointer_expression "*param_7" * identifier) = (binary_expression "*param_7 + local_c8" (pointer_expression "*param_7" * identifier) + identifier)) ;) })) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) (if_statement "if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar4;\n  }" if (parenthesized_expression "(local_40 == *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "local_40 == *(long *)(in_FS_OFFSET + 0x28)" identifier == (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n    return iVar4;\n  }" { (return_statement "return iVar4;" return identifier ;) })) comment (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */\n/* WARNING: Enum "anon_enum_32": Some values do not have unique names */\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  char cVar1;\n  long lVar2;\n  uint uVar3;\n  int iVar4;\n  int iVar5;\n  uInt uVar6;\n  uInt uVar7;\n  Bytef *buf;\n  ptimer *pt;\n  char *pcVar8;\n  int *piVar9;\n  ulong uVar10;\n  ulong uVar11;\n  char *pcVar12;\n  ulong uVar13;\n  double *buf_00;\n  uLong uVar14;\n  long in_FS_OFFSET;\n  byte bVar15;\n  double dVar16;\n  double dVar17;\n  double seconds;\n  void *local_130;\n  double local_110;\n  bool local_dc;\n  _Bool local_db;\n  bool local_da;\n  wgint skip;\n  wgint sum_written;\n  char *endl;\n  z_stream gzstream;\n  \n  bVar15 = 0;\n  lVar2 = *(long *)(in_FS_OFFSET + 0x28);\n  buf = (Bytef *)xmalloc(0x2000);\n  uVar3 = flags & 1;\n  skip = 0;\n  sum_written = 0;\n  buf_00 = (double *)0x0;\n  if ((flags & 8U) == 0) {\nLAB_001335e1:\n    if ((flags & 2U) != 0) {\n      skip = startpos;\n    }\n    if (opt.show_progress == 0) {\n      local_db = false;\n      local_130 = (void *)0x0;\n    }\n    else {\n      if (skip != 0) {\n        startpos = 0;\n      }\n      if (opt.dir_prefix != (char *)0x0) {\n        uVar10 = 0xffffffffffffffff;\n        pcVar8 = opt.dir_prefix;\n        do {\n          if (uVar10 == 0) break;\n          uVar10 = uVar10 - 1;\n          cVar1 = *pcVar8;\n          pcVar8 = pcVar8 + (ulong)bVar15 * -2 + 1;\n        } while (cVar1 != '\0');\n        downloaded_filename = downloaded_filename + ~uVar10;\n      }\n      local_130 = progress_create(downloaded_filename,startpos,startpos + toread);\n      local_db = progress_interactive_p(local_130);\n    }\n    if (opt.limit_rate == 0) {\n      if (local_130 != (void *)0x0 || elapsed != (double *)0x0) goto LAB_00133682;\n      uVar10 = 0x2000;\n      pt = (ptimer *)0x0;\n    }\n    else {\n      limit_data.chunk_bytes = 0;\n      limit_data.chunk_start = 0.0;\n      limit_data.sleep_adjust = 0.0;\nLAB_00133682:\n      pt = ptimer_new();\n      if ((opt.limit_rate == 0) || (uVar10 = opt.limit_rate, 0x1fff < opt.limit_rate)) {\n        uVar10 = 0x2000;\n      }\n    }\n    local_da = elapsed != (double *)0x0;\n    local_dc = local_130 != (void *)0x0;\n    iVar4 = (int)uVar10;\n    uVar13 = 0;\n    uVar14 = 0;\n    local_110 = 0.0;\n    uVar7 = 0;\n    while ((dVar16 = opt.read_timeout, uVar3 == 0 || ((long)uVar14 < toread))) {\n      if ((flags & 4U) == 0) {\n        uVar11 = uVar10 & 0xffffffff;\n        if (uVar3 != 0) {\n          uVar11 = toread - uVar14;\n          if ((long)iVar4 < (long)(toread - uVar14)) {\n            uVar11 = (long)iVar4;\n          }\n        }\n      }\n      else {\n        if (uVar13 == 0) {\n          pcVar8 = fd_read_line(fd);\n          if (pcVar8 != (char *)0x0) {\n            if (out2 != (FILE *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar12 = pcVar8;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar1 = *pcVar12;\n                pcVar12 = pcVar12 + (ulong)bVar15 * -2 + 1;\n              } while (cVar1 != '\0');\n              fwrite(pcVar8,1,~uVar13 - 1,(FILE *)out2);\n            }\n            uVar13 = strtol(pcVar8,&endl,0x10);\n            free(pcVar8);\n            if (-1 < (long)uVar13) {\n              if (uVar13 != 0) goto LAB_00133ef7;\n              pcVar8 = fd_read_line(fd);\n              uVar6 = 0xffffffff;\n              if (pcVar8 != (char *)0x0) {\n                if (out2 == (FILE *)0x0) goto LAB_001338bc;\n                uVar10 = 0xffffffffffffffff;\n                pcVar12 = pcVar8;\n                goto code_r0x001338a0;\n              }\n              goto LAB_00133a74;\n            }\n          }\n          uVar7 = 0xffffffff;\n          break;\n        }\nLAB_00133ef7:\n        uVar11 = (long)iVar4;\n        if ((long)uVar13 < (long)iVar4) {\n          uVar11 = uVar13;\n        }\n      }\n      if (local_db == false) {\n        uVar7 = fd_read(fd,(char *)buf,(int)uVar11,dVar16);\nLAB_00133e68:\n        if ((int)uVar7 < 1) break;\n        if (local_dc) {\n          ptimer_measure(pt);\nLAB_00133d9f:\n          local_110 = ptimer_read(pt);\n        }\n        else if ((opt.limit_rate != 0) || (local_da)) {\n          ptimer_measure(pt);\n          if ((int)uVar7 < 1) goto LAB_00133ea0;\n          goto LAB_00133d9f;\n        }\n        uVar14 = uVar14 + (long)(int)uVar7;\n        if (buf_00 == (double *)0x0) {\n          uVar6 = write_data(out,out2,(char *)buf,uVar7,&skip,&sum_written);\n          if ((int)uVar6 < 0) goto LAB_00133a74;\n        }\n        else {\n          uVar6 = write_data((FILE *)0x0,out2,(char *)buf,uVar7,(wgint *)0x0,(wgint *)0x0);\n          if ((int)uVar6 < 0) goto LAB_00133a74;\n          gzstream.next_in = buf;\n          gzstream.avail_in = uVar7;\n          do {\n            gzstream.avail_out = 0x8000;\n            gzstream.next_out = (Bytef *)buf_00;\n            iVar5 = inflate(&gzstream,0);\n            if (iVar5 == -3) {\nLAB_00133b59:\n              piVar9 = __errno_location();\n              *piVar9 = 0x16;\n              uVar6 = 0xffffffff;\n              goto LAB_00133a74;\n            }\n            if (iVar5 < -2) {\n              if (iVar5 == -4) {\n                piVar9 = __errno_location();\n                *piVar9 = 0xc;\n                uVar6 = 0xffffffff;\n                goto LAB_00133a74;\n              }\n            }\n            else if (iVar5 == 1) {\n              if (((toread != uVar14) && (uVar3 != 0)) && (opt.debug != false)) {\n                debug_logprintf("zlib stream ended unexpectedly after %ld/%ld bytes\n",uVar14,toread\n                               );\n              }\n            }\n            else if (iVar5 == 2) goto LAB_00133b59;\n            uVar6 = write_data(out,(FILE *)0x0,(char *)buf_00,0x8000 - gzstream.avail_out,&skip,\n                               &sum_written);\n            if ((int)uVar6 < 0) goto LAB_00133a74;\n          } while (gzstream.avail_out == 0);\n        }\n        if (((flags & 4U) != 0) && (uVar13 = uVar13 - (long)(int)uVar7, uVar13 == 0)) {\n          pcVar8 = fd_read_line(fd);\n          if (pcVar8 == (char *)0x0) {\n            uVar7 = 0xffffffff;\n            break;\n          }\n          if (out2 != (FILE *)0x0) {\n            uVar11 = 0xffffffffffffffff;\n            pcVar12 = pcVar8;\n            do {\n              if (uVar11 == 0) break;\n              uVar11 = uVar11 - 1;\n              cVar1 = *pcVar12;\n              pcVar12 = pcVar12 + (ulong)bVar15 * -2 + 1;\n            } while (cVar1 != '\0');\n            fwrite(pcVar8,1,~uVar11 - 1,(FILE *)out2);\n          }\n          free(pcVar8);\n        }\nLAB_00133ea0:\n        if (opt.limit_rate != 0) {\n          dVar17 = ptimer_read(pt);\n          dVar16 = limit_data.sleep_adjust;\n          dVar17 = dVar17 - limit_data.chunk_start;\n          limit_data.chunk_bytes = (int)uVar7 + limit_data.chunk_bytes;\n          if (dVar17 < (double)limit_data.chunk_bytes / (double)opt.limit_rate) {\n            seconds = ((double)limit_data.chunk_bytes / (double)opt.limit_rate - dVar17) +\n                      limit_data.sleep_adjust;\n            if (seconds < _DAT_0015c908) {\n              if (opt.debug != false) {\n                pcVar8 = number_to_static_string(limit_data.chunk_bytes);\n                debug_logprintf("deferring a %.2f ms sleep (%s/%.2f).\n",seconds * DAT_0015d650,\n                                dVar17,pcVar8);\n              }\n              goto LAB_00133eae;\n            }\n            if (opt.debug != false) {\n              pcVar8 = number_to_static_string(limit_data.chunk_bytes);\n              debug_logprintf("\nsleeping %.2f ms for %s bytes, adjust %.2f ms\n",\n                              seconds * DAT_0015d650,dVar16,pcVar8);\n            }\n            dVar16 = ptimer_read(pt);\n            xsleep(seconds);\n            dVar17 = ptimer_measure(pt);\n            limit_data.sleep_adjust = seconds - (dVar17 - dVar16);\n            if (limit_data.sleep_adjust <= _DAT_0015c710) {\n              if (limit_data.sleep_adjust < DAT_0015d658) {\n                limit_data.sleep_adjust = DAT_0015d658;\n              }\n            }\n            else {\n              limit_data.sleep_adjust = _DAT_0015c710;\n            }\n          }\n          limit_data.chunk_bytes = 0;\n          limit_data.chunk_start = ptimer_read(pt);\n        }\n      }\n      else {\n        dVar16 = DAT_0015d648;\n        if (opt.read_timeout != 0.0) {\n          dVar17 = ptimer_read(pt);\n          dVar16 = DAT_0015d648;\n          if ((opt.read_timeout < (dVar17 - local_110) + DAT_0015d648) &&\n             (dVar16 = opt.read_timeout - (dVar17 - local_110), dVar16 < 0.0)) {\n            piVar9 = __errno_location();\n            *piVar9 = 0x6e;\n            uVar6 = 0xffffffff;\n            goto LAB_00133a74;\n          }\n        }\n        uVar7 = fd_read(fd,(char *)buf,(int)uVar11,dVar16);\n        if (-1 < (int)uVar7) goto LAB_00133e68;\n        piVar9 = __errno_location();\n        if (*piVar9 != 0x6e) break;\n        if (local_dc) {\n          ptimer_measure(pt);\n          uVar7 = 0;\n          goto LAB_00133ea0;\n        }\n        if ((opt.limit_rate != 0) || (local_da)) {\n          ptimer_measure(pt);\n          uVar7 = 0;\n          goto LAB_00133ea0;\n        }\n        uVar7 = 0;\n      }\nLAB_00133eae:\n      if (local_dc) {\n        dVar16 = ptimer_read(pt);\n        progress_update(local_130,(long)(int)uVar7,dVar16);\n      }\n    }\n    uVar6 = 0xffffffff;\n    if (-1 < (int)uVar7) {\n      uVar6 = uVar7;\n    }\n    goto LAB_00133a74;\n  }\n  buf_00 = (double *)xmalloc(0x8000);\n  if (buf_00 == (double *)0x0) {\n    piVar9 = __errno_location();\n    *piVar9 = 0xc;\n  }\n  else {\n    gzstream.zalloc = zalloc;\n    gzstream.zfree = zfree;\n    gzstream.opaque = (voidpf)0x0;\n    gzstream.next_in = (Bytef *)0x0;\n    gzstream.avail_in = 0;\n    iVar4 = inflateInit2_(&gzstream,0x2f,"1.2.11",0x70);\n    if (iVar4 == 0) goto LAB_001335e1;\n    free(buf_00);\n    iVar5 = 0xc;\n    if (iVar4 != -4) {\n      iVar5 = 0x16;\n    }\n    piVar9 = __errno_location();\n    *piVar9 = iVar5;\n  }\n  uVar14 = 0;\n  uVar6 = 0xffffffff;\n  if (elapsed == (double *)0x0) goto LAB_00133ab4;\n  buf_00 = (double *)0x0;\n  uVar14 = 0;\n  pt = (ptimer *)0x0;\n  uVar6 = 0xffffffff;\nLAB_00133a96:\n  dVar16 = ptimer_read(pt);\n  *elapsed = dVar16;\n  goto LAB_00133aa7;\n  while( true ) {\n    uVar10 = uVar10 - 1;\n    cVar1 = *pcVar12;\n    pcVar12 = pcVar12 + (ulong)bVar15 * -2 + 1;\n    if (cVar1 == '\0') break;\ncode_r0x001338a0:\n    if (uVar10 == 0) break;\n  }\n  fwrite(pcVar8,1,~uVar10 - 1,(FILE *)out2);\nLAB_001338bc:\n  free(pcVar8);\n  uVar6 = 0;\nLAB_00133a74:\n  if (local_130 != (void *)0x0) {\n    dVar16 = ptimer_read(pt);\n    progress_finish(local_130,dVar16);\n  }\n  if (elapsed != (double *)0x0) goto LAB_00133a96;\nLAB_00133aa7:\n  elapsed = buf_00;\n  if (pt != (ptimer *)0x0) {\n    ptimer_destroy(pt);\n  }\nLAB_00133ab4:\n  if (elapsed != (double *)0x0) {\n    uVar7 = inflateEnd(&gzstream);\n    if ((-1 < (int)uVar6) && (uVar6 = uVar7, uVar7 != 0)) {\n      piVar9 = __errno_location();\n      *piVar9 = 0x16;\n      uVar6 = 0xffffffff;\n    }\n    free(elapsed);\n    if ((gzstream.total_in != uVar14) && (opt.debug != false)) {\n      debug_logprintf("zlib read size differs from raw read size (%lu/%lu)\n",gzstream.total_in,\n                      uVar14);\n    }\n  }\n  if (qtyread != (wgint *)0x0) {\n    *qtyread = *qtyread + uVar14;\n  }\n  if (qtywritten != (wgint *)0x0) {\n    *qtywritten = *qtywritten + sum_written;\n  }\n  free(buf);\n  if (lVar2 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return uVar6;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}\n\n" comment 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  char cVar1;\n  long lVar2;\n  uint uVar3;\n  int iVar4;\n  int iVar5;\n  uInt uVar6;\n  uInt uVar7;\n  Bytef *buf;\n  ptimer *pt;\n  char *pcVar8;\n  int *piVar9;\n  ulong uVar10;\n  ulong uVar11;\n  char *pcVar12;\n  ulong uVar13;\n  double *buf_00;\n  uLong uVar14;\n  long in_FS_OFFSET;\n  byte bVar15;\n  double dVar16;\n  double dVar17;\n  double seconds;\n  void *local_130;\n  double local_110;\n  bool local_dc;\n  _Bool local_db;\n  bool local_da;\n  wgint skip;\n  wgint sum_written;\n  char *endl;\n  z_stream gzstream;\n  \n  bVar15 = 0;\n  lVar2 = *(long *)(in_FS_OFFSET + 0x28);\n  buf = (Bytef *)xmalloc(0x2000);\n  uVar3 = flags & 1;\n  skip = 0;\n  sum_written = 0;\n  buf_00 = (double *)0x0;\n  if ((flags & 8U) == 0) {\nLAB_001335e1:\n    if ((flags & 2U) != 0) {\n      skip = startpos;\n    }\n    if (opt.show_progress == 0) {\n      local_db = false;\n      local_130 = (void *)0x0;\n    }\n    else {\n      if (skip != 0) {\n        startpos = 0;\n      }\n      if (opt.dir_prefix != (char *)0x0) {\n        uVar10 = 0xffffffffffffffff;\n        pcVar8 = opt.dir_prefix;\n        do {\n          if (uVar10 == 0) break;\n          uVar10 = uVar10 - 1;\n          cVar1 = *pcVar8;\n          pcVar8 = pcVar8 + (ulong)bVar15 * -2 + 1;\n        } while (cVar1 != '\0');\n        downloaded_filename = downloaded_filename + ~uVar10;\n      }\n      local_130 = progress_create(downloaded_filename,startpos,startpos + toread);\n      local_db = progress_interactive_p(local_130);\n    }\n    if (opt.limit_rate == 0) {\n      if (local_130 != (void *)0x0 || elapsed != (double *)0x0) goto LAB_00133682;\n      uVar10 = 0x2000;\n      pt = (ptimer *)0x0;\n    }\n    else {\n      limit_data.chunk_bytes = 0;\n      limit_data.chunk_start = 0.0;\n      limit_data.sleep_adjust = 0.0;\nLAB_00133682:\n      pt = ptimer_new();\n      if ((opt.limit_rate == 0) || (uVar10 = opt.limit_rate, 0x1fff < opt.limit_rate)) {\n        uVar10 = 0x2000;\n      }\n    }\n    local_da = elapsed != (double *)0x0;\n    local_dc = local_130 != (void *)0x0;\n    iVar4 = (int)uVar10;\n    uVar13 = 0;\n    uVar14 = 0;\n    local_110 = 0.0;\n    uVar7 = 0;\n    while ((dVar16 = opt.read_timeout, uVar3 == 0 || ((long)uVar14 < toread))) {\n      if ((flags & 4U) == 0) {\n        uVar11 = uVar10 & 0xffffffff;\n        if (uVar3 != 0) {\n          uVar11 = toread - uVar14;\n          if ((long)iVar4 < (long)(toread - uVar14)) {\n            uVar11 = (long)iVar4;\n          }\n        }\n      }\n      else {\n        if (uVar13 == 0) {\n          pcVar8 = fd_read_line(fd);\n          if (pcVar8 != (char *)0x0) {\n            if (out2 != (FILE *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar12 = pcVar8;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar1 = *pcVar12;\n                pcVar12 = pcVar12 + (ulong)bVar15 * -2 + 1;\n              } while (cVar1 != '\0');\n              fwrite(pcVar8,1,~uVar13 - 1,(FILE *)out2);\n            }\n            uVar13 = strtol(pcVar8,&endl,0x10);\n            free(pcVar8);\n            if (-1 < (long)uVar13) {\n              if (uVar13 != 0) goto LAB_00133ef7;\n              pcVar8 = fd_read_line(fd);\n              uVar6 = 0xffffffff;\n              if (pcVar8 != (char *)0x0) {\n                if (out2 == (FILE *)0x0) goto LAB_001338bc;\n                uVar10 = 0xffffffffffffffff;\n                pcVar12 = pcVar8;\n                goto code_r0x001338a0;\n              }\n              goto LAB_00133a74;\n            }\n          }\n          uVar7 = 0xffffffff;\n          break;\n        }\nLAB_00133ef7:\n        uVar11 = (long)iVar4;\n        if ((long)uVar13 < (long)iVar4) {\n          uVar11 = uVar13;\n        }\n      }\n      if (local_db == false) {\n        uVar7 = fd_read(fd,(char *)buf,(int)uVar11,dVar16);\nLAB_00133e68:\n        if ((int)uVar7 < 1) break;\n        if (local_dc) {\n          ptimer_measure(pt);\nLAB_00133d9f:\n          local_110 = ptimer_read(pt);\n        }\n        else if ((opt.limit_rate != 0) || (local_da)) {\n          ptimer_measure(pt);\n          if ((int)uVar7 < 1) goto LAB_00133ea0;\n          goto LAB_00133d9f;\n        }\n        uVar14 = uVar14 + (long)(int)uVar7;\n        if (buf_00 == (double *)0x0) {\n          uVar6 = write_data(out,out2,(char *)buf,uVar7,&skip,&sum_written);\n          if ((int)uVar6 < 0) goto LAB_00133a74;\n        }\n        else {\n          uVar6 = write_data((FILE *)0x0,out2,(char *)buf,uVar7,(wgint *)0x0,(wgint *)0x0);\n          if ((int)uVar6 < 0) goto LAB_00133a74;\n          gzstream.next_in = buf;\n          gzstream.avail_in = uVar7;\n          do {\n            gzstream.avail_out = 0x8000;\n            gzstream.next_out = (Bytef *)buf_00;\n            iVar5 = inflate(&gzstream,0);\n            if (iVar5 == -3) {\nLAB_00133b59:\n              piVar9 = __errno_location();\n              *piVar9 = 0x16;\n              uVar6 = 0xffffffff;\n              goto LAB_00133a74;\n            }\n            if (iVar5 < -2) {\n              if (iVar5 == -4) {\n                piVar9 = __errno_location();\n                *piVar9 = 0xc;\n                uVar6 = 0xffffffff;\n                goto LAB_00133a74;\n              }\n            }\n            else if (iVar5 == 1) {\n              if (((toread != uVar14) && (uVar3 != 0)) && (opt.debug != false)) {\n                debug_logprintf("zlib stream ended unexpectedly after %ld/%ld bytes\n",uVar14,toread\n                               );\n              }\n            }\n            else if (iVar5 == 2) goto LAB_00133b59;\n            uVar6 = write_data(out,(FILE *)0x0,(char *)buf_00,0x8000 - gzstream.avail_out,&skip,\n                               &sum_written);\n            if ((int)uVar6 < 0) goto LAB_00133a74;\n          } while (gzstream.avail_out == 0);\n        }\n        if (((flags & 4U) != 0) && (uVar13 = uVar13 - (long)(int)uVar7, uVar13 == 0)) {\n          pcVar8 = fd_read_line(fd);\n          if (pcVar8 == (char *)0x0) {\n            uVar7 = 0xffffffff;\n            break;\n          }\n          if (out2 != (FILE *)0x0) {\n            uVar11 = 0xffffffffffffffff;\n            pcVar12 = pcVar8;\n            do {\n              if (uVar11 == 0) break;\n              uVar11 = uVar11 - 1;\n              cVar1 = *pcVar12;\n              pcVar12 = pcVar12 + (ulong)bVar15 * -2 + 1;\n            } while (cVar1 != '\0');\n            fwrite(pcVar8,1,~uVar11 - 1,(FILE *)out2);\n          }\n          free(pcVar8);\n        }\nLAB_00133ea0:\n        if (opt.limit_rate != 0) {\n          dVar17 = ptimer_read(pt);\n          dVar16 = limit_data.sleep_adjust;\n          dVar17 = dVar17 - limit_data.chunk_start;\n          limit_data.chunk_bytes = (int)uVar7 + limit_data.chunk_bytes;\n          if (dVar17 < (double)limit_data.chunk_bytes / (double)opt.limit_rate) {\n            seconds = ((double)limit_data.chunk_bytes / (double)opt.limit_rate - dVar17) +\n                      limit_data.sleep_adjust;\n            if (seconds < _DAT_0015c908) {\n              if (opt.debug != false) {\n                pcVar8 = number_to_static_string(limit_data.chunk_bytes);\n                debug_logprintf("deferring a %.2f ms sleep (%s/%.2f).\n",seconds * DAT_0015d650,\n                                dVar17,pcVar8);\n              }\n              goto LAB_00133eae;\n            }\n            if (opt.debug != false) {\n              pcVar8 = number_to_static_string(limit_data.chunk_bytes);\n              debug_logprintf("\nsleeping %.2f ms for %s bytes, adjust %.2f ms\n",\n                              seconds * DAT_0015d650,dVar16,pcVar8);\n            }\n            dVar16 = ptimer_read(pt);\n            xsleep(seconds);\n            dVar17 = ptimer_measure(pt);\n            limit_data.sleep_adjust = seconds - (dVar17 - dVar16);\n            if (limit_data.sleep_adjust <= _DAT_0015c710) {\n              if (limit_data.sleep_adjust < DAT_0015d658) {\n                limit_data.sleep_adjust = DAT_0015d658;\n              }\n            }\n            else {\n              limit_data.sleep_adjust = _DAT_0015c710;\n            }\n          }\n          limit_data.chunk_bytes = 0;\n          limit_data.chunk_start = ptimer_read(pt);\n        }\n      }\n      else {\n        dVar16 = DAT_0015d648;\n        if (opt.read_timeout != 0.0) {\n          dVar17 = ptimer_read(pt);\n          dVar16 = DAT_0015d648;\n          if ((opt.read_timeout < (dVar17 - local_110) + DAT_0015d648) &&\n             (dVar16 = opt.read_timeout - (dVar17 - local_110), dVar16 < 0.0)) {\n            piVar9 = __errno_location();\n            *piVar9 = 0x6e;\n            uVar6 = 0xffffffff;\n            goto LAB_00133a74;\n          }\n        }\n        uVar7 = fd_read(fd,(char *)buf,(int)uVar11,dVar16);\n        if (-1 < (int)uVar7) goto LAB_00133e68;\n        piVar9 = __errno_location();\n        if (*piVar9 != 0x6e) break;\n        if (local_dc) {\n          ptimer_measure(pt);\n          uVar7 = 0;\n          goto LAB_00133ea0;\n        }\n        if ((opt.limit_rate != 0) || (local_da)) {\n          ptimer_measure(pt);\n          uVar7 = 0;\n          goto LAB_00133ea0;\n        }\n        uVar7 = 0;\n      }\nLAB_00133eae:\n      if (local_dc) {\n        dVar16 = ptimer_read(pt);\n        progress_update(local_130,(long)(int)uVar7,dVar16);\n      }\n    }\n    uVar6 = 0xffffffff;\n    if (-1 < (int)uVar7) {\n      uVar6 = uVar7;\n    }\n    goto LAB_00133a74;\n  }\n  buf_00 = (double *)xmalloc(0x8000);\n  if (buf_00 == (double *)0x0) {\n    piVar9 = __errno_location();\n    *piVar9 = 0xc;\n  }\n  else {\n    gzstream.zalloc = zalloc;\n    gzstream.zfree = zfree;\n    gzstream.opaque = (voidpf)0x0;\n    gzstream.next_in = (Bytef *)0x0;\n    gzstream.avail_in = 0;\n    iVar4 = inflateInit2_(&gzstream,0x2f,"1.2.11",0x70);\n    if (iVar4 == 0) goto LAB_001335e1;\n    free(buf_00);\n    iVar5 = 0xc;\n    if (iVar4 != -4) {\n      iVar5 = 0x16;\n    }\n    piVar9 = __errno_location();\n    *piVar9 = iVar5;\n  }\n  uVar14 = 0;\n  uVar6 = 0xffffffff;\n  if (elapsed == (double *)0x0) goto LAB_00133ab4;\n  buf_00 = (double *)0x0;\n  uVar14 = 0;\n  pt = (ptimer *)0x0;\n  uVar6 = 0xffffffff;\nLAB_00133a96:\n  dVar16 = ptimer_read(pt);\n  *elapsed = dVar16;\n  goto LAB_00133aa7;\n  while( true ) {\n    uVar10 = uVar10 - 1;\n    cVar1 = *pcVar12;\n    pcVar12 = pcVar12 + (ulong)bVar15 * -2 + 1;\n    if (cVar1 == '\0') break;\ncode_r0x001338a0:\n    if (uVar10 == 0) break;\n  }\n  fwrite(pcVar8,1,~uVar10 - 1,(FILE *)out2);\nLAB_001338bc:\n  free(pcVar8);\n  uVar6 = 0;\nLAB_00133a74:\n  if (local_130 != (void *)0x0) {\n    dVar16 = ptimer_read(pt);\n    progress_finish(local_130,dVar16);\n  }\n  if (elapsed != (double *)0x0) goto LAB_00133a96;\nLAB_00133aa7:\n  elapsed = buf_00;\n  if (pt != (ptimer *)0x0) {\n    ptimer_destroy(pt);\n  }\nLAB_00133ab4:\n  if (elapsed != (double *)0x0) {\n    uVar7 = inflateEnd(&gzstream);\n    if ((-1 < (int)uVar6) && (uVar6 = uVar7, uVar7 != 0)) {\n      piVar9 = __errno_location();\n      *piVar9 = 0x16;\n      uVar6 = 0xffffffff;\n    }\n    free(elapsed);\n    if ((gzstream.total_in != uVar14) && (opt.debug != false)) {\n      debug_logprintf("zlib read size differs from raw read size (%lu/%lu)\n",gzstream.total_in,\n                      uVar14);\n    }\n  }\n  if (qtyread != (wgint *)0x0) {\n    *qtyread = *qtyread + uVar14;\n  }\n  if (qtywritten != (wgint *)0x0) {\n    *qtywritten = *qtywritten + sum_written;\n  }\n  free(buf);\n  if (lVar2 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return uVar6;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\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  char cVar1;\n  long lVar2;\n  uint uVar3;\n  int iVar4;\n  int iVar5;\n  uInt uVar6;\n  uInt uVar7;\n  Bytef *buf;\n  ptimer *pt;\n  char *pcVar8;\n  int *piVar9;\n  ulong uVar10;\n  ulong uVar11;\n  char *pcVar12;\n  ulong uVar13;\n  double *buf_00;\n  uLong uVar14;\n  long in_FS_OFFSET;\n  byte bVar15;\n  double dVar16;\n  double dVar17;\n  double seconds;\n  void *local_130;\n  double local_110;\n  bool local_dc;\n  _Bool local_db;\n  bool local_da;\n  wgint skip;\n  wgint sum_written;\n  char *endl;\n  z_stream gzstream;\n  \n  bVar15 = 0;\n  lVar2 = *(long *)(in_FS_OFFSET + 0x28);\n  buf = (Bytef *)xmalloc(0x2000);\n  uVar3 = flags & 1;\n  skip = 0;\n  sum_written = 0;\n  buf_00 = (double *)0x0;\n  if ((flags & 8U) == 0) {\nLAB_001335e1:\n    if ((flags & 2U) != 0) {\n      skip = startpos;\n    }\n    if (opt.show_progress == 0) {\n      local_db = false;\n      local_130 = (void *)0x0;\n    }\n    else {\n      if (skip != 0) {\n        startpos = 0;\n      }\n      if (opt.dir_prefix != (char *)0x0) {\n        uVar10 = 0xffffffffffffffff;\n        pcVar8 = opt.dir_prefix;\n        do {\n          if (uVar10 == 0) break;\n          uVar10 = uVar10 - 1;\n          cVar1 = *pcVar8;\n          pcVar8 = pcVar8 + (ulong)bVar15 * -2 + 1;\n        } while (cVar1 != '\0');\n        downloaded_filename = downloaded_filename + ~uVar10;\n      }\n      local_130 = progress_create(downloaded_filename,startpos,startpos + toread);\n      local_db = progress_interactive_p(local_130);\n    }\n    if (opt.limit_rate == 0) {\n      if (local_130 != (void *)0x0 || elapsed != (double *)0x0) goto LAB_00133682;\n      uVar10 = 0x2000;\n      pt = (ptimer *)0x0;\n    }\n    else {\n      limit_data.chunk_bytes = 0;\n      limit_data.chunk_start = 0.0;\n      limit_data.sleep_adjust = 0.0;\nLAB_00133682:\n      pt = ptimer_new();\n      if ((opt.limit_rate == 0) || (uVar10 = opt.limit_rate, 0x1fff < opt.limit_rate)) {\n        uVar10 = 0x2000;\n      }\n    }\n    local_da = elapsed != (double *)0x0;\n    local_dc = local_130 != (void *)0x0;\n    iVar4 = (int)uVar10;\n    uVar13 = 0;\n    uVar14 = 0;\n    local_110 = 0.0;\n    uVar7 = 0;\n    while ((dVar16 = opt.read_timeout, uVar3 == 0 || ((long)uVar14 < toread))) {\n      if ((flags & 4U) == 0) {\n        uVar11 = uVar10 & 0xffffffff;\n        if (uVar3 != 0) {\n          uVar11 = toread - uVar14;\n          if ((long)iVar4 < (long)(toread - uVar14)) {\n            uVar11 = (long)iVar4;\n          }\n        }\n      }\n      else {\n        if (uVar13 == 0) {\n          pcVar8 = fd_read_line(fd);\n          if (pcVar8 != (char *)0x0) {\n            if (out2 != (FILE *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar12 = pcVar8;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar1 = *pcVar12;\n                pcVar12 = pcVar12 + (ulong)bVar15 * -2 + 1;\n              } while (cVar1 != '\0');\n              fwrite(pcVar8,1,~uVar13 - 1,(FILE *)out2);\n            }\n            uVar13 = strtol(pcVar8,&endl,0x10);\n            free(pcVar8);\n            if (-1 < (long)uVar13) {\n              if (uVar13 != 0) goto LAB_00133ef7;\n              pcVar8 = fd_read_line(fd);\n              uVar6 = 0xffffffff;\n              if (pcVar8 != (char *)0x0) {\n                if (out2 == (FILE *)0x0) goto LAB_001338bc;\n                uVar10 = 0xffffffffffffffff;\n                pcVar12 = pcVar8;\n                goto code_r0x001338a0;\n              }\n              goto LAB_00133a74;\n            }\n          }\n          uVar7 = 0xffffffff;\n          break;\n        }\nLAB_00133ef7:\n        uVar11 = (long)iVar4;\n        if ((long)uVar13 < (long)iVar4) {\n          uVar11 = uVar13;\n        }\n      }\n      if (local_db == false) {\n        uVar7 = fd_read(fd,(char *)buf,(int)uVar11,dVar16);\nLAB_00133e68:\n        if ((int)uVar7 < 1) break;\n        if (local_dc) {\n          ptimer_measure(pt);\nLAB_00133d9f:\n          local_110 = ptimer_read(pt);\n        }\n        else if ((opt.limit_rate != 0) || (local_da)) {\n          ptimer_measure(pt);\n          if ((int)uVar7 < 1) goto LAB_00133ea0;\n          goto LAB_00133d9f;\n        }\n        uVar14 = uVar14 + (long)(int)uVar7;\n        if (buf_00 == (double *)0x0) {\n          uVar6 = write_data(out,out2,(char *)buf,uVar7,&skip,&sum_written);\n          if ((int)uVar6 < 0) goto LAB_00133a74;\n        }\n        else {\n          uVar6 = write_data((FILE *)0x0,out2,(char *)buf,uVar7,(wgint *)0x0,(wgint *)0x0);\n          if ((int)uVar6 < 0) goto LAB_00133a74;\n          gzstream.next_in = buf;\n          gzstream.avail_in = uVar7;\n          do {\n            gzstream.avail_out = 0x8000;\n            gzstream.next_out = (Bytef *)buf_00;\n            iVar5 = inflate(&gzstream,0);\n            if (iVar5 == -3) {\nLAB_00133b59:\n              piVar9 = __errno_location();\n              *piVar9 = 0x16;\n              uVar6 = 0xffffffff;\n              goto LAB_00133a74;\n            }\n            if (iVar5 < -2) {\n              if (iVar5 == -4) {\n                piVar9 = __errno_location();\n                *piVar9 = 0xc;\n                uVar6 = 0xffffffff;\n                goto LAB_00133a74;\n              }\n            }\n            else if (iVar5 == 1) {\n              if (((toread != uVar14) && (uVar3 != 0)) && (opt.debug != false)) {\n                debug_logprintf("zlib stream ended unexpectedly after %ld/%ld bytes\n",uVar14,toread\n                               );\n              }\n            }\n            else if (iVar5 == 2) goto LAB_00133b59;\n            uVar6 = write_data(out,(FILE *)0x0,(char *)buf_00,0x8000 - gzstream.avail_out,&skip,\n                               &sum_written);\n            if ((int)uVar6 < 0) goto LAB_00133a74;\n          } while (gzstream.avail_out == 0);\n        }\n        if (((flags & 4U) != 0) && (uVar13 = uVar13 - (long)(int)uVar7, uVar13 == 0)) {\n          pcVar8 = fd_read_line(fd);\n          if (pcVar8 == (char *)0x0) {\n            uVar7 = 0xffffffff;\n            break;\n          }\n          if (out2 != (FILE *)0x0) {\n            uVar11 = 0xffffffffffffffff;\n            pcVar12 = pcVar8;\n            do {\n              if (uVar11 == 0) break;\n              uVar11 = uVar11 - 1;\n              cVar1 = *pcVar12;\n              pcVar12 = pcVar12 + (ulong)bVar15 * -2 + 1;\n            } while (cVar1 != '\0');\n            fwrite(pcVar8,1,~uVar11 - 1,(FILE *)out2);\n          }\n          free(pcVar8);\n        }\nLAB_00133ea0:\n        if (opt.limit_rate != 0) {\n          dVar17 = ptimer_read(pt);\n          dVar16 = limit_data.sleep_adjust;\n          dVar17 = dVar17 - limit_data.chunk_start;\n          limit_data.chunk_bytes = (int)uVar7 + limit_data.chunk_bytes;\n          if (dVar17 < (double)limit_data.chunk_bytes / (double)opt.limit_rate) {\n            seconds = ((double)limit_data.chunk_bytes / (double)opt.limit_rate - dVar17) +\n                      limit_data.sleep_adjust;\n            if (seconds < _DAT_0015c908) {\n              if (opt.debug != false) {\n                pcVar8 = number_to_static_string(limit_data.chunk_bytes);\n                debug_logprintf("deferring a %.2f ms sleep (%s/%.2f).\n",seconds * DAT_0015d650,\n                                dVar17,pcVar8);\n              }\n              goto LAB_00133eae;\n            }\n            if (opt.debug != false) {\n              pcVar8 = number_to_static_string(limit_data.chunk_bytes);\n              debug_logprintf("\nsleeping %.2f ms for %s bytes, adjust %.2f ms\n",\n                              seconds * DAT_0015d650,dVar16,pcVar8);\n            }\n            dVar16 = ptimer_read(pt);\n            xsleep(seconds);\n            dVar17 = ptimer_measure(pt);\n            limit_data.sleep_adjust = seconds - (dVar17 - dVar16);\n            if (limit_data.sleep_adjust <= _DAT_0015c710) {\n              if (limit_data.sleep_adjust < DAT_0015d658) {\n                limit_data.sleep_adjust = DAT_0015d658;\n              }\n            }\n            else {\n              limit_data.sleep_adjust = _DAT_0015c710;\n            }\n          }\n          limit_data.chunk_bytes = 0;\n          limit_data.chunk_start = ptimer_read(pt);\n        }\n      }\n      else {\n        dVar16 = DAT_0015d648;\n        if (opt.read_timeout != 0.0) {\n          dVar17 = ptimer_read(pt);\n          dVar16 = DAT_0015d648;\n          if ((opt.read_timeout < (dVar17 - local_110) + DAT_0015d648) &&\n             (dVar16 = opt.read_timeout - (dVar17 - local_110), dVar16 < 0.0)) {\n            piVar9 = __errno_location();\n            *piVar9 = 0x6e;\n            uVar6 = 0xffffffff;\n            goto LAB_00133a74;\n          }\n        }\n        uVar7 = fd_read(fd,(char *)buf,(int)uVar11,dVar16);\n        if (-1 < (int)uVar7) goto LAB_00133e68;\n        piVar9 = __errno_location();\n        if (*piVar9 != 0x6e) break;\n        if (local_dc) {\n          ptimer_measure(pt);\n          uVar7 = 0;\n          goto LAB_00133ea0;\n        }\n        if ((opt.limit_rate != 0) || (local_da)) {\n          ptimer_measure(pt);\n          uVar7 = 0;\n          goto LAB_00133ea0;\n        }\n        uVar7 = 0;\n      }\nLAB_00133eae:\n      if (local_dc) {\n        dVar16 = ptimer_read(pt);\n        progress_update(local_130,(long)(int)uVar7,dVar16);\n      }\n    }\n    uVar6 = 0xffffffff;\n    if (-1 < (int)uVar7) {\n      uVar6 = uVar7;\n    }\n    goto LAB_00133a74;\n  }\n  buf_00 = (double *)xmalloc(0x8000);\n  if (buf_00 == (double *)0x0) {\n    piVar9 = __errno_location();\n    *piVar9 = 0xc;\n  }\n  else {\n    gzstream.zalloc = zalloc;\n    gzstream.zfree = zfree;\n    gzstream.opaque = (voidpf)0x0;\n    gzstream.next_in = (Bytef *)0x0;\n    gzstream.avail_in = 0;\n    iVar4 = inflateInit2_(&gzstream,0x2f,"1.2.11",0x70);\n    if (iVar4 == 0) goto LAB_001335e1;\n    free(buf_00);\n    iVar5 = 0xc;\n    if (iVar4 != -4) {\n      iVar5 = 0x16;\n    }\n    piVar9 = __errno_location();\n    *piVar9 = iVar5;\n  }\n  uVar14 = 0;\n  uVar6 = 0xffffffff;\n  if (elapsed == (double *)0x0) goto LAB_00133ab4;\n  buf_00 = (double *)0x0;\n  uVar14 = 0;\n  pt = (ptimer *)0x0;\n  uVar6 = 0xffffffff;\nLAB_00133a96:\n  dVar16 = ptimer_read(pt);\n  *elapsed = dVar16;\n  goto LAB_00133aa7;\n  while( true ) {\n    uVar10 = uVar10 - 1;\n    cVar1 = *pcVar12;\n    pcVar12 = pcVar12 + (ulong)bVar15 * -2 + 1;\n    if (cVar1 == '\0') break;\ncode_r0x001338a0:\n    if (uVar10 == 0) break;\n  }\n  fwrite(pcVar8,1,~uVar10 - 1,(FILE *)out2);\nLAB_001338bc:\n  free(pcVar8);\n  uVar6 = 0;\nLAB_00133a74:\n  if (local_130 != (void *)0x0) {\n    dVar16 = ptimer_read(pt);\n    progress_finish(local_130,dVar16);\n  }\n  if (elapsed != (double *)0x0) goto LAB_00133a96;\nLAB_00133aa7:\n  elapsed = buf_00;\n  if (pt != (ptimer *)0x0) {\n    ptimer_destroy(pt);\n  }\nLAB_00133ab4:\n  if (elapsed != (double *)0x0) {\n    uVar7 = inflateEnd(&gzstream);\n    if ((-1 < (int)uVar6) && (uVar6 = uVar7, uVar7 != 0)) {\n      piVar9 = __errno_location();\n      *piVar9 = 0x16;\n      uVar6 = 0xffffffff;\n    }\n    free(elapsed);\n    if ((gzstream.total_in != uVar14) && (opt.debug != false)) {\n      debug_logprintf("zlib read size differs from raw read size (%lu/%lu)\n",gzstream.total_in,\n                      uVar14);\n    }\n  }\n  if (qtyread != (wgint *)0x0) {\n    *qtyread = *qtyread + uVar14;\n  }\n  if (qtywritten != (wgint *)0x0) {\n    *qtywritten = *qtywritten + sum_written;\n  }\n  free(buf);\n  if (lVar2 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return uVar6;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "long lVar2;" (sized_type_specifier "long" long) identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "uInt uVar6;" type_identifier identifier ;) (declaration "uInt uVar7;" type_identifier identifier ;) (declaration "Bytef *buf;" type_identifier (pointer_declarator "*buf" * identifier) ;) (declaration "ptimer *pt;" type_identifier (pointer_declarator "*pt" * identifier) ;) (declaration "char *pcVar8;" primitive_type (pointer_declarator "*pcVar8" * identifier) ;) (declaration "int *piVar9;" primitive_type (pointer_declarator "*piVar9" * identifier) ;) (declaration "ulong uVar10;" type_identifier identifier ;) (declaration "ulong uVar11;" type_identifier identifier ;) (declaration "char *pcVar12;" primitive_type (pointer_declarator "*pcVar12" * identifier) ;) (declaration "ulong uVar13;" type_identifier identifier ;) (declaration "double *buf_00;" primitive_type (pointer_declarator "*buf_00" * identifier) ;) (declaration "uLong uVar14;" type_identifier identifier ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "byte bVar15;" type_identifier identifier ;) (declaration "double dVar16;" primitive_type identifier ;) (declaration "double dVar17;" primitive_type identifier ;) (declaration "double seconds;" primitive_type identifier ;) (declaration "void *local_130;" primitive_type (pointer_declarator "*local_130" * identifier) ;) (declaration "double local_110;" primitive_type identifier ;) (declaration "bool local_dc;" primitive_type identifier ;) (declaration "_Bool local_db;" type_identifier identifier ;) (declaration "bool local_da;" primitive_type identifier ;) (declaration "wgint skip;" type_identifier identifier ;) (declaration "wgint sum_written;" type_identifier identifier ;) (declaration "char *endl;" primitive_type (pointer_declarator "*endl" * identifier) ;) (declaration "z_stream gzstream;" type_identifier identifier ;) (expression_statement "bVar15 = 0;" (assignment_expression "bVar15 = 0" identifier = number_literal) ;) (expression_statement "lVar2 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "lVar2 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (expression_statement "buf = (Bytef *)xmalloc(0x2000);" (assignment_expression "buf = (Bytef *)xmalloc(0x2000)" identifier = (cast_expression "(Bytef *)xmalloc(0x2000)" ( (type_descriptor "Bytef *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(0x2000)" identifier (argument_list "(0x2000)" ( number_literal ))))) ;) (expression_statement "uVar3 = flags & 1;" (assignment_expression "uVar3 = flags & 1" identifier = (binary_expression "flags & 1" identifier & number_literal)) ;) (expression_statement "skip = 0;" (assignment_expression "skip = 0" identifier = number_literal) ;) (expression_statement "sum_written = 0;" (assignment_expression "sum_written = 0" identifier = number_literal) ;) (expression_statement "buf_00 = (double *)0x0;" (assignment_expression "buf_00 = (double *)0x0" identifier = (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if ((flags & 8U) == 0) {\nLAB_001335e1:\n    if ((flags & 2U) != 0) {\n      skip = startpos;\n    }\n    if (opt.show_progress == 0) {\n      local_db = false;\n      local_130 = (void *)0x0;\n    }\n    else {\n      if (skip != 0) {\n        startpos = 0;\n      }\n      if (opt.dir_prefix != (char *)0x0) {\n        uVar10 = 0xffffffffffffffff;\n        pcVar8 = opt.dir_prefix;\n        do {\n          if (uVar10 == 0) break;\n          uVar10 = uVar10 - 1;\n          cVar1 = *pcVar8;\n          pcVar8 = pcVar8 + (ulong)bVar15 * -2 + 1;\n        } while (cVar1 != '\0');\n        downloaded_filename = downloaded_filename + ~uVar10;\n      }\n      local_130 = progress_create(downloaded_filename,startpos,startpos + toread);\n      local_db = progress_interactive_p(local_130);\n    }\n    if (opt.limit_rate == 0) {\n      if (local_130 != (void *)0x0 || elapsed != (double *)0x0) goto LAB_00133682;\n      uVar10 = 0x2000;\n      pt = (ptimer *)0x0;\n    }\n    else {\n      limit_data.chunk_bytes = 0;\n      limit_data.chunk_start = 0.0;\n      limit_data.sleep_adjust = 0.0;\nLAB_00133682:\n      pt = ptimer_new();\n      if ((opt.limit_rate == 0) || (uVar10 = opt.limit_rate, 0x1fff < opt.limit_rate)) {\n        uVar10 = 0x2000;\n      }\n    }\n    local_da = elapsed != (double *)0x0;\n    local_dc = local_130 != (void *)0x0;\n    iVar4 = (int)uVar10;\n    uVar13 = 0;\n    uVar14 = 0;\n    local_110 = 0.0;\n    uVar7 = 0;\n    while ((dVar16 = opt.read_timeout, uVar3 == 0 || ((long)uVar14 < toread))) {\n      if ((flags & 4U) == 0) {\n        uVar11 = uVar10 & 0xffffffff;\n        if (uVar3 != 0) {\n          uVar11 = toread - uVar14;\n          if ((long)iVar4 < (long)(toread - uVar14)) {\n            uVar11 = (long)iVar4;\n          }\n        }\n      }\n      else {\n        if (uVar13 == 0) {\n          pcVar8 = fd_read_line(fd);\n          if (pcVar8 != (char *)0x0) {\n            if (out2 != (FILE *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar12 = pcVar8;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar1 = *pcVar12;\n                pcVar12 = pcVar12 + (ulong)bVar15 * -2 + 1;\n              } while (cVar1 != '\0');\n              fwrite(pcVar8,1,~uVar13 - 1,(FILE *)out2);\n            }\n            uVar13 = strtol(pcVar8,&endl,0x10);\n            free(pcVar8);\n            if (-1 < (long)uVar13) {\n              if (uVar13 != 0) goto LAB_00133ef7;\n              pcVar8 = fd_read_line(fd);\n              uVar6 = 0xffffffff;\n              if (pcVar8 != (char *)0x0) {\n                if (out2 == (FILE *)0x0) goto LAB_001338bc;\n                uVar10 = 0xffffffffffffffff;\n                pcVar12 = pcVar8;\n                goto code_r0x001338a0;\n              }\n              goto LAB_00133a74;\n            }\n          }\n          uVar7 = 0xffffffff;\n          break;\n        }\nLAB_00133ef7:\n        uVar11 = (long)iVar4;\n        if ((long)uVar13 < (long)iVar4) {\n          uVar11 = uVar13;\n        }\n      }\n      if (local_db == false) {\n        uVar7 = fd_read(fd,(char *)buf,(int)uVar11,dVar16);\nLAB_00133e68:\n        if ((int)uVar7 < 1) break;\n        if (local_dc) {\n          ptimer_measure(pt);\nLAB_00133d9f:\n          local_110 = ptimer_read(pt);\n        }\n        else if ((opt.limit_rate != 0) || (local_da)) {\n          ptimer_measure(pt);\n          if ((int)uVar7 < 1) goto LAB_00133ea0;\n          goto LAB_00133d9f;\n        }\n        uVar14 = uVar14 + (long)(int)uVar7;\n        if (buf_00 == (double *)0x0) {\n          uVar6 = write_data(out,out2,(char *)buf,uVar7,&skip,&sum_written);\n          if ((int)uVar6 < 0) goto LAB_00133a74;\n        }\n        else {\n          uVar6 = write_data((FILE *)0x0,out2,(char *)buf,uVar7,(wgint *)0x0,(wgint *)0x0);\n          if ((int)uVar6 < 0) goto LAB_00133a74;\n          gzstream.next_in = buf;\n          gzstream.avail_in = uVar7;\n          do {\n            gzstream.avail_out = 0x8000;\n            gzstream.next_out = (Bytef *)buf_00;\n            iVar5 = inflate(&gzstream,0);\n            if (iVar5 == -3) {\nLAB_00133b59:\n              piVar9 = __errno_location();\n              *piVar9 = 0x16;\n              uVar6 = 0xffffffff;\n              goto LAB_00133a74;\n            }\n            if (iVar5 < -2) {\n              if (iVar5 == -4) {\n                piVar9 = __errno_location();\n                *piVar9 = 0xc;\n                uVar6 = 0xffffffff;\n                goto LAB_00133a74;\n              }\n            }\n            else if (iVar5 == 1) {\n              if (((toread != uVar14) && (uVar3 != 0)) && (opt.debug != false)) {\n                debug_logprintf("zlib stream ended unexpectedly after %ld/%ld bytes\n",uVar14,toread\n                               );\n              }\n            }\n            else if (iVar5 == 2) goto LAB_00133b59;\n            uVar6 = write_data(out,(FILE *)0x0,(char *)buf_00,0x8000 - gzstream.avail_out,&skip,\n                               &sum_written);\n            if ((int)uVar6 < 0) goto LAB_00133a74;\n          } while (gzstream.avail_out == 0);\n        }\n        if (((flags & 4U) != 0) && (uVar13 = uVar13 - (long)(int)uVar7, uVar13 == 0)) {\n          pcVar8 = fd_read_line(fd);\n          if (pcVar8 == (char *)0x0) {\n            uVar7 = 0xffffffff;\n            break;\n          }\n          if (out2 != (FILE *)0x0) {\n            uVar11 = 0xffffffffffffffff;\n            pcVar12 = pcVar8;\n            do {\n              if (uVar11 == 0) break;\n              uVar11 = uVar11 - 1;\n              cVar1 = *pcVar12;\n              pcVar12 = pcVar12 + (ulong)bVar15 * -2 + 1;\n            } while (cVar1 != '\0');\n            fwrite(pcVar8,1,~uVar11 - 1,(FILE *)out2);\n          }\n          free(pcVar8);\n        }\nLAB_00133ea0:\n        if (opt.limit_rate != 0) {\n          dVar17 = ptimer_read(pt);\n          dVar16 = limit_data.sleep_adjust;\n          dVar17 = dVar17 - limit_data.chunk_start;\n          limit_data.chunk_bytes = (int)uVar7 + limit_data.chunk_bytes;\n          if (dVar17 < (double)limit_data.chunk_bytes / (double)opt.limit_rate) {\n            seconds = ((double)limit_data.chunk_bytes / (double)opt.limit_rate - dVar17) +\n                      limit_data.sleep_adjust;\n            if (seconds < _DAT_0015c908) {\n              if (opt.debug != false) {\n                pcVar8 = number_to_static_string(limit_data.chunk_bytes);\n                debug_logprintf("deferring a %.2f ms sleep (%s/%.2f).\n",seconds * DAT_0015d650,\n                                dVar17,pcVar8);\n              }\n              goto LAB_00133eae;\n            }\n            if (opt.debug != false) {\n              pcVar8 = number_to_static_string(limit_data.chunk_bytes);\n              debug_logprintf("\nsleeping %.2f ms for %s bytes, adjust %.2f ms\n",\n                              seconds * DAT_0015d650,dVar16,pcVar8);\n            }\n            dVar16 = ptimer_read(pt);\n            xsleep(seconds);\n            dVar17 = ptimer_measure(pt);\n            limit_data.sleep_adjust = seconds - (dVar17 - dVar16);\n            if (limit_data.sleep_adjust <= _DAT_0015c710) {\n              if (limit_data.sleep_adjust < DAT_0015d658) {\n                limit_data.sleep_adjust = DAT_0015d658;\n              }\n            }\n            else {\n              limit_data.sleep_adjust = _DAT_0015c710;\n            }\n          }\n          limit_data.chunk_bytes = 0;\n          limit_data.chunk_start = ptimer_read(pt);\n        }\n      }\n      else {\n        dVar16 = DAT_0015d648;\n        if (opt.read_timeout != 0.0) {\n          dVar17 = ptimer_read(pt);\n          dVar16 = DAT_0015d648;\n          if ((opt.read_timeout < (dVar17 - local_110) + DAT_0015d648) &&\n             (dVar16 = opt.read_timeout - (dVar17 - local_110), dVar16 < 0.0)) {\n            piVar9 = __errno_location();\n            *piVar9 = 0x6e;\n            uVar6 = 0xffffffff;\n            goto LAB_00133a74;\n          }\n        }\n        uVar7 = fd_read(fd,(char *)buf,(int)uVar11,dVar16);\n        if (-1 < (int)uVar7) goto LAB_00133e68;\n        piVar9 = __errno_location();\n        if (*piVar9 != 0x6e) break;\n        if (local_dc) {\n          ptimer_measure(pt);\n          uVar7 = 0;\n          goto LAB_00133ea0;\n        }\n        if ((opt.limit_rate != 0) || (local_da)) {\n          ptimer_measure(pt);\n          uVar7 = 0;\n          goto LAB_00133ea0;\n        }\n        uVar7 = 0;\n      }\nLAB_00133eae:\n      if (local_dc) {\n        dVar16 = ptimer_read(pt);\n        progress_update(local_130,(long)(int)uVar7,dVar16);\n      }\n    }\n    uVar6 = 0xffffffff;\n    if (-1 < (int)uVar7) {\n      uVar6 = uVar7;\n    }\n    goto LAB_00133a74;\n  }" if (parenthesized_expression "((flags & 8U) == 0)" ( (binary_expression "(flags & 8U) == 0" (parenthesized_expression "(flags & 8U)" ( (binary_expression "flags & 8U" identifier & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_001335e1:\n    if ((flags & 2U) != 0) {\n      skip = startpos;\n    }\n    if (opt.show_progress == 0) {\n      local_db = false;\n      local_130 = (void *)0x0;\n    }\n    else {\n      if (skip != 0) {\n        startpos = 0;\n      }\n      if (opt.dir_prefix != (char *)0x0) {\n        uVar10 = 0xffffffffffffffff;\n        pcVar8 = opt.dir_prefix;\n        do {\n          if (uVar10 == 0) break;\n          uVar10 = uVar10 - 1;\n          cVar1 = *pcVar8;\n          pcVar8 = pcVar8 + (ulong)bVar15 * -2 + 1;\n        } while (cVar1 != '\0');\n        downloaded_filename = downloaded_filename + ~uVar10;\n      }\n      local_130 = progress_create(downloaded_filename,startpos,startpos + toread);\n      local_db = progress_interactive_p(local_130);\n    }\n    if (opt.limit_rate == 0) {\n      if (local_130 != (void *)0x0 || elapsed != (double *)0x0) goto LAB_00133682;\n      uVar10 = 0x2000;\n      pt = (ptimer *)0x0;\n    }\n    else {\n      limit_data.chunk_bytes = 0;\n      limit_data.chunk_start = 0.0;\n      limit_data.sleep_adjust = 0.0;\nLAB_00133682:\n      pt = ptimer_new();\n      if ((opt.limit_rate == 0) || (uVar10 = opt.limit_rate, 0x1fff < opt.limit_rate)) {\n        uVar10 = 0x2000;\n      }\n    }\n    local_da = elapsed != (double *)0x0;\n    local_dc = local_130 != (void *)0x0;\n    iVar4 = (int)uVar10;\n    uVar13 = 0;\n    uVar14 = 0;\n    local_110 = 0.0;\n    uVar7 = 0;\n    while ((dVar16 = opt.read_timeout, uVar3 == 0 || ((long)uVar14 < toread))) {\n      if ((flags & 4U) == 0) {\n        uVar11 = uVar10 & 0xffffffff;\n        if (uVar3 != 0) {\n          uVar11 = toread - uVar14;\n          if ((long)iVar4 < (long)(toread - uVar14)) {\n            uVar11 = (long)iVar4;\n          }\n        }\n      }\n      else {\n        if (uVar13 == 0) {\n          pcVar8 = fd_read_line(fd);\n          if (pcVar8 != (char *)0x0) {\n            if (out2 != (FILE *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar12 = pcVar8;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar1 = *pcVar12;\n                pcVar12 = pcVar12 + (ulong)bVar15 * -2 + 1;\n              } while (cVar1 != '\0');\n              fwrite(pcVar8,1,~uVar13 - 1,(FILE *)out2);\n            }\n            uVar13 = strtol(pcVar8,&endl,0x10);\n            free(pcVar8);\n            if (-1 < (long)uVar13) {\n              if (uVar13 != 0) goto LAB_00133ef7;\n              pcVar8 = fd_read_line(fd);\n              uVar6 = 0xffffffff;\n              if (pcVar8 != (char *)0x0) {\n                if (out2 == (FILE *)0x0) goto LAB_001338bc;\n                uVar10 = 0xffffffffffffffff;\n                pcVar12 = pcVar8;\n                goto code_r0x001338a0;\n              }\n              goto LAB_00133a74;\n            }\n          }\n          uVar7 = 0xffffffff;\n          break;\n        }\nLAB_00133ef7:\n        uVar11 = (long)iVar4;\n        if ((long)uVar13 < (long)iVar4) {\n          uVar11 = uVar13;\n        }\n      }\n      if (local_db == false) {\n        uVar7 = fd_read(fd,(char *)buf,(int)uVar11,dVar16);\nLAB_00133e68:\n        if ((int)uVar7 < 1) break;\n        if (local_dc) {\n          ptimer_measure(pt);\nLAB_00133d9f:\n          local_110 = ptimer_read(pt);\n        }\n        else if ((opt.limit_rate != 0) || (local_da)) {\n          ptimer_measure(pt);\n          if ((int)uVar7 < 1) goto LAB_00133ea0;\n          goto LAB_00133d9f;\n        }\n        uVar14 = uVar14 + (long)(int)uVar7;\n        if (buf_00 == (double *)0x0) {\n          uVar6 = write_data(out,out2,(char *)buf,uVar7,&skip,&sum_written);\n          if ((int)uVar6 < 0) goto LAB_00133a74;\n        }\n        else {\n          uVar6 = write_data((FILE *)0x0,out2,(char *)buf,uVar7,(wgint *)0x0,(wgint *)0x0);\n          if ((int)uVar6 < 0) goto LAB_00133a74;\n          gzstream.next_in = buf;\n          gzstream.avail_in = uVar7;\n          do {\n            gzstream.avail_out = 0x8000;\n            gzstream.next_out = (Bytef *)buf_00;\n            iVar5 = inflate(&gzstream,0);\n            if (iVar5 == -3) {\nLAB_00133b59:\n              piVar9 = __errno_location();\n              *piVar9 = 0x16;\n              uVar6 = 0xffffffff;\n              goto LAB_00133a74;\n            }\n            if (iVar5 < -2) {\n              if (iVar5 == -4) {\n                piVar9 = __errno_location();\n                *piVar9 = 0xc;\n                uVar6 = 0xffffffff;\n                goto LAB_00133a74;\n              }\n            }\n            else if (iVar5 == 1) {\n              if (((toread != uVar14) && (uVar3 != 0)) && (opt.debug != false)) {\n                debug_logprintf("zlib stream ended unexpectedly after %ld/%ld bytes\n",uVar14,toread\n                               );\n              }\n            }\n            else if (iVar5 == 2) goto LAB_00133b59;\n            uVar6 = write_data(out,(FILE *)0x0,(char *)buf_00,0x8000 - gzstream.avail_out,&skip,\n                               &sum_written);\n            if ((int)uVar6 < 0) goto LAB_00133a74;\n          } while (gzstream.avail_out == 0);\n        }\n        if (((flags & 4U) != 0) && (uVar13 = uVar13 - (long)(int)uVar7, uVar13 == 0)) {\n          pcVar8 = fd_read_line(fd);\n          if (pcVar8 == (char *)0x0) {\n            uVar7 = 0xffffffff;\n            break;\n          }\n          if (out2 != (FILE *)0x0) {\n            uVar11 = 0xffffffffffffffff;\n            pcVar12 = pcVar8;\n            do {\n              if (uVar11 == 0) break;\n              uVar11 = uVar11 - 1;\n              cVar1 = *pcVar12;\n              pcVar12 = pcVar12 + (ulong)bVar15 * -2 + 1;\n            } while (cVar1 != '\0');\n            fwrite(pcVar8,1,~uVar11 - 1,(FILE *)out2);\n          }\n          free(pcVar8);\n        }\nLAB_00133ea0:\n        if (opt.limit_rate != 0) {\n          dVar17 = ptimer_read(pt);\n          dVar16 = limit_data.sleep_adjust;\n          dVar17 = dVar17 - limit_data.chunk_start;\n          limit_data.chunk_bytes = (int)uVar7 + limit_data.chunk_bytes;\n          if (dVar17 < (double)limit_data.chunk_bytes / (double)opt.limit_rate) {\n            seconds = ((double)limit_data.chunk_bytes / (double)opt.limit_rate - dVar17) +\n                      limit_data.sleep_adjust;\n            if (seconds < _DAT_0015c908) {\n              if (opt.debug != false) {\n                pcVar8 = number_to_static_string(limit_data.chunk_bytes);\n                debug_logprintf("deferring a %.2f ms sleep (%s/%.2f).\n",seconds * DAT_0015d650,\n                                dVar17,pcVar8);\n              }\n              goto LAB_00133eae;\n            }\n            if (opt.debug != false) {\n              pcVar8 = number_to_static_string(limit_data.chunk_bytes);\n              debug_logprintf("\nsleeping %.2f ms for %s bytes, adjust %.2f ms\n",\n                              seconds * DAT_0015d650,dVar16,pcVar8);\n            }\n            dVar16 = ptimer_read(pt);\n            xsleep(seconds);\n            dVar17 = ptimer_measure(pt);\n            limit_data.sleep_adjust = seconds - (dVar17 - dVar16);\n            if (limit_data.sleep_adjust <= _DAT_0015c710) {\n              if (limit_data.sleep_adjust < DAT_0015d658) {\n                limit_data.sleep_adjust = DAT_0015d658;\n              }\n            }\n            else {\n              limit_data.sleep_adjust = _DAT_0015c710;\n            }\n          }\n          limit_data.chunk_bytes = 0;\n          limit_data.chunk_start = ptimer_read(pt);\n        }\n      }\n      else {\n        dVar16 = DAT_0015d648;\n        if (opt.read_timeout != 0.0) {\n          dVar17 = ptimer_read(pt);\n          dVar16 = DAT_0015d648;\n          if ((opt.read_timeout < (dVar17 - local_110) + DAT_0015d648) &&\n             (dVar16 = opt.read_timeout - (dVar17 - local_110), dVar16 < 0.0)) {\n            piVar9 = __errno_location();\n            *piVar9 = 0x6e;\n            uVar6 = 0xffffffff;\n            goto LAB_00133a74;\n          }\n        }\n        uVar7 = fd_read(fd,(char *)buf,(int)uVar11,dVar16);\n        if (-1 < (int)uVar7) goto LAB_00133e68;\n        piVar9 = __errno_location();\n        if (*piVar9 != 0x6e) break;\n        if (local_dc) {\n          ptimer_measure(pt);\n          uVar7 = 0;\n          goto LAB_00133ea0;\n        }\n        if ((opt.limit_rate != 0) || (local_da)) {\n          ptimer_measure(pt);\n          uVar7 = 0;\n          goto LAB_00133ea0;\n        }\n        uVar7 = 0;\n      }\nLAB_00133eae:\n      if (local_dc) {\n        dVar16 = ptimer_read(pt);\n        progress_update(local_130,(long)(int)uVar7,dVar16);\n      }\n    }\n    uVar6 = 0xffffffff;\n    if (-1 < (int)uVar7) {\n      uVar6 = uVar7;\n    }\n    goto LAB_00133a74;\n  }" { (labeled_statement "LAB_001335e1:\n    if ((flags & 2U) != 0) {\n      skip = startpos;\n    }" statement_identifier : (if_statement "if ((flags & 2U) != 0) {\n      skip = startpos;\n    }" if (parenthesized_expression "((flags & 2U) != 0)" ( (binary_expression "(flags & 2U) != 0" (parenthesized_expression "(flags & 2U)" ( (binary_expression "flags & 2U" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      skip = startpos;\n    }" { (expression_statement "skip = startpos;" (assignment_expression "skip = startpos" identifier = identifier) ;) }))) (if_statement "if (opt.show_progress == 0) {\n      local_db = false;\n      local_130 = (void *)0x0;\n    }\n    else {\n      if (skip != 0) {\n        startpos = 0;\n      }\n      if (opt.dir_prefix != (char *)0x0) {\n        uVar10 = 0xffffffffffffffff;\n        pcVar8 = opt.dir_prefix;\n        do {\n          if (uVar10 == 0) break;\n          uVar10 = uVar10 - 1;\n          cVar1 = *pcVar8;\n          pcVar8 = pcVar8 + (ulong)bVar15 * -2 + 1;\n        } while (cVar1 != '\0');\n        downloaded_filename = downloaded_filename + ~uVar10;\n      }\n      local_130 = progress_create(downloaded_filename,startpos,startpos + toread);\n      local_db = progress_interactive_p(local_130);\n    }" if (parenthesized_expression "(opt.show_progress == 0)" ( (binary_expression "opt.show_progress == 0" (field_expression "opt.show_progress" identifier . field_identifier) == number_literal) )) (compound_statement "{\n      local_db = false;\n      local_130 = (void *)0x0;\n    }" { (expression_statement "local_db = false;" (assignment_expression "local_db = false" identifier = false) ;) (expression_statement "local_130 = (void *)0x0;" (assignment_expression "local_130 = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n      if (skip != 0) {\n        startpos = 0;\n      }\n      if (opt.dir_prefix != (char *)0x0) {\n        uVar10 = 0xffffffffffffffff;\n        pcVar8 = opt.dir_prefix;\n        do {\n          if (uVar10 == 0) break;\n          uVar10 = uVar10 - 1;\n          cVar1 = *pcVar8;\n          pcVar8 = pcVar8 + (ulong)bVar15 * -2 + 1;\n        } while (cVar1 != '\0');\n        downloaded_filename = downloaded_filename + ~uVar10;\n      }\n      local_130 = progress_create(downloaded_filename,startpos,startpos + toread);\n      local_db = progress_interactive_p(local_130);\n    }" else (compound_statement "{\n      if (skip != 0) {\n        startpos = 0;\n      }\n      if (opt.dir_prefix != (char *)0x0) {\n        uVar10 = 0xffffffffffffffff;\n        pcVar8 = opt.dir_prefix;\n        do {\n          if (uVar10 == 0) break;\n          uVar10 = uVar10 - 1;\n          cVar1 = *pcVar8;\n          pcVar8 = pcVar8 + (ulong)bVar15 * -2 + 1;\n        } while (cVar1 != '\0');\n        downloaded_filename = downloaded_filename + ~uVar10;\n      }\n      local_130 = progress_create(downloaded_filename,startpos,startpos + toread);\n      local_db = progress_interactive_p(local_130);\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 (opt.dir_prefix != (char *)0x0) {\n        uVar10 = 0xffffffffffffffff;\n        pcVar8 = opt.dir_prefix;\n        do {\n          if (uVar10 == 0) break;\n          uVar10 = uVar10 - 1;\n          cVar1 = *pcVar8;\n          pcVar8 = pcVar8 + (ulong)bVar15 * -2 + 1;\n        } while (cVar1 != '\0');\n        downloaded_filename = downloaded_filename + ~uVar10;\n      }" if (parenthesized_expression "(opt.dir_prefix != (char *)0x0)" ( (binary_expression "opt.dir_prefix != (char *)0x0" (field_expression "opt.dir_prefix" identifier . field_identifier) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar10 = 0xffffffffffffffff;\n        pcVar8 = opt.dir_prefix;\n        do {\n          if (uVar10 == 0) break;\n          uVar10 = uVar10 - 1;\n          cVar1 = *pcVar8;\n          pcVar8 = pcVar8 + (ulong)bVar15 * -2 + 1;\n        } while (cVar1 != '\0');\n        downloaded_filename = downloaded_filename + ~uVar10;\n      }" { (expression_statement "uVar10 = 0xffffffffffffffff;" (assignment_expression "uVar10 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar8 = opt.dir_prefix;" (assignment_expression "pcVar8 = opt.dir_prefix" identifier = (field_expression "opt.dir_prefix" identifier . field_identifier)) ;) (do_statement "do {\n          if (uVar10 == 0) break;\n          uVar10 = uVar10 - 1;\n          cVar1 = *pcVar8;\n          pcVar8 = pcVar8 + (ulong)bVar15 * -2 + 1;\n        } while (cVar1 != '\0');" do (compound_statement "{\n          if (uVar10 == 0) break;\n          uVar10 = uVar10 - 1;\n          cVar1 = *pcVar8;\n          pcVar8 = pcVar8 + (ulong)bVar15 * -2 + 1;\n        }" { (if_statement "if (uVar10 == 0) break;" if (parenthesized_expression "(uVar10 == 0)" ( (binary_expression "uVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar10 = uVar10 - 1;" (assignment_expression "uVar10 = uVar10 - 1" identifier = (binary_expression "uVar10 - 1" identifier - number_literal)) ;) (expression_statement "cVar1 = *pcVar8;" (assignment_expression "cVar1 = *pcVar8" identifier = (pointer_expression "*pcVar8" * identifier)) ;) (expression_statement "pcVar8 = pcVar8 + (ulong)bVar15 * -2 + 1;" (assignment_expression "pcVar8 = pcVar8 + (ulong)bVar15 * -2 + 1" identifier = (binary_expression "pcVar8 + (ulong)bVar15 * -2 + 1" (binary_expression "pcVar8 + (ulong)bVar15 * -2" identifier + (binary_expression "(ulong)bVar15 * -2" (cast_expression "(ulong)bVar15" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar1 != '\0')" ( (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "downloaded_filename = downloaded_filename + ~uVar10;" (assignment_expression "downloaded_filename = downloaded_filename + ~uVar10" identifier = (binary_expression "downloaded_filename + ~uVar10" identifier + (unary_expression "~uVar10" ~ identifier))) ;) })) (expression_statement "local_130 = progress_create(downloaded_filename,startpos,startpos + toread);" (assignment_expression "local_130 = progress_create(downloaded_filename,startpos,startpos + toread)" identifier = (call_expression "progress_create(downloaded_filename,startpos,startpos + toread)" identifier (argument_list "(downloaded_filename,startpos,startpos + toread)" ( identifier , identifier , (binary_expression "startpos + toread" identifier + identifier) )))) ;) (expression_statement "local_db = progress_interactive_p(local_130);" (assignment_expression "local_db = progress_interactive_p(local_130)" identifier = (call_expression "progress_interactive_p(local_130)" identifier (argument_list "(local_130)" ( identifier )))) ;) }))) (if_statement "if (opt.limit_rate == 0) {\n      if (local_130 != (void *)0x0 || elapsed != (double *)0x0) goto LAB_00133682;\n      uVar10 = 0x2000;\n      pt = (ptimer *)0x0;\n    }\n    else {\n      limit_data.chunk_bytes = 0;\n      limit_data.chunk_start = 0.0;\n      limit_data.sleep_adjust = 0.0;\nLAB_00133682:\n      pt = ptimer_new();\n      if ((opt.limit_rate == 0) || (uVar10 = opt.limit_rate, 0x1fff < opt.limit_rate)) {\n        uVar10 = 0x2000;\n      }\n    }" if (parenthesized_expression "(opt.limit_rate == 0)" ( (binary_expression "opt.limit_rate == 0" (field_expression "opt.limit_rate" identifier . field_identifier) == number_literal) )) (compound_statement "{\n      if (local_130 != (void *)0x0 || elapsed != (double *)0x0) goto LAB_00133682;\n      uVar10 = 0x2000;\n      pt = (ptimer *)0x0;\n    }" { (if_statement "if (local_130 != (void *)0x0 || elapsed != (double *)0x0) goto LAB_00133682;" if (parenthesized_expression "(local_130 != (void *)0x0 || elapsed != (double *)0x0)" ( (binary_expression "local_130 != (void *)0x0 || elapsed != (double *)0x0" (binary_expression "local_130 != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) || (binary_expression "elapsed != (double *)0x0" identifier != (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) )) (goto_statement "goto LAB_00133682;" goto statement_identifier ;)) (expression_statement "uVar10 = 0x2000;" (assignment_expression "uVar10 = 0x2000" identifier = number_literal) ;) (expression_statement "pt = (ptimer *)0x0;" (assignment_expression "pt = (ptimer *)0x0" identifier = (cast_expression "(ptimer *)0x0" ( (type_descriptor "ptimer *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n      limit_data.chunk_bytes = 0;\n      limit_data.chunk_start = 0.0;\n      limit_data.sleep_adjust = 0.0;\nLAB_00133682:\n      pt = ptimer_new();\n      if ((opt.limit_rate == 0) || (uVar10 = opt.limit_rate, 0x1fff < opt.limit_rate)) {\n        uVar10 = 0x2000;\n      }\n    }" else (compound_statement "{\n      limit_data.chunk_bytes = 0;\n      limit_data.chunk_start = 0.0;\n      limit_data.sleep_adjust = 0.0;\nLAB_00133682:\n      pt = ptimer_new();\n      if ((opt.limit_rate == 0) || (uVar10 = opt.limit_rate, 0x1fff < opt.limit_rate)) {\n        uVar10 = 0x2000;\n      }\n    }" { (expression_statement "limit_data.chunk_bytes = 0;" (assignment_expression "limit_data.chunk_bytes = 0" (field_expression "limit_data.chunk_bytes" identifier . field_identifier) = number_literal) ;) (expression_statement "limit_data.chunk_start = 0.0;" (assignment_expression "limit_data.chunk_start = 0.0" (field_expression "limit_data.chunk_start" identifier . field_identifier) = number_literal) ;) (expression_statement "limit_data.sleep_adjust = 0.0;" (assignment_expression "limit_data.sleep_adjust = 0.0" (field_expression "limit_data.sleep_adjust" identifier . field_identifier) = number_literal) ;) (labeled_statement "LAB_00133682:\n      pt = ptimer_new();" statement_identifier : (expression_statement "pt = ptimer_new();" (assignment_expression "pt = ptimer_new()" identifier = (call_expression "ptimer_new()" identifier (argument_list "()" ( )))) ;)) (if_statement "if ((opt.limit_rate == 0) || (uVar10 = opt.limit_rate, 0x1fff < opt.limit_rate)) {\n        uVar10 = 0x2000;\n      }" if (parenthesized_expression "((opt.limit_rate == 0) || (uVar10 = opt.limit_rate, 0x1fff < opt.limit_rate))" ( (binary_expression "(opt.limit_rate == 0) || (uVar10 = opt.limit_rate, 0x1fff < opt.limit_rate)" (parenthesized_expression "(opt.limit_rate == 0)" ( (binary_expression "opt.limit_rate == 0" (field_expression "opt.limit_rate" identifier . field_identifier) == number_literal) )) || (parenthesized_expression "(uVar10 = opt.limit_rate, 0x1fff < opt.limit_rate)" ( (comma_expression "uVar10 = opt.limit_rate, 0x1fff < opt.limit_rate" (assignment_expression "uVar10 = opt.limit_rate" identifier = (field_expression "opt.limit_rate" identifier . field_identifier)) , (binary_expression "0x1fff < opt.limit_rate" number_literal < (field_expression "opt.limit_rate" identifier . field_identifier))) ))) )) (compound_statement "{\n        uVar10 = 0x2000;\n      }" { (expression_statement "uVar10 = 0x2000;" (assignment_expression "uVar10 = 0x2000" identifier = number_literal) ;) })) }))) (expression_statement "local_da = elapsed != (double *)0x0;" (assignment_expression "local_da = elapsed != (double *)0x0" identifier = (binary_expression "elapsed != (double *)0x0" identifier != (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "local_dc = local_130 != (void *)0x0;" (assignment_expression "local_dc = local_130 != (void *)0x0" identifier = (binary_expression "local_130 != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "iVar4 = (int)uVar10;" (assignment_expression "iVar4 = (int)uVar10" identifier = (cast_expression "(int)uVar10" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "uVar13 = 0;" (assignment_expression "uVar13 = 0" identifier = number_literal) ;) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (expression_statement "local_110 = 0.0;" (assignment_expression "local_110 = 0.0" identifier = number_literal) ;) (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) (while_statement "while ((dVar16 = opt.read_timeout, uVar3 == 0 || ((long)uVar14 < toread))) {\n      if ((flags & 4U) == 0) {\n        uVar11 = uVar10 & 0xffffffff;\n        if (uVar3 != 0) {\n          uVar11 = toread - uVar14;\n          if ((long)iVar4 < (long)(toread - uVar14)) {\n            uVar11 = (long)iVar4;\n          }\n        }\n      }\n      else {\n        if (uVar13 == 0) {\n          pcVar8 = fd_read_line(fd);\n          if (pcVar8 != (char *)0x0) {\n            if (out2 != (FILE *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar12 = pcVar8;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar1 = *pcVar12;\n                pcVar12 = pcVar12 + (ulong)bVar15 * -2 + 1;\n              } while (cVar1 != '\0');\n              fwrite(pcVar8,1,~uVar13 - 1,(FILE *)out2);\n            }\n            uVar13 = strtol(pcVar8,&endl,0x10);\n            free(pcVar8);\n            if (-1 < (long)uVar13) {\n              if (uVar13 != 0) goto LAB_00133ef7;\n              pcVar8 = fd_read_line(fd);\n              uVar6 = 0xffffffff;\n              if (pcVar8 != (char *)0x0) {\n                if (out2 == (FILE *)0x0) goto LAB_001338bc;\n                uVar10 = 0xffffffffffffffff;\n                pcVar12 = pcVar8;\n                goto code_r0x001338a0;\n              }\n              goto LAB_00133a74;\n            }\n          }\n          uVar7 = 0xffffffff;\n          break;\n        }\nLAB_00133ef7:\n        uVar11 = (long)iVar4;\n        if ((long)uVar13 < (long)iVar4) {\n          uVar11 = uVar13;\n        }\n      }\n      if (local_db == false) {\n        uVar7 = fd_read(fd,(char *)buf,(int)uVar11,dVar16);\nLAB_00133e68:\n        if ((int)uVar7 < 1) break;\n        if (local_dc) {\n          ptimer_measure(pt);\nLAB_00133d9f:\n          local_110 = ptimer_read(pt);\n        }\n        else if ((opt.limit_rate != 0) || (local_da)) {\n          ptimer_measure(pt);\n          if ((int)uVar7 < 1) goto LAB_00133ea0;\n          goto LAB_00133d9f;\n        }\n        uVar14 = uVar14 + (long)(int)uVar7;\n        if (buf_00 == (double *)0x0) {\n          uVar6 = write_data(out,out2,(char *)buf,uVar7,&skip,&sum_written);\n          if ((int)uVar6 < 0) goto LAB_00133a74;\n        }\n        else {\n          uVar6 = write_data((FILE *)0x0,out2,(char *)buf,uVar7,(wgint *)0x0,(wgint *)0x0);\n          if ((int)uVar6 < 0) goto LAB_00133a74;\n          gzstream.next_in = buf;\n          gzstream.avail_in = uVar7;\n          do {\n            gzstream.avail_out = 0x8000;\n            gzstream.next_out = (Bytef *)buf_00;\n            iVar5 = inflate(&gzstream,0);\n            if (iVar5 == -3) {\nLAB_00133b59:\n              piVar9 = __errno_location();\n              *piVar9 = 0x16;\n              uVar6 = 0xffffffff;\n              goto LAB_00133a74;\n            }\n            if (iVar5 < -2) {\n              if (iVar5 == -4) {\n                piVar9 = __errno_location();\n                *piVar9 = 0xc;\n                uVar6 = 0xffffffff;\n                goto LAB_00133a74;\n              }\n            }\n            else if (iVar5 == 1) {\n              if (((toread != uVar14) && (uVar3 != 0)) && (opt.debug != false)) {\n                debug_logprintf("zlib stream ended unexpectedly after %ld/%ld bytes\n",uVar14,toread\n                               );\n              }\n            }\n            else if (iVar5 == 2) goto LAB_00133b59;\n            uVar6 = write_data(out,(FILE *)0x0,(char *)buf_00,0x8000 - gzstream.avail_out,&skip,\n                               &sum_written);\n            if ((int)uVar6 < 0) goto LAB_00133a74;\n          } while (gzstream.avail_out == 0);\n        }\n        if (((flags & 4U) != 0) && (uVar13 = uVar13 - (long)(int)uVar7, uVar13 == 0)) {\n          pcVar8 = fd_read_line(fd);\n          if (pcVar8 == (char *)0x0) {\n            uVar7 = 0xffffffff;\n            break;\n          }\n          if (out2 != (FILE *)0x0) {\n            uVar11 = 0xffffffffffffffff;\n            pcVar12 = pcVar8;\n            do {\n              if (uVar11 == 0) break;\n              uVar11 = uVar11 - 1;\n              cVar1 = *pcVar12;\n              pcVar12 = pcVar12 + (ulong)bVar15 * -2 + 1;\n            } while (cVar1 != '\0');\n            fwrite(pcVar8,1,~uVar11 - 1,(FILE *)out2);\n          }\n          free(pcVar8);\n        }\nLAB_00133ea0:\n        if (opt.limit_rate != 0) {\n          dVar17 = ptimer_read(pt);\n          dVar16 = limit_data.sleep_adjust;\n          dVar17 = dVar17 - limit_data.chunk_start;\n          limit_data.chunk_bytes = (int)uVar7 + limit_data.chunk_bytes;\n          if (dVar17 < (double)limit_data.chunk_bytes / (double)opt.limit_rate) {\n            seconds = ((double)limit_data.chunk_bytes / (double)opt.limit_rate - dVar17) +\n                      limit_data.sleep_adjust;\n            if (seconds < _DAT_0015c908) {\n              if (opt.debug != false) {\n                pcVar8 = number_to_static_string(limit_data.chunk_bytes);\n                debug_logprintf("deferring a %.2f ms sleep (%s/%.2f).\n",seconds * DAT_0015d650,\n                                dVar17,pcVar8);\n              }\n              goto LAB_00133eae;\n            }\n            if (opt.debug != false) {\n              pcVar8 = number_to_static_string(limit_data.chunk_bytes);\n              debug_logprintf("\nsleeping %.2f ms for %s bytes, adjust %.2f ms\n",\n                              seconds * DAT_0015d650,dVar16,pcVar8);\n            }\n            dVar16 = ptimer_read(pt);\n            xsleep(seconds);\n            dVar17 = ptimer_measure(pt);\n            limit_data.sleep_adjust = seconds - (dVar17 - dVar16);\n            if (limit_data.sleep_adjust <= _DAT_0015c710) {\n              if (limit_data.sleep_adjust < DAT_0015d658) {\n                limit_data.sleep_adjust = DAT_0015d658;\n              }\n            }\n            else {\n              limit_data.sleep_adjust = _DAT_0015c710;\n            }\n          }\n          limit_data.chunk_bytes = 0;\n          limit_data.chunk_start = ptimer_read(pt);\n        }\n      }\n      else {\n        dVar16 = DAT_0015d648;\n        if (opt.read_timeout != 0.0) {\n          dVar17 = ptimer_read(pt);\n          dVar16 = DAT_0015d648;\n          if ((opt.read_timeout < (dVar17 - local_110) + DAT_0015d648) &&\n             (dVar16 = opt.read_timeout - (dVar17 - local_110), dVar16 < 0.0)) {\n            piVar9 = __errno_location();\n            *piVar9 = 0x6e;\n            uVar6 = 0xffffffff;\n            goto LAB_00133a74;\n          }\n        }\n        uVar7 = fd_read(fd,(char *)buf,(int)uVar11,dVar16);\n        if (-1 < (int)uVar7) goto LAB_00133e68;\n        piVar9 = __errno_location();\n        if (*piVar9 != 0x6e) break;\n        if (local_dc) {\n          ptimer_measure(pt);\n          uVar7 = 0;\n          goto LAB_00133ea0;\n        }\n        if ((opt.limit_rate != 0) || (local_da)) {\n          ptimer_measure(pt);\n          uVar7 = 0;\n          goto LAB_00133ea0;\n        }\n        uVar7 = 0;\n      }\nLAB_00133eae:\n      if (local_dc) {\n        dVar16 = ptimer_read(pt);\n        progress_update(local_130,(long)(int)uVar7,dVar16);\n      }\n    }" while (parenthesized_expression "((dVar16 = opt.read_timeout, uVar3 == 0 || ((long)uVar14 < toread)))" ( (parenthesized_expression "(dVar16 = opt.read_timeout, uVar3 == 0 || ((long)uVar14 < toread))" ( (comma_expression "dVar16 = opt.read_timeout, uVar3 == 0 || ((long)uVar14 < toread)" (assignment_expression "dVar16 = opt.read_timeout" identifier = (field_expression "opt.read_timeout" identifier . field_identifier)) , (binary_expression "uVar3 == 0 || ((long)uVar14 < toread)" (binary_expression "uVar3 == 0" identifier == number_literal) || (parenthesized_expression "((long)uVar14 < toread)" ( (binary_expression "(long)uVar14 < toread" (cast_expression "(long)uVar14" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) < identifier) )))) )) )) (compound_statement "{\n      if ((flags & 4U) == 0) {\n        uVar11 = uVar10 & 0xffffffff;\n        if (uVar3 != 0) {\n          uVar11 = toread - uVar14;\n          if ((long)iVar4 < (long)(toread - uVar14)) {\n            uVar11 = (long)iVar4;\n          }\n        }\n      }\n      else {\n        if (uVar13 == 0) {\n          pcVar8 = fd_read_line(fd);\n          if (pcVar8 != (char *)0x0) {\n            if (out2 != (FILE *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar12 = pcVar8;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar1 = *pcVar12;\n                pcVar12 = pcVar12 + (ulong)bVar15 * -2 + 1;\n              } while (cVar1 != '\0');\n              fwrite(pcVar8,1,~uVar13 - 1,(FILE *)out2);\n            }\n            uVar13 = strtol(pcVar8,&endl,0x10);\n            free(pcVar8);\n            if (-1 < (long)uVar13) {\n              if (uVar13 != 0) goto LAB_00133ef7;\n              pcVar8 = fd_read_line(fd);\n              uVar6 = 0xffffffff;\n              if (pcVar8 != (char *)0x0) {\n                if (out2 == (FILE *)0x0) goto LAB_001338bc;\n                uVar10 = 0xffffffffffffffff;\n                pcVar12 = pcVar8;\n                goto code_r0x001338a0;\n              }\n              goto LAB_00133a74;\n            }\n          }\n          uVar7 = 0xffffffff;\n          break;\n        }\nLAB_00133ef7:\n        uVar11 = (long)iVar4;\n        if ((long)uVar13 < (long)iVar4) {\n          uVar11 = uVar13;\n        }\n      }\n      if (local_db == false) {\n        uVar7 = fd_read(fd,(char *)buf,(int)uVar11,dVar16);\nLAB_00133e68:\n        if ((int)uVar7 < 1) break;\n        if (local_dc) {\n          ptimer_measure(pt);\nLAB_00133d9f:\n          local_110 = ptimer_read(pt);\n        }\n        else if ((opt.limit_rate != 0) || (local_da)) {\n          ptimer_measure(pt);\n          if ((int)uVar7 < 1) goto LAB_00133ea0;\n          goto LAB_00133d9f;\n        }\n        uVar14 = uVar14 + (long)(int)uVar7;\n        if (buf_00 == (double *)0x0) {\n          uVar6 = write_data(out,out2,(char *)buf,uVar7,&skip,&sum_written);\n          if ((int)uVar6 < 0) goto LAB_00133a74;\n        }\n        else {\n          uVar6 = write_data((FILE *)0x0,out2,(char *)buf,uVar7,(wgint *)0x0,(wgint *)0x0);\n          if ((int)uVar6 < 0) goto LAB_00133a74;\n          gzstream.next_in = buf;\n          gzstream.avail_in = uVar7;\n          do {\n            gzstream.avail_out = 0x8000;\n            gzstream.next_out = (Bytef *)buf_00;\n            iVar5 = inflate(&gzstream,0);\n            if (iVar5 == -3) {\nLAB_00133b59:\n              piVar9 = __errno_location();\n              *piVar9 = 0x16;\n              uVar6 = 0xffffffff;\n              goto LAB_00133a74;\n            }\n            if (iVar5 < -2) {\n              if (iVar5 == -4) {\n                piVar9 = __errno_location();\n                *piVar9 = 0xc;\n                uVar6 = 0xffffffff;\n                goto LAB_00133a74;\n              }\n            }\n            else if (iVar5 == 1) {\n              if (((toread != uVar14) && (uVar3 != 0)) && (opt.debug != false)) {\n                debug_logprintf("zlib stream ended unexpectedly after %ld/%ld bytes\n",uVar14,toread\n                               );\n              }\n            }\n            else if (iVar5 == 2) goto LAB_00133b59;\n            uVar6 = write_data(out,(FILE *)0x0,(char *)buf_00,0x8000 - gzstream.avail_out,&skip,\n                               &sum_written);\n            if ((int)uVar6 < 0) goto LAB_00133a74;\n          } while (gzstream.avail_out == 0);\n        }\n        if (((flags & 4U) != 0) && (uVar13 = uVar13 - (long)(int)uVar7, uVar13 == 0)) {\n          pcVar8 = fd_read_line(fd);\n          if (pcVar8 == (char *)0x0) {\n            uVar7 = 0xffffffff;\n            break;\n          }\n          if (out2 != (FILE *)0x0) {\n            uVar11 = 0xffffffffffffffff;\n            pcVar12 = pcVar8;\n            do {\n              if (uVar11 == 0) break;\n              uVar11 = uVar11 - 1;\n              cVar1 = *pcVar12;\n              pcVar12 = pcVar12 + (ulong)bVar15 * -2 + 1;\n            } while (cVar1 != '\0');\n            fwrite(pcVar8,1,~uVar11 - 1,(FILE *)out2);\n          }\n          free(pcVar8);\n        }\nLAB_00133ea0:\n        if (opt.limit_rate != 0) {\n          dVar17 = ptimer_read(pt);\n          dVar16 = limit_data.sleep_adjust;\n          dVar17 = dVar17 - limit_data.chunk_start;\n          limit_data.chunk_bytes = (int)uVar7 + limit_data.chunk_bytes;\n          if (dVar17 < (double)limit_data.chunk_bytes / (double)opt.limit_rate) {\n            seconds = ((double)limit_data.chunk_bytes / (double)opt.limit_rate - dVar17) +\n                      limit_data.sleep_adjust;\n            if (seconds < _DAT_0015c908) {\n              if (opt.debug != false) {\n                pcVar8 = number_to_static_string(limit_data.chunk_bytes);\n                debug_logprintf("deferring a %.2f ms sleep (%s/%.2f).\n",seconds * DAT_0015d650,\n                                dVar17,pcVar8);\n              }\n              goto LAB_00133eae;\n            }\n            if (opt.debug != false) {\n              pcVar8 = number_to_static_string(limit_data.chunk_bytes);\n              debug_logprintf("\nsleeping %.2f ms for %s bytes, adjust %.2f ms\n",\n                              seconds * DAT_0015d650,dVar16,pcVar8);\n            }\n            dVar16 = ptimer_read(pt);\n            xsleep(seconds);\n            dVar17 = ptimer_measure(pt);\n            limit_data.sleep_adjust = seconds - (dVar17 - dVar16);\n            if (limit_data.sleep_adjust <= _DAT_0015c710) {\n              if (limit_data.sleep_adjust < DAT_0015d658) {\n                limit_data.sleep_adjust = DAT_0015d658;\n              }\n            }\n            else {\n              limit_data.sleep_adjust = _DAT_0015c710;\n            }\n          }\n          limit_data.chunk_bytes = 0;\n          limit_data.chunk_start = ptimer_read(pt);\n        }\n      }\n      else {\n        dVar16 = DAT_0015d648;\n        if (opt.read_timeout != 0.0) {\n          dVar17 = ptimer_read(pt);\n          dVar16 = DAT_0015d648;\n          if ((opt.read_timeout < (dVar17 - local_110) + DAT_0015d648) &&\n             (dVar16 = opt.read_timeout - (dVar17 - local_110), dVar16 < 0.0)) {\n            piVar9 = __errno_location();\n            *piVar9 = 0x6e;\n            uVar6 = 0xffffffff;\n            goto LAB_00133a74;\n          }\n        }\n        uVar7 = fd_read(fd,(char *)buf,(int)uVar11,dVar16);\n        if (-1 < (int)uVar7) goto LAB_00133e68;\n        piVar9 = __errno_location();\n        if (*piVar9 != 0x6e) break;\n        if (local_dc) {\n          ptimer_measure(pt);\n          uVar7 = 0;\n          goto LAB_00133ea0;\n        }\n        if ((opt.limit_rate != 0) || (local_da)) {\n          ptimer_measure(pt);\n          uVar7 = 0;\n          goto LAB_00133ea0;\n        }\n        uVar7 = 0;\n      }\nLAB_00133eae:\n      if (local_dc) {\n        dVar16 = ptimer_read(pt);\n        progress_update(local_130,(long)(int)uVar7,dVar16);\n      }\n    }" { (if_statement "if ((flags & 4U) == 0) {\n        uVar11 = uVar10 & 0xffffffff;\n        if (uVar3 != 0) {\n          uVar11 = toread - uVar14;\n          if ((long)iVar4 < (long)(toread - uVar14)) {\n            uVar11 = (long)iVar4;\n          }\n        }\n      }\n      else {\n        if (uVar13 == 0) {\n          pcVar8 = fd_read_line(fd);\n          if (pcVar8 != (char *)0x0) {\n            if (out2 != (FILE *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar12 = pcVar8;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar1 = *pcVar12;\n                pcVar12 = pcVar12 + (ulong)bVar15 * -2 + 1;\n              } while (cVar1 != '\0');\n              fwrite(pcVar8,1,~uVar13 - 1,(FILE *)out2);\n            }\n            uVar13 = strtol(pcVar8,&endl,0x10);\n            free(pcVar8);\n            if (-1 < (long)uVar13) {\n              if (uVar13 != 0) goto LAB_00133ef7;\n              pcVar8 = fd_read_line(fd);\n              uVar6 = 0xffffffff;\n              if (pcVar8 != (char *)0x0) {\n                if (out2 == (FILE *)0x0) goto LAB_001338bc;\n                uVar10 = 0xffffffffffffffff;\n                pcVar12 = pcVar8;\n                goto code_r0x001338a0;\n              }\n              goto LAB_00133a74;\n            }\n          }\n          uVar7 = 0xffffffff;\n          break;\n        }\nLAB_00133ef7:\n        uVar11 = (long)iVar4;\n        if ((long)uVar13 < (long)iVar4) {\n          uVar11 = uVar13;\n        }\n      }" if (parenthesized_expression "((flags & 4U) == 0)" ( (binary_expression "(flags & 4U) == 0" (parenthesized_expression "(flags & 4U)" ( (binary_expression "flags & 4U" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        uVar11 = uVar10 & 0xffffffff;\n        if (uVar3 != 0) {\n          uVar11 = toread - uVar14;\n          if ((long)iVar4 < (long)(toread - uVar14)) {\n            uVar11 = (long)iVar4;\n          }\n        }\n      }" { (expression_statement "uVar11 = uVar10 & 0xffffffff;" (assignment_expression "uVar11 = uVar10 & 0xffffffff" identifier = (binary_expression "uVar10 & 0xffffffff" identifier & number_literal)) ;) (if_statement "if (uVar3 != 0) {\n          uVar11 = toread - uVar14;\n          if ((long)iVar4 < (long)(toread - uVar14)) {\n            uVar11 = (long)iVar4;\n          }\n        }" if (parenthesized_expression "(uVar3 != 0)" ( (binary_expression "uVar3 != 0" identifier != number_literal) )) (compound_statement "{\n          uVar11 = toread - uVar14;\n          if ((long)iVar4 < (long)(toread - uVar14)) {\n            uVar11 = (long)iVar4;\n          }\n        }" { (expression_statement "uVar11 = toread - uVar14;" (assignment_expression "uVar11 = toread - uVar14" identifier = (binary_expression "toread - uVar14" identifier - identifier)) ;) (if_statement "if ((long)iVar4 < (long)(toread - uVar14)) {\n            uVar11 = (long)iVar4;\n          }" if (parenthesized_expression "((long)iVar4 < (long)(toread - uVar14))" ( (binary_expression "(long)iVar4 < (long)(toread - uVar14)" (cast_expression "(long)iVar4" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) < (cast_expression "(long)(toread - uVar14)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(toread - uVar14)" ( (binary_expression "toread - uVar14" identifier - identifier) )))) )) (compound_statement "{\n            uVar11 = (long)iVar4;\n          }" { (expression_statement "uVar11 = (long)iVar4;" (assignment_expression "uVar11 = (long)iVar4" identifier = (cast_expression "(long)iVar4" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) })) })) }) (else_clause "else {\n        if (uVar13 == 0) {\n          pcVar8 = fd_read_line(fd);\n          if (pcVar8 != (char *)0x0) {\n            if (out2 != (FILE *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar12 = pcVar8;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar1 = *pcVar12;\n                pcVar12 = pcVar12 + (ulong)bVar15 * -2 + 1;\n              } while (cVar1 != '\0');\n              fwrite(pcVar8,1,~uVar13 - 1,(FILE *)out2);\n            }\n            uVar13 = strtol(pcVar8,&endl,0x10);\n            free(pcVar8);\n            if (-1 < (long)uVar13) {\n              if (uVar13 != 0) goto LAB_00133ef7;\n              pcVar8 = fd_read_line(fd);\n              uVar6 = 0xffffffff;\n              if (pcVar8 != (char *)0x0) {\n                if (out2 == (FILE *)0x0) goto LAB_001338bc;\n                uVar10 = 0xffffffffffffffff;\n                pcVar12 = pcVar8;\n                goto code_r0x001338a0;\n              }\n              goto LAB_00133a74;\n            }\n          }\n          uVar7 = 0xffffffff;\n          break;\n        }\nLAB_00133ef7:\n        uVar11 = (long)iVar4;\n        if ((long)uVar13 < (long)iVar4) {\n          uVar11 = uVar13;\n        }\n      }" else (compound_statement "{\n        if (uVar13 == 0) {\n          pcVar8 = fd_read_line(fd);\n          if (pcVar8 != (char *)0x0) {\n            if (out2 != (FILE *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar12 = pcVar8;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar1 = *pcVar12;\n                pcVar12 = pcVar12 + (ulong)bVar15 * -2 + 1;\n              } while (cVar1 != '\0');\n              fwrite(pcVar8,1,~uVar13 - 1,(FILE *)out2);\n            }\n            uVar13 = strtol(pcVar8,&endl,0x10);\n            free(pcVar8);\n            if (-1 < (long)uVar13) {\n              if (uVar13 != 0) goto LAB_00133ef7;\n              pcVar8 = fd_read_line(fd);\n              uVar6 = 0xffffffff;\n              if (pcVar8 != (char *)0x0) {\n                if (out2 == (FILE *)0x0) goto LAB_001338bc;\n                uVar10 = 0xffffffffffffffff;\n                pcVar12 = pcVar8;\n                goto code_r0x001338a0;\n              }\n              goto LAB_00133a74;\n            }\n          }\n          uVar7 = 0xffffffff;\n          break;\n        }\nLAB_00133ef7:\n        uVar11 = (long)iVar4;\n        if ((long)uVar13 < (long)iVar4) {\n          uVar11 = uVar13;\n        }\n      }" { (if_statement "if (uVar13 == 0) {\n          pcVar8 = fd_read_line(fd);\n          if (pcVar8 != (char *)0x0) {\n            if (out2 != (FILE *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar12 = pcVar8;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar1 = *pcVar12;\n                pcVar12 = pcVar12 + (ulong)bVar15 * -2 + 1;\n              } while (cVar1 != '\0');\n              fwrite(pcVar8,1,~uVar13 - 1,(FILE *)out2);\n            }\n            uVar13 = strtol(pcVar8,&endl,0x10);\n            free(pcVar8);\n            if (-1 < (long)uVar13) {\n              if (uVar13 != 0) goto LAB_00133ef7;\n              pcVar8 = fd_read_line(fd);\n              uVar6 = 0xffffffff;\n              if (pcVar8 != (char *)0x0) {\n                if (out2 == (FILE *)0x0) goto LAB_001338bc;\n                uVar10 = 0xffffffffffffffff;\n                pcVar12 = pcVar8;\n                goto code_r0x001338a0;\n              }\n              goto LAB_00133a74;\n            }\n          }\n          uVar7 = 0xffffffff;\n          break;\n        }" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (compound_statement "{\n          pcVar8 = fd_read_line(fd);\n          if (pcVar8 != (char *)0x0) {\n            if (out2 != (FILE *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar12 = pcVar8;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar1 = *pcVar12;\n                pcVar12 = pcVar12 + (ulong)bVar15 * -2 + 1;\n              } while (cVar1 != '\0');\n              fwrite(pcVar8,1,~uVar13 - 1,(FILE *)out2);\n            }\n            uVar13 = strtol(pcVar8,&endl,0x10);\n            free(pcVar8);\n            if (-1 < (long)uVar13) {\n              if (uVar13 != 0) goto LAB_00133ef7;\n              pcVar8 = fd_read_line(fd);\n              uVar6 = 0xffffffff;\n              if (pcVar8 != (char *)0x0) {\n                if (out2 == (FILE *)0x0) goto LAB_001338bc;\n                uVar10 = 0xffffffffffffffff;\n                pcVar12 = pcVar8;\n                goto code_r0x001338a0;\n              }\n              goto LAB_00133a74;\n            }\n          }\n          uVar7 = 0xffffffff;\n          break;\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 )))) ;) (if_statement "if (pcVar8 != (char *)0x0) {\n            if (out2 != (FILE *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar12 = pcVar8;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar1 = *pcVar12;\n                pcVar12 = pcVar12 + (ulong)bVar15 * -2 + 1;\n              } while (cVar1 != '\0');\n              fwrite(pcVar8,1,~uVar13 - 1,(FILE *)out2);\n            }\n            uVar13 = strtol(pcVar8,&endl,0x10);\n            free(pcVar8);\n            if (-1 < (long)uVar13) {\n              if (uVar13 != 0) goto LAB_00133ef7;\n              pcVar8 = fd_read_line(fd);\n              uVar6 = 0xffffffff;\n              if (pcVar8 != (char *)0x0) {\n                if (out2 == (FILE *)0x0) goto LAB_001338bc;\n                uVar10 = 0xffffffffffffffff;\n                pcVar12 = pcVar8;\n                goto code_r0x001338a0;\n              }\n              goto LAB_00133a74;\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 "{\n            if (out2 != (FILE *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar12 = pcVar8;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar1 = *pcVar12;\n                pcVar12 = pcVar12 + (ulong)bVar15 * -2 + 1;\n              } while (cVar1 != '\0');\n              fwrite(pcVar8,1,~uVar13 - 1,(FILE *)out2);\n            }\n            uVar13 = strtol(pcVar8,&endl,0x10);\n            free(pcVar8);\n            if (-1 < (long)uVar13) {\n              if (uVar13 != 0) goto LAB_00133ef7;\n              pcVar8 = fd_read_line(fd);\n              uVar6 = 0xffffffff;\n              if (pcVar8 != (char *)0x0) {\n                if (out2 == (FILE *)0x0) goto LAB_001338bc;\n                uVar10 = 0xffffffffffffffff;\n                pcVar12 = pcVar8;\n                goto code_r0x001338a0;\n              }\n              goto LAB_00133a74;\n            }\n          }" { (if_statement "if (out2 != (FILE *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar12 = pcVar8;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar1 = *pcVar12;\n                pcVar12 = pcVar12 + (ulong)bVar15 * -2 + 1;\n              } while (cVar1 != '\0');\n              fwrite(pcVar8,1,~uVar13 - 1,(FILE *)out2);\n            }" if (parenthesized_expression "(out2 != (FILE *)0x0)" ( (binary_expression "out2 != (FILE *)0x0" identifier != (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              uVar13 = 0xffffffffffffffff;\n              pcVar12 = pcVar8;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar1 = *pcVar12;\n                pcVar12 = pcVar12 + (ulong)bVar15 * -2 + 1;\n              } while (cVar1 != '\0');\n              fwrite(pcVar8,1,~uVar13 - 1,(FILE *)out2);\n            }" { (expression_statement "uVar13 = 0xffffffffffffffff;" (assignment_expression "uVar13 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar12 = pcVar8;" (assignment_expression "pcVar12 = pcVar8" identifier = identifier) ;) (do_statement "do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar1 = *pcVar12;\n                pcVar12 = pcVar12 + (ulong)bVar15 * -2 + 1;\n              } while (cVar1 != '\0');" do (compound_statement "{\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar1 = *pcVar12;\n                pcVar12 = pcVar12 + (ulong)bVar15 * -2 + 1;\n              }" { (if_statement "if (uVar13 == 0) break;" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar13 = uVar13 - 1;" (assignment_expression "uVar13 = uVar13 - 1" identifier = (binary_expression "uVar13 - 1" identifier - number_literal)) ;) (expression_statement "cVar1 = *pcVar12;" (assignment_expression "cVar1 = *pcVar12" identifier = (pointer_expression "*pcVar12" * identifier)) ;) (expression_statement "pcVar12 = pcVar12 + (ulong)bVar15 * -2 + 1;" (assignment_expression "pcVar12 = pcVar12 + (ulong)bVar15 * -2 + 1" identifier = (binary_expression "pcVar12 + (ulong)bVar15 * -2 + 1" (binary_expression "pcVar12 + (ulong)bVar15 * -2" identifier + (binary_expression "(ulong)bVar15 * -2" (cast_expression "(ulong)bVar15" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar1 != '\0')" ( (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "fwrite(pcVar8,1,~uVar13 - 1,(FILE *)out2);" (call_expression "fwrite(pcVar8,1,~uVar13 - 1,(FILE *)out2)" identifier (argument_list "(pcVar8,1,~uVar13 - 1,(FILE *)out2)" ( identifier , number_literal , (binary_expression "~uVar13 - 1" (unary_expression "~uVar13" ~ identifier) - number_literal) , (cast_expression "(FILE *)out2" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) })) (expression_statement "uVar13 = strtol(pcVar8,&endl,0x10);" (assignment_expression "uVar13 = strtol(pcVar8,&endl,0x10)" identifier = (call_expression "strtol(pcVar8,&endl,0x10)" identifier (argument_list "(pcVar8,&endl,0x10)" ( identifier , (pointer_expression "&endl" & identifier) , number_literal )))) ;) (expression_statement "free(pcVar8);" (call_expression "free(pcVar8)" identifier (argument_list "(pcVar8)" ( identifier ))) ;) (if_statement "if (-1 < (long)uVar13) {\n              if (uVar13 != 0) goto LAB_00133ef7;\n              pcVar8 = fd_read_line(fd);\n              uVar6 = 0xffffffff;\n              if (pcVar8 != (char *)0x0) {\n                if (out2 == (FILE *)0x0) goto LAB_001338bc;\n                uVar10 = 0xffffffffffffffff;\n                pcVar12 = pcVar8;\n                goto code_r0x001338a0;\n              }\n              goto LAB_00133a74;\n            }" if (parenthesized_expression "(-1 < (long)uVar13)" ( (binary_expression "-1 < (long)uVar13" number_literal < (cast_expression "(long)uVar13" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )) (compound_statement "{\n              if (uVar13 != 0) goto LAB_00133ef7;\n              pcVar8 = fd_read_line(fd);\n              uVar6 = 0xffffffff;\n              if (pcVar8 != (char *)0x0) {\n                if (out2 == (FILE *)0x0) goto LAB_001338bc;\n                uVar10 = 0xffffffffffffffff;\n                pcVar12 = pcVar8;\n                goto code_r0x001338a0;\n              }\n              goto LAB_00133a74;\n            }" { (if_statement "if (uVar13 != 0) goto LAB_00133ef7;" if (parenthesized_expression "(uVar13 != 0)" ( (binary_expression "uVar13 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00133ef7;" 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 "uVar6 = 0xffffffff;" (assignment_expression "uVar6 = 0xffffffff" identifier = number_literal) ;) (if_statement "if (pcVar8 != (char *)0x0) {\n                if (out2 == (FILE *)0x0) goto LAB_001338bc;\n                uVar10 = 0xffffffffffffffff;\n                pcVar12 = pcVar8;\n                goto code_r0x001338a0;\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                if (out2 == (FILE *)0x0) goto LAB_001338bc;\n                uVar10 = 0xffffffffffffffff;\n                pcVar12 = pcVar8;\n                goto code_r0x001338a0;\n              }" { (if_statement "if (out2 == (FILE *)0x0) goto LAB_001338bc;" if (parenthesized_expression "(out2 == (FILE *)0x0)" ( (binary_expression "out2 == (FILE *)0x0" identifier == (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_001338bc;" goto statement_identifier ;)) (expression_statement "uVar10 = 0xffffffffffffffff;" (assignment_expression "uVar10 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar12 = pcVar8;" (assignment_expression "pcVar12 = pcVar8" identifier = identifier) ;) (goto_statement "goto code_r0x001338a0;" goto statement_identifier ;) })) (goto_statement "goto LAB_00133a74;" goto statement_identifier ;) })) })) (expression_statement "uVar7 = 0xffffffff;" (assignment_expression "uVar7 = 0xffffffff" identifier = number_literal) ;) (break_statement "break;" break ;) })) (labeled_statement "LAB_00133ef7:\n        uVar11 = (long)iVar4;" statement_identifier : (expression_statement "uVar11 = (long)iVar4;" (assignment_expression "uVar11 = (long)iVar4" identifier = (cast_expression "(long)iVar4" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;)) (if_statement "if ((long)uVar13 < (long)iVar4) {\n          uVar11 = uVar13;\n        }" if (parenthesized_expression "((long)uVar13 < (long)iVar4)" ( (binary_expression "(long)uVar13 < (long)iVar4" (cast_expression "(long)uVar13" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) < (cast_expression "(long)iVar4" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )) (compound_statement "{\n          uVar11 = uVar13;\n        }" { (expression_statement "uVar11 = uVar13;" (assignment_expression "uVar11 = uVar13" identifier = identifier) ;) })) }))) (if_statement "if (local_db == false) {\n        uVar7 = fd_read(fd,(char *)buf,(int)uVar11,dVar16);\nLAB_00133e68:\n        if ((int)uVar7 < 1) break;\n        if (local_dc) {\n          ptimer_measure(pt);\nLAB_00133d9f:\n          local_110 = ptimer_read(pt);\n        }\n        else if ((opt.limit_rate != 0) || (local_da)) {\n          ptimer_measure(pt);\n          if ((int)uVar7 < 1) goto LAB_00133ea0;\n          goto LAB_00133d9f;\n        }\n        uVar14 = uVar14 + (long)(int)uVar7;\n        if (buf_00 == (double *)0x0) {\n          uVar6 = write_data(out,out2,(char *)buf,uVar7,&skip,&sum_written);\n          if ((int)uVar6 < 0) goto LAB_00133a74;\n        }\n        else {\n          uVar6 = write_data((FILE *)0x0,out2,(char *)buf,uVar7,(wgint *)0x0,(wgint *)0x0);\n          if ((int)uVar6 < 0) goto LAB_00133a74;\n          gzstream.next_in = buf;\n          gzstream.avail_in = uVar7;\n          do {\n            gzstream.avail_out = 0x8000;\n            gzstream.next_out = (Bytef *)buf_00;\n            iVar5 = inflate(&gzstream,0);\n            if (iVar5 == -3) {\nLAB_00133b59:\n              piVar9 = __errno_location();\n              *piVar9 = 0x16;\n              uVar6 = 0xffffffff;\n              goto LAB_00133a74;\n            }\n            if (iVar5 < -2) {\n              if (iVar5 == -4) {\n                piVar9 = __errno_location();\n                *piVar9 = 0xc;\n                uVar6 = 0xffffffff;\n                goto LAB_00133a74;\n              }\n            }\n            else if (iVar5 == 1) {\n              if (((toread != uVar14) && (uVar3 != 0)) && (opt.debug != false)) {\n                debug_logprintf("zlib stream ended unexpectedly after %ld/%ld bytes\n",uVar14,toread\n                               );\n              }\n            }\n            else if (iVar5 == 2) goto LAB_00133b59;\n            uVar6 = write_data(out,(FILE *)0x0,(char *)buf_00,0x8000 - gzstream.avail_out,&skip,\n                               &sum_written);\n            if ((int)uVar6 < 0) goto LAB_00133a74;\n          } while (gzstream.avail_out == 0);\n        }\n        if (((flags & 4U) != 0) && (uVar13 = uVar13 - (long)(int)uVar7, uVar13 == 0)) {\n          pcVar8 = fd_read_line(fd);\n          if (pcVar8 == (char *)0x0) {\n            uVar7 = 0xffffffff;\n            break;\n          }\n          if (out2 != (FILE *)0x0) {\n            uVar11 = 0xffffffffffffffff;\n            pcVar12 = pcVar8;\n            do {\n              if (uVar11 == 0) break;\n              uVar11 = uVar11 - 1;\n              cVar1 = *pcVar12;\n              pcVar12 = pcVar12 + (ulong)bVar15 * -2 + 1;\n            } while (cVar1 != '\0');\n            fwrite(pcVar8,1,~uVar11 - 1,(FILE *)out2);\n          }\n          free(pcVar8);\n        }\nLAB_00133ea0:\n        if (opt.limit_rate != 0) {\n          dVar17 = ptimer_read(pt);\n          dVar16 = limit_data.sleep_adjust;\n          dVar17 = dVar17 - limit_data.chunk_start;\n          limit_data.chunk_bytes = (int)uVar7 + limit_data.chunk_bytes;\n          if (dVar17 < (double)limit_data.chunk_bytes / (double)opt.limit_rate) {\n            seconds = ((double)limit_data.chunk_bytes / (double)opt.limit_rate - dVar17) +\n                      limit_data.sleep_adjust;\n            if (seconds < _DAT_0015c908) {\n              if (opt.debug != false) {\n                pcVar8 = number_to_static_string(limit_data.chunk_bytes);\n                debug_logprintf("deferring a %.2f ms sleep (%s/%.2f).\n",seconds * DAT_0015d650,\n                                dVar17,pcVar8);\n              }\n              goto LAB_00133eae;\n            }\n            if (opt.debug != false) {\n              pcVar8 = number_to_static_string(limit_data.chunk_bytes);\n              debug_logprintf("\nsleeping %.2f ms for %s bytes, adjust %.2f ms\n",\n                              seconds * DAT_0015d650,dVar16,pcVar8);\n            }\n            dVar16 = ptimer_read(pt);\n            xsleep(seconds);\n            dVar17 = ptimer_measure(pt);\n            limit_data.sleep_adjust = seconds - (dVar17 - dVar16);\n            if (limit_data.sleep_adjust <= _DAT_0015c710) {\n              if (limit_data.sleep_adjust < DAT_0015d658) {\n                limit_data.sleep_adjust = DAT_0015d658;\n              }\n            }\n            else {\n              limit_data.sleep_adjust = _DAT_0015c710;\n            }\n          }\n          limit_data.chunk_bytes = 0;\n          limit_data.chunk_start = ptimer_read(pt);\n        }\n      }\n      else {\n        dVar16 = DAT_0015d648;\n        if (opt.read_timeout != 0.0) {\n          dVar17 = ptimer_read(pt);\n          dVar16 = DAT_0015d648;\n          if ((opt.read_timeout < (dVar17 - local_110) + DAT_0015d648) &&\n             (dVar16 = opt.read_timeout - (dVar17 - local_110), dVar16 < 0.0)) {\n            piVar9 = __errno_location();\n            *piVar9 = 0x6e;\n            uVar6 = 0xffffffff;\n            goto LAB_00133a74;\n          }\n        }\n        uVar7 = fd_read(fd,(char *)buf,(int)uVar11,dVar16);\n        if (-1 < (int)uVar7) goto LAB_00133e68;\n        piVar9 = __errno_location();\n        if (*piVar9 != 0x6e) break;\n        if (local_dc) {\n          ptimer_measure(pt);\n          uVar7 = 0;\n          goto LAB_00133ea0;\n        }\n        if ((opt.limit_rate != 0) || (local_da)) {\n          ptimer_measure(pt);\n          uVar7 = 0;\n          goto LAB_00133ea0;\n        }\n        uVar7 = 0;\n      }" if (parenthesized_expression "(local_db == false)" ( (binary_expression "local_db == false" identifier == false) )) (compound_statement "{\n        uVar7 = fd_read(fd,(char *)buf,(int)uVar11,dVar16);\nLAB_00133e68:\n        if ((int)uVar7 < 1) break;\n        if (local_dc) {\n          ptimer_measure(pt);\nLAB_00133d9f:\n          local_110 = ptimer_read(pt);\n        }\n        else if ((opt.limit_rate != 0) || (local_da)) {\n          ptimer_measure(pt);\n          if ((int)uVar7 < 1) goto LAB_00133ea0;\n          goto LAB_00133d9f;\n        }\n        uVar14 = uVar14 + (long)(int)uVar7;\n        if (buf_00 == (double *)0x0) {\n          uVar6 = write_data(out,out2,(char *)buf,uVar7,&skip,&sum_written);\n          if ((int)uVar6 < 0) goto LAB_00133a74;\n        }\n        else {\n          uVar6 = write_data((FILE *)0x0,out2,(char *)buf,uVar7,(wgint *)0x0,(wgint *)0x0);\n          if ((int)uVar6 < 0) goto LAB_00133a74;\n          gzstream.next_in = buf;\n          gzstream.avail_in = uVar7;\n          do {\n            gzstream.avail_out = 0x8000;\n            gzstream.next_out = (Bytef *)buf_00;\n            iVar5 = inflate(&gzstream,0);\n            if (iVar5 == -3) {\nLAB_00133b59:\n              piVar9 = __errno_location();\n              *piVar9 = 0x16;\n              uVar6 = 0xffffffff;\n              goto LAB_00133a74;\n            }\n            if (iVar5 < -2) {\n              if (iVar5 == -4) {\n                piVar9 = __errno_location();\n                *piVar9 = 0xc;\n                uVar6 = 0xffffffff;\n                goto LAB_00133a74;\n              }\n            }\n            else if (iVar5 == 1) {\n              if (((toread != uVar14) && (uVar3 != 0)) && (opt.debug != false)) {\n                debug_logprintf("zlib stream ended unexpectedly after %ld/%ld bytes\n",uVar14,toread\n                               );\n              }\n            }\n            else if (iVar5 == 2) goto LAB_00133b59;\n            uVar6 = write_data(out,(FILE *)0x0,(char *)buf_00,0x8000 - gzstream.avail_out,&skip,\n                               &sum_written);\n            if ((int)uVar6 < 0) goto LAB_00133a74;\n          } while (gzstream.avail_out == 0);\n        }\n        if (((flags & 4U) != 0) && (uVar13 = uVar13 - (long)(int)uVar7, uVar13 == 0)) {\n          pcVar8 = fd_read_line(fd);\n          if (pcVar8 == (char *)0x0) {\n            uVar7 = 0xffffffff;\n            break;\n          }\n          if (out2 != (FILE *)0x0) {\n            uVar11 = 0xffffffffffffffff;\n            pcVar12 = pcVar8;\n            do {\n              if (uVar11 == 0) break;\n              uVar11 = uVar11 - 1;\n              cVar1 = *pcVar12;\n              pcVar12 = pcVar12 + (ulong)bVar15 * -2 + 1;\n            } while (cVar1 != '\0');\n            fwrite(pcVar8,1,~uVar11 - 1,(FILE *)out2);\n          }\n          free(pcVar8);\n        }\nLAB_00133ea0:\n        if (opt.limit_rate != 0) {\n          dVar17 = ptimer_read(pt);\n          dVar16 = limit_data.sleep_adjust;\n          dVar17 = dVar17 - limit_data.chunk_start;\n          limit_data.chunk_bytes = (int)uVar7 + limit_data.chunk_bytes;\n          if (dVar17 < (double)limit_data.chunk_bytes / (double)opt.limit_rate) {\n            seconds = ((double)limit_data.chunk_bytes / (double)opt.limit_rate - dVar17) +\n                      limit_data.sleep_adjust;\n            if (seconds < _DAT_0015c908) {\n              if (opt.debug != false) {\n                pcVar8 = number_to_static_string(limit_data.chunk_bytes);\n                debug_logprintf("deferring a %.2f ms sleep (%s/%.2f).\n",seconds * DAT_0015d650,\n                                dVar17,pcVar8);\n              }\n              goto LAB_00133eae;\n            }\n            if (opt.debug != false) {\n              pcVar8 = number_to_static_string(limit_data.chunk_bytes);\n              debug_logprintf("\nsleeping %.2f ms for %s bytes, adjust %.2f ms\n",\n                              seconds * DAT_0015d650,dVar16,pcVar8);\n            }\n            dVar16 = ptimer_read(pt);\n            xsleep(seconds);\n            dVar17 = ptimer_measure(pt);\n            limit_data.sleep_adjust = seconds - (dVar17 - dVar16);\n            if (limit_data.sleep_adjust <= _DAT_0015c710) {\n              if (limit_data.sleep_adjust < DAT_0015d658) {\n                limit_data.sleep_adjust = DAT_0015d658;\n              }\n            }\n            else {\n              limit_data.sleep_adjust = _DAT_0015c710;\n            }\n          }\n          limit_data.chunk_bytes = 0;\n          limit_data.chunk_start = ptimer_read(pt);\n        }\n      }" { (expression_statement "uVar7 = fd_read(fd,(char *)buf,(int)uVar11,dVar16);" (assignment_expression "uVar7 = fd_read(fd,(char *)buf,(int)uVar11,dVar16)" identifier = (call_expression "fd_read(fd,(char *)buf,(int)uVar11,dVar16)" identifier (argument_list "(fd,(char *)buf,(int)uVar11,dVar16)" ( identifier , (cast_expression "(char *)buf" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(int)uVar11" ( (type_descriptor "int" primitive_type) ) identifier) , identifier )))) ;) (labeled_statement "LAB_00133e68:\n        if ((int)uVar7 < 1) break;" statement_identifier : (if_statement "if ((int)uVar7 < 1) break;" if (parenthesized_expression "((int)uVar7 < 1)" ( (binary_expression "(int)uVar7 < 1" (cast_expression "(int)uVar7" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (break_statement "break;" break ;))) (if_statement "if (local_dc) {\n          ptimer_measure(pt);\nLAB_00133d9f:\n          local_110 = ptimer_read(pt);\n        }\n        else if ((opt.limit_rate != 0) || (local_da)) {\n          ptimer_measure(pt);\n          if ((int)uVar7 < 1) goto LAB_00133ea0;\n          goto LAB_00133d9f;\n        }" if (parenthesized_expression "(local_dc)" ( identifier )) (compound_statement "{\n          ptimer_measure(pt);\nLAB_00133d9f:\n          local_110 = ptimer_read(pt);\n        }" { (expression_statement "ptimer_measure(pt);" (call_expression "ptimer_measure(pt)" identifier (argument_list "(pt)" ( identifier ))) ;) (labeled_statement "LAB_00133d9f:\n          local_110 = ptimer_read(pt);" statement_identifier : (expression_statement "local_110 = ptimer_read(pt);" (assignment_expression "local_110 = ptimer_read(pt)" identifier = (call_expression "ptimer_read(pt)" identifier (argument_list "(pt)" ( identifier )))) ;)) }) (else_clause "else if ((opt.limit_rate != 0) || (local_da)) {\n          ptimer_measure(pt);\n          if ((int)uVar7 < 1) goto LAB_00133ea0;\n          goto LAB_00133d9f;\n        }" else (if_statement "if ((opt.limit_rate != 0) || (local_da)) {\n          ptimer_measure(pt);\n          if ((int)uVar7 < 1) goto LAB_00133ea0;\n          goto LAB_00133d9f;\n        }" if (parenthesized_expression "((opt.limit_rate != 0) || (local_da))" ( (binary_expression "(opt.limit_rate != 0) || (local_da)" (parenthesized_expression "(opt.limit_rate != 0)" ( (binary_expression "opt.limit_rate != 0" (field_expression "opt.limit_rate" identifier . field_identifier) != number_literal) )) || (parenthesized_expression "(local_da)" ( identifier ))) )) (compound_statement "{\n          ptimer_measure(pt);\n          if ((int)uVar7 < 1) goto LAB_00133ea0;\n          goto LAB_00133d9f;\n        }" { (expression_statement "ptimer_measure(pt);" (call_expression "ptimer_measure(pt)" identifier (argument_list "(pt)" ( identifier ))) ;) (if_statement "if ((int)uVar7 < 1) goto LAB_00133ea0;" if (parenthesized_expression "((int)uVar7 < 1)" ( (binary_expression "(int)uVar7 < 1" (cast_expression "(int)uVar7" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_00133ea0;" goto statement_identifier ;)) (goto_statement "goto LAB_00133d9f;" goto statement_identifier ;) })))) (expression_statement "uVar14 = uVar14 + (long)(int)uVar7;" (assignment_expression "uVar14 = uVar14 + (long)(int)uVar7" identifier = (binary_expression "uVar14 + (long)(int)uVar7" identifier + (cast_expression "(long)(int)uVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)uVar7" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (if_statement "if (buf_00 == (double *)0x0) {\n          uVar6 = write_data(out,out2,(char *)buf,uVar7,&skip,&sum_written);\n          if ((int)uVar6 < 0) goto LAB_00133a74;\n        }\n        else {\n          uVar6 = write_data((FILE *)0x0,out2,(char *)buf,uVar7,(wgint *)0x0,(wgint *)0x0);\n          if ((int)uVar6 < 0) goto LAB_00133a74;\n          gzstream.next_in = buf;\n          gzstream.avail_in = uVar7;\n          do {\n            gzstream.avail_out = 0x8000;\n            gzstream.next_out = (Bytef *)buf_00;\n            iVar5 = inflate(&gzstream,0);\n            if (iVar5 == -3) {\nLAB_00133b59:\n              piVar9 = __errno_location();\n              *piVar9 = 0x16;\n              uVar6 = 0xffffffff;\n              goto LAB_00133a74;\n            }\n            if (iVar5 < -2) {\n              if (iVar5 == -4) {\n                piVar9 = __errno_location();\n                *piVar9 = 0xc;\n                uVar6 = 0xffffffff;\n                goto LAB_00133a74;\n              }\n            }\n            else if (iVar5 == 1) {\n              if (((toread != uVar14) && (uVar3 != 0)) && (opt.debug != false)) {\n                debug_logprintf("zlib stream ended unexpectedly after %ld/%ld bytes\n",uVar14,toread\n                               );\n              }\n            }\n            else if (iVar5 == 2) goto LAB_00133b59;\n            uVar6 = write_data(out,(FILE *)0x0,(char *)buf_00,0x8000 - gzstream.avail_out,&skip,\n                               &sum_written);\n            if ((int)uVar6 < 0) goto LAB_00133a74;\n          } while (gzstream.avail_out == 0);\n        }" if (parenthesized_expression "(buf_00 == (double *)0x0)" ( (binary_expression "buf_00 == (double *)0x0" identifier == (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          uVar6 = write_data(out,out2,(char *)buf,uVar7,&skip,&sum_written);\n          if ((int)uVar6 < 0) goto LAB_00133a74;\n        }" { (expression_statement "uVar6 = write_data(out,out2,(char *)buf,uVar7,&skip,&sum_written);" (assignment_expression "uVar6 = write_data(out,out2,(char *)buf,uVar7,&skip,&sum_written)" identifier = (call_expression "write_data(out,out2,(char *)buf,uVar7,&skip,&sum_written)" identifier (argument_list "(out,out2,(char *)buf,uVar7,&skip,&sum_written)" ( identifier , identifier , (cast_expression "(char *)buf" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier , (pointer_expression "&skip" & identifier) , (pointer_expression "&sum_written" & identifier) )))) ;) (if_statement "if ((int)uVar6 < 0) goto LAB_00133a74;" if (parenthesized_expression "((int)uVar6 < 0)" ( (binary_expression "(int)uVar6 < 0" (cast_expression "(int)uVar6" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_00133a74;" goto statement_identifier ;)) }) (else_clause "else {\n          uVar6 = write_data((FILE *)0x0,out2,(char *)buf,uVar7,(wgint *)0x0,(wgint *)0x0);\n          if ((int)uVar6 < 0) goto LAB_00133a74;\n          gzstream.next_in = buf;\n          gzstream.avail_in = uVar7;\n          do {\n            gzstream.avail_out = 0x8000;\n            gzstream.next_out = (Bytef *)buf_00;\n            iVar5 = inflate(&gzstream,0);\n            if (iVar5 == -3) {\nLAB_00133b59:\n              piVar9 = __errno_location();\n              *piVar9 = 0x16;\n              uVar6 = 0xffffffff;\n              goto LAB_00133a74;\n            }\n            if (iVar5 < -2) {\n              if (iVar5 == -4) {\n                piVar9 = __errno_location();\n                *piVar9 = 0xc;\n                uVar6 = 0xffffffff;\n                goto LAB_00133a74;\n              }\n            }\n            else if (iVar5 == 1) {\n              if (((toread != uVar14) && (uVar3 != 0)) && (opt.debug != false)) {\n                debug_logprintf("zlib stream ended unexpectedly after %ld/%ld bytes\n",uVar14,toread\n                               );\n              }\n            }\n            else if (iVar5 == 2) goto LAB_00133b59;\n            uVar6 = write_data(out,(FILE *)0x0,(char *)buf_00,0x8000 - gzstream.avail_out,&skip,\n                               &sum_written);\n            if ((int)uVar6 < 0) goto LAB_00133a74;\n          } while (gzstream.avail_out == 0);\n        }" else (compound_statement "{\n          uVar6 = write_data((FILE *)0x0,out2,(char *)buf,uVar7,(wgint *)0x0,(wgint *)0x0);\n          if ((int)uVar6 < 0) goto LAB_00133a74;\n          gzstream.next_in = buf;\n          gzstream.avail_in = uVar7;\n          do {\n            gzstream.avail_out = 0x8000;\n            gzstream.next_out = (Bytef *)buf_00;\n            iVar5 = inflate(&gzstream,0);\n            if (iVar5 == -3) {\nLAB_00133b59:\n              piVar9 = __errno_location();\n              *piVar9 = 0x16;\n              uVar6 = 0xffffffff;\n              goto LAB_00133a74;\n            }\n            if (iVar5 < -2) {\n              if (iVar5 == -4) {\n                piVar9 = __errno_location();\n                *piVar9 = 0xc;\n                uVar6 = 0xffffffff;\n                goto LAB_00133a74;\n              }\n            }\n            else if (iVar5 == 1) {\n              if (((toread != uVar14) && (uVar3 != 0)) && (opt.debug != false)) {\n                debug_logprintf("zlib stream ended unexpectedly after %ld/%ld bytes\n",uVar14,toread\n                               );\n              }\n            }\n            else if (iVar5 == 2) goto LAB_00133b59;\n            uVar6 = write_data(out,(FILE *)0x0,(char *)buf_00,0x8000 - gzstream.avail_out,&skip,\n                               &sum_written);\n            if ((int)uVar6 < 0) goto LAB_00133a74;\n          } while (gzstream.avail_out == 0);\n        }" { (expression_statement "uVar6 = write_data((FILE *)0x0,out2,(char *)buf,uVar7,(wgint *)0x0,(wgint *)0x0);" (assignment_expression "uVar6 = write_data((FILE *)0x0,out2,(char *)buf,uVar7,(wgint *)0x0,(wgint *)0x0)" identifier = (call_expression "write_data((FILE *)0x0,out2,(char *)buf,uVar7,(wgint *)0x0,(wgint *)0x0)" identifier (argument_list "((FILE *)0x0,out2,(char *)buf,uVar7,(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) , 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) )))) ;) (if_statement "if ((int)uVar6 < 0) goto LAB_00133a74;" if (parenthesized_expression "((int)uVar6 < 0)" ( (binary_expression "(int)uVar6 < 0" (cast_expression "(int)uVar6" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_00133a74;" goto statement_identifier ;)) (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 = uVar7;" (assignment_expression "gzstream.avail_in = uVar7" (field_expression "gzstream.avail_in" identifier . field_identifier) = identifier) ;) (do_statement "do {\n            gzstream.avail_out = 0x8000;\n            gzstream.next_out = (Bytef *)buf_00;\n            iVar5 = inflate(&gzstream,0);\n            if (iVar5 == -3) {\nLAB_00133b59:\n              piVar9 = __errno_location();\n              *piVar9 = 0x16;\n              uVar6 = 0xffffffff;\n              goto LAB_00133a74;\n            }\n            if (iVar5 < -2) {\n              if (iVar5 == -4) {\n                piVar9 = __errno_location();\n                *piVar9 = 0xc;\n                uVar6 = 0xffffffff;\n                goto LAB_00133a74;\n              }\n            }\n            else if (iVar5 == 1) {\n              if (((toread != uVar14) && (uVar3 != 0)) && (opt.debug != false)) {\n                debug_logprintf("zlib stream ended unexpectedly after %ld/%ld bytes\n",uVar14,toread\n                               );\n              }\n            }\n            else if (iVar5 == 2) goto LAB_00133b59;\n            uVar6 = write_data(out,(FILE *)0x0,(char *)buf_00,0x8000 - gzstream.avail_out,&skip,\n                               &sum_written);\n            if ((int)uVar6 < 0) goto LAB_00133a74;\n          } while (gzstream.avail_out == 0);" do (compound_statement "{\n            gzstream.avail_out = 0x8000;\n            gzstream.next_out = (Bytef *)buf_00;\n            iVar5 = inflate(&gzstream,0);\n            if (iVar5 == -3) {\nLAB_00133b59:\n              piVar9 = __errno_location();\n              *piVar9 = 0x16;\n              uVar6 = 0xffffffff;\n              goto LAB_00133a74;\n            }\n            if (iVar5 < -2) {\n              if (iVar5 == -4) {\n                piVar9 = __errno_location();\n                *piVar9 = 0xc;\n                uVar6 = 0xffffffff;\n                goto LAB_00133a74;\n              }\n            }\n            else if (iVar5 == 1) {\n              if (((toread != uVar14) && (uVar3 != 0)) && (opt.debug != false)) {\n                debug_logprintf("zlib stream ended unexpectedly after %ld/%ld bytes\n",uVar14,toread\n                               );\n              }\n            }\n            else if (iVar5 == 2) goto LAB_00133b59;\n            uVar6 = write_data(out,(FILE *)0x0,(char *)buf_00,0x8000 - gzstream.avail_out,&skip,\n                               &sum_written);\n            if ((int)uVar6 < 0) goto LAB_00133a74;\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 = (Bytef *)buf_00;" (assignment_expression "gzstream.next_out = (Bytef *)buf_00" (field_expression "gzstream.next_out" identifier . field_identifier) = (cast_expression "(Bytef *)buf_00" ( (type_descriptor "Bytef *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "iVar5 = inflate(&gzstream,0);" (assignment_expression "iVar5 = inflate(&gzstream,0)" identifier = (call_expression "inflate(&gzstream,0)" identifier (argument_list "(&gzstream,0)" ( (pointer_expression "&gzstream" & identifier) , number_literal )))) ;) (if_statement "if (iVar5 == -3) {\nLAB_00133b59:\n              piVar9 = __errno_location();\n              *piVar9 = 0x16;\n              uVar6 = 0xffffffff;\n              goto LAB_00133a74;\n            }" if (parenthesized_expression "(iVar5 == -3)" ( (binary_expression "iVar5 == -3" identifier == number_literal) )) (compound_statement "{\nLAB_00133b59:\n              piVar9 = __errno_location();\n              *piVar9 = 0x16;\n              uVar6 = 0xffffffff;\n              goto LAB_00133a74;\n            }" { (labeled_statement "LAB_00133b59:\n              piVar9 = __errno_location();" statement_identifier : (expression_statement "piVar9 = __errno_location();" (assignment_expression "piVar9 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;)) (expression_statement "*piVar9 = 0x16;" (assignment_expression "*piVar9 = 0x16" (pointer_expression "*piVar9" * identifier) = number_literal) ;) (expression_statement "uVar6 = 0xffffffff;" (assignment_expression "uVar6 = 0xffffffff" identifier = number_literal) ;) (goto_statement "goto LAB_00133a74;" goto statement_identifier ;) })) (if_statement "if (iVar5 < -2) {\n              if (iVar5 == -4) {\n                piVar9 = __errno_location();\n                *piVar9 = 0xc;\n                uVar6 = 0xffffffff;\n                goto LAB_00133a74;\n              }\n            }\n            else if (iVar5 == 1) {\n              if (((toread != uVar14) && (uVar3 != 0)) && (opt.debug != false)) {\n                debug_logprintf("zlib stream ended unexpectedly after %ld/%ld bytes\n",uVar14,toread\n                               );\n              }\n            }\n            else if (iVar5 == 2) goto LAB_00133b59;" if (parenthesized_expression "(iVar5 < -2)" ( (binary_expression "iVar5 < -2" identifier < number_literal) )) (compound_statement "{\n              if (iVar5 == -4) {\n                piVar9 = __errno_location();\n                *piVar9 = 0xc;\n                uVar6 = 0xffffffff;\n                goto LAB_00133a74;\n              }\n            }" { (if_statement "if (iVar5 == -4) {\n                piVar9 = __errno_location();\n                *piVar9 = 0xc;\n                uVar6 = 0xffffffff;\n                goto LAB_00133a74;\n              }" if (parenthesized_expression "(iVar5 == -4)" ( (binary_expression "iVar5 == -4" identifier == number_literal) )) (compound_statement "{\n                piVar9 = __errno_location();\n                *piVar9 = 0xc;\n                uVar6 = 0xffffffff;\n                goto LAB_00133a74;\n              }" { (expression_statement "piVar9 = __errno_location();" (assignment_expression "piVar9 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "*piVar9 = 0xc;" (assignment_expression "*piVar9 = 0xc" (pointer_expression "*piVar9" * identifier) = number_literal) ;) (expression_statement "uVar6 = 0xffffffff;" (assignment_expression "uVar6 = 0xffffffff" identifier = number_literal) ;) (goto_statement "goto LAB_00133a74;" goto statement_identifier ;) })) }) (else_clause "else if (iVar5 == 1) {\n              if (((toread != uVar14) && (uVar3 != 0)) && (opt.debug != false)) {\n                debug_logprintf("zlib stream ended unexpectedly after %ld/%ld bytes\n",uVar14,toread\n                               );\n              }\n            }\n            else if (iVar5 == 2) goto LAB_00133b59;" else (if_statement "if (iVar5 == 1) {\n              if (((toread != uVar14) && (uVar3 != 0)) && (opt.debug != false)) {\n                debug_logprintf("zlib stream ended unexpectedly after %ld/%ld bytes\n",uVar14,toread\n                               );\n              }\n            }\n            else if (iVar5 == 2) goto LAB_00133b59;" if (parenthesized_expression "(iVar5 == 1)" ( (binary_expression "iVar5 == 1" identifier == number_literal) )) (compound_statement "{\n              if (((toread != uVar14) && (uVar3 != 0)) && (opt.debug != false)) {\n                debug_logprintf("zlib stream ended unexpectedly after %ld/%ld bytes\n",uVar14,toread\n                               );\n              }\n            }" { (if_statement "if (((toread != uVar14) && (uVar3 != 0)) && (opt.debug != false)) {\n                debug_logprintf("zlib stream ended unexpectedly after %ld/%ld bytes\n",uVar14,toread\n                               );\n              }" if (parenthesized_expression "(((toread != uVar14) && (uVar3 != 0)) && (opt.debug != false))" ( (binary_expression "((toread != uVar14) && (uVar3 != 0)) && (opt.debug != false)" (parenthesized_expression "((toread != uVar14) && (uVar3 != 0))" ( (binary_expression "(toread != uVar14) && (uVar3 != 0)" (parenthesized_expression "(toread != uVar14)" ( (binary_expression "toread != uVar14" identifier != identifier) )) && (parenthesized_expression "(uVar3 != 0)" ( (binary_expression "uVar3 != 0" identifier != number_literal) ))) )) && (parenthesized_expression "(opt.debug != false)" ( (binary_expression "opt.debug != false" (field_expression "opt.debug" identifier . field_identifier) != false) ))) )) (compound_statement "{\n                debug_logprintf("zlib stream ended unexpectedly after %ld/%ld bytes\n",uVar14,toread\n                               );\n              }" { (expression_statement "debug_logprintf("zlib stream ended unexpectedly after %ld/%ld bytes\n",uVar14,toread\n                               );" (call_expression "debug_logprintf("zlib stream ended unexpectedly after %ld/%ld bytes\n",uVar14,toread\n                               )" identifier (argument_list "("zlib stream ended unexpectedly after %ld/%ld bytes\n",uVar14,toread\n                               )" ( (string_literal ""zlib stream ended unexpectedly after %ld/%ld bytes\n"" " string_content escape_sequence ") , identifier , identifier ))) ;) })) }) (else_clause "else if (iVar5 == 2) goto LAB_00133b59;" else (if_statement "if (iVar5 == 2) goto LAB_00133b59;" if (parenthesized_expression "(iVar5 == 2)" ( (binary_expression "iVar5 == 2" identifier == number_literal) )) (goto_statement "goto LAB_00133b59;" goto statement_identifier ;)))))) (expression_statement "uVar6 = write_data(out,(FILE *)0x0,(char *)buf_00,0x8000 - gzstream.avail_out,&skip,\n                               &sum_written);" (assignment_expression "uVar6 = write_data(out,(FILE *)0x0,(char *)buf_00,0x8000 - gzstream.avail_out,&skip,\n                               &sum_written)" identifier = (call_expression "write_data(out,(FILE *)0x0,(char *)buf_00,0x8000 - gzstream.avail_out,&skip,\n                               &sum_written)" identifier (argument_list "(out,(FILE *)0x0,(char *)buf_00,0x8000 - gzstream.avail_out,&skip,\n                               &sum_written)" ( identifier , (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(char *)buf_00" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (binary_expression "0x8000 - gzstream.avail_out" number_literal - (field_expression "gzstream.avail_out" identifier . field_identifier)) , (pointer_expression "&skip" & identifier) , (pointer_expression "&sum_written" & identifier) )))) ;) (if_statement "if ((int)uVar6 < 0) goto LAB_00133a74;" if (parenthesized_expression "((int)uVar6 < 0)" ( (binary_expression "(int)uVar6 < 0" (cast_expression "(int)uVar6" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_00133a74;" 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 (((flags & 4U) != 0) && (uVar13 = uVar13 - (long)(int)uVar7, uVar13 == 0)) {\n          pcVar8 = fd_read_line(fd);\n          if (pcVar8 == (char *)0x0) {\n            uVar7 = 0xffffffff;\n            break;\n          }\n          if (out2 != (FILE *)0x0) {\n            uVar11 = 0xffffffffffffffff;\n            pcVar12 = pcVar8;\n            do {\n              if (uVar11 == 0) break;\n              uVar11 = uVar11 - 1;\n              cVar1 = *pcVar12;\n              pcVar12 = pcVar12 + (ulong)bVar15 * -2 + 1;\n            } while (cVar1 != '\0');\n            fwrite(pcVar8,1,~uVar11 - 1,(FILE *)out2);\n          }\n          free(pcVar8);\n        }" if (parenthesized_expression "(((flags & 4U) != 0) && (uVar13 = uVar13 - (long)(int)uVar7, uVar13 == 0))" ( (binary_expression "((flags & 4U) != 0) && (uVar13 = uVar13 - (long)(int)uVar7, uVar13 == 0)" (parenthesized_expression "((flags & 4U) != 0)" ( (binary_expression "(flags & 4U) != 0" (parenthesized_expression "(flags & 4U)" ( (binary_expression "flags & 4U" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(uVar13 = uVar13 - (long)(int)uVar7, uVar13 == 0)" ( (comma_expression "uVar13 = uVar13 - (long)(int)uVar7, uVar13 == 0" (assignment_expression "uVar13 = uVar13 - (long)(int)uVar7" identifier = (binary_expression "uVar13 - (long)(int)uVar7" identifier - (cast_expression "(long)(int)uVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)uVar7" ( (type_descriptor "int" primitive_type) ) identifier)))) , (binary_expression "uVar13 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n          pcVar8 = fd_read_line(fd);\n          if (pcVar8 == (char *)0x0) {\n            uVar7 = 0xffffffff;\n            break;\n          }\n          if (out2 != (FILE *)0x0) {\n            uVar11 = 0xffffffffffffffff;\n            pcVar12 = pcVar8;\n            do {\n              if (uVar11 == 0) break;\n              uVar11 = uVar11 - 1;\n              cVar1 = *pcVar12;\n              pcVar12 = pcVar12 + (ulong)bVar15 * -2 + 1;\n            } while (cVar1 != '\0');\n            fwrite(pcVar8,1,~uVar11 - 1,(FILE *)out2);\n          }\n          free(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 )))) ;) (if_statement "if (pcVar8 == (char *)0x0) {\n            uVar7 = 0xffffffff;\n            break;\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            uVar7 = 0xffffffff;\n            break;\n          }" { (expression_statement "uVar7 = 0xffffffff;" (assignment_expression "uVar7 = 0xffffffff" identifier = number_literal) ;) (break_statement "break;" break ;) })) (if_statement "if (out2 != (FILE *)0x0) {\n            uVar11 = 0xffffffffffffffff;\n            pcVar12 = pcVar8;\n            do {\n              if (uVar11 == 0) break;\n              uVar11 = uVar11 - 1;\n              cVar1 = *pcVar12;\n              pcVar12 = pcVar12 + (ulong)bVar15 * -2 + 1;\n            } while (cVar1 != '\0');\n            fwrite(pcVar8,1,~uVar11 - 1,(FILE *)out2);\n          }" if (parenthesized_expression "(out2 != (FILE *)0x0)" ( (binary_expression "out2 != (FILE *)0x0" identifier != (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            uVar11 = 0xffffffffffffffff;\n            pcVar12 = pcVar8;\n            do {\n              if (uVar11 == 0) break;\n              uVar11 = uVar11 - 1;\n              cVar1 = *pcVar12;\n              pcVar12 = pcVar12 + (ulong)bVar15 * -2 + 1;\n            } while (cVar1 != '\0');\n            fwrite(pcVar8,1,~uVar11 - 1,(FILE *)out2);\n          }" { (expression_statement "uVar11 = 0xffffffffffffffff;" (assignment_expression "uVar11 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar12 = pcVar8;" (assignment_expression "pcVar12 = pcVar8" identifier = identifier) ;) (do_statement "do {\n              if (uVar11 == 0) break;\n              uVar11 = uVar11 - 1;\n              cVar1 = *pcVar12;\n              pcVar12 = pcVar12 + (ulong)bVar15 * -2 + 1;\n            } while (cVar1 != '\0');" do (compound_statement "{\n              if (uVar11 == 0) break;\n              uVar11 = uVar11 - 1;\n              cVar1 = *pcVar12;\n              pcVar12 = pcVar12 + (ulong)bVar15 * -2 + 1;\n            }" { (if_statement "if (uVar11 == 0) break;" if (parenthesized_expression "(uVar11 == 0)" ( (binary_expression "uVar11 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar11 = uVar11 - 1;" (assignment_expression "uVar11 = uVar11 - 1" identifier = (binary_expression "uVar11 - 1" identifier - number_literal)) ;) (expression_statement "cVar1 = *pcVar12;" (assignment_expression "cVar1 = *pcVar12" identifier = (pointer_expression "*pcVar12" * identifier)) ;) (expression_statement "pcVar12 = pcVar12 + (ulong)bVar15 * -2 + 1;" (assignment_expression "pcVar12 = pcVar12 + (ulong)bVar15 * -2 + 1" identifier = (binary_expression "pcVar12 + (ulong)bVar15 * -2 + 1" (binary_expression "pcVar12 + (ulong)bVar15 * -2" identifier + (binary_expression "(ulong)bVar15 * -2" (cast_expression "(ulong)bVar15" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar1 != '\0')" ( (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "fwrite(pcVar8,1,~uVar11 - 1,(FILE *)out2);" (call_expression "fwrite(pcVar8,1,~uVar11 - 1,(FILE *)out2)" identifier (argument_list "(pcVar8,1,~uVar11 - 1,(FILE *)out2)" ( identifier , number_literal , (binary_expression "~uVar11 - 1" (unary_expression "~uVar11" ~ identifier) - number_literal) , (cast_expression "(FILE *)out2" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) })) (expression_statement "free(pcVar8);" (call_expression "free(pcVar8)" identifier (argument_list "(pcVar8)" ( identifier ))) ;) })) (labeled_statement "LAB_00133ea0:\n        if (opt.limit_rate != 0) {\n          dVar17 = ptimer_read(pt);\n          dVar16 = limit_data.sleep_adjust;\n          dVar17 = dVar17 - limit_data.chunk_start;\n          limit_data.chunk_bytes = (int)uVar7 + limit_data.chunk_bytes;\n          if (dVar17 < (double)limit_data.chunk_bytes / (double)opt.limit_rate) {\n            seconds = ((double)limit_data.chunk_bytes / (double)opt.limit_rate - dVar17) +\n                      limit_data.sleep_adjust;\n            if (seconds < _DAT_0015c908) {\n              if (opt.debug != false) {\n                pcVar8 = number_to_static_string(limit_data.chunk_bytes);\n                debug_logprintf("deferring a %.2f ms sleep (%s/%.2f).\n",seconds * DAT_0015d650,\n                                dVar17,pcVar8);\n              }\n              goto LAB_00133eae;\n            }\n            if (opt.debug != false) {\n              pcVar8 = number_to_static_string(limit_data.chunk_bytes);\n              debug_logprintf("\nsleeping %.2f ms for %s bytes, adjust %.2f ms\n",\n                              seconds * DAT_0015d650,dVar16,pcVar8);\n            }\n            dVar16 = ptimer_read(pt);\n            xsleep(seconds);\n            dVar17 = ptimer_measure(pt);\n            limit_data.sleep_adjust = seconds - (dVar17 - dVar16);\n            if (limit_data.sleep_adjust <= _DAT_0015c710) {\n              if (limit_data.sleep_adjust < DAT_0015d658) {\n                limit_data.sleep_adjust = DAT_0015d658;\n              }\n            }\n            else {\n              limit_data.sleep_adjust = _DAT_0015c710;\n            }\n          }\n          limit_data.chunk_bytes = 0;\n          limit_data.chunk_start = ptimer_read(pt);\n        }" statement_identifier : (if_statement "if (opt.limit_rate != 0) {\n          dVar17 = ptimer_read(pt);\n          dVar16 = limit_data.sleep_adjust;\n          dVar17 = dVar17 - limit_data.chunk_start;\n          limit_data.chunk_bytes = (int)uVar7 + limit_data.chunk_bytes;\n          if (dVar17 < (double)limit_data.chunk_bytes / (double)opt.limit_rate) {\n            seconds = ((double)limit_data.chunk_bytes / (double)opt.limit_rate - dVar17) +\n                      limit_data.sleep_adjust;\n            if (seconds < _DAT_0015c908) {\n              if (opt.debug != false) {\n                pcVar8 = number_to_static_string(limit_data.chunk_bytes);\n                debug_logprintf("deferring a %.2f ms sleep (%s/%.2f).\n",seconds * DAT_0015d650,\n                                dVar17,pcVar8);\n              }\n              goto LAB_00133eae;\n            }\n            if (opt.debug != false) {\n              pcVar8 = number_to_static_string(limit_data.chunk_bytes);\n              debug_logprintf("\nsleeping %.2f ms for %s bytes, adjust %.2f ms\n",\n                              seconds * DAT_0015d650,dVar16,pcVar8);\n            }\n            dVar16 = ptimer_read(pt);\n            xsleep(seconds);\n            dVar17 = ptimer_measure(pt);\n            limit_data.sleep_adjust = seconds - (dVar17 - dVar16);\n            if (limit_data.sleep_adjust <= _DAT_0015c710) {\n              if (limit_data.sleep_adjust < DAT_0015d658) {\n                limit_data.sleep_adjust = DAT_0015d658;\n              }\n            }\n            else {\n              limit_data.sleep_adjust = _DAT_0015c710;\n            }\n          }\n          limit_data.chunk_bytes = 0;\n          limit_data.chunk_start = ptimer_read(pt);\n        }" if (parenthesized_expression "(opt.limit_rate != 0)" ( (binary_expression "opt.limit_rate != 0" (field_expression "opt.limit_rate" identifier . field_identifier) != number_literal) )) (compound_statement "{\n          dVar17 = ptimer_read(pt);\n          dVar16 = limit_data.sleep_adjust;\n          dVar17 = dVar17 - limit_data.chunk_start;\n          limit_data.chunk_bytes = (int)uVar7 + limit_data.chunk_bytes;\n          if (dVar17 < (double)limit_data.chunk_bytes / (double)opt.limit_rate) {\n            seconds = ((double)limit_data.chunk_bytes / (double)opt.limit_rate - dVar17) +\n                      limit_data.sleep_adjust;\n            if (seconds < _DAT_0015c908) {\n              if (opt.debug != false) {\n                pcVar8 = number_to_static_string(limit_data.chunk_bytes);\n                debug_logprintf("deferring a %.2f ms sleep (%s/%.2f).\n",seconds * DAT_0015d650,\n                                dVar17,pcVar8);\n              }\n              goto LAB_00133eae;\n            }\n            if (opt.debug != false) {\n              pcVar8 = number_to_static_string(limit_data.chunk_bytes);\n              debug_logprintf("\nsleeping %.2f ms for %s bytes, adjust %.2f ms\n",\n                              seconds * DAT_0015d650,dVar16,pcVar8);\n            }\n            dVar16 = ptimer_read(pt);\n            xsleep(seconds);\n            dVar17 = ptimer_measure(pt);\n            limit_data.sleep_adjust = seconds - (dVar17 - dVar16);\n            if (limit_data.sleep_adjust <= _DAT_0015c710) {\n              if (limit_data.sleep_adjust < DAT_0015d658) {\n                limit_data.sleep_adjust = DAT_0015d658;\n              }\n            }\n            else {\n              limit_data.sleep_adjust = _DAT_0015c710;\n            }\n          }\n          limit_data.chunk_bytes = 0;\n          limit_data.chunk_start = ptimer_read(pt);\n        }" { (expression_statement "dVar17 = ptimer_read(pt);" (assignment_expression "dVar17 = ptimer_read(pt)" identifier = (call_expression "ptimer_read(pt)" identifier (argument_list "(pt)" ( identifier )))) ;) (expression_statement "dVar16 = limit_data.sleep_adjust;" (assignment_expression "dVar16 = limit_data.sleep_adjust" identifier = (field_expression "limit_data.sleep_adjust" identifier . field_identifier)) ;) (expression_statement "dVar17 = dVar17 - limit_data.chunk_start;" (assignment_expression "dVar17 = dVar17 - limit_data.chunk_start" identifier = (binary_expression "dVar17 - limit_data.chunk_start" identifier - (field_expression "limit_data.chunk_start" identifier . field_identifier))) ;) (expression_statement "limit_data.chunk_bytes = (int)uVar7 + limit_data.chunk_bytes;" (assignment_expression "limit_data.chunk_bytes = (int)uVar7 + limit_data.chunk_bytes" (field_expression "limit_data.chunk_bytes" identifier . field_identifier) = (binary_expression "(int)uVar7 + limit_data.chunk_bytes" (cast_expression "(int)uVar7" ( (type_descriptor "int" primitive_type) ) identifier) + (field_expression "limit_data.chunk_bytes" identifier . field_identifier))) ;) (if_statement "if (dVar17 < (double)limit_data.chunk_bytes / (double)opt.limit_rate) {\n            seconds = ((double)limit_data.chunk_bytes / (double)opt.limit_rate - dVar17) +\n                      limit_data.sleep_adjust;\n            if (seconds < _DAT_0015c908) {\n              if (opt.debug != false) {\n                pcVar8 = number_to_static_string(limit_data.chunk_bytes);\n                debug_logprintf("deferring a %.2f ms sleep (%s/%.2f).\n",seconds * DAT_0015d650,\n                                dVar17,pcVar8);\n              }\n              goto LAB_00133eae;\n            }\n            if (opt.debug != false) {\n              pcVar8 = number_to_static_string(limit_data.chunk_bytes);\n              debug_logprintf("\nsleeping %.2f ms for %s bytes, adjust %.2f ms\n",\n                              seconds * DAT_0015d650,dVar16,pcVar8);\n            }\n            dVar16 = ptimer_read(pt);\n            xsleep(seconds);\n            dVar17 = ptimer_measure(pt);\n            limit_data.sleep_adjust = seconds - (dVar17 - dVar16);\n            if (limit_data.sleep_adjust <= _DAT_0015c710) {\n              if (limit_data.sleep_adjust < DAT_0015d658) {\n                limit_data.sleep_adjust = DAT_0015d658;\n              }\n            }\n            else {\n              limit_data.sleep_adjust = _DAT_0015c710;\n            }\n          }" if (parenthesized_expression "(dVar17 < (double)limit_data.chunk_bytes / (double)opt.limit_rate)" ( (binary_expression "dVar17 < (double)limit_data.chunk_bytes / (double)opt.limit_rate" identifier < (binary_expression "(double)limit_data.chunk_bytes / (double)opt.limit_rate" (cast_expression "(double)limit_data.chunk_bytes" ( (type_descriptor "double" primitive_type) ) (field_expression "limit_data.chunk_bytes" identifier . field_identifier)) / (cast_expression "(double)opt.limit_rate" ( (type_descriptor "double" primitive_type) ) (field_expression "opt.limit_rate" identifier . field_identifier)))) )) (compound_statement "{\n            seconds = ((double)limit_data.chunk_bytes / (double)opt.limit_rate - dVar17) +\n                      limit_data.sleep_adjust;\n            if (seconds < _DAT_0015c908) {\n              if (opt.debug != false) {\n                pcVar8 = number_to_static_string(limit_data.chunk_bytes);\n                debug_logprintf("deferring a %.2f ms sleep (%s/%.2f).\n",seconds * DAT_0015d650,\n                                dVar17,pcVar8);\n              }\n              goto LAB_00133eae;\n            }\n            if (opt.debug != false) {\n              pcVar8 = number_to_static_string(limit_data.chunk_bytes);\n              debug_logprintf("\nsleeping %.2f ms for %s bytes, adjust %.2f ms\n",\n                              seconds * DAT_0015d650,dVar16,pcVar8);\n            }\n            dVar16 = ptimer_read(pt);\n            xsleep(seconds);\n            dVar17 = ptimer_measure(pt);\n            limit_data.sleep_adjust = seconds - (dVar17 - dVar16);\n            if (limit_data.sleep_adjust <= _DAT_0015c710) {\n              if (limit_data.sleep_adjust < DAT_0015d658) {\n                limit_data.sleep_adjust = DAT_0015d658;\n              }\n            }\n            else {\n              limit_data.sleep_adjust = _DAT_0015c710;\n            }\n          }" { (expression_statement "seconds = ((double)limit_data.chunk_bytes / (double)opt.limit_rate - dVar17) +\n                      limit_data.sleep_adjust;" (assignment_expression "seconds = ((double)limit_data.chunk_bytes / (double)opt.limit_rate - dVar17) +\n                      limit_data.sleep_adjust" identifier = (binary_expression "((double)limit_data.chunk_bytes / (double)opt.limit_rate - dVar17) +\n                      limit_data.sleep_adjust" (parenthesized_expression "((double)limit_data.chunk_bytes / (double)opt.limit_rate - dVar17)" ( (binary_expression "(double)limit_data.chunk_bytes / (double)opt.limit_rate - dVar17" (binary_expression "(double)limit_data.chunk_bytes / (double)opt.limit_rate" (cast_expression "(double)limit_data.chunk_bytes" ( (type_descriptor "double" primitive_type) ) (field_expression "limit_data.chunk_bytes" identifier . field_identifier)) / (cast_expression "(double)opt.limit_rate" ( (type_descriptor "double" primitive_type) ) (field_expression "opt.limit_rate" identifier . field_identifier))) - identifier) )) + (field_expression "limit_data.sleep_adjust" identifier . field_identifier))) ;) (if_statement "if (seconds < _DAT_0015c908) {\n              if (opt.debug != false) {\n                pcVar8 = number_to_static_string(limit_data.chunk_bytes);\n                debug_logprintf("deferring a %.2f ms sleep (%s/%.2f).\n",seconds * DAT_0015d650,\n                                dVar17,pcVar8);\n              }\n              goto LAB_00133eae;\n            }" if (parenthesized_expression "(seconds < _DAT_0015c908)" ( (binary_expression "seconds < _DAT_0015c908" identifier < identifier) )) (compound_statement "{\n              if (opt.debug != false) {\n                pcVar8 = number_to_static_string(limit_data.chunk_bytes);\n                debug_logprintf("deferring a %.2f ms sleep (%s/%.2f).\n",seconds * DAT_0015d650,\n                                dVar17,pcVar8);\n              }\n              goto LAB_00133eae;\n            }" { (if_statement "if (opt.debug != false) {\n                pcVar8 = number_to_static_string(limit_data.chunk_bytes);\n                debug_logprintf("deferring a %.2f ms sleep (%s/%.2f).\n",seconds * DAT_0015d650,\n                                dVar17,pcVar8);\n              }" if (parenthesized_expression "(opt.debug != false)" ( (binary_expression "opt.debug != false" (field_expression "opt.debug" identifier . field_identifier) != false) )) (compound_statement "{\n                pcVar8 = number_to_static_string(limit_data.chunk_bytes);\n                debug_logprintf("deferring a %.2f ms sleep (%s/%.2f).\n",seconds * DAT_0015d650,\n                                dVar17,pcVar8);\n              }" { (expression_statement "pcVar8 = number_to_static_string(limit_data.chunk_bytes);" (assignment_expression "pcVar8 = number_to_static_string(limit_data.chunk_bytes)" identifier = (call_expression "number_to_static_string(limit_data.chunk_bytes)" identifier (argument_list "(limit_data.chunk_bytes)" ( (field_expression "limit_data.chunk_bytes" identifier . field_identifier) )))) ;) (expression_statement "debug_logprintf("deferring a %.2f ms sleep (%s/%.2f).\n",seconds * DAT_0015d650,\n                                dVar17,pcVar8);" (call_expression "debug_logprintf("deferring a %.2f ms sleep (%s/%.2f).\n",seconds * DAT_0015d650,\n                                dVar17,pcVar8)" identifier (argument_list "("deferring a %.2f ms sleep (%s/%.2f).\n",seconds * DAT_0015d650,\n                                dVar17,pcVar8)" ( (string_literal ""deferring a %.2f ms sleep (%s/%.2f).\n"" " string_content escape_sequence ") , (binary_expression "seconds * DAT_0015d650" identifier * identifier) , identifier , identifier ))) ;) })) (goto_statement "goto LAB_00133eae;" goto statement_identifier ;) })) (if_statement "if (opt.debug != false) {\n              pcVar8 = number_to_static_string(limit_data.chunk_bytes);\n              debug_logprintf("\nsleeping %.2f ms for %s bytes, adjust %.2f ms\n",\n                              seconds * DAT_0015d650,dVar16,pcVar8);\n            }" if (parenthesized_expression "(opt.debug != false)" ( (binary_expression "opt.debug != false" (field_expression "opt.debug" identifier . field_identifier) != false) )) (compound_statement "{\n              pcVar8 = number_to_static_string(limit_data.chunk_bytes);\n              debug_logprintf("\nsleeping %.2f ms for %s bytes, adjust %.2f ms\n",\n                              seconds * DAT_0015d650,dVar16,pcVar8);\n            }" { (expression_statement "pcVar8 = number_to_static_string(limit_data.chunk_bytes);" (assignment_expression "pcVar8 = number_to_static_string(limit_data.chunk_bytes)" identifier = (call_expression "number_to_static_string(limit_data.chunk_bytes)" identifier (argument_list "(limit_data.chunk_bytes)" ( (field_expression "limit_data.chunk_bytes" identifier . field_identifier) )))) ;) (expression_statement "debug_logprintf("\nsleeping %.2f ms for %s bytes, adjust %.2f ms\n",\n                              seconds * DAT_0015d650,dVar16,pcVar8);" (call_expression "debug_logprintf("\nsleeping %.2f ms for %s bytes, adjust %.2f ms\n",\n                              seconds * DAT_0015d650,dVar16,pcVar8)" identifier (argument_list "("\nsleeping %.2f ms for %s bytes, adjust %.2f ms\n",\n                              seconds * DAT_0015d650,dVar16,pcVar8)" ( (string_literal ""\nsleeping %.2f ms for %s bytes, adjust %.2f ms\n"" " escape_sequence string_content escape_sequence ") , (binary_expression "seconds * DAT_0015d650" identifier * identifier) , identifier , identifier ))) ;) })) (expression_statement "dVar16 = ptimer_read(pt);" (assignment_expression "dVar16 = ptimer_read(pt)" identifier = (call_expression "ptimer_read(pt)" identifier (argument_list "(pt)" ( identifier )))) ;) (expression_statement "xsleep(seconds);" (call_expression "xsleep(seconds)" identifier (argument_list "(seconds)" ( identifier ))) ;) (expression_statement "dVar17 = ptimer_measure(pt);" (assignment_expression "dVar17 = ptimer_measure(pt)" identifier = (call_expression "ptimer_measure(pt)" identifier (argument_list "(pt)" ( identifier )))) ;) (expression_statement "limit_data.sleep_adjust = seconds - (dVar17 - dVar16);" (assignment_expression "limit_data.sleep_adjust = seconds - (dVar17 - dVar16)" (field_expression "limit_data.sleep_adjust" identifier . field_identifier) = (binary_expression "seconds - (dVar17 - dVar16)" identifier - (parenthesized_expression "(dVar17 - dVar16)" ( (binary_expression "dVar17 - dVar16" identifier - identifier) )))) ;) (if_statement "if (limit_data.sleep_adjust <= _DAT_0015c710) {\n              if (limit_data.sleep_adjust < DAT_0015d658) {\n                limit_data.sleep_adjust = DAT_0015d658;\n              }\n            }\n            else {\n              limit_data.sleep_adjust = _DAT_0015c710;\n            }" if (parenthesized_expression "(limit_data.sleep_adjust <= _DAT_0015c710)" ( (binary_expression "limit_data.sleep_adjust <= _DAT_0015c710" (field_expression "limit_data.sleep_adjust" identifier . field_identifier) <= identifier) )) (compound_statement "{\n              if (limit_data.sleep_adjust < DAT_0015d658) {\n                limit_data.sleep_adjust = DAT_0015d658;\n              }\n            }" { (if_statement "if (limit_data.sleep_adjust < DAT_0015d658) {\n                limit_data.sleep_adjust = DAT_0015d658;\n              }" if (parenthesized_expression "(limit_data.sleep_adjust < DAT_0015d658)" ( (binary_expression "limit_data.sleep_adjust < DAT_0015d658" (field_expression "limit_data.sleep_adjust" identifier . field_identifier) < identifier) )) (compound_statement "{\n                limit_data.sleep_adjust = DAT_0015d658;\n              }" { (expression_statement "limit_data.sleep_adjust = DAT_0015d658;" (assignment_expression "limit_data.sleep_adjust = DAT_0015d658" (field_expression "limit_data.sleep_adjust" identifier . field_identifier) = identifier) ;) })) }) (else_clause "else {\n              limit_data.sleep_adjust = _DAT_0015c710;\n            }" else (compound_statement "{\n              limit_data.sleep_adjust = _DAT_0015c710;\n            }" { (expression_statement "limit_data.sleep_adjust = _DAT_0015c710;" (assignment_expression "limit_data.sleep_adjust = _DAT_0015c710" (field_expression "limit_data.sleep_adjust" identifier . field_identifier) = identifier) ;) }))) })) (expression_statement "limit_data.chunk_bytes = 0;" (assignment_expression "limit_data.chunk_bytes = 0" (field_expression "limit_data.chunk_bytes" identifier . field_identifier) = number_literal) ;) (expression_statement "limit_data.chunk_start = ptimer_read(pt);" (assignment_expression "limit_data.chunk_start = ptimer_read(pt)" (field_expression "limit_data.chunk_start" identifier . field_identifier) = (call_expression "ptimer_read(pt)" identifier (argument_list "(pt)" ( identifier )))) ;) }))) }) (else_clause "else {\n        dVar16 = DAT_0015d648;\n        if (opt.read_timeout != 0.0) {\n          dVar17 = ptimer_read(pt);\n          dVar16 = DAT_0015d648;\n          if ((opt.read_timeout < (dVar17 - local_110) + DAT_0015d648) &&\n             (dVar16 = opt.read_timeout - (dVar17 - local_110), dVar16 < 0.0)) {\n            piVar9 = __errno_location();\n            *piVar9 = 0x6e;\n            uVar6 = 0xffffffff;\n            goto LAB_00133a74;\n          }\n        }\n        uVar7 = fd_read(fd,(char *)buf,(int)uVar11,dVar16);\n        if (-1 < (int)uVar7) goto LAB_00133e68;\n        piVar9 = __errno_location();\n        if (*piVar9 != 0x6e) break;\n        if (local_dc) {\n          ptimer_measure(pt);\n          uVar7 = 0;\n          goto LAB_00133ea0;\n        }\n        if ((opt.limit_rate != 0) || (local_da)) {\n          ptimer_measure(pt);\n          uVar7 = 0;\n          goto LAB_00133ea0;\n        }\n        uVar7 = 0;\n      }" else (compound_statement "{\n        dVar16 = DAT_0015d648;\n        if (opt.read_timeout != 0.0) {\n          dVar17 = ptimer_read(pt);\n          dVar16 = DAT_0015d648;\n          if ((opt.read_timeout < (dVar17 - local_110) + DAT_0015d648) &&\n             (dVar16 = opt.read_timeout - (dVar17 - local_110), dVar16 < 0.0)) {\n            piVar9 = __errno_location();\n            *piVar9 = 0x6e;\n            uVar6 = 0xffffffff;\n            goto LAB_00133a74;\n          }\n        }\n        uVar7 = fd_read(fd,(char *)buf,(int)uVar11,dVar16);\n        if (-1 < (int)uVar7) goto LAB_00133e68;\n        piVar9 = __errno_location();\n        if (*piVar9 != 0x6e) break;\n        if (local_dc) {\n          ptimer_measure(pt);\n          uVar7 = 0;\n          goto LAB_00133ea0;\n        }\n        if ((opt.limit_rate != 0) || (local_da)) {\n          ptimer_measure(pt);\n          uVar7 = 0;\n          goto LAB_00133ea0;\n        }\n        uVar7 = 0;\n      }" { (expression_statement "dVar16 = DAT_0015d648;" (assignment_expression "dVar16 = DAT_0015d648" identifier = identifier) ;) (if_statement "if (opt.read_timeout != 0.0) {\n          dVar17 = ptimer_read(pt);\n          dVar16 = DAT_0015d648;\n          if ((opt.read_timeout < (dVar17 - local_110) + DAT_0015d648) &&\n             (dVar16 = opt.read_timeout - (dVar17 - local_110), dVar16 < 0.0)) {\n            piVar9 = __errno_location();\n            *piVar9 = 0x6e;\n            uVar6 = 0xffffffff;\n            goto LAB_00133a74;\n          }\n        }" if (parenthesized_expression "(opt.read_timeout != 0.0)" ( (binary_expression "opt.read_timeout != 0.0" (field_expression "opt.read_timeout" identifier . field_identifier) != number_literal) )) (compound_statement "{\n          dVar17 = ptimer_read(pt);\n          dVar16 = DAT_0015d648;\n          if ((opt.read_timeout < (dVar17 - local_110) + DAT_0015d648) &&\n             (dVar16 = opt.read_timeout - (dVar17 - local_110), dVar16 < 0.0)) {\n            piVar9 = __errno_location();\n            *piVar9 = 0x6e;\n            uVar6 = 0xffffffff;\n            goto LAB_00133a74;\n          }\n        }" { (expression_statement "dVar17 = ptimer_read(pt);" (assignment_expression "dVar17 = ptimer_read(pt)" identifier = (call_expression "ptimer_read(pt)" identifier (argument_list "(pt)" ( identifier )))) ;) (expression_statement "dVar16 = DAT_0015d648;" (assignment_expression "dVar16 = DAT_0015d648" identifier = identifier) ;) (if_statement "if ((opt.read_timeout < (dVar17 - local_110) + DAT_0015d648) &&\n             (dVar16 = opt.read_timeout - (dVar17 - local_110), dVar16 < 0.0)) {\n            piVar9 = __errno_location();\n            *piVar9 = 0x6e;\n            uVar6 = 0xffffffff;\n            goto LAB_00133a74;\n          }" if (parenthesized_expression "((opt.read_timeout < (dVar17 - local_110) + DAT_0015d648) &&\n             (dVar16 = opt.read_timeout - (dVar17 - local_110), dVar16 < 0.0))" ( (binary_expression "(opt.read_timeout < (dVar17 - local_110) + DAT_0015d648) &&\n             (dVar16 = opt.read_timeout - (dVar17 - local_110), dVar16 < 0.0)" (parenthesized_expression "(opt.read_timeout < (dVar17 - local_110) + DAT_0015d648)" ( (binary_expression "opt.read_timeout < (dVar17 - local_110) + DAT_0015d648" (field_expression "opt.read_timeout" identifier . field_identifier) < (binary_expression "(dVar17 - local_110) + DAT_0015d648" (parenthesized_expression "(dVar17 - local_110)" ( (binary_expression "dVar17 - local_110" identifier - identifier) )) + identifier)) )) && (parenthesized_expression "(dVar16 = opt.read_timeout - (dVar17 - local_110), dVar16 < 0.0)" ( (comma_expression "dVar16 = opt.read_timeout - (dVar17 - local_110), dVar16 < 0.0" (assignment_expression "dVar16 = opt.read_timeout - (dVar17 - local_110)" identifier = (binary_expression "opt.read_timeout - (dVar17 - local_110)" (field_expression "opt.read_timeout" identifier . field_identifier) - (parenthesized_expression "(dVar17 - local_110)" ( (binary_expression "dVar17 - local_110" identifier - identifier) )))) , (binary_expression "dVar16 < 0.0" identifier < number_literal)) ))) )) (compound_statement "{\n            piVar9 = __errno_location();\n            *piVar9 = 0x6e;\n            uVar6 = 0xffffffff;\n            goto LAB_00133a74;\n          }" { (expression_statement "piVar9 = __errno_location();" (assignment_expression "piVar9 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "*piVar9 = 0x6e;" (assignment_expression "*piVar9 = 0x6e" (pointer_expression "*piVar9" * identifier) = number_literal) ;) (expression_statement "uVar6 = 0xffffffff;" (assignment_expression "uVar6 = 0xffffffff" identifier = number_literal) ;) (goto_statement "goto LAB_00133a74;" goto statement_identifier ;) })) })) (expression_statement "uVar7 = fd_read(fd,(char *)buf,(int)uVar11,dVar16);" (assignment_expression "uVar7 = fd_read(fd,(char *)buf,(int)uVar11,dVar16)" identifier = (call_expression "fd_read(fd,(char *)buf,(int)uVar11,dVar16)" identifier (argument_list "(fd,(char *)buf,(int)uVar11,dVar16)" ( identifier , (cast_expression "(char *)buf" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(int)uVar11" ( (type_descriptor "int" primitive_type) ) identifier) , identifier )))) ;) (if_statement "if (-1 < (int)uVar7) goto LAB_00133e68;" if (parenthesized_expression "(-1 < (int)uVar7)" ( (binary_expression "-1 < (int)uVar7" number_literal < (cast_expression "(int)uVar7" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_00133e68;" goto statement_identifier ;)) (expression_statement "piVar9 = __errno_location();" (assignment_expression "piVar9 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (if_statement "if (*piVar9 != 0x6e) break;" if (parenthesized_expression "(*piVar9 != 0x6e)" ( (binary_expression "*piVar9 != 0x6e" (pointer_expression "*piVar9" * identifier) != number_literal) )) (break_statement "break;" break ;)) (if_statement "if (local_dc) {\n          ptimer_measure(pt);\n          uVar7 = 0;\n          goto LAB_00133ea0;\n        }" if (parenthesized_expression "(local_dc)" ( identifier )) (compound_statement "{\n          ptimer_measure(pt);\n          uVar7 = 0;\n          goto LAB_00133ea0;\n        }" { (expression_statement "ptimer_measure(pt);" (call_expression "ptimer_measure(pt)" identifier (argument_list "(pt)" ( identifier ))) ;) (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00133ea0;" goto statement_identifier ;) })) (if_statement "if ((opt.limit_rate != 0) || (local_da)) {\n          ptimer_measure(pt);\n          uVar7 = 0;\n          goto LAB_00133ea0;\n        }" if (parenthesized_expression "((opt.limit_rate != 0) || (local_da))" ( (binary_expression "(opt.limit_rate != 0) || (local_da)" (parenthesized_expression "(opt.limit_rate != 0)" ( (binary_expression "opt.limit_rate != 0" (field_expression "opt.limit_rate" identifier . field_identifier) != number_literal) )) || (parenthesized_expression "(local_da)" ( identifier ))) )) (compound_statement "{\n          ptimer_measure(pt);\n          uVar7 = 0;\n          goto LAB_00133ea0;\n        }" { (expression_statement "ptimer_measure(pt);" (call_expression "ptimer_measure(pt)" identifier (argument_list "(pt)" ( identifier ))) ;) (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00133ea0;" goto statement_identifier ;) })) (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) }))) (labeled_statement "LAB_00133eae:\n      if (local_dc) {\n        dVar16 = ptimer_read(pt);\n        progress_update(local_130,(long)(int)uVar7,dVar16);\n      }" statement_identifier : (if_statement "if (local_dc) {\n        dVar16 = ptimer_read(pt);\n        progress_update(local_130,(long)(int)uVar7,dVar16);\n      }" if (parenthesized_expression "(local_dc)" ( identifier )) (compound_statement "{\n        dVar16 = ptimer_read(pt);\n        progress_update(local_130,(long)(int)uVar7,dVar16);\n      }" { (expression_statement "dVar16 = ptimer_read(pt);" (assignment_expression "dVar16 = ptimer_read(pt)" identifier = (call_expression "ptimer_read(pt)" identifier (argument_list "(pt)" ( identifier )))) ;) (expression_statement "progress_update(local_130,(long)(int)uVar7,dVar16);" (call_expression "progress_update(local_130,(long)(int)uVar7,dVar16)" identifier (argument_list "(local_130,(long)(int)uVar7,dVar16)" ( identifier , (cast_expression "(long)(int)uVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)uVar7" ( (type_descriptor "int" primitive_type) ) identifier)) , identifier ))) ;) }))) })) (expression_statement "uVar6 = 0xffffffff;" (assignment_expression "uVar6 = 0xffffffff" identifier = number_literal) ;) (if_statement "if (-1 < (int)uVar7) {\n      uVar6 = uVar7;\n    }" if (parenthesized_expression "(-1 < (int)uVar7)" ( (binary_expression "-1 < (int)uVar7" number_literal < (cast_expression "(int)uVar7" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      uVar6 = uVar7;\n    }" { (expression_statement "uVar6 = uVar7;" (assignment_expression "uVar6 = uVar7" identifier = identifier) ;) })) (goto_statement "goto LAB_00133a74;" goto statement_identifier ;) })) (expression_statement "buf_00 = (double *)xmalloc(0x8000);" (assignment_expression "buf_00 = (double *)xmalloc(0x8000)" identifier = (cast_expression "(double *)xmalloc(0x8000)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(0x8000)" identifier (argument_list "(0x8000)" ( number_literal ))))) ;) (if_statement "if (buf_00 == (double *)0x0) {\n    piVar9 = __errno_location();\n    *piVar9 = 0xc;\n  }\n  else {\n    gzstream.zalloc = zalloc;\n    gzstream.zfree = zfree;\n    gzstream.opaque = (voidpf)0x0;\n    gzstream.next_in = (Bytef *)0x0;\n    gzstream.avail_in = 0;\n    iVar4 = inflateInit2_(&gzstream,0x2f,"1.2.11",0x70);\n    if (iVar4 == 0) goto LAB_001335e1;\n    free(buf_00);\n    iVar5 = 0xc;\n    if (iVar4 != -4) {\n      iVar5 = 0x16;\n    }\n    piVar9 = __errno_location();\n    *piVar9 = iVar5;\n  }" if (parenthesized_expression "(buf_00 == (double *)0x0)" ( (binary_expression "buf_00 == (double *)0x0" identifier == (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    piVar9 = __errno_location();\n    *piVar9 = 0xc;\n  }" { (expression_statement "piVar9 = __errno_location();" (assignment_expression "piVar9 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "*piVar9 = 0xc;" (assignment_expression "*piVar9 = 0xc" (pointer_expression "*piVar9" * identifier) = number_literal) ;) }) (else_clause "else {\n    gzstream.zalloc = zalloc;\n    gzstream.zfree = zfree;\n    gzstream.opaque = (voidpf)0x0;\n    gzstream.next_in = (Bytef *)0x0;\n    gzstream.avail_in = 0;\n    iVar4 = inflateInit2_(&gzstream,0x2f,"1.2.11",0x70);\n    if (iVar4 == 0) goto LAB_001335e1;\n    free(buf_00);\n    iVar5 = 0xc;\n    if (iVar4 != -4) {\n      iVar5 = 0x16;\n    }\n    piVar9 = __errno_location();\n    *piVar9 = iVar5;\n  }" else (compound_statement "{\n    gzstream.zalloc = zalloc;\n    gzstream.zfree = zfree;\n    gzstream.opaque = (voidpf)0x0;\n    gzstream.next_in = (Bytef *)0x0;\n    gzstream.avail_in = 0;\n    iVar4 = inflateInit2_(&gzstream,0x2f,"1.2.11",0x70);\n    if (iVar4 == 0) goto LAB_001335e1;\n    free(buf_00);\n    iVar5 = 0xc;\n    if (iVar4 != -4) {\n      iVar5 = 0x16;\n    }\n    piVar9 = __errno_location();\n    *piVar9 = iVar5;\n  }" { (expression_statement "gzstream.zalloc = zalloc;" (assignment_expression "gzstream.zalloc = zalloc" (field_expression "gzstream.zalloc" identifier . field_identifier) = identifier) ;) (expression_statement "gzstream.zfree = zfree;" (assignment_expression "gzstream.zfree = zfree" (field_expression "gzstream.zfree" identifier . field_identifier) = identifier) ;) (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 "iVar4 = inflateInit2_(&gzstream,0x2f,"1.2.11",0x70);" (assignment_expression "iVar4 = inflateInit2_(&gzstream,0x2f,"1.2.11",0x70)" identifier = (call_expression "inflateInit2_(&gzstream,0x2f,"1.2.11",0x70)" identifier (argument_list "(&gzstream,0x2f,"1.2.11",0x70)" ( (pointer_expression "&gzstream" & identifier) , number_literal , (string_literal ""1.2.11"" " string_content ") , number_literal )))) ;) (if_statement "if (iVar4 == 0) goto LAB_001335e1;" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (goto_statement "goto LAB_001335e1;" goto statement_identifier ;)) (expression_statement "free(buf_00);" (call_expression "free(buf_00)" identifier (argument_list "(buf_00)" ( identifier ))) ;) (expression_statement "iVar5 = 0xc;" (assignment_expression "iVar5 = 0xc" identifier = number_literal) ;) (if_statement "if (iVar4 != -4) {\n      iVar5 = 0x16;\n    }" if (parenthesized_expression "(iVar4 != -4)" ( (binary_expression "iVar4 != -4" identifier != number_literal) )) (compound_statement "{\n      iVar5 = 0x16;\n    }" { (expression_statement "iVar5 = 0x16;" (assignment_expression "iVar5 = 0x16" identifier = number_literal) ;) })) (expression_statement "piVar9 = __errno_location();" (assignment_expression "piVar9 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "*piVar9 = iVar5;" (assignment_expression "*piVar9 = iVar5" (pointer_expression "*piVar9" * identifier) = identifier) ;) }))) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (expression_statement "uVar6 = 0xffffffff;" (assignment_expression "uVar6 = 0xffffffff" identifier = number_literal) ;) (if_statement "if (elapsed == (double *)0x0) goto LAB_00133ab4;" 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)) )) (goto_statement "goto LAB_00133ab4;" goto statement_identifier ;)) (expression_statement "buf_00 = (double *)0x0;" (assignment_expression "buf_00 = (double *)0x0" identifier = (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (expression_statement "pt = (ptimer *)0x0;" (assignment_expression "pt = (ptimer *)0x0" identifier = (cast_expression "(ptimer *)0x0" ( (type_descriptor "ptimer *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar6 = 0xffffffff;" (assignment_expression "uVar6 = 0xffffffff" identifier = number_literal) ;) (labeled_statement "LAB_00133a96:\n  dVar16 = ptimer_read(pt);" statement_identifier : (expression_statement "dVar16 = ptimer_read(pt);" (assignment_expression "dVar16 = ptimer_read(pt)" identifier = (call_expression "ptimer_read(pt)" identifier (argument_list "(pt)" ( identifier )))) ;)) (expression_statement "*elapsed = dVar16;" (assignment_expression "*elapsed = dVar16" (pointer_expression "*elapsed" * identifier) = identifier) ;) (goto_statement "goto LAB_00133aa7;" goto statement_identifier ;) (while_statement "while( true ) {\n    uVar10 = uVar10 - 1;\n    cVar1 = *pcVar12;\n    pcVar12 = pcVar12 + (ulong)bVar15 * -2 + 1;\n    if (cVar1 == '\0') break;\ncode_r0x001338a0:\n    if (uVar10 == 0) break;\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    uVar10 = uVar10 - 1;\n    cVar1 = *pcVar12;\n    pcVar12 = pcVar12 + (ulong)bVar15 * -2 + 1;\n    if (cVar1 == '\0') break;\ncode_r0x001338a0:\n    if (uVar10 == 0) break;\n  }" { (expression_statement "uVar10 = uVar10 - 1;" (assignment_expression "uVar10 = uVar10 - 1" identifier = (binary_expression "uVar10 - 1" identifier - number_literal)) ;) (expression_statement "cVar1 = *pcVar12;" (assignment_expression "cVar1 = *pcVar12" identifier = (pointer_expression "*pcVar12" * identifier)) ;) (expression_statement "pcVar12 = pcVar12 + (ulong)bVar15 * -2 + 1;" (assignment_expression "pcVar12 = pcVar12 + (ulong)bVar15 * -2 + 1" identifier = (binary_expression "pcVar12 + (ulong)bVar15 * -2 + 1" (binary_expression "pcVar12 + (ulong)bVar15 * -2" identifier + (binary_expression "(ulong)bVar15 * -2" (cast_expression "(ulong)bVar15" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (if_statement "if (cVar1 == '\0') break;" if (parenthesized_expression "(cVar1 == '\0')" ( (binary_expression "cVar1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (break_statement "break;" break ;)) (labeled_statement "code_r0x001338a0:\n    if (uVar10 == 0) break;" statement_identifier : (if_statement "if (uVar10 == 0) break;" if (parenthesized_expression "(uVar10 == 0)" ( (binary_expression "uVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;))) })) (expression_statement "fwrite(pcVar8,1,~uVar10 - 1,(FILE *)out2);" (call_expression "fwrite(pcVar8,1,~uVar10 - 1,(FILE *)out2)" identifier (argument_list "(pcVar8,1,~uVar10 - 1,(FILE *)out2)" ( identifier , number_literal , (binary_expression "~uVar10 - 1" (unary_expression "~uVar10" ~ identifier) - number_literal) , (cast_expression "(FILE *)out2" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (labeled_statement "LAB_001338bc:\n  free(pcVar8);" statement_identifier : (expression_statement "free(pcVar8);" (call_expression "free(pcVar8)" identifier (argument_list "(pcVar8)" ( identifier ))) ;)) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) (labeled_statement "LAB_00133a74:\n  if (local_130 != (void *)0x0) {\n    dVar16 = ptimer_read(pt);\n    progress_finish(local_130,dVar16);\n  }" statement_identifier : (if_statement "if (local_130 != (void *)0x0) {\n    dVar16 = ptimer_read(pt);\n    progress_finish(local_130,dVar16);\n  }" if (parenthesized_expression "(local_130 != (void *)0x0)" ( (binary_expression "local_130 != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    dVar16 = ptimer_read(pt);\n    progress_finish(local_130,dVar16);\n  }" { (expression_statement "dVar16 = ptimer_read(pt);" (assignment_expression "dVar16 = ptimer_read(pt)" identifier = (call_expression "ptimer_read(pt)" identifier (argument_list "(pt)" ( identifier )))) ;) (expression_statement "progress_finish(local_130,dVar16);" (call_expression "progress_finish(local_130,dVar16)" identifier (argument_list "(local_130,dVar16)" ( identifier , identifier ))) ;) }))) (if_statement "if (elapsed != (double *)0x0) goto LAB_00133a96;" 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)) )) (goto_statement "goto LAB_00133a96;" goto statement_identifier ;)) (labeled_statement "LAB_00133aa7:\n  elapsed = buf_00;" statement_identifier : (expression_statement "elapsed = buf_00;" (assignment_expression "elapsed = buf_00" identifier = identifier) ;)) (if_statement "if (pt != (ptimer *)0x0) {\n    ptimer_destroy(pt);\n  }" if (parenthesized_expression "(pt != (ptimer *)0x0)" ( (binary_expression "pt != (ptimer *)0x0" identifier != (cast_expression "(ptimer *)0x0" ( (type_descriptor "ptimer *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    ptimer_destroy(pt);\n  }" { (expression_statement "ptimer_destroy(pt);" (call_expression "ptimer_destroy(pt)" identifier (argument_list "(pt)" ( identifier ))) ;) })) (labeled_statement "LAB_00133ab4:\n  if (elapsed != (double *)0x0) {\n    uVar7 = inflateEnd(&gzstream);\n    if ((-1 < (int)uVar6) && (uVar6 = uVar7, uVar7 != 0)) {\n      piVar9 = __errno_location();\n      *piVar9 = 0x16;\n      uVar6 = 0xffffffff;\n    }\n    free(elapsed);\n    if ((gzstream.total_in != uVar14) && (opt.debug != false)) {\n      debug_logprintf("zlib read size differs from raw read size (%lu/%lu)\n",gzstream.total_in,\n                      uVar14);\n    }\n  }" statement_identifier : (if_statement "if (elapsed != (double *)0x0) {\n    uVar7 = inflateEnd(&gzstream);\n    if ((-1 < (int)uVar6) && (uVar6 = uVar7, uVar7 != 0)) {\n      piVar9 = __errno_location();\n      *piVar9 = 0x16;\n      uVar6 = 0xffffffff;\n    }\n    free(elapsed);\n    if ((gzstream.total_in != uVar14) && (opt.debug != false)) {\n      debug_logprintf("zlib read size differs from raw read size (%lu/%lu)\n",gzstream.total_in,\n                      uVar14);\n    }\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    uVar7 = inflateEnd(&gzstream);\n    if ((-1 < (int)uVar6) && (uVar6 = uVar7, uVar7 != 0)) {\n      piVar9 = __errno_location();\n      *piVar9 = 0x16;\n      uVar6 = 0xffffffff;\n    }\n    free(elapsed);\n    if ((gzstream.total_in != uVar14) && (opt.debug != false)) {\n      debug_logprintf("zlib read size differs from raw read size (%lu/%lu)\n",gzstream.total_in,\n                      uVar14);\n    }\n  }" { (expression_statement "uVar7 = inflateEnd(&gzstream);" (assignment_expression "uVar7 = inflateEnd(&gzstream)" identifier = (call_expression "inflateEnd(&gzstream)" identifier (argument_list "(&gzstream)" ( (pointer_expression "&gzstream" & identifier) )))) ;) (if_statement "if ((-1 < (int)uVar6) && (uVar6 = uVar7, uVar7 != 0)) {\n      piVar9 = __errno_location();\n      *piVar9 = 0x16;\n      uVar6 = 0xffffffff;\n    }" if (parenthesized_expression "((-1 < (int)uVar6) && (uVar6 = uVar7, uVar7 != 0))" ( (binary_expression "(-1 < (int)uVar6) && (uVar6 = uVar7, uVar7 != 0)" (parenthesized_expression "(-1 < (int)uVar6)" ( (binary_expression "-1 < (int)uVar6" number_literal < (cast_expression "(int)uVar6" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "(uVar6 = uVar7, uVar7 != 0)" ( (comma_expression "uVar6 = uVar7, uVar7 != 0" (assignment_expression "uVar6 = uVar7" identifier = identifier) , (binary_expression "uVar7 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n      piVar9 = __errno_location();\n      *piVar9 = 0x16;\n      uVar6 = 0xffffffff;\n    }" { (expression_statement "piVar9 = __errno_location();" (assignment_expression "piVar9 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "*piVar9 = 0x16;" (assignment_expression "*piVar9 = 0x16" (pointer_expression "*piVar9" * identifier) = number_literal) ;) (expression_statement "uVar6 = 0xffffffff;" (assignment_expression "uVar6 = 0xffffffff" identifier = number_literal) ;) })) (expression_statement "free(elapsed);" (call_expression "free(elapsed)" identifier (argument_list "(elapsed)" ( identifier ))) ;) (if_statement "if ((gzstream.total_in != uVar14) && (opt.debug != false)) {\n      debug_logprintf("zlib read size differs from raw read size (%lu/%lu)\n",gzstream.total_in,\n                      uVar14);\n    }" if (parenthesized_expression "((gzstream.total_in != uVar14) && (opt.debug != false))" ( (binary_expression "(gzstream.total_in != uVar14) && (opt.debug != false)" (parenthesized_expression "(gzstream.total_in != uVar14)" ( (binary_expression "gzstream.total_in != uVar14" (field_expression "gzstream.total_in" identifier . field_identifier) != identifier) )) && (parenthesized_expression "(opt.debug != false)" ( (binary_expression "opt.debug != false" (field_expression "opt.debug" identifier . field_identifier) != false) ))) )) (compound_statement "{\n      debug_logprintf("zlib read size differs from raw read size (%lu/%lu)\n",gzstream.total_in,\n                      uVar14);\n    }" { (expression_statement "debug_logprintf("zlib read size differs from raw read size (%lu/%lu)\n",gzstream.total_in,\n                      uVar14);" (call_expression "debug_logprintf("zlib read size differs from raw read size (%lu/%lu)\n",gzstream.total_in,\n                      uVar14)" identifier (argument_list "("zlib read size differs from raw read size (%lu/%lu)\n",gzstream.total_in,\n                      uVar14)" ( (string_literal ""zlib read size differs from raw read size (%lu/%lu)\n"" " string_content escape_sequence ") , (field_expression "gzstream.total_in" identifier . field_identifier) , identifier ))) ;) })) }))) (if_statement "if (qtyread != (wgint *)0x0) {\n    *qtyread = *qtyread + uVar14;\n  }" if (parenthesized_expression "(qtyread != (wgint *)0x0)" ( (binary_expression "qtyread != (wgint *)0x0" identifier != (cast_expression "(wgint *)0x0" ( (type_descriptor "wgint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    *qtyread = *qtyread + uVar14;\n  }" { (expression_statement "*qtyread = *qtyread + uVar14;" (assignment_expression "*qtyread = *qtyread + uVar14" (pointer_expression "*qtyread" * identifier) = (binary_expression "*qtyread + uVar14" (pointer_expression "*qtyread" * identifier) + identifier)) ;) })) (if_statement "if (qtywritten != (wgint *)0x0) {\n    *qtywritten = *qtywritten + sum_written;\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    *qtywritten = *qtywritten + sum_written;\n  }" { (expression_statement "*qtywritten = *qtywritten + sum_written;" (assignment_expression "*qtywritten = *qtywritten + sum_written" (pointer_expression "*qtywritten" * identifier) = (binary_expression "*qtywritten + sum_written" (pointer_expression "*qtywritten" * identifier) + identifier)) ;) })) (expression_statement "free(buf);" (call_expression "free(buf)" identifier (argument_list "(buf)" ( identifier ))) ;) (if_statement "if (lVar2 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return uVar6;\n  }" if (parenthesized_expression "(lVar2 == *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "lVar2 == *(long *)(in_FS_OFFSET + 0x28)" identifier == (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n    return uVar6;\n  }" { (return_statement "return uVar6;" return identifier ;) })) comment (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "int FUN_00133529(long param_1,undefined4 param_2,undefined8 param_3,long param_4,long param_5,\n                long *param_6,long *param_7,undefined8 *param_8,uint param_9,FILE *param_10)\n\n{\n  char cVar1;\n  uint uVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  void *__ptr;\n  long lVar6;\n  char *pcVar7;\n  int *piVar8;\n  ulong uVar9;\n  ulong uVar10;\n  char *pcVar11;\n  ulong uVar12;\n  undefined8 *__ptr_00;\n  long lVar13;\n  long in_FS_OFFSET;\n  byte bVar14;\n  undefined8 uVar15;\n  double dVar16;\n  double dVar17;\n  double dVar18;\n  long local_130;\n  double local_110;\n  bool local_dc;\n  char local_db;\n  bool local_da;\n  long local_d0;\n  long local_c8;\n  char *local_c0;\n  void *local_b8;\n  int local_b0;\n  long local_a8;\n  undefined8 *local_a0;\n  int local_98;\n  code *local_78;\n  code *local_70;\n  undefined8 local_68;\n  long local_40;\n  \n  bVar14 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  __ptr = (void *)FUN_001494bf(0x2000);\n  uVar2 = param_9 & 1;\n  local_d0 = 0;\n  local_c8 = 0;\n  __ptr_00 = (undefined8 *)0x0;\n  if ((param_9 & 8) == 0) {\nLAB_001335e1:\n    if ((param_9 & 2) != 0) {\n      local_d0 = param_5;\n    }\n    if (DAT_00177498 == 0) {\n      local_db = '\0';\n      local_130 = 0;\n    }\n    else {\n      if (local_d0 != 0) {\n        param_5 = 0;\n      }\n      if (DAT_001772f8 != (char *)0x0) {\n        uVar9 = 0xffffffffffffffff;\n        pcVar7 = DAT_001772f8;\n        do {\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar1 = *pcVar7;\n          pcVar7 = pcVar7 + (ulong)bVar14 * -2 + 1;\n        } while (cVar1 != '\0');\n        param_1 = param_1 + ~uVar9;\n      }\n      local_130 = FUN_00130cae(param_1,param_5,param_5 + param_4);\n      local_db = FUN_00130cfd(local_130);\n    }\n    if (DAT_001774e8 == 0) {\n      if (local_130 != 0 || param_8 != (undefined8 *)0x0) goto LAB_00133682;\n      uVar9 = 0x2000;\n      lVar6 = 0;\n    }\n    else {\n      DAT_00176e60 = 0;\n      DAT_00176e68 = 0.0;\n      DAT_00176e70 = 0.0;\nLAB_00133682:\n      lVar6 = FUN_00130d6b();\n      if ((DAT_001774e8 == 0) || (uVar9 = DAT_001774e8, 0x1fff < (long)DAT_001774e8)) {\n        uVar9 = 0x2000;\n      }\n    }\n    local_da = param_8 != (undefined8 *)0x0;\n    local_dc = local_130 != 0;\n    iVar3 = (int)uVar9;\n    uVar12 = 0;\n    lVar13 = 0;\n    local_110 = 0.0;\n    iVar5 = 0;\n    while ((dVar18 = DAT_001774b0, uVar2 == 0 || (lVar13 < param_4))) {\n      if ((param_9 & 4) == 0) {\n        uVar10 = uVar9 & 0xffffffff;\n        if (uVar2 != 0) {\n          uVar10 = param_4 - lVar13;\n          if ((long)iVar3 < param_4 - lVar13) {\n            uVar10 = (long)iVar3;\n          }\n        }\n      }\n      else {\n        if (uVar12 == 0) {\n          pcVar7 = (char *)FUN_0013350a(param_2);\n          if (pcVar7 != (char *)0x0) {\n            if (param_10 != (FILE *)0x0) {\n              uVar12 = 0xffffffffffffffff;\n              pcVar11 = pcVar7;\n              do {\n                if (uVar12 == 0) break;\n                uVar12 = uVar12 - 1;\n                cVar1 = *pcVar11;\n                pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n              } while (cVar1 != '\0');\n              fwrite(pcVar7,1,~uVar12 - 1,param_10);\n            }\n            uVar12 = strtol(pcVar7,&local_c0,0x10);\n            free(pcVar7);\n            if (-1 < (long)uVar12) {\n              if (uVar12 != 0) goto LAB_00133ef7;\n              pcVar7 = (char *)FUN_0013350a(param_2);\n              iVar4 = -1;\n              if (pcVar7 != (char *)0x0) {\n                if (param_10 == (FILE *)0x0) goto LAB_001338bc;\n                uVar9 = 0xffffffffffffffff;\n                pcVar11 = pcVar7;\n                goto code_r0x001338a0;\n              }\n              goto LAB_00133a74;\n            }\n          }\n          iVar5 = -1;\n          break;\n        }\nLAB_00133ef7:\n        uVar10 = (long)iVar3;\n        if ((long)uVar12 < (long)iVar3) {\n          uVar10 = uVar12;\n        }\n      }\n      if (local_db == '\0') {\n        iVar5 = FUN_0010d64e(dVar18,param_2,__ptr,uVar10 & 0xffffffff);\nLAB_00133e68:\n        if (iVar5 < 1) break;\n        if (local_dc) {\n          FUN_00130ebd(lVar6);\nLAB_00133d9f:\n          local_110 = (double)FUN_00130f52(lVar6);\n        }\n        else if ((DAT_001774e8 != 0) || (local_da)) {\n          FUN_00130ebd(lVar6);\n          if (iVar5 < 1) goto LAB_00133ea0;\n          goto LAB_00133d9f;\n        }\n        lVar13 = lVar13 + iVar5;\n        if (__ptr_00 == (undefined8 *)0x0) {\n          iVar4 = FUN_00133125(param_3,param_10,__ptr,iVar5,&local_d0,&local_c8);\n          if (iVar4 < 0) goto LAB_00133a74;\n        }\n        else {\n          iVar4 = FUN_00133125(0,param_10,__ptr,iVar5,0,0);\n          if (iVar4 < 0) goto LAB_00133a74;\n          local_b8 = __ptr;\n          local_b0 = iVar5;\n          do {\n            local_98 = 0x8000;\n            local_a0 = __ptr_00;\n            iVar4 = inflate(&local_b8,0);\n            if (iVar4 == -3) {\nLAB_00133b59:\n              piVar8 = __errno_location();\n              *piVar8 = 0x16;\n              iVar4 = -1;\n              goto LAB_00133a74;\n            }\n            if (iVar4 < -2) {\n              if (iVar4 == -4) {\n                piVar8 = __errno_location();\n                *piVar8 = 0xc;\n                iVar4 = -1;\n                goto LAB_00133a74;\n              }\n            }\n            else if (iVar4 == 1) {\n              if (((param_4 != lVar13) && (uVar2 != 0)) && (DAT_001774fb != '\0')) {\n                FUN_0012bddf("zlib stream ended unexpectedly after %ld/%ld bytes\n",lVar13,param_4);\n              }\n            }\n            else if (iVar4 == 2) goto LAB_00133b59;\n            iVar4 = FUN_00133125(param_3,0,__ptr_00,0x8000 - local_98,&local_d0,&local_c8);\n            if (iVar4 < 0) goto LAB_00133a74;\n          } while (local_98 == 0);\n        }\n        if (((param_9 & 4) != 0) && (uVar12 = uVar12 - (long)iVar5, uVar12 == 0)) {\n          pcVar7 = (char *)FUN_0013350a(param_2);\n          if (pcVar7 == (char *)0x0) {\n            iVar5 = -1;\n            break;\n          }\n          if (param_10 != (FILE *)0x0) {\n            uVar10 = 0xffffffffffffffff;\n            pcVar11 = pcVar7;\n            do {\n              if (uVar10 == 0) break;\n              uVar10 = uVar10 - 1;\n              cVar1 = *pcVar11;\n              pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n            } while (cVar1 != '\0');\n            fwrite(pcVar7,1,~uVar10 - 1,param_10);\n          }\n          free(pcVar7);\n        }\nLAB_00133ea0:\n        if (DAT_001774e8 != 0) {\n          dVar16 = (double)FUN_00130f52(lVar6);\n          dVar18 = DAT_00176e70;\n          dVar16 = dVar16 - DAT_00176e68;\n          DAT_00176e60 = iVar5 + DAT_00176e60;\n          if (dVar16 < (double)DAT_00176e60 / (double)(long)DAT_001774e8) {\n            dVar17 = ((double)DAT_00176e60 / (double)(long)DAT_001774e8 - dVar16) + DAT_00176e70;\n            if (dVar17 < _DAT_0015c908) {\n              if (DAT_001774fb != '\0') {\n                uVar15 = FUN_0013d39d();\n                FUN_0012bddf(dVar17 * DAT_0015d650,dVar16,"deferring a %.2f ms sleep (%s/%.2f).\n",\n                             uVar15);\n              }\n              goto LAB_00133eae;\n            }\n            if (DAT_001774fb != '\0') {\n              uVar15 = FUN_0013d39d();\n              FUN_0012bddf(dVar17 * DAT_0015d650,dVar18,\n                           "\nsleeping %.2f ms for %s bytes, adjust %.2f ms\n",uVar15);\n            }\n            dVar18 = (double)FUN_00130f52(lVar6);\n            FUN_0013d652(dVar17);\n            dVar16 = (double)FUN_00130ebd(lVar6);\n            DAT_00176e70 = dVar17 - (dVar16 - dVar18);\n            if (DAT_00176e70 <= _DAT_0015c710) {\n              if (DAT_00176e70 < DAT_0015d658) {\n                DAT_00176e70 = DAT_0015d658;\n              }\n            }\n            else {\n              DAT_00176e70 = _DAT_0015c710;\n            }\n          }\n          DAT_00176e60 = 0;\n          DAT_00176e68 = (double)FUN_00130f52(lVar6);\n        }\n      }\n      else {\n        if (DAT_001774b0 != 0.0) {\n          dVar18 = (double)FUN_00130f52(lVar6);\n          if ((DAT_001774b0 < (dVar18 - local_110) + DAT_0015d648) &&\n             (DAT_001774b0 - (dVar18 - local_110) < 0.0)) {\n            piVar8 = __errno_location();\n            *piVar8 = 0x6e;\n            iVar4 = -1;\n            goto LAB_00133a74;\n          }\n        }\n        iVar5 = FUN_0010d64e(param_2,__ptr,uVar10 & 0xffffffff);\n        if (-1 < iVar5) goto LAB_00133e68;\n        piVar8 = __errno_location();\n        if (*piVar8 != 0x6e) break;\n        if (local_dc) {\n          FUN_00130ebd(lVar6);\n          iVar5 = 0;\n          goto LAB_00133ea0;\n        }\n        if ((DAT_001774e8 != 0) || (local_da)) {\n          FUN_00130ebd(lVar6);\n          iVar5 = 0;\n          goto LAB_00133ea0;\n        }\n        iVar5 = 0;\n      }\nLAB_00133eae:\n      if (local_dc) {\n        FUN_00130f52(lVar6);\n        FUN_00130d09(local_130,(long)iVar5);\n      }\n    }\n    iVar4 = -1;\n    if (-1 < iVar5) {\n      iVar4 = iVar5;\n    }\n    goto LAB_00133a74;\n  }\n  __ptr_00 = (undefined8 *)FUN_001494bf(0x8000);\n  if (__ptr_00 == (undefined8 *)0x0) {\n    piVar8 = __errno_location();\n    *piVar8 = 0xc;\n  }\n  else {\n    local_78 = FUN_00133111;\n    local_70 = FUN_00133100;\n    local_68 = 0;\n    local_b8 = (void *)0x0;\n    local_b0 = 0;\n    iVar3 = inflateInit2_(&local_b8,0x2f,"1.2.11",0x70);\n    if (iVar3 == 0) goto LAB_001335e1;\n    free(__ptr_00);\n    iVar5 = 0xc;\n    if (iVar3 != -4) {\n      iVar5 = 0x16;\n    }\n    piVar8 = __errno_location();\n    *piVar8 = iVar5;\n  }\n  lVar13 = 0;\n  iVar4 = -1;\n  if (param_8 == (undefined8 *)0x0) goto LAB_00133ab4;\n  __ptr_00 = (undefined8 *)0x0;\n  lVar13 = 0;\n  lVar6 = 0;\n  iVar4 = -1;\nLAB_00133a96:\n  uVar15 = FUN_00130f52(lVar6);\n  *param_8 = uVar15;\n  goto LAB_00133aa7;\n  while( true ) {\n    uVar9 = uVar9 - 1;\n    cVar1 = *pcVar11;\n    pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n    if (cVar1 == '\0') break;\ncode_r0x001338a0:\n    if (uVar9 == 0) break;\n  }\n  fwrite(pcVar7,1,~uVar9 - 1,param_10);\nLAB_001338bc:\n  free(pcVar7);\n  iVar4 = 0;\nLAB_00133a74:\n  if (local_130 != 0) {\n    FUN_00130f52(lVar6);\n    FUN_00130d26(local_130);\n  }\n  if (param_8 != (undefined8 *)0x0) goto LAB_00133a96;\nLAB_00133aa7:\n  param_8 = __ptr_00;\n  if (lVar6 != 0) {\n    FUN_00130d39(lVar6);\n  }\nLAB_00133ab4:\n  if (param_8 != (undefined8 *)0x0) {\n    iVar3 = inflateEnd(&local_b8);\n    if ((-1 < iVar4) && (iVar4 = iVar3, iVar3 != 0)) {\n      piVar8 = __errno_location();\n      *piVar8 = 0x16;\n      iVar4 = -1;\n    }\n    free(param_8);\n    if ((local_a8 != lVar13) && (DAT_001774fb != '\0')) {\n      FUN_0012bddf("zlib read size differs from raw read size (%lu/%lu)\n",local_a8,lVar13);\n    }\n  }\n  if (param_6 != (long *)0x0) {\n    *param_6 = *param_6 + lVar13;\n  }\n  if (param_7 != (long *)0x0) {\n    *param_7 = *param_7 + local_c8;\n  }\n  free(__ptr);\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar4;\n  }\n                    \n  __stack_chk_fail();\n}\n\n" (function_definition "int FUN_00133529(long param_1,undefined4 param_2,undefined8 param_3,long param_4,long param_5,\n                long *param_6,long *param_7,undefined8 *param_8,uint param_9,FILE *param_10)\n\n{\n  char cVar1;\n  uint uVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  void *__ptr;\n  long lVar6;\n  char *pcVar7;\n  int *piVar8;\n  ulong uVar9;\n  ulong uVar10;\n  char *pcVar11;\n  ulong uVar12;\n  undefined8 *__ptr_00;\n  long lVar13;\n  long in_FS_OFFSET;\n  byte bVar14;\n  undefined8 uVar15;\n  double dVar16;\n  double dVar17;\n  double dVar18;\n  long local_130;\n  double local_110;\n  bool local_dc;\n  char local_db;\n  bool local_da;\n  long local_d0;\n  long local_c8;\n  char *local_c0;\n  void *local_b8;\n  int local_b0;\n  long local_a8;\n  undefined8 *local_a0;\n  int local_98;\n  code *local_78;\n  code *local_70;\n  undefined8 local_68;\n  long local_40;\n  \n  bVar14 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  __ptr = (void *)FUN_001494bf(0x2000);\n  uVar2 = param_9 & 1;\n  local_d0 = 0;\n  local_c8 = 0;\n  __ptr_00 = (undefined8 *)0x0;\n  if ((param_9 & 8) == 0) {\nLAB_001335e1:\n    if ((param_9 & 2) != 0) {\n      local_d0 = param_5;\n    }\n    if (DAT_00177498 == 0) {\n      local_db = '\0';\n      local_130 = 0;\n    }\n    else {\n      if (local_d0 != 0) {\n        param_5 = 0;\n      }\n      if (DAT_001772f8 != (char *)0x0) {\n        uVar9 = 0xffffffffffffffff;\n        pcVar7 = DAT_001772f8;\n        do {\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar1 = *pcVar7;\n          pcVar7 = pcVar7 + (ulong)bVar14 * -2 + 1;\n        } while (cVar1 != '\0');\n        param_1 = param_1 + ~uVar9;\n      }\n      local_130 = FUN_00130cae(param_1,param_5,param_5 + param_4);\n      local_db = FUN_00130cfd(local_130);\n    }\n    if (DAT_001774e8 == 0) {\n      if (local_130 != 0 || param_8 != (undefined8 *)0x0) goto LAB_00133682;\n      uVar9 = 0x2000;\n      lVar6 = 0;\n    }\n    else {\n      DAT_00176e60 = 0;\n      DAT_00176e68 = 0.0;\n      DAT_00176e70 = 0.0;\nLAB_00133682:\n      lVar6 = FUN_00130d6b();\n      if ((DAT_001774e8 == 0) || (uVar9 = DAT_001774e8, 0x1fff < (long)DAT_001774e8)) {\n        uVar9 = 0x2000;\n      }\n    }\n    local_da = param_8 != (undefined8 *)0x0;\n    local_dc = local_130 != 0;\n    iVar3 = (int)uVar9;\n    uVar12 = 0;\n    lVar13 = 0;\n    local_110 = 0.0;\n    iVar5 = 0;\n    while ((dVar18 = DAT_001774b0, uVar2 == 0 || (lVar13 < param_4))) {\n      if ((param_9 & 4) == 0) {\n        uVar10 = uVar9 & 0xffffffff;\n        if (uVar2 != 0) {\n          uVar10 = param_4 - lVar13;\n          if ((long)iVar3 < param_4 - lVar13) {\n            uVar10 = (long)iVar3;\n          }\n        }\n      }\n      else {\n        if (uVar12 == 0) {\n          pcVar7 = (char *)FUN_0013350a(param_2);\n          if (pcVar7 != (char *)0x0) {\n            if (param_10 != (FILE *)0x0) {\n              uVar12 = 0xffffffffffffffff;\n              pcVar11 = pcVar7;\n              do {\n                if (uVar12 == 0) break;\n                uVar12 = uVar12 - 1;\n                cVar1 = *pcVar11;\n                pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n              } while (cVar1 != '\0');\n              fwrite(pcVar7,1,~uVar12 - 1,param_10);\n            }\n            uVar12 = strtol(pcVar7,&local_c0,0x10);\n            free(pcVar7);\n            if (-1 < (long)uVar12) {\n              if (uVar12 != 0) goto LAB_00133ef7;\n              pcVar7 = (char *)FUN_0013350a(param_2);\n              iVar4 = -1;\n              if (pcVar7 != (char *)0x0) {\n                if (param_10 == (FILE *)0x0) goto LAB_001338bc;\n                uVar9 = 0xffffffffffffffff;\n                pcVar11 = pcVar7;\n                goto code_r0x001338a0;\n              }\n              goto LAB_00133a74;\n            }\n          }\n          iVar5 = -1;\n          break;\n        }\nLAB_00133ef7:\n        uVar10 = (long)iVar3;\n        if ((long)uVar12 < (long)iVar3) {\n          uVar10 = uVar12;\n        }\n      }\n      if (local_db == '\0') {\n        iVar5 = FUN_0010d64e(dVar18,param_2,__ptr,uVar10 & 0xffffffff);\nLAB_00133e68:\n        if (iVar5 < 1) break;\n        if (local_dc) {\n          FUN_00130ebd(lVar6);\nLAB_00133d9f:\n          local_110 = (double)FUN_00130f52(lVar6);\n        }\n        else if ((DAT_001774e8 != 0) || (local_da)) {\n          FUN_00130ebd(lVar6);\n          if (iVar5 < 1) goto LAB_00133ea0;\n          goto LAB_00133d9f;\n        }\n        lVar13 = lVar13 + iVar5;\n        if (__ptr_00 == (undefined8 *)0x0) {\n          iVar4 = FUN_00133125(param_3,param_10,__ptr,iVar5,&local_d0,&local_c8);\n          if (iVar4 < 0) goto LAB_00133a74;\n        }\n        else {\n          iVar4 = FUN_00133125(0,param_10,__ptr,iVar5,0,0);\n          if (iVar4 < 0) goto LAB_00133a74;\n          local_b8 = __ptr;\n          local_b0 = iVar5;\n          do {\n            local_98 = 0x8000;\n            local_a0 = __ptr_00;\n            iVar4 = inflate(&local_b8,0);\n            if (iVar4 == -3) {\nLAB_00133b59:\n              piVar8 = __errno_location();\n              *piVar8 = 0x16;\n              iVar4 = -1;\n              goto LAB_00133a74;\n            }\n            if (iVar4 < -2) {\n              if (iVar4 == -4) {\n                piVar8 = __errno_location();\n                *piVar8 = 0xc;\n                iVar4 = -1;\n                goto LAB_00133a74;\n              }\n            }\n            else if (iVar4 == 1) {\n              if (((param_4 != lVar13) && (uVar2 != 0)) && (DAT_001774fb != '\0')) {\n                FUN_0012bddf("zlib stream ended unexpectedly after %ld/%ld bytes\n",lVar13,param_4);\n              }\n            }\n            else if (iVar4 == 2) goto LAB_00133b59;\n            iVar4 = FUN_00133125(param_3,0,__ptr_00,0x8000 - local_98,&local_d0,&local_c8);\n            if (iVar4 < 0) goto LAB_00133a74;\n          } while (local_98 == 0);\n        }\n        if (((param_9 & 4) != 0) && (uVar12 = uVar12 - (long)iVar5, uVar12 == 0)) {\n          pcVar7 = (char *)FUN_0013350a(param_2);\n          if (pcVar7 == (char *)0x0) {\n            iVar5 = -1;\n            break;\n          }\n          if (param_10 != (FILE *)0x0) {\n            uVar10 = 0xffffffffffffffff;\n            pcVar11 = pcVar7;\n            do {\n              if (uVar10 == 0) break;\n              uVar10 = uVar10 - 1;\n              cVar1 = *pcVar11;\n              pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n            } while (cVar1 != '\0');\n            fwrite(pcVar7,1,~uVar10 - 1,param_10);\n          }\n          free(pcVar7);\n        }\nLAB_00133ea0:\n        if (DAT_001774e8 != 0) {\n          dVar16 = (double)FUN_00130f52(lVar6);\n          dVar18 = DAT_00176e70;\n          dVar16 = dVar16 - DAT_00176e68;\n          DAT_00176e60 = iVar5 + DAT_00176e60;\n          if (dVar16 < (double)DAT_00176e60 / (double)(long)DAT_001774e8) {\n            dVar17 = ((double)DAT_00176e60 / (double)(long)DAT_001774e8 - dVar16) + DAT_00176e70;\n            if (dVar17 < _DAT_0015c908) {\n              if (DAT_001774fb != '\0') {\n                uVar15 = FUN_0013d39d();\n                FUN_0012bddf(dVar17 * DAT_0015d650,dVar16,"deferring a %.2f ms sleep (%s/%.2f).\n",\n                             uVar15);\n              }\n              goto LAB_00133eae;\n            }\n            if (DAT_001774fb != '\0') {\n              uVar15 = FUN_0013d39d();\n              FUN_0012bddf(dVar17 * DAT_0015d650,dVar18,\n                           "\nsleeping %.2f ms for %s bytes, adjust %.2f ms\n",uVar15);\n            }\n            dVar18 = (double)FUN_00130f52(lVar6);\n            FUN_0013d652(dVar17);\n            dVar16 = (double)FUN_00130ebd(lVar6);\n            DAT_00176e70 = dVar17 - (dVar16 - dVar18);\n            if (DAT_00176e70 <= _DAT_0015c710) {\n              if (DAT_00176e70 < DAT_0015d658) {\n                DAT_00176e70 = DAT_0015d658;\n              }\n            }\n            else {\n              DAT_00176e70 = _DAT_0015c710;\n            }\n          }\n          DAT_00176e60 = 0;\n          DAT_00176e68 = (double)FUN_00130f52(lVar6);\n        }\n      }\n      else {\n        if (DAT_001774b0 != 0.0) {\n          dVar18 = (double)FUN_00130f52(lVar6);\n          if ((DAT_001774b0 < (dVar18 - local_110) + DAT_0015d648) &&\n             (DAT_001774b0 - (dVar18 - local_110) < 0.0)) {\n            piVar8 = __errno_location();\n            *piVar8 = 0x6e;\n            iVar4 = -1;\n            goto LAB_00133a74;\n          }\n        }\n        iVar5 = FUN_0010d64e(param_2,__ptr,uVar10 & 0xffffffff);\n        if (-1 < iVar5) goto LAB_00133e68;\n        piVar8 = __errno_location();\n        if (*piVar8 != 0x6e) break;\n        if (local_dc) {\n          FUN_00130ebd(lVar6);\n          iVar5 = 0;\n          goto LAB_00133ea0;\n        }\n        if ((DAT_001774e8 != 0) || (local_da)) {\n          FUN_00130ebd(lVar6);\n          iVar5 = 0;\n          goto LAB_00133ea0;\n        }\n        iVar5 = 0;\n      }\nLAB_00133eae:\n      if (local_dc) {\n        FUN_00130f52(lVar6);\n        FUN_00130d09(local_130,(long)iVar5);\n      }\n    }\n    iVar4 = -1;\n    if (-1 < iVar5) {\n      iVar4 = iVar5;\n    }\n    goto LAB_00133a74;\n  }\n  __ptr_00 = (undefined8 *)FUN_001494bf(0x8000);\n  if (__ptr_00 == (undefined8 *)0x0) {\n    piVar8 = __errno_location();\n    *piVar8 = 0xc;\n  }\n  else {\n    local_78 = FUN_00133111;\n    local_70 = FUN_00133100;\n    local_68 = 0;\n    local_b8 = (void *)0x0;\n    local_b0 = 0;\n    iVar3 = inflateInit2_(&local_b8,0x2f,"1.2.11",0x70);\n    if (iVar3 == 0) goto LAB_001335e1;\n    free(__ptr_00);\n    iVar5 = 0xc;\n    if (iVar3 != -4) {\n      iVar5 = 0x16;\n    }\n    piVar8 = __errno_location();\n    *piVar8 = iVar5;\n  }\n  lVar13 = 0;\n  iVar4 = -1;\n  if (param_8 == (undefined8 *)0x0) goto LAB_00133ab4;\n  __ptr_00 = (undefined8 *)0x0;\n  lVar13 = 0;\n  lVar6 = 0;\n  iVar4 = -1;\nLAB_00133a96:\n  uVar15 = FUN_00130f52(lVar6);\n  *param_8 = uVar15;\n  goto LAB_00133aa7;\n  while( true ) {\n    uVar9 = uVar9 - 1;\n    cVar1 = *pcVar11;\n    pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n    if (cVar1 == '\0') break;\ncode_r0x001338a0:\n    if (uVar9 == 0) break;\n  }\n  fwrite(pcVar7,1,~uVar9 - 1,param_10);\nLAB_001338bc:\n  free(pcVar7);\n  iVar4 = 0;\nLAB_00133a74:\n  if (local_130 != 0) {\n    FUN_00130f52(lVar6);\n    FUN_00130d26(local_130);\n  }\n  if (param_8 != (undefined8 *)0x0) goto LAB_00133a96;\nLAB_00133aa7:\n  param_8 = __ptr_00;\n  if (lVar6 != 0) {\n    FUN_00130d39(lVar6);\n  }\nLAB_00133ab4:\n  if (param_8 != (undefined8 *)0x0) {\n    iVar3 = inflateEnd(&local_b8);\n    if ((-1 < iVar4) && (iVar4 = iVar3, iVar3 != 0)) {\n      piVar8 = __errno_location();\n      *piVar8 = 0x16;\n      iVar4 = -1;\n    }\n    free(param_8);\n    if ((local_a8 != lVar13) && (DAT_001774fb != '\0')) {\n      FUN_0012bddf("zlib read size differs from raw read size (%lu/%lu)\n",local_a8,lVar13);\n    }\n  }\n  if (param_6 != (long *)0x0) {\n    *param_6 = *param_6 + lVar13;\n  }\n  if (param_7 != (long *)0x0) {\n    *param_7 = *param_7 + local_c8;\n  }\n  free(__ptr);\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar4;\n  }\n                    \n  __stack_chk_fail();\n}" primitive_type (function_declarator "FUN_00133529(long param_1,undefined4 param_2,undefined8 param_3,long param_4,long param_5,\n                long *param_6,long *param_7,undefined8 *param_8,uint param_9,FILE *param_10)" identifier (parameter_list "(long param_1,undefined4 param_2,undefined8 param_3,long param_4,long param_5,\n                long *param_6,long *param_7,undefined8 *param_8,uint param_9,FILE *param_10)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "undefined8 param_3" type_identifier identifier) , (parameter_declaration "long param_4" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long param_5" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long *param_6" (sized_type_specifier "long" long) (pointer_declarator "*param_6" * identifier)) , (parameter_declaration "long *param_7" (sized_type_specifier "long" long) (pointer_declarator "*param_7" * identifier)) , (parameter_declaration "undefined8 *param_8" type_identifier (pointer_declarator "*param_8" * identifier)) , (parameter_declaration "uint param_9" type_identifier identifier) , (parameter_declaration "FILE *param_10" type_identifier (pointer_declarator "*param_10" * identifier)) ))) (compound_statement "{\n  char cVar1;\n  uint uVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  void *__ptr;\n  long lVar6;\n  char *pcVar7;\n  int *piVar8;\n  ulong uVar9;\n  ulong uVar10;\n  char *pcVar11;\n  ulong uVar12;\n  undefined8 *__ptr_00;\n  long lVar13;\n  long in_FS_OFFSET;\n  byte bVar14;\n  undefined8 uVar15;\n  double dVar16;\n  double dVar17;\n  double dVar18;\n  long local_130;\n  double local_110;\n  bool local_dc;\n  char local_db;\n  bool local_da;\n  long local_d0;\n  long local_c8;\n  char *local_c0;\n  void *local_b8;\n  int local_b0;\n  long local_a8;\n  undefined8 *local_a0;\n  int local_98;\n  code *local_78;\n  code *local_70;\n  undefined8 local_68;\n  long local_40;\n  \n  bVar14 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  __ptr = (void *)FUN_001494bf(0x2000);\n  uVar2 = param_9 & 1;\n  local_d0 = 0;\n  local_c8 = 0;\n  __ptr_00 = (undefined8 *)0x0;\n  if ((param_9 & 8) == 0) {\nLAB_001335e1:\n    if ((param_9 & 2) != 0) {\n      local_d0 = param_5;\n    }\n    if (DAT_00177498 == 0) {\n      local_db = '\0';\n      local_130 = 0;\n    }\n    else {\n      if (local_d0 != 0) {\n        param_5 = 0;\n      }\n      if (DAT_001772f8 != (char *)0x0) {\n        uVar9 = 0xffffffffffffffff;\n        pcVar7 = DAT_001772f8;\n        do {\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar1 = *pcVar7;\n          pcVar7 = pcVar7 + (ulong)bVar14 * -2 + 1;\n        } while (cVar1 != '\0');\n        param_1 = param_1 + ~uVar9;\n      }\n      local_130 = FUN_00130cae(param_1,param_5,param_5 + param_4);\n      local_db = FUN_00130cfd(local_130);\n    }\n    if (DAT_001774e8 == 0) {\n      if (local_130 != 0 || param_8 != (undefined8 *)0x0) goto LAB_00133682;\n      uVar9 = 0x2000;\n      lVar6 = 0;\n    }\n    else {\n      DAT_00176e60 = 0;\n      DAT_00176e68 = 0.0;\n      DAT_00176e70 = 0.0;\nLAB_00133682:\n      lVar6 = FUN_00130d6b();\n      if ((DAT_001774e8 == 0) || (uVar9 = DAT_001774e8, 0x1fff < (long)DAT_001774e8)) {\n        uVar9 = 0x2000;\n      }\n    }\n    local_da = param_8 != (undefined8 *)0x0;\n    local_dc = local_130 != 0;\n    iVar3 = (int)uVar9;\n    uVar12 = 0;\n    lVar13 = 0;\n    local_110 = 0.0;\n    iVar5 = 0;\n    while ((dVar18 = DAT_001774b0, uVar2 == 0 || (lVar13 < param_4))) {\n      if ((param_9 & 4) == 0) {\n        uVar10 = uVar9 & 0xffffffff;\n        if (uVar2 != 0) {\n          uVar10 = param_4 - lVar13;\n          if ((long)iVar3 < param_4 - lVar13) {\n            uVar10 = (long)iVar3;\n          }\n        }\n      }\n      else {\n        if (uVar12 == 0) {\n          pcVar7 = (char *)FUN_0013350a(param_2);\n          if (pcVar7 != (char *)0x0) {\n            if (param_10 != (FILE *)0x0) {\n              uVar12 = 0xffffffffffffffff;\n              pcVar11 = pcVar7;\n              do {\n                if (uVar12 == 0) break;\n                uVar12 = uVar12 - 1;\n                cVar1 = *pcVar11;\n                pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n              } while (cVar1 != '\0');\n              fwrite(pcVar7,1,~uVar12 - 1,param_10);\n            }\n            uVar12 = strtol(pcVar7,&local_c0,0x10);\n            free(pcVar7);\n            if (-1 < (long)uVar12) {\n              if (uVar12 != 0) goto LAB_00133ef7;\n              pcVar7 = (char *)FUN_0013350a(param_2);\n              iVar4 = -1;\n              if (pcVar7 != (char *)0x0) {\n                if (param_10 == (FILE *)0x0) goto LAB_001338bc;\n                uVar9 = 0xffffffffffffffff;\n                pcVar11 = pcVar7;\n                goto code_r0x001338a0;\n              }\n              goto LAB_00133a74;\n            }\n          }\n          iVar5 = -1;\n          break;\n        }\nLAB_00133ef7:\n        uVar10 = (long)iVar3;\n        if ((long)uVar12 < (long)iVar3) {\n          uVar10 = uVar12;\n        }\n      }\n      if (local_db == '\0') {\n        iVar5 = FUN_0010d64e(dVar18,param_2,__ptr,uVar10 & 0xffffffff);\nLAB_00133e68:\n        if (iVar5 < 1) break;\n        if (local_dc) {\n          FUN_00130ebd(lVar6);\nLAB_00133d9f:\n          local_110 = (double)FUN_00130f52(lVar6);\n        }\n        else if ((DAT_001774e8 != 0) || (local_da)) {\n          FUN_00130ebd(lVar6);\n          if (iVar5 < 1) goto LAB_00133ea0;\n          goto LAB_00133d9f;\n        }\n        lVar13 = lVar13 + iVar5;\n        if (__ptr_00 == (undefined8 *)0x0) {\n          iVar4 = FUN_00133125(param_3,param_10,__ptr,iVar5,&local_d0,&local_c8);\n          if (iVar4 < 0) goto LAB_00133a74;\n        }\n        else {\n          iVar4 = FUN_00133125(0,param_10,__ptr,iVar5,0,0);\n          if (iVar4 < 0) goto LAB_00133a74;\n          local_b8 = __ptr;\n          local_b0 = iVar5;\n          do {\n            local_98 = 0x8000;\n            local_a0 = __ptr_00;\n            iVar4 = inflate(&local_b8,0);\n            if (iVar4 == -3) {\nLAB_00133b59:\n              piVar8 = __errno_location();\n              *piVar8 = 0x16;\n              iVar4 = -1;\n              goto LAB_00133a74;\n            }\n            if (iVar4 < -2) {\n              if (iVar4 == -4) {\n                piVar8 = __errno_location();\n                *piVar8 = 0xc;\n                iVar4 = -1;\n                goto LAB_00133a74;\n              }\n            }\n            else if (iVar4 == 1) {\n              if (((param_4 != lVar13) && (uVar2 != 0)) && (DAT_001774fb != '\0')) {\n                FUN_0012bddf("zlib stream ended unexpectedly after %ld/%ld bytes\n",lVar13,param_4);\n              }\n            }\n            else if (iVar4 == 2) goto LAB_00133b59;\n            iVar4 = FUN_00133125(param_3,0,__ptr_00,0x8000 - local_98,&local_d0,&local_c8);\n            if (iVar4 < 0) goto LAB_00133a74;\n          } while (local_98 == 0);\n        }\n        if (((param_9 & 4) != 0) && (uVar12 = uVar12 - (long)iVar5, uVar12 == 0)) {\n          pcVar7 = (char *)FUN_0013350a(param_2);\n          if (pcVar7 == (char *)0x0) {\n            iVar5 = -1;\n            break;\n          }\n          if (param_10 != (FILE *)0x0) {\n            uVar10 = 0xffffffffffffffff;\n            pcVar11 = pcVar7;\n            do {\n              if (uVar10 == 0) break;\n              uVar10 = uVar10 - 1;\n              cVar1 = *pcVar11;\n              pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n            } while (cVar1 != '\0');\n            fwrite(pcVar7,1,~uVar10 - 1,param_10);\n          }\n          free(pcVar7);\n        }\nLAB_00133ea0:\n        if (DAT_001774e8 != 0) {\n          dVar16 = (double)FUN_00130f52(lVar6);\n          dVar18 = DAT_00176e70;\n          dVar16 = dVar16 - DAT_00176e68;\n          DAT_00176e60 = iVar5 + DAT_00176e60;\n          if (dVar16 < (double)DAT_00176e60 / (double)(long)DAT_001774e8) {\n            dVar17 = ((double)DAT_00176e60 / (double)(long)DAT_001774e8 - dVar16) + DAT_00176e70;\n            if (dVar17 < _DAT_0015c908) {\n              if (DAT_001774fb != '\0') {\n                uVar15 = FUN_0013d39d();\n                FUN_0012bddf(dVar17 * DAT_0015d650,dVar16,"deferring a %.2f ms sleep (%s/%.2f).\n",\n                             uVar15);\n              }\n              goto LAB_00133eae;\n            }\n            if (DAT_001774fb != '\0') {\n              uVar15 = FUN_0013d39d();\n              FUN_0012bddf(dVar17 * DAT_0015d650,dVar18,\n                           "\nsleeping %.2f ms for %s bytes, adjust %.2f ms\n",uVar15);\n            }\n            dVar18 = (double)FUN_00130f52(lVar6);\n            FUN_0013d652(dVar17);\n            dVar16 = (double)FUN_00130ebd(lVar6);\n            DAT_00176e70 = dVar17 - (dVar16 - dVar18);\n            if (DAT_00176e70 <= _DAT_0015c710) {\n              if (DAT_00176e70 < DAT_0015d658) {\n                DAT_00176e70 = DAT_0015d658;\n              }\n            }\n            else {\n              DAT_00176e70 = _DAT_0015c710;\n            }\n          }\n          DAT_00176e60 = 0;\n          DAT_00176e68 = (double)FUN_00130f52(lVar6);\n        }\n      }\n      else {\n        if (DAT_001774b0 != 0.0) {\n          dVar18 = (double)FUN_00130f52(lVar6);\n          if ((DAT_001774b0 < (dVar18 - local_110) + DAT_0015d648) &&\n             (DAT_001774b0 - (dVar18 - local_110) < 0.0)) {\n            piVar8 = __errno_location();\n            *piVar8 = 0x6e;\n            iVar4 = -1;\n            goto LAB_00133a74;\n          }\n        }\n        iVar5 = FUN_0010d64e(param_2,__ptr,uVar10 & 0xffffffff);\n        if (-1 < iVar5) goto LAB_00133e68;\n        piVar8 = __errno_location();\n        if (*piVar8 != 0x6e) break;\n        if (local_dc) {\n          FUN_00130ebd(lVar6);\n          iVar5 = 0;\n          goto LAB_00133ea0;\n        }\n        if ((DAT_001774e8 != 0) || (local_da)) {\n          FUN_00130ebd(lVar6);\n          iVar5 = 0;\n          goto LAB_00133ea0;\n        }\n        iVar5 = 0;\n      }\nLAB_00133eae:\n      if (local_dc) {\n        FUN_00130f52(lVar6);\n        FUN_00130d09(local_130,(long)iVar5);\n      }\n    }\n    iVar4 = -1;\n    if (-1 < iVar5) {\n      iVar4 = iVar5;\n    }\n    goto LAB_00133a74;\n  }\n  __ptr_00 = (undefined8 *)FUN_001494bf(0x8000);\n  if (__ptr_00 == (undefined8 *)0x0) {\n    piVar8 = __errno_location();\n    *piVar8 = 0xc;\n  }\n  else {\n    local_78 = FUN_00133111;\n    local_70 = FUN_00133100;\n    local_68 = 0;\n    local_b8 = (void *)0x0;\n    local_b0 = 0;\n    iVar3 = inflateInit2_(&local_b8,0x2f,"1.2.11",0x70);\n    if (iVar3 == 0) goto LAB_001335e1;\n    free(__ptr_00);\n    iVar5 = 0xc;\n    if (iVar3 != -4) {\n      iVar5 = 0x16;\n    }\n    piVar8 = __errno_location();\n    *piVar8 = iVar5;\n  }\n  lVar13 = 0;\n  iVar4 = -1;\n  if (param_8 == (undefined8 *)0x0) goto LAB_00133ab4;\n  __ptr_00 = (undefined8 *)0x0;\n  lVar13 = 0;\n  lVar6 = 0;\n  iVar4 = -1;\nLAB_00133a96:\n  uVar15 = FUN_00130f52(lVar6);\n  *param_8 = uVar15;\n  goto LAB_00133aa7;\n  while( true ) {\n    uVar9 = uVar9 - 1;\n    cVar1 = *pcVar11;\n    pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n    if (cVar1 == '\0') break;\ncode_r0x001338a0:\n    if (uVar9 == 0) break;\n  }\n  fwrite(pcVar7,1,~uVar9 - 1,param_10);\nLAB_001338bc:\n  free(pcVar7);\n  iVar4 = 0;\nLAB_00133a74:\n  if (local_130 != 0) {\n    FUN_00130f52(lVar6);\n    FUN_00130d26(local_130);\n  }\n  if (param_8 != (undefined8 *)0x0) goto LAB_00133a96;\nLAB_00133aa7:\n  param_8 = __ptr_00;\n  if (lVar6 != 0) {\n    FUN_00130d39(lVar6);\n  }\nLAB_00133ab4:\n  if (param_8 != (undefined8 *)0x0) {\n    iVar3 = inflateEnd(&local_b8);\n    if ((-1 < iVar4) && (iVar4 = iVar3, iVar3 != 0)) {\n      piVar8 = __errno_location();\n      *piVar8 = 0x16;\n      iVar4 = -1;\n    }\n    free(param_8);\n    if ((local_a8 != lVar13) && (DAT_001774fb != '\0')) {\n      FUN_0012bddf("zlib read size differs from raw read size (%lu/%lu)\n",local_a8,lVar13);\n    }\n  }\n  if (param_6 != (long *)0x0) {\n    *param_6 = *param_6 + lVar13;\n  }\n  if (param_7 != (long *)0x0) {\n    *param_7 = *param_7 + local_c8;\n  }\n  free(__ptr);\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar4;\n  }\n                    \n  __stack_chk_fail();\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "void *__ptr;" primitive_type (pointer_declarator "*__ptr" * identifier) ;) (declaration "long lVar6;" (sized_type_specifier "long" long) identifier ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (declaration "ulong uVar9;" type_identifier identifier ;) (declaration "ulong uVar10;" type_identifier identifier ;) (declaration "char *pcVar11;" primitive_type (pointer_declarator "*pcVar11" * identifier) ;) (declaration "ulong uVar12;" type_identifier identifier ;) (declaration "undefined8 *__ptr_00;" type_identifier (pointer_declarator "*__ptr_00" * identifier) ;) (declaration "long lVar13;" (sized_type_specifier "long" long) identifier ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "byte bVar14;" type_identifier identifier ;) (declaration "undefined8 uVar15;" type_identifier identifier ;) (declaration "double dVar16;" primitive_type identifier ;) (declaration "double dVar17;" primitive_type identifier ;) (declaration "double dVar18;" primitive_type identifier ;) (declaration "long local_130;" (sized_type_specifier "long" long) identifier ;) (declaration "double local_110;" primitive_type identifier ;) (declaration "bool local_dc;" primitive_type identifier ;) (declaration "char local_db;" primitive_type identifier ;) (declaration "bool local_da;" primitive_type identifier ;) (declaration "long local_d0;" (sized_type_specifier "long" long) identifier ;) (declaration "long local_c8;" (sized_type_specifier "long" long) identifier ;) (declaration "char *local_c0;" primitive_type (pointer_declarator "*local_c0" * identifier) ;) (declaration "void *local_b8;" primitive_type (pointer_declarator "*local_b8" * identifier) ;) (declaration "int local_b0;" primitive_type identifier ;) (declaration "long local_a8;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 *local_a0;" type_identifier (pointer_declarator "*local_a0" * identifier) ;) (declaration "int local_98;" primitive_type identifier ;) (declaration "code *local_78;" type_identifier (pointer_declarator "*local_78" * identifier) ;) (declaration "code *local_70;" type_identifier (pointer_declarator "*local_70" * identifier) ;) (declaration "undefined8 local_68;" type_identifier identifier ;) (declaration "long local_40;" (sized_type_specifier "long" long) identifier ;) (expression_statement "bVar14 = 0;" (assignment_expression "bVar14 = 0" identifier = number_literal) ;) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (expression_statement "__ptr = (void *)FUN_001494bf(0x2000);" (assignment_expression "__ptr = (void *)FUN_001494bf(0x2000)" identifier = (cast_expression "(void *)FUN_001494bf(0x2000)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001494bf(0x2000)" identifier (argument_list "(0x2000)" ( number_literal ))))) ;) (expression_statement "uVar2 = param_9 & 1;" (assignment_expression "uVar2 = param_9 & 1" identifier = (binary_expression "param_9 & 1" identifier & number_literal)) ;) (expression_statement "local_d0 = 0;" (assignment_expression "local_d0 = 0" identifier = number_literal) ;) (expression_statement "local_c8 = 0;" (assignment_expression "local_c8 = 0" identifier = number_literal) ;) (expression_statement "__ptr_00 = (undefined8 *)0x0;" (assignment_expression "__ptr_00 = (undefined8 *)0x0" identifier = (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if ((param_9 & 8) == 0) {\nLAB_001335e1:\n    if ((param_9 & 2) != 0) {\n      local_d0 = param_5;\n    }\n    if (DAT_00177498 == 0) {\n      local_db = '\0';\n      local_130 = 0;\n    }\n    else {\n      if (local_d0 != 0) {\n        param_5 = 0;\n      }\n      if (DAT_001772f8 != (char *)0x0) {\n        uVar9 = 0xffffffffffffffff;\n        pcVar7 = DAT_001772f8;\n        do {\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar1 = *pcVar7;\n          pcVar7 = pcVar7 + (ulong)bVar14 * -2 + 1;\n        } while (cVar1 != '\0');\n        param_1 = param_1 + ~uVar9;\n      }\n      local_130 = FUN_00130cae(param_1,param_5,param_5 + param_4);\n      local_db = FUN_00130cfd(local_130);\n    }\n    if (DAT_001774e8 == 0) {\n      if (local_130 != 0 || param_8 != (undefined8 *)0x0) goto LAB_00133682;\n      uVar9 = 0x2000;\n      lVar6 = 0;\n    }\n    else {\n      DAT_00176e60 = 0;\n      DAT_00176e68 = 0.0;\n      DAT_00176e70 = 0.0;\nLAB_00133682:\n      lVar6 = FUN_00130d6b();\n      if ((DAT_001774e8 == 0) || (uVar9 = DAT_001774e8, 0x1fff < (long)DAT_001774e8)) {\n        uVar9 = 0x2000;\n      }\n    }\n    local_da = param_8 != (undefined8 *)0x0;\n    local_dc = local_130 != 0;\n    iVar3 = (int)uVar9;\n    uVar12 = 0;\n    lVar13 = 0;\n    local_110 = 0.0;\n    iVar5 = 0;\n    while ((dVar18 = DAT_001774b0, uVar2 == 0 || (lVar13 < param_4))) {\n      if ((param_9 & 4) == 0) {\n        uVar10 = uVar9 & 0xffffffff;\n        if (uVar2 != 0) {\n          uVar10 = param_4 - lVar13;\n          if ((long)iVar3 < param_4 - lVar13) {\n            uVar10 = (long)iVar3;\n          }\n        }\n      }\n      else {\n        if (uVar12 == 0) {\n          pcVar7 = (char *)FUN_0013350a(param_2);\n          if (pcVar7 != (char *)0x0) {\n            if (param_10 != (FILE *)0x0) {\n              uVar12 = 0xffffffffffffffff;\n              pcVar11 = pcVar7;\n              do {\n                if (uVar12 == 0) break;\n                uVar12 = uVar12 - 1;\n                cVar1 = *pcVar11;\n                pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n              } while (cVar1 != '\0');\n              fwrite(pcVar7,1,~uVar12 - 1,param_10);\n            }\n            uVar12 = strtol(pcVar7,&local_c0,0x10);\n            free(pcVar7);\n            if (-1 < (long)uVar12) {\n              if (uVar12 != 0) goto LAB_00133ef7;\n              pcVar7 = (char *)FUN_0013350a(param_2);\n              iVar4 = -1;\n              if (pcVar7 != (char *)0x0) {\n                if (param_10 == (FILE *)0x0) goto LAB_001338bc;\n                uVar9 = 0xffffffffffffffff;\n                pcVar11 = pcVar7;\n                goto code_r0x001338a0;\n              }\n              goto LAB_00133a74;\n            }\n          }\n          iVar5 = -1;\n          break;\n        }\nLAB_00133ef7:\n        uVar10 = (long)iVar3;\n        if ((long)uVar12 < (long)iVar3) {\n          uVar10 = uVar12;\n        }\n      }\n      if (local_db == '\0') {\n        iVar5 = FUN_0010d64e(dVar18,param_2,__ptr,uVar10 & 0xffffffff);\nLAB_00133e68:\n        if (iVar5 < 1) break;\n        if (local_dc) {\n          FUN_00130ebd(lVar6);\nLAB_00133d9f:\n          local_110 = (double)FUN_00130f52(lVar6);\n        }\n        else if ((DAT_001774e8 != 0) || (local_da)) {\n          FUN_00130ebd(lVar6);\n          if (iVar5 < 1) goto LAB_00133ea0;\n          goto LAB_00133d9f;\n        }\n        lVar13 = lVar13 + iVar5;\n        if (__ptr_00 == (undefined8 *)0x0) {\n          iVar4 = FUN_00133125(param_3,param_10,__ptr,iVar5,&local_d0,&local_c8);\n          if (iVar4 < 0) goto LAB_00133a74;\n        }\n        else {\n          iVar4 = FUN_00133125(0,param_10,__ptr,iVar5,0,0);\n          if (iVar4 < 0) goto LAB_00133a74;\n          local_b8 = __ptr;\n          local_b0 = iVar5;\n          do {\n            local_98 = 0x8000;\n            local_a0 = __ptr_00;\n            iVar4 = inflate(&local_b8,0);\n            if (iVar4 == -3) {\nLAB_00133b59:\n              piVar8 = __errno_location();\n              *piVar8 = 0x16;\n              iVar4 = -1;\n              goto LAB_00133a74;\n            }\n            if (iVar4 < -2) {\n              if (iVar4 == -4) {\n                piVar8 = __errno_location();\n                *piVar8 = 0xc;\n                iVar4 = -1;\n                goto LAB_00133a74;\n              }\n            }\n            else if (iVar4 == 1) {\n              if (((param_4 != lVar13) && (uVar2 != 0)) && (DAT_001774fb != '\0')) {\n                FUN_0012bddf("zlib stream ended unexpectedly after %ld/%ld bytes\n",lVar13,param_4);\n              }\n            }\n            else if (iVar4 == 2) goto LAB_00133b59;\n            iVar4 = FUN_00133125(param_3,0,__ptr_00,0x8000 - local_98,&local_d0,&local_c8);\n            if (iVar4 < 0) goto LAB_00133a74;\n          } while (local_98 == 0);\n        }\n        if (((param_9 & 4) != 0) && (uVar12 = uVar12 - (long)iVar5, uVar12 == 0)) {\n          pcVar7 = (char *)FUN_0013350a(param_2);\n          if (pcVar7 == (char *)0x0) {\n            iVar5 = -1;\n            break;\n          }\n          if (param_10 != (FILE *)0x0) {\n            uVar10 = 0xffffffffffffffff;\n            pcVar11 = pcVar7;\n            do {\n              if (uVar10 == 0) break;\n              uVar10 = uVar10 - 1;\n              cVar1 = *pcVar11;\n              pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n            } while (cVar1 != '\0');\n            fwrite(pcVar7,1,~uVar10 - 1,param_10);\n          }\n          free(pcVar7);\n        }\nLAB_00133ea0:\n        if (DAT_001774e8 != 0) {\n          dVar16 = (double)FUN_00130f52(lVar6);\n          dVar18 = DAT_00176e70;\n          dVar16 = dVar16 - DAT_00176e68;\n          DAT_00176e60 = iVar5 + DAT_00176e60;\n          if (dVar16 < (double)DAT_00176e60 / (double)(long)DAT_001774e8) {\n            dVar17 = ((double)DAT_00176e60 / (double)(long)DAT_001774e8 - dVar16) + DAT_00176e70;\n            if (dVar17 < _DAT_0015c908) {\n              if (DAT_001774fb != '\0') {\n                uVar15 = FUN_0013d39d();\n                FUN_0012bddf(dVar17 * DAT_0015d650,dVar16,"deferring a %.2f ms sleep (%s/%.2f).\n",\n                             uVar15);\n              }\n              goto LAB_00133eae;\n            }\n            if (DAT_001774fb != '\0') {\n              uVar15 = FUN_0013d39d();\n              FUN_0012bddf(dVar17 * DAT_0015d650,dVar18,\n                           "\nsleeping %.2f ms for %s bytes, adjust %.2f ms\n",uVar15);\n            }\n            dVar18 = (double)FUN_00130f52(lVar6);\n            FUN_0013d652(dVar17);\n            dVar16 = (double)FUN_00130ebd(lVar6);\n            DAT_00176e70 = dVar17 - (dVar16 - dVar18);\n            if (DAT_00176e70 <= _DAT_0015c710) {\n              if (DAT_00176e70 < DAT_0015d658) {\n                DAT_00176e70 = DAT_0015d658;\n              }\n            }\n            else {\n              DAT_00176e70 = _DAT_0015c710;\n            }\n          }\n          DAT_00176e60 = 0;\n          DAT_00176e68 = (double)FUN_00130f52(lVar6);\n        }\n      }\n      else {\n        if (DAT_001774b0 != 0.0) {\n          dVar18 = (double)FUN_00130f52(lVar6);\n          if ((DAT_001774b0 < (dVar18 - local_110) + DAT_0015d648) &&\n             (DAT_001774b0 - (dVar18 - local_110) < 0.0)) {\n            piVar8 = __errno_location();\n            *piVar8 = 0x6e;\n            iVar4 = -1;\n            goto LAB_00133a74;\n          }\n        }\n        iVar5 = FUN_0010d64e(param_2,__ptr,uVar10 & 0xffffffff);\n        if (-1 < iVar5) goto LAB_00133e68;\n        piVar8 = __errno_location();\n        if (*piVar8 != 0x6e) break;\n        if (local_dc) {\n          FUN_00130ebd(lVar6);\n          iVar5 = 0;\n          goto LAB_00133ea0;\n        }\n        if ((DAT_001774e8 != 0) || (local_da)) {\n          FUN_00130ebd(lVar6);\n          iVar5 = 0;\n          goto LAB_00133ea0;\n        }\n        iVar5 = 0;\n      }\nLAB_00133eae:\n      if (local_dc) {\n        FUN_00130f52(lVar6);\n        FUN_00130d09(local_130,(long)iVar5);\n      }\n    }\n    iVar4 = -1;\n    if (-1 < iVar5) {\n      iVar4 = iVar5;\n    }\n    goto LAB_00133a74;\n  }" if (parenthesized_expression "((param_9 & 8) == 0)" ( (binary_expression "(param_9 & 8) == 0" (parenthesized_expression "(param_9 & 8)" ( (binary_expression "param_9 & 8" identifier & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_001335e1:\n    if ((param_9 & 2) != 0) {\n      local_d0 = param_5;\n    }\n    if (DAT_00177498 == 0) {\n      local_db = '\0';\n      local_130 = 0;\n    }\n    else {\n      if (local_d0 != 0) {\n        param_5 = 0;\n      }\n      if (DAT_001772f8 != (char *)0x0) {\n        uVar9 = 0xffffffffffffffff;\n        pcVar7 = DAT_001772f8;\n        do {\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar1 = *pcVar7;\n          pcVar7 = pcVar7 + (ulong)bVar14 * -2 + 1;\n        } while (cVar1 != '\0');\n        param_1 = param_1 + ~uVar9;\n      }\n      local_130 = FUN_00130cae(param_1,param_5,param_5 + param_4);\n      local_db = FUN_00130cfd(local_130);\n    }\n    if (DAT_001774e8 == 0) {\n      if (local_130 != 0 || param_8 != (undefined8 *)0x0) goto LAB_00133682;\n      uVar9 = 0x2000;\n      lVar6 = 0;\n    }\n    else {\n      DAT_00176e60 = 0;\n      DAT_00176e68 = 0.0;\n      DAT_00176e70 = 0.0;\nLAB_00133682:\n      lVar6 = FUN_00130d6b();\n      if ((DAT_001774e8 == 0) || (uVar9 = DAT_001774e8, 0x1fff < (long)DAT_001774e8)) {\n        uVar9 = 0x2000;\n      }\n    }\n    local_da = param_8 != (undefined8 *)0x0;\n    local_dc = local_130 != 0;\n    iVar3 = (int)uVar9;\n    uVar12 = 0;\n    lVar13 = 0;\n    local_110 = 0.0;\n    iVar5 = 0;\n    while ((dVar18 = DAT_001774b0, uVar2 == 0 || (lVar13 < param_4))) {\n      if ((param_9 & 4) == 0) {\n        uVar10 = uVar9 & 0xffffffff;\n        if (uVar2 != 0) {\n          uVar10 = param_4 - lVar13;\n          if ((long)iVar3 < param_4 - lVar13) {\n            uVar10 = (long)iVar3;\n          }\n        }\n      }\n      else {\n        if (uVar12 == 0) {\n          pcVar7 = (char *)FUN_0013350a(param_2);\n          if (pcVar7 != (char *)0x0) {\n            if (param_10 != (FILE *)0x0) {\n              uVar12 = 0xffffffffffffffff;\n              pcVar11 = pcVar7;\n              do {\n                if (uVar12 == 0) break;\n                uVar12 = uVar12 - 1;\n                cVar1 = *pcVar11;\n                pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n              } while (cVar1 != '\0');\n              fwrite(pcVar7,1,~uVar12 - 1,param_10);\n            }\n            uVar12 = strtol(pcVar7,&local_c0,0x10);\n            free(pcVar7);\n            if (-1 < (long)uVar12) {\n              if (uVar12 != 0) goto LAB_00133ef7;\n              pcVar7 = (char *)FUN_0013350a(param_2);\n              iVar4 = -1;\n              if (pcVar7 != (char *)0x0) {\n                if (param_10 == (FILE *)0x0) goto LAB_001338bc;\n                uVar9 = 0xffffffffffffffff;\n                pcVar11 = pcVar7;\n                goto code_r0x001338a0;\n              }\n              goto LAB_00133a74;\n            }\n          }\n          iVar5 = -1;\n          break;\n        }\nLAB_00133ef7:\n        uVar10 = (long)iVar3;\n        if ((long)uVar12 < (long)iVar3) {\n          uVar10 = uVar12;\n        }\n      }\n      if (local_db == '\0') {\n        iVar5 = FUN_0010d64e(dVar18,param_2,__ptr,uVar10 & 0xffffffff);\nLAB_00133e68:\n        if (iVar5 < 1) break;\n        if (local_dc) {\n          FUN_00130ebd(lVar6);\nLAB_00133d9f:\n          local_110 = (double)FUN_00130f52(lVar6);\n        }\n        else if ((DAT_001774e8 != 0) || (local_da)) {\n          FUN_00130ebd(lVar6);\n          if (iVar5 < 1) goto LAB_00133ea0;\n          goto LAB_00133d9f;\n        }\n        lVar13 = lVar13 + iVar5;\n        if (__ptr_00 == (undefined8 *)0x0) {\n          iVar4 = FUN_00133125(param_3,param_10,__ptr,iVar5,&local_d0,&local_c8);\n          if (iVar4 < 0) goto LAB_00133a74;\n        }\n        else {\n          iVar4 = FUN_00133125(0,param_10,__ptr,iVar5,0,0);\n          if (iVar4 < 0) goto LAB_00133a74;\n          local_b8 = __ptr;\n          local_b0 = iVar5;\n          do {\n            local_98 = 0x8000;\n            local_a0 = __ptr_00;\n            iVar4 = inflate(&local_b8,0);\n            if (iVar4 == -3) {\nLAB_00133b59:\n              piVar8 = __errno_location();\n              *piVar8 = 0x16;\n              iVar4 = -1;\n              goto LAB_00133a74;\n            }\n            if (iVar4 < -2) {\n              if (iVar4 == -4) {\n                piVar8 = __errno_location();\n                *piVar8 = 0xc;\n                iVar4 = -1;\n                goto LAB_00133a74;\n              }\n            }\n            else if (iVar4 == 1) {\n              if (((param_4 != lVar13) && (uVar2 != 0)) && (DAT_001774fb != '\0')) {\n                FUN_0012bddf("zlib stream ended unexpectedly after %ld/%ld bytes\n",lVar13,param_4);\n              }\n            }\n            else if (iVar4 == 2) goto LAB_00133b59;\n            iVar4 = FUN_00133125(param_3,0,__ptr_00,0x8000 - local_98,&local_d0,&local_c8);\n            if (iVar4 < 0) goto LAB_00133a74;\n          } while (local_98 == 0);\n        }\n        if (((param_9 & 4) != 0) && (uVar12 = uVar12 - (long)iVar5, uVar12 == 0)) {\n          pcVar7 = (char *)FUN_0013350a(param_2);\n          if (pcVar7 == (char *)0x0) {\n            iVar5 = -1;\n            break;\n          }\n          if (param_10 != (FILE *)0x0) {\n            uVar10 = 0xffffffffffffffff;\n            pcVar11 = pcVar7;\n            do {\n              if (uVar10 == 0) break;\n              uVar10 = uVar10 - 1;\n              cVar1 = *pcVar11;\n              pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n            } while (cVar1 != '\0');\n            fwrite(pcVar7,1,~uVar10 - 1,param_10);\n          }\n          free(pcVar7);\n        }\nLAB_00133ea0:\n        if (DAT_001774e8 != 0) {\n          dVar16 = (double)FUN_00130f52(lVar6);\n          dVar18 = DAT_00176e70;\n          dVar16 = dVar16 - DAT_00176e68;\n          DAT_00176e60 = iVar5 + DAT_00176e60;\n          if (dVar16 < (double)DAT_00176e60 / (double)(long)DAT_001774e8) {\n            dVar17 = ((double)DAT_00176e60 / (double)(long)DAT_001774e8 - dVar16) + DAT_00176e70;\n            if (dVar17 < _DAT_0015c908) {\n              if (DAT_001774fb != '\0') {\n                uVar15 = FUN_0013d39d();\n                FUN_0012bddf(dVar17 * DAT_0015d650,dVar16,"deferring a %.2f ms sleep (%s/%.2f).\n",\n                             uVar15);\n              }\n              goto LAB_00133eae;\n            }\n            if (DAT_001774fb != '\0') {\n              uVar15 = FUN_0013d39d();\n              FUN_0012bddf(dVar17 * DAT_0015d650,dVar18,\n                           "\nsleeping %.2f ms for %s bytes, adjust %.2f ms\n",uVar15);\n            }\n            dVar18 = (double)FUN_00130f52(lVar6);\n            FUN_0013d652(dVar17);\n            dVar16 = (double)FUN_00130ebd(lVar6);\n            DAT_00176e70 = dVar17 - (dVar16 - dVar18);\n            if (DAT_00176e70 <= _DAT_0015c710) {\n              if (DAT_00176e70 < DAT_0015d658) {\n                DAT_00176e70 = DAT_0015d658;\n              }\n            }\n            else {\n              DAT_00176e70 = _DAT_0015c710;\n            }\n          }\n          DAT_00176e60 = 0;\n          DAT_00176e68 = (double)FUN_00130f52(lVar6);\n        }\n      }\n      else {\n        if (DAT_001774b0 != 0.0) {\n          dVar18 = (double)FUN_00130f52(lVar6);\n          if ((DAT_001774b0 < (dVar18 - local_110) + DAT_0015d648) &&\n             (DAT_001774b0 - (dVar18 - local_110) < 0.0)) {\n            piVar8 = __errno_location();\n            *piVar8 = 0x6e;\n            iVar4 = -1;\n            goto LAB_00133a74;\n          }\n        }\n        iVar5 = FUN_0010d64e(param_2,__ptr,uVar10 & 0xffffffff);\n        if (-1 < iVar5) goto LAB_00133e68;\n        piVar8 = __errno_location();\n        if (*piVar8 != 0x6e) break;\n        if (local_dc) {\n          FUN_00130ebd(lVar6);\n          iVar5 = 0;\n          goto LAB_00133ea0;\n        }\n        if ((DAT_001774e8 != 0) || (local_da)) {\n          FUN_00130ebd(lVar6);\n          iVar5 = 0;\n          goto LAB_00133ea0;\n        }\n        iVar5 = 0;\n      }\nLAB_00133eae:\n      if (local_dc) {\n        FUN_00130f52(lVar6);\n        FUN_00130d09(local_130,(long)iVar5);\n      }\n    }\n    iVar4 = -1;\n    if (-1 < iVar5) {\n      iVar4 = iVar5;\n    }\n    goto LAB_00133a74;\n  }" { (labeled_statement "LAB_001335e1:\n    if ((param_9 & 2) != 0) {\n      local_d0 = param_5;\n    }" statement_identifier : (if_statement "if ((param_9 & 2) != 0) {\n      local_d0 = param_5;\n    }" if (parenthesized_expression "((param_9 & 2) != 0)" ( (binary_expression "(param_9 & 2) != 0" (parenthesized_expression "(param_9 & 2)" ( (binary_expression "param_9 & 2" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      local_d0 = param_5;\n    }" { (expression_statement "local_d0 = param_5;" (assignment_expression "local_d0 = param_5" identifier = identifier) ;) }))) (if_statement "if (DAT_00177498 == 0) {\n      local_db = '\0';\n      local_130 = 0;\n    }\n    else {\n      if (local_d0 != 0) {\n        param_5 = 0;\n      }\n      if (DAT_001772f8 != (char *)0x0) {\n        uVar9 = 0xffffffffffffffff;\n        pcVar7 = DAT_001772f8;\n        do {\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar1 = *pcVar7;\n          pcVar7 = pcVar7 + (ulong)bVar14 * -2 + 1;\n        } while (cVar1 != '\0');\n        param_1 = param_1 + ~uVar9;\n      }\n      local_130 = FUN_00130cae(param_1,param_5,param_5 + param_4);\n      local_db = FUN_00130cfd(local_130);\n    }" if (parenthesized_expression "(DAT_00177498 == 0)" ( (binary_expression "DAT_00177498 == 0" identifier == number_literal) )) (compound_statement "{\n      local_db = '\0';\n      local_130 = 0;\n    }" { (expression_statement "local_db = '\0';" (assignment_expression "local_db = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "local_130 = 0;" (assignment_expression "local_130 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      if (local_d0 != 0) {\n        param_5 = 0;\n      }\n      if (DAT_001772f8 != (char *)0x0) {\n        uVar9 = 0xffffffffffffffff;\n        pcVar7 = DAT_001772f8;\n        do {\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar1 = *pcVar7;\n          pcVar7 = pcVar7 + (ulong)bVar14 * -2 + 1;\n        } while (cVar1 != '\0');\n        param_1 = param_1 + ~uVar9;\n      }\n      local_130 = FUN_00130cae(param_1,param_5,param_5 + param_4);\n      local_db = FUN_00130cfd(local_130);\n    }" else (compound_statement "{\n      if (local_d0 != 0) {\n        param_5 = 0;\n      }\n      if (DAT_001772f8 != (char *)0x0) {\n        uVar9 = 0xffffffffffffffff;\n        pcVar7 = DAT_001772f8;\n        do {\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar1 = *pcVar7;\n          pcVar7 = pcVar7 + (ulong)bVar14 * -2 + 1;\n        } while (cVar1 != '\0');\n        param_1 = param_1 + ~uVar9;\n      }\n      local_130 = FUN_00130cae(param_1,param_5,param_5 + param_4);\n      local_db = FUN_00130cfd(local_130);\n    }" { (if_statement "if (local_d0 != 0) {\n        param_5 = 0;\n      }" if (parenthesized_expression "(local_d0 != 0)" ( (binary_expression "local_d0 != 0" identifier != number_literal) )) (compound_statement "{\n        param_5 = 0;\n      }" { (expression_statement "param_5 = 0;" (assignment_expression "param_5 = 0" identifier = number_literal) ;) })) (if_statement "if (DAT_001772f8 != (char *)0x0) {\n        uVar9 = 0xffffffffffffffff;\n        pcVar7 = DAT_001772f8;\n        do {\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar1 = *pcVar7;\n          pcVar7 = pcVar7 + (ulong)bVar14 * -2 + 1;\n        } while (cVar1 != '\0');\n        param_1 = param_1 + ~uVar9;\n      }" if (parenthesized_expression "(DAT_001772f8 != (char *)0x0)" ( (binary_expression "DAT_001772f8 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar9 = 0xffffffffffffffff;\n        pcVar7 = DAT_001772f8;\n        do {\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar1 = *pcVar7;\n          pcVar7 = pcVar7 + (ulong)bVar14 * -2 + 1;\n        } while (cVar1 != '\0');\n        param_1 = param_1 + ~uVar9;\n      }" { (expression_statement "uVar9 = 0xffffffffffffffff;" (assignment_expression "uVar9 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar7 = DAT_001772f8;" (assignment_expression "pcVar7 = DAT_001772f8" identifier = identifier) ;) (do_statement "do {\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar1 = *pcVar7;\n          pcVar7 = pcVar7 + (ulong)bVar14 * -2 + 1;\n        } while (cVar1 != '\0');" do (compound_statement "{\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar1 = *pcVar7;\n          pcVar7 = pcVar7 + (ulong)bVar14 * -2 + 1;\n        }" { (if_statement "if (uVar9 == 0) break;" if (parenthesized_expression "(uVar9 == 0)" ( (binary_expression "uVar9 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar9 = uVar9 - 1;" (assignment_expression "uVar9 = uVar9 - 1" identifier = (binary_expression "uVar9 - 1" identifier - number_literal)) ;) (expression_statement "cVar1 = *pcVar7;" (assignment_expression "cVar1 = *pcVar7" identifier = (pointer_expression "*pcVar7" * identifier)) ;) (expression_statement "pcVar7 = pcVar7 + (ulong)bVar14 * -2 + 1;" (assignment_expression "pcVar7 = pcVar7 + (ulong)bVar14 * -2 + 1" identifier = (binary_expression "pcVar7 + (ulong)bVar14 * -2 + 1" (binary_expression "pcVar7 + (ulong)bVar14 * -2" identifier + (binary_expression "(ulong)bVar14 * -2" (cast_expression "(ulong)bVar14" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar1 != '\0')" ( (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "param_1 = param_1 + ~uVar9;" (assignment_expression "param_1 = param_1 + ~uVar9" identifier = (binary_expression "param_1 + ~uVar9" identifier + (unary_expression "~uVar9" ~ identifier))) ;) })) (expression_statement "local_130 = FUN_00130cae(param_1,param_5,param_5 + param_4);" (assignment_expression "local_130 = FUN_00130cae(param_1,param_5,param_5 + param_4)" identifier = (call_expression "FUN_00130cae(param_1,param_5,param_5 + param_4)" identifier (argument_list "(param_1,param_5,param_5 + param_4)" ( identifier , identifier , (binary_expression "param_5 + param_4" identifier + identifier) )))) ;) (expression_statement "local_db = FUN_00130cfd(local_130);" (assignment_expression "local_db = FUN_00130cfd(local_130)" identifier = (call_expression "FUN_00130cfd(local_130)" identifier (argument_list "(local_130)" ( identifier )))) ;) }))) (if_statement "if (DAT_001774e8 == 0) {\n      if (local_130 != 0 || param_8 != (undefined8 *)0x0) goto LAB_00133682;\n      uVar9 = 0x2000;\n      lVar6 = 0;\n    }\n    else {\n      DAT_00176e60 = 0;\n      DAT_00176e68 = 0.0;\n      DAT_00176e70 = 0.0;\nLAB_00133682:\n      lVar6 = FUN_00130d6b();\n      if ((DAT_001774e8 == 0) || (uVar9 = DAT_001774e8, 0x1fff < (long)DAT_001774e8)) {\n        uVar9 = 0x2000;\n      }\n    }" if (parenthesized_expression "(DAT_001774e8 == 0)" ( (binary_expression "DAT_001774e8 == 0" identifier == number_literal) )) (compound_statement "{\n      if (local_130 != 0 || param_8 != (undefined8 *)0x0) goto LAB_00133682;\n      uVar9 = 0x2000;\n      lVar6 = 0;\n    }" { (if_statement "if (local_130 != 0 || param_8 != (undefined8 *)0x0) goto LAB_00133682;" if (parenthesized_expression "(local_130 != 0 || param_8 != (undefined8 *)0x0)" ( (binary_expression "local_130 != 0 || param_8 != (undefined8 *)0x0" (binary_expression "local_130 != 0" identifier != number_literal) || (binary_expression "param_8 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) )) (goto_statement "goto LAB_00133682;" goto statement_identifier ;)) (expression_statement "uVar9 = 0x2000;" (assignment_expression "uVar9 = 0x2000" identifier = number_literal) ;) (expression_statement "lVar6 = 0;" (assignment_expression "lVar6 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      DAT_00176e60 = 0;\n      DAT_00176e68 = 0.0;\n      DAT_00176e70 = 0.0;\nLAB_00133682:\n      lVar6 = FUN_00130d6b();\n      if ((DAT_001774e8 == 0) || (uVar9 = DAT_001774e8, 0x1fff < (long)DAT_001774e8)) {\n        uVar9 = 0x2000;\n      }\n    }" else (compound_statement "{\n      DAT_00176e60 = 0;\n      DAT_00176e68 = 0.0;\n      DAT_00176e70 = 0.0;\nLAB_00133682:\n      lVar6 = FUN_00130d6b();\n      if ((DAT_001774e8 == 0) || (uVar9 = DAT_001774e8, 0x1fff < (long)DAT_001774e8)) {\n        uVar9 = 0x2000;\n      }\n    }" { (expression_statement "DAT_00176e60 = 0;" (assignment_expression "DAT_00176e60 = 0" identifier = number_literal) ;) (expression_statement "DAT_00176e68 = 0.0;" (assignment_expression "DAT_00176e68 = 0.0" identifier = number_literal) ;) (expression_statement "DAT_00176e70 = 0.0;" (assignment_expression "DAT_00176e70 = 0.0" identifier = number_literal) ;) (labeled_statement "LAB_00133682:\n      lVar6 = FUN_00130d6b();" statement_identifier : (expression_statement "lVar6 = FUN_00130d6b();" (assignment_expression "lVar6 = FUN_00130d6b()" identifier = (call_expression "FUN_00130d6b()" identifier (argument_list "()" ( )))) ;)) (if_statement "if ((DAT_001774e8 == 0) || (uVar9 = DAT_001774e8, 0x1fff < (long)DAT_001774e8)) {\n        uVar9 = 0x2000;\n      }" if (parenthesized_expression "((DAT_001774e8 == 0) || (uVar9 = DAT_001774e8, 0x1fff < (long)DAT_001774e8))" ( (binary_expression "(DAT_001774e8 == 0) || (uVar9 = DAT_001774e8, 0x1fff < (long)DAT_001774e8)" (parenthesized_expression "(DAT_001774e8 == 0)" ( (binary_expression "DAT_001774e8 == 0" identifier == number_literal) )) || (parenthesized_expression "(uVar9 = DAT_001774e8, 0x1fff < (long)DAT_001774e8)" ( (comma_expression "uVar9 = DAT_001774e8, 0x1fff < (long)DAT_001774e8" (assignment_expression "uVar9 = DAT_001774e8" identifier = identifier) , (binary_expression "0x1fff < (long)DAT_001774e8" number_literal < (cast_expression "(long)DAT_001774e8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ))) )) (compound_statement "{\n        uVar9 = 0x2000;\n      }" { (expression_statement "uVar9 = 0x2000;" (assignment_expression "uVar9 = 0x2000" identifier = number_literal) ;) })) }))) (expression_statement "local_da = param_8 != (undefined8 *)0x0;" (assignment_expression "local_da = param_8 != (undefined8 *)0x0" identifier = (binary_expression "param_8 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "local_dc = local_130 != 0;" (assignment_expression "local_dc = local_130 != 0" identifier = (binary_expression "local_130 != 0" identifier != number_literal)) ;) (expression_statement "iVar3 = (int)uVar9;" (assignment_expression "iVar3 = (int)uVar9" identifier = (cast_expression "(int)uVar9" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) (expression_statement "lVar13 = 0;" (assignment_expression "lVar13 = 0" identifier = number_literal) ;) (expression_statement "local_110 = 0.0;" (assignment_expression "local_110 = 0.0" identifier = number_literal) ;) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (while_statement "while ((dVar18 = DAT_001774b0, uVar2 == 0 || (lVar13 < param_4))) {\n      if ((param_9 & 4) == 0) {\n        uVar10 = uVar9 & 0xffffffff;\n        if (uVar2 != 0) {\n          uVar10 = param_4 - lVar13;\n          if ((long)iVar3 < param_4 - lVar13) {\n            uVar10 = (long)iVar3;\n          }\n        }\n      }\n      else {\n        if (uVar12 == 0) {\n          pcVar7 = (char *)FUN_0013350a(param_2);\n          if (pcVar7 != (char *)0x0) {\n            if (param_10 != (FILE *)0x0) {\n              uVar12 = 0xffffffffffffffff;\n              pcVar11 = pcVar7;\n              do {\n                if (uVar12 == 0) break;\n                uVar12 = uVar12 - 1;\n                cVar1 = *pcVar11;\n                pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n              } while (cVar1 != '\0');\n              fwrite(pcVar7,1,~uVar12 - 1,param_10);\n            }\n            uVar12 = strtol(pcVar7,&local_c0,0x10);\n            free(pcVar7);\n            if (-1 < (long)uVar12) {\n              if (uVar12 != 0) goto LAB_00133ef7;\n              pcVar7 = (char *)FUN_0013350a(param_2);\n              iVar4 = -1;\n              if (pcVar7 != (char *)0x0) {\n                if (param_10 == (FILE *)0x0) goto LAB_001338bc;\n                uVar9 = 0xffffffffffffffff;\n                pcVar11 = pcVar7;\n                goto code_r0x001338a0;\n              }\n              goto LAB_00133a74;\n            }\n          }\n          iVar5 = -1;\n          break;\n        }\nLAB_00133ef7:\n        uVar10 = (long)iVar3;\n        if ((long)uVar12 < (long)iVar3) {\n          uVar10 = uVar12;\n        }\n      }\n      if (local_db == '\0') {\n        iVar5 = FUN_0010d64e(dVar18,param_2,__ptr,uVar10 & 0xffffffff);\nLAB_00133e68:\n        if (iVar5 < 1) break;\n        if (local_dc) {\n          FUN_00130ebd(lVar6);\nLAB_00133d9f:\n          local_110 = (double)FUN_00130f52(lVar6);\n        }\n        else if ((DAT_001774e8 != 0) || (local_da)) {\n          FUN_00130ebd(lVar6);\n          if (iVar5 < 1) goto LAB_00133ea0;\n          goto LAB_00133d9f;\n        }\n        lVar13 = lVar13 + iVar5;\n        if (__ptr_00 == (undefined8 *)0x0) {\n          iVar4 = FUN_00133125(param_3,param_10,__ptr,iVar5,&local_d0,&local_c8);\n          if (iVar4 < 0) goto LAB_00133a74;\n        }\n        else {\n          iVar4 = FUN_00133125(0,param_10,__ptr,iVar5,0,0);\n          if (iVar4 < 0) goto LAB_00133a74;\n          local_b8 = __ptr;\n          local_b0 = iVar5;\n          do {\n            local_98 = 0x8000;\n            local_a0 = __ptr_00;\n            iVar4 = inflate(&local_b8,0);\n            if (iVar4 == -3) {\nLAB_00133b59:\n              piVar8 = __errno_location();\n              *piVar8 = 0x16;\n              iVar4 = -1;\n              goto LAB_00133a74;\n            }\n            if (iVar4 < -2) {\n              if (iVar4 == -4) {\n                piVar8 = __errno_location();\n                *piVar8 = 0xc;\n                iVar4 = -1;\n                goto LAB_00133a74;\n              }\n            }\n            else if (iVar4 == 1) {\n              if (((param_4 != lVar13) && (uVar2 != 0)) && (DAT_001774fb != '\0')) {\n                FUN_0012bddf("zlib stream ended unexpectedly after %ld/%ld bytes\n",lVar13,param_4);\n              }\n            }\n            else if (iVar4 == 2) goto LAB_00133b59;\n            iVar4 = FUN_00133125(param_3,0,__ptr_00,0x8000 - local_98,&local_d0,&local_c8);\n            if (iVar4 < 0) goto LAB_00133a74;\n          } while (local_98 == 0);\n        }\n        if (((param_9 & 4) != 0) && (uVar12 = uVar12 - (long)iVar5, uVar12 == 0)) {\n          pcVar7 = (char *)FUN_0013350a(param_2);\n          if (pcVar7 == (char *)0x0) {\n            iVar5 = -1;\n            break;\n          }\n          if (param_10 != (FILE *)0x0) {\n            uVar10 = 0xffffffffffffffff;\n            pcVar11 = pcVar7;\n            do {\n              if (uVar10 == 0) break;\n              uVar10 = uVar10 - 1;\n              cVar1 = *pcVar11;\n              pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n            } while (cVar1 != '\0');\n            fwrite(pcVar7,1,~uVar10 - 1,param_10);\n          }\n          free(pcVar7);\n        }\nLAB_00133ea0:\n        if (DAT_001774e8 != 0) {\n          dVar16 = (double)FUN_00130f52(lVar6);\n          dVar18 = DAT_00176e70;\n          dVar16 = dVar16 - DAT_00176e68;\n          DAT_00176e60 = iVar5 + DAT_00176e60;\n          if (dVar16 < (double)DAT_00176e60 / (double)(long)DAT_001774e8) {\n            dVar17 = ((double)DAT_00176e60 / (double)(long)DAT_001774e8 - dVar16) + DAT_00176e70;\n            if (dVar17 < _DAT_0015c908) {\n              if (DAT_001774fb != '\0') {\n                uVar15 = FUN_0013d39d();\n                FUN_0012bddf(dVar17 * DAT_0015d650,dVar16,"deferring a %.2f ms sleep (%s/%.2f).\n",\n                             uVar15);\n              }\n              goto LAB_00133eae;\n            }\n            if (DAT_001774fb != '\0') {\n              uVar15 = FUN_0013d39d();\n              FUN_0012bddf(dVar17 * DAT_0015d650,dVar18,\n                           "\nsleeping %.2f ms for %s bytes, adjust %.2f ms\n",uVar15);\n            }\n            dVar18 = (double)FUN_00130f52(lVar6);\n            FUN_0013d652(dVar17);\n            dVar16 = (double)FUN_00130ebd(lVar6);\n            DAT_00176e70 = dVar17 - (dVar16 - dVar18);\n            if (DAT_00176e70 <= _DAT_0015c710) {\n              if (DAT_00176e70 < DAT_0015d658) {\n                DAT_00176e70 = DAT_0015d658;\n              }\n            }\n            else {\n              DAT_00176e70 = _DAT_0015c710;\n            }\n          }\n          DAT_00176e60 = 0;\n          DAT_00176e68 = (double)FUN_00130f52(lVar6);\n        }\n      }\n      else {\n        if (DAT_001774b0 != 0.0) {\n          dVar18 = (double)FUN_00130f52(lVar6);\n          if ((DAT_001774b0 < (dVar18 - local_110) + DAT_0015d648) &&\n             (DAT_001774b0 - (dVar18 - local_110) < 0.0)) {\n            piVar8 = __errno_location();\n            *piVar8 = 0x6e;\n            iVar4 = -1;\n            goto LAB_00133a74;\n          }\n        }\n        iVar5 = FUN_0010d64e(param_2,__ptr,uVar10 & 0xffffffff);\n        if (-1 < iVar5) goto LAB_00133e68;\n        piVar8 = __errno_location();\n        if (*piVar8 != 0x6e) break;\n        if (local_dc) {\n          FUN_00130ebd(lVar6);\n          iVar5 = 0;\n          goto LAB_00133ea0;\n        }\n        if ((DAT_001774e8 != 0) || (local_da)) {\n          FUN_00130ebd(lVar6);\n          iVar5 = 0;\n          goto LAB_00133ea0;\n        }\n        iVar5 = 0;\n      }\nLAB_00133eae:\n      if (local_dc) {\n        FUN_00130f52(lVar6);\n        FUN_00130d09(local_130,(long)iVar5);\n      }\n    }" while (parenthesized_expression "((dVar18 = DAT_001774b0, uVar2 == 0 || (lVar13 < param_4)))" ( (parenthesized_expression "(dVar18 = DAT_001774b0, uVar2 == 0 || (lVar13 < param_4))" ( (comma_expression "dVar18 = DAT_001774b0, uVar2 == 0 || (lVar13 < param_4)" (assignment_expression "dVar18 = DAT_001774b0" identifier = identifier) , (binary_expression "uVar2 == 0 || (lVar13 < param_4)" (binary_expression "uVar2 == 0" identifier == number_literal) || (parenthesized_expression "(lVar13 < param_4)" ( (binary_expression "lVar13 < param_4" identifier < identifier) )))) )) )) (compound_statement "{\n      if ((param_9 & 4) == 0) {\n        uVar10 = uVar9 & 0xffffffff;\n        if (uVar2 != 0) {\n          uVar10 = param_4 - lVar13;\n          if ((long)iVar3 < param_4 - lVar13) {\n            uVar10 = (long)iVar3;\n          }\n        }\n      }\n      else {\n        if (uVar12 == 0) {\n          pcVar7 = (char *)FUN_0013350a(param_2);\n          if (pcVar7 != (char *)0x0) {\n            if (param_10 != (FILE *)0x0) {\n              uVar12 = 0xffffffffffffffff;\n              pcVar11 = pcVar7;\n              do {\n                if (uVar12 == 0) break;\n                uVar12 = uVar12 - 1;\n                cVar1 = *pcVar11;\n                pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n              } while (cVar1 != '\0');\n              fwrite(pcVar7,1,~uVar12 - 1,param_10);\n            }\n            uVar12 = strtol(pcVar7,&local_c0,0x10);\n            free(pcVar7);\n            if (-1 < (long)uVar12) {\n              if (uVar12 != 0) goto LAB_00133ef7;\n              pcVar7 = (char *)FUN_0013350a(param_2);\n              iVar4 = -1;\n              if (pcVar7 != (char *)0x0) {\n                if (param_10 == (FILE *)0x0) goto LAB_001338bc;\n                uVar9 = 0xffffffffffffffff;\n                pcVar11 = pcVar7;\n                goto code_r0x001338a0;\n              }\n              goto LAB_00133a74;\n            }\n          }\n          iVar5 = -1;\n          break;\n        }\nLAB_00133ef7:\n        uVar10 = (long)iVar3;\n        if ((long)uVar12 < (long)iVar3) {\n          uVar10 = uVar12;\n        }\n      }\n      if (local_db == '\0') {\n        iVar5 = FUN_0010d64e(dVar18,param_2,__ptr,uVar10 & 0xffffffff);\nLAB_00133e68:\n        if (iVar5 < 1) break;\n        if (local_dc) {\n          FUN_00130ebd(lVar6);\nLAB_00133d9f:\n          local_110 = (double)FUN_00130f52(lVar6);\n        }\n        else if ((DAT_001774e8 != 0) || (local_da)) {\n          FUN_00130ebd(lVar6);\n          if (iVar5 < 1) goto LAB_00133ea0;\n          goto LAB_00133d9f;\n        }\n        lVar13 = lVar13 + iVar5;\n        if (__ptr_00 == (undefined8 *)0x0) {\n          iVar4 = FUN_00133125(param_3,param_10,__ptr,iVar5,&local_d0,&local_c8);\n          if (iVar4 < 0) goto LAB_00133a74;\n        }\n        else {\n          iVar4 = FUN_00133125(0,param_10,__ptr,iVar5,0,0);\n          if (iVar4 < 0) goto LAB_00133a74;\n          local_b8 = __ptr;\n          local_b0 = iVar5;\n          do {\n            local_98 = 0x8000;\n            local_a0 = __ptr_00;\n            iVar4 = inflate(&local_b8,0);\n            if (iVar4 == -3) {\nLAB_00133b59:\n              piVar8 = __errno_location();\n              *piVar8 = 0x16;\n              iVar4 = -1;\n              goto LAB_00133a74;\n            }\n            if (iVar4 < -2) {\n              if (iVar4 == -4) {\n                piVar8 = __errno_location();\n                *piVar8 = 0xc;\n                iVar4 = -1;\n                goto LAB_00133a74;\n              }\n            }\n            else if (iVar4 == 1) {\n              if (((param_4 != lVar13) && (uVar2 != 0)) && (DAT_001774fb != '\0')) {\n                FUN_0012bddf("zlib stream ended unexpectedly after %ld/%ld bytes\n",lVar13,param_4);\n              }\n            }\n            else if (iVar4 == 2) goto LAB_00133b59;\n            iVar4 = FUN_00133125(param_3,0,__ptr_00,0x8000 - local_98,&local_d0,&local_c8);\n            if (iVar4 < 0) goto LAB_00133a74;\n          } while (local_98 == 0);\n        }\n        if (((param_9 & 4) != 0) && (uVar12 = uVar12 - (long)iVar5, uVar12 == 0)) {\n          pcVar7 = (char *)FUN_0013350a(param_2);\n          if (pcVar7 == (char *)0x0) {\n            iVar5 = -1;\n            break;\n          }\n          if (param_10 != (FILE *)0x0) {\n            uVar10 = 0xffffffffffffffff;\n            pcVar11 = pcVar7;\n            do {\n              if (uVar10 == 0) break;\n              uVar10 = uVar10 - 1;\n              cVar1 = *pcVar11;\n              pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n            } while (cVar1 != '\0');\n            fwrite(pcVar7,1,~uVar10 - 1,param_10);\n          }\n          free(pcVar7);\n        }\nLAB_00133ea0:\n        if (DAT_001774e8 != 0) {\n          dVar16 = (double)FUN_00130f52(lVar6);\n          dVar18 = DAT_00176e70;\n          dVar16 = dVar16 - DAT_00176e68;\n          DAT_00176e60 = iVar5 + DAT_00176e60;\n          if (dVar16 < (double)DAT_00176e60 / (double)(long)DAT_001774e8) {\n            dVar17 = ((double)DAT_00176e60 / (double)(long)DAT_001774e8 - dVar16) + DAT_00176e70;\n            if (dVar17 < _DAT_0015c908) {\n              if (DAT_001774fb != '\0') {\n                uVar15 = FUN_0013d39d();\n                FUN_0012bddf(dVar17 * DAT_0015d650,dVar16,"deferring a %.2f ms sleep (%s/%.2f).\n",\n                             uVar15);\n              }\n              goto LAB_00133eae;\n            }\n            if (DAT_001774fb != '\0') {\n              uVar15 = FUN_0013d39d();\n              FUN_0012bddf(dVar17 * DAT_0015d650,dVar18,\n                           "\nsleeping %.2f ms for %s bytes, adjust %.2f ms\n",uVar15);\n            }\n            dVar18 = (double)FUN_00130f52(lVar6);\n            FUN_0013d652(dVar17);\n            dVar16 = (double)FUN_00130ebd(lVar6);\n            DAT_00176e70 = dVar17 - (dVar16 - dVar18);\n            if (DAT_00176e70 <= _DAT_0015c710) {\n              if (DAT_00176e70 < DAT_0015d658) {\n                DAT_00176e70 = DAT_0015d658;\n              }\n            }\n            else {\n              DAT_00176e70 = _DAT_0015c710;\n            }\n          }\n          DAT_00176e60 = 0;\n          DAT_00176e68 = (double)FUN_00130f52(lVar6);\n        }\n      }\n      else {\n        if (DAT_001774b0 != 0.0) {\n          dVar18 = (double)FUN_00130f52(lVar6);\n          if ((DAT_001774b0 < (dVar18 - local_110) + DAT_0015d648) &&\n             (DAT_001774b0 - (dVar18 - local_110) < 0.0)) {\n            piVar8 = __errno_location();\n            *piVar8 = 0x6e;\n            iVar4 = -1;\n            goto LAB_00133a74;\n          }\n        }\n        iVar5 = FUN_0010d64e(param_2,__ptr,uVar10 & 0xffffffff);\n        if (-1 < iVar5) goto LAB_00133e68;\n        piVar8 = __errno_location();\n        if (*piVar8 != 0x6e) break;\n        if (local_dc) {\n          FUN_00130ebd(lVar6);\n          iVar5 = 0;\n          goto LAB_00133ea0;\n        }\n        if ((DAT_001774e8 != 0) || (local_da)) {\n          FUN_00130ebd(lVar6);\n          iVar5 = 0;\n          goto LAB_00133ea0;\n        }\n        iVar5 = 0;\n      }\nLAB_00133eae:\n      if (local_dc) {\n        FUN_00130f52(lVar6);\n        FUN_00130d09(local_130,(long)iVar5);\n      }\n    }" { (if_statement "if ((param_9 & 4) == 0) {\n        uVar10 = uVar9 & 0xffffffff;\n        if (uVar2 != 0) {\n          uVar10 = param_4 - lVar13;\n          if ((long)iVar3 < param_4 - lVar13) {\n            uVar10 = (long)iVar3;\n          }\n        }\n      }\n      else {\n        if (uVar12 == 0) {\n          pcVar7 = (char *)FUN_0013350a(param_2);\n          if (pcVar7 != (char *)0x0) {\n            if (param_10 != (FILE *)0x0) {\n              uVar12 = 0xffffffffffffffff;\n              pcVar11 = pcVar7;\n              do {\n                if (uVar12 == 0) break;\n                uVar12 = uVar12 - 1;\n                cVar1 = *pcVar11;\n                pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n              } while (cVar1 != '\0');\n              fwrite(pcVar7,1,~uVar12 - 1,param_10);\n            }\n            uVar12 = strtol(pcVar7,&local_c0,0x10);\n            free(pcVar7);\n            if (-1 < (long)uVar12) {\n              if (uVar12 != 0) goto LAB_00133ef7;\n              pcVar7 = (char *)FUN_0013350a(param_2);\n              iVar4 = -1;\n              if (pcVar7 != (char *)0x0) {\n                if (param_10 == (FILE *)0x0) goto LAB_001338bc;\n                uVar9 = 0xffffffffffffffff;\n                pcVar11 = pcVar7;\n                goto code_r0x001338a0;\n              }\n              goto LAB_00133a74;\n            }\n          }\n          iVar5 = -1;\n          break;\n        }\nLAB_00133ef7:\n        uVar10 = (long)iVar3;\n        if ((long)uVar12 < (long)iVar3) {\n          uVar10 = uVar12;\n        }\n      }" if (parenthesized_expression "((param_9 & 4) == 0)" ( (binary_expression "(param_9 & 4) == 0" (parenthesized_expression "(param_9 & 4)" ( (binary_expression "param_9 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        uVar10 = uVar9 & 0xffffffff;\n        if (uVar2 != 0) {\n          uVar10 = param_4 - lVar13;\n          if ((long)iVar3 < param_4 - lVar13) {\n            uVar10 = (long)iVar3;\n          }\n        }\n      }" { (expression_statement "uVar10 = uVar9 & 0xffffffff;" (assignment_expression "uVar10 = uVar9 & 0xffffffff" identifier = (binary_expression "uVar9 & 0xffffffff" identifier & number_literal)) ;) (if_statement "if (uVar2 != 0) {\n          uVar10 = param_4 - lVar13;\n          if ((long)iVar3 < param_4 - lVar13) {\n            uVar10 = (long)iVar3;\n          }\n        }" if (parenthesized_expression "(uVar2 != 0)" ( (binary_expression "uVar2 != 0" identifier != number_literal) )) (compound_statement "{\n          uVar10 = param_4 - lVar13;\n          if ((long)iVar3 < param_4 - lVar13) {\n            uVar10 = (long)iVar3;\n          }\n        }" { (expression_statement "uVar10 = param_4 - lVar13;" (assignment_expression "uVar10 = param_4 - lVar13" identifier = (binary_expression "param_4 - lVar13" identifier - identifier)) ;) (if_statement "if ((long)iVar3 < param_4 - lVar13) {\n            uVar10 = (long)iVar3;\n          }" if (parenthesized_expression "((long)iVar3 < param_4 - lVar13)" ( (binary_expression "(long)iVar3 < param_4 - lVar13" (cast_expression "(long)iVar3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) < (binary_expression "param_4 - lVar13" identifier - identifier)) )) (compound_statement "{\n            uVar10 = (long)iVar3;\n          }" { (expression_statement "uVar10 = (long)iVar3;" (assignment_expression "uVar10 = (long)iVar3" identifier = (cast_expression "(long)iVar3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) })) })) }) (else_clause "else {\n        if (uVar12 == 0) {\n          pcVar7 = (char *)FUN_0013350a(param_2);\n          if (pcVar7 != (char *)0x0) {\n            if (param_10 != (FILE *)0x0) {\n              uVar12 = 0xffffffffffffffff;\n              pcVar11 = pcVar7;\n              do {\n                if (uVar12 == 0) break;\n                uVar12 = uVar12 - 1;\n                cVar1 = *pcVar11;\n                pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n              } while (cVar1 != '\0');\n              fwrite(pcVar7,1,~uVar12 - 1,param_10);\n            }\n            uVar12 = strtol(pcVar7,&local_c0,0x10);\n            free(pcVar7);\n            if (-1 < (long)uVar12) {\n              if (uVar12 != 0) goto LAB_00133ef7;\n              pcVar7 = (char *)FUN_0013350a(param_2);\n              iVar4 = -1;\n              if (pcVar7 != (char *)0x0) {\n                if (param_10 == (FILE *)0x0) goto LAB_001338bc;\n                uVar9 = 0xffffffffffffffff;\n                pcVar11 = pcVar7;\n                goto code_r0x001338a0;\n              }\n              goto LAB_00133a74;\n            }\n          }\n          iVar5 = -1;\n          break;\n        }\nLAB_00133ef7:\n        uVar10 = (long)iVar3;\n        if ((long)uVar12 < (long)iVar3) {\n          uVar10 = uVar12;\n        }\n      }" else (compound_statement "{\n        if (uVar12 == 0) {\n          pcVar7 = (char *)FUN_0013350a(param_2);\n          if (pcVar7 != (char *)0x0) {\n            if (param_10 != (FILE *)0x0) {\n              uVar12 = 0xffffffffffffffff;\n              pcVar11 = pcVar7;\n              do {\n                if (uVar12 == 0) break;\n                uVar12 = uVar12 - 1;\n                cVar1 = *pcVar11;\n                pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n              } while (cVar1 != '\0');\n              fwrite(pcVar7,1,~uVar12 - 1,param_10);\n            }\n            uVar12 = strtol(pcVar7,&local_c0,0x10);\n            free(pcVar7);\n            if (-1 < (long)uVar12) {\n              if (uVar12 != 0) goto LAB_00133ef7;\n              pcVar7 = (char *)FUN_0013350a(param_2);\n              iVar4 = -1;\n              if (pcVar7 != (char *)0x0) {\n                if (param_10 == (FILE *)0x0) goto LAB_001338bc;\n                uVar9 = 0xffffffffffffffff;\n                pcVar11 = pcVar7;\n                goto code_r0x001338a0;\n              }\n              goto LAB_00133a74;\n            }\n          }\n          iVar5 = -1;\n          break;\n        }\nLAB_00133ef7:\n        uVar10 = (long)iVar3;\n        if ((long)uVar12 < (long)iVar3) {\n          uVar10 = uVar12;\n        }\n      }" { (if_statement "if (uVar12 == 0) {\n          pcVar7 = (char *)FUN_0013350a(param_2);\n          if (pcVar7 != (char *)0x0) {\n            if (param_10 != (FILE *)0x0) {\n              uVar12 = 0xffffffffffffffff;\n              pcVar11 = pcVar7;\n              do {\n                if (uVar12 == 0) break;\n                uVar12 = uVar12 - 1;\n                cVar1 = *pcVar11;\n                pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n              } while (cVar1 != '\0');\n              fwrite(pcVar7,1,~uVar12 - 1,param_10);\n            }\n            uVar12 = strtol(pcVar7,&local_c0,0x10);\n            free(pcVar7);\n            if (-1 < (long)uVar12) {\n              if (uVar12 != 0) goto LAB_00133ef7;\n              pcVar7 = (char *)FUN_0013350a(param_2);\n              iVar4 = -1;\n              if (pcVar7 != (char *)0x0) {\n                if (param_10 == (FILE *)0x0) goto LAB_001338bc;\n                uVar9 = 0xffffffffffffffff;\n                pcVar11 = pcVar7;\n                goto code_r0x001338a0;\n              }\n              goto LAB_00133a74;\n            }\n          }\n          iVar5 = -1;\n          break;\n        }" if (parenthesized_expression "(uVar12 == 0)" ( (binary_expression "uVar12 == 0" identifier == number_literal) )) (compound_statement "{\n          pcVar7 = (char *)FUN_0013350a(param_2);\n          if (pcVar7 != (char *)0x0) {\n            if (param_10 != (FILE *)0x0) {\n              uVar12 = 0xffffffffffffffff;\n              pcVar11 = pcVar7;\n              do {\n                if (uVar12 == 0) break;\n                uVar12 = uVar12 - 1;\n                cVar1 = *pcVar11;\n                pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n              } while (cVar1 != '\0');\n              fwrite(pcVar7,1,~uVar12 - 1,param_10);\n            }\n            uVar12 = strtol(pcVar7,&local_c0,0x10);\n            free(pcVar7);\n            if (-1 < (long)uVar12) {\n              if (uVar12 != 0) goto LAB_00133ef7;\n              pcVar7 = (char *)FUN_0013350a(param_2);\n              iVar4 = -1;\n              if (pcVar7 != (char *)0x0) {\n                if (param_10 == (FILE *)0x0) goto LAB_001338bc;\n                uVar9 = 0xffffffffffffffff;\n                pcVar11 = pcVar7;\n                goto code_r0x001338a0;\n              }\n              goto LAB_00133a74;\n            }\n          }\n          iVar5 = -1;\n          break;\n        }" { (expression_statement "pcVar7 = (char *)FUN_0013350a(param_2);" (assignment_expression "pcVar7 = (char *)FUN_0013350a(param_2)" identifier = (cast_expression "(char *)FUN_0013350a(param_2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0013350a(param_2)" identifier (argument_list "(param_2)" ( identifier ))))) ;) (if_statement "if (pcVar7 != (char *)0x0) {\n            if (param_10 != (FILE *)0x0) {\n              uVar12 = 0xffffffffffffffff;\n              pcVar11 = pcVar7;\n              do {\n                if (uVar12 == 0) break;\n                uVar12 = uVar12 - 1;\n                cVar1 = *pcVar11;\n                pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n              } while (cVar1 != '\0');\n              fwrite(pcVar7,1,~uVar12 - 1,param_10);\n            }\n            uVar12 = strtol(pcVar7,&local_c0,0x10);\n            free(pcVar7);\n            if (-1 < (long)uVar12) {\n              if (uVar12 != 0) goto LAB_00133ef7;\n              pcVar7 = (char *)FUN_0013350a(param_2);\n              iVar4 = -1;\n              if (pcVar7 != (char *)0x0) {\n                if (param_10 == (FILE *)0x0) goto LAB_001338bc;\n                uVar9 = 0xffffffffffffffff;\n                pcVar11 = pcVar7;\n                goto code_r0x001338a0;\n              }\n              goto LAB_00133a74;\n            }\n          }" if (parenthesized_expression "(pcVar7 != (char *)0x0)" ( (binary_expression "pcVar7 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            if (param_10 != (FILE *)0x0) {\n              uVar12 = 0xffffffffffffffff;\n              pcVar11 = pcVar7;\n              do {\n                if (uVar12 == 0) break;\n                uVar12 = uVar12 - 1;\n                cVar1 = *pcVar11;\n                pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n              } while (cVar1 != '\0');\n              fwrite(pcVar7,1,~uVar12 - 1,param_10);\n            }\n            uVar12 = strtol(pcVar7,&local_c0,0x10);\n            free(pcVar7);\n            if (-1 < (long)uVar12) {\n              if (uVar12 != 0) goto LAB_00133ef7;\n              pcVar7 = (char *)FUN_0013350a(param_2);\n              iVar4 = -1;\n              if (pcVar7 != (char *)0x0) {\n                if (param_10 == (FILE *)0x0) goto LAB_001338bc;\n                uVar9 = 0xffffffffffffffff;\n                pcVar11 = pcVar7;\n                goto code_r0x001338a0;\n              }\n              goto LAB_00133a74;\n            }\n          }" { (if_statement "if (param_10 != (FILE *)0x0) {\n              uVar12 = 0xffffffffffffffff;\n              pcVar11 = pcVar7;\n              do {\n                if (uVar12 == 0) break;\n                uVar12 = uVar12 - 1;\n                cVar1 = *pcVar11;\n                pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n              } while (cVar1 != '\0');\n              fwrite(pcVar7,1,~uVar12 - 1,param_10);\n            }" if (parenthesized_expression "(param_10 != (FILE *)0x0)" ( (binary_expression "param_10 != (FILE *)0x0" identifier != (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              uVar12 = 0xffffffffffffffff;\n              pcVar11 = pcVar7;\n              do {\n                if (uVar12 == 0) break;\n                uVar12 = uVar12 - 1;\n                cVar1 = *pcVar11;\n                pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n              } while (cVar1 != '\0');\n              fwrite(pcVar7,1,~uVar12 - 1,param_10);\n            }" { (expression_statement "uVar12 = 0xffffffffffffffff;" (assignment_expression "uVar12 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar11 = pcVar7;" (assignment_expression "pcVar11 = pcVar7" identifier = identifier) ;) (do_statement "do {\n                if (uVar12 == 0) break;\n                uVar12 = uVar12 - 1;\n                cVar1 = *pcVar11;\n                pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n              } while (cVar1 != '\0');" do (compound_statement "{\n                if (uVar12 == 0) break;\n                uVar12 = uVar12 - 1;\n                cVar1 = *pcVar11;\n                pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n              }" { (if_statement "if (uVar12 == 0) break;" if (parenthesized_expression "(uVar12 == 0)" ( (binary_expression "uVar12 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar12 = uVar12 - 1;" (assignment_expression "uVar12 = uVar12 - 1" identifier = (binary_expression "uVar12 - 1" identifier - number_literal)) ;) (expression_statement "cVar1 = *pcVar11;" (assignment_expression "cVar1 = *pcVar11" identifier = (pointer_expression "*pcVar11" * identifier)) ;) (expression_statement "pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;" (assignment_expression "pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1" identifier = (binary_expression "pcVar11 + (ulong)bVar14 * -2 + 1" (binary_expression "pcVar11 + (ulong)bVar14 * -2" identifier + (binary_expression "(ulong)bVar14 * -2" (cast_expression "(ulong)bVar14" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar1 != '\0')" ( (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "fwrite(pcVar7,1,~uVar12 - 1,param_10);" (call_expression "fwrite(pcVar7,1,~uVar12 - 1,param_10)" identifier (argument_list "(pcVar7,1,~uVar12 - 1,param_10)" ( identifier , number_literal , (binary_expression "~uVar12 - 1" (unary_expression "~uVar12" ~ identifier) - number_literal) , identifier ))) ;) })) (expression_statement "uVar12 = strtol(pcVar7,&local_c0,0x10);" (assignment_expression "uVar12 = strtol(pcVar7,&local_c0,0x10)" identifier = (call_expression "strtol(pcVar7,&local_c0,0x10)" identifier (argument_list "(pcVar7,&local_c0,0x10)" ( identifier , (pointer_expression "&local_c0" & identifier) , number_literal )))) ;) (expression_statement "free(pcVar7);" (call_expression "free(pcVar7)" identifier (argument_list "(pcVar7)" ( identifier ))) ;) (if_statement "if (-1 < (long)uVar12) {\n              if (uVar12 != 0) goto LAB_00133ef7;\n              pcVar7 = (char *)FUN_0013350a(param_2);\n              iVar4 = -1;\n              if (pcVar7 != (char *)0x0) {\n                if (param_10 == (FILE *)0x0) goto LAB_001338bc;\n                uVar9 = 0xffffffffffffffff;\n                pcVar11 = pcVar7;\n                goto code_r0x001338a0;\n              }\n              goto LAB_00133a74;\n            }" if (parenthesized_expression "(-1 < (long)uVar12)" ( (binary_expression "-1 < (long)uVar12" number_literal < (cast_expression "(long)uVar12" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )) (compound_statement "{\n              if (uVar12 != 0) goto LAB_00133ef7;\n              pcVar7 = (char *)FUN_0013350a(param_2);\n              iVar4 = -1;\n              if (pcVar7 != (char *)0x0) {\n                if (param_10 == (FILE *)0x0) goto LAB_001338bc;\n                uVar9 = 0xffffffffffffffff;\n                pcVar11 = pcVar7;\n                goto code_r0x001338a0;\n              }\n              goto LAB_00133a74;\n            }" { (if_statement "if (uVar12 != 0) goto LAB_00133ef7;" if (parenthesized_expression "(uVar12 != 0)" ( (binary_expression "uVar12 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00133ef7;" goto statement_identifier ;)) (expression_statement "pcVar7 = (char *)FUN_0013350a(param_2);" (assignment_expression "pcVar7 = (char *)FUN_0013350a(param_2)" identifier = (cast_expression "(char *)FUN_0013350a(param_2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0013350a(param_2)" identifier (argument_list "(param_2)" ( identifier ))))) ;) (expression_statement "iVar4 = -1;" (assignment_expression "iVar4 = -1" identifier = number_literal) ;) (if_statement "if (pcVar7 != (char *)0x0) {\n                if (param_10 == (FILE *)0x0) goto LAB_001338bc;\n                uVar9 = 0xffffffffffffffff;\n                pcVar11 = pcVar7;\n                goto code_r0x001338a0;\n              }" if (parenthesized_expression "(pcVar7 != (char *)0x0)" ( (binary_expression "pcVar7 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                if (param_10 == (FILE *)0x0) goto LAB_001338bc;\n                uVar9 = 0xffffffffffffffff;\n                pcVar11 = pcVar7;\n                goto code_r0x001338a0;\n              }" { (if_statement "if (param_10 == (FILE *)0x0) goto LAB_001338bc;" if (parenthesized_expression "(param_10 == (FILE *)0x0)" ( (binary_expression "param_10 == (FILE *)0x0" identifier == (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_001338bc;" goto statement_identifier ;)) (expression_statement "uVar9 = 0xffffffffffffffff;" (assignment_expression "uVar9 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar11 = pcVar7;" (assignment_expression "pcVar11 = pcVar7" identifier = identifier) ;) (goto_statement "goto code_r0x001338a0;" goto statement_identifier ;) })) (goto_statement "goto LAB_00133a74;" goto statement_identifier ;) })) })) (expression_statement "iVar5 = -1;" (assignment_expression "iVar5 = -1" identifier = number_literal) ;) (break_statement "break;" break ;) })) (labeled_statement "LAB_00133ef7:\n        uVar10 = (long)iVar3;" statement_identifier : (expression_statement "uVar10 = (long)iVar3;" (assignment_expression "uVar10 = (long)iVar3" identifier = (cast_expression "(long)iVar3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;)) (if_statement "if ((long)uVar12 < (long)iVar3) {\n          uVar10 = uVar12;\n        }" if (parenthesized_expression "((long)uVar12 < (long)iVar3)" ( (binary_expression "(long)uVar12 < (long)iVar3" (cast_expression "(long)uVar12" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) < (cast_expression "(long)iVar3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )) (compound_statement "{\n          uVar10 = uVar12;\n        }" { (expression_statement "uVar10 = uVar12;" (assignment_expression "uVar10 = uVar12" identifier = identifier) ;) })) }))) (if_statement "if (local_db == '\0') {\n        iVar5 = FUN_0010d64e(dVar18,param_2,__ptr,uVar10 & 0xffffffff);\nLAB_00133e68:\n        if (iVar5 < 1) break;\n        if (local_dc) {\n          FUN_00130ebd(lVar6);\nLAB_00133d9f:\n          local_110 = (double)FUN_00130f52(lVar6);\n        }\n        else if ((DAT_001774e8 != 0) || (local_da)) {\n          FUN_00130ebd(lVar6);\n          if (iVar5 < 1) goto LAB_00133ea0;\n          goto LAB_00133d9f;\n        }\n        lVar13 = lVar13 + iVar5;\n        if (__ptr_00 == (undefined8 *)0x0) {\n          iVar4 = FUN_00133125(param_3,param_10,__ptr,iVar5,&local_d0,&local_c8);\n          if (iVar4 < 0) goto LAB_00133a74;\n        }\n        else {\n          iVar4 = FUN_00133125(0,param_10,__ptr,iVar5,0,0);\n          if (iVar4 < 0) goto LAB_00133a74;\n          local_b8 = __ptr;\n          local_b0 = iVar5;\n          do {\n            local_98 = 0x8000;\n            local_a0 = __ptr_00;\n            iVar4 = inflate(&local_b8,0);\n            if (iVar4 == -3) {\nLAB_00133b59:\n              piVar8 = __errno_location();\n              *piVar8 = 0x16;\n              iVar4 = -1;\n              goto LAB_00133a74;\n            }\n            if (iVar4 < -2) {\n              if (iVar4 == -4) {\n                piVar8 = __errno_location();\n                *piVar8 = 0xc;\n                iVar4 = -1;\n                goto LAB_00133a74;\n              }\n            }\n            else if (iVar4 == 1) {\n              if (((param_4 != lVar13) && (uVar2 != 0)) && (DAT_001774fb != '\0')) {\n                FUN_0012bddf("zlib stream ended unexpectedly after %ld/%ld bytes\n",lVar13,param_4);\n              }\n            }\n            else if (iVar4 == 2) goto LAB_00133b59;\n            iVar4 = FUN_00133125(param_3,0,__ptr_00,0x8000 - local_98,&local_d0,&local_c8);\n            if (iVar4 < 0) goto LAB_00133a74;\n          } while (local_98 == 0);\n        }\n        if (((param_9 & 4) != 0) && (uVar12 = uVar12 - (long)iVar5, uVar12 == 0)) {\n          pcVar7 = (char *)FUN_0013350a(param_2);\n          if (pcVar7 == (char *)0x0) {\n            iVar5 = -1;\n            break;\n          }\n          if (param_10 != (FILE *)0x0) {\n            uVar10 = 0xffffffffffffffff;\n            pcVar11 = pcVar7;\n            do {\n              if (uVar10 == 0) break;\n              uVar10 = uVar10 - 1;\n              cVar1 = *pcVar11;\n              pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n            } while (cVar1 != '\0');\n            fwrite(pcVar7,1,~uVar10 - 1,param_10);\n          }\n          free(pcVar7);\n        }\nLAB_00133ea0:\n        if (DAT_001774e8 != 0) {\n          dVar16 = (double)FUN_00130f52(lVar6);\n          dVar18 = DAT_00176e70;\n          dVar16 = dVar16 - DAT_00176e68;\n          DAT_00176e60 = iVar5 + DAT_00176e60;\n          if (dVar16 < (double)DAT_00176e60 / (double)(long)DAT_001774e8) {\n            dVar17 = ((double)DAT_00176e60 / (double)(long)DAT_001774e8 - dVar16) + DAT_00176e70;\n            if (dVar17 < _DAT_0015c908) {\n              if (DAT_001774fb != '\0') {\n                uVar15 = FUN_0013d39d();\n                FUN_0012bddf(dVar17 * DAT_0015d650,dVar16,"deferring a %.2f ms sleep (%s/%.2f).\n",\n                             uVar15);\n              }\n              goto LAB_00133eae;\n            }\n            if (DAT_001774fb != '\0') {\n              uVar15 = FUN_0013d39d();\n              FUN_0012bddf(dVar17 * DAT_0015d650,dVar18,\n                           "\nsleeping %.2f ms for %s bytes, adjust %.2f ms\n",uVar15);\n            }\n            dVar18 = (double)FUN_00130f52(lVar6);\n            FUN_0013d652(dVar17);\n            dVar16 = (double)FUN_00130ebd(lVar6);\n            DAT_00176e70 = dVar17 - (dVar16 - dVar18);\n            if (DAT_00176e70 <= _DAT_0015c710) {\n              if (DAT_00176e70 < DAT_0015d658) {\n                DAT_00176e70 = DAT_0015d658;\n              }\n            }\n            else {\n              DAT_00176e70 = _DAT_0015c710;\n            }\n          }\n          DAT_00176e60 = 0;\n          DAT_00176e68 = (double)FUN_00130f52(lVar6);\n        }\n      }\n      else {\n        if (DAT_001774b0 != 0.0) {\n          dVar18 = (double)FUN_00130f52(lVar6);\n          if ((DAT_001774b0 < (dVar18 - local_110) + DAT_0015d648) &&\n             (DAT_001774b0 - (dVar18 - local_110) < 0.0)) {\n            piVar8 = __errno_location();\n            *piVar8 = 0x6e;\n            iVar4 = -1;\n            goto LAB_00133a74;\n          }\n        }\n        iVar5 = FUN_0010d64e(param_2,__ptr,uVar10 & 0xffffffff);\n        if (-1 < iVar5) goto LAB_00133e68;\n        piVar8 = __errno_location();\n        if (*piVar8 != 0x6e) break;\n        if (local_dc) {\n          FUN_00130ebd(lVar6);\n          iVar5 = 0;\n          goto LAB_00133ea0;\n        }\n        if ((DAT_001774e8 != 0) || (local_da)) {\n          FUN_00130ebd(lVar6);\n          iVar5 = 0;\n          goto LAB_00133ea0;\n        }\n        iVar5 = 0;\n      }" if (parenthesized_expression "(local_db == '\0')" ( (binary_expression "local_db == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        iVar5 = FUN_0010d64e(dVar18,param_2,__ptr,uVar10 & 0xffffffff);\nLAB_00133e68:\n        if (iVar5 < 1) break;\n        if (local_dc) {\n          FUN_00130ebd(lVar6);\nLAB_00133d9f:\n          local_110 = (double)FUN_00130f52(lVar6);\n        }\n        else if ((DAT_001774e8 != 0) || (local_da)) {\n          FUN_00130ebd(lVar6);\n          if (iVar5 < 1) goto LAB_00133ea0;\n          goto LAB_00133d9f;\n        }\n        lVar13 = lVar13 + iVar5;\n        if (__ptr_00 == (undefined8 *)0x0) {\n          iVar4 = FUN_00133125(param_3,param_10,__ptr,iVar5,&local_d0,&local_c8);\n          if (iVar4 < 0) goto LAB_00133a74;\n        }\n        else {\n          iVar4 = FUN_00133125(0,param_10,__ptr,iVar5,0,0);\n          if (iVar4 < 0) goto LAB_00133a74;\n          local_b8 = __ptr;\n          local_b0 = iVar5;\n          do {\n            local_98 = 0x8000;\n            local_a0 = __ptr_00;\n            iVar4 = inflate(&local_b8,0);\n            if (iVar4 == -3) {\nLAB_00133b59:\n              piVar8 = __errno_location();\n              *piVar8 = 0x16;\n              iVar4 = -1;\n              goto LAB_00133a74;\n            }\n            if (iVar4 < -2) {\n              if (iVar4 == -4) {\n                piVar8 = __errno_location();\n                *piVar8 = 0xc;\n                iVar4 = -1;\n                goto LAB_00133a74;\n              }\n            }\n            else if (iVar4 == 1) {\n              if (((param_4 != lVar13) && (uVar2 != 0)) && (DAT_001774fb != '\0')) {\n                FUN_0012bddf("zlib stream ended unexpectedly after %ld/%ld bytes\n",lVar13,param_4);\n              }\n            }\n            else if (iVar4 == 2) goto LAB_00133b59;\n            iVar4 = FUN_00133125(param_3,0,__ptr_00,0x8000 - local_98,&local_d0,&local_c8);\n            if (iVar4 < 0) goto LAB_00133a74;\n          } while (local_98 == 0);\n        }\n        if (((param_9 & 4) != 0) && (uVar12 = uVar12 - (long)iVar5, uVar12 == 0)) {\n          pcVar7 = (char *)FUN_0013350a(param_2);\n          if (pcVar7 == (char *)0x0) {\n            iVar5 = -1;\n            break;\n          }\n          if (param_10 != (FILE *)0x0) {\n            uVar10 = 0xffffffffffffffff;\n            pcVar11 = pcVar7;\n            do {\n              if (uVar10 == 0) break;\n              uVar10 = uVar10 - 1;\n              cVar1 = *pcVar11;\n              pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n            } while (cVar1 != '\0');\n            fwrite(pcVar7,1,~uVar10 - 1,param_10);\n          }\n          free(pcVar7);\n        }\nLAB_00133ea0:\n        if (DAT_001774e8 != 0) {\n          dVar16 = (double)FUN_00130f52(lVar6);\n          dVar18 = DAT_00176e70;\n          dVar16 = dVar16 - DAT_00176e68;\n          DAT_00176e60 = iVar5 + DAT_00176e60;\n          if (dVar16 < (double)DAT_00176e60 / (double)(long)DAT_001774e8) {\n            dVar17 = ((double)DAT_00176e60 / (double)(long)DAT_001774e8 - dVar16) + DAT_00176e70;\n            if (dVar17 < _DAT_0015c908) {\n              if (DAT_001774fb != '\0') {\n                uVar15 = FUN_0013d39d();\n                FUN_0012bddf(dVar17 * DAT_0015d650,dVar16,"deferring a %.2f ms sleep (%s/%.2f).\n",\n                             uVar15);\n              }\n              goto LAB_00133eae;\n            }\n            if (DAT_001774fb != '\0') {\n              uVar15 = FUN_0013d39d();\n              FUN_0012bddf(dVar17 * DAT_0015d650,dVar18,\n                           "\nsleeping %.2f ms for %s bytes, adjust %.2f ms\n",uVar15);\n            }\n            dVar18 = (double)FUN_00130f52(lVar6);\n            FUN_0013d652(dVar17);\n            dVar16 = (double)FUN_00130ebd(lVar6);\n            DAT_00176e70 = dVar17 - (dVar16 - dVar18);\n            if (DAT_00176e70 <= _DAT_0015c710) {\n              if (DAT_00176e70 < DAT_0015d658) {\n                DAT_00176e70 = DAT_0015d658;\n              }\n            }\n            else {\n              DAT_00176e70 = _DAT_0015c710;\n            }\n          }\n          DAT_00176e60 = 0;\n          DAT_00176e68 = (double)FUN_00130f52(lVar6);\n        }\n      }" { (expression_statement "iVar5 = FUN_0010d64e(dVar18,param_2,__ptr,uVar10 & 0xffffffff);" (assignment_expression "iVar5 = FUN_0010d64e(dVar18,param_2,__ptr,uVar10 & 0xffffffff)" identifier = (call_expression "FUN_0010d64e(dVar18,param_2,__ptr,uVar10 & 0xffffffff)" identifier (argument_list "(dVar18,param_2,__ptr,uVar10 & 0xffffffff)" ( identifier , identifier , identifier , (binary_expression "uVar10 & 0xffffffff" identifier & number_literal) )))) ;) (labeled_statement "LAB_00133e68:\n        if (iVar5 < 1) break;" statement_identifier : (if_statement "if (iVar5 < 1) break;" if (parenthesized_expression "(iVar5 < 1)" ( (binary_expression "iVar5 < 1" identifier < number_literal) )) (break_statement "break;" break ;))) (if_statement "if (local_dc) {\n          FUN_00130ebd(lVar6);\nLAB_00133d9f:\n          local_110 = (double)FUN_00130f52(lVar6);\n        }\n        else if ((DAT_001774e8 != 0) || (local_da)) {\n          FUN_00130ebd(lVar6);\n          if (iVar5 < 1) goto LAB_00133ea0;\n          goto LAB_00133d9f;\n        }" if (parenthesized_expression "(local_dc)" ( identifier )) (compound_statement "{\n          FUN_00130ebd(lVar6);\nLAB_00133d9f:\n          local_110 = (double)FUN_00130f52(lVar6);\n        }" { (expression_statement "FUN_00130ebd(lVar6);" (call_expression "FUN_00130ebd(lVar6)" identifier (argument_list "(lVar6)" ( identifier ))) ;) (labeled_statement "LAB_00133d9f:\n          local_110 = (double)FUN_00130f52(lVar6);" statement_identifier : (expression_statement "local_110 = (double)FUN_00130f52(lVar6);" (assignment_expression "local_110 = (double)FUN_00130f52(lVar6)" identifier = (cast_expression "(double)FUN_00130f52(lVar6)" ( (type_descriptor "double" primitive_type) ) (call_expression "FUN_00130f52(lVar6)" identifier (argument_list "(lVar6)" ( identifier ))))) ;)) }) (else_clause "else if ((DAT_001774e8 != 0) || (local_da)) {\n          FUN_00130ebd(lVar6);\n          if (iVar5 < 1) goto LAB_00133ea0;\n          goto LAB_00133d9f;\n        }" else (if_statement "if ((DAT_001774e8 != 0) || (local_da)) {\n          FUN_00130ebd(lVar6);\n          if (iVar5 < 1) goto LAB_00133ea0;\n          goto LAB_00133d9f;\n        }" if (parenthesized_expression "((DAT_001774e8 != 0) || (local_da))" ( (binary_expression "(DAT_001774e8 != 0) || (local_da)" (parenthesized_expression "(DAT_001774e8 != 0)" ( (binary_expression "DAT_001774e8 != 0" identifier != number_literal) )) || (parenthesized_expression "(local_da)" ( identifier ))) )) (compound_statement "{\n          FUN_00130ebd(lVar6);\n          if (iVar5 < 1) goto LAB_00133ea0;\n          goto LAB_00133d9f;\n        }" { (expression_statement "FUN_00130ebd(lVar6);" (call_expression "FUN_00130ebd(lVar6)" identifier (argument_list "(lVar6)" ( identifier ))) ;) (if_statement "if (iVar5 < 1) goto LAB_00133ea0;" if (parenthesized_expression "(iVar5 < 1)" ( (binary_expression "iVar5 < 1" identifier < number_literal) )) (goto_statement "goto LAB_00133ea0;" goto statement_identifier ;)) (goto_statement "goto LAB_00133d9f;" goto statement_identifier ;) })))) (expression_statement "lVar13 = lVar13 + iVar5;" (assignment_expression "lVar13 = lVar13 + iVar5" identifier = (binary_expression "lVar13 + iVar5" identifier + identifier)) ;) (if_statement "if (__ptr_00 == (undefined8 *)0x0) {\n          iVar4 = FUN_00133125(param_3,param_10,__ptr,iVar5,&local_d0,&local_c8);\n          if (iVar4 < 0) goto LAB_00133a74;\n        }\n        else {\n          iVar4 = FUN_00133125(0,param_10,__ptr,iVar5,0,0);\n          if (iVar4 < 0) goto LAB_00133a74;\n          local_b8 = __ptr;\n          local_b0 = iVar5;\n          do {\n            local_98 = 0x8000;\n            local_a0 = __ptr_00;\n            iVar4 = inflate(&local_b8,0);\n            if (iVar4 == -3) {\nLAB_00133b59:\n              piVar8 = __errno_location();\n              *piVar8 = 0x16;\n              iVar4 = -1;\n              goto LAB_00133a74;\n            }\n            if (iVar4 < -2) {\n              if (iVar4 == -4) {\n                piVar8 = __errno_location();\n                *piVar8 = 0xc;\n                iVar4 = -1;\n                goto LAB_00133a74;\n              }\n            }\n            else if (iVar4 == 1) {\n              if (((param_4 != lVar13) && (uVar2 != 0)) && (DAT_001774fb != '\0')) {\n                FUN_0012bddf("zlib stream ended unexpectedly after %ld/%ld bytes\n",lVar13,param_4);\n              }\n            }\n            else if (iVar4 == 2) goto LAB_00133b59;\n            iVar4 = FUN_00133125(param_3,0,__ptr_00,0x8000 - local_98,&local_d0,&local_c8);\n            if (iVar4 < 0) goto LAB_00133a74;\n          } while (local_98 == 0);\n        }" if (parenthesized_expression "(__ptr_00 == (undefined8 *)0x0)" ( (binary_expression "__ptr_00 == (undefined8 *)0x0" identifier == (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          iVar4 = FUN_00133125(param_3,param_10,__ptr,iVar5,&local_d0,&local_c8);\n          if (iVar4 < 0) goto LAB_00133a74;\n        }" { (expression_statement "iVar4 = FUN_00133125(param_3,param_10,__ptr,iVar5,&local_d0,&local_c8);" (assignment_expression "iVar4 = FUN_00133125(param_3,param_10,__ptr,iVar5,&local_d0,&local_c8)" identifier = (call_expression "FUN_00133125(param_3,param_10,__ptr,iVar5,&local_d0,&local_c8)" identifier (argument_list "(param_3,param_10,__ptr,iVar5,&local_d0,&local_c8)" ( identifier , identifier , identifier , identifier , (pointer_expression "&local_d0" & identifier) , (pointer_expression "&local_c8" & identifier) )))) ;) (if_statement "if (iVar4 < 0) goto LAB_00133a74;" if (parenthesized_expression "(iVar4 < 0)" ( (binary_expression "iVar4 < 0" identifier < number_literal) )) (goto_statement "goto LAB_00133a74;" goto statement_identifier ;)) }) (else_clause "else {\n          iVar4 = FUN_00133125(0,param_10,__ptr,iVar5,0,0);\n          if (iVar4 < 0) goto LAB_00133a74;\n          local_b8 = __ptr;\n          local_b0 = iVar5;\n          do {\n            local_98 = 0x8000;\n            local_a0 = __ptr_00;\n            iVar4 = inflate(&local_b8,0);\n            if (iVar4 == -3) {\nLAB_00133b59:\n              piVar8 = __errno_location();\n              *piVar8 = 0x16;\n              iVar4 = -1;\n              goto LAB_00133a74;\n            }\n            if (iVar4 < -2) {\n              if (iVar4 == -4) {\n                piVar8 = __errno_location();\n                *piVar8 = 0xc;\n                iVar4 = -1;\n                goto LAB_00133a74;\n              }\n            }\n            else if (iVar4 == 1) {\n              if (((param_4 != lVar13) && (uVar2 != 0)) && (DAT_001774fb != '\0')) {\n                FUN_0012bddf("zlib stream ended unexpectedly after %ld/%ld bytes\n",lVar13,param_4);\n              }\n            }\n            else if (iVar4 == 2) goto LAB_00133b59;\n            iVar4 = FUN_00133125(param_3,0,__ptr_00,0x8000 - local_98,&local_d0,&local_c8);\n            if (iVar4 < 0) goto LAB_00133a74;\n          } while (local_98 == 0);\n        }" else (compound_statement "{\n          iVar4 = FUN_00133125(0,param_10,__ptr,iVar5,0,0);\n          if (iVar4 < 0) goto LAB_00133a74;\n          local_b8 = __ptr;\n          local_b0 = iVar5;\n          do {\n            local_98 = 0x8000;\n            local_a0 = __ptr_00;\n            iVar4 = inflate(&local_b8,0);\n            if (iVar4 == -3) {\nLAB_00133b59:\n              piVar8 = __errno_location();\n              *piVar8 = 0x16;\n              iVar4 = -1;\n              goto LAB_00133a74;\n            }\n            if (iVar4 < -2) {\n              if (iVar4 == -4) {\n                piVar8 = __errno_location();\n                *piVar8 = 0xc;\n                iVar4 = -1;\n                goto LAB_00133a74;\n              }\n            }\n            else if (iVar4 == 1) {\n              if (((param_4 != lVar13) && (uVar2 != 0)) && (DAT_001774fb != '\0')) {\n                FUN_0012bddf("zlib stream ended unexpectedly after %ld/%ld bytes\n",lVar13,param_4);\n              }\n            }\n            else if (iVar4 == 2) goto LAB_00133b59;\n            iVar4 = FUN_00133125(param_3,0,__ptr_00,0x8000 - local_98,&local_d0,&local_c8);\n            if (iVar4 < 0) goto LAB_00133a74;\n          } while (local_98 == 0);\n        }" { (expression_statement "iVar4 = FUN_00133125(0,param_10,__ptr,iVar5,0,0);" (assignment_expression "iVar4 = FUN_00133125(0,param_10,__ptr,iVar5,0,0)" identifier = (call_expression "FUN_00133125(0,param_10,__ptr,iVar5,0,0)" identifier (argument_list "(0,param_10,__ptr,iVar5,0,0)" ( number_literal , identifier , identifier , identifier , number_literal , number_literal )))) ;) (if_statement "if (iVar4 < 0) goto LAB_00133a74;" if (parenthesized_expression "(iVar4 < 0)" ( (binary_expression "iVar4 < 0" identifier < number_literal) )) (goto_statement "goto LAB_00133a74;" goto statement_identifier ;)) (expression_statement "local_b8 = __ptr;" (assignment_expression "local_b8 = __ptr" identifier = identifier) ;) (expression_statement "local_b0 = iVar5;" (assignment_expression "local_b0 = iVar5" identifier = identifier) ;) (do_statement "do {\n            local_98 = 0x8000;\n            local_a0 = __ptr_00;\n            iVar4 = inflate(&local_b8,0);\n            if (iVar4 == -3) {\nLAB_00133b59:\n              piVar8 = __errno_location();\n              *piVar8 = 0x16;\n              iVar4 = -1;\n              goto LAB_00133a74;\n            }\n            if (iVar4 < -2) {\n              if (iVar4 == -4) {\n                piVar8 = __errno_location();\n                *piVar8 = 0xc;\n                iVar4 = -1;\n                goto LAB_00133a74;\n              }\n            }\n            else if (iVar4 == 1) {\n              if (((param_4 != lVar13) && (uVar2 != 0)) && (DAT_001774fb != '\0')) {\n                FUN_0012bddf("zlib stream ended unexpectedly after %ld/%ld bytes\n",lVar13,param_4);\n              }\n            }\n            else if (iVar4 == 2) goto LAB_00133b59;\n            iVar4 = FUN_00133125(param_3,0,__ptr_00,0x8000 - local_98,&local_d0,&local_c8);\n            if (iVar4 < 0) goto LAB_00133a74;\n          } while (local_98 == 0);" do (compound_statement "{\n            local_98 = 0x8000;\n            local_a0 = __ptr_00;\n            iVar4 = inflate(&local_b8,0);\n            if (iVar4 == -3) {\nLAB_00133b59:\n              piVar8 = __errno_location();\n              *piVar8 = 0x16;\n              iVar4 = -1;\n              goto LAB_00133a74;\n            }\n            if (iVar4 < -2) {\n              if (iVar4 == -4) {\n                piVar8 = __errno_location();\n                *piVar8 = 0xc;\n                iVar4 = -1;\n                goto LAB_00133a74;\n              }\n            }\n            else if (iVar4 == 1) {\n              if (((param_4 != lVar13) && (uVar2 != 0)) && (DAT_001774fb != '\0')) {\n                FUN_0012bddf("zlib stream ended unexpectedly after %ld/%ld bytes\n",lVar13,param_4);\n              }\n            }\n            else if (iVar4 == 2) goto LAB_00133b59;\n            iVar4 = FUN_00133125(param_3,0,__ptr_00,0x8000 - local_98,&local_d0,&local_c8);\n            if (iVar4 < 0) goto LAB_00133a74;\n          }" { (expression_statement "local_98 = 0x8000;" (assignment_expression "local_98 = 0x8000" identifier = number_literal) ;) (expression_statement "local_a0 = __ptr_00;" (assignment_expression "local_a0 = __ptr_00" identifier = identifier) ;) (expression_statement "iVar4 = inflate(&local_b8,0);" (assignment_expression "iVar4 = inflate(&local_b8,0)" identifier = (call_expression "inflate(&local_b8,0)" identifier (argument_list "(&local_b8,0)" ( (pointer_expression "&local_b8" & identifier) , number_literal )))) ;) (if_statement "if (iVar4 == -3) {\nLAB_00133b59:\n              piVar8 = __errno_location();\n              *piVar8 = 0x16;\n              iVar4 = -1;\n              goto LAB_00133a74;\n            }" if (parenthesized_expression "(iVar4 == -3)" ( (binary_expression "iVar4 == -3" identifier == number_literal) )) (compound_statement "{\nLAB_00133b59:\n              piVar8 = __errno_location();\n              *piVar8 = 0x16;\n              iVar4 = -1;\n              goto LAB_00133a74;\n            }" { (labeled_statement "LAB_00133b59:\n              piVar8 = __errno_location();" statement_identifier : (expression_statement "piVar8 = __errno_location();" (assignment_expression "piVar8 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;)) (expression_statement "*piVar8 = 0x16;" (assignment_expression "*piVar8 = 0x16" (pointer_expression "*piVar8" * identifier) = number_literal) ;) (expression_statement "iVar4 = -1;" (assignment_expression "iVar4 = -1" identifier = number_literal) ;) (goto_statement "goto LAB_00133a74;" goto statement_identifier ;) })) (if_statement "if (iVar4 < -2) {\n              if (iVar4 == -4) {\n                piVar8 = __errno_location();\n                *piVar8 = 0xc;\n                iVar4 = -1;\n                goto LAB_00133a74;\n              }\n            }\n            else if (iVar4 == 1) {\n              if (((param_4 != lVar13) && (uVar2 != 0)) && (DAT_001774fb != '\0')) {\n                FUN_0012bddf("zlib stream ended unexpectedly after %ld/%ld bytes\n",lVar13,param_4);\n              }\n            }\n            else if (iVar4 == 2) goto LAB_00133b59;" if (parenthesized_expression "(iVar4 < -2)" ( (binary_expression "iVar4 < -2" identifier < number_literal) )) (compound_statement "{\n              if (iVar4 == -4) {\n                piVar8 = __errno_location();\n                *piVar8 = 0xc;\n                iVar4 = -1;\n                goto LAB_00133a74;\n              }\n            }" { (if_statement "if (iVar4 == -4) {\n                piVar8 = __errno_location();\n                *piVar8 = 0xc;\n                iVar4 = -1;\n                goto LAB_00133a74;\n              }" if (parenthesized_expression "(iVar4 == -4)" ( (binary_expression "iVar4 == -4" identifier == number_literal) )) (compound_statement "{\n                piVar8 = __errno_location();\n                *piVar8 = 0xc;\n                iVar4 = -1;\n                goto LAB_00133a74;\n              }" { (expression_statement "piVar8 = __errno_location();" (assignment_expression "piVar8 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "*piVar8 = 0xc;" (assignment_expression "*piVar8 = 0xc" (pointer_expression "*piVar8" * identifier) = number_literal) ;) (expression_statement "iVar4 = -1;" (assignment_expression "iVar4 = -1" identifier = number_literal) ;) (goto_statement "goto LAB_00133a74;" goto statement_identifier ;) })) }) (else_clause "else if (iVar4 == 1) {\n              if (((param_4 != lVar13) && (uVar2 != 0)) && (DAT_001774fb != '\0')) {\n                FUN_0012bddf("zlib stream ended unexpectedly after %ld/%ld bytes\n",lVar13,param_4);\n              }\n            }\n            else if (iVar4 == 2) goto LAB_00133b59;" else (if_statement "if (iVar4 == 1) {\n              if (((param_4 != lVar13) && (uVar2 != 0)) && (DAT_001774fb != '\0')) {\n                FUN_0012bddf("zlib stream ended unexpectedly after %ld/%ld bytes\n",lVar13,param_4);\n              }\n            }\n            else if (iVar4 == 2) goto LAB_00133b59;" if (parenthesized_expression "(iVar4 == 1)" ( (binary_expression "iVar4 == 1" identifier == number_literal) )) (compound_statement "{\n              if (((param_4 != lVar13) && (uVar2 != 0)) && (DAT_001774fb != '\0')) {\n                FUN_0012bddf("zlib stream ended unexpectedly after %ld/%ld bytes\n",lVar13,param_4);\n              }\n            }" { (if_statement "if (((param_4 != lVar13) && (uVar2 != 0)) && (DAT_001774fb != '\0')) {\n                FUN_0012bddf("zlib stream ended unexpectedly after %ld/%ld bytes\n",lVar13,param_4);\n              }" if (parenthesized_expression "(((param_4 != lVar13) && (uVar2 != 0)) && (DAT_001774fb != '\0'))" ( (binary_expression "((param_4 != lVar13) && (uVar2 != 0)) && (DAT_001774fb != '\0')" (parenthesized_expression "((param_4 != lVar13) && (uVar2 != 0))" ( (binary_expression "(param_4 != lVar13) && (uVar2 != 0)" (parenthesized_expression "(param_4 != lVar13)" ( (binary_expression "param_4 != lVar13" identifier != identifier) )) && (parenthesized_expression "(uVar2 != 0)" ( (binary_expression "uVar2 != 0" identifier != number_literal) ))) )) && (parenthesized_expression "(DAT_001774fb != '\0')" ( (binary_expression "DAT_001774fb != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n                FUN_0012bddf("zlib stream ended unexpectedly after %ld/%ld bytes\n",lVar13,param_4);\n              }" { (expression_statement "FUN_0012bddf("zlib stream ended unexpectedly after %ld/%ld bytes\n",lVar13,param_4);" (call_expression "FUN_0012bddf("zlib stream ended unexpectedly after %ld/%ld bytes\n",lVar13,param_4)" identifier (argument_list "("zlib stream ended unexpectedly after %ld/%ld bytes\n",lVar13,param_4)" ( (string_literal ""zlib stream ended unexpectedly after %ld/%ld bytes\n"" " string_content escape_sequence ") , identifier , identifier ))) ;) })) }) (else_clause "else if (iVar4 == 2) goto LAB_00133b59;" else (if_statement "if (iVar4 == 2) goto LAB_00133b59;" if (parenthesized_expression "(iVar4 == 2)" ( (binary_expression "iVar4 == 2" identifier == number_literal) )) (goto_statement "goto LAB_00133b59;" goto statement_identifier ;)))))) (expression_statement "iVar4 = FUN_00133125(param_3,0,__ptr_00,0x8000 - local_98,&local_d0,&local_c8);" (assignment_expression "iVar4 = FUN_00133125(param_3,0,__ptr_00,0x8000 - local_98,&local_d0,&local_c8)" identifier = (call_expression "FUN_00133125(param_3,0,__ptr_00,0x8000 - local_98,&local_d0,&local_c8)" identifier (argument_list "(param_3,0,__ptr_00,0x8000 - local_98,&local_d0,&local_c8)" ( identifier , number_literal , identifier , (binary_expression "0x8000 - local_98" number_literal - identifier) , (pointer_expression "&local_d0" & identifier) , (pointer_expression "&local_c8" & identifier) )))) ;) (if_statement "if (iVar4 < 0) goto LAB_00133a74;" if (parenthesized_expression "(iVar4 < 0)" ( (binary_expression "iVar4 < 0" identifier < number_literal) )) (goto_statement "goto LAB_00133a74;" goto statement_identifier ;)) }) while (parenthesized_expression "(local_98 == 0)" ( (binary_expression "local_98 == 0" identifier == number_literal) )) ;) }))) (if_statement "if (((param_9 & 4) != 0) && (uVar12 = uVar12 - (long)iVar5, uVar12 == 0)) {\n          pcVar7 = (char *)FUN_0013350a(param_2);\n          if (pcVar7 == (char *)0x0) {\n            iVar5 = -1;\n            break;\n          }\n          if (param_10 != (FILE *)0x0) {\n            uVar10 = 0xffffffffffffffff;\n            pcVar11 = pcVar7;\n            do {\n              if (uVar10 == 0) break;\n              uVar10 = uVar10 - 1;\n              cVar1 = *pcVar11;\n              pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n            } while (cVar1 != '\0');\n            fwrite(pcVar7,1,~uVar10 - 1,param_10);\n          }\n          free(pcVar7);\n        }" if (parenthesized_expression "(((param_9 & 4) != 0) && (uVar12 = uVar12 - (long)iVar5, uVar12 == 0))" ( (binary_expression "((param_9 & 4) != 0) && (uVar12 = uVar12 - (long)iVar5, uVar12 == 0)" (parenthesized_expression "((param_9 & 4) != 0)" ( (binary_expression "(param_9 & 4) != 0" (parenthesized_expression "(param_9 & 4)" ( (binary_expression "param_9 & 4" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(uVar12 = uVar12 - (long)iVar5, uVar12 == 0)" ( (comma_expression "uVar12 = uVar12 - (long)iVar5, uVar12 == 0" (assignment_expression "uVar12 = uVar12 - (long)iVar5" identifier = (binary_expression "uVar12 - (long)iVar5" identifier - (cast_expression "(long)iVar5" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) , (binary_expression "uVar12 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n          pcVar7 = (char *)FUN_0013350a(param_2);\n          if (pcVar7 == (char *)0x0) {\n            iVar5 = -1;\n            break;\n          }\n          if (param_10 != (FILE *)0x0) {\n            uVar10 = 0xffffffffffffffff;\n            pcVar11 = pcVar7;\n            do {\n              if (uVar10 == 0) break;\n              uVar10 = uVar10 - 1;\n              cVar1 = *pcVar11;\n              pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n            } while (cVar1 != '\0');\n            fwrite(pcVar7,1,~uVar10 - 1,param_10);\n          }\n          free(pcVar7);\n        }" { (expression_statement "pcVar7 = (char *)FUN_0013350a(param_2);" (assignment_expression "pcVar7 = (char *)FUN_0013350a(param_2)" identifier = (cast_expression "(char *)FUN_0013350a(param_2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0013350a(param_2)" identifier (argument_list "(param_2)" ( identifier ))))) ;) (if_statement "if (pcVar7 == (char *)0x0) {\n            iVar5 = -1;\n            break;\n          }" if (parenthesized_expression "(pcVar7 == (char *)0x0)" ( (binary_expression "pcVar7 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            iVar5 = -1;\n            break;\n          }" { (expression_statement "iVar5 = -1;" (assignment_expression "iVar5 = -1" identifier = number_literal) ;) (break_statement "break;" break ;) })) (if_statement "if (param_10 != (FILE *)0x0) {\n            uVar10 = 0xffffffffffffffff;\n            pcVar11 = pcVar7;\n            do {\n              if (uVar10 == 0) break;\n              uVar10 = uVar10 - 1;\n              cVar1 = *pcVar11;\n              pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n            } while (cVar1 != '\0');\n            fwrite(pcVar7,1,~uVar10 - 1,param_10);\n          }" if (parenthesized_expression "(param_10 != (FILE *)0x0)" ( (binary_expression "param_10 != (FILE *)0x0" identifier != (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            uVar10 = 0xffffffffffffffff;\n            pcVar11 = pcVar7;\n            do {\n              if (uVar10 == 0) break;\n              uVar10 = uVar10 - 1;\n              cVar1 = *pcVar11;\n              pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n            } while (cVar1 != '\0');\n            fwrite(pcVar7,1,~uVar10 - 1,param_10);\n          }" { (expression_statement "uVar10 = 0xffffffffffffffff;" (assignment_expression "uVar10 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar11 = pcVar7;" (assignment_expression "pcVar11 = pcVar7" identifier = identifier) ;) (do_statement "do {\n              if (uVar10 == 0) break;\n              uVar10 = uVar10 - 1;\n              cVar1 = *pcVar11;\n              pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n            } while (cVar1 != '\0');" do (compound_statement "{\n              if (uVar10 == 0) break;\n              uVar10 = uVar10 - 1;\n              cVar1 = *pcVar11;\n              pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n            }" { (if_statement "if (uVar10 == 0) break;" if (parenthesized_expression "(uVar10 == 0)" ( (binary_expression "uVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar10 = uVar10 - 1;" (assignment_expression "uVar10 = uVar10 - 1" identifier = (binary_expression "uVar10 - 1" identifier - number_literal)) ;) (expression_statement "cVar1 = *pcVar11;" (assignment_expression "cVar1 = *pcVar11" identifier = (pointer_expression "*pcVar11" * identifier)) ;) (expression_statement "pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;" (assignment_expression "pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1" identifier = (binary_expression "pcVar11 + (ulong)bVar14 * -2 + 1" (binary_expression "pcVar11 + (ulong)bVar14 * -2" identifier + (binary_expression "(ulong)bVar14 * -2" (cast_expression "(ulong)bVar14" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar1 != '\0')" ( (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "fwrite(pcVar7,1,~uVar10 - 1,param_10);" (call_expression "fwrite(pcVar7,1,~uVar10 - 1,param_10)" identifier (argument_list "(pcVar7,1,~uVar10 - 1,param_10)" ( identifier , number_literal , (binary_expression "~uVar10 - 1" (unary_expression "~uVar10" ~ identifier) - number_literal) , identifier ))) ;) })) (expression_statement "free(pcVar7);" (call_expression "free(pcVar7)" identifier (argument_list "(pcVar7)" ( identifier ))) ;) })) (labeled_statement "LAB_00133ea0:\n        if (DAT_001774e8 != 0) {\n          dVar16 = (double)FUN_00130f52(lVar6);\n          dVar18 = DAT_00176e70;\n          dVar16 = dVar16 - DAT_00176e68;\n          DAT_00176e60 = iVar5 + DAT_00176e60;\n          if (dVar16 < (double)DAT_00176e60 / (double)(long)DAT_001774e8) {\n            dVar17 = ((double)DAT_00176e60 / (double)(long)DAT_001774e8 - dVar16) + DAT_00176e70;\n            if (dVar17 < _DAT_0015c908) {\n              if (DAT_001774fb != '\0') {\n                uVar15 = FUN_0013d39d();\n                FUN_0012bddf(dVar17 * DAT_0015d650,dVar16,"deferring a %.2f ms sleep (%s/%.2f).\n",\n                             uVar15);\n              }\n              goto LAB_00133eae;\n            }\n            if (DAT_001774fb != '\0') {\n              uVar15 = FUN_0013d39d();\n              FUN_0012bddf(dVar17 * DAT_0015d650,dVar18,\n                           "\nsleeping %.2f ms for %s bytes, adjust %.2f ms\n",uVar15);\n            }\n            dVar18 = (double)FUN_00130f52(lVar6);\n            FUN_0013d652(dVar17);\n            dVar16 = (double)FUN_00130ebd(lVar6);\n            DAT_00176e70 = dVar17 - (dVar16 - dVar18);\n            if (DAT_00176e70 <= _DAT_0015c710) {\n              if (DAT_00176e70 < DAT_0015d658) {\n                DAT_00176e70 = DAT_0015d658;\n              }\n            }\n            else {\n              DAT_00176e70 = _DAT_0015c710;\n            }\n          }\n          DAT_00176e60 = 0;\n          DAT_00176e68 = (double)FUN_00130f52(lVar6);\n        }" statement_identifier : (if_statement "if (DAT_001774e8 != 0) {\n          dVar16 = (double)FUN_00130f52(lVar6);\n          dVar18 = DAT_00176e70;\n          dVar16 = dVar16 - DAT_00176e68;\n          DAT_00176e60 = iVar5 + DAT_00176e60;\n          if (dVar16 < (double)DAT_00176e60 / (double)(long)DAT_001774e8) {\n            dVar17 = ((double)DAT_00176e60 / (double)(long)DAT_001774e8 - dVar16) + DAT_00176e70;\n            if (dVar17 < _DAT_0015c908) {\n              if (DAT_001774fb != '\0') {\n                uVar15 = FUN_0013d39d();\n                FUN_0012bddf(dVar17 * DAT_0015d650,dVar16,"deferring a %.2f ms sleep (%s/%.2f).\n",\n                             uVar15);\n              }\n              goto LAB_00133eae;\n            }\n            if (DAT_001774fb != '\0') {\n              uVar15 = FUN_0013d39d();\n              FUN_0012bddf(dVar17 * DAT_0015d650,dVar18,\n                           "\nsleeping %.2f ms for %s bytes, adjust %.2f ms\n",uVar15);\n            }\n            dVar18 = (double)FUN_00130f52(lVar6);\n            FUN_0013d652(dVar17);\n            dVar16 = (double)FUN_00130ebd(lVar6);\n            DAT_00176e70 = dVar17 - (dVar16 - dVar18);\n            if (DAT_00176e70 <= _DAT_0015c710) {\n              if (DAT_00176e70 < DAT_0015d658) {\n                DAT_00176e70 = DAT_0015d658;\n              }\n            }\n            else {\n              DAT_00176e70 = _DAT_0015c710;\n            }\n          }\n          DAT_00176e60 = 0;\n          DAT_00176e68 = (double)FUN_00130f52(lVar6);\n        }" if (parenthesized_expression "(DAT_001774e8 != 0)" ( (binary_expression "DAT_001774e8 != 0" identifier != number_literal) )) (compound_statement "{\n          dVar16 = (double)FUN_00130f52(lVar6);\n          dVar18 = DAT_00176e70;\n          dVar16 = dVar16 - DAT_00176e68;\n          DAT_00176e60 = iVar5 + DAT_00176e60;\n          if (dVar16 < (double)DAT_00176e60 / (double)(long)DAT_001774e8) {\n            dVar17 = ((double)DAT_00176e60 / (double)(long)DAT_001774e8 - dVar16) + DAT_00176e70;\n            if (dVar17 < _DAT_0015c908) {\n              if (DAT_001774fb != '\0') {\n                uVar15 = FUN_0013d39d();\n                FUN_0012bddf(dVar17 * DAT_0015d650,dVar16,"deferring a %.2f ms sleep (%s/%.2f).\n",\n                             uVar15);\n              }\n              goto LAB_00133eae;\n            }\n            if (DAT_001774fb != '\0') {\n              uVar15 = FUN_0013d39d();\n              FUN_0012bddf(dVar17 * DAT_0015d650,dVar18,\n                           "\nsleeping %.2f ms for %s bytes, adjust %.2f ms\n",uVar15);\n            }\n            dVar18 = (double)FUN_00130f52(lVar6);\n            FUN_0013d652(dVar17);\n            dVar16 = (double)FUN_00130ebd(lVar6);\n            DAT_00176e70 = dVar17 - (dVar16 - dVar18);\n            if (DAT_00176e70 <= _DAT_0015c710) {\n              if (DAT_00176e70 < DAT_0015d658) {\n                DAT_00176e70 = DAT_0015d658;\n              }\n            }\n            else {\n              DAT_00176e70 = _DAT_0015c710;\n            }\n          }\n          DAT_00176e60 = 0;\n          DAT_00176e68 = (double)FUN_00130f52(lVar6);\n        }" { (expression_statement "dVar16 = (double)FUN_00130f52(lVar6);" (assignment_expression "dVar16 = (double)FUN_00130f52(lVar6)" identifier = (cast_expression "(double)FUN_00130f52(lVar6)" ( (type_descriptor "double" primitive_type) ) (call_expression "FUN_00130f52(lVar6)" identifier (argument_list "(lVar6)" ( identifier ))))) ;) (expression_statement "dVar18 = DAT_00176e70;" (assignment_expression "dVar18 = DAT_00176e70" identifier = identifier) ;) (expression_statement "dVar16 = dVar16 - DAT_00176e68;" (assignment_expression "dVar16 = dVar16 - DAT_00176e68" identifier = (binary_expression "dVar16 - DAT_00176e68" identifier - identifier)) ;) (expression_statement "DAT_00176e60 = iVar5 + DAT_00176e60;" (assignment_expression "DAT_00176e60 = iVar5 + DAT_00176e60" identifier = (binary_expression "iVar5 + DAT_00176e60" identifier + identifier)) ;) (if_statement "if (dVar16 < (double)DAT_00176e60 / (double)(long)DAT_001774e8) {\n            dVar17 = ((double)DAT_00176e60 / (double)(long)DAT_001774e8 - dVar16) + DAT_00176e70;\n            if (dVar17 < _DAT_0015c908) {\n              if (DAT_001774fb != '\0') {\n                uVar15 = FUN_0013d39d();\n                FUN_0012bddf(dVar17 * DAT_0015d650,dVar16,"deferring a %.2f ms sleep (%s/%.2f).\n",\n                             uVar15);\n              }\n              goto LAB_00133eae;\n            }\n            if (DAT_001774fb != '\0') {\n              uVar15 = FUN_0013d39d();\n              FUN_0012bddf(dVar17 * DAT_0015d650,dVar18,\n                           "\nsleeping %.2f ms for %s bytes, adjust %.2f ms\n",uVar15);\n            }\n            dVar18 = (double)FUN_00130f52(lVar6);\n            FUN_0013d652(dVar17);\n            dVar16 = (double)FUN_00130ebd(lVar6);\n            DAT_00176e70 = dVar17 - (dVar16 - dVar18);\n            if (DAT_00176e70 <= _DAT_0015c710) {\n              if (DAT_00176e70 < DAT_0015d658) {\n                DAT_00176e70 = DAT_0015d658;\n              }\n            }\n            else {\n              DAT_00176e70 = _DAT_0015c710;\n            }\n          }" if (parenthesized_expression "(dVar16 < (double)DAT_00176e60 / (double)(long)DAT_001774e8)" ( (binary_expression "dVar16 < (double)DAT_00176e60 / (double)(long)DAT_001774e8" identifier < (binary_expression "(double)DAT_00176e60 / (double)(long)DAT_001774e8" (cast_expression "(double)DAT_00176e60" ( (type_descriptor "double" primitive_type) ) identifier) / (cast_expression "(double)(long)DAT_001774e8" ( (type_descriptor "double" primitive_type) ) (cast_expression "(long)DAT_001774e8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)))) )) (compound_statement "{\n            dVar17 = ((double)DAT_00176e60 / (double)(long)DAT_001774e8 - dVar16) + DAT_00176e70;\n            if (dVar17 < _DAT_0015c908) {\n              if (DAT_001774fb != '\0') {\n                uVar15 = FUN_0013d39d();\n                FUN_0012bddf(dVar17 * DAT_0015d650,dVar16,"deferring a %.2f ms sleep (%s/%.2f).\n",\n                             uVar15);\n              }\n              goto LAB_00133eae;\n            }\n            if (DAT_001774fb != '\0') {\n              uVar15 = FUN_0013d39d();\n              FUN_0012bddf(dVar17 * DAT_0015d650,dVar18,\n                           "\nsleeping %.2f ms for %s bytes, adjust %.2f ms\n",uVar15);\n            }\n            dVar18 = (double)FUN_00130f52(lVar6);\n            FUN_0013d652(dVar17);\n            dVar16 = (double)FUN_00130ebd(lVar6);\n            DAT_00176e70 = dVar17 - (dVar16 - dVar18);\n            if (DAT_00176e70 <= _DAT_0015c710) {\n              if (DAT_00176e70 < DAT_0015d658) {\n                DAT_00176e70 = DAT_0015d658;\n              }\n            }\n            else {\n              DAT_00176e70 = _DAT_0015c710;\n            }\n          }" { (expression_statement "dVar17 = ((double)DAT_00176e60 / (double)(long)DAT_001774e8 - dVar16) + DAT_00176e70;" (assignment_expression "dVar17 = ((double)DAT_00176e60 / (double)(long)DAT_001774e8 - dVar16) + DAT_00176e70" identifier = (binary_expression "((double)DAT_00176e60 / (double)(long)DAT_001774e8 - dVar16) + DAT_00176e70" (parenthesized_expression "((double)DAT_00176e60 / (double)(long)DAT_001774e8 - dVar16)" ( (binary_expression "(double)DAT_00176e60 / (double)(long)DAT_001774e8 - dVar16" (binary_expression "(double)DAT_00176e60 / (double)(long)DAT_001774e8" (cast_expression "(double)DAT_00176e60" ( (type_descriptor "double" primitive_type) ) identifier) / (cast_expression "(double)(long)DAT_001774e8" ( (type_descriptor "double" primitive_type) ) (cast_expression "(long)DAT_001774e8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) - identifier) )) + identifier)) ;) (if_statement "if (dVar17 < _DAT_0015c908) {\n              if (DAT_001774fb != '\0') {\n                uVar15 = FUN_0013d39d();\n                FUN_0012bddf(dVar17 * DAT_0015d650,dVar16,"deferring a %.2f ms sleep (%s/%.2f).\n",\n                             uVar15);\n              }\n              goto LAB_00133eae;\n            }" if (parenthesized_expression "(dVar17 < _DAT_0015c908)" ( (binary_expression "dVar17 < _DAT_0015c908" identifier < identifier) )) (compound_statement "{\n              if (DAT_001774fb != '\0') {\n                uVar15 = FUN_0013d39d();\n                FUN_0012bddf(dVar17 * DAT_0015d650,dVar16,"deferring a %.2f ms sleep (%s/%.2f).\n",\n                             uVar15);\n              }\n              goto LAB_00133eae;\n            }" { (if_statement "if (DAT_001774fb != '\0') {\n                uVar15 = FUN_0013d39d();\n                FUN_0012bddf(dVar17 * DAT_0015d650,dVar16,"deferring a %.2f ms sleep (%s/%.2f).\n",\n                             uVar15);\n              }" if (parenthesized_expression "(DAT_001774fb != '\0')" ( (binary_expression "DAT_001774fb != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                uVar15 = FUN_0013d39d();\n                FUN_0012bddf(dVar17 * DAT_0015d650,dVar16,"deferring a %.2f ms sleep (%s/%.2f).\n",\n                             uVar15);\n              }" { (expression_statement "uVar15 = FUN_0013d39d();" (assignment_expression "uVar15 = FUN_0013d39d()" identifier = (call_expression "FUN_0013d39d()" identifier (argument_list "()" ( )))) ;) (expression_statement "FUN_0012bddf(dVar17 * DAT_0015d650,dVar16,"deferring a %.2f ms sleep (%s/%.2f).\n",\n                             uVar15);" (call_expression "FUN_0012bddf(dVar17 * DAT_0015d650,dVar16,"deferring a %.2f ms sleep (%s/%.2f).\n",\n                             uVar15)" identifier (argument_list "(dVar17 * DAT_0015d650,dVar16,"deferring a %.2f ms sleep (%s/%.2f).\n",\n                             uVar15)" ( (binary_expression "dVar17 * DAT_0015d650" identifier * identifier) , identifier , (string_literal ""deferring a %.2f ms sleep (%s/%.2f).\n"" " string_content escape_sequence ") , identifier ))) ;) })) (goto_statement "goto LAB_00133eae;" goto statement_identifier ;) })) (if_statement "if (DAT_001774fb != '\0') {\n              uVar15 = FUN_0013d39d();\n              FUN_0012bddf(dVar17 * DAT_0015d650,dVar18,\n                           "\nsleeping %.2f ms for %s bytes, adjust %.2f ms\n",uVar15);\n            }" if (parenthesized_expression "(DAT_001774fb != '\0')" ( (binary_expression "DAT_001774fb != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              uVar15 = FUN_0013d39d();\n              FUN_0012bddf(dVar17 * DAT_0015d650,dVar18,\n                           "\nsleeping %.2f ms for %s bytes, adjust %.2f ms\n",uVar15);\n            }" { (expression_statement "uVar15 = FUN_0013d39d();" (assignment_expression "uVar15 = FUN_0013d39d()" identifier = (call_expression "FUN_0013d39d()" identifier (argument_list "()" ( )))) ;) (expression_statement "FUN_0012bddf(dVar17 * DAT_0015d650,dVar18,\n                           "\nsleeping %.2f ms for %s bytes, adjust %.2f ms\n",uVar15);" (call_expression "FUN_0012bddf(dVar17 * DAT_0015d650,dVar18,\n                           "\nsleeping %.2f ms for %s bytes, adjust %.2f ms\n",uVar15)" identifier (argument_list "(dVar17 * DAT_0015d650,dVar18,\n                           "\nsleeping %.2f ms for %s bytes, adjust %.2f ms\n",uVar15)" ( (binary_expression "dVar17 * DAT_0015d650" identifier * identifier) , identifier , (string_literal ""\nsleeping %.2f ms for %s bytes, adjust %.2f ms\n"" " escape_sequence string_content escape_sequence ") , identifier ))) ;) })) (expression_statement "dVar18 = (double)FUN_00130f52(lVar6);" (assignment_expression "dVar18 = (double)FUN_00130f52(lVar6)" identifier = (cast_expression "(double)FUN_00130f52(lVar6)" ( (type_descriptor "double" primitive_type) ) (call_expression "FUN_00130f52(lVar6)" identifier (argument_list "(lVar6)" ( identifier ))))) ;) (expression_statement "FUN_0013d652(dVar17);" (call_expression "FUN_0013d652(dVar17)" identifier (argument_list "(dVar17)" ( identifier ))) ;) (expression_statement "dVar16 = (double)FUN_00130ebd(lVar6);" (assignment_expression "dVar16 = (double)FUN_00130ebd(lVar6)" identifier = (cast_expression "(double)FUN_00130ebd(lVar6)" ( (type_descriptor "double" primitive_type) ) (call_expression "FUN_00130ebd(lVar6)" identifier (argument_list "(lVar6)" ( identifier ))))) ;) (expression_statement "DAT_00176e70 = dVar17 - (dVar16 - dVar18);" (assignment_expression "DAT_00176e70 = dVar17 - (dVar16 - dVar18)" identifier = (binary_expression "dVar17 - (dVar16 - dVar18)" identifier - (parenthesized_expression "(dVar16 - dVar18)" ( (binary_expression "dVar16 - dVar18" identifier - identifier) )))) ;) (if_statement "if (DAT_00176e70 <= _DAT_0015c710) {\n              if (DAT_00176e70 < DAT_0015d658) {\n                DAT_00176e70 = DAT_0015d658;\n              }\n            }\n            else {\n              DAT_00176e70 = _DAT_0015c710;\n            }" if (parenthesized_expression "(DAT_00176e70 <= _DAT_0015c710)" ( (binary_expression "DAT_00176e70 <= _DAT_0015c710" identifier <= identifier) )) (compound_statement "{\n              if (DAT_00176e70 < DAT_0015d658) {\n                DAT_00176e70 = DAT_0015d658;\n              }\n            }" { (if_statement "if (DAT_00176e70 < DAT_0015d658) {\n                DAT_00176e70 = DAT_0015d658;\n              }" if (parenthesized_expression "(DAT_00176e70 < DAT_0015d658)" ( (binary_expression "DAT_00176e70 < DAT_0015d658" identifier < identifier) )) (compound_statement "{\n                DAT_00176e70 = DAT_0015d658;\n              }" { (expression_statement "DAT_00176e70 = DAT_0015d658;" (assignment_expression "DAT_00176e70 = DAT_0015d658" identifier = identifier) ;) })) }) (else_clause "else {\n              DAT_00176e70 = _DAT_0015c710;\n            }" else (compound_statement "{\n              DAT_00176e70 = _DAT_0015c710;\n            }" { (expression_statement "DAT_00176e70 = _DAT_0015c710;" (assignment_expression "DAT_00176e70 = _DAT_0015c710" identifier = identifier) ;) }))) })) (expression_statement "DAT_00176e60 = 0;" (assignment_expression "DAT_00176e60 = 0" identifier = number_literal) ;) (expression_statement "DAT_00176e68 = (double)FUN_00130f52(lVar6);" (assignment_expression "DAT_00176e68 = (double)FUN_00130f52(lVar6)" identifier = (cast_expression "(double)FUN_00130f52(lVar6)" ( (type_descriptor "double" primitive_type) ) (call_expression "FUN_00130f52(lVar6)" identifier (argument_list "(lVar6)" ( identifier ))))) ;) }))) }) (else_clause "else {\n        if (DAT_001774b0 != 0.0) {\n          dVar18 = (double)FUN_00130f52(lVar6);\n          if ((DAT_001774b0 < (dVar18 - local_110) + DAT_0015d648) &&\n             (DAT_001774b0 - (dVar18 - local_110) < 0.0)) {\n            piVar8 = __errno_location();\n            *piVar8 = 0x6e;\n            iVar4 = -1;\n            goto LAB_00133a74;\n          }\n        }\n        iVar5 = FUN_0010d64e(param_2,__ptr,uVar10 & 0xffffffff);\n        if (-1 < iVar5) goto LAB_00133e68;\n        piVar8 = __errno_location();\n        if (*piVar8 != 0x6e) break;\n        if (local_dc) {\n          FUN_00130ebd(lVar6);\n          iVar5 = 0;\n          goto LAB_00133ea0;\n        }\n        if ((DAT_001774e8 != 0) || (local_da)) {\n          FUN_00130ebd(lVar6);\n          iVar5 = 0;\n          goto LAB_00133ea0;\n        }\n        iVar5 = 0;\n      }" else (compound_statement "{\n        if (DAT_001774b0 != 0.0) {\n          dVar18 = (double)FUN_00130f52(lVar6);\n          if ((DAT_001774b0 < (dVar18 - local_110) + DAT_0015d648) &&\n             (DAT_001774b0 - (dVar18 - local_110) < 0.0)) {\n            piVar8 = __errno_location();\n            *piVar8 = 0x6e;\n            iVar4 = -1;\n            goto LAB_00133a74;\n          }\n        }\n        iVar5 = FUN_0010d64e(param_2,__ptr,uVar10 & 0xffffffff);\n        if (-1 < iVar5) goto LAB_00133e68;\n        piVar8 = __errno_location();\n        if (*piVar8 != 0x6e) break;\n        if (local_dc) {\n          FUN_00130ebd(lVar6);\n          iVar5 = 0;\n          goto LAB_00133ea0;\n        }\n        if ((DAT_001774e8 != 0) || (local_da)) {\n          FUN_00130ebd(lVar6);\n          iVar5 = 0;\n          goto LAB_00133ea0;\n        }\n        iVar5 = 0;\n      }" { (if_statement "if (DAT_001774b0 != 0.0) {\n          dVar18 = (double)FUN_00130f52(lVar6);\n          if ((DAT_001774b0 < (dVar18 - local_110) + DAT_0015d648) &&\n             (DAT_001774b0 - (dVar18 - local_110) < 0.0)) {\n            piVar8 = __errno_location();\n            *piVar8 = 0x6e;\n            iVar4 = -1;\n            goto LAB_00133a74;\n          }\n        }" if (parenthesized_expression "(DAT_001774b0 != 0.0)" ( (binary_expression "DAT_001774b0 != 0.0" identifier != number_literal) )) (compound_statement "{\n          dVar18 = (double)FUN_00130f52(lVar6);\n          if ((DAT_001774b0 < (dVar18 - local_110) + DAT_0015d648) &&\n             (DAT_001774b0 - (dVar18 - local_110) < 0.0)) {\n            piVar8 = __errno_location();\n            *piVar8 = 0x6e;\n            iVar4 = -1;\n            goto LAB_00133a74;\n          }\n        }" { (expression_statement "dVar18 = (double)FUN_00130f52(lVar6);" (assignment_expression "dVar18 = (double)FUN_00130f52(lVar6)" identifier = (cast_expression "(double)FUN_00130f52(lVar6)" ( (type_descriptor "double" primitive_type) ) (call_expression "FUN_00130f52(lVar6)" identifier (argument_list "(lVar6)" ( identifier ))))) ;) (if_statement "if ((DAT_001774b0 < (dVar18 - local_110) + DAT_0015d648) &&\n             (DAT_001774b0 - (dVar18 - local_110) < 0.0)) {\n            piVar8 = __errno_location();\n            *piVar8 = 0x6e;\n            iVar4 = -1;\n            goto LAB_00133a74;\n          }" if (parenthesized_expression "((DAT_001774b0 < (dVar18 - local_110) + DAT_0015d648) &&\n             (DAT_001774b0 - (dVar18 - local_110) < 0.0))" ( (binary_expression "(DAT_001774b0 < (dVar18 - local_110) + DAT_0015d648) &&\n             (DAT_001774b0 - (dVar18 - local_110) < 0.0)" (parenthesized_expression "(DAT_001774b0 < (dVar18 - local_110) + DAT_0015d648)" ( (binary_expression "DAT_001774b0 < (dVar18 - local_110) + DAT_0015d648" identifier < (binary_expression "(dVar18 - local_110) + DAT_0015d648" (parenthesized_expression "(dVar18 - local_110)" ( (binary_expression "dVar18 - local_110" identifier - identifier) )) + identifier)) )) && (parenthesized_expression "(DAT_001774b0 - (dVar18 - local_110) < 0.0)" ( (binary_expression "DAT_001774b0 - (dVar18 - local_110) < 0.0" (binary_expression "DAT_001774b0 - (dVar18 - local_110)" identifier - (parenthesized_expression "(dVar18 - local_110)" ( (binary_expression "dVar18 - local_110" identifier - identifier) ))) < number_literal) ))) )) (compound_statement "{\n            piVar8 = __errno_location();\n            *piVar8 = 0x6e;\n            iVar4 = -1;\n            goto LAB_00133a74;\n          }" { (expression_statement "piVar8 = __errno_location();" (assignment_expression "piVar8 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "*piVar8 = 0x6e;" (assignment_expression "*piVar8 = 0x6e" (pointer_expression "*piVar8" * identifier) = number_literal) ;) (expression_statement "iVar4 = -1;" (assignment_expression "iVar4 = -1" identifier = number_literal) ;) (goto_statement "goto LAB_00133a74;" goto statement_identifier ;) })) })) (expression_statement "iVar5 = FUN_0010d64e(param_2,__ptr,uVar10 & 0xffffffff);" (assignment_expression "iVar5 = FUN_0010d64e(param_2,__ptr,uVar10 & 0xffffffff)" identifier = (call_expression "FUN_0010d64e(param_2,__ptr,uVar10 & 0xffffffff)" identifier (argument_list "(param_2,__ptr,uVar10 & 0xffffffff)" ( identifier , identifier , (binary_expression "uVar10 & 0xffffffff" identifier & number_literal) )))) ;) (if_statement "if (-1 < iVar5) goto LAB_00133e68;" if (parenthesized_expression "(-1 < iVar5)" ( (binary_expression "-1 < iVar5" number_literal < identifier) )) (goto_statement "goto LAB_00133e68;" goto statement_identifier ;)) (expression_statement "piVar8 = __errno_location();" (assignment_expression "piVar8 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (if_statement "if (*piVar8 != 0x6e) break;" if (parenthesized_expression "(*piVar8 != 0x6e)" ( (binary_expression "*piVar8 != 0x6e" (pointer_expression "*piVar8" * identifier) != number_literal) )) (break_statement "break;" break ;)) (if_statement "if (local_dc) {\n          FUN_00130ebd(lVar6);\n          iVar5 = 0;\n          goto LAB_00133ea0;\n        }" if (parenthesized_expression "(local_dc)" ( identifier )) (compound_statement "{\n          FUN_00130ebd(lVar6);\n          iVar5 = 0;\n          goto LAB_00133ea0;\n        }" { (expression_statement "FUN_00130ebd(lVar6);" (call_expression "FUN_00130ebd(lVar6)" identifier (argument_list "(lVar6)" ( identifier ))) ;) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00133ea0;" goto statement_identifier ;) })) (if_statement "if ((DAT_001774e8 != 0) || (local_da)) {\n          FUN_00130ebd(lVar6);\n          iVar5 = 0;\n          goto LAB_00133ea0;\n        }" if (parenthesized_expression "((DAT_001774e8 != 0) || (local_da))" ( (binary_expression "(DAT_001774e8 != 0) || (local_da)" (parenthesized_expression "(DAT_001774e8 != 0)" ( (binary_expression "DAT_001774e8 != 0" identifier != number_literal) )) || (parenthesized_expression "(local_da)" ( identifier ))) )) (compound_statement "{\n          FUN_00130ebd(lVar6);\n          iVar5 = 0;\n          goto LAB_00133ea0;\n        }" { (expression_statement "FUN_00130ebd(lVar6);" (call_expression "FUN_00130ebd(lVar6)" identifier (argument_list "(lVar6)" ( identifier ))) ;) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00133ea0;" goto statement_identifier ;) })) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) }))) (labeled_statement "LAB_00133eae:\n      if (local_dc) {\n        FUN_00130f52(lVar6);\n        FUN_00130d09(local_130,(long)iVar5);\n      }" statement_identifier : (if_statement "if (local_dc) {\n        FUN_00130f52(lVar6);\n        FUN_00130d09(local_130,(long)iVar5);\n      }" if (parenthesized_expression "(local_dc)" ( identifier )) (compound_statement "{\n        FUN_00130f52(lVar6);\n        FUN_00130d09(local_130,(long)iVar5);\n      }" { (expression_statement "FUN_00130f52(lVar6);" (call_expression "FUN_00130f52(lVar6)" identifier (argument_list "(lVar6)" ( identifier ))) ;) (expression_statement "FUN_00130d09(local_130,(long)iVar5);" (call_expression "FUN_00130d09(local_130,(long)iVar5)" identifier (argument_list "(local_130,(long)iVar5)" ( identifier , (cast_expression "(long)iVar5" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) ))) ;) }))) })) (expression_statement "iVar4 = -1;" (assignment_expression "iVar4 = -1" identifier = number_literal) ;) (if_statement "if (-1 < iVar5) {\n      iVar4 = iVar5;\n    }" if (parenthesized_expression "(-1 < iVar5)" ( (binary_expression "-1 < iVar5" number_literal < identifier) )) (compound_statement "{\n      iVar4 = iVar5;\n    }" { (expression_statement "iVar4 = iVar5;" (assignment_expression "iVar4 = iVar5" identifier = identifier) ;) })) (goto_statement "goto LAB_00133a74;" goto statement_identifier ;) })) (expression_statement "__ptr_00 = (undefined8 *)FUN_001494bf(0x8000);" (assignment_expression "__ptr_00 = (undefined8 *)FUN_001494bf(0x8000)" identifier = (cast_expression "(undefined8 *)FUN_001494bf(0x8000)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001494bf(0x8000)" identifier (argument_list "(0x8000)" ( number_literal ))))) ;) (if_statement "if (__ptr_00 == (undefined8 *)0x0) {\n    piVar8 = __errno_location();\n    *piVar8 = 0xc;\n  }\n  else {\n    local_78 = FUN_00133111;\n    local_70 = FUN_00133100;\n    local_68 = 0;\n    local_b8 = (void *)0x0;\n    local_b0 = 0;\n    iVar3 = inflateInit2_(&local_b8,0x2f,"1.2.11",0x70);\n    if (iVar3 == 0) goto LAB_001335e1;\n    free(__ptr_00);\n    iVar5 = 0xc;\n    if (iVar3 != -4) {\n      iVar5 = 0x16;\n    }\n    piVar8 = __errno_location();\n    *piVar8 = iVar5;\n  }" if (parenthesized_expression "(__ptr_00 == (undefined8 *)0x0)" ( (binary_expression "__ptr_00 == (undefined8 *)0x0" identifier == (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    piVar8 = __errno_location();\n    *piVar8 = 0xc;\n  }" { (expression_statement "piVar8 = __errno_location();" (assignment_expression "piVar8 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "*piVar8 = 0xc;" (assignment_expression "*piVar8 = 0xc" (pointer_expression "*piVar8" * identifier) = number_literal) ;) }) (else_clause "else {\n    local_78 = FUN_00133111;\n    local_70 = FUN_00133100;\n    local_68 = 0;\n    local_b8 = (void *)0x0;\n    local_b0 = 0;\n    iVar3 = inflateInit2_(&local_b8,0x2f,"1.2.11",0x70);\n    if (iVar3 == 0) goto LAB_001335e1;\n    free(__ptr_00);\n    iVar5 = 0xc;\n    if (iVar3 != -4) {\n      iVar5 = 0x16;\n    }\n    piVar8 = __errno_location();\n    *piVar8 = iVar5;\n  }" else (compound_statement "{\n    local_78 = FUN_00133111;\n    local_70 = FUN_00133100;\n    local_68 = 0;\n    local_b8 = (void *)0x0;\n    local_b0 = 0;\n    iVar3 = inflateInit2_(&local_b8,0x2f,"1.2.11",0x70);\n    if (iVar3 == 0) goto LAB_001335e1;\n    free(__ptr_00);\n    iVar5 = 0xc;\n    if (iVar3 != -4) {\n      iVar5 = 0x16;\n    }\n    piVar8 = __errno_location();\n    *piVar8 = iVar5;\n  }" { (expression_statement "local_78 = FUN_00133111;" (assignment_expression "local_78 = FUN_00133111" identifier = identifier) ;) (expression_statement "local_70 = FUN_00133100;" (assignment_expression "local_70 = FUN_00133100" identifier = identifier) ;) (expression_statement "local_68 = 0;" (assignment_expression "local_68 = 0" identifier = number_literal) ;) (expression_statement "local_b8 = (void *)0x0;" (assignment_expression "local_b8 = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_b0 = 0;" (assignment_expression "local_b0 = 0" identifier = number_literal) ;) (expression_statement "iVar3 = inflateInit2_(&local_b8,0x2f,"1.2.11",0x70);" (assignment_expression "iVar3 = inflateInit2_(&local_b8,0x2f,"1.2.11",0x70)" identifier = (call_expression "inflateInit2_(&local_b8,0x2f,"1.2.11",0x70)" identifier (argument_list "(&local_b8,0x2f,"1.2.11",0x70)" ( (pointer_expression "&local_b8" & identifier) , number_literal , (string_literal ""1.2.11"" " string_content ") , number_literal )))) ;) (if_statement "if (iVar3 == 0) goto LAB_001335e1;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_001335e1;" goto statement_identifier ;)) (expression_statement "free(__ptr_00);" (call_expression "free(__ptr_00)" identifier (argument_list "(__ptr_00)" ( identifier ))) ;) (expression_statement "iVar5 = 0xc;" (assignment_expression "iVar5 = 0xc" identifier = number_literal) ;) (if_statement "if (iVar3 != -4) {\n      iVar5 = 0x16;\n    }" if (parenthesized_expression "(iVar3 != -4)" ( (binary_expression "iVar3 != -4" identifier != number_literal) )) (compound_statement "{\n      iVar5 = 0x16;\n    }" { (expression_statement "iVar5 = 0x16;" (assignment_expression "iVar5 = 0x16" identifier = number_literal) ;) })) (expression_statement "piVar8 = __errno_location();" (assignment_expression "piVar8 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "*piVar8 = iVar5;" (assignment_expression "*piVar8 = iVar5" (pointer_expression "*piVar8" * identifier) = identifier) ;) }))) (expression_statement "lVar13 = 0;" (assignment_expression "lVar13 = 0" identifier = number_literal) ;) (expression_statement "iVar4 = -1;" (assignment_expression "iVar4 = -1" identifier = number_literal) ;) (if_statement "if (param_8 == (undefined8 *)0x0) goto LAB_00133ab4;" if (parenthesized_expression "(param_8 == (undefined8 *)0x0)" ( (binary_expression "param_8 == (undefined8 *)0x0" identifier == (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00133ab4;" goto statement_identifier ;)) (expression_statement "__ptr_00 = (undefined8 *)0x0;" (assignment_expression "__ptr_00 = (undefined8 *)0x0" identifier = (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "lVar13 = 0;" (assignment_expression "lVar13 = 0" identifier = number_literal) ;) (expression_statement "lVar6 = 0;" (assignment_expression "lVar6 = 0" identifier = number_literal) ;) (expression_statement "iVar4 = -1;" (assignment_expression "iVar4 = -1" identifier = number_literal) ;) (labeled_statement "LAB_00133a96:\n  uVar15 = FUN_00130f52(lVar6);" statement_identifier : (expression_statement "uVar15 = FUN_00130f52(lVar6);" (assignment_expression "uVar15 = FUN_00130f52(lVar6)" identifier = (call_expression "FUN_00130f52(lVar6)" identifier (argument_list "(lVar6)" ( identifier )))) ;)) (expression_statement "*param_8 = uVar15;" (assignment_expression "*param_8 = uVar15" (pointer_expression "*param_8" * identifier) = identifier) ;) (goto_statement "goto LAB_00133aa7;" goto statement_identifier ;) (while_statement "while( true ) {\n    uVar9 = uVar9 - 1;\n    cVar1 = *pcVar11;\n    pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n    if (cVar1 == '\0') break;\ncode_r0x001338a0:\n    if (uVar9 == 0) break;\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    uVar9 = uVar9 - 1;\n    cVar1 = *pcVar11;\n    pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n    if (cVar1 == '\0') break;\ncode_r0x001338a0:\n    if (uVar9 == 0) break;\n  }" { (expression_statement "uVar9 = uVar9 - 1;" (assignment_expression "uVar9 = uVar9 - 1" identifier = (binary_expression "uVar9 - 1" identifier - number_literal)) ;) (expression_statement "cVar1 = *pcVar11;" (assignment_expression "cVar1 = *pcVar11" identifier = (pointer_expression "*pcVar11" * identifier)) ;) (expression_statement "pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;" (assignment_expression "pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1" identifier = (binary_expression "pcVar11 + (ulong)bVar14 * -2 + 1" (binary_expression "pcVar11 + (ulong)bVar14 * -2" identifier + (binary_expression "(ulong)bVar14 * -2" (cast_expression "(ulong)bVar14" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (if_statement "if (cVar1 == '\0') break;" if (parenthesized_expression "(cVar1 == '\0')" ( (binary_expression "cVar1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (break_statement "break;" break ;)) (labeled_statement "code_r0x001338a0:\n    if (uVar9 == 0) break;" statement_identifier : (if_statement "if (uVar9 == 0) break;" if (parenthesized_expression "(uVar9 == 0)" ( (binary_expression "uVar9 == 0" identifier == number_literal) )) (break_statement "break;" break ;))) })) (expression_statement "fwrite(pcVar7,1,~uVar9 - 1,param_10);" (call_expression "fwrite(pcVar7,1,~uVar9 - 1,param_10)" identifier (argument_list "(pcVar7,1,~uVar9 - 1,param_10)" ( identifier , number_literal , (binary_expression "~uVar9 - 1" (unary_expression "~uVar9" ~ identifier) - number_literal) , identifier ))) ;) (labeled_statement "LAB_001338bc:\n  free(pcVar7);" statement_identifier : (expression_statement "free(pcVar7);" (call_expression "free(pcVar7)" identifier (argument_list "(pcVar7)" ( identifier ))) ;)) (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) (labeled_statement "LAB_00133a74:\n  if (local_130 != 0) {\n    FUN_00130f52(lVar6);\n    FUN_00130d26(local_130);\n  }" statement_identifier : (if_statement "if (local_130 != 0) {\n    FUN_00130f52(lVar6);\n    FUN_00130d26(local_130);\n  }" if (parenthesized_expression "(local_130 != 0)" ( (binary_expression "local_130 != 0" identifier != number_literal) )) (compound_statement "{\n    FUN_00130f52(lVar6);\n    FUN_00130d26(local_130);\n  }" { (expression_statement "FUN_00130f52(lVar6);" (call_expression "FUN_00130f52(lVar6)" identifier (argument_list "(lVar6)" ( identifier ))) ;) (expression_statement "FUN_00130d26(local_130);" (call_expression "FUN_00130d26(local_130)" identifier (argument_list "(local_130)" ( identifier ))) ;) }))) (if_statement "if (param_8 != (undefined8 *)0x0) goto LAB_00133a96;" if (parenthesized_expression "(param_8 != (undefined8 *)0x0)" ( (binary_expression "param_8 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00133a96;" goto statement_identifier ;)) (labeled_statement "LAB_00133aa7:\n  param_8 = __ptr_00;" statement_identifier : (expression_statement "param_8 = __ptr_00;" (assignment_expression "param_8 = __ptr_00" identifier = identifier) ;)) (if_statement "if (lVar6 != 0) {\n    FUN_00130d39(lVar6);\n  }" if (parenthesized_expression "(lVar6 != 0)" ( (binary_expression "lVar6 != 0" identifier != number_literal) )) (compound_statement "{\n    FUN_00130d39(lVar6);\n  }" { (expression_statement "FUN_00130d39(lVar6);" (call_expression "FUN_00130d39(lVar6)" identifier (argument_list "(lVar6)" ( identifier ))) ;) })) (labeled_statement "LAB_00133ab4:\n  if (param_8 != (undefined8 *)0x0) {\n    iVar3 = inflateEnd(&local_b8);\n    if ((-1 < iVar4) && (iVar4 = iVar3, iVar3 != 0)) {\n      piVar8 = __errno_location();\n      *piVar8 = 0x16;\n      iVar4 = -1;\n    }\n    free(param_8);\n    if ((local_a8 != lVar13) && (DAT_001774fb != '\0')) {\n      FUN_0012bddf("zlib read size differs from raw read size (%lu/%lu)\n",local_a8,lVar13);\n    }\n  }" statement_identifier : (if_statement "if (param_8 != (undefined8 *)0x0) {\n    iVar3 = inflateEnd(&local_b8);\n    if ((-1 < iVar4) && (iVar4 = iVar3, iVar3 != 0)) {\n      piVar8 = __errno_location();\n      *piVar8 = 0x16;\n      iVar4 = -1;\n    }\n    free(param_8);\n    if ((local_a8 != lVar13) && (DAT_001774fb != '\0')) {\n      FUN_0012bddf("zlib read size differs from raw read size (%lu/%lu)\n",local_a8,lVar13);\n    }\n  }" if (parenthesized_expression "(param_8 != (undefined8 *)0x0)" ( (binary_expression "param_8 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    iVar3 = inflateEnd(&local_b8);\n    if ((-1 < iVar4) && (iVar4 = iVar3, iVar3 != 0)) {\n      piVar8 = __errno_location();\n      *piVar8 = 0x16;\n      iVar4 = -1;\n    }\n    free(param_8);\n    if ((local_a8 != lVar13) && (DAT_001774fb != '\0')) {\n      FUN_0012bddf("zlib read size differs from raw read size (%lu/%lu)\n",local_a8,lVar13);\n    }\n  }" { (expression_statement "iVar3 = inflateEnd(&local_b8);" (assignment_expression "iVar3 = inflateEnd(&local_b8)" identifier = (call_expression "inflateEnd(&local_b8)" identifier (argument_list "(&local_b8)" ( (pointer_expression "&local_b8" & identifier) )))) ;) (if_statement "if ((-1 < iVar4) && (iVar4 = iVar3, iVar3 != 0)) {\n      piVar8 = __errno_location();\n      *piVar8 = 0x16;\n      iVar4 = -1;\n    }" if (parenthesized_expression "((-1 < iVar4) && (iVar4 = iVar3, iVar3 != 0))" ( (binary_expression "(-1 < iVar4) && (iVar4 = iVar3, iVar3 != 0)" (parenthesized_expression "(-1 < iVar4)" ( (binary_expression "-1 < iVar4" number_literal < identifier) )) && (parenthesized_expression "(iVar4 = iVar3, iVar3 != 0)" ( (comma_expression "iVar4 = iVar3, iVar3 != 0" (assignment_expression "iVar4 = iVar3" identifier = identifier) , (binary_expression "iVar3 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n      piVar8 = __errno_location();\n      *piVar8 = 0x16;\n      iVar4 = -1;\n    }" { (expression_statement "piVar8 = __errno_location();" (assignment_expression "piVar8 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "*piVar8 = 0x16;" (assignment_expression "*piVar8 = 0x16" (pointer_expression "*piVar8" * identifier) = number_literal) ;) (expression_statement "iVar4 = -1;" (assignment_expression "iVar4 = -1" identifier = number_literal) ;) })) (expression_statement "free(param_8);" (call_expression "free(param_8)" identifier (argument_list "(param_8)" ( identifier ))) ;) (if_statement "if ((local_a8 != lVar13) && (DAT_001774fb != '\0')) {\n      FUN_0012bddf("zlib read size differs from raw read size (%lu/%lu)\n",local_a8,lVar13);\n    }" if (parenthesized_expression "((local_a8 != lVar13) && (DAT_001774fb != '\0'))" ( (binary_expression "(local_a8 != lVar13) && (DAT_001774fb != '\0')" (parenthesized_expression "(local_a8 != lVar13)" ( (binary_expression "local_a8 != lVar13" identifier != identifier) )) && (parenthesized_expression "(DAT_001774fb != '\0')" ( (binary_expression "DAT_001774fb != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n      FUN_0012bddf("zlib read size differs from raw read size (%lu/%lu)\n",local_a8,lVar13);\n    }" { (expression_statement "FUN_0012bddf("zlib read size differs from raw read size (%lu/%lu)\n",local_a8,lVar13);" (call_expression "FUN_0012bddf("zlib read size differs from raw read size (%lu/%lu)\n",local_a8,lVar13)" identifier (argument_list "("zlib read size differs from raw read size (%lu/%lu)\n",local_a8,lVar13)" ( (string_literal ""zlib read size differs from raw read size (%lu/%lu)\n"" " string_content escape_sequence ") , identifier , identifier ))) ;) })) }))) (if_statement "if (param_6 != (long *)0x0) {\n    *param_6 = *param_6 + lVar13;\n  }" if (parenthesized_expression "(param_6 != (long *)0x0)" ( (binary_expression "param_6 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    *param_6 = *param_6 + lVar13;\n  }" { (expression_statement "*param_6 = *param_6 + lVar13;" (assignment_expression "*param_6 = *param_6 + lVar13" (pointer_expression "*param_6" * identifier) = (binary_expression "*param_6 + lVar13" (pointer_expression "*param_6" * identifier) + identifier)) ;) })) (if_statement "if (param_7 != (long *)0x0) {\n    *param_7 = *param_7 + local_c8;\n  }" if (parenthesized_expression "(param_7 != (long *)0x0)" ( (binary_expression "param_7 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    *param_7 = *param_7 + local_c8;\n  }" { (expression_statement "*param_7 = *param_7 + local_c8;" (assignment_expression "*param_7 = *param_7 + local_c8" (pointer_expression "*param_7" * identifier) = (binary_expression "*param_7 + local_c8" (pointer_expression "*param_7" * identifier) + identifier)) ;) })) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) (if_statement "if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar4;\n  }" if (parenthesized_expression "(local_40 == *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "local_40 == *(long *)(in_FS_OFFSET + 0x28)" identifier == (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n    return iVar4;\n  }" { (return_statement "return iVar4;" return identifier ;) })) (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration (sized_type_specifier long) (pointer_declarator * IDENT)) , (parameter_declaration (sized_type_specifier long) (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 IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = 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 { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = 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 = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (unary_expression ~ IDENT))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (binary_expression IDENT + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT != LIT) || (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression LIT < (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) }))) (expression_statement (assignment_expression IDENT = (binary_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) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (while_statement while (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (binary_expression IDENT == LIT) || (parenthesized_expression ( (binary_expression IDENT < IDENT) )))) )) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) < (binary_expression IDENT - IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ;) })) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , (binary_expression (unary_expression ~ IDENT) - LIT) , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) )) (compound_statement { (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 *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (goto_statement goto statement_identifier ;) })) })) (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) < (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , (binary_expression IDENT & LIT) )))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (break_statement break ;))) (if_statement if (parenthesized_expression ( IDENT )) (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 ))))) ;)) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) || (parenthesized_expression ( IDENT ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })))) (expression_statement (assignment_expression IDENT = (binary_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 = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , (pointer_expression & IDENT) , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT , IDENT , IDENT , LIT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (goto_statement goto statement_identifier ;)) (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 = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_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 IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = 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 != IDENT) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) && (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") , IDENT , IDENT ))) ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)))))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , IDENT , (binary_expression LIT - IDENT) , (pointer_expression & IDENT) , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (goto_statement goto statement_identifier ;)) }) while (parenthesized_expression ( (binary_expression IDENT == LIT) )) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT - (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT))) , (binary_expression IDENT == LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( 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) ;) (break_statement break ;) })) (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 = IDENT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , (binary_expression (unary_expression ~ IDENT) - LIT) , IDENT ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( 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 = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) / (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) / (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT))) - IDENT) )) + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT * IDENT) , IDENT , (string_literal " string_content escape_sequence ") , IDENT ))) ;) })) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT * IDENT) , IDENT , (string_literal " escape_sequence string_content escape_sequence ") , 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 { (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) }))) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) }))) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) + IDENT)) )) && (parenthesized_expression ( (binary_expression (binary_expression IDENT - (parenthesized_expression ( (binary_expression IDENT - IDENT) ))) < LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (binary_expression IDENT & LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (break_statement break ;)) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) || (parenthesized_expression ( IDENT ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (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 ( IDENT )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) ))) ;) }))) })) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression 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 = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression 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 = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , LIT , (string_literal " string_content ") , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (call_expression 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 = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (goto_statement goto statement_identifier ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (break_statement break ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;))) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , (binary_expression (unary_expression ~ IDENT) - LIT) , IDENT ))) ;) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != 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 = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < IDENT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != IDENT) )) && (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") , IDENT , IDENT ))) ;) })) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) + IDENT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) + IDENT)) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })))
(function_definition "int FUN_00133529(long param_1,undefined4 param_2,undefined8 param_3,long param_4,long param_5,\n                long *param_6,long *param_7,undefined8 *param_8,uint param_9,FILE *param_10)\n\n{\n  char cVar1;\n  uint uVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  void *__ptr;\n  long lVar6;\n  char *pcVar7;\n  int *piVar8;\n  ulong uVar9;\n  ulong uVar10;\n  char *pcVar11;\n  ulong uVar12;\n  undefined8 *__ptr_00;\n  long lVar13;\n  long in_FS_OFFSET;\n  byte bVar14;\n  undefined8 uVar15;\n  double dVar16;\n  double dVar17;\n  double dVar18;\n  long local_130;\n  double local_110;\n  bool local_dc;\n  char local_db;\n  bool local_da;\n  long local_d0;\n  long local_c8;\n  char *local_c0;\n  void *local_b8;\n  int local_b0;\n  long local_a8;\n  undefined8 *local_a0;\n  int local_98;\n  code *local_78;\n  code *local_70;\n  undefined8 local_68;\n  long local_40;\n  \n  bVar14 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  __ptr = (void *)FUN_001494bf(0x2000);\n  uVar2 = param_9 & 1;\n  local_d0 = 0;\n  local_c8 = 0;\n  __ptr_00 = (undefined8 *)0x0;\n  if ((param_9 & 8) == 0) {\nLAB_001335e1:\n    if ((param_9 & 2) != 0) {\n      local_d0 = param_5;\n    }\n    if (DAT_00177498 == 0) {\n      local_db = '\0';\n      local_130 = 0;\n    }\n    else {\n      if (local_d0 != 0) {\n        param_5 = 0;\n      }\n      if (DAT_001772f8 != (char *)0x0) {\n        uVar9 = 0xffffffffffffffff;\n        pcVar7 = DAT_001772f8;\n        do {\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar1 = *pcVar7;\n          pcVar7 = pcVar7 + (ulong)bVar14 * -2 + 1;\n        } while (cVar1 != '\0');\n        param_1 = param_1 + ~uVar9;\n      }\n      local_130 = FUN_00130cae(param_1,param_5,param_5 + param_4);\n      local_db = FUN_00130cfd(local_130);\n    }\n    if (DAT_001774e8 == 0) {\n      if (local_130 != 0 || param_8 != (undefined8 *)0x0) goto LAB_00133682;\n      uVar9 = 0x2000;\n      lVar6 = 0;\n    }\n    else {\n      DAT_00176e60 = 0;\n      DAT_00176e68 = 0.0;\n      DAT_00176e70 = 0.0;\nLAB_00133682:\n      lVar6 = FUN_00130d6b();\n      if ((DAT_001774e8 == 0) || (uVar9 = DAT_001774e8, 0x1fff < (long)DAT_001774e8)) {\n        uVar9 = 0x2000;\n      }\n    }\n    local_da = param_8 != (undefined8 *)0x0;\n    local_dc = local_130 != 0;\n    iVar3 = (int)uVar9;\n    uVar12 = 0;\n    lVar13 = 0;\n    local_110 = 0.0;\n    iVar5 = 0;\n    while ((dVar18 = DAT_001774b0, uVar2 == 0 || (lVar13 < param_4))) {\n      if ((param_9 & 4) == 0) {\n        uVar10 = uVar9 & 0xffffffff;\n        if (uVar2 != 0) {\n          uVar10 = param_4 - lVar13;\n          if ((long)iVar3 < param_4 - lVar13) {\n            uVar10 = (long)iVar3;\n          }\n        }\n      }\n      else {\n        if (uVar12 == 0) {\n          pcVar7 = (char *)FUN_0013350a(param_2);\n          if (pcVar7 != (char *)0x0) {\n            if (param_10 != (FILE *)0x0) {\n              uVar12 = 0xffffffffffffffff;\n              pcVar11 = pcVar7;\n              do {\n                if (uVar12 == 0) break;\n                uVar12 = uVar12 - 1;\n                cVar1 = *pcVar11;\n                pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n              } while (cVar1 != '\0');\n              fwrite(pcVar7,1,~uVar12 - 1,param_10);\n            }\n            uVar12 = strtol(pcVar7,&local_c0,0x10);\n            free(pcVar7);\n            if (-1 < (long)uVar12) {\n              if (uVar12 != 0) goto LAB_00133ef7;\n              pcVar7 = (char *)FUN_0013350a(param_2);\n              iVar4 = -1;\n              if (pcVar7 != (char *)0x0) {\n                if (param_10 == (FILE *)0x0) goto LAB_001338bc;\n                uVar9 = 0xffffffffffffffff;\n                pcVar11 = pcVar7;\n                goto code_r0x001338a0;\n              }\n              goto LAB_00133a74;\n            }\n          }\n          iVar5 = -1;\n          break;\n        }\nLAB_00133ef7:\n        uVar10 = (long)iVar3;\n        if ((long)uVar12 < (long)iVar3) {\n          uVar10 = uVar12;\n        }\n      }\n      if (local_db == '\0') {\n        iVar5 = FUN_0010d64e(dVar18,param_2,__ptr,uVar10 & 0xffffffff);\nLAB_00133e68:\n        if (iVar5 < 1) break;\n        if (local_dc) {\n          FUN_00130ebd(lVar6);\nLAB_00133d9f:\n          local_110 = (double)FUN_00130f52(lVar6);\n        }\n        else if ((DAT_001774e8 != 0) || (local_da)) {\n          FUN_00130ebd(lVar6);\n          if (iVar5 < 1) goto LAB_00133ea0;\n          goto LAB_00133d9f;\n        }\n        lVar13 = lVar13 + iVar5;\n        if (__ptr_00 == (undefined8 *)0x0) {\n          iVar4 = FUN_00133125(param_3,param_10,__ptr,iVar5,&local_d0,&local_c8);\n          if (iVar4 < 0) goto LAB_00133a74;\n        }\n        else {\n          iVar4 = FUN_00133125(0,param_10,__ptr,iVar5,0,0);\n          if (iVar4 < 0) goto LAB_00133a74;\n          local_b8 = __ptr;\n          local_b0 = iVar5;\n          do {\n            local_98 = 0x8000;\n            local_a0 = __ptr_00;\n            iVar4 = inflate(&local_b8,0);\n            if (iVar4 == -3) {\nLAB_00133b59:\n              piVar8 = __errno_location();\n              *piVar8 = 0x16;\n              iVar4 = -1;\n              goto LAB_00133a74;\n            }\n            if (iVar4 < -2) {\n              if (iVar4 == -4) {\n                piVar8 = __errno_location();\n                *piVar8 = 0xc;\n                iVar4 = -1;\n                goto LAB_00133a74;\n              }\n            }\n            else if (iVar4 == 1) {\n              if (((param_4 != lVar13) && (uVar2 != 0)) && (DAT_001774fb != '\0')) {\n                FUN_0012bddf("zlib stream ended unexpectedly after %ld/%ld bytes\n",lVar13,param_4);\n              }\n            }\n            else if (iVar4 == 2) goto LAB_00133b59;\n            iVar4 = FUN_00133125(param_3,0,__ptr_00,0x8000 - local_98,&local_d0,&local_c8);\n            if (iVar4 < 0) goto LAB_00133a74;\n          } while (local_98 == 0);\n        }\n        if (((param_9 & 4) != 0) && (uVar12 = uVar12 - (long)iVar5, uVar12 == 0)) {\n          pcVar7 = (char *)FUN_0013350a(param_2);\n          if (pcVar7 == (char *)0x0) {\n            iVar5 = -1;\n            break;\n          }\n          if (param_10 != (FILE *)0x0) {\n            uVar10 = 0xffffffffffffffff;\n            pcVar11 = pcVar7;\n            do {\n              if (uVar10 == 0) break;\n              uVar10 = uVar10 - 1;\n              cVar1 = *pcVar11;\n              pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n            } while (cVar1 != '\0');\n            fwrite(pcVar7,1,~uVar10 - 1,param_10);\n          }\n          free(pcVar7);\n        }\nLAB_00133ea0:\n        if (DAT_001774e8 != 0) {\n          dVar16 = (double)FUN_00130f52(lVar6);\n          dVar18 = DAT_00176e70;\n          dVar16 = dVar16 - DAT_00176e68;\n          DAT_00176e60 = iVar5 + DAT_00176e60;\n          if (dVar16 < (double)DAT_00176e60 / (double)(long)DAT_001774e8) {\n            dVar17 = ((double)DAT_00176e60 / (double)(long)DAT_001774e8 - dVar16) + DAT_00176e70;\n            if (dVar17 < _DAT_0015c908) {\n              if (DAT_001774fb != '\0') {\n                uVar15 = FUN_0013d39d();\n                FUN_0012bddf(dVar17 * DAT_0015d650,dVar16,"deferring a %.2f ms sleep (%s/%.2f).\n",\n                             uVar15);\n              }\n              goto LAB_00133eae;\n            }\n            if (DAT_001774fb != '\0') {\n              uVar15 = FUN_0013d39d();\n              FUN_0012bddf(dVar17 * DAT_0015d650,dVar18,\n                           "\nsleeping %.2f ms for %s bytes, adjust %.2f ms\n",uVar15);\n            }\n            dVar18 = (double)FUN_00130f52(lVar6);\n            FUN_0013d652(dVar17);\n            dVar16 = (double)FUN_00130ebd(lVar6);\n            DAT_00176e70 = dVar17 - (dVar16 - dVar18);\n            if (DAT_00176e70 <= _DAT_0015c710) {\n              if (DAT_00176e70 < DAT_0015d658) {\n                DAT_00176e70 = DAT_0015d658;\n              }\n            }\n            else {\n              DAT_00176e70 = _DAT_0015c710;\n            }\n          }\n          DAT_00176e60 = 0;\n          DAT_00176e68 = (double)FUN_00130f52(lVar6);\n        }\n      }\n      else {\n        if (DAT_001774b0 != 0.0) {\n          dVar18 = (double)FUN_00130f52(lVar6);\n          if ((DAT_001774b0 < (dVar18 - local_110) + DAT_0015d648) &&\n             (DAT_001774b0 - (dVar18 - local_110) < 0.0)) {\n            piVar8 = __errno_location();\n            *piVar8 = 0x6e;\n            iVar4 = -1;\n            goto LAB_00133a74;\n          }\n        }\n        iVar5 = FUN_0010d64e(param_2,__ptr,uVar10 & 0xffffffff);\n        if (-1 < iVar5) goto LAB_00133e68;\n        piVar8 = __errno_location();\n        if (*piVar8 != 0x6e) break;\n        if (local_dc) {\n          FUN_00130ebd(lVar6);\n          iVar5 = 0;\n          goto LAB_00133ea0;\n        }\n        if ((DAT_001774e8 != 0) || (local_da)) {\n          FUN_00130ebd(lVar6);\n          iVar5 = 0;\n          goto LAB_00133ea0;\n        }\n        iVar5 = 0;\n      }\nLAB_00133eae:\n      if (local_dc) {\n        FUN_00130f52(lVar6);\n        FUN_00130d09(local_130,(long)iVar5);\n      }\n    }\n    iVar4 = -1;\n    if (-1 < iVar5) {\n      iVar4 = iVar5;\n    }\n    goto LAB_00133a74;\n  }\n  __ptr_00 = (undefined8 *)FUN_001494bf(0x8000);\n  if (__ptr_00 == (undefined8 *)0x0) {\n    piVar8 = __errno_location();\n    *piVar8 = 0xc;\n  }\n  else {\n    local_78 = FUN_00133111;\n    local_70 = FUN_00133100;\n    local_68 = 0;\n    local_b8 = (void *)0x0;\n    local_b0 = 0;\n    iVar3 = inflateInit2_(&local_b8,0x2f,"1.2.11",0x70);\n    if (iVar3 == 0) goto LAB_001335e1;\n    free(__ptr_00);\n    iVar5 = 0xc;\n    if (iVar3 != -4) {\n      iVar5 = 0x16;\n    }\n    piVar8 = __errno_location();\n    *piVar8 = iVar5;\n  }\n  lVar13 = 0;\n  iVar4 = -1;\n  if (param_8 == (undefined8 *)0x0) goto LAB_00133ab4;\n  __ptr_00 = (undefined8 *)0x0;\n  lVar13 = 0;\n  lVar6 = 0;\n  iVar4 = -1;\nLAB_00133a96:\n  uVar15 = FUN_00130f52(lVar6);\n  *param_8 = uVar15;\n  goto LAB_00133aa7;\n  while( true ) {\n    uVar9 = uVar9 - 1;\n    cVar1 = *pcVar11;\n    pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n    if (cVar1 == '\0') break;\ncode_r0x001338a0:\n    if (uVar9 == 0) break;\n  }\n  fwrite(pcVar7,1,~uVar9 - 1,param_10);\nLAB_001338bc:\n  free(pcVar7);\n  iVar4 = 0;\nLAB_00133a74:\n  if (local_130 != 0) {\n    FUN_00130f52(lVar6);\n    FUN_00130d26(local_130);\n  }\n  if (param_8 != (undefined8 *)0x0) goto LAB_00133a96;\nLAB_00133aa7:\n  param_8 = __ptr_00;\n  if (lVar6 != 0) {\n    FUN_00130d39(lVar6);\n  }\nLAB_00133ab4:\n  if (param_8 != (undefined8 *)0x0) {\n    iVar3 = inflateEnd(&local_b8);\n    if ((-1 < iVar4) && (iVar4 = iVar3, iVar3 != 0)) {\n      piVar8 = __errno_location();\n      *piVar8 = 0x16;\n      iVar4 = -1;\n    }\n    free(param_8);\n    if ((local_a8 != lVar13) && (DAT_001774fb != '\0')) {\n      FUN_0012bddf("zlib read size differs from raw read size (%lu/%lu)\n",local_a8,lVar13);\n    }\n  }\n  if (param_6 != (long *)0x0) {\n    *param_6 = *param_6 + lVar13;\n  }\n  if (param_7 != (long *)0x0) {\n    *param_7 = *param_7 + local_c8;\n  }\n  free(__ptr);\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar4;\n  }\n                    \n  __stack_chk_fail();\n}" (primitive_type "int") (function_declarator "FUN_00133529(long param_1,undefined4 param_2,undefined8 param_3,long param_4,long param_5,\n                long *param_6,long *param_7,undefined8 *param_8,uint param_9,FILE *param_10)" (identifier "FUN_00133529") (parameter_list "(long param_1,undefined4 param_2,undefined8 param_3,long param_4,long param_5,\n                long *param_6,long *param_7,undefined8 *param_8,uint param_9,FILE *param_10)" (( "(") (parameter_declaration "long param_1" (sized_type_specifier "long" (long "long")) (identifier "param_1")) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) (, ",") (parameter_declaration "undefined8 param_3" (type_identifier "undefined8") (identifier "param_3")) (, ",") (parameter_declaration "long param_4" (sized_type_specifier "long" (long "long")) (identifier "param_4")) (, ",") (parameter_declaration "long param_5" (sized_type_specifier "long" (long "long")) (identifier "param_5")) (, ",") (parameter_declaration "long *param_6" (sized_type_specifier "long" (long "long")) (pointer_declarator "*param_6" (* "*") (identifier "param_6"))) (, ",") (parameter_declaration "long *param_7" (sized_type_specifier "long" (long "long")) (pointer_declarator "*param_7" (* "*") (identifier "param_7"))) (, ",") (parameter_declaration "undefined8 *param_8" (type_identifier "undefined8") (pointer_declarator "*param_8" (* "*") (identifier "param_8"))) (, ",") (parameter_declaration "uint param_9" (type_identifier "uint") (identifier "param_9")) (, ",") (parameter_declaration "FILE *param_10" (type_identifier "FILE") (pointer_declarator "*param_10" (* "*") (identifier "param_10"))) () ")"))) (compound_statement "{\n  char cVar1;\n  uint uVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  void *__ptr;\n  long lVar6;\n  char *pcVar7;\n  int *piVar8;\n  ulong uVar9;\n  ulong uVar10;\n  char *pcVar11;\n  ulong uVar12;\n  undefined8 *__ptr_00;\n  long lVar13;\n  long in_FS_OFFSET;\n  byte bVar14;\n  undefined8 uVar15;\n  double dVar16;\n  double dVar17;\n  double dVar18;\n  long local_130;\n  double local_110;\n  bool local_dc;\n  char local_db;\n  bool local_da;\n  long local_d0;\n  long local_c8;\n  char *local_c0;\n  void *local_b8;\n  int local_b0;\n  long local_a8;\n  undefined8 *local_a0;\n  int local_98;\n  code *local_78;\n  code *local_70;\n  undefined8 local_68;\n  long local_40;\n  \n  bVar14 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  __ptr = (void *)FUN_001494bf(0x2000);\n  uVar2 = param_9 & 1;\n  local_d0 = 0;\n  local_c8 = 0;\n  __ptr_00 = (undefined8 *)0x0;\n  if ((param_9 & 8) == 0) {\nLAB_001335e1:\n    if ((param_9 & 2) != 0) {\n      local_d0 = param_5;\n    }\n    if (DAT_00177498 == 0) {\n      local_db = '\0';\n      local_130 = 0;\n    }\n    else {\n      if (local_d0 != 0) {\n        param_5 = 0;\n      }\n      if (DAT_001772f8 != (char *)0x0) {\n        uVar9 = 0xffffffffffffffff;\n        pcVar7 = DAT_001772f8;\n        do {\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar1 = *pcVar7;\n          pcVar7 = pcVar7 + (ulong)bVar14 * -2 + 1;\n        } while (cVar1 != '\0');\n        param_1 = param_1 + ~uVar9;\n      }\n      local_130 = FUN_00130cae(param_1,param_5,param_5 + param_4);\n      local_db = FUN_00130cfd(local_130);\n    }\n    if (DAT_001774e8 == 0) {\n      if (local_130 != 0 || param_8 != (undefined8 *)0x0) goto LAB_00133682;\n      uVar9 = 0x2000;\n      lVar6 = 0;\n    }\n    else {\n      DAT_00176e60 = 0;\n      DAT_00176e68 = 0.0;\n      DAT_00176e70 = 0.0;\nLAB_00133682:\n      lVar6 = FUN_00130d6b();\n      if ((DAT_001774e8 == 0) || (uVar9 = DAT_001774e8, 0x1fff < (long)DAT_001774e8)) {\n        uVar9 = 0x2000;\n      }\n    }\n    local_da = param_8 != (undefined8 *)0x0;\n    local_dc = local_130 != 0;\n    iVar3 = (int)uVar9;\n    uVar12 = 0;\n    lVar13 = 0;\n    local_110 = 0.0;\n    iVar5 = 0;\n    while ((dVar18 = DAT_001774b0, uVar2 == 0 || (lVar13 < param_4))) {\n      if ((param_9 & 4) == 0) {\n        uVar10 = uVar9 & 0xffffffff;\n        if (uVar2 != 0) {\n          uVar10 = param_4 - lVar13;\n          if ((long)iVar3 < param_4 - lVar13) {\n            uVar10 = (long)iVar3;\n          }\n        }\n      }\n      else {\n        if (uVar12 == 0) {\n          pcVar7 = (char *)FUN_0013350a(param_2);\n          if (pcVar7 != (char *)0x0) {\n            if (param_10 != (FILE *)0x0) {\n              uVar12 = 0xffffffffffffffff;\n              pcVar11 = pcVar7;\n              do {\n                if (uVar12 == 0) break;\n                uVar12 = uVar12 - 1;\n                cVar1 = *pcVar11;\n                pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n              } while (cVar1 != '\0');\n              fwrite(pcVar7,1,~uVar12 - 1,param_10);\n            }\n            uVar12 = strtol(pcVar7,&local_c0,0x10);\n            free(pcVar7);\n            if (-1 < (long)uVar12) {\n              if (uVar12 != 0) goto LAB_00133ef7;\n              pcVar7 = (char *)FUN_0013350a(param_2);\n              iVar4 = -1;\n              if (pcVar7 != (char *)0x0) {\n                if (param_10 == (FILE *)0x0) goto LAB_001338bc;\n                uVar9 = 0xffffffffffffffff;\n                pcVar11 = pcVar7;\n                goto code_r0x001338a0;\n              }\n              goto LAB_00133a74;\n            }\n          }\n          iVar5 = -1;\n          break;\n        }\nLAB_00133ef7:\n        uVar10 = (long)iVar3;\n        if ((long)uVar12 < (long)iVar3) {\n          uVar10 = uVar12;\n        }\n      }\n      if (local_db == '\0') {\n        iVar5 = FUN_0010d64e(dVar18,param_2,__ptr,uVar10 & 0xffffffff);\nLAB_00133e68:\n        if (iVar5 < 1) break;\n        if (local_dc) {\n          FUN_00130ebd(lVar6);\nLAB_00133d9f:\n          local_110 = (double)FUN_00130f52(lVar6);\n        }\n        else if ((DAT_001774e8 != 0) || (local_da)) {\n          FUN_00130ebd(lVar6);\n          if (iVar5 < 1) goto LAB_00133ea0;\n          goto LAB_00133d9f;\n        }\n        lVar13 = lVar13 + iVar5;\n        if (__ptr_00 == (undefined8 *)0x0) {\n          iVar4 = FUN_00133125(param_3,param_10,__ptr,iVar5,&local_d0,&local_c8);\n          if (iVar4 < 0) goto LAB_00133a74;\n        }\n        else {\n          iVar4 = FUN_00133125(0,param_10,__ptr,iVar5,0,0);\n          if (iVar4 < 0) goto LAB_00133a74;\n          local_b8 = __ptr;\n          local_b0 = iVar5;\n          do {\n            local_98 = 0x8000;\n            local_a0 = __ptr_00;\n            iVar4 = inflate(&local_b8,0);\n            if (iVar4 == -3) {\nLAB_00133b59:\n              piVar8 = __errno_location();\n              *piVar8 = 0x16;\n              iVar4 = -1;\n              goto LAB_00133a74;\n            }\n            if (iVar4 < -2) {\n              if (iVar4 == -4) {\n                piVar8 = __errno_location();\n                *piVar8 = 0xc;\n                iVar4 = -1;\n                goto LAB_00133a74;\n              }\n            }\n            else if (iVar4 == 1) {\n              if (((param_4 != lVar13) && (uVar2 != 0)) && (DAT_001774fb != '\0')) {\n                FUN_0012bddf("zlib stream ended unexpectedly after %ld/%ld bytes\n",lVar13,param_4);\n              }\n            }\n            else if (iVar4 == 2) goto LAB_00133b59;\n            iVar4 = FUN_00133125(param_3,0,__ptr_00,0x8000 - local_98,&local_d0,&local_c8);\n            if (iVar4 < 0) goto LAB_00133a74;\n          } while (local_98 == 0);\n        }\n        if (((param_9 & 4) != 0) && (uVar12 = uVar12 - (long)iVar5, uVar12 == 0)) {\n          pcVar7 = (char *)FUN_0013350a(param_2);\n          if (pcVar7 == (char *)0x0) {\n            iVar5 = -1;\n            break;\n          }\n          if (param_10 != (FILE *)0x0) {\n            uVar10 = 0xffffffffffffffff;\n            pcVar11 = pcVar7;\n            do {\n              if (uVar10 == 0) break;\n              uVar10 = uVar10 - 1;\n              cVar1 = *pcVar11;\n              pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n            } while (cVar1 != '\0');\n            fwrite(pcVar7,1,~uVar10 - 1,param_10);\n          }\n          free(pcVar7);\n        }\nLAB_00133ea0:\n        if (DAT_001774e8 != 0) {\n          dVar16 = (double)FUN_00130f52(lVar6);\n          dVar18 = DAT_00176e70;\n          dVar16 = dVar16 - DAT_00176e68;\n          DAT_00176e60 = iVar5 + DAT_00176e60;\n          if (dVar16 < (double)DAT_00176e60 / (double)(long)DAT_001774e8) {\n            dVar17 = ((double)DAT_00176e60 / (double)(long)DAT_001774e8 - dVar16) + DAT_00176e70;\n            if (dVar17 < _DAT_0015c908) {\n              if (DAT_001774fb != '\0') {\n                uVar15 = FUN_0013d39d();\n                FUN_0012bddf(dVar17 * DAT_0015d650,dVar16,"deferring a %.2f ms sleep (%s/%.2f).\n",\n                             uVar15);\n              }\n              goto LAB_00133eae;\n            }\n            if (DAT_001774fb != '\0') {\n              uVar15 = FUN_0013d39d();\n              FUN_0012bddf(dVar17 * DAT_0015d650,dVar18,\n                           "\nsleeping %.2f ms for %s bytes, adjust %.2f ms\n",uVar15);\n            }\n            dVar18 = (double)FUN_00130f52(lVar6);\n            FUN_0013d652(dVar17);\n            dVar16 = (double)FUN_00130ebd(lVar6);\n            DAT_00176e70 = dVar17 - (dVar16 - dVar18);\n            if (DAT_00176e70 <= _DAT_0015c710) {\n              if (DAT_00176e70 < DAT_0015d658) {\n                DAT_00176e70 = DAT_0015d658;\n              }\n            }\n            else {\n              DAT_00176e70 = _DAT_0015c710;\n            }\n          }\n          DAT_00176e60 = 0;\n          DAT_00176e68 = (double)FUN_00130f52(lVar6);\n        }\n      }\n      else {\n        if (DAT_001774b0 != 0.0) {\n          dVar18 = (double)FUN_00130f52(lVar6);\n          if ((DAT_001774b0 < (dVar18 - local_110) + DAT_0015d648) &&\n             (DAT_001774b0 - (dVar18 - local_110) < 0.0)) {\n            piVar8 = __errno_location();\n            *piVar8 = 0x6e;\n            iVar4 = -1;\n            goto LAB_00133a74;\n          }\n        }\n        iVar5 = FUN_0010d64e(param_2,__ptr,uVar10 & 0xffffffff);\n        if (-1 < iVar5) goto LAB_00133e68;\n        piVar8 = __errno_location();\n        if (*piVar8 != 0x6e) break;\n        if (local_dc) {\n          FUN_00130ebd(lVar6);\n          iVar5 = 0;\n          goto LAB_00133ea0;\n        }\n        if ((DAT_001774e8 != 0) || (local_da)) {\n          FUN_00130ebd(lVar6);\n          iVar5 = 0;\n          goto LAB_00133ea0;\n        }\n        iVar5 = 0;\n      }\nLAB_00133eae:\n      if (local_dc) {\n        FUN_00130f52(lVar6);\n        FUN_00130d09(local_130,(long)iVar5);\n      }\n    }\n    iVar4 = -1;\n    if (-1 < iVar5) {\n      iVar4 = iVar5;\n    }\n    goto LAB_00133a74;\n  }\n  __ptr_00 = (undefined8 *)FUN_001494bf(0x8000);\n  if (__ptr_00 == (undefined8 *)0x0) {\n    piVar8 = __errno_location();\n    *piVar8 = 0xc;\n  }\n  else {\n    local_78 = FUN_00133111;\n    local_70 = FUN_00133100;\n    local_68 = 0;\n    local_b8 = (void *)0x0;\n    local_b0 = 0;\n    iVar3 = inflateInit2_(&local_b8,0x2f,"1.2.11",0x70);\n    if (iVar3 == 0) goto LAB_001335e1;\n    free(__ptr_00);\n    iVar5 = 0xc;\n    if (iVar3 != -4) {\n      iVar5 = 0x16;\n    }\n    piVar8 = __errno_location();\n    *piVar8 = iVar5;\n  }\n  lVar13 = 0;\n  iVar4 = -1;\n  if (param_8 == (undefined8 *)0x0) goto LAB_00133ab4;\n  __ptr_00 = (undefined8 *)0x0;\n  lVar13 = 0;\n  lVar6 = 0;\n  iVar4 = -1;\nLAB_00133a96:\n  uVar15 = FUN_00130f52(lVar6);\n  *param_8 = uVar15;\n  goto LAB_00133aa7;\n  while( true ) {\n    uVar9 = uVar9 - 1;\n    cVar1 = *pcVar11;\n    pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n    if (cVar1 == '\0') break;\ncode_r0x001338a0:\n    if (uVar9 == 0) break;\n  }\n  fwrite(pcVar7,1,~uVar9 - 1,param_10);\nLAB_001338bc:\n  free(pcVar7);\n  iVar4 = 0;\nLAB_00133a74:\n  if (local_130 != 0) {\n    FUN_00130f52(lVar6);\n    FUN_00130d26(local_130);\n  }\n  if (param_8 != (undefined8 *)0x0) goto LAB_00133a96;\nLAB_00133aa7:\n  param_8 = __ptr_00;\n  if (lVar6 != 0) {\n    FUN_00130d39(lVar6);\n  }\nLAB_00133ab4:\n  if (param_8 != (undefined8 *)0x0) {\n    iVar3 = inflateEnd(&local_b8);\n    if ((-1 < iVar4) && (iVar4 = iVar3, iVar3 != 0)) {\n      piVar8 = __errno_location();\n      *piVar8 = 0x16;\n      iVar4 = -1;\n    }\n    free(param_8);\n    if ((local_a8 != lVar13) && (DAT_001774fb != '\0')) {\n      FUN_0012bddf("zlib read size differs from raw read size (%lu/%lu)\n",local_a8,lVar13);\n    }\n  }\n  if (param_6 != (long *)0x0) {\n    *param_6 = *param_6 + lVar13;\n  }\n  if (param_7 != (long *)0x0) {\n    *param_7 = *param_7 + local_c8;\n  }\n  free(__ptr);\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar4;\n  }\n                    \n  __stack_chk_fail();\n}" ({ "{") (declaration "char cVar1;" (primitive_type "char") (identifier "cVar1") (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "void *__ptr;" (primitive_type "void") (pointer_declarator "*__ptr" (* "*") (identifier "__ptr")) (; ";")) (declaration "long lVar6;" (sized_type_specifier "long" (long "long")) (identifier "lVar6") (; ";")) (declaration "char *pcVar7;" (primitive_type "char") (pointer_declarator "*pcVar7" (* "*") (identifier "pcVar7")) (; ";")) (declaration "int *piVar8;" (primitive_type "int") (pointer_declarator "*piVar8" (* "*") (identifier "piVar8")) (; ";")) (declaration "ulong uVar9;" (type_identifier "ulong") (identifier "uVar9") (; ";")) (declaration "ulong uVar10;" (type_identifier "ulong") (identifier "uVar10") (; ";")) (declaration "char *pcVar11;" (primitive_type "char") (pointer_declarator "*pcVar11" (* "*") (identifier "pcVar11")) (; ";")) (declaration "ulong uVar12;" (type_identifier "ulong") (identifier "uVar12") (; ";")) (declaration "undefined8 *__ptr_00;" (type_identifier "undefined8") (pointer_declarator "*__ptr_00" (* "*") (identifier "__ptr_00")) (; ";")) (declaration "long lVar13;" (sized_type_specifier "long" (long "long")) (identifier "lVar13") (; ";")) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" (long "long")) (identifier "in_FS_OFFSET") (; ";")) (declaration "byte bVar14;" (type_identifier "byte") (identifier "bVar14") (; ";")) (declaration "undefined8 uVar15;" (type_identifier "undefined8") (identifier "uVar15") (; ";")) (declaration "double dVar16;" (primitive_type "double") (identifier "dVar16") (; ";")) (declaration "double dVar17;" (primitive_type "double") (identifier "dVar17") (; ";")) (declaration "double dVar18;" (primitive_type "double") (identifier "dVar18") (; ";")) (declaration "long local_130;" (sized_type_specifier "long" (long "long")) (identifier "local_130") (; ";")) (declaration "double local_110;" (primitive_type "double") (identifier "local_110") (; ";")) (declaration "bool local_dc;" (primitive_type "bool") (identifier "local_dc") (; ";")) (declaration "char local_db;" (primitive_type "char") (identifier "local_db") (; ";")) (declaration "bool local_da;" (primitive_type "bool") (identifier "local_da") (; ";")) (declaration "long local_d0;" (sized_type_specifier "long" (long "long")) (identifier "local_d0") (; ";")) (declaration "long local_c8;" (sized_type_specifier "long" (long "long")) (identifier "local_c8") (; ";")) (declaration "char *local_c0;" (primitive_type "char") (pointer_declarator "*local_c0" (* "*") (identifier "local_c0")) (; ";")) (declaration "void *local_b8;" (primitive_type "void") (pointer_declarator "*local_b8" (* "*") (identifier "local_b8")) (; ";")) (declaration "int local_b0;" (primitive_type "int") (identifier "local_b0") (; ";")) (declaration "long local_a8;" (sized_type_specifier "long" (long "long")) (identifier "local_a8") (; ";")) (declaration "undefined8 *local_a0;" (type_identifier "undefined8") (pointer_declarator "*local_a0" (* "*") (identifier "local_a0")) (; ";")) (declaration "int local_98;" (primitive_type "int") (identifier "local_98") (; ";")) (declaration "code *local_78;" (type_identifier "code") (pointer_declarator "*local_78" (* "*") (identifier "local_78")) (; ";")) (declaration "code *local_70;" (type_identifier "code") (pointer_declarator "*local_70" (* "*") (identifier "local_70")) (; ";")) (declaration "undefined8 local_68;" (type_identifier "undefined8") (identifier "local_68") (; ";")) (declaration "long local_40;" (sized_type_specifier "long" (long "long")) (identifier "local_40") (; ";")) (expression_statement "bVar14 = 0;" (assignment_expression "bVar14 = 0" (identifier "bVar14") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(long *)(in_FS_OFFSET + 0x28)" (identifier "local_40") (= "=") (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" (* "*") (cast_expression "(long *)(in_FS_OFFSET + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_FS_OFFSET + 0x28)" (( "(") (binary_expression "in_FS_OFFSET + 0x28" (identifier "in_FS_OFFSET") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "__ptr = (void *)FUN_001494bf(0x2000);" (assignment_expression "__ptr = (void *)FUN_001494bf(0x2000)" (identifier "__ptr") (= "=") (cast_expression "(void *)FUN_001494bf(0x2000)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_001494bf(0x2000)" (identifier "FUN_001494bf") (argument_list "(0x2000)" (( "(") (number_literal "0x2000") () ")"))))) (; ";")) (expression_statement "uVar2 = param_9 & 1;" (assignment_expression "uVar2 = param_9 & 1" (identifier "uVar2") (= "=") (binary_expression "param_9 & 1" (identifier "param_9") (& "&") (number_literal "1"))) (; ";")) (expression_statement "local_d0 = 0;" (assignment_expression "local_d0 = 0" (identifier "local_d0") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_c8 = 0;" (assignment_expression "local_c8 = 0" (identifier "local_c8") (= "=") (number_literal "0")) (; ";")) (expression_statement "__ptr_00 = (undefined8 *)0x0;" (assignment_expression "__ptr_00 = (undefined8 *)0x0" (identifier "__ptr_00") (= "=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if ((param_9 & 8) == 0) {\nLAB_001335e1:\n    if ((param_9 & 2) != 0) {\n      local_d0 = param_5;\n    }\n    if (DAT_00177498 == 0) {\n      local_db = '\0';\n      local_130 = 0;\n    }\n    else {\n      if (local_d0 != 0) {\n        param_5 = 0;\n      }\n      if (DAT_001772f8 != (char *)0x0) {\n        uVar9 = 0xffffffffffffffff;\n        pcVar7 = DAT_001772f8;\n        do {\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar1 = *pcVar7;\n          pcVar7 = pcVar7 + (ulong)bVar14 * -2 + 1;\n        } while (cVar1 != '\0');\n        param_1 = param_1 + ~uVar9;\n      }\n      local_130 = FUN_00130cae(param_1,param_5,param_5 + param_4);\n      local_db = FUN_00130cfd(local_130);\n    }\n    if (DAT_001774e8 == 0) {\n      if (local_130 != 0 || param_8 != (undefined8 *)0x0) goto LAB_00133682;\n      uVar9 = 0x2000;\n      lVar6 = 0;\n    }\n    else {\n      DAT_00176e60 = 0;\n      DAT_00176e68 = 0.0;\n      DAT_00176e70 = 0.0;\nLAB_00133682:\n      lVar6 = FUN_00130d6b();\n      if ((DAT_001774e8 == 0) || (uVar9 = DAT_001774e8, 0x1fff < (long)DAT_001774e8)) {\n        uVar9 = 0x2000;\n      }\n    }\n    local_da = param_8 != (undefined8 *)0x0;\n    local_dc = local_130 != 0;\n    iVar3 = (int)uVar9;\n    uVar12 = 0;\n    lVar13 = 0;\n    local_110 = 0.0;\n    iVar5 = 0;\n    while ((dVar18 = DAT_001774b0, uVar2 == 0 || (lVar13 < param_4))) {\n      if ((param_9 & 4) == 0) {\n        uVar10 = uVar9 & 0xffffffff;\n        if (uVar2 != 0) {\n          uVar10 = param_4 - lVar13;\n          if ((long)iVar3 < param_4 - lVar13) {\n            uVar10 = (long)iVar3;\n          }\n        }\n      }\n      else {\n        if (uVar12 == 0) {\n          pcVar7 = (char *)FUN_0013350a(param_2);\n          if (pcVar7 != (char *)0x0) {\n            if (param_10 != (FILE *)0x0) {\n              uVar12 = 0xffffffffffffffff;\n              pcVar11 = pcVar7;\n              do {\n                if (uVar12 == 0) break;\n                uVar12 = uVar12 - 1;\n                cVar1 = *pcVar11;\n                pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n              } while (cVar1 != '\0');\n              fwrite(pcVar7,1,~uVar12 - 1,param_10);\n            }\n            uVar12 = strtol(pcVar7,&local_c0,0x10);\n            free(pcVar7);\n            if (-1 < (long)uVar12) {\n              if (uVar12 != 0) goto LAB_00133ef7;\n              pcVar7 = (char *)FUN_0013350a(param_2);\n              iVar4 = -1;\n              if (pcVar7 != (char *)0x0) {\n                if (param_10 == (FILE *)0x0) goto LAB_001338bc;\n                uVar9 = 0xffffffffffffffff;\n                pcVar11 = pcVar7;\n                goto code_r0x001338a0;\n              }\n              goto LAB_00133a74;\n            }\n          }\n          iVar5 = -1;\n          break;\n        }\nLAB_00133ef7:\n        uVar10 = (long)iVar3;\n        if ((long)uVar12 < (long)iVar3) {\n          uVar10 = uVar12;\n        }\n      }\n      if (local_db == '\0') {\n        iVar5 = FUN_0010d64e(dVar18,param_2,__ptr,uVar10 & 0xffffffff);\nLAB_00133e68:\n        if (iVar5 < 1) break;\n        if (local_dc) {\n          FUN_00130ebd(lVar6);\nLAB_00133d9f:\n          local_110 = (double)FUN_00130f52(lVar6);\n        }\n        else if ((DAT_001774e8 != 0) || (local_da)) {\n          FUN_00130ebd(lVar6);\n          if (iVar5 < 1) goto LAB_00133ea0;\n          goto LAB_00133d9f;\n        }\n        lVar13 = lVar13 + iVar5;\n        if (__ptr_00 == (undefined8 *)0x0) {\n          iVar4 = FUN_00133125(param_3,param_10,__ptr,iVar5,&local_d0,&local_c8);\n          if (iVar4 < 0) goto LAB_00133a74;\n        }\n        else {\n          iVar4 = FUN_00133125(0,param_10,__ptr,iVar5,0,0);\n          if (iVar4 < 0) goto LAB_00133a74;\n          local_b8 = __ptr;\n          local_b0 = iVar5;\n          do {\n            local_98 = 0x8000;\n            local_a0 = __ptr_00;\n            iVar4 = inflate(&local_b8,0);\n            if (iVar4 == -3) {\nLAB_00133b59:\n              piVar8 = __errno_location();\n              *piVar8 = 0x16;\n              iVar4 = -1;\n              goto LAB_00133a74;\n            }\n            if (iVar4 < -2) {\n              if (iVar4 == -4) {\n                piVar8 = __errno_location();\n                *piVar8 = 0xc;\n                iVar4 = -1;\n                goto LAB_00133a74;\n              }\n            }\n            else if (iVar4 == 1) {\n              if (((param_4 != lVar13) && (uVar2 != 0)) && (DAT_001774fb != '\0')) {\n                FUN_0012bddf("zlib stream ended unexpectedly after %ld/%ld bytes\n",lVar13,param_4);\n              }\n            }\n            else if (iVar4 == 2) goto LAB_00133b59;\n            iVar4 = FUN_00133125(param_3,0,__ptr_00,0x8000 - local_98,&local_d0,&local_c8);\n            if (iVar4 < 0) goto LAB_00133a74;\n          } while (local_98 == 0);\n        }\n        if (((param_9 & 4) != 0) && (uVar12 = uVar12 - (long)iVar5, uVar12 == 0)) {\n          pcVar7 = (char *)FUN_0013350a(param_2);\n          if (pcVar7 == (char *)0x0) {\n            iVar5 = -1;\n            break;\n          }\n          if (param_10 != (FILE *)0x0) {\n            uVar10 = 0xffffffffffffffff;\n            pcVar11 = pcVar7;\n            do {\n              if (uVar10 == 0) break;\n              uVar10 = uVar10 - 1;\n              cVar1 = *pcVar11;\n              pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n            } while (cVar1 != '\0');\n            fwrite(pcVar7,1,~uVar10 - 1,param_10);\n          }\n          free(pcVar7);\n        }\nLAB_00133ea0:\n        if (DAT_001774e8 != 0) {\n          dVar16 = (double)FUN_00130f52(lVar6);\n          dVar18 = DAT_00176e70;\n          dVar16 = dVar16 - DAT_00176e68;\n          DAT_00176e60 = iVar5 + DAT_00176e60;\n          if (dVar16 < (double)DAT_00176e60 / (double)(long)DAT_001774e8) {\n            dVar17 = ((double)DAT_00176e60 / (double)(long)DAT_001774e8 - dVar16) + DAT_00176e70;\n            if (dVar17 < _DAT_0015c908) {\n              if (DAT_001774fb != '\0') {\n                uVar15 = FUN_0013d39d();\n                FUN_0012bddf(dVar17 * DAT_0015d650,dVar16,"deferring a %.2f ms sleep (%s/%.2f).\n",\n                             uVar15);\n              }\n              goto LAB_00133eae;\n            }\n            if (DAT_001774fb != '\0') {\n              uVar15 = FUN_0013d39d();\n              FUN_0012bddf(dVar17 * DAT_0015d650,dVar18,\n                           "\nsleeping %.2f ms for %s bytes, adjust %.2f ms\n",uVar15);\n            }\n            dVar18 = (double)FUN_00130f52(lVar6);\n            FUN_0013d652(dVar17);\n            dVar16 = (double)FUN_00130ebd(lVar6);\n            DAT_00176e70 = dVar17 - (dVar16 - dVar18);\n            if (DAT_00176e70 <= _DAT_0015c710) {\n              if (DAT_00176e70 < DAT_0015d658) {\n                DAT_00176e70 = DAT_0015d658;\n              }\n            }\n            else {\n              DAT_00176e70 = _DAT_0015c710;\n            }\n          }\n          DAT_00176e60 = 0;\n          DAT_00176e68 = (double)FUN_00130f52(lVar6);\n        }\n      }\n      else {\n        if (DAT_001774b0 != 0.0) {\n          dVar18 = (double)FUN_00130f52(lVar6);\n          if ((DAT_001774b0 < (dVar18 - local_110) + DAT_0015d648) &&\n             (DAT_001774b0 - (dVar18 - local_110) < 0.0)) {\n            piVar8 = __errno_location();\n            *piVar8 = 0x6e;\n            iVar4 = -1;\n            goto LAB_00133a74;\n          }\n        }\n        iVar5 = FUN_0010d64e(param_2,__ptr,uVar10 & 0xffffffff);\n        if (-1 < iVar5) goto LAB_00133e68;\n        piVar8 = __errno_location();\n        if (*piVar8 != 0x6e) break;\n        if (local_dc) {\n          FUN_00130ebd(lVar6);\n          iVar5 = 0;\n          goto LAB_00133ea0;\n        }\n        if ((DAT_001774e8 != 0) || (local_da)) {\n          FUN_00130ebd(lVar6);\n          iVar5 = 0;\n          goto LAB_00133ea0;\n        }\n        iVar5 = 0;\n      }\nLAB_00133eae:\n      if (local_dc) {\n        FUN_00130f52(lVar6);\n        FUN_00130d09(local_130,(long)iVar5);\n      }\n    }\n    iVar4 = -1;\n    if (-1 < iVar5) {\n      iVar4 = iVar5;\n    }\n    goto LAB_00133a74;\n  }" (if "if") (parenthesized_expression "((param_9 & 8) == 0)" (( "(") (binary_expression "(param_9 & 8) == 0" (parenthesized_expression "(param_9 & 8)" (( "(") (binary_expression "param_9 & 8" (identifier "param_9") (& "&") (number_literal "8")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_001335e1:\n    if ((param_9 & 2) != 0) {\n      local_d0 = param_5;\n    }\n    if (DAT_00177498 == 0) {\n      local_db = '\0';\n      local_130 = 0;\n    }\n    else {\n      if (local_d0 != 0) {\n        param_5 = 0;\n      }\n      if (DAT_001772f8 != (char *)0x0) {\n        uVar9 = 0xffffffffffffffff;\n        pcVar7 = DAT_001772f8;\n        do {\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar1 = *pcVar7;\n          pcVar7 = pcVar7 + (ulong)bVar14 * -2 + 1;\n        } while (cVar1 != '\0');\n        param_1 = param_1 + ~uVar9;\n      }\n      local_130 = FUN_00130cae(param_1,param_5,param_5 + param_4);\n      local_db = FUN_00130cfd(local_130);\n    }\n    if (DAT_001774e8 == 0) {\n      if (local_130 != 0 || param_8 != (undefined8 *)0x0) goto LAB_00133682;\n      uVar9 = 0x2000;\n      lVar6 = 0;\n    }\n    else {\n      DAT_00176e60 = 0;\n      DAT_00176e68 = 0.0;\n      DAT_00176e70 = 0.0;\nLAB_00133682:\n      lVar6 = FUN_00130d6b();\n      if ((DAT_001774e8 == 0) || (uVar9 = DAT_001774e8, 0x1fff < (long)DAT_001774e8)) {\n        uVar9 = 0x2000;\n      }\n    }\n    local_da = param_8 != (undefined8 *)0x0;\n    local_dc = local_130 != 0;\n    iVar3 = (int)uVar9;\n    uVar12 = 0;\n    lVar13 = 0;\n    local_110 = 0.0;\n    iVar5 = 0;\n    while ((dVar18 = DAT_001774b0, uVar2 == 0 || (lVar13 < param_4))) {\n      if ((param_9 & 4) == 0) {\n        uVar10 = uVar9 & 0xffffffff;\n        if (uVar2 != 0) {\n          uVar10 = param_4 - lVar13;\n          if ((long)iVar3 < param_4 - lVar13) {\n            uVar10 = (long)iVar3;\n          }\n        }\n      }\n      else {\n        if (uVar12 == 0) {\n          pcVar7 = (char *)FUN_0013350a(param_2);\n          if (pcVar7 != (char *)0x0) {\n            if (param_10 != (FILE *)0x0) {\n              uVar12 = 0xffffffffffffffff;\n              pcVar11 = pcVar7;\n              do {\n                if (uVar12 == 0) break;\n                uVar12 = uVar12 - 1;\n                cVar1 = *pcVar11;\n                pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n              } while (cVar1 != '\0');\n              fwrite(pcVar7,1,~uVar12 - 1,param_10);\n            }\n            uVar12 = strtol(pcVar7,&local_c0,0x10);\n            free(pcVar7);\n            if (-1 < (long)uVar12) {\n              if (uVar12 != 0) goto LAB_00133ef7;\n              pcVar7 = (char *)FUN_0013350a(param_2);\n              iVar4 = -1;\n              if (pcVar7 != (char *)0x0) {\n                if (param_10 == (FILE *)0x0) goto LAB_001338bc;\n                uVar9 = 0xffffffffffffffff;\n                pcVar11 = pcVar7;\n                goto code_r0x001338a0;\n              }\n              goto LAB_00133a74;\n            }\n          }\n          iVar5 = -1;\n          break;\n        }\nLAB_00133ef7:\n        uVar10 = (long)iVar3;\n        if ((long)uVar12 < (long)iVar3) {\n          uVar10 = uVar12;\n        }\n      }\n      if (local_db == '\0') {\n        iVar5 = FUN_0010d64e(dVar18,param_2,__ptr,uVar10 & 0xffffffff);\nLAB_00133e68:\n        if (iVar5 < 1) break;\n        if (local_dc) {\n          FUN_00130ebd(lVar6);\nLAB_00133d9f:\n          local_110 = (double)FUN_00130f52(lVar6);\n        }\n        else if ((DAT_001774e8 != 0) || (local_da)) {\n          FUN_00130ebd(lVar6);\n          if (iVar5 < 1) goto LAB_00133ea0;\n          goto LAB_00133d9f;\n        }\n        lVar13 = lVar13 + iVar5;\n        if (__ptr_00 == (undefined8 *)0x0) {\n          iVar4 = FUN_00133125(param_3,param_10,__ptr,iVar5,&local_d0,&local_c8);\n          if (iVar4 < 0) goto LAB_00133a74;\n        }\n        else {\n          iVar4 = FUN_00133125(0,param_10,__ptr,iVar5,0,0);\n          if (iVar4 < 0) goto LAB_00133a74;\n          local_b8 = __ptr;\n          local_b0 = iVar5;\n          do {\n            local_98 = 0x8000;\n            local_a0 = __ptr_00;\n            iVar4 = inflate(&local_b8,0);\n            if (iVar4 == -3) {\nLAB_00133b59:\n              piVar8 = __errno_location();\n              *piVar8 = 0x16;\n              iVar4 = -1;\n              goto LAB_00133a74;\n            }\n            if (iVar4 < -2) {\n              if (iVar4 == -4) {\n                piVar8 = __errno_location();\n                *piVar8 = 0xc;\n                iVar4 = -1;\n                goto LAB_00133a74;\n              }\n            }\n            else if (iVar4 == 1) {\n              if (((param_4 != lVar13) && (uVar2 != 0)) && (DAT_001774fb != '\0')) {\n                FUN_0012bddf("zlib stream ended unexpectedly after %ld/%ld bytes\n",lVar13,param_4);\n              }\n            }\n            else if (iVar4 == 2) goto LAB_00133b59;\n            iVar4 = FUN_00133125(param_3,0,__ptr_00,0x8000 - local_98,&local_d0,&local_c8);\n            if (iVar4 < 0) goto LAB_00133a74;\n          } while (local_98 == 0);\n        }\n        if (((param_9 & 4) != 0) && (uVar12 = uVar12 - (long)iVar5, uVar12 == 0)) {\n          pcVar7 = (char *)FUN_0013350a(param_2);\n          if (pcVar7 == (char *)0x0) {\n            iVar5 = -1;\n            break;\n          }\n          if (param_10 != (FILE *)0x0) {\n            uVar10 = 0xffffffffffffffff;\n            pcVar11 = pcVar7;\n            do {\n              if (uVar10 == 0) break;\n              uVar10 = uVar10 - 1;\n              cVar1 = *pcVar11;\n              pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n            } while (cVar1 != '\0');\n            fwrite(pcVar7,1,~uVar10 - 1,param_10);\n          }\n          free(pcVar7);\n        }\nLAB_00133ea0:\n        if (DAT_001774e8 != 0) {\n          dVar16 = (double)FUN_00130f52(lVar6);\n          dVar18 = DAT_00176e70;\n          dVar16 = dVar16 - DAT_00176e68;\n          DAT_00176e60 = iVar5 + DAT_00176e60;\n          if (dVar16 < (double)DAT_00176e60 / (double)(long)DAT_001774e8) {\n            dVar17 = ((double)DAT_00176e60 / (double)(long)DAT_001774e8 - dVar16) + DAT_00176e70;\n            if (dVar17 < _DAT_0015c908) {\n              if (DAT_001774fb != '\0') {\n                uVar15 = FUN_0013d39d();\n                FUN_0012bddf(dVar17 * DAT_0015d650,dVar16,"deferring a %.2f ms sleep (%s/%.2f).\n",\n                             uVar15);\n              }\n              goto LAB_00133eae;\n            }\n            if (DAT_001774fb != '\0') {\n              uVar15 = FUN_0013d39d();\n              FUN_0012bddf(dVar17 * DAT_0015d650,dVar18,\n                           "\nsleeping %.2f ms for %s bytes, adjust %.2f ms\n",uVar15);\n            }\n            dVar18 = (double)FUN_00130f52(lVar6);\n            FUN_0013d652(dVar17);\n            dVar16 = (double)FUN_00130ebd(lVar6);\n            DAT_00176e70 = dVar17 - (dVar16 - dVar18);\n            if (DAT_00176e70 <= _DAT_0015c710) {\n              if (DAT_00176e70 < DAT_0015d658) {\n                DAT_00176e70 = DAT_0015d658;\n              }\n            }\n            else {\n              DAT_00176e70 = _DAT_0015c710;\n            }\n          }\n          DAT_00176e60 = 0;\n          DAT_00176e68 = (double)FUN_00130f52(lVar6);\n        }\n      }\n      else {\n        if (DAT_001774b0 != 0.0) {\n          dVar18 = (double)FUN_00130f52(lVar6);\n          if ((DAT_001774b0 < (dVar18 - local_110) + DAT_0015d648) &&\n             (DAT_001774b0 - (dVar18 - local_110) < 0.0)) {\n            piVar8 = __errno_location();\n            *piVar8 = 0x6e;\n            iVar4 = -1;\n            goto LAB_00133a74;\n          }\n        }\n        iVar5 = FUN_0010d64e(param_2,__ptr,uVar10 & 0xffffffff);\n        if (-1 < iVar5) goto LAB_00133e68;\n        piVar8 = __errno_location();\n        if (*piVar8 != 0x6e) break;\n        if (local_dc) {\n          FUN_00130ebd(lVar6);\n          iVar5 = 0;\n          goto LAB_00133ea0;\n        }\n        if ((DAT_001774e8 != 0) || (local_da)) {\n          FUN_00130ebd(lVar6);\n          iVar5 = 0;\n          goto LAB_00133ea0;\n        }\n        iVar5 = 0;\n      }\nLAB_00133eae:\n      if (local_dc) {\n        FUN_00130f52(lVar6);\n        FUN_00130d09(local_130,(long)iVar5);\n      }\n    }\n    iVar4 = -1;\n    if (-1 < iVar5) {\n      iVar4 = iVar5;\n    }\n    goto LAB_00133a74;\n  }" ({ "{") (labeled_statement "LAB_001335e1:\n    if ((param_9 & 2) != 0) {\n      local_d0 = param_5;\n    }" (statement_identifier "LAB_001335e1") (: ":") (if_statement "if ((param_9 & 2) != 0) {\n      local_d0 = param_5;\n    }" (if "if") (parenthesized_expression "((param_9 & 2) != 0)" (( "(") (binary_expression "(param_9 & 2) != 0" (parenthesized_expression "(param_9 & 2)" (( "(") (binary_expression "param_9 & 2" (identifier "param_9") (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      local_d0 = param_5;\n    }" ({ "{") (expression_statement "local_d0 = param_5;" (assignment_expression "local_d0 = param_5" (identifier "local_d0") (= "=") (identifier "param_5")) (; ";")) (} "}")))) (if_statement "if (DAT_00177498 == 0) {\n      local_db = '\0';\n      local_130 = 0;\n    }\n    else {\n      if (local_d0 != 0) {\n        param_5 = 0;\n      }\n      if (DAT_001772f8 != (char *)0x0) {\n        uVar9 = 0xffffffffffffffff;\n        pcVar7 = DAT_001772f8;\n        do {\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar1 = *pcVar7;\n          pcVar7 = pcVar7 + (ulong)bVar14 * -2 + 1;\n        } while (cVar1 != '\0');\n        param_1 = param_1 + ~uVar9;\n      }\n      local_130 = FUN_00130cae(param_1,param_5,param_5 + param_4);\n      local_db = FUN_00130cfd(local_130);\n    }" (if "if") (parenthesized_expression "(DAT_00177498 == 0)" (( "(") (binary_expression "DAT_00177498 == 0" (identifier "DAT_00177498") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      local_db = '\0';\n      local_130 = 0;\n    }" ({ "{") (expression_statement "local_db = '\0';" (assignment_expression "local_db = '\0'" (identifier "local_db") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "local_130 = 0;" (assignment_expression "local_130 = 0" (identifier "local_130") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n      if (local_d0 != 0) {\n        param_5 = 0;\n      }\n      if (DAT_001772f8 != (char *)0x0) {\n        uVar9 = 0xffffffffffffffff;\n        pcVar7 = DAT_001772f8;\n        do {\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar1 = *pcVar7;\n          pcVar7 = pcVar7 + (ulong)bVar14 * -2 + 1;\n        } while (cVar1 != '\0');\n        param_1 = param_1 + ~uVar9;\n      }\n      local_130 = FUN_00130cae(param_1,param_5,param_5 + param_4);\n      local_db = FUN_00130cfd(local_130);\n    }" (else "else") (compound_statement "{\n      if (local_d0 != 0) {\n        param_5 = 0;\n      }\n      if (DAT_001772f8 != (char *)0x0) {\n        uVar9 = 0xffffffffffffffff;\n        pcVar7 = DAT_001772f8;\n        do {\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar1 = *pcVar7;\n          pcVar7 = pcVar7 + (ulong)bVar14 * -2 + 1;\n        } while (cVar1 != '\0');\n        param_1 = param_1 + ~uVar9;\n      }\n      local_130 = FUN_00130cae(param_1,param_5,param_5 + param_4);\n      local_db = FUN_00130cfd(local_130);\n    }" ({ "{") (if_statement "if (local_d0 != 0) {\n        param_5 = 0;\n      }" (if "if") (parenthesized_expression "(local_d0 != 0)" (( "(") (binary_expression "local_d0 != 0" (identifier "local_d0") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        param_5 = 0;\n      }" ({ "{") (expression_statement "param_5 = 0;" (assignment_expression "param_5 = 0" (identifier "param_5") (= "=") (number_literal "0")) (; ";")) (} "}"))) (if_statement "if (DAT_001772f8 != (char *)0x0) {\n        uVar9 = 0xffffffffffffffff;\n        pcVar7 = DAT_001772f8;\n        do {\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar1 = *pcVar7;\n          pcVar7 = pcVar7 + (ulong)bVar14 * -2 + 1;\n        } while (cVar1 != '\0');\n        param_1 = param_1 + ~uVar9;\n      }" (if "if") (parenthesized_expression "(DAT_001772f8 != (char *)0x0)" (( "(") (binary_expression "DAT_001772f8 != (char *)0x0" (identifier "DAT_001772f8") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        uVar9 = 0xffffffffffffffff;\n        pcVar7 = DAT_001772f8;\n        do {\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar1 = *pcVar7;\n          pcVar7 = pcVar7 + (ulong)bVar14 * -2 + 1;\n        } while (cVar1 != '\0');\n        param_1 = param_1 + ~uVar9;\n      }" ({ "{") (expression_statement "uVar9 = 0xffffffffffffffff;" (assignment_expression "uVar9 = 0xffffffffffffffff" (identifier "uVar9") (= "=") (number_literal "0xffffffffffffffff")) (; ";")) (expression_statement "pcVar7 = DAT_001772f8;" (assignment_expression "pcVar7 = DAT_001772f8" (identifier "pcVar7") (= "=") (identifier "DAT_001772f8")) (; ";")) (do_statement "do {\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar1 = *pcVar7;\n          pcVar7 = pcVar7 + (ulong)bVar14 * -2 + 1;\n        } while (cVar1 != '\0');" (do "do") (compound_statement "{\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar1 = *pcVar7;\n          pcVar7 = pcVar7 + (ulong)bVar14 * -2 + 1;\n        }" ({ "{") (if_statement "if (uVar9 == 0) break;" (if "if") (parenthesized_expression "(uVar9 == 0)" (( "(") (binary_expression "uVar9 == 0" (identifier "uVar9") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar9 = uVar9 - 1;" (assignment_expression "uVar9 = uVar9 - 1" (identifier "uVar9") (= "=") (binary_expression "uVar9 - 1" (identifier "uVar9") (- "-") (number_literal "1"))) (; ";")) (expression_statement "cVar1 = *pcVar7;" (assignment_expression "cVar1 = *pcVar7" (identifier "cVar1") (= "=") (pointer_expression "*pcVar7" (* "*") (identifier "pcVar7"))) (; ";")) (expression_statement "pcVar7 = pcVar7 + (ulong)bVar14 * -2 + 1;" (assignment_expression "pcVar7 = pcVar7 + (ulong)bVar14 * -2 + 1" (identifier "pcVar7") (= "=") (binary_expression "pcVar7 + (ulong)bVar14 * -2 + 1" (binary_expression "pcVar7 + (ulong)bVar14 * -2" (identifier "pcVar7") (+ "+") (binary_expression "(ulong)bVar14 * -2" (cast_expression "(ulong)bVar14" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar14")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(cVar1 != '\0')" (( "(") (binary_expression "cVar1 != '\0'" (identifier "cVar1") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (; ";")) (expression_statement "param_1 = param_1 + ~uVar9;" (assignment_expression "param_1 = param_1 + ~uVar9" (identifier "param_1") (= "=") (binary_expression "param_1 + ~uVar9" (identifier "param_1") (+ "+") (unary_expression "~uVar9" (~ "~") (identifier "uVar9")))) (; ";")) (} "}"))) (expression_statement "local_130 = FUN_00130cae(param_1,param_5,param_5 + param_4);" (assignment_expression "local_130 = FUN_00130cae(param_1,param_5,param_5 + param_4)" (identifier "local_130") (= "=") (call_expression "FUN_00130cae(param_1,param_5,param_5 + param_4)" (identifier "FUN_00130cae") (argument_list "(param_1,param_5,param_5 + param_4)" (( "(") (identifier "param_1") (, ",") (identifier "param_5") (, ",") (binary_expression "param_5 + param_4" (identifier "param_5") (+ "+") (identifier "param_4")) () ")")))) (; ";")) (expression_statement "local_db = FUN_00130cfd(local_130);" (assignment_expression "local_db = FUN_00130cfd(local_130)" (identifier "local_db") (= "=") (call_expression "FUN_00130cfd(local_130)" (identifier "FUN_00130cfd") (argument_list "(local_130)" (( "(") (identifier "local_130") () ")")))) (; ";")) (} "}")))) (if_statement "if (DAT_001774e8 == 0) {\n      if (local_130 != 0 || param_8 != (undefined8 *)0x0) goto LAB_00133682;\n      uVar9 = 0x2000;\n      lVar6 = 0;\n    }\n    else {\n      DAT_00176e60 = 0;\n      DAT_00176e68 = 0.0;\n      DAT_00176e70 = 0.0;\nLAB_00133682:\n      lVar6 = FUN_00130d6b();\n      if ((DAT_001774e8 == 0) || (uVar9 = DAT_001774e8, 0x1fff < (long)DAT_001774e8)) {\n        uVar9 = 0x2000;\n      }\n    }" (if "if") (parenthesized_expression "(DAT_001774e8 == 0)" (( "(") (binary_expression "DAT_001774e8 == 0" (identifier "DAT_001774e8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      if (local_130 != 0 || param_8 != (undefined8 *)0x0) goto LAB_00133682;\n      uVar9 = 0x2000;\n      lVar6 = 0;\n    }" ({ "{") (if_statement "if (local_130 != 0 || param_8 != (undefined8 *)0x0) goto LAB_00133682;" (if "if") (parenthesized_expression "(local_130 != 0 || param_8 != (undefined8 *)0x0)" (( "(") (binary_expression "local_130 != 0 || param_8 != (undefined8 *)0x0" (binary_expression "local_130 != 0" (identifier "local_130") (!= "!=") (number_literal "0")) (|| "||") (binary_expression "param_8 != (undefined8 *)0x0" (identifier "param_8") (!= "!=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")")) (goto_statement "goto LAB_00133682;" (goto "goto") (statement_identifier "LAB_00133682") (; ";"))) (expression_statement "uVar9 = 0x2000;" (assignment_expression "uVar9 = 0x2000" (identifier "uVar9") (= "=") (number_literal "0x2000")) (; ";")) (expression_statement "lVar6 = 0;" (assignment_expression "lVar6 = 0" (identifier "lVar6") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n      DAT_00176e60 = 0;\n      DAT_00176e68 = 0.0;\n      DAT_00176e70 = 0.0;\nLAB_00133682:\n      lVar6 = FUN_00130d6b();\n      if ((DAT_001774e8 == 0) || (uVar9 = DAT_001774e8, 0x1fff < (long)DAT_001774e8)) {\n        uVar9 = 0x2000;\n      }\n    }" (else "else") (compound_statement "{\n      DAT_00176e60 = 0;\n      DAT_00176e68 = 0.0;\n      DAT_00176e70 = 0.0;\nLAB_00133682:\n      lVar6 = FUN_00130d6b();\n      if ((DAT_001774e8 == 0) || (uVar9 = DAT_001774e8, 0x1fff < (long)DAT_001774e8)) {\n        uVar9 = 0x2000;\n      }\n    }" ({ "{") (expression_statement "DAT_00176e60 = 0;" (assignment_expression "DAT_00176e60 = 0" (identifier "DAT_00176e60") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00176e68 = 0.0;" (assignment_expression "DAT_00176e68 = 0.0" (identifier "DAT_00176e68") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "DAT_00176e70 = 0.0;" (assignment_expression "DAT_00176e70 = 0.0" (identifier "DAT_00176e70") (= "=") (number_literal "0.0")) (; ";")) (labeled_statement "LAB_00133682:\n      lVar6 = FUN_00130d6b();" (statement_identifier "LAB_00133682") (: ":") (expression_statement "lVar6 = FUN_00130d6b();" (assignment_expression "lVar6 = FUN_00130d6b()" (identifier "lVar6") (= "=") (call_expression "FUN_00130d6b()" (identifier "FUN_00130d6b") (argument_list "()" (( "(") () ")")))) (; ";"))) (if_statement "if ((DAT_001774e8 == 0) || (uVar9 = DAT_001774e8, 0x1fff < (long)DAT_001774e8)) {\n        uVar9 = 0x2000;\n      }" (if "if") (parenthesized_expression "((DAT_001774e8 == 0) || (uVar9 = DAT_001774e8, 0x1fff < (long)DAT_001774e8))" (( "(") (binary_expression "(DAT_001774e8 == 0) || (uVar9 = DAT_001774e8, 0x1fff < (long)DAT_001774e8)" (parenthesized_expression "(DAT_001774e8 == 0)" (( "(") (binary_expression "DAT_001774e8 == 0" (identifier "DAT_001774e8") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(uVar9 = DAT_001774e8, 0x1fff < (long)DAT_001774e8)" (( "(") (comma_expression "uVar9 = DAT_001774e8, 0x1fff < (long)DAT_001774e8" (assignment_expression "uVar9 = DAT_001774e8" (identifier "uVar9") (= "=") (identifier "DAT_001774e8")) (, ",") (binary_expression "0x1fff < (long)DAT_001774e8" (number_literal "0x1fff") (< "<") (cast_expression "(long)DAT_001774e8" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "DAT_001774e8")))) () ")"))) () ")")) (compound_statement "{\n        uVar9 = 0x2000;\n      }" ({ "{") (expression_statement "uVar9 = 0x2000;" (assignment_expression "uVar9 = 0x2000" (identifier "uVar9") (= "=") (number_literal "0x2000")) (; ";")) (} "}"))) (} "}")))) (expression_statement "local_da = param_8 != (undefined8 *)0x0;" (assignment_expression "local_da = param_8 != (undefined8 *)0x0" (identifier "local_da") (= "=") (binary_expression "param_8 != (undefined8 *)0x0" (identifier "param_8") (!= "!=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) (; ";")) (expression_statement "local_dc = local_130 != 0;" (assignment_expression "local_dc = local_130 != 0" (identifier "local_dc") (= "=") (binary_expression "local_130 != 0" (identifier "local_130") (!= "!=") (number_literal "0"))) (; ";")) (expression_statement "iVar3 = (int)uVar9;" (assignment_expression "iVar3 = (int)uVar9" (identifier "iVar3") (= "=") (cast_expression "(int)uVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar9"))) (; ";")) (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" (identifier "uVar12") (= "=") (number_literal "0")) (; ";")) (expression_statement "lVar13 = 0;" (assignment_expression "lVar13 = 0" (identifier "lVar13") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_110 = 0.0;" (assignment_expression "local_110 = 0.0" (identifier "local_110") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" (identifier "iVar5") (= "=") (number_literal "0")) (; ";")) (while_statement "while ((dVar18 = DAT_001774b0, uVar2 == 0 || (lVar13 < param_4))) {\n      if ((param_9 & 4) == 0) {\n        uVar10 = uVar9 & 0xffffffff;\n        if (uVar2 != 0) {\n          uVar10 = param_4 - lVar13;\n          if ((long)iVar3 < param_4 - lVar13) {\n            uVar10 = (long)iVar3;\n          }\n        }\n      }\n      else {\n        if (uVar12 == 0) {\n          pcVar7 = (char *)FUN_0013350a(param_2);\n          if (pcVar7 != (char *)0x0) {\n            if (param_10 != (FILE *)0x0) {\n              uVar12 = 0xffffffffffffffff;\n              pcVar11 = pcVar7;\n              do {\n                if (uVar12 == 0) break;\n                uVar12 = uVar12 - 1;\n                cVar1 = *pcVar11;\n                pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n              } while (cVar1 != '\0');\n              fwrite(pcVar7,1,~uVar12 - 1,param_10);\n            }\n            uVar12 = strtol(pcVar7,&local_c0,0x10);\n            free(pcVar7);\n            if (-1 < (long)uVar12) {\n              if (uVar12 != 0) goto LAB_00133ef7;\n              pcVar7 = (char *)FUN_0013350a(param_2);\n              iVar4 = -1;\n              if (pcVar7 != (char *)0x0) {\n                if (param_10 == (FILE *)0x0) goto LAB_001338bc;\n                uVar9 = 0xffffffffffffffff;\n                pcVar11 = pcVar7;\n                goto code_r0x001338a0;\n              }\n              goto LAB_00133a74;\n            }\n          }\n          iVar5 = -1;\n          break;\n        }\nLAB_00133ef7:\n        uVar10 = (long)iVar3;\n        if ((long)uVar12 < (long)iVar3) {\n          uVar10 = uVar12;\n        }\n      }\n      if (local_db == '\0') {\n        iVar5 = FUN_0010d64e(dVar18,param_2,__ptr,uVar10 & 0xffffffff);\nLAB_00133e68:\n        if (iVar5 < 1) break;\n        if (local_dc) {\n          FUN_00130ebd(lVar6);\nLAB_00133d9f:\n          local_110 = (double)FUN_00130f52(lVar6);\n        }\n        else if ((DAT_001774e8 != 0) || (local_da)) {\n          FUN_00130ebd(lVar6);\n          if (iVar5 < 1) goto LAB_00133ea0;\n          goto LAB_00133d9f;\n        }\n        lVar13 = lVar13 + iVar5;\n        if (__ptr_00 == (undefined8 *)0x0) {\n          iVar4 = FUN_00133125(param_3,param_10,__ptr,iVar5,&local_d0,&local_c8);\n          if (iVar4 < 0) goto LAB_00133a74;\n        }\n        else {\n          iVar4 = FUN_00133125(0,param_10,__ptr,iVar5,0,0);\n          if (iVar4 < 0) goto LAB_00133a74;\n          local_b8 = __ptr;\n          local_b0 = iVar5;\n          do {\n            local_98 = 0x8000;\n            local_a0 = __ptr_00;\n            iVar4 = inflate(&local_b8,0);\n            if (iVar4 == -3) {\nLAB_00133b59:\n              piVar8 = __errno_location();\n              *piVar8 = 0x16;\n              iVar4 = -1;\n              goto LAB_00133a74;\n            }\n            if (iVar4 < -2) {\n              if (iVar4 == -4) {\n                piVar8 = __errno_location();\n                *piVar8 = 0xc;\n                iVar4 = -1;\n                goto LAB_00133a74;\n              }\n            }\n            else if (iVar4 == 1) {\n              if (((param_4 != lVar13) && (uVar2 != 0)) && (DAT_001774fb != '\0')) {\n                FUN_0012bddf("zlib stream ended unexpectedly after %ld/%ld bytes\n",lVar13,param_4);\n              }\n            }\n            else if (iVar4 == 2) goto LAB_00133b59;\n            iVar4 = FUN_00133125(param_3,0,__ptr_00,0x8000 - local_98,&local_d0,&local_c8);\n            if (iVar4 < 0) goto LAB_00133a74;\n          } while (local_98 == 0);\n        }\n        if (((param_9 & 4) != 0) && (uVar12 = uVar12 - (long)iVar5, uVar12 == 0)) {\n          pcVar7 = (char *)FUN_0013350a(param_2);\n          if (pcVar7 == (char *)0x0) {\n            iVar5 = -1;\n            break;\n          }\n          if (param_10 != (FILE *)0x0) {\n            uVar10 = 0xffffffffffffffff;\n            pcVar11 = pcVar7;\n            do {\n              if (uVar10 == 0) break;\n              uVar10 = uVar10 - 1;\n              cVar1 = *pcVar11;\n              pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n            } while (cVar1 != '\0');\n            fwrite(pcVar7,1,~uVar10 - 1,param_10);\n          }\n          free(pcVar7);\n        }\nLAB_00133ea0:\n        if (DAT_001774e8 != 0) {\n          dVar16 = (double)FUN_00130f52(lVar6);\n          dVar18 = DAT_00176e70;\n          dVar16 = dVar16 - DAT_00176e68;\n          DAT_00176e60 = iVar5 + DAT_00176e60;\n          if (dVar16 < (double)DAT_00176e60 / (double)(long)DAT_001774e8) {\n            dVar17 = ((double)DAT_00176e60 / (double)(long)DAT_001774e8 - dVar16) + DAT_00176e70;\n            if (dVar17 < _DAT_0015c908) {\n              if (DAT_001774fb != '\0') {\n                uVar15 = FUN_0013d39d();\n                FUN_0012bddf(dVar17 * DAT_0015d650,dVar16,"deferring a %.2f ms sleep (%s/%.2f).\n",\n                             uVar15);\n              }\n              goto LAB_00133eae;\n            }\n            if (DAT_001774fb != '\0') {\n              uVar15 = FUN_0013d39d();\n              FUN_0012bddf(dVar17 * DAT_0015d650,dVar18,\n                           "\nsleeping %.2f ms for %s bytes, adjust %.2f ms\n",uVar15);\n            }\n            dVar18 = (double)FUN_00130f52(lVar6);\n            FUN_0013d652(dVar17);\n            dVar16 = (double)FUN_00130ebd(lVar6);\n            DAT_00176e70 = dVar17 - (dVar16 - dVar18);\n            if (DAT_00176e70 <= _DAT_0015c710) {\n              if (DAT_00176e70 < DAT_0015d658) {\n                DAT_00176e70 = DAT_0015d658;\n              }\n            }\n            else {\n              DAT_00176e70 = _DAT_0015c710;\n            }\n          }\n          DAT_00176e60 = 0;\n          DAT_00176e68 = (double)FUN_00130f52(lVar6);\n        }\n      }\n      else {\n        if (DAT_001774b0 != 0.0) {\n          dVar18 = (double)FUN_00130f52(lVar6);\n          if ((DAT_001774b0 < (dVar18 - local_110) + DAT_0015d648) &&\n             (DAT_001774b0 - (dVar18 - local_110) < 0.0)) {\n            piVar8 = __errno_location();\n            *piVar8 = 0x6e;\n            iVar4 = -1;\n            goto LAB_00133a74;\n          }\n        }\n        iVar5 = FUN_0010d64e(param_2,__ptr,uVar10 & 0xffffffff);\n        if (-1 < iVar5) goto LAB_00133e68;\n        piVar8 = __errno_location();\n        if (*piVar8 != 0x6e) break;\n        if (local_dc) {\n          FUN_00130ebd(lVar6);\n          iVar5 = 0;\n          goto LAB_00133ea0;\n        }\n        if ((DAT_001774e8 != 0) || (local_da)) {\n          FUN_00130ebd(lVar6);\n          iVar5 = 0;\n          goto LAB_00133ea0;\n        }\n        iVar5 = 0;\n      }\nLAB_00133eae:\n      if (local_dc) {\n        FUN_00130f52(lVar6);\n        FUN_00130d09(local_130,(long)iVar5);\n      }\n    }" (while "while") (parenthesized_expression "((dVar18 = DAT_001774b0, uVar2 == 0 || (lVar13 < param_4)))" (( "(") (parenthesized_expression "(dVar18 = DAT_001774b0, uVar2 == 0 || (lVar13 < param_4))" (( "(") (comma_expression "dVar18 = DAT_001774b0, uVar2 == 0 || (lVar13 < param_4)" (assignment_expression "dVar18 = DAT_001774b0" (identifier "dVar18") (= "=") (identifier "DAT_001774b0")) (, ",") (binary_expression "uVar2 == 0 || (lVar13 < param_4)" (binary_expression "uVar2 == 0" (identifier "uVar2") (== "==") (number_literal "0")) (|| "||") (parenthesized_expression "(lVar13 < param_4)" (( "(") (binary_expression "lVar13 < param_4" (identifier "lVar13") (< "<") (identifier "param_4")) () ")")))) () ")")) () ")")) (compound_statement "{\n      if ((param_9 & 4) == 0) {\n        uVar10 = uVar9 & 0xffffffff;\n        if (uVar2 != 0) {\n          uVar10 = param_4 - lVar13;\n          if ((long)iVar3 < param_4 - lVar13) {\n            uVar10 = (long)iVar3;\n          }\n        }\n      }\n      else {\n        if (uVar12 == 0) {\n          pcVar7 = (char *)FUN_0013350a(param_2);\n          if (pcVar7 != (char *)0x0) {\n            if (param_10 != (FILE *)0x0) {\n              uVar12 = 0xffffffffffffffff;\n              pcVar11 = pcVar7;\n              do {\n                if (uVar12 == 0) break;\n                uVar12 = uVar12 - 1;\n                cVar1 = *pcVar11;\n                pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n              } while (cVar1 != '\0');\n              fwrite(pcVar7,1,~uVar12 - 1,param_10);\n            }\n            uVar12 = strtol(pcVar7,&local_c0,0x10);\n            free(pcVar7);\n            if (-1 < (long)uVar12) {\n              if (uVar12 != 0) goto LAB_00133ef7;\n              pcVar7 = (char *)FUN_0013350a(param_2);\n              iVar4 = -1;\n              if (pcVar7 != (char *)0x0) {\n                if (param_10 == (FILE *)0x0) goto LAB_001338bc;\n                uVar9 = 0xffffffffffffffff;\n                pcVar11 = pcVar7;\n                goto code_r0x001338a0;\n              }\n              goto LAB_00133a74;\n            }\n          }\n          iVar5 = -1;\n          break;\n        }\nLAB_00133ef7:\n        uVar10 = (long)iVar3;\n        if ((long)uVar12 < (long)iVar3) {\n          uVar10 = uVar12;\n        }\n      }\n      if (local_db == '\0') {\n        iVar5 = FUN_0010d64e(dVar18,param_2,__ptr,uVar10 & 0xffffffff);\nLAB_00133e68:\n        if (iVar5 < 1) break;\n        if (local_dc) {\n          FUN_00130ebd(lVar6);\nLAB_00133d9f:\n          local_110 = (double)FUN_00130f52(lVar6);\n        }\n        else if ((DAT_001774e8 != 0) || (local_da)) {\n          FUN_00130ebd(lVar6);\n          if (iVar5 < 1) goto LAB_00133ea0;\n          goto LAB_00133d9f;\n        }\n        lVar13 = lVar13 + iVar5;\n        if (__ptr_00 == (undefined8 *)0x0) {\n          iVar4 = FUN_00133125(param_3,param_10,__ptr,iVar5,&local_d0,&local_c8);\n          if (iVar4 < 0) goto LAB_00133a74;\n        }\n        else {\n          iVar4 = FUN_00133125(0,param_10,__ptr,iVar5,0,0);\n          if (iVar4 < 0) goto LAB_00133a74;\n          local_b8 = __ptr;\n          local_b0 = iVar5;\n          do {\n            local_98 = 0x8000;\n            local_a0 = __ptr_00;\n            iVar4 = inflate(&local_b8,0);\n            if (iVar4 == -3) {\nLAB_00133b59:\n              piVar8 = __errno_location();\n              *piVar8 = 0x16;\n              iVar4 = -1;\n              goto LAB_00133a74;\n            }\n            if (iVar4 < -2) {\n              if (iVar4 == -4) {\n                piVar8 = __errno_location();\n                *piVar8 = 0xc;\n                iVar4 = -1;\n                goto LAB_00133a74;\n              }\n            }\n            else if (iVar4 == 1) {\n              if (((param_4 != lVar13) && (uVar2 != 0)) && (DAT_001774fb != '\0')) {\n                FUN_0012bddf("zlib stream ended unexpectedly after %ld/%ld bytes\n",lVar13,param_4);\n              }\n            }\n            else if (iVar4 == 2) goto LAB_00133b59;\n            iVar4 = FUN_00133125(param_3,0,__ptr_00,0x8000 - local_98,&local_d0,&local_c8);\n            if (iVar4 < 0) goto LAB_00133a74;\n          } while (local_98 == 0);\n        }\n        if (((param_9 & 4) != 0) && (uVar12 = uVar12 - (long)iVar5, uVar12 == 0)) {\n          pcVar7 = (char *)FUN_0013350a(param_2);\n          if (pcVar7 == (char *)0x0) {\n            iVar5 = -1;\n            break;\n          }\n          if (param_10 != (FILE *)0x0) {\n            uVar10 = 0xffffffffffffffff;\n            pcVar11 = pcVar7;\n            do {\n              if (uVar10 == 0) break;\n              uVar10 = uVar10 - 1;\n              cVar1 = *pcVar11;\n              pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n            } while (cVar1 != '\0');\n            fwrite(pcVar7,1,~uVar10 - 1,param_10);\n          }\n          free(pcVar7);\n        }\nLAB_00133ea0:\n        if (DAT_001774e8 != 0) {\n          dVar16 = (double)FUN_00130f52(lVar6);\n          dVar18 = DAT_00176e70;\n          dVar16 = dVar16 - DAT_00176e68;\n          DAT_00176e60 = iVar5 + DAT_00176e60;\n          if (dVar16 < (double)DAT_00176e60 / (double)(long)DAT_001774e8) {\n            dVar17 = ((double)DAT_00176e60 / (double)(long)DAT_001774e8 - dVar16) + DAT_00176e70;\n            if (dVar17 < _DAT_0015c908) {\n              if (DAT_001774fb != '\0') {\n                uVar15 = FUN_0013d39d();\n                FUN_0012bddf(dVar17 * DAT_0015d650,dVar16,"deferring a %.2f ms sleep (%s/%.2f).\n",\n                             uVar15);\n              }\n              goto LAB_00133eae;\n            }\n            if (DAT_001774fb != '\0') {\n              uVar15 = FUN_0013d39d();\n              FUN_0012bddf(dVar17 * DAT_0015d650,dVar18,\n                           "\nsleeping %.2f ms for %s bytes, adjust %.2f ms\n",uVar15);\n            }\n            dVar18 = (double)FUN_00130f52(lVar6);\n            FUN_0013d652(dVar17);\n            dVar16 = (double)FUN_00130ebd(lVar6);\n            DAT_00176e70 = dVar17 - (dVar16 - dVar18);\n            if (DAT_00176e70 <= _DAT_0015c710) {\n              if (DAT_00176e70 < DAT_0015d658) {\n                DAT_00176e70 = DAT_0015d658;\n              }\n            }\n            else {\n              DAT_00176e70 = _DAT_0015c710;\n            }\n          }\n          DAT_00176e60 = 0;\n          DAT_00176e68 = (double)FUN_00130f52(lVar6);\n        }\n      }\n      else {\n        if (DAT_001774b0 != 0.0) {\n          dVar18 = (double)FUN_00130f52(lVar6);\n          if ((DAT_001774b0 < (dVar18 - local_110) + DAT_0015d648) &&\n             (DAT_001774b0 - (dVar18 - local_110) < 0.0)) {\n            piVar8 = __errno_location();\n            *piVar8 = 0x6e;\n            iVar4 = -1;\n            goto LAB_00133a74;\n          }\n        }\n        iVar5 = FUN_0010d64e(param_2,__ptr,uVar10 & 0xffffffff);\n        if (-1 < iVar5) goto LAB_00133e68;\n        piVar8 = __errno_location();\n        if (*piVar8 != 0x6e) break;\n        if (local_dc) {\n          FUN_00130ebd(lVar6);\n          iVar5 = 0;\n          goto LAB_00133ea0;\n        }\n        if ((DAT_001774e8 != 0) || (local_da)) {\n          FUN_00130ebd(lVar6);\n          iVar5 = 0;\n          goto LAB_00133ea0;\n        }\n        iVar5 = 0;\n      }\nLAB_00133eae:\n      if (local_dc) {\n        FUN_00130f52(lVar6);\n        FUN_00130d09(local_130,(long)iVar5);\n      }\n    }" ({ "{") (if_statement "if ((param_9 & 4) == 0) {\n        uVar10 = uVar9 & 0xffffffff;\n        if (uVar2 != 0) {\n          uVar10 = param_4 - lVar13;\n          if ((long)iVar3 < param_4 - lVar13) {\n            uVar10 = (long)iVar3;\n          }\n        }\n      }\n      else {\n        if (uVar12 == 0) {\n          pcVar7 = (char *)FUN_0013350a(param_2);\n          if (pcVar7 != (char *)0x0) {\n            if (param_10 != (FILE *)0x0) {\n              uVar12 = 0xffffffffffffffff;\n              pcVar11 = pcVar7;\n              do {\n                if (uVar12 == 0) break;\n                uVar12 = uVar12 - 1;\n                cVar1 = *pcVar11;\n                pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n              } while (cVar1 != '\0');\n              fwrite(pcVar7,1,~uVar12 - 1,param_10);\n            }\n            uVar12 = strtol(pcVar7,&local_c0,0x10);\n            free(pcVar7);\n            if (-1 < (long)uVar12) {\n              if (uVar12 != 0) goto LAB_00133ef7;\n              pcVar7 = (char *)FUN_0013350a(param_2);\n              iVar4 = -1;\n              if (pcVar7 != (char *)0x0) {\n                if (param_10 == (FILE *)0x0) goto LAB_001338bc;\n                uVar9 = 0xffffffffffffffff;\n                pcVar11 = pcVar7;\n                goto code_r0x001338a0;\n              }\n              goto LAB_00133a74;\n            }\n          }\n          iVar5 = -1;\n          break;\n        }\nLAB_00133ef7:\n        uVar10 = (long)iVar3;\n        if ((long)uVar12 < (long)iVar3) {\n          uVar10 = uVar12;\n        }\n      }" (if "if") (parenthesized_expression "((param_9 & 4) == 0)" (( "(") (binary_expression "(param_9 & 4) == 0" (parenthesized_expression "(param_9 & 4)" (( "(") (binary_expression "param_9 & 4" (identifier "param_9") (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        uVar10 = uVar9 & 0xffffffff;\n        if (uVar2 != 0) {\n          uVar10 = param_4 - lVar13;\n          if ((long)iVar3 < param_4 - lVar13) {\n            uVar10 = (long)iVar3;\n          }\n        }\n      }" ({ "{") (expression_statement "uVar10 = uVar9 & 0xffffffff;" (assignment_expression "uVar10 = uVar9 & 0xffffffff" (identifier "uVar10") (= "=") (binary_expression "uVar9 & 0xffffffff" (identifier "uVar9") (& "&") (number_literal "0xffffffff"))) (; ";")) (if_statement "if (uVar2 != 0) {\n          uVar10 = param_4 - lVar13;\n          if ((long)iVar3 < param_4 - lVar13) {\n            uVar10 = (long)iVar3;\n          }\n        }" (if "if") (parenthesized_expression "(uVar2 != 0)" (( "(") (binary_expression "uVar2 != 0" (identifier "uVar2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          uVar10 = param_4 - lVar13;\n          if ((long)iVar3 < param_4 - lVar13) {\n            uVar10 = (long)iVar3;\n          }\n        }" ({ "{") (expression_statement "uVar10 = param_4 - lVar13;" (assignment_expression "uVar10 = param_4 - lVar13" (identifier "uVar10") (= "=") (binary_expression "param_4 - lVar13" (identifier "param_4") (- "-") (identifier "lVar13"))) (; ";")) (if_statement "if ((long)iVar3 < param_4 - lVar13) {\n            uVar10 = (long)iVar3;\n          }" (if "if") (parenthesized_expression "((long)iVar3 < param_4 - lVar13)" (( "(") (binary_expression "(long)iVar3 < param_4 - lVar13" (cast_expression "(long)iVar3" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "iVar3")) (< "<") (binary_expression "param_4 - lVar13" (identifier "param_4") (- "-") (identifier "lVar13"))) () ")")) (compound_statement "{\n            uVar10 = (long)iVar3;\n          }" ({ "{") (expression_statement "uVar10 = (long)iVar3;" (assignment_expression "uVar10 = (long)iVar3" (identifier "uVar10") (= "=") (cast_expression "(long)iVar3" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "iVar3"))) (; ";")) (} "}"))) (} "}"))) (} "}")) (else_clause "else {\n        if (uVar12 == 0) {\n          pcVar7 = (char *)FUN_0013350a(param_2);\n          if (pcVar7 != (char *)0x0) {\n            if (param_10 != (FILE *)0x0) {\n              uVar12 = 0xffffffffffffffff;\n              pcVar11 = pcVar7;\n              do {\n                if (uVar12 == 0) break;\n                uVar12 = uVar12 - 1;\n                cVar1 = *pcVar11;\n                pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n              } while (cVar1 != '\0');\n              fwrite(pcVar7,1,~uVar12 - 1,param_10);\n            }\n            uVar12 = strtol(pcVar7,&local_c0,0x10);\n            free(pcVar7);\n            if (-1 < (long)uVar12) {\n              if (uVar12 != 0) goto LAB_00133ef7;\n              pcVar7 = (char *)FUN_0013350a(param_2);\n              iVar4 = -1;\n              if (pcVar7 != (char *)0x0) {\n                if (param_10 == (FILE *)0x0) goto LAB_001338bc;\n                uVar9 = 0xffffffffffffffff;\n                pcVar11 = pcVar7;\n                goto code_r0x001338a0;\n              }\n              goto LAB_00133a74;\n            }\n          }\n          iVar5 = -1;\n          break;\n        }\nLAB_00133ef7:\n        uVar10 = (long)iVar3;\n        if ((long)uVar12 < (long)iVar3) {\n          uVar10 = uVar12;\n        }\n      }" (else "else") (compound_statement "{\n        if (uVar12 == 0) {\n          pcVar7 = (char *)FUN_0013350a(param_2);\n          if (pcVar7 != (char *)0x0) {\n            if (param_10 != (FILE *)0x0) {\n              uVar12 = 0xffffffffffffffff;\n              pcVar11 = pcVar7;\n              do {\n                if (uVar12 == 0) break;\n                uVar12 = uVar12 - 1;\n                cVar1 = *pcVar11;\n                pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n              } while (cVar1 != '\0');\n              fwrite(pcVar7,1,~uVar12 - 1,param_10);\n            }\n            uVar12 = strtol(pcVar7,&local_c0,0x10);\n            free(pcVar7);\n            if (-1 < (long)uVar12) {\n              if (uVar12 != 0) goto LAB_00133ef7;\n              pcVar7 = (char *)FUN_0013350a(param_2);\n              iVar4 = -1;\n              if (pcVar7 != (char *)0x0) {\n                if (param_10 == (FILE *)0x0) goto LAB_001338bc;\n                uVar9 = 0xffffffffffffffff;\n                pcVar11 = pcVar7;\n                goto code_r0x001338a0;\n              }\n              goto LAB_00133a74;\n            }\n          }\n          iVar5 = -1;\n          break;\n        }\nLAB_00133ef7:\n        uVar10 = (long)iVar3;\n        if ((long)uVar12 < (long)iVar3) {\n          uVar10 = uVar12;\n        }\n      }" ({ "{") (if_statement "if (uVar12 == 0) {\n          pcVar7 = (char *)FUN_0013350a(param_2);\n          if (pcVar7 != (char *)0x0) {\n            if (param_10 != (FILE *)0x0) {\n              uVar12 = 0xffffffffffffffff;\n              pcVar11 = pcVar7;\n              do {\n                if (uVar12 == 0) break;\n                uVar12 = uVar12 - 1;\n                cVar1 = *pcVar11;\n                pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n              } while (cVar1 != '\0');\n              fwrite(pcVar7,1,~uVar12 - 1,param_10);\n            }\n            uVar12 = strtol(pcVar7,&local_c0,0x10);\n            free(pcVar7);\n            if (-1 < (long)uVar12) {\n              if (uVar12 != 0) goto LAB_00133ef7;\n              pcVar7 = (char *)FUN_0013350a(param_2);\n              iVar4 = -1;\n              if (pcVar7 != (char *)0x0) {\n                if (param_10 == (FILE *)0x0) goto LAB_001338bc;\n                uVar9 = 0xffffffffffffffff;\n                pcVar11 = pcVar7;\n                goto code_r0x001338a0;\n              }\n              goto LAB_00133a74;\n            }\n          }\n          iVar5 = -1;\n          break;\n        }" (if "if") (parenthesized_expression "(uVar12 == 0)" (( "(") (binary_expression "uVar12 == 0" (identifier "uVar12") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          pcVar7 = (char *)FUN_0013350a(param_2);\n          if (pcVar7 != (char *)0x0) {\n            if (param_10 != (FILE *)0x0) {\n              uVar12 = 0xffffffffffffffff;\n              pcVar11 = pcVar7;\n              do {\n                if (uVar12 == 0) break;\n                uVar12 = uVar12 - 1;\n                cVar1 = *pcVar11;\n                pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n              } while (cVar1 != '\0');\n              fwrite(pcVar7,1,~uVar12 - 1,param_10);\n            }\n            uVar12 = strtol(pcVar7,&local_c0,0x10);\n            free(pcVar7);\n            if (-1 < (long)uVar12) {\n              if (uVar12 != 0) goto LAB_00133ef7;\n              pcVar7 = (char *)FUN_0013350a(param_2);\n              iVar4 = -1;\n              if (pcVar7 != (char *)0x0) {\n                if (param_10 == (FILE *)0x0) goto LAB_001338bc;\n                uVar9 = 0xffffffffffffffff;\n                pcVar11 = pcVar7;\n                goto code_r0x001338a0;\n              }\n              goto LAB_00133a74;\n            }\n          }\n          iVar5 = -1;\n          break;\n        }" ({ "{") (expression_statement "pcVar7 = (char *)FUN_0013350a(param_2);" (assignment_expression "pcVar7 = (char *)FUN_0013350a(param_2)" (identifier "pcVar7") (= "=") (cast_expression "(char *)FUN_0013350a(param_2)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0013350a(param_2)" (identifier "FUN_0013350a") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")"))))) (; ";")) (if_statement "if (pcVar7 != (char *)0x0) {\n            if (param_10 != (FILE *)0x0) {\n              uVar12 = 0xffffffffffffffff;\n              pcVar11 = pcVar7;\n              do {\n                if (uVar12 == 0) break;\n                uVar12 = uVar12 - 1;\n                cVar1 = *pcVar11;\n                pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n              } while (cVar1 != '\0');\n              fwrite(pcVar7,1,~uVar12 - 1,param_10);\n            }\n            uVar12 = strtol(pcVar7,&local_c0,0x10);\n            free(pcVar7);\n            if (-1 < (long)uVar12) {\n              if (uVar12 != 0) goto LAB_00133ef7;\n              pcVar7 = (char *)FUN_0013350a(param_2);\n              iVar4 = -1;\n              if (pcVar7 != (char *)0x0) {\n                if (param_10 == (FILE *)0x0) goto LAB_001338bc;\n                uVar9 = 0xffffffffffffffff;\n                pcVar11 = pcVar7;\n                goto code_r0x001338a0;\n              }\n              goto LAB_00133a74;\n            }\n          }" (if "if") (parenthesized_expression "(pcVar7 != (char *)0x0)" (( "(") (binary_expression "pcVar7 != (char *)0x0" (identifier "pcVar7") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            if (param_10 != (FILE *)0x0) {\n              uVar12 = 0xffffffffffffffff;\n              pcVar11 = pcVar7;\n              do {\n                if (uVar12 == 0) break;\n                uVar12 = uVar12 - 1;\n                cVar1 = *pcVar11;\n                pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n              } while (cVar1 != '\0');\n              fwrite(pcVar7,1,~uVar12 - 1,param_10);\n            }\n            uVar12 = strtol(pcVar7,&local_c0,0x10);\n            free(pcVar7);\n            if (-1 < (long)uVar12) {\n              if (uVar12 != 0) goto LAB_00133ef7;\n              pcVar7 = (char *)FUN_0013350a(param_2);\n              iVar4 = -1;\n              if (pcVar7 != (char *)0x0) {\n                if (param_10 == (FILE *)0x0) goto LAB_001338bc;\n                uVar9 = 0xffffffffffffffff;\n                pcVar11 = pcVar7;\n                goto code_r0x001338a0;\n              }\n              goto LAB_00133a74;\n            }\n          }" ({ "{") (if_statement "if (param_10 != (FILE *)0x0) {\n              uVar12 = 0xffffffffffffffff;\n              pcVar11 = pcVar7;\n              do {\n                if (uVar12 == 0) break;\n                uVar12 = uVar12 - 1;\n                cVar1 = *pcVar11;\n                pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n              } while (cVar1 != '\0');\n              fwrite(pcVar7,1,~uVar12 - 1,param_10);\n            }" (if "if") (parenthesized_expression "(param_10 != (FILE *)0x0)" (( "(") (binary_expression "param_10 != (FILE *)0x0" (identifier "param_10") (!= "!=") (cast_expression "(FILE *)0x0" (( "(") (type_descriptor "FILE *" (type_identifier "FILE") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              uVar12 = 0xffffffffffffffff;\n              pcVar11 = pcVar7;\n              do {\n                if (uVar12 == 0) break;\n                uVar12 = uVar12 - 1;\n                cVar1 = *pcVar11;\n                pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n              } while (cVar1 != '\0');\n              fwrite(pcVar7,1,~uVar12 - 1,param_10);\n            }" ({ "{") (expression_statement "uVar12 = 0xffffffffffffffff;" (assignment_expression "uVar12 = 0xffffffffffffffff" (identifier "uVar12") (= "=") (number_literal "0xffffffffffffffff")) (; ";")) (expression_statement "pcVar11 = pcVar7;" (assignment_expression "pcVar11 = pcVar7" (identifier "pcVar11") (= "=") (identifier "pcVar7")) (; ";")) (do_statement "do {\n                if (uVar12 == 0) break;\n                uVar12 = uVar12 - 1;\n                cVar1 = *pcVar11;\n                pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n              } while (cVar1 != '\0');" (do "do") (compound_statement "{\n                if (uVar12 == 0) break;\n                uVar12 = uVar12 - 1;\n                cVar1 = *pcVar11;\n                pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n              }" ({ "{") (if_statement "if (uVar12 == 0) break;" (if "if") (parenthesized_expression "(uVar12 == 0)" (( "(") (binary_expression "uVar12 == 0" (identifier "uVar12") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar12 = uVar12 - 1;" (assignment_expression "uVar12 = uVar12 - 1" (identifier "uVar12") (= "=") (binary_expression "uVar12 - 1" (identifier "uVar12") (- "-") (number_literal "1"))) (; ";")) (expression_statement "cVar1 = *pcVar11;" (assignment_expression "cVar1 = *pcVar11" (identifier "cVar1") (= "=") (pointer_expression "*pcVar11" (* "*") (identifier "pcVar11"))) (; ";")) (expression_statement "pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;" (assignment_expression "pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1" (identifier "pcVar11") (= "=") (binary_expression "pcVar11 + (ulong)bVar14 * -2 + 1" (binary_expression "pcVar11 + (ulong)bVar14 * -2" (identifier "pcVar11") (+ "+") (binary_expression "(ulong)bVar14 * -2" (cast_expression "(ulong)bVar14" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar14")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(cVar1 != '\0')" (( "(") (binary_expression "cVar1 != '\0'" (identifier "cVar1") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (; ";")) (expression_statement "fwrite(pcVar7,1,~uVar12 - 1,param_10);" (call_expression "fwrite(pcVar7,1,~uVar12 - 1,param_10)" (identifier "fwrite") (argument_list "(pcVar7,1,~uVar12 - 1,param_10)" (( "(") (identifier "pcVar7") (, ",") (number_literal "1") (, ",") (binary_expression "~uVar12 - 1" (unary_expression "~uVar12" (~ "~") (identifier "uVar12")) (- "-") (number_literal "1")) (, ",") (identifier "param_10") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar12 = strtol(pcVar7,&local_c0,0x10);" (assignment_expression "uVar12 = strtol(pcVar7,&local_c0,0x10)" (identifier "uVar12") (= "=") (call_expression "strtol(pcVar7,&local_c0,0x10)" (identifier "strtol") (argument_list "(pcVar7,&local_c0,0x10)" (( "(") (identifier "pcVar7") (, ",") (pointer_expression "&local_c0" (& "&") (identifier "local_c0")) (, ",") (number_literal "0x10") () ")")))) (; ";")) (expression_statement "free(pcVar7);" (call_expression "free(pcVar7)" (identifier "free") (argument_list "(pcVar7)" (( "(") (identifier "pcVar7") () ")"))) (; ";")) (if_statement "if (-1 < (long)uVar12) {\n              if (uVar12 != 0) goto LAB_00133ef7;\n              pcVar7 = (char *)FUN_0013350a(param_2);\n              iVar4 = -1;\n              if (pcVar7 != (char *)0x0) {\n                if (param_10 == (FILE *)0x0) goto LAB_001338bc;\n                uVar9 = 0xffffffffffffffff;\n                pcVar11 = pcVar7;\n                goto code_r0x001338a0;\n              }\n              goto LAB_00133a74;\n            }" (if "if") (parenthesized_expression "(-1 < (long)uVar12)" (( "(") (binary_expression "-1 < (long)uVar12" (number_literal "-1") (< "<") (cast_expression "(long)uVar12" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "uVar12"))) () ")")) (compound_statement "{\n              if (uVar12 != 0) goto LAB_00133ef7;\n              pcVar7 = (char *)FUN_0013350a(param_2);\n              iVar4 = -1;\n              if (pcVar7 != (char *)0x0) {\n                if (param_10 == (FILE *)0x0) goto LAB_001338bc;\n                uVar9 = 0xffffffffffffffff;\n                pcVar11 = pcVar7;\n                goto code_r0x001338a0;\n              }\n              goto LAB_00133a74;\n            }" ({ "{") (if_statement "if (uVar12 != 0) goto LAB_00133ef7;" (if "if") (parenthesized_expression "(uVar12 != 0)" (( "(") (binary_expression "uVar12 != 0" (identifier "uVar12") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00133ef7;" (goto "goto") (statement_identifier "LAB_00133ef7") (; ";"))) (expression_statement "pcVar7 = (char *)FUN_0013350a(param_2);" (assignment_expression "pcVar7 = (char *)FUN_0013350a(param_2)" (identifier "pcVar7") (= "=") (cast_expression "(char *)FUN_0013350a(param_2)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0013350a(param_2)" (identifier "FUN_0013350a") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")"))))) (; ";")) (expression_statement "iVar4 = -1;" (assignment_expression "iVar4 = -1" (identifier "iVar4") (= "=") (number_literal "-1")) (; ";")) (if_statement "if (pcVar7 != (char *)0x0) {\n                if (param_10 == (FILE *)0x0) goto LAB_001338bc;\n                uVar9 = 0xffffffffffffffff;\n                pcVar11 = pcVar7;\n                goto code_r0x001338a0;\n              }" (if "if") (parenthesized_expression "(pcVar7 != (char *)0x0)" (( "(") (binary_expression "pcVar7 != (char *)0x0" (identifier "pcVar7") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                if (param_10 == (FILE *)0x0) goto LAB_001338bc;\n                uVar9 = 0xffffffffffffffff;\n                pcVar11 = pcVar7;\n                goto code_r0x001338a0;\n              }" ({ "{") (if_statement "if (param_10 == (FILE *)0x0) goto LAB_001338bc;" (if "if") (parenthesized_expression "(param_10 == (FILE *)0x0)" (( "(") (binary_expression "param_10 == (FILE *)0x0" (identifier "param_10") (== "==") (cast_expression "(FILE *)0x0" (( "(") (type_descriptor "FILE *" (type_identifier "FILE") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_001338bc;" (goto "goto") (statement_identifier "LAB_001338bc") (; ";"))) (expression_statement "uVar9 = 0xffffffffffffffff;" (assignment_expression "uVar9 = 0xffffffffffffffff" (identifier "uVar9") (= "=") (number_literal "0xffffffffffffffff")) (; ";")) (expression_statement "pcVar11 = pcVar7;" (assignment_expression "pcVar11 = pcVar7" (identifier "pcVar11") (= "=") (identifier "pcVar7")) (; ";")) (goto_statement "goto code_r0x001338a0;" (goto "goto") (statement_identifier "code_r0x001338a0") (; ";")) (} "}"))) (goto_statement "goto LAB_00133a74;" (goto "goto") (statement_identifier "LAB_00133a74") (; ";")) (} "}"))) (} "}"))) (expression_statement "iVar5 = -1;" (assignment_expression "iVar5 = -1" (identifier "iVar5") (= "=") (number_literal "-1")) (; ";")) (break_statement "break;" (break "break") (; ";")) (} "}"))) (labeled_statement "LAB_00133ef7:\n        uVar10 = (long)iVar3;" (statement_identifier "LAB_00133ef7") (: ":") (expression_statement "uVar10 = (long)iVar3;" (assignment_expression "uVar10 = (long)iVar3" (identifier "uVar10") (= "=") (cast_expression "(long)iVar3" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "iVar3"))) (; ";"))) (if_statement "if ((long)uVar12 < (long)iVar3) {\n          uVar10 = uVar12;\n        }" (if "if") (parenthesized_expression "((long)uVar12 < (long)iVar3)" (( "(") (binary_expression "(long)uVar12 < (long)iVar3" (cast_expression "(long)uVar12" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "uVar12")) (< "<") (cast_expression "(long)iVar3" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "iVar3"))) () ")")) (compound_statement "{\n          uVar10 = uVar12;\n        }" ({ "{") (expression_statement "uVar10 = uVar12;" (assignment_expression "uVar10 = uVar12" (identifier "uVar10") (= "=") (identifier "uVar12")) (; ";")) (} "}"))) (} "}")))) (if_statement "if (local_db == '\0') {\n        iVar5 = FUN_0010d64e(dVar18,param_2,__ptr,uVar10 & 0xffffffff);\nLAB_00133e68:\n        if (iVar5 < 1) break;\n        if (local_dc) {\n          FUN_00130ebd(lVar6);\nLAB_00133d9f:\n          local_110 = (double)FUN_00130f52(lVar6);\n        }\n        else if ((DAT_001774e8 != 0) || (local_da)) {\n          FUN_00130ebd(lVar6);\n          if (iVar5 < 1) goto LAB_00133ea0;\n          goto LAB_00133d9f;\n        }\n        lVar13 = lVar13 + iVar5;\n        if (__ptr_00 == (undefined8 *)0x0) {\n          iVar4 = FUN_00133125(param_3,param_10,__ptr,iVar5,&local_d0,&local_c8);\n          if (iVar4 < 0) goto LAB_00133a74;\n        }\n        else {\n          iVar4 = FUN_00133125(0,param_10,__ptr,iVar5,0,0);\n          if (iVar4 < 0) goto LAB_00133a74;\n          local_b8 = __ptr;\n          local_b0 = iVar5;\n          do {\n            local_98 = 0x8000;\n            local_a0 = __ptr_00;\n            iVar4 = inflate(&local_b8,0);\n            if (iVar4 == -3) {\nLAB_00133b59:\n              piVar8 = __errno_location();\n              *piVar8 = 0x16;\n              iVar4 = -1;\n              goto LAB_00133a74;\n            }\n            if (iVar4 < -2) {\n              if (iVar4 == -4) {\n                piVar8 = __errno_location();\n                *piVar8 = 0xc;\n                iVar4 = -1;\n                goto LAB_00133a74;\n              }\n            }\n            else if (iVar4 == 1) {\n              if (((param_4 != lVar13) && (uVar2 != 0)) && (DAT_001774fb != '\0')) {\n                FUN_0012bddf("zlib stream ended unexpectedly after %ld/%ld bytes\n",lVar13,param_4);\n              }\n            }\n            else if (iVar4 == 2) goto LAB_00133b59;\n            iVar4 = FUN_00133125(param_3,0,__ptr_00,0x8000 - local_98,&local_d0,&local_c8);\n            if (iVar4 < 0) goto LAB_00133a74;\n          } while (local_98 == 0);\n        }\n        if (((param_9 & 4) != 0) && (uVar12 = uVar12 - (long)iVar5, uVar12 == 0)) {\n          pcVar7 = (char *)FUN_0013350a(param_2);\n          if (pcVar7 == (char *)0x0) {\n            iVar5 = -1;\n            break;\n          }\n          if (param_10 != (FILE *)0x0) {\n            uVar10 = 0xffffffffffffffff;\n            pcVar11 = pcVar7;\n            do {\n              if (uVar10 == 0) break;\n              uVar10 = uVar10 - 1;\n              cVar1 = *pcVar11;\n              pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n            } while (cVar1 != '\0');\n            fwrite(pcVar7,1,~uVar10 - 1,param_10);\n          }\n          free(pcVar7);\n        }\nLAB_00133ea0:\n        if (DAT_001774e8 != 0) {\n          dVar16 = (double)FUN_00130f52(lVar6);\n          dVar18 = DAT_00176e70;\n          dVar16 = dVar16 - DAT_00176e68;\n          DAT_00176e60 = iVar5 + DAT_00176e60;\n          if (dVar16 < (double)DAT_00176e60 / (double)(long)DAT_001774e8) {\n            dVar17 = ((double)DAT_00176e60 / (double)(long)DAT_001774e8 - dVar16) + DAT_00176e70;\n            if (dVar17 < _DAT_0015c908) {\n              if (DAT_001774fb != '\0') {\n                uVar15 = FUN_0013d39d();\n                FUN_0012bddf(dVar17 * DAT_0015d650,dVar16,"deferring a %.2f ms sleep (%s/%.2f).\n",\n                             uVar15);\n              }\n              goto LAB_00133eae;\n            }\n            if (DAT_001774fb != '\0') {\n              uVar15 = FUN_0013d39d();\n              FUN_0012bddf(dVar17 * DAT_0015d650,dVar18,\n                           "\nsleeping %.2f ms for %s bytes, adjust %.2f ms\n",uVar15);\n            }\n            dVar18 = (double)FUN_00130f52(lVar6);\n            FUN_0013d652(dVar17);\n            dVar16 = (double)FUN_00130ebd(lVar6);\n            DAT_00176e70 = dVar17 - (dVar16 - dVar18);\n            if (DAT_00176e70 <= _DAT_0015c710) {\n              if (DAT_00176e70 < DAT_0015d658) {\n                DAT_00176e70 = DAT_0015d658;\n              }\n            }\n            else {\n              DAT_00176e70 = _DAT_0015c710;\n            }\n          }\n          DAT_00176e60 = 0;\n          DAT_00176e68 = (double)FUN_00130f52(lVar6);\n        }\n      }\n      else {\n        if (DAT_001774b0 != 0.0) {\n          dVar18 = (double)FUN_00130f52(lVar6);\n          if ((DAT_001774b0 < (dVar18 - local_110) + DAT_0015d648) &&\n             (DAT_001774b0 - (dVar18 - local_110) < 0.0)) {\n            piVar8 = __errno_location();\n            *piVar8 = 0x6e;\n            iVar4 = -1;\n            goto LAB_00133a74;\n          }\n        }\n        iVar5 = FUN_0010d64e(param_2,__ptr,uVar10 & 0xffffffff);\n        if (-1 < iVar5) goto LAB_00133e68;\n        piVar8 = __errno_location();\n        if (*piVar8 != 0x6e) break;\n        if (local_dc) {\n          FUN_00130ebd(lVar6);\n          iVar5 = 0;\n          goto LAB_00133ea0;\n        }\n        if ((DAT_001774e8 != 0) || (local_da)) {\n          FUN_00130ebd(lVar6);\n          iVar5 = 0;\n          goto LAB_00133ea0;\n        }\n        iVar5 = 0;\n      }" (if "if") (parenthesized_expression "(local_db == '\0')" (( "(") (binary_expression "local_db == '\0'" (identifier "local_db") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        iVar5 = FUN_0010d64e(dVar18,param_2,__ptr,uVar10 & 0xffffffff);\nLAB_00133e68:\n        if (iVar5 < 1) break;\n        if (local_dc) {\n          FUN_00130ebd(lVar6);\nLAB_00133d9f:\n          local_110 = (double)FUN_00130f52(lVar6);\n        }\n        else if ((DAT_001774e8 != 0) || (local_da)) {\n          FUN_00130ebd(lVar6);\n          if (iVar5 < 1) goto LAB_00133ea0;\n          goto LAB_00133d9f;\n        }\n        lVar13 = lVar13 + iVar5;\n        if (__ptr_00 == (undefined8 *)0x0) {\n          iVar4 = FUN_00133125(param_3,param_10,__ptr,iVar5,&local_d0,&local_c8);\n          if (iVar4 < 0) goto LAB_00133a74;\n        }\n        else {\n          iVar4 = FUN_00133125(0,param_10,__ptr,iVar5,0,0);\n          if (iVar4 < 0) goto LAB_00133a74;\n          local_b8 = __ptr;\n          local_b0 = iVar5;\n          do {\n            local_98 = 0x8000;\n            local_a0 = __ptr_00;\n            iVar4 = inflate(&local_b8,0);\n            if (iVar4 == -3) {\nLAB_00133b59:\n              piVar8 = __errno_location();\n              *piVar8 = 0x16;\n              iVar4 = -1;\n              goto LAB_00133a74;\n            }\n            if (iVar4 < -2) {\n              if (iVar4 == -4) {\n                piVar8 = __errno_location();\n                *piVar8 = 0xc;\n                iVar4 = -1;\n                goto LAB_00133a74;\n              }\n            }\n            else if (iVar4 == 1) {\n              if (((param_4 != lVar13) && (uVar2 != 0)) && (DAT_001774fb != '\0')) {\n                FUN_0012bddf("zlib stream ended unexpectedly after %ld/%ld bytes\n",lVar13,param_4);\n              }\n            }\n            else if (iVar4 == 2) goto LAB_00133b59;\n            iVar4 = FUN_00133125(param_3,0,__ptr_00,0x8000 - local_98,&local_d0,&local_c8);\n            if (iVar4 < 0) goto LAB_00133a74;\n          } while (local_98 == 0);\n        }\n        if (((param_9 & 4) != 0) && (uVar12 = uVar12 - (long)iVar5, uVar12 == 0)) {\n          pcVar7 = (char *)FUN_0013350a(param_2);\n          if (pcVar7 == (char *)0x0) {\n            iVar5 = -1;\n            break;\n          }\n          if (param_10 != (FILE *)0x0) {\n            uVar10 = 0xffffffffffffffff;\n            pcVar11 = pcVar7;\n            do {\n              if (uVar10 == 0) break;\n              uVar10 = uVar10 - 1;\n              cVar1 = *pcVar11;\n              pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n            } while (cVar1 != '\0');\n            fwrite(pcVar7,1,~uVar10 - 1,param_10);\n          }\n          free(pcVar7);\n        }\nLAB_00133ea0:\n        if (DAT_001774e8 != 0) {\n          dVar16 = (double)FUN_00130f52(lVar6);\n          dVar18 = DAT_00176e70;\n          dVar16 = dVar16 - DAT_00176e68;\n          DAT_00176e60 = iVar5 + DAT_00176e60;\n          if (dVar16 < (double)DAT_00176e60 / (double)(long)DAT_001774e8) {\n            dVar17 = ((double)DAT_00176e60 / (double)(long)DAT_001774e8 - dVar16) + DAT_00176e70;\n            if (dVar17 < _DAT_0015c908) {\n              if (DAT_001774fb != '\0') {\n                uVar15 = FUN_0013d39d();\n                FUN_0012bddf(dVar17 * DAT_0015d650,dVar16,"deferring a %.2f ms sleep (%s/%.2f).\n",\n                             uVar15);\n              }\n              goto LAB_00133eae;\n            }\n            if (DAT_001774fb != '\0') {\n              uVar15 = FUN_0013d39d();\n              FUN_0012bddf(dVar17 * DAT_0015d650,dVar18,\n                           "\nsleeping %.2f ms for %s bytes, adjust %.2f ms\n",uVar15);\n            }\n            dVar18 = (double)FUN_00130f52(lVar6);\n            FUN_0013d652(dVar17);\n            dVar16 = (double)FUN_00130ebd(lVar6);\n            DAT_00176e70 = dVar17 - (dVar16 - dVar18);\n            if (DAT_00176e70 <= _DAT_0015c710) {\n              if (DAT_00176e70 < DAT_0015d658) {\n                DAT_00176e70 = DAT_0015d658;\n              }\n            }\n            else {\n              DAT_00176e70 = _DAT_0015c710;\n            }\n          }\n          DAT_00176e60 = 0;\n          DAT_00176e68 = (double)FUN_00130f52(lVar6);\n        }\n      }" ({ "{") (expression_statement "iVar5 = FUN_0010d64e(dVar18,param_2,__ptr,uVar10 & 0xffffffff);" (assignment_expression "iVar5 = FUN_0010d64e(dVar18,param_2,__ptr,uVar10 & 0xffffffff)" (identifier "iVar5") (= "=") (call_expression "FUN_0010d64e(dVar18,param_2,__ptr,uVar10 & 0xffffffff)" (identifier "FUN_0010d64e") (argument_list "(dVar18,param_2,__ptr,uVar10 & 0xffffffff)" (( "(") (identifier "dVar18") (, ",") (identifier "param_2") (, ",") (identifier "__ptr") (, ",") (binary_expression "uVar10 & 0xffffffff" (identifier "uVar10") (& "&") (number_literal "0xffffffff")) () ")")))) (; ";")) (labeled_statement "LAB_00133e68:\n        if (iVar5 < 1) break;" (statement_identifier "LAB_00133e68") (: ":") (if_statement "if (iVar5 < 1) break;" (if "if") (parenthesized_expression "(iVar5 < 1)" (( "(") (binary_expression "iVar5 < 1" (identifier "iVar5") (< "<") (number_literal "1")) () ")")) (break_statement "break;" (break "break") (; ";")))) (if_statement "if (local_dc) {\n          FUN_00130ebd(lVar6);\nLAB_00133d9f:\n          local_110 = (double)FUN_00130f52(lVar6);\n        }\n        else if ((DAT_001774e8 != 0) || (local_da)) {\n          FUN_00130ebd(lVar6);\n          if (iVar5 < 1) goto LAB_00133ea0;\n          goto LAB_00133d9f;\n        }" (if "if") (parenthesized_expression "(local_dc)" (( "(") (identifier "local_dc") () ")")) (compound_statement "{\n          FUN_00130ebd(lVar6);\nLAB_00133d9f:\n          local_110 = (double)FUN_00130f52(lVar6);\n        }" ({ "{") (expression_statement "FUN_00130ebd(lVar6);" (call_expression "FUN_00130ebd(lVar6)" (identifier "FUN_00130ebd") (argument_list "(lVar6)" (( "(") (identifier "lVar6") () ")"))) (; ";")) (labeled_statement "LAB_00133d9f:\n          local_110 = (double)FUN_00130f52(lVar6);" (statement_identifier "LAB_00133d9f") (: ":") (expression_statement "local_110 = (double)FUN_00130f52(lVar6);" (assignment_expression "local_110 = (double)FUN_00130f52(lVar6)" (identifier "local_110") (= "=") (cast_expression "(double)FUN_00130f52(lVar6)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "FUN_00130f52(lVar6)" (identifier "FUN_00130f52") (argument_list "(lVar6)" (( "(") (identifier "lVar6") () ")"))))) (; ";"))) (} "}")) (else_clause "else if ((DAT_001774e8 != 0) || (local_da)) {\n          FUN_00130ebd(lVar6);\n          if (iVar5 < 1) goto LAB_00133ea0;\n          goto LAB_00133d9f;\n        }" (else "else") (if_statement "if ((DAT_001774e8 != 0) || (local_da)) {\n          FUN_00130ebd(lVar6);\n          if (iVar5 < 1) goto LAB_00133ea0;\n          goto LAB_00133d9f;\n        }" (if "if") (parenthesized_expression "((DAT_001774e8 != 0) || (local_da))" (( "(") (binary_expression "(DAT_001774e8 != 0) || (local_da)" (parenthesized_expression "(DAT_001774e8 != 0)" (( "(") (binary_expression "DAT_001774e8 != 0" (identifier "DAT_001774e8") (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(local_da)" (( "(") (identifier "local_da") () ")"))) () ")")) (compound_statement "{\n          FUN_00130ebd(lVar6);\n          if (iVar5 < 1) goto LAB_00133ea0;\n          goto LAB_00133d9f;\n        }" ({ "{") (expression_statement "FUN_00130ebd(lVar6);" (call_expression "FUN_00130ebd(lVar6)" (identifier "FUN_00130ebd") (argument_list "(lVar6)" (( "(") (identifier "lVar6") () ")"))) (; ";")) (if_statement "if (iVar5 < 1) goto LAB_00133ea0;" (if "if") (parenthesized_expression "(iVar5 < 1)" (( "(") (binary_expression "iVar5 < 1" (identifier "iVar5") (< "<") (number_literal "1")) () ")")) (goto_statement "goto LAB_00133ea0;" (goto "goto") (statement_identifier "LAB_00133ea0") (; ";"))) (goto_statement "goto LAB_00133d9f;" (goto "goto") (statement_identifier "LAB_00133d9f") (; ";")) (} "}"))))) (expression_statement "lVar13 = lVar13 + iVar5;" (assignment_expression "lVar13 = lVar13 + iVar5" (identifier "lVar13") (= "=") (binary_expression "lVar13 + iVar5" (identifier "lVar13") (+ "+") (identifier "iVar5"))) (; ";")) (if_statement "if (__ptr_00 == (undefined8 *)0x0) {\n          iVar4 = FUN_00133125(param_3,param_10,__ptr,iVar5,&local_d0,&local_c8);\n          if (iVar4 < 0) goto LAB_00133a74;\n        }\n        else {\n          iVar4 = FUN_00133125(0,param_10,__ptr,iVar5,0,0);\n          if (iVar4 < 0) goto LAB_00133a74;\n          local_b8 = __ptr;\n          local_b0 = iVar5;\n          do {\n            local_98 = 0x8000;\n            local_a0 = __ptr_00;\n            iVar4 = inflate(&local_b8,0);\n            if (iVar4 == -3) {\nLAB_00133b59:\n              piVar8 = __errno_location();\n              *piVar8 = 0x16;\n              iVar4 = -1;\n              goto LAB_00133a74;\n            }\n            if (iVar4 < -2) {\n              if (iVar4 == -4) {\n                piVar8 = __errno_location();\n                *piVar8 = 0xc;\n                iVar4 = -1;\n                goto LAB_00133a74;\n              }\n            }\n            else if (iVar4 == 1) {\n              if (((param_4 != lVar13) && (uVar2 != 0)) && (DAT_001774fb != '\0')) {\n                FUN_0012bddf("zlib stream ended unexpectedly after %ld/%ld bytes\n",lVar13,param_4);\n              }\n            }\n            else if (iVar4 == 2) goto LAB_00133b59;\n            iVar4 = FUN_00133125(param_3,0,__ptr_00,0x8000 - local_98,&local_d0,&local_c8);\n            if (iVar4 < 0) goto LAB_00133a74;\n          } while (local_98 == 0);\n        }" (if "if") (parenthesized_expression "(__ptr_00 == (undefined8 *)0x0)" (( "(") (binary_expression "__ptr_00 == (undefined8 *)0x0" (identifier "__ptr_00") (== "==") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          iVar4 = FUN_00133125(param_3,param_10,__ptr,iVar5,&local_d0,&local_c8);\n          if (iVar4 < 0) goto LAB_00133a74;\n        }" ({ "{") (expression_statement "iVar4 = FUN_00133125(param_3,param_10,__ptr,iVar5,&local_d0,&local_c8);" (assignment_expression "iVar4 = FUN_00133125(param_3,param_10,__ptr,iVar5,&local_d0,&local_c8)" (identifier "iVar4") (= "=") (call_expression "FUN_00133125(param_3,param_10,__ptr,iVar5,&local_d0,&local_c8)" (identifier "FUN_00133125") (argument_list "(param_3,param_10,__ptr,iVar5,&local_d0,&local_c8)" (( "(") (identifier "param_3") (, ",") (identifier "param_10") (, ",") (identifier "__ptr") (, ",") (identifier "iVar5") (, ",") (pointer_expression "&local_d0" (& "&") (identifier "local_d0")) (, ",") (pointer_expression "&local_c8" (& "&") (identifier "local_c8")) () ")")))) (; ";")) (if_statement "if (iVar4 < 0) goto LAB_00133a74;" (if "if") (parenthesized_expression "(iVar4 < 0)" (( "(") (binary_expression "iVar4 < 0" (identifier "iVar4") (< "<") (number_literal "0")) () ")")) (goto_statement "goto LAB_00133a74;" (goto "goto") (statement_identifier "LAB_00133a74") (; ";"))) (} "}")) (else_clause "else {\n          iVar4 = FUN_00133125(0,param_10,__ptr,iVar5,0,0);\n          if (iVar4 < 0) goto LAB_00133a74;\n          local_b8 = __ptr;\n          local_b0 = iVar5;\n          do {\n            local_98 = 0x8000;\n            local_a0 = __ptr_00;\n            iVar4 = inflate(&local_b8,0);\n            if (iVar4 == -3) {\nLAB_00133b59:\n              piVar8 = __errno_location();\n              *piVar8 = 0x16;\n              iVar4 = -1;\n              goto LAB_00133a74;\n            }\n            if (iVar4 < -2) {\n              if (iVar4 == -4) {\n                piVar8 = __errno_location();\n                *piVar8 = 0xc;\n                iVar4 = -1;\n                goto LAB_00133a74;\n              }\n            }\n            else if (iVar4 == 1) {\n              if (((param_4 != lVar13) && (uVar2 != 0)) && (DAT_001774fb != '\0')) {\n                FUN_0012bddf("zlib stream ended unexpectedly after %ld/%ld bytes\n",lVar13,param_4);\n              }\n            }\n            else if (iVar4 == 2) goto LAB_00133b59;\n            iVar4 = FUN_00133125(param_3,0,__ptr_00,0x8000 - local_98,&local_d0,&local_c8);\n            if (iVar4 < 0) goto LAB_00133a74;\n          } while (local_98 == 0);\n        }" (else "else") (compound_statement "{\n          iVar4 = FUN_00133125(0,param_10,__ptr,iVar5,0,0);\n          if (iVar4 < 0) goto LAB_00133a74;\n          local_b8 = __ptr;\n          local_b0 = iVar5;\n          do {\n            local_98 = 0x8000;\n            local_a0 = __ptr_00;\n            iVar4 = inflate(&local_b8,0);\n            if (iVar4 == -3) {\nLAB_00133b59:\n              piVar8 = __errno_location();\n              *piVar8 = 0x16;\n              iVar4 = -1;\n              goto LAB_00133a74;\n            }\n            if (iVar4 < -2) {\n              if (iVar4 == -4) {\n                piVar8 = __errno_location();\n                *piVar8 = 0xc;\n                iVar4 = -1;\n                goto LAB_00133a74;\n              }\n            }\n            else if (iVar4 == 1) {\n              if (((param_4 != lVar13) && (uVar2 != 0)) && (DAT_001774fb != '\0')) {\n                FUN_0012bddf("zlib stream ended unexpectedly after %ld/%ld bytes\n",lVar13,param_4);\n              }\n            }\n            else if (iVar4 == 2) goto LAB_00133b59;\n            iVar4 = FUN_00133125(param_3,0,__ptr_00,0x8000 - local_98,&local_d0,&local_c8);\n            if (iVar4 < 0) goto LAB_00133a74;\n          } while (local_98 == 0);\n        }" ({ "{") (expression_statement "iVar4 = FUN_00133125(0,param_10,__ptr,iVar5,0,0);" (assignment_expression "iVar4 = FUN_00133125(0,param_10,__ptr,iVar5,0,0)" (identifier "iVar4") (= "=") (call_expression "FUN_00133125(0,param_10,__ptr,iVar5,0,0)" (identifier "FUN_00133125") (argument_list "(0,param_10,__ptr,iVar5,0,0)" (( "(") (number_literal "0") (, ",") (identifier "param_10") (, ",") (identifier "__ptr") (, ",") (identifier "iVar5") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar4 < 0) goto LAB_00133a74;" (if "if") (parenthesized_expression "(iVar4 < 0)" (( "(") (binary_expression "iVar4 < 0" (identifier "iVar4") (< "<") (number_literal "0")) () ")")) (goto_statement "goto LAB_00133a74;" (goto "goto") (statement_identifier "LAB_00133a74") (; ";"))) (expression_statement "local_b8 = __ptr;" (assignment_expression "local_b8 = __ptr" (identifier "local_b8") (= "=") (identifier "__ptr")) (; ";")) (expression_statement "local_b0 = iVar5;" (assignment_expression "local_b0 = iVar5" (identifier "local_b0") (= "=") (identifier "iVar5")) (; ";")) (do_statement "do {\n            local_98 = 0x8000;\n            local_a0 = __ptr_00;\n            iVar4 = inflate(&local_b8,0);\n            if (iVar4 == -3) {\nLAB_00133b59:\n              piVar8 = __errno_location();\n              *piVar8 = 0x16;\n              iVar4 = -1;\n              goto LAB_00133a74;\n            }\n            if (iVar4 < -2) {\n              if (iVar4 == -4) {\n                piVar8 = __errno_location();\n                *piVar8 = 0xc;\n                iVar4 = -1;\n                goto LAB_00133a74;\n              }\n            }\n            else if (iVar4 == 1) {\n              if (((param_4 != lVar13) && (uVar2 != 0)) && (DAT_001774fb != '\0')) {\n                FUN_0012bddf("zlib stream ended unexpectedly after %ld/%ld bytes\n",lVar13,param_4);\n              }\n            }\n            else if (iVar4 == 2) goto LAB_00133b59;\n            iVar4 = FUN_00133125(param_3,0,__ptr_00,0x8000 - local_98,&local_d0,&local_c8);\n            if (iVar4 < 0) goto LAB_00133a74;\n          } while (local_98 == 0);" (do "do") (compound_statement "{\n            local_98 = 0x8000;\n            local_a0 = __ptr_00;\n            iVar4 = inflate(&local_b8,0);\n            if (iVar4 == -3) {\nLAB_00133b59:\n              piVar8 = __errno_location();\n              *piVar8 = 0x16;\n              iVar4 = -1;\n              goto LAB_00133a74;\n            }\n            if (iVar4 < -2) {\n              if (iVar4 == -4) {\n                piVar8 = __errno_location();\n                *piVar8 = 0xc;\n                iVar4 = -1;\n                goto LAB_00133a74;\n              }\n            }\n            else if (iVar4 == 1) {\n              if (((param_4 != lVar13) && (uVar2 != 0)) && (DAT_001774fb != '\0')) {\n                FUN_0012bddf("zlib stream ended unexpectedly after %ld/%ld bytes\n",lVar13,param_4);\n              }\n            }\n            else if (iVar4 == 2) goto LAB_00133b59;\n            iVar4 = FUN_00133125(param_3,0,__ptr_00,0x8000 - local_98,&local_d0,&local_c8);\n            if (iVar4 < 0) goto LAB_00133a74;\n          }" ({ "{") (expression_statement "local_98 = 0x8000;" (assignment_expression "local_98 = 0x8000" (identifier "local_98") (= "=") (number_literal "0x8000")) (; ";")) (expression_statement "local_a0 = __ptr_00;" (assignment_expression "local_a0 = __ptr_00" (identifier "local_a0") (= "=") (identifier "__ptr_00")) (; ";")) (expression_statement "iVar4 = inflate(&local_b8,0);" (assignment_expression "iVar4 = inflate(&local_b8,0)" (identifier "iVar4") (= "=") (call_expression "inflate(&local_b8,0)" (identifier "inflate") (argument_list "(&local_b8,0)" (( "(") (pointer_expression "&local_b8" (& "&") (identifier "local_b8")) (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar4 == -3) {\nLAB_00133b59:\n              piVar8 = __errno_location();\n              *piVar8 = 0x16;\n              iVar4 = -1;\n              goto LAB_00133a74;\n            }" (if "if") (parenthesized_expression "(iVar4 == -3)" (( "(") (binary_expression "iVar4 == -3" (identifier "iVar4") (== "==") (number_literal "-3")) () ")")) (compound_statement "{\nLAB_00133b59:\n              piVar8 = __errno_location();\n              *piVar8 = 0x16;\n              iVar4 = -1;\n              goto LAB_00133a74;\n            }" ({ "{") (labeled_statement "LAB_00133b59:\n              piVar8 = __errno_location();" (statement_identifier "LAB_00133b59") (: ":") (expression_statement "piVar8 = __errno_location();" (assignment_expression "piVar8 = __errno_location()" (identifier "piVar8") (= "=") (call_expression "__errno_location()" (identifier "__errno_location") (argument_list "()" (( "(") () ")")))) (; ";"))) (expression_statement "*piVar8 = 0x16;" (assignment_expression "*piVar8 = 0x16" (pointer_expression "*piVar8" (* "*") (identifier "piVar8")) (= "=") (number_literal "0x16")) (; ";")) (expression_statement "iVar4 = -1;" (assignment_expression "iVar4 = -1" (identifier "iVar4") (= "=") (number_literal "-1")) (; ";")) (goto_statement "goto LAB_00133a74;" (goto "goto") (statement_identifier "LAB_00133a74") (; ";")) (} "}"))) (if_statement "if (iVar4 < -2) {\n              if (iVar4 == -4) {\n                piVar8 = __errno_location();\n                *piVar8 = 0xc;\n                iVar4 = -1;\n                goto LAB_00133a74;\n              }\n            }\n            else if (iVar4 == 1) {\n              if (((param_4 != lVar13) && (uVar2 != 0)) && (DAT_001774fb != '\0')) {\n                FUN_0012bddf("zlib stream ended unexpectedly after %ld/%ld bytes\n",lVar13,param_4);\n              }\n            }\n            else if (iVar4 == 2) goto LAB_00133b59;" (if "if") (parenthesized_expression "(iVar4 < -2)" (( "(") (binary_expression "iVar4 < -2" (identifier "iVar4") (< "<") (number_literal "-2")) () ")")) (compound_statement "{\n              if (iVar4 == -4) {\n                piVar8 = __errno_location();\n                *piVar8 = 0xc;\n                iVar4 = -1;\n                goto LAB_00133a74;\n              }\n            }" ({ "{") (if_statement "if (iVar4 == -4) {\n                piVar8 = __errno_location();\n                *piVar8 = 0xc;\n                iVar4 = -1;\n                goto LAB_00133a74;\n              }" (if "if") (parenthesized_expression "(iVar4 == -4)" (( "(") (binary_expression "iVar4 == -4" (identifier "iVar4") (== "==") (number_literal "-4")) () ")")) (compound_statement "{\n                piVar8 = __errno_location();\n                *piVar8 = 0xc;\n                iVar4 = -1;\n                goto LAB_00133a74;\n              }" ({ "{") (expression_statement "piVar8 = __errno_location();" (assignment_expression "piVar8 = __errno_location()" (identifier "piVar8") (= "=") (call_expression "__errno_location()" (identifier "__errno_location") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*piVar8 = 0xc;" (assignment_expression "*piVar8 = 0xc" (pointer_expression "*piVar8" (* "*") (identifier "piVar8")) (= "=") (number_literal "0xc")) (; ";")) (expression_statement "iVar4 = -1;" (assignment_expression "iVar4 = -1" (identifier "iVar4") (= "=") (number_literal "-1")) (; ";")) (goto_statement "goto LAB_00133a74;" (goto "goto") (statement_identifier "LAB_00133a74") (; ";")) (} "}"))) (} "}")) (else_clause "else if (iVar4 == 1) {\n              if (((param_4 != lVar13) && (uVar2 != 0)) && (DAT_001774fb != '\0')) {\n                FUN_0012bddf("zlib stream ended unexpectedly after %ld/%ld bytes\n",lVar13,param_4);\n              }\n            }\n            else if (iVar4 == 2) goto LAB_00133b59;" (else "else") (if_statement "if (iVar4 == 1) {\n              if (((param_4 != lVar13) && (uVar2 != 0)) && (DAT_001774fb != '\0')) {\n                FUN_0012bddf("zlib stream ended unexpectedly after %ld/%ld bytes\n",lVar13,param_4);\n              }\n            }\n            else if (iVar4 == 2) goto LAB_00133b59;" (if "if") (parenthesized_expression "(iVar4 == 1)" (( "(") (binary_expression "iVar4 == 1" (identifier "iVar4") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n              if (((param_4 != lVar13) && (uVar2 != 0)) && (DAT_001774fb != '\0')) {\n                FUN_0012bddf("zlib stream ended unexpectedly after %ld/%ld bytes\n",lVar13,param_4);\n              }\n            }" ({ "{") (if_statement "if (((param_4 != lVar13) && (uVar2 != 0)) && (DAT_001774fb != '\0')) {\n                FUN_0012bddf("zlib stream ended unexpectedly after %ld/%ld bytes\n",lVar13,param_4);\n              }" (if "if") (parenthesized_expression "(((param_4 != lVar13) && (uVar2 != 0)) && (DAT_001774fb != '\0'))" (( "(") (binary_expression "((param_4 != lVar13) && (uVar2 != 0)) && (DAT_001774fb != '\0')" (parenthesized_expression "((param_4 != lVar13) && (uVar2 != 0))" (( "(") (binary_expression "(param_4 != lVar13) && (uVar2 != 0)" (parenthesized_expression "(param_4 != lVar13)" (( "(") (binary_expression "param_4 != lVar13" (identifier "param_4") (!= "!=") (identifier "lVar13")) () ")")) (&& "&&") (parenthesized_expression "(uVar2 != 0)" (( "(") (binary_expression "uVar2 != 0" (identifier "uVar2") (!= "!=") (number_literal "0")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(DAT_001774fb != '\0')" (( "(") (binary_expression "DAT_001774fb != '\0'" (identifier "DAT_001774fb") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n                FUN_0012bddf("zlib stream ended unexpectedly after %ld/%ld bytes\n",lVar13,param_4);\n              }" ({ "{") (expression_statement "FUN_0012bddf("zlib stream ended unexpectedly after %ld/%ld bytes\n",lVar13,param_4);" (call_expression "FUN_0012bddf("zlib stream ended unexpectedly after %ld/%ld bytes\n",lVar13,param_4)" (identifier "FUN_0012bddf") (argument_list "("zlib stream ended unexpectedly after %ld/%ld bytes\n",lVar13,param_4)" (( "(") (string_literal ""zlib stream ended unexpectedly after %ld/%ld bytes\n"" (" """) (string_content "zlib stream ended unexpectedly after %ld/%ld bytes") (escape_sequence "\n") (" """)) (, ",") (identifier "lVar13") (, ",") (identifier "param_4") () ")"))) (; ";")) (} "}"))) (} "}")) (else_clause "else if (iVar4 == 2) goto LAB_00133b59;" (else "else") (if_statement "if (iVar4 == 2) goto LAB_00133b59;" (if "if") (parenthesized_expression "(iVar4 == 2)" (( "(") (binary_expression "iVar4 == 2" (identifier "iVar4") (== "==") (number_literal "2")) () ")")) (goto_statement "goto LAB_00133b59;" (goto "goto") (statement_identifier "LAB_00133b59") (; ";"))))))) (expression_statement "iVar4 = FUN_00133125(param_3,0,__ptr_00,0x8000 - local_98,&local_d0,&local_c8);" (assignment_expression "iVar4 = FUN_00133125(param_3,0,__ptr_00,0x8000 - local_98,&local_d0,&local_c8)" (identifier "iVar4") (= "=") (call_expression "FUN_00133125(param_3,0,__ptr_00,0x8000 - local_98,&local_d0,&local_c8)" (identifier "FUN_00133125") (argument_list "(param_3,0,__ptr_00,0x8000 - local_98,&local_d0,&local_c8)" (( "(") (identifier "param_3") (, ",") (number_literal "0") (, ",") (identifier "__ptr_00") (, ",") (binary_expression "0x8000 - local_98" (number_literal "0x8000") (- "-") (identifier "local_98")) (, ",") (pointer_expression "&local_d0" (& "&") (identifier "local_d0")) (, ",") (pointer_expression "&local_c8" (& "&") (identifier "local_c8")) () ")")))) (; ";")) (if_statement "if (iVar4 < 0) goto LAB_00133a74;" (if "if") (parenthesized_expression "(iVar4 < 0)" (( "(") (binary_expression "iVar4 < 0" (identifier "iVar4") (< "<") (number_literal "0")) () ")")) (goto_statement "goto LAB_00133a74;" (goto "goto") (statement_identifier "LAB_00133a74") (; ";"))) (} "}")) (while "while") (parenthesized_expression "(local_98 == 0)" (( "(") (binary_expression "local_98 == 0" (identifier "local_98") (== "==") (number_literal "0")) () ")")) (; ";")) (} "}")))) (if_statement "if (((param_9 & 4) != 0) && (uVar12 = uVar12 - (long)iVar5, uVar12 == 0)) {\n          pcVar7 = (char *)FUN_0013350a(param_2);\n          if (pcVar7 == (char *)0x0) {\n            iVar5 = -1;\n            break;\n          }\n          if (param_10 != (FILE *)0x0) {\n            uVar10 = 0xffffffffffffffff;\n            pcVar11 = pcVar7;\n            do {\n              if (uVar10 == 0) break;\n              uVar10 = uVar10 - 1;\n              cVar1 = *pcVar11;\n              pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n            } while (cVar1 != '\0');\n            fwrite(pcVar7,1,~uVar10 - 1,param_10);\n          }\n          free(pcVar7);\n        }" (if "if") (parenthesized_expression "(((param_9 & 4) != 0) && (uVar12 = uVar12 - (long)iVar5, uVar12 == 0))" (( "(") (binary_expression "((param_9 & 4) != 0) && (uVar12 = uVar12 - (long)iVar5, uVar12 == 0)" (parenthesized_expression "((param_9 & 4) != 0)" (( "(") (binary_expression "(param_9 & 4) != 0" (parenthesized_expression "(param_9 & 4)" (( "(") (binary_expression "param_9 & 4" (identifier "param_9") (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(uVar12 = uVar12 - (long)iVar5, uVar12 == 0)" (( "(") (comma_expression "uVar12 = uVar12 - (long)iVar5, uVar12 == 0" (assignment_expression "uVar12 = uVar12 - (long)iVar5" (identifier "uVar12") (= "=") (binary_expression "uVar12 - (long)iVar5" (identifier "uVar12") (- "-") (cast_expression "(long)iVar5" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "iVar5")))) (, ",") (binary_expression "uVar12 == 0" (identifier "uVar12") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n          pcVar7 = (char *)FUN_0013350a(param_2);\n          if (pcVar7 == (char *)0x0) {\n            iVar5 = -1;\n            break;\n          }\n          if (param_10 != (FILE *)0x0) {\n            uVar10 = 0xffffffffffffffff;\n            pcVar11 = pcVar7;\n            do {\n              if (uVar10 == 0) break;\n              uVar10 = uVar10 - 1;\n              cVar1 = *pcVar11;\n              pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n            } while (cVar1 != '\0');\n            fwrite(pcVar7,1,~uVar10 - 1,param_10);\n          }\n          free(pcVar7);\n        }" ({ "{") (expression_statement "pcVar7 = (char *)FUN_0013350a(param_2);" (assignment_expression "pcVar7 = (char *)FUN_0013350a(param_2)" (identifier "pcVar7") (= "=") (cast_expression "(char *)FUN_0013350a(param_2)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0013350a(param_2)" (identifier "FUN_0013350a") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")"))))) (; ";")) (if_statement "if (pcVar7 == (char *)0x0) {\n            iVar5 = -1;\n            break;\n          }" (if "if") (parenthesized_expression "(pcVar7 == (char *)0x0)" (( "(") (binary_expression "pcVar7 == (char *)0x0" (identifier "pcVar7") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            iVar5 = -1;\n            break;\n          }" ({ "{") (expression_statement "iVar5 = -1;" (assignment_expression "iVar5 = -1" (identifier "iVar5") (= "=") (number_literal "-1")) (; ";")) (break_statement "break;" (break "break") (; ";")) (} "}"))) (if_statement "if (param_10 != (FILE *)0x0) {\n            uVar10 = 0xffffffffffffffff;\n            pcVar11 = pcVar7;\n            do {\n              if (uVar10 == 0) break;\n              uVar10 = uVar10 - 1;\n              cVar1 = *pcVar11;\n              pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n            } while (cVar1 != '\0');\n            fwrite(pcVar7,1,~uVar10 - 1,param_10);\n          }" (if "if") (parenthesized_expression "(param_10 != (FILE *)0x0)" (( "(") (binary_expression "param_10 != (FILE *)0x0" (identifier "param_10") (!= "!=") (cast_expression "(FILE *)0x0" (( "(") (type_descriptor "FILE *" (type_identifier "FILE") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            uVar10 = 0xffffffffffffffff;\n            pcVar11 = pcVar7;\n            do {\n              if (uVar10 == 0) break;\n              uVar10 = uVar10 - 1;\n              cVar1 = *pcVar11;\n              pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n            } while (cVar1 != '\0');\n            fwrite(pcVar7,1,~uVar10 - 1,param_10);\n          }" ({ "{") (expression_statement "uVar10 = 0xffffffffffffffff;" (assignment_expression "uVar10 = 0xffffffffffffffff" (identifier "uVar10") (= "=") (number_literal "0xffffffffffffffff")) (; ";")) (expression_statement "pcVar11 = pcVar7;" (assignment_expression "pcVar11 = pcVar7" (identifier "pcVar11") (= "=") (identifier "pcVar7")) (; ";")) (do_statement "do {\n              if (uVar10 == 0) break;\n              uVar10 = uVar10 - 1;\n              cVar1 = *pcVar11;\n              pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n            } while (cVar1 != '\0');" (do "do") (compound_statement "{\n              if (uVar10 == 0) break;\n              uVar10 = uVar10 - 1;\n              cVar1 = *pcVar11;\n              pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n            }" ({ "{") (if_statement "if (uVar10 == 0) break;" (if "if") (parenthesized_expression "(uVar10 == 0)" (( "(") (binary_expression "uVar10 == 0" (identifier "uVar10") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar10 = uVar10 - 1;" (assignment_expression "uVar10 = uVar10 - 1" (identifier "uVar10") (= "=") (binary_expression "uVar10 - 1" (identifier "uVar10") (- "-") (number_literal "1"))) (; ";")) (expression_statement "cVar1 = *pcVar11;" (assignment_expression "cVar1 = *pcVar11" (identifier "cVar1") (= "=") (pointer_expression "*pcVar11" (* "*") (identifier "pcVar11"))) (; ";")) (expression_statement "pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;" (assignment_expression "pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1" (identifier "pcVar11") (= "=") (binary_expression "pcVar11 + (ulong)bVar14 * -2 + 1" (binary_expression "pcVar11 + (ulong)bVar14 * -2" (identifier "pcVar11") (+ "+") (binary_expression "(ulong)bVar14 * -2" (cast_expression "(ulong)bVar14" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar14")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(cVar1 != '\0')" (( "(") (binary_expression "cVar1 != '\0'" (identifier "cVar1") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (; ";")) (expression_statement "fwrite(pcVar7,1,~uVar10 - 1,param_10);" (call_expression "fwrite(pcVar7,1,~uVar10 - 1,param_10)" (identifier "fwrite") (argument_list "(pcVar7,1,~uVar10 - 1,param_10)" (( "(") (identifier "pcVar7") (, ",") (number_literal "1") (, ",") (binary_expression "~uVar10 - 1" (unary_expression "~uVar10" (~ "~") (identifier "uVar10")) (- "-") (number_literal "1")) (, ",") (identifier "param_10") () ")"))) (; ";")) (} "}"))) (expression_statement "free(pcVar7);" (call_expression "free(pcVar7)" (identifier "free") (argument_list "(pcVar7)" (( "(") (identifier "pcVar7") () ")"))) (; ";")) (} "}"))) (labeled_statement "LAB_00133ea0:\n        if (DAT_001774e8 != 0) {\n          dVar16 = (double)FUN_00130f52(lVar6);\n          dVar18 = DAT_00176e70;\n          dVar16 = dVar16 - DAT_00176e68;\n          DAT_00176e60 = iVar5 + DAT_00176e60;\n          if (dVar16 < (double)DAT_00176e60 / (double)(long)DAT_001774e8) {\n            dVar17 = ((double)DAT_00176e60 / (double)(long)DAT_001774e8 - dVar16) + DAT_00176e70;\n            if (dVar17 < _DAT_0015c908) {\n              if (DAT_001774fb != '\0') {\n                uVar15 = FUN_0013d39d();\n                FUN_0012bddf(dVar17 * DAT_0015d650,dVar16,"deferring a %.2f ms sleep (%s/%.2f).\n",\n                             uVar15);\n              }\n              goto LAB_00133eae;\n            }\n            if (DAT_001774fb != '\0') {\n              uVar15 = FUN_0013d39d();\n              FUN_0012bddf(dVar17 * DAT_0015d650,dVar18,\n                           "\nsleeping %.2f ms for %s bytes, adjust %.2f ms\n",uVar15);\n            }\n            dVar18 = (double)FUN_00130f52(lVar6);\n            FUN_0013d652(dVar17);\n            dVar16 = (double)FUN_00130ebd(lVar6);\n            DAT_00176e70 = dVar17 - (dVar16 - dVar18);\n            if (DAT_00176e70 <= _DAT_0015c710) {\n              if (DAT_00176e70 < DAT_0015d658) {\n                DAT_00176e70 = DAT_0015d658;\n              }\n            }\n            else {\n              DAT_00176e70 = _DAT_0015c710;\n            }\n          }\n          DAT_00176e60 = 0;\n          DAT_00176e68 = (double)FUN_00130f52(lVar6);\n        }" (statement_identifier "LAB_00133ea0") (: ":") (if_statement "if (DAT_001774e8 != 0) {\n          dVar16 = (double)FUN_00130f52(lVar6);\n          dVar18 = DAT_00176e70;\n          dVar16 = dVar16 - DAT_00176e68;\n          DAT_00176e60 = iVar5 + DAT_00176e60;\n          if (dVar16 < (double)DAT_00176e60 / (double)(long)DAT_001774e8) {\n            dVar17 = ((double)DAT_00176e60 / (double)(long)DAT_001774e8 - dVar16) + DAT_00176e70;\n            if (dVar17 < _DAT_0015c908) {\n              if (DAT_001774fb != '\0') {\n                uVar15 = FUN_0013d39d();\n                FUN_0012bddf(dVar17 * DAT_0015d650,dVar16,"deferring a %.2f ms sleep (%s/%.2f).\n",\n                             uVar15);\n              }\n              goto LAB_00133eae;\n            }\n            if (DAT_001774fb != '\0') {\n              uVar15 = FUN_0013d39d();\n              FUN_0012bddf(dVar17 * DAT_0015d650,dVar18,\n                           "\nsleeping %.2f ms for %s bytes, adjust %.2f ms\n",uVar15);\n            }\n            dVar18 = (double)FUN_00130f52(lVar6);\n            FUN_0013d652(dVar17);\n            dVar16 = (double)FUN_00130ebd(lVar6);\n            DAT_00176e70 = dVar17 - (dVar16 - dVar18);\n            if (DAT_00176e70 <= _DAT_0015c710) {\n              if (DAT_00176e70 < DAT_0015d658) {\n                DAT_00176e70 = DAT_0015d658;\n              }\n            }\n            else {\n              DAT_00176e70 = _DAT_0015c710;\n            }\n          }\n          DAT_00176e60 = 0;\n          DAT_00176e68 = (double)FUN_00130f52(lVar6);\n        }" (if "if") (parenthesized_expression "(DAT_001774e8 != 0)" (( "(") (binary_expression "DAT_001774e8 != 0" (identifier "DAT_001774e8") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          dVar16 = (double)FUN_00130f52(lVar6);\n          dVar18 = DAT_00176e70;\n          dVar16 = dVar16 - DAT_00176e68;\n          DAT_00176e60 = iVar5 + DAT_00176e60;\n          if (dVar16 < (double)DAT_00176e60 / (double)(long)DAT_001774e8) {\n            dVar17 = ((double)DAT_00176e60 / (double)(long)DAT_001774e8 - dVar16) + DAT_00176e70;\n            if (dVar17 < _DAT_0015c908) {\n              if (DAT_001774fb != '\0') {\n                uVar15 = FUN_0013d39d();\n                FUN_0012bddf(dVar17 * DAT_0015d650,dVar16,"deferring a %.2f ms sleep (%s/%.2f).\n",\n                             uVar15);\n              }\n              goto LAB_00133eae;\n            }\n            if (DAT_001774fb != '\0') {\n              uVar15 = FUN_0013d39d();\n              FUN_0012bddf(dVar17 * DAT_0015d650,dVar18,\n                           "\nsleeping %.2f ms for %s bytes, adjust %.2f ms\n",uVar15);\n            }\n            dVar18 = (double)FUN_00130f52(lVar6);\n            FUN_0013d652(dVar17);\n            dVar16 = (double)FUN_00130ebd(lVar6);\n            DAT_00176e70 = dVar17 - (dVar16 - dVar18);\n            if (DAT_00176e70 <= _DAT_0015c710) {\n              if (DAT_00176e70 < DAT_0015d658) {\n                DAT_00176e70 = DAT_0015d658;\n              }\n            }\n            else {\n              DAT_00176e70 = _DAT_0015c710;\n            }\n          }\n          DAT_00176e60 = 0;\n          DAT_00176e68 = (double)FUN_00130f52(lVar6);\n        }" ({ "{") (expression_statement "dVar16 = (double)FUN_00130f52(lVar6);" (assignment_expression "dVar16 = (double)FUN_00130f52(lVar6)" (identifier "dVar16") (= "=") (cast_expression "(double)FUN_00130f52(lVar6)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "FUN_00130f52(lVar6)" (identifier "FUN_00130f52") (argument_list "(lVar6)" (( "(") (identifier "lVar6") () ")"))))) (; ";")) (expression_statement "dVar18 = DAT_00176e70;" (assignment_expression "dVar18 = DAT_00176e70" (identifier "dVar18") (= "=") (identifier "DAT_00176e70")) (; ";")) (expression_statement "dVar16 = dVar16 - DAT_00176e68;" (assignment_expression "dVar16 = dVar16 - DAT_00176e68" (identifier "dVar16") (= "=") (binary_expression "dVar16 - DAT_00176e68" (identifier "dVar16") (- "-") (identifier "DAT_00176e68"))) (; ";")) (expression_statement "DAT_00176e60 = iVar5 + DAT_00176e60;" (assignment_expression "DAT_00176e60 = iVar5 + DAT_00176e60" (identifier "DAT_00176e60") (= "=") (binary_expression "iVar5 + DAT_00176e60" (identifier "iVar5") (+ "+") (identifier "DAT_00176e60"))) (; ";")) (if_statement "if (dVar16 < (double)DAT_00176e60 / (double)(long)DAT_001774e8) {\n            dVar17 = ((double)DAT_00176e60 / (double)(long)DAT_001774e8 - dVar16) + DAT_00176e70;\n            if (dVar17 < _DAT_0015c908) {\n              if (DAT_001774fb != '\0') {\n                uVar15 = FUN_0013d39d();\n                FUN_0012bddf(dVar17 * DAT_0015d650,dVar16,"deferring a %.2f ms sleep (%s/%.2f).\n",\n                             uVar15);\n              }\n              goto LAB_00133eae;\n            }\n            if (DAT_001774fb != '\0') {\n              uVar15 = FUN_0013d39d();\n              FUN_0012bddf(dVar17 * DAT_0015d650,dVar18,\n                           "\nsleeping %.2f ms for %s bytes, adjust %.2f ms\n",uVar15);\n            }\n            dVar18 = (double)FUN_00130f52(lVar6);\n            FUN_0013d652(dVar17);\n            dVar16 = (double)FUN_00130ebd(lVar6);\n            DAT_00176e70 = dVar17 - (dVar16 - dVar18);\n            if (DAT_00176e70 <= _DAT_0015c710) {\n              if (DAT_00176e70 < DAT_0015d658) {\n                DAT_00176e70 = DAT_0015d658;\n              }\n            }\n            else {\n              DAT_00176e70 = _DAT_0015c710;\n            }\n          }" (if "if") (parenthesized_expression "(dVar16 < (double)DAT_00176e60 / (double)(long)DAT_001774e8)" (( "(") (binary_expression "dVar16 < (double)DAT_00176e60 / (double)(long)DAT_001774e8" (identifier "dVar16") (< "<") (binary_expression "(double)DAT_00176e60 / (double)(long)DAT_001774e8" (cast_expression "(double)DAT_00176e60" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_00176e60")) (/ "/") (cast_expression "(double)(long)DAT_001774e8" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (cast_expression "(long)DAT_001774e8" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "DAT_001774e8"))))) () ")")) (compound_statement "{\n            dVar17 = ((double)DAT_00176e60 / (double)(long)DAT_001774e8 - dVar16) + DAT_00176e70;\n            if (dVar17 < _DAT_0015c908) {\n              if (DAT_001774fb != '\0') {\n                uVar15 = FUN_0013d39d();\n                FUN_0012bddf(dVar17 * DAT_0015d650,dVar16,"deferring a %.2f ms sleep (%s/%.2f).\n",\n                             uVar15);\n              }\n              goto LAB_00133eae;\n            }\n            if (DAT_001774fb != '\0') {\n              uVar15 = FUN_0013d39d();\n              FUN_0012bddf(dVar17 * DAT_0015d650,dVar18,\n                           "\nsleeping %.2f ms for %s bytes, adjust %.2f ms\n",uVar15);\n            }\n            dVar18 = (double)FUN_00130f52(lVar6);\n            FUN_0013d652(dVar17);\n            dVar16 = (double)FUN_00130ebd(lVar6);\n            DAT_00176e70 = dVar17 - (dVar16 - dVar18);\n            if (DAT_00176e70 <= _DAT_0015c710) {\n              if (DAT_00176e70 < DAT_0015d658) {\n                DAT_00176e70 = DAT_0015d658;\n              }\n            }\n            else {\n              DAT_00176e70 = _DAT_0015c710;\n            }\n          }" ({ "{") (expression_statement "dVar17 = ((double)DAT_00176e60 / (double)(long)DAT_001774e8 - dVar16) + DAT_00176e70;" (assignment_expression "dVar17 = ((double)DAT_00176e60 / (double)(long)DAT_001774e8 - dVar16) + DAT_00176e70" (identifier "dVar17") (= "=") (binary_expression "((double)DAT_00176e60 / (double)(long)DAT_001774e8 - dVar16) + DAT_00176e70" (parenthesized_expression "((double)DAT_00176e60 / (double)(long)DAT_001774e8 - dVar16)" (( "(") (binary_expression "(double)DAT_00176e60 / (double)(long)DAT_001774e8 - dVar16" (binary_expression "(double)DAT_00176e60 / (double)(long)DAT_001774e8" (cast_expression "(double)DAT_00176e60" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_00176e60")) (/ "/") (cast_expression "(double)(long)DAT_001774e8" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (cast_expression "(long)DAT_001774e8" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "DAT_001774e8")))) (- "-") (identifier "dVar16")) () ")")) (+ "+") (identifier "DAT_00176e70"))) (; ";")) (if_statement "if (dVar17 < _DAT_0015c908) {\n              if (DAT_001774fb != '\0') {\n                uVar15 = FUN_0013d39d();\n                FUN_0012bddf(dVar17 * DAT_0015d650,dVar16,"deferring a %.2f ms sleep (%s/%.2f).\n",\n                             uVar15);\n              }\n              goto LAB_00133eae;\n            }" (if "if") (parenthesized_expression "(dVar17 < _DAT_0015c908)" (( "(") (binary_expression "dVar17 < _DAT_0015c908" (identifier "dVar17") (< "<") (identifier "_DAT_0015c908")) () ")")) (compound_statement "{\n              if (DAT_001774fb != '\0') {\n                uVar15 = FUN_0013d39d();\n                FUN_0012bddf(dVar17 * DAT_0015d650,dVar16,"deferring a %.2f ms sleep (%s/%.2f).\n",\n                             uVar15);\n              }\n              goto LAB_00133eae;\n            }" ({ "{") (if_statement "if (DAT_001774fb != '\0') {\n                uVar15 = FUN_0013d39d();\n                FUN_0012bddf(dVar17 * DAT_0015d650,dVar16,"deferring a %.2f ms sleep (%s/%.2f).\n",\n                             uVar15);\n              }" (if "if") (parenthesized_expression "(DAT_001774fb != '\0')" (( "(") (binary_expression "DAT_001774fb != '\0'" (identifier "DAT_001774fb") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                uVar15 = FUN_0013d39d();\n                FUN_0012bddf(dVar17 * DAT_0015d650,dVar16,"deferring a %.2f ms sleep (%s/%.2f).\n",\n                             uVar15);\n              }" ({ "{") (expression_statement "uVar15 = FUN_0013d39d();" (assignment_expression "uVar15 = FUN_0013d39d()" (identifier "uVar15") (= "=") (call_expression "FUN_0013d39d()" (identifier "FUN_0013d39d") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "FUN_0012bddf(dVar17 * DAT_0015d650,dVar16,"deferring a %.2f ms sleep (%s/%.2f).\n",\n                             uVar15);" (call_expression "FUN_0012bddf(dVar17 * DAT_0015d650,dVar16,"deferring a %.2f ms sleep (%s/%.2f).\n",\n                             uVar15)" (identifier "FUN_0012bddf") (argument_list "(dVar17 * DAT_0015d650,dVar16,"deferring a %.2f ms sleep (%s/%.2f).\n",\n                             uVar15)" (( "(") (binary_expression "dVar17 * DAT_0015d650" (identifier "dVar17") (* "*") (identifier "DAT_0015d650")) (, ",") (identifier "dVar16") (, ",") (string_literal ""deferring a %.2f ms sleep (%s/%.2f).\n"" (" """) (string_content "deferring a %.2f ms sleep (%s/%.2f).") (escape_sequence "\n") (" """)) (, ",") (identifier "uVar15") () ")"))) (; ";")) (} "}"))) (goto_statement "goto LAB_00133eae;" (goto "goto") (statement_identifier "LAB_00133eae") (; ";")) (} "}"))) (if_statement "if (DAT_001774fb != '\0') {\n              uVar15 = FUN_0013d39d();\n              FUN_0012bddf(dVar17 * DAT_0015d650,dVar18,\n                           "\nsleeping %.2f ms for %s bytes, adjust %.2f ms\n",uVar15);\n            }" (if "if") (parenthesized_expression "(DAT_001774fb != '\0')" (( "(") (binary_expression "DAT_001774fb != '\0'" (identifier "DAT_001774fb") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n              uVar15 = FUN_0013d39d();\n              FUN_0012bddf(dVar17 * DAT_0015d650,dVar18,\n                           "\nsleeping %.2f ms for %s bytes, adjust %.2f ms\n",uVar15);\n            }" ({ "{") (expression_statement "uVar15 = FUN_0013d39d();" (assignment_expression "uVar15 = FUN_0013d39d()" (identifier "uVar15") (= "=") (call_expression "FUN_0013d39d()" (identifier "FUN_0013d39d") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "FUN_0012bddf(dVar17 * DAT_0015d650,dVar18,\n                           "\nsleeping %.2f ms for %s bytes, adjust %.2f ms\n",uVar15);" (call_expression "FUN_0012bddf(dVar17 * DAT_0015d650,dVar18,\n                           "\nsleeping %.2f ms for %s bytes, adjust %.2f ms\n",uVar15)" (identifier "FUN_0012bddf") (argument_list "(dVar17 * DAT_0015d650,dVar18,\n                           "\nsleeping %.2f ms for %s bytes, adjust %.2f ms\n",uVar15)" (( "(") (binary_expression "dVar17 * DAT_0015d650" (identifier "dVar17") (* "*") (identifier "DAT_0015d650")) (, ",") (identifier "dVar18") (, ",") (string_literal ""\nsleeping %.2f ms for %s bytes, adjust %.2f ms\n"" (" """) (escape_sequence "\n") (string_content "sleeping %.2f ms for %s bytes, adjust %.2f ms") (escape_sequence "\n") (" """)) (, ",") (identifier "uVar15") () ")"))) (; ";")) (} "}"))) (expression_statement "dVar18 = (double)FUN_00130f52(lVar6);" (assignment_expression "dVar18 = (double)FUN_00130f52(lVar6)" (identifier "dVar18") (= "=") (cast_expression "(double)FUN_00130f52(lVar6)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "FUN_00130f52(lVar6)" (identifier "FUN_00130f52") (argument_list "(lVar6)" (( "(") (identifier "lVar6") () ")"))))) (; ";")) (expression_statement "FUN_0013d652(dVar17);" (call_expression "FUN_0013d652(dVar17)" (identifier "FUN_0013d652") (argument_list "(dVar17)" (( "(") (identifier "dVar17") () ")"))) (; ";")) (expression_statement "dVar16 = (double)FUN_00130ebd(lVar6);" (assignment_expression "dVar16 = (double)FUN_00130ebd(lVar6)" (identifier "dVar16") (= "=") (cast_expression "(double)FUN_00130ebd(lVar6)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "FUN_00130ebd(lVar6)" (identifier "FUN_00130ebd") (argument_list "(lVar6)" (( "(") (identifier "lVar6") () ")"))))) (; ";")) (expression_statement "DAT_00176e70 = dVar17 - (dVar16 - dVar18);" (assignment_expression "DAT_00176e70 = dVar17 - (dVar16 - dVar18)" (identifier "DAT_00176e70") (= "=") (binary_expression "dVar17 - (dVar16 - dVar18)" (identifier "dVar17") (- "-") (parenthesized_expression "(dVar16 - dVar18)" (( "(") (binary_expression "dVar16 - dVar18" (identifier "dVar16") (- "-") (identifier "dVar18")) () ")")))) (; ";")) (if_statement "if (DAT_00176e70 <= _DAT_0015c710) {\n              if (DAT_00176e70 < DAT_0015d658) {\n                DAT_00176e70 = DAT_0015d658;\n              }\n            }\n            else {\n              DAT_00176e70 = _DAT_0015c710;\n            }" (if "if") (parenthesized_expression "(DAT_00176e70 <= _DAT_0015c710)" (( "(") (binary_expression "DAT_00176e70 <= _DAT_0015c710" (identifier "DAT_00176e70") (<= "<=") (identifier "_DAT_0015c710")) () ")")) (compound_statement "{\n              if (DAT_00176e70 < DAT_0015d658) {\n                DAT_00176e70 = DAT_0015d658;\n              }\n            }" ({ "{") (if_statement "if (DAT_00176e70 < DAT_0015d658) {\n                DAT_00176e70 = DAT_0015d658;\n              }" (if "if") (parenthesized_expression "(DAT_00176e70 < DAT_0015d658)" (( "(") (binary_expression "DAT_00176e70 < DAT_0015d658" (identifier "DAT_00176e70") (< "<") (identifier "DAT_0015d658")) () ")")) (compound_statement "{\n                DAT_00176e70 = DAT_0015d658;\n              }" ({ "{") (expression_statement "DAT_00176e70 = DAT_0015d658;" (assignment_expression "DAT_00176e70 = DAT_0015d658" (identifier "DAT_00176e70") (= "=") (identifier "DAT_0015d658")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n              DAT_00176e70 = _DAT_0015c710;\n            }" (else "else") (compound_statement "{\n              DAT_00176e70 = _DAT_0015c710;\n            }" ({ "{") (expression_statement "DAT_00176e70 = _DAT_0015c710;" (assignment_expression "DAT_00176e70 = _DAT_0015c710" (identifier "DAT_00176e70") (= "=") (identifier "_DAT_0015c710")) (; ";")) (} "}")))) (} "}"))) (expression_statement "DAT_00176e60 = 0;" (assignment_expression "DAT_00176e60 = 0" (identifier "DAT_00176e60") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00176e68 = (double)FUN_00130f52(lVar6);" (assignment_expression "DAT_00176e68 = (double)FUN_00130f52(lVar6)" (identifier "DAT_00176e68") (= "=") (cast_expression "(double)FUN_00130f52(lVar6)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "FUN_00130f52(lVar6)" (identifier "FUN_00130f52") (argument_list "(lVar6)" (( "(") (identifier "lVar6") () ")"))))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n        if (DAT_001774b0 != 0.0) {\n          dVar18 = (double)FUN_00130f52(lVar6);\n          if ((DAT_001774b0 < (dVar18 - local_110) + DAT_0015d648) &&\n             (DAT_001774b0 - (dVar18 - local_110) < 0.0)) {\n            piVar8 = __errno_location();\n            *piVar8 = 0x6e;\n            iVar4 = -1;\n            goto LAB_00133a74;\n          }\n        }\n        iVar5 = FUN_0010d64e(param_2,__ptr,uVar10 & 0xffffffff);\n        if (-1 < iVar5) goto LAB_00133e68;\n        piVar8 = __errno_location();\n        if (*piVar8 != 0x6e) break;\n        if (local_dc) {\n          FUN_00130ebd(lVar6);\n          iVar5 = 0;\n          goto LAB_00133ea0;\n        }\n        if ((DAT_001774e8 != 0) || (local_da)) {\n          FUN_00130ebd(lVar6);\n          iVar5 = 0;\n          goto LAB_00133ea0;\n        }\n        iVar5 = 0;\n      }" (else "else") (compound_statement "{\n        if (DAT_001774b0 != 0.0) {\n          dVar18 = (double)FUN_00130f52(lVar6);\n          if ((DAT_001774b0 < (dVar18 - local_110) + DAT_0015d648) &&\n             (DAT_001774b0 - (dVar18 - local_110) < 0.0)) {\n            piVar8 = __errno_location();\n            *piVar8 = 0x6e;\n            iVar4 = -1;\n            goto LAB_00133a74;\n          }\n        }\n        iVar5 = FUN_0010d64e(param_2,__ptr,uVar10 & 0xffffffff);\n        if (-1 < iVar5) goto LAB_00133e68;\n        piVar8 = __errno_location();\n        if (*piVar8 != 0x6e) break;\n        if (local_dc) {\n          FUN_00130ebd(lVar6);\n          iVar5 = 0;\n          goto LAB_00133ea0;\n        }\n        if ((DAT_001774e8 != 0) || (local_da)) {\n          FUN_00130ebd(lVar6);\n          iVar5 = 0;\n          goto LAB_00133ea0;\n        }\n        iVar5 = 0;\n      }" ({ "{") (if_statement "if (DAT_001774b0 != 0.0) {\n          dVar18 = (double)FUN_00130f52(lVar6);\n          if ((DAT_001774b0 < (dVar18 - local_110) + DAT_0015d648) &&\n             (DAT_001774b0 - (dVar18 - local_110) < 0.0)) {\n            piVar8 = __errno_location();\n            *piVar8 = 0x6e;\n            iVar4 = -1;\n            goto LAB_00133a74;\n          }\n        }" (if "if") (parenthesized_expression "(DAT_001774b0 != 0.0)" (( "(") (binary_expression "DAT_001774b0 != 0.0" (identifier "DAT_001774b0") (!= "!=") (number_literal "0.0")) () ")")) (compound_statement "{\n          dVar18 = (double)FUN_00130f52(lVar6);\n          if ((DAT_001774b0 < (dVar18 - local_110) + DAT_0015d648) &&\n             (DAT_001774b0 - (dVar18 - local_110) < 0.0)) {\n            piVar8 = __errno_location();\n            *piVar8 = 0x6e;\n            iVar4 = -1;\n            goto LAB_00133a74;\n          }\n        }" ({ "{") (expression_statement "dVar18 = (double)FUN_00130f52(lVar6);" (assignment_expression "dVar18 = (double)FUN_00130f52(lVar6)" (identifier "dVar18") (= "=") (cast_expression "(double)FUN_00130f52(lVar6)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "FUN_00130f52(lVar6)" (identifier "FUN_00130f52") (argument_list "(lVar6)" (( "(") (identifier "lVar6") () ")"))))) (; ";")) (if_statement "if ((DAT_001774b0 < (dVar18 - local_110) + DAT_0015d648) &&\n             (DAT_001774b0 - (dVar18 - local_110) < 0.0)) {\n            piVar8 = __errno_location();\n            *piVar8 = 0x6e;\n            iVar4 = -1;\n            goto LAB_00133a74;\n          }" (if "if") (parenthesized_expression "((DAT_001774b0 < (dVar18 - local_110) + DAT_0015d648) &&\n             (DAT_001774b0 - (dVar18 - local_110) < 0.0))" (( "(") (binary_expression "(DAT_001774b0 < (dVar18 - local_110) + DAT_0015d648) &&\n             (DAT_001774b0 - (dVar18 - local_110) < 0.0)" (parenthesized_expression "(DAT_001774b0 < (dVar18 - local_110) + DAT_0015d648)" (( "(") (binary_expression "DAT_001774b0 < (dVar18 - local_110) + DAT_0015d648" (identifier "DAT_001774b0") (< "<") (binary_expression "(dVar18 - local_110) + DAT_0015d648" (parenthesized_expression "(dVar18 - local_110)" (( "(") (binary_expression "dVar18 - local_110" (identifier "dVar18") (- "-") (identifier "local_110")) () ")")) (+ "+") (identifier "DAT_0015d648"))) () ")")) (&& "&&") (parenthesized_expression "(DAT_001774b0 - (dVar18 - local_110) < 0.0)" (( "(") (binary_expression "DAT_001774b0 - (dVar18 - local_110) < 0.0" (binary_expression "DAT_001774b0 - (dVar18 - local_110)" (identifier "DAT_001774b0") (- "-") (parenthesized_expression "(dVar18 - local_110)" (( "(") (binary_expression "dVar18 - local_110" (identifier "dVar18") (- "-") (identifier "local_110")) () ")"))) (< "<") (number_literal "0.0")) () ")"))) () ")")) (compound_statement "{\n            piVar8 = __errno_location();\n            *piVar8 = 0x6e;\n            iVar4 = -1;\n            goto LAB_00133a74;\n          }" ({ "{") (expression_statement "piVar8 = __errno_location();" (assignment_expression "piVar8 = __errno_location()" (identifier "piVar8") (= "=") (call_expression "__errno_location()" (identifier "__errno_location") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*piVar8 = 0x6e;" (assignment_expression "*piVar8 = 0x6e" (pointer_expression "*piVar8" (* "*") (identifier "piVar8")) (= "=") (number_literal "0x6e")) (; ";")) (expression_statement "iVar4 = -1;" (assignment_expression "iVar4 = -1" (identifier "iVar4") (= "=") (number_literal "-1")) (; ";")) (goto_statement "goto LAB_00133a74;" (goto "goto") (statement_identifier "LAB_00133a74") (; ";")) (} "}"))) (} "}"))) (expression_statement "iVar5 = FUN_0010d64e(param_2,__ptr,uVar10 & 0xffffffff);" (assignment_expression "iVar5 = FUN_0010d64e(param_2,__ptr,uVar10 & 0xffffffff)" (identifier "iVar5") (= "=") (call_expression "FUN_0010d64e(param_2,__ptr,uVar10 & 0xffffffff)" (identifier "FUN_0010d64e") (argument_list "(param_2,__ptr,uVar10 & 0xffffffff)" (( "(") (identifier "param_2") (, ",") (identifier "__ptr") (, ",") (binary_expression "uVar10 & 0xffffffff" (identifier "uVar10") (& "&") (number_literal "0xffffffff")) () ")")))) (; ";")) (if_statement "if (-1 < iVar5) goto LAB_00133e68;" (if "if") (parenthesized_expression "(-1 < iVar5)" (( "(") (binary_expression "-1 < iVar5" (number_literal "-1") (< "<") (identifier "iVar5")) () ")")) (goto_statement "goto LAB_00133e68;" (goto "goto") (statement_identifier "LAB_00133e68") (; ";"))) (expression_statement "piVar8 = __errno_location();" (assignment_expression "piVar8 = __errno_location()" (identifier "piVar8") (= "=") (call_expression "__errno_location()" (identifier "__errno_location") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (*piVar8 != 0x6e) break;" (if "if") (parenthesized_expression "(*piVar8 != 0x6e)" (( "(") (binary_expression "*piVar8 != 0x6e" (pointer_expression "*piVar8" (* "*") (identifier "piVar8")) (!= "!=") (number_literal "0x6e")) () ")")) (break_statement "break;" (break "break") (; ";"))) (if_statement "if (local_dc) {\n          FUN_00130ebd(lVar6);\n          iVar5 = 0;\n          goto LAB_00133ea0;\n        }" (if "if") (parenthesized_expression "(local_dc)" (( "(") (identifier "local_dc") () ")")) (compound_statement "{\n          FUN_00130ebd(lVar6);\n          iVar5 = 0;\n          goto LAB_00133ea0;\n        }" ({ "{") (expression_statement "FUN_00130ebd(lVar6);" (call_expression "FUN_00130ebd(lVar6)" (identifier "FUN_00130ebd") (argument_list "(lVar6)" (( "(") (identifier "lVar6") () ")"))) (; ";")) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" (identifier "iVar5") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_00133ea0;" (goto "goto") (statement_identifier "LAB_00133ea0") (; ";")) (} "}"))) (if_statement "if ((DAT_001774e8 != 0) || (local_da)) {\n          FUN_00130ebd(lVar6);\n          iVar5 = 0;\n          goto LAB_00133ea0;\n        }" (if "if") (parenthesized_expression "((DAT_001774e8 != 0) || (local_da))" (( "(") (binary_expression "(DAT_001774e8 != 0) || (local_da)" (parenthesized_expression "(DAT_001774e8 != 0)" (( "(") (binary_expression "DAT_001774e8 != 0" (identifier "DAT_001774e8") (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(local_da)" (( "(") (identifier "local_da") () ")"))) () ")")) (compound_statement "{\n          FUN_00130ebd(lVar6);\n          iVar5 = 0;\n          goto LAB_00133ea0;\n        }" ({ "{") (expression_statement "FUN_00130ebd(lVar6);" (call_expression "FUN_00130ebd(lVar6)" (identifier "FUN_00130ebd") (argument_list "(lVar6)" (( "(") (identifier "lVar6") () ")"))) (; ";")) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" (identifier "iVar5") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_00133ea0;" (goto "goto") (statement_identifier "LAB_00133ea0") (; ";")) (} "}"))) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" (identifier "iVar5") (= "=") (number_literal "0")) (; ";")) (} "}")))) (labeled_statement "LAB_00133eae:\n      if (local_dc) {\n        FUN_00130f52(lVar6);\n        FUN_00130d09(local_130,(long)iVar5);\n      }" (statement_identifier "LAB_00133eae") (: ":") (if_statement "if (local_dc) {\n        FUN_00130f52(lVar6);\n        FUN_00130d09(local_130,(long)iVar5);\n      }" (if "if") (parenthesized_expression "(local_dc)" (( "(") (identifier "local_dc") () ")")) (compound_statement "{\n        FUN_00130f52(lVar6);\n        FUN_00130d09(local_130,(long)iVar5);\n      }" ({ "{") (expression_statement "FUN_00130f52(lVar6);" (call_expression "FUN_00130f52(lVar6)" (identifier "FUN_00130f52") (argument_list "(lVar6)" (( "(") (identifier "lVar6") () ")"))) (; ";")) (expression_statement "FUN_00130d09(local_130,(long)iVar5);" (call_expression "FUN_00130d09(local_130,(long)iVar5)" (identifier "FUN_00130d09") (argument_list "(local_130,(long)iVar5)" (( "(") (identifier "local_130") (, ",") (cast_expression "(long)iVar5" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "iVar5")) () ")"))) (; ";")) (} "}")))) (} "}"))) (expression_statement "iVar4 = -1;" (assignment_expression "iVar4 = -1" (identifier "iVar4") (= "=") (number_literal "-1")) (; ";")) (if_statement "if (-1 < iVar5) {\n      iVar4 = iVar5;\n    }" (if "if") (parenthesized_expression "(-1 < iVar5)" (( "(") (binary_expression "-1 < iVar5" (number_literal "-1") (< "<") (identifier "iVar5")) () ")")) (compound_statement "{\n      iVar4 = iVar5;\n    }" ({ "{") (expression_statement "iVar4 = iVar5;" (assignment_expression "iVar4 = iVar5" (identifier "iVar4") (= "=") (identifier "iVar5")) (; ";")) (} "}"))) (goto_statement "goto LAB_00133a74;" (goto "goto") (statement_identifier "LAB_00133a74") (; ";")) (} "}"))) (expression_statement "__ptr_00 = (undefined8 *)FUN_001494bf(0x8000);" (assignment_expression "__ptr_00 = (undefined8 *)FUN_001494bf(0x8000)" (identifier "__ptr_00") (= "=") (cast_expression "(undefined8 *)FUN_001494bf(0x8000)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_001494bf(0x8000)" (identifier "FUN_001494bf") (argument_list "(0x8000)" (( "(") (number_literal "0x8000") () ")"))))) (; ";")) (if_statement "if (__ptr_00 == (undefined8 *)0x0) {\n    piVar8 = __errno_location();\n    *piVar8 = 0xc;\n  }\n  else {\n    local_78 = FUN_00133111;\n    local_70 = FUN_00133100;\n    local_68 = 0;\n    local_b8 = (void *)0x0;\n    local_b0 = 0;\n    iVar3 = inflateInit2_(&local_b8,0x2f,"1.2.11",0x70);\n    if (iVar3 == 0) goto LAB_001335e1;\n    free(__ptr_00);\n    iVar5 = 0xc;\n    if (iVar3 != -4) {\n      iVar5 = 0x16;\n    }\n    piVar8 = __errno_location();\n    *piVar8 = iVar5;\n  }" (if "if") (parenthesized_expression "(__ptr_00 == (undefined8 *)0x0)" (( "(") (binary_expression "__ptr_00 == (undefined8 *)0x0" (identifier "__ptr_00") (== "==") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    piVar8 = __errno_location();\n    *piVar8 = 0xc;\n  }" ({ "{") (expression_statement "piVar8 = __errno_location();" (assignment_expression "piVar8 = __errno_location()" (identifier "piVar8") (= "=") (call_expression "__errno_location()" (identifier "__errno_location") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*piVar8 = 0xc;" (assignment_expression "*piVar8 = 0xc" (pointer_expression "*piVar8" (* "*") (identifier "piVar8")) (= "=") (number_literal "0xc")) (; ";")) (} "}")) (else_clause "else {\n    local_78 = FUN_00133111;\n    local_70 = FUN_00133100;\n    local_68 = 0;\n    local_b8 = (void *)0x0;\n    local_b0 = 0;\n    iVar3 = inflateInit2_(&local_b8,0x2f,"1.2.11",0x70);\n    if (iVar3 == 0) goto LAB_001335e1;\n    free(__ptr_00);\n    iVar5 = 0xc;\n    if (iVar3 != -4) {\n      iVar5 = 0x16;\n    }\n    piVar8 = __errno_location();\n    *piVar8 = iVar5;\n  }" (else "else") (compound_statement "{\n    local_78 = FUN_00133111;\n    local_70 = FUN_00133100;\n    local_68 = 0;\n    local_b8 = (void *)0x0;\n    local_b0 = 0;\n    iVar3 = inflateInit2_(&local_b8,0x2f,"1.2.11",0x70);\n    if (iVar3 == 0) goto LAB_001335e1;\n    free(__ptr_00);\n    iVar5 = 0xc;\n    if (iVar3 != -4) {\n      iVar5 = 0x16;\n    }\n    piVar8 = __errno_location();\n    *piVar8 = iVar5;\n  }" ({ "{") (expression_statement "local_78 = FUN_00133111;" (assignment_expression "local_78 = FUN_00133111" (identifier "local_78") (= "=") (identifier "FUN_00133111")) (; ";")) (expression_statement "local_70 = FUN_00133100;" (assignment_expression "local_70 = FUN_00133100" (identifier "local_70") (= "=") (identifier "FUN_00133100")) (; ";")) (expression_statement "local_68 = 0;" (assignment_expression "local_68 = 0" (identifier "local_68") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_b8 = (void *)0x0;" (assignment_expression "local_b8 = (void *)0x0" (identifier "local_b8") (= "=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_b0 = 0;" (assignment_expression "local_b0 = 0" (identifier "local_b0") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar3 = inflateInit2_(&local_b8,0x2f,"1.2.11",0x70);" (assignment_expression "iVar3 = inflateInit2_(&local_b8,0x2f,"1.2.11",0x70)" (identifier "iVar3") (= "=") (call_expression "inflateInit2_(&local_b8,0x2f,"1.2.11",0x70)" (identifier "inflateInit2_") (argument_list "(&local_b8,0x2f,"1.2.11",0x70)" (( "(") (pointer_expression "&local_b8" (& "&") (identifier "local_b8")) (, ",") (number_literal "0x2f") (, ",") (string_literal ""1.2.11"" (" """) (string_content "1.2.11") (" """)) (, ",") (number_literal "0x70") () ")")))) (; ";")) (if_statement "if (iVar3 == 0) goto LAB_001335e1;" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_001335e1;" (goto "goto") (statement_identifier "LAB_001335e1") (; ";"))) (expression_statement "free(__ptr_00);" (call_expression "free(__ptr_00)" (identifier "free") (argument_list "(__ptr_00)" (( "(") (identifier "__ptr_00") () ")"))) (; ";")) (expression_statement "iVar5 = 0xc;" (assignment_expression "iVar5 = 0xc" (identifier "iVar5") (= "=") (number_literal "0xc")) (; ";")) (if_statement "if (iVar3 != -4) {\n      iVar5 = 0x16;\n    }" (if "if") (parenthesized_expression "(iVar3 != -4)" (( "(") (binary_expression "iVar3 != -4" (identifier "iVar3") (!= "!=") (number_literal "-4")) () ")")) (compound_statement "{\n      iVar5 = 0x16;\n    }" ({ "{") (expression_statement "iVar5 = 0x16;" (assignment_expression "iVar5 = 0x16" (identifier "iVar5") (= "=") (number_literal "0x16")) (; ";")) (} "}"))) (expression_statement "piVar8 = __errno_location();" (assignment_expression "piVar8 = __errno_location()" (identifier "piVar8") (= "=") (call_expression "__errno_location()" (identifier "__errno_location") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*piVar8 = iVar5;" (assignment_expression "*piVar8 = iVar5" (pointer_expression "*piVar8" (* "*") (identifier "piVar8")) (= "=") (identifier "iVar5")) (; ";")) (} "}")))) (expression_statement "lVar13 = 0;" (assignment_expression "lVar13 = 0" (identifier "lVar13") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar4 = -1;" (assignment_expression "iVar4 = -1" (identifier "iVar4") (= "=") (number_literal "-1")) (; ";")) (if_statement "if (param_8 == (undefined8 *)0x0) goto LAB_00133ab4;" (if "if") (parenthesized_expression "(param_8 == (undefined8 *)0x0)" (( "(") (binary_expression "param_8 == (undefined8 *)0x0" (identifier "param_8") (== "==") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00133ab4;" (goto "goto") (statement_identifier "LAB_00133ab4") (; ";"))) (expression_statement "__ptr_00 = (undefined8 *)0x0;" (assignment_expression "__ptr_00 = (undefined8 *)0x0" (identifier "__ptr_00") (= "=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "lVar13 = 0;" (assignment_expression "lVar13 = 0" (identifier "lVar13") (= "=") (number_literal "0")) (; ";")) (expression_statement "lVar6 = 0;" (assignment_expression "lVar6 = 0" (identifier "lVar6") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar4 = -1;" (assignment_expression "iVar4 = -1" (identifier "iVar4") (= "=") (number_literal "-1")) (; ";")) (labeled_statement "LAB_00133a96:\n  uVar15 = FUN_00130f52(lVar6);" (statement_identifier "LAB_00133a96") (: ":") (expression_statement "uVar15 = FUN_00130f52(lVar6);" (assignment_expression "uVar15 = FUN_00130f52(lVar6)" (identifier "uVar15") (= "=") (call_expression "FUN_00130f52(lVar6)" (identifier "FUN_00130f52") (argument_list "(lVar6)" (( "(") (identifier "lVar6") () ")")))) (; ";"))) (expression_statement "*param_8 = uVar15;" (assignment_expression "*param_8 = uVar15" (pointer_expression "*param_8" (* "*") (identifier "param_8")) (= "=") (identifier "uVar15")) (; ";")) (goto_statement "goto LAB_00133aa7;" (goto "goto") (statement_identifier "LAB_00133aa7") (; ";")) (while_statement "while( true ) {\n    uVar9 = uVar9 - 1;\n    cVar1 = *pcVar11;\n    pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n    if (cVar1 == '\0') break;\ncode_r0x001338a0:\n    if (uVar9 == 0) break;\n  }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n    uVar9 = uVar9 - 1;\n    cVar1 = *pcVar11;\n    pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;\n    if (cVar1 == '\0') break;\ncode_r0x001338a0:\n    if (uVar9 == 0) break;\n  }" ({ "{") (expression_statement "uVar9 = uVar9 - 1;" (assignment_expression "uVar9 = uVar9 - 1" (identifier "uVar9") (= "=") (binary_expression "uVar9 - 1" (identifier "uVar9") (- "-") (number_literal "1"))) (; ";")) (expression_statement "cVar1 = *pcVar11;" (assignment_expression "cVar1 = *pcVar11" (identifier "cVar1") (= "=") (pointer_expression "*pcVar11" (* "*") (identifier "pcVar11"))) (; ";")) (expression_statement "pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;" (assignment_expression "pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1" (identifier "pcVar11") (= "=") (binary_expression "pcVar11 + (ulong)bVar14 * -2 + 1" (binary_expression "pcVar11 + (ulong)bVar14 * -2" (identifier "pcVar11") (+ "+") (binary_expression "(ulong)bVar14 * -2" (cast_expression "(ulong)bVar14" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar14")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (cVar1 == '\0') break;" (if "if") (parenthesized_expression "(cVar1 == '\0')" (( "(") (binary_expression "cVar1 == '\0'" (identifier "cVar1") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (labeled_statement "code_r0x001338a0:\n    if (uVar9 == 0) break;" (statement_identifier "code_r0x001338a0") (: ":") (if_statement "if (uVar9 == 0) break;" (if "if") (parenthesized_expression "(uVar9 == 0)" (( "(") (binary_expression "uVar9 == 0" (identifier "uVar9") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";")))) (} "}"))) (expression_statement "fwrite(pcVar7,1,~uVar9 - 1,param_10);" (call_expression "fwrite(pcVar7,1,~uVar9 - 1,param_10)" (identifier "fwrite") (argument_list "(pcVar7,1,~uVar9 - 1,param_10)" (( "(") (identifier "pcVar7") (, ",") (number_literal "1") (, ",") (binary_expression "~uVar9 - 1" (unary_expression "~uVar9" (~ "~") (identifier "uVar9")) (- "-") (number_literal "1")) (, ",") (identifier "param_10") () ")"))) (; ";")) (labeled_statement "LAB_001338bc:\n  free(pcVar7);" (statement_identifier "LAB_001338bc") (: ":") (expression_statement "free(pcVar7);" (call_expression "free(pcVar7)" (identifier "free") (argument_list "(pcVar7)" (( "(") (identifier "pcVar7") () ")"))) (; ";"))) (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" (identifier "iVar4") (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_00133a74:\n  if (local_130 != 0) {\n    FUN_00130f52(lVar6);\n    FUN_00130d26(local_130);\n  }" (statement_identifier "LAB_00133a74") (: ":") (if_statement "if (local_130 != 0) {\n    FUN_00130f52(lVar6);\n    FUN_00130d26(local_130);\n  }" (if "if") (parenthesized_expression "(local_130 != 0)" (( "(") (binary_expression "local_130 != 0" (identifier "local_130") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_00130f52(lVar6);\n    FUN_00130d26(local_130);\n  }" ({ "{") (expression_statement "FUN_00130f52(lVar6);" (call_expression "FUN_00130f52(lVar6)" (identifier "FUN_00130f52") (argument_list "(lVar6)" (( "(") (identifier "lVar6") () ")"))) (; ";")) (expression_statement "FUN_00130d26(local_130);" (call_expression "FUN_00130d26(local_130)" (identifier "FUN_00130d26") (argument_list "(local_130)" (( "(") (identifier "local_130") () ")"))) (; ";")) (} "}")))) (if_statement "if (param_8 != (undefined8 *)0x0) goto LAB_00133a96;" (if "if") (parenthesized_expression "(param_8 != (undefined8 *)0x0)" (( "(") (binary_expression "param_8 != (undefined8 *)0x0" (identifier "param_8") (!= "!=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00133a96;" (goto "goto") (statement_identifier "LAB_00133a96") (; ";"))) (labeled_statement "LAB_00133aa7:\n  param_8 = __ptr_00;" (statement_identifier "LAB_00133aa7") (: ":") (expression_statement "param_8 = __ptr_00;" (assignment_expression "param_8 = __ptr_00" (identifier "param_8") (= "=") (identifier "__ptr_00")) (; ";"))) (if_statement "if (lVar6 != 0) {\n    FUN_00130d39(lVar6);\n  }" (if "if") (parenthesized_expression "(lVar6 != 0)" (( "(") (binary_expression "lVar6 != 0" (identifier "lVar6") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_00130d39(lVar6);\n  }" ({ "{") (expression_statement "FUN_00130d39(lVar6);" (call_expression "FUN_00130d39(lVar6)" (identifier "FUN_00130d39") (argument_list "(lVar6)" (( "(") (identifier "lVar6") () ")"))) (; ";")) (} "}"))) (labeled_statement "LAB_00133ab4:\n  if (param_8 != (undefined8 *)0x0) {\n    iVar3 = inflateEnd(&local_b8);\n    if ((-1 < iVar4) && (iVar4 = iVar3, iVar3 != 0)) {\n      piVar8 = __errno_location();\n      *piVar8 = 0x16;\n      iVar4 = -1;\n    }\n    free(param_8);\n    if ((local_a8 != lVar13) && (DAT_001774fb != '\0')) {\n      FUN_0012bddf("zlib read size differs from raw read size (%lu/%lu)\n",local_a8,lVar13);\n    }\n  }" (statement_identifier "LAB_00133ab4") (: ":") (if_statement "if (param_8 != (undefined8 *)0x0) {\n    iVar3 = inflateEnd(&local_b8);\n    if ((-1 < iVar4) && (iVar4 = iVar3, iVar3 != 0)) {\n      piVar8 = __errno_location();\n      *piVar8 = 0x16;\n      iVar4 = -1;\n    }\n    free(param_8);\n    if ((local_a8 != lVar13) && (DAT_001774fb != '\0')) {\n      FUN_0012bddf("zlib read size differs from raw read size (%lu/%lu)\n",local_a8,lVar13);\n    }\n  }" (if "if") (parenthesized_expression "(param_8 != (undefined8 *)0x0)" (( "(") (binary_expression "param_8 != (undefined8 *)0x0" (identifier "param_8") (!= "!=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    iVar3 = inflateEnd(&local_b8);\n    if ((-1 < iVar4) && (iVar4 = iVar3, iVar3 != 0)) {\n      piVar8 = __errno_location();\n      *piVar8 = 0x16;\n      iVar4 = -1;\n    }\n    free(param_8);\n    if ((local_a8 != lVar13) && (DAT_001774fb != '\0')) {\n      FUN_0012bddf("zlib read size differs from raw read size (%lu/%lu)\n",local_a8,lVar13);\n    }\n  }" ({ "{") (expression_statement "iVar3 = inflateEnd(&local_b8);" (assignment_expression "iVar3 = inflateEnd(&local_b8)" (identifier "iVar3") (= "=") (call_expression "inflateEnd(&local_b8)" (identifier "inflateEnd") (argument_list "(&local_b8)" (( "(") (pointer_expression "&local_b8" (& "&") (identifier "local_b8")) () ")")))) (; ";")) (if_statement "if ((-1 < iVar4) && (iVar4 = iVar3, iVar3 != 0)) {\n      piVar8 = __errno_location();\n      *piVar8 = 0x16;\n      iVar4 = -1;\n    }" (if "if") (parenthesized_expression "((-1 < iVar4) && (iVar4 = iVar3, iVar3 != 0))" (( "(") (binary_expression "(-1 < iVar4) && (iVar4 = iVar3, iVar3 != 0)" (parenthesized_expression "(-1 < iVar4)" (( "(") (binary_expression "-1 < iVar4" (number_literal "-1") (< "<") (identifier "iVar4")) () ")")) (&& "&&") (parenthesized_expression "(iVar4 = iVar3, iVar3 != 0)" (( "(") (comma_expression "iVar4 = iVar3, iVar3 != 0" (assignment_expression "iVar4 = iVar3" (identifier "iVar4") (= "=") (identifier "iVar3")) (, ",") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n      piVar8 = __errno_location();\n      *piVar8 = 0x16;\n      iVar4 = -1;\n    }" ({ "{") (expression_statement "piVar8 = __errno_location();" (assignment_expression "piVar8 = __errno_location()" (identifier "piVar8") (= "=") (call_expression "__errno_location()" (identifier "__errno_location") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*piVar8 = 0x16;" (assignment_expression "*piVar8 = 0x16" (pointer_expression "*piVar8" (* "*") (identifier "piVar8")) (= "=") (number_literal "0x16")) (; ";")) (expression_statement "iVar4 = -1;" (assignment_expression "iVar4 = -1" (identifier "iVar4") (= "=") (number_literal "-1")) (; ";")) (} "}"))) (expression_statement "free(param_8);" (call_expression "free(param_8)" (identifier "free") (argument_list "(param_8)" (( "(") (identifier "param_8") () ")"))) (; ";")) (if_statement "if ((local_a8 != lVar13) && (DAT_001774fb != '\0')) {\n      FUN_0012bddf("zlib read size differs from raw read size (%lu/%lu)\n",local_a8,lVar13);\n    }" (if "if") (parenthesized_expression "((local_a8 != lVar13) && (DAT_001774fb != '\0'))" (( "(") (binary_expression "(local_a8 != lVar13) && (DAT_001774fb != '\0')" (parenthesized_expression "(local_a8 != lVar13)" (( "(") (binary_expression "local_a8 != lVar13" (identifier "local_a8") (!= "!=") (identifier "lVar13")) () ")")) (&& "&&") (parenthesized_expression "(DAT_001774fb != '\0')" (( "(") (binary_expression "DAT_001774fb != '\0'" (identifier "DAT_001774fb") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n      FUN_0012bddf("zlib read size differs from raw read size (%lu/%lu)\n",local_a8,lVar13);\n    }" ({ "{") (expression_statement "FUN_0012bddf("zlib read size differs from raw read size (%lu/%lu)\n",local_a8,lVar13);" (call_expression "FUN_0012bddf("zlib read size differs from raw read size (%lu/%lu)\n",local_a8,lVar13)" (identifier "FUN_0012bddf") (argument_list "("zlib read size differs from raw read size (%lu/%lu)\n",local_a8,lVar13)" (( "(") (string_literal ""zlib read size differs from raw read size (%lu/%lu)\n"" (" """) (string_content "zlib read size differs from raw read size (%lu/%lu)") (escape_sequence "\n") (" """)) (, ",") (identifier "local_a8") (, ",") (identifier "lVar13") () ")"))) (; ";")) (} "}"))) (} "}")))) (if_statement "if (param_6 != (long *)0x0) {\n    *param_6 = *param_6 + lVar13;\n  }" (if "if") (parenthesized_expression "(param_6 != (long *)0x0)" (( "(") (binary_expression "param_6 != (long *)0x0" (identifier "param_6") (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    *param_6 = *param_6 + lVar13;\n  }" ({ "{") (expression_statement "*param_6 = *param_6 + lVar13;" (assignment_expression "*param_6 = *param_6 + lVar13" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (= "=") (binary_expression "*param_6 + lVar13" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (+ "+") (identifier "lVar13"))) (; ";")) (} "}"))) (if_statement "if (param_7 != (long *)0x0) {\n    *param_7 = *param_7 + local_c8;\n  }" (if "if") (parenthesized_expression "(param_7 != (long *)0x0)" (( "(") (binary_expression "param_7 != (long *)0x0" (identifier "param_7") (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    *param_7 = *param_7 + local_c8;\n  }" ({ "{") (expression_statement "*param_7 = *param_7 + local_c8;" (assignment_expression "*param_7 = *param_7 + local_c8" (pointer_expression "*param_7" (* "*") (identifier "param_7")) (= "=") (binary_expression "*param_7 + local_c8" (pointer_expression "*param_7" (* "*") (identifier "param_7")) (+ "+") (identifier "local_c8"))) (; ";")) (} "}"))) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" (identifier "free") (argument_list "(__ptr)" (( "(") (identifier "__ptr") () ")"))) (; ";")) (if_statement "if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar4;\n  }" (if "if") (parenthesized_expression "(local_40 == *(long *)(in_FS_OFFSET + 0x28))" (( "(") (binary_expression "local_40 == *(long *)(in_FS_OFFSET + 0x28)" (identifier "local_40") (== "==") (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" (* "*") (cast_expression "(long *)(in_FS_OFFSET + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_FS_OFFSET + 0x28)" (( "(") (binary_expression "in_FS_OFFSET + 0x28" (identifier "in_FS_OFFSET") (+ "+") (number_literal "0x28")) () ")"))))) () ")")) (compound_statement "{\n    return iVar4;\n  }" ({ "{") (return_statement "return iVar4;" (return "return") (identifier "iVar4") (; ";")) (} "}"))) (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" (identifier "__stack_chk_fail") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))

/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
/* WARNING: Enum "anon_enum_32": Some values do not have unique names */

int function_1(char *var_8,int fd,type_1 *out,type_2 var_11,type_2 var_10,
                type_2 *var_55,type_2 *var_56,double *var_14,int var_3,type_1 *var_20)

{
  char var_7;
  long var_58;
  type_3 var_16;
  int var_49;
  int var_32;
  type_4 uVar6;
  type_4 var_54;
  type_5 *buf;
  type_6 *var_51;
  char *var_6;
  int *piVar9;
  type_7 var_5;
  type_7 var_35;
  char *var_21;
  type_7 var_18;
  double *var_29;
  type_8 var_17;
  long var_1;
  type_9 bVar15;
  double var_42;
  double var_36;
  double var_37;
  void *var_13;
  double var_45;
  bool local_dc;
  type_10 var_25;
  bool local_da;
  type_2 var_4;
  type_2 var_57;
  char *endl;
  type_11 gzstream;
  
  bVar15 = 0;
  var_58 = *(long *)(var_1 + 0x28);
  buf = (type_5 *)var_2(0x2000);
  var_16 = var_3 & 1;
  var_4 = 0;
  var_57 = 0;
  var_29 = (double *)0x0;
  if ((var_3 & 8U) == 0) {
LAB_001335e1:
    if ((var_3 & 2U) != 0) {
      var_4 = var_10;
    }
    if (opt.show_progress == 0) {
      var_25 = false;
      var_13 = (void *)0x0;
    }
    else {
      if (var_4 != 0) {
        var_10 = 0;
      }
      if (opt.dir_prefix != (char *)0x0) {
        var_5 = 0xffffffffffffffff;
        var_6 = opt.dir_prefix;
        do {
          if (var_5 == 0) break;
          var_5 = var_5 - 1;
          var_7 = *var_6;
          var_6 = var_6 + (type_7)bVar15 * -2 + 1;
        } while (var_7 != '\0');
        var_8 = var_8 + ~var_5;
      }
      var_13 = var_9(var_8,var_10,var_10 + var_11);
      var_25 = var_12(var_13);
    }
    if (opt.limit_rate == 0) {
      if (var_13 != (void *)0x0 || var_14 != (double *)0x0) goto LAB_00133682;
      var_5 = 0x2000;
      var_51 = (type_6 *)0x0;
    }
    else {
      limit_data.chunk_bytes = 0;
      limit_data.chunk_start = 0.0;
      limit_data.sleep_adjust = 0.0;
LAB_00133682:
      var_51 = var_15();
      if ((opt.limit_rate == 0) || (var_5 = opt.limit_rate, 0x1fff < opt.limit_rate)) {
        var_5 = 0x2000;
      }
    }
    local_da = var_14 != (double *)0x0;
    local_dc = var_13 != (void *)0x0;
    var_49 = (int)var_5;
    var_18 = 0;
    var_17 = 0;
    var_45 = 0.0;
    var_54 = 0;
    while ((var_42 = opt.read_timeout, var_16 == 0 || ((long)var_17 < var_11))) {
      if ((var_3 & 4U) == 0) {
        var_35 = var_5 & 0xffffffff;
        if (var_16 != 0) {
          var_35 = var_11 - var_17;
          if ((long)var_49 < (long)(var_11 - var_17)) {
            var_35 = (long)var_49;
          }
        }
      }
      else {
        if (var_18 == 0) {
          var_6 = var_19(fd);
          if (var_6 != (char *)0x0) {
            if (var_20 != (type_1 *)0x0) {
              var_18 = 0xffffffffffffffff;
              var_21 = var_6;
              do {
                if (var_18 == 0) break;
                var_18 = var_18 - 1;
                var_7 = *var_21;
                var_21 = var_21 + (type_7)bVar15 * -2 + 1;
              } while (var_7 != '\0');
              var_22(var_6,1,~var_18 - 1,(type_1 *)var_20);
            }
            var_18 = var_23(var_6,&endl,0x10);
            var_24(var_6);
            if (-1 < (long)var_18) {
              if (var_18 != 0) goto LAB_00133ef7;
              var_6 = var_19(fd);
              uVar6 = 0xffffffff;
              if (var_6 != (char *)0x0) {
                if (var_20 == (type_1 *)0x0) goto LAB_001338bc;
                var_5 = 0xffffffffffffffff;
                var_21 = var_6;
                goto code_r0x001338a0;
              }
              goto LAB_00133a74;
            }
          }
          var_54 = 0xffffffff;
          break;
        }
LAB_00133ef7:
        var_35 = (long)var_49;
        if ((long)var_18 < (long)var_49) {
          var_35 = var_18;
        }
      }
      if (var_25 == false) {
        var_54 = var_26(fd,(char *)buf,(int)var_35,var_42);
LAB_00133e68:
        if ((int)var_54 < 1) break;
        if (local_dc) {
          var_27(var_51);
LAB_00133d9f:
          var_45 = var_28(var_51);
        }
        else if ((opt.limit_rate != 0) || (local_da)) {
          var_27(var_51);
          if ((int)var_54 < 1) goto LAB_00133ea0;
          goto LAB_00133d9f;
        }
        var_17 = var_17 + (long)(int)var_54;
        if (var_29 == (double *)0x0) {
          uVar6 = var_30(out,var_20,(char *)buf,var_54,&var_4,&var_57);
          if ((int)uVar6 < 0) goto LAB_00133a74;
        }
        else {
          uVar6 = var_30((type_1 *)0x0,var_20,(char *)buf,var_54,(type_2 *)0x0,(type_2 *)0x0);
          if ((int)uVar6 < 0) goto LAB_00133a74;
          gzstream.next_in = buf;
          gzstream.avail_in = var_54;
          do {
            gzstream.avail_out = 0x8000;
            gzstream.next_out = (type_5 *)var_29;
            var_32 = var_31(&gzstream,0);
            if (var_32 == -3) {
LAB_00133b59:
              piVar9 = var_33();
              *piVar9 = 0x16;
              uVar6 = 0xffffffff;
              goto LAB_00133a74;
            }
            if (var_32 < -2) {
              if (var_32 == -4) {
                piVar9 = var_33();
                *piVar9 = 0xc;
                uVar6 = 0xffffffff;
                goto LAB_00133a74;
              }
            }
            else if (var_32 == 1) {
              if (((var_11 != var_17) && (var_16 != 0)) && (opt.debug != false)) {
                var_34("zlib stream ended unexpectedly after %ld/%ld bytes\n",var_17,var_11
                               );
              }
            }
            else if (var_32 == 2) goto LAB_00133b59;
            uVar6 = var_30(out,(type_1 *)0x0,(char *)var_29,0x8000 - gzstream.avail_out,&var_4,
                               &var_57);
            if ((int)uVar6 < 0) goto LAB_00133a74;
          } while (gzstream.avail_out == 0);
        }
        if (((var_3 & 4U) != 0) && (var_18 = var_18 - (long)(int)var_54, var_18 == 0)) {
          var_6 = var_19(fd);
          if (var_6 == (char *)0x0) {
            var_54 = 0xffffffff;
            break;
          }
          if (var_20 != (type_1 *)0x0) {
            var_35 = 0xffffffffffffffff;
            var_21 = var_6;
            do {
              if (var_35 == 0) break;
              var_35 = var_35 - 1;
              var_7 = *var_21;
              var_21 = var_21 + (type_7)bVar15 * -2 + 1;
            } while (var_7 != '\0');
            var_22(var_6,1,~var_35 - 1,(type_1 *)var_20);
          }
          var_24(var_6);
        }
LAB_00133ea0:
        if (opt.limit_rate != 0) {
          var_36 = var_28(var_51);
          var_42 = limit_data.sleep_adjust;
          var_36 = var_36 - limit_data.chunk_start;
          limit_data.chunk_bytes = (int)var_54 + limit_data.chunk_bytes;
          if (var_36 < (double)limit_data.chunk_bytes / (double)opt.limit_rate) {
            var_37 = ((double)limit_data.chunk_bytes / (double)opt.limit_rate - var_36) +
                      limit_data.sleep_adjust;
            if (var_37 < var_38) {
              if (opt.debug != false) {
                var_6 = var_39(limit_data.chunk_bytes);
                var_34("deferring a %.2f ms sleep (%s/%.2f).\n",var_37 * var_40,
                                var_36,var_6);
              }
              goto LAB_00133eae;
            }
            if (opt.debug != false) {
              var_6 = var_39(limit_data.chunk_bytes);
              var_34("\nsleeping %.2f ms for %s bytes, adjust %.2f ms\n",
                              var_37 * var_40,var_42,var_6);
            }
            var_42 = var_28(var_51);
            var_41(var_37);
            var_36 = var_27(var_51);
            limit_data.sleep_adjust = var_37 - (var_36 - var_42);
            if (limit_data.sleep_adjust <= var_43) {
              if (limit_data.sleep_adjust < var_44) {
                limit_data.sleep_adjust = var_44;
              }
            }
            else {
              limit_data.sleep_adjust = var_43;
            }
          }
          limit_data.chunk_bytes = 0;
          limit_data.chunk_start = var_28(var_51);
        }
      }
      else {
        var_42 = var_46;
        if (opt.read_timeout != 0.0) {
          var_36 = var_28(var_51);
          var_42 = var_46;
          if ((opt.read_timeout < (var_36 - var_45) + var_46) &&
             (var_42 = opt.read_timeout - (var_36 - var_45), var_42 < 0.0)) {
            piVar9 = var_33();
            *piVar9 = 0x6e;
            uVar6 = 0xffffffff;
            goto LAB_00133a74;
          }
        }
        var_54 = var_26(fd,(char *)buf,(int)var_35,var_42);
        if (-1 < (int)var_54) goto LAB_00133e68;
        piVar9 = var_33();
        if (*piVar9 != 0x6e) break;
        if (local_dc) {
          var_27(var_51);
          var_54 = 0;
          goto LAB_00133ea0;
        }
        if ((opt.limit_rate != 0) || (local_da)) {
          var_27(var_51);
          var_54 = 0;
          goto LAB_00133ea0;
        }
        var_54 = 0;
      }
LAB_00133eae:
      if (local_dc) {
        var_42 = var_28(var_51);
        var_47(var_13,(long)(int)var_54,var_42);
      }
    }
    uVar6 = 0xffffffff;
    if (-1 < (int)var_54) {
      uVar6 = var_54;
    }
    goto LAB_00133a74;
  }
  var_29 = (double *)var_2(0x8000);
  if (var_29 == (double *)0x0) {
    piVar9 = var_33();
    *piVar9 = 0xc;
  }
  else {
    gzstream.zalloc = zalloc;
    gzstream.zfree = zfree;
    gzstream.opaque = (type_12)0x0;
    gzstream.next_in = (type_5 *)0x0;
    gzstream.avail_in = 0;
    var_49 = var_48(&gzstream,0x2f,"1.2.11",0x70);
    if (var_49 == 0) goto LAB_001335e1;
    var_24(var_29);
    var_32 = 0xc;
    if (var_49 != -4) {
      var_32 = 0x16;
    }
    piVar9 = var_33();
    *piVar9 = var_32;
  }
  var_17 = 0;
  uVar6 = 0xffffffff;
  if (var_14 == (double *)0x0) goto LAB_00133ab4;
  var_29 = (double *)0x0;
  var_17 = 0;
  var_51 = (type_6 *)0x0;
  uVar6 = 0xffffffff;
LAB_00133a96:
  var_42 = var_28(var_51);
  *var_14 = var_42;
  goto LAB_00133aa7;
  while( true ) {
    var_5 = var_5 - 1;
    var_7 = *var_21;
    var_21 = var_21 + (type_7)bVar15 * -2 + 1;
    if (var_7 == '\0') break;
code_r0x001338a0:
    if (var_5 == 0) break;
  }
  var_22(var_6,1,~var_5 - 1,(type_1 *)var_20);
LAB_001338bc:
  var_24(var_6);
  uVar6 = 0;
LAB_00133a74:
  if (var_13 != (void *)0x0) {
    var_42 = var_28(var_51);
    var_50(var_13,var_42);
  }
  if (var_14 != (double *)0x0) goto LAB_00133a96;
LAB_00133aa7:
  var_14 = var_29;
  if (var_51 != (type_6 *)0x0) {
    var_52(var_51);
  }
LAB_00133ab4:
  if (var_14 != (double *)0x0) {
    var_54 = var_53(&gzstream);
    if ((-1 < (int)uVar6) && (uVar6 = var_54, var_54 != 0)) {
      piVar9 = var_33();
      *piVar9 = 0x16;
      uVar6 = 0xffffffff;
    }
    var_24(var_14);
    if ((gzstream.total_in != var_17) && (opt.debug != false)) {
      var_34("zlib read size differs from raw read size (%lu/%lu)\n",gzstream.total_in,
                      var_17);
    }
  }
  if (var_55 != (type_2 *)0x0) {
    *var_55 = *var_55 + var_17;
  }
  if (var_56 != (type_2 *)0x0) {
    *var_56 = *var_56 + var_57;
  }
  var_24(buf);
  if (var_58 == *(long *)(var_1 + 0x28)) {
    return uVar6;
  }
                    /* WARNING: Subroutine does not return */
  var_59();
}


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

/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

int MASKED(long param_1,undefined4 param_2,undefined8 param_3,long param_4,long param_5,
                long *param_6,long *param_7,undefined8 *param_8,uint param_9,FILE *param_10)

{
  char cVar1;
  uint uVar2;
  int iVar3;
  int iVar4;
  int iVar5;
  void *__ptr;
  long lVar6;
  char *pcVar7;
  int *piVar8;
  ulong uVar9;
  ulong uVar10;
  char *pcVar11;
  ulong uVar12;
  undefined8 *__ptr_00;
  long lVar13;
  long in_FS_OFFSET;
  byte bVar14;
  undefined8 uVar15;
  double dVar16;
  double dVar17;
  double dVar18;
  long local_130;
  double local_110;
  bool local_dc;
  char local_db;
  bool local_da;
  long local_d0;
  long local_c8;
  char *local_c0;
  void *local_b8;
  int local_b0;
  long local_a8;
  undefined8 *local_a0;
  int local_98;
  code *local_78;
  code *local_70;
  undefined8 local_68;
  long local_40;
  
  bVar14 = 0;
  local_40 = *(long *)(in_FS_OFFSET + 0x28);
  __ptr = (void *)FUN_001494bf(0x2000);
  uVar2 = param_9 & 1;
  local_d0 = 0;
  local_c8 = 0;
  __ptr_00 = (undefined8 *)0x0;
  if ((param_9 & 8) == 0) {
LAB_001335e1:
    if ((param_9 & 2) != 0) {
      local_d0 = param_5;
    }
    if (DAT_00177498 == 0) {
      local_db = '\0';
      local_130 = 0;
    }
    else {
      if (local_d0 != 0) {
        param_5 = 0;
      }
      if (DAT_001772f8 != (char *)0x0) {
        uVar9 = 0xffffffffffffffff;
        pcVar7 = DAT_001772f8;
        do {
          if (uVar9 == 0) break;
          uVar9 = uVar9 - 1;
          cVar1 = *pcVar7;
          pcVar7 = pcVar7 + (ulong)bVar14 * -2 + 1;
        } while (cVar1 != '\0');
        param_1 = param_1 + ~uVar9;
      }
      local_130 = FUN_00130cae(param_1,param_5,param_5 + param_4);
      local_db = FUN_00130cfd(local_130);
    }
    if (DAT_001774e8 == 0) {
      if (local_130 != 0 || param_8 != (undefined8 *)0x0) goto LAB_00133682;
      uVar9 = 0x2000;
      lVar6 = 0;
    }
    else {
      DAT_00176e60 = 0;
      DAT_00176e68 = 0.0;
      DAT_00176e70 = 0.0;
LAB_00133682:
      lVar6 = FUN_00130d6b();
      if ((DAT_001774e8 == 0) || (uVar9 = DAT_001774e8, 0x1fff < (long)DAT_001774e8)) {
        uVar9 = 0x2000;
      }
    }
    local_da = param_8 != (undefined8 *)0x0;
    local_dc = local_130 != 0;
    iVar3 = (int)uVar9;
    uVar12 = 0;
    lVar13 = 0;
    local_110 = 0.0;
    iVar5 = 0;
    while ((dVar18 = DAT_001774b0, uVar2 == 0 || (lVar13 < param_4))) {
      if ((param_9 & 4) == 0) {
        uVar10 = uVar9 & 0xffffffff;
        if (uVar2 != 0) {
          uVar10 = param_4 - lVar13;
          if ((long)iVar3 < param_4 - lVar13) {
            uVar10 = (long)iVar3;
          }
        }
      }
      else {
        if (uVar12 == 0) {
          pcVar7 = (char *)FUN_0013350a(param_2);
          if (pcVar7 != (char *)0x0) {
            if (param_10 != (FILE *)0x0) {
              uVar12 = 0xffffffffffffffff;
              pcVar11 = pcVar7;
              do {
                if (uVar12 == 0) break;
                uVar12 = uVar12 - 1;
                cVar1 = *pcVar11;
                pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;
              } while (cVar1 != '\0');
              fwrite(pcVar7,1,~uVar12 - 1,param_10);
            }
            uVar12 = strtol(pcVar7,&local_c0,0x10);
            free(pcVar7);
            if (-1 < (long)uVar12) {
              if (uVar12 != 0) goto LAB_00133ef7;
              pcVar7 = (char *)FUN_0013350a(param_2);
              iVar4 = -1;
              if (pcVar7 != (char *)0x0) {
                if (param_10 == (FILE *)0x0) goto LAB_001338bc;
                uVar9 = 0xffffffffffffffff;
                pcVar11 = pcVar7;
                goto code_r0x001338a0;
              }
              goto LAB_00133a74;
            }
          }
          iVar5 = -1;
          break;
        }
LAB_00133ef7:
        uVar10 = (long)iVar3;
        if ((long)uVar12 < (long)iVar3) {
          uVar10 = uVar12;
        }
      }
      if (local_db == '\0') {
        iVar5 = FUN_0010d64e(dVar18,param_2,__ptr,uVar10 & 0xffffffff);
LAB_00133e68:
        if (iVar5 < 1) break;
        if (local_dc) {
          FUN_00130ebd(lVar6);
LAB_00133d9f:
          local_110 = (double)FUN_00130f52(lVar6);
        }
        else if ((DAT_001774e8 != 0) || (local_da)) {
          FUN_00130ebd(lVar6);
          if (iVar5 < 1) goto LAB_00133ea0;
          goto LAB_00133d9f;
        }
        lVar13 = lVar13 + iVar5;
        if (__ptr_00 == (undefined8 *)0x0) {
          iVar4 = FUN_00133125(param_3,param_10,__ptr,iVar5,&local_d0,&local_c8);
          if (iVar4 < 0) goto LAB_00133a74;
        }
        else {
          iVar4 = FUN_00133125(0,param_10,__ptr,iVar5,0,0);
          if (iVar4 < 0) goto LAB_00133a74;
          local_b8 = __ptr;
          local_b0 = iVar5;
          do {
            local_98 = 0x8000;
            local_a0 = __ptr_00;
            iVar4 = inflate(&local_b8,0);
            if (iVar4 == -3) {
LAB_00133b59:
              piVar8 = __errno_location();
              *piVar8 = 0x16;
              iVar4 = -1;
              goto LAB_00133a74;
            }
            if (iVar4 < -2) {
              if (iVar4 == -4) {
                piVar8 = __errno_location();
                *piVar8 = 0xc;
                iVar4 = -1;
                goto LAB_00133a74;
              }
            }
            else if (iVar4 == 1) {
              if (((param_4 != lVar13) && (uVar2 != 0)) && (DAT_001774fb != '\0')) {
                FUN_0012bddf("zlib stream ended unexpectedly after %ld/%ld bytes\n",lVar13,param_4);
              }
            }
            else if (iVar4 == 2) goto LAB_00133b59;
            iVar4 = FUN_00133125(param_3,0,__ptr_00,0x8000 - local_98,&local_d0,&local_c8);
            if (iVar4 < 0) goto LAB_00133a74;
          } while (local_98 == 0);
        }
        if (((param_9 & 4) != 0) && (uVar12 = uVar12 - (long)iVar5, uVar12 == 0)) {
          pcVar7 = (char *)FUN_0013350a(param_2);
          if (pcVar7 == (char *)0x0) {
            iVar5 = -1;
            break;
          }
          if (param_10 != (FILE *)0x0) {
            uVar10 = 0xffffffffffffffff;
            pcVar11 = pcVar7;
            do {
              if (uVar10 == 0) break;
              uVar10 = uVar10 - 1;
              cVar1 = *pcVar11;
              pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;
            } while (cVar1 != '\0');
            fwrite(pcVar7,1,~uVar10 - 1,param_10);
          }
          free(pcVar7);
        }
LAB_00133ea0:
        if (DAT_001774e8 != 0) {
          dVar16 = (double)FUN_00130f52(lVar6);
          dVar18 = DAT_00176e70;
          dVar16 = dVar16 - DAT_00176e68;
          DAT_00176e60 = iVar5 + DAT_00176e60;
          if (dVar16 < (double)DAT_00176e60 / (double)(long)DAT_001774e8) {
            dVar17 = ((double)DAT_00176e60 / (double)(long)DAT_001774e8 - dVar16) + DAT_00176e70;
            if (dVar17 < _DAT_0015c908) {
              if (DAT_001774fb != '\0') {
                uVar15 = FUN_0013d39d();
                FUN_0012bddf(dVar17 * DAT_0015d650,dVar16,"deferring a %.2f ms sleep (%s/%.2f).\n",
                             uVar15);
              }
              goto LAB_00133eae;
            }
            if (DAT_001774fb != '\0') {
              uVar15 = FUN_0013d39d();
              FUN_0012bddf(dVar17 * DAT_0015d650,dVar18,
                           "\nsleeping %.2f ms for %s bytes, adjust %.2f ms\n",uVar15);
            }
            dVar18 = (double)FUN_00130f52(lVar6);
            FUN_0013d652(dVar17);
            dVar16 = (double)FUN_00130ebd(lVar6);
            DAT_00176e70 = dVar17 - (dVar16 - dVar18);
            if (DAT_00176e70 <= _DAT_0015c710) {
              if (DAT_00176e70 < DAT_0015d658) {
                DAT_00176e70 = DAT_0015d658;
              }
            }
            else {
              DAT_00176e70 = _DAT_0015c710;
            }
          }
          DAT_00176e60 = 0;
          DAT_00176e68 = (double)FUN_00130f52(lVar6);
        }
      }
      else {
        if (DAT_001774b0 != 0.0) {
          dVar18 = (double)FUN_00130f52(lVar6);
          if ((DAT_001774b0 < (dVar18 - local_110) + DAT_0015d648) &&
             (DAT_001774b0 - (dVar18 - local_110) < 0.0)) {
            piVar8 = __errno_location();
            *piVar8 = 0x6e;
            iVar4 = -1;
            goto LAB_00133a74;
          }
        }
        iVar5 = FUN_0010d64e(param_2,__ptr,uVar10 & 0xffffffff);
        if (-1 < iVar5) goto LAB_00133e68;
        piVar8 = __errno_location();
        if (*piVar8 != 0x6e) break;
        if (local_dc) {
          FUN_00130ebd(lVar6);
          iVar5 = 0;
          goto LAB_00133ea0;
        }
        if ((DAT_001774e8 != 0) || (local_da)) {
          FUN_00130ebd(lVar6);
          iVar5 = 0;
          goto LAB_00133ea0;
        }
        iVar5 = 0;
      }
LAB_00133eae:
      if (local_dc) {
        FUN_00130f52(lVar6);
        FUN_00130d09(local_130,(long)iVar5);
      }
    }
    iVar4 = -1;
    if (-1 < iVar5) {
      iVar4 = iVar5;
    }
    goto LAB_00133a74;
  }
  __ptr_00 = (undefined8 *)FUN_001494bf(0x8000);
  if (__ptr_00 == (undefined8 *)0x0) {
    piVar8 = __errno_location();
    *piVar8 = 0xc;
  }
  else {
    local_78 = FUN_00133111;
    local_70 = FUN_00133100;
    local_68 = 0;
    local_b8 = (void *)0x0;
    local_b0 = 0;
    iVar3 = inflateInit2_(&local_b8,0x2f,"1.2.11",0x70);
    if (iVar3 == 0) goto LAB_001335e1;
    free(__ptr_00);
    iVar5 = 0xc;
    if (iVar3 != -4) {
      iVar5 = 0x16;
    }
    piVar8 = __errno_location();
    *piVar8 = iVar5;
  }
  lVar13 = 0;
  iVar4 = -1;
  if (param_8 == (undefined8 *)0x0) goto LAB_00133ab4;
  __ptr_00 = (undefined8 *)0x0;
  lVar13 = 0;
  lVar6 = 0;
  iVar4 = -1;
LAB_00133a96:
  uVar15 = FUN_00130f52(lVar6);
  *param_8 = uVar15;
  goto LAB_00133aa7;
  while( true ) {
    uVar9 = uVar9 - 1;
    cVar1 = *pcVar11;
    pcVar11 = pcVar11 + (ulong)bVar14 * -2 + 1;
    if (cVar1 == '\0') break;
code_r0x001338a0:
    if (uVar9 == 0) break;
  }
  fwrite(pcVar7,1,~uVar9 - 1,param_10);
LAB_001338bc:
  free(pcVar7);
  iVar4 = 0;
LAB_00133a74:
  if (local_130 != 0) {
    FUN_00130f52(lVar6);
    FUN_00130d26(local_130);
  }
  if (param_8 != (undefined8 *)0x0) goto LAB_00133a96;
LAB_00133aa7:
  param_8 = __ptr_00;
  if (lVar6 != 0) {
    FUN_00130d39(lVar6);
  }
LAB_00133ab4:
  if (param_8 != (undefined8 *)0x0) {
    iVar3 = inflateEnd(&local_b8);
    if ((-1 < iVar4) && (iVar4 = iVar3, iVar3 != 0)) {
      piVar8 = __errno_location();
      *piVar8 = 0x16;
      iVar4 = -1;
    }
    free(param_8);
    if ((local_a8 != lVar13) && (DAT_001774fb != '\0')) {
      FUN_0012bddf("zlib read size differs from raw read size (%lu/%lu)\n",local_a8,lVar13);
    }
  }
  if (param_6 != (long *)0x0) {
    *param_6 = *param_6 + lVar13;
  }
  if (param_7 != (long *)0x0) {
    *param_7 = *param_7 + local_c8;
  }
  free(__ptr);
  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {
    return iVar4;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail();
}

