
uerr_t retrieve_url(url *orig_parsed,char *origurl,char **file,char **newloc,char *refurl,int *dt,
                   _Bool recursive,iri *iri,_Bool register_status)

{
  char cVar1;
  bool bVar2;
  char cVar3;
  undefined *puVar4;
  undefined3 extraout_var;
  undefined3 extraout_var_00;
  char *pcVar5;
  code *pcVar6;
  char *pcVar7;
  char *pcVar8;
  char *pcVar9;
  iri *i;
  url *puVar10;
  uint uVar11;
  url *u;
  int iVar12;
  uerr_t err;
  _Bool _Var13;
  char *charset;
  undefined *puVar14;
  undefined *puVar15;
  int local_84;
  char *local_7c;
  uint local_68;
  undefined4 local_64;
  undefined4 local_60;
  undefined4 local_5c;
  int dummy;
  char *mynewloc;
  int up_error_code;
  char *local_file;
  char *local_2c;
  
  puVar15 = PTR___stack_chk_guard_000afc3c;
  local_7c = refurl;
  local_68 = (uint)recursive;
  local_2c = *(char **)PTR___stack_chk_guard_000afc3c;
  local_file = (char *)0x0;
  if (dt == (int *)0x0) {
    dt = &dummy;
    dummy = 0;
  }
  pcVar5 = xstrdup(origurl);
  if (newloc != (char **)0x0) {
    *newloc = (char *)0x0;
  }
  if (file != (char **)0x0) {
    *file = (char *)0x0;
  }
  puVar4 = PTR_s_hallenge__000af46c;
  if (refurl == (char *)0x0) {
    local_7c = *(char **)(PTR_opt_000af488 + 0x178);
  }
  local_5c = 0;
  local_60 = 0;
  local_64 = 0;
  bVar2 = false;
  pcVar6 = (code *)(PTR_LAB_000af918 + -0x4774);
  local_84 = 0;
  pcVar7 = PTR_s_hallenge__000af46c + 0x77ec;
  pcVar8 = PTR_s_hallenge__000af46c + -0x1710;
  u = orig_parsed;
  cVar3 = '\0';
LAB_0004ce08:
  do {
    mynewloc = (char *)0x0;
    (*(code *)PTR_free_000afd08)(local_file);
    local_file = (char *)0x0;
    pcVar9 = (char *)(*pcVar6)(&u->scheme,&u->host);
    puVar14 = PTR_opt_000af488;
    if (pcVar9 == (char *)0x0) {
      if (u->scheme < SCHEME_FTP) {
        puVar10 = (url *)0x0;
        goto LAB_0004cfbc;
      }
      if (1 < u->scheme - SCHEME_FTP) goto LAB_0004cef8;
      puVar10 = (url *)0x0;
LAB_0004d1d0:
      if (local_84 == 0) {
        err = (*(code *)PTR_ftp_loop_000af968)
                        (u,orig_parsed,&local_file,dt,puVar10,local_68,PTR_opt_000af488[0xe1]);
      }
      else {
        err = (*(code *)PTR_ftp_loop_000af968)(u,orig_parsed,&local_file,dt,puVar10,local_68,0);
        if ((local_file == (char *)0x0) || (1 < u->scheme - SCHEME_FTP)) {
          local_68 = 0;
        }
        else {
          _Var13 = has_html_suffix_p(local_file);
          local_68 = CONCAT31(extraout_var_00,_Var13);
          if (local_68 != 0) {
            local_68 = 0;
            *dt = *dt | 1;
          }
        }
      }
LAB_0004d01c:
      if (puVar10 != (url *)0x0) {
        url_free(puVar10);
      }
      puVar14 = PTR_opt_000af488;
      if ((err == NEWLOCATION) || (err == NEWLOCATION_KEEP_POST)) {
        (*(code *)PTR_free_000afd08)(local_file);
        local_file = (char *)0x0;
        pcVar9 = mynewloc;
        if (mynewloc == (char *)0x0) {
          pcVar9 = pcVar8;
        }
        pcVar9 = uri_merge(pcVar5,pcVar9);
        (*(code *)PTR_free_000afd08)(mynewloc);
        charset = *(char **)(puVar14 + 0x218);
        iri->utf8_encode = (_Bool)puVar14[0x216];
        mynewloc = pcVar9;
        if (charset != (char *)0x0) {
          set_uri_encoding(iri,charset,true);
        }
        set_content_encoding(iri,(char *)0x0);
        (*(code *)PTR_free_000afd08)(iri->orig_url);
        iri->orig_url = (char *)0x0;
        puVar10 = url_parse(mynewloc,&up_error_code,iri,true);
        if (puVar10 == (url *)0x0) {
          pcVar5 = url_error(mynewloc,up_error_code);
          pcVar7 = escnonprint_uri(mynewloc);
                    /* WARNING: Subroutine does not return */
          logprintf(LOG_NOTQUIET,PTR_s_hallenge__000af46c + 0x776c,pcVar7,pcVar5);
        }
        local_84 = local_84 + 1;
        (*(code *)PTR_free_000afd08)(mynewloc);
        mynewloc = (char *)0x0;
        mynewloc = xstrdup(puVar10->url);
        if (*(int *)(puVar14 + 0x18) < local_84) {
          pcVar5 = (char *)(*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x77d0,5);
                    /* WARNING: Subroutine does not return */
          logprintf(LOG_NOTQUIET,pcVar5,*(undefined4 *)(puVar14 + 0x18));
        }
        (*(code *)PTR_free_000afd08)(pcVar5);
        pcVar5 = mynewloc;
        if (u != orig_parsed) {
          url_free(u);
        }
        u = puVar10;
        if ((err != NEWLOCATION_KEEP_POST) && (!bVar2)) {
          local_64 = *(undefined4 *)(puVar14 + 0x1f8);
          *(undefined4 *)(puVar14 + 0x1f8) = 0;
          local_5c = *(undefined4 *)(puVar14 + 0x1fc);
          *(undefined4 *)(puVar14 + 0x1fc) = 0;
          bVar2 = true;
          local_60 = *(undefined4 *)(puVar14 + 500);
          *(undefined4 *)(puVar14 + 500) = 0;
        }
        goto LAB_0004ce08;
      }
    }
    else {
      i = iri_new();
      set_uri_encoding(i,*(char **)(puVar14 + 0x21c),true);
      i->utf8_encode = false;
      puVar10 = url_parse(pcVar9,&up_error_code,i,true);
      if (puVar10 == (url *)0x0) {
        pcVar5 = url_error(pcVar9,up_error_code);
        pcVar7 = (char *)(*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7754,5);
                    /* WARNING: Subroutine does not return */
        logprintf(LOG_NOTQUIET,pcVar7,pcVar9,pcVar5);
      }
      if ((puVar10->scheme != SCHEME_HTTP) && (puVar10->scheme != u->scheme)) {
        pcVar5 = (char *)(*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7778,5);
                    /* WARNING: Subroutine does not return */
        logprintf(LOG_NOTQUIET,pcVar5,pcVar9);
      }
      iri_free(i);
      (*(code *)PTR_free_000afd08)(pcVar9);
      if ((u->scheme < SCHEME_FTP) || (puVar10->scheme == SCHEME_HTTP)) {
LAB_0004cfbc:
        if ((puVar14[0x22c] != '\0') &&
           ((*(hsts_store_t *)PTR_hsts_store_000af570 != (hsts_store_t)0x0 &&
            (_Var13 = hsts_match(*(hsts_store_t *)PTR_hsts_store_000af570,u),
            CONCAT31(extraout_var,_Var13) != 0)))) {
                    /* WARNING: Subroutine does not return */
          logprintf(LOG_VERBOSE,puVar4 + 0x77a0);
        }
        err = http_loop(u,orig_parsed,&mynewloc,&local_file,local_7c,dt,puVar10,iri);
        goto LAB_0004d01c;
      }
      if (u->scheme - SCHEME_FTP < 2) goto LAB_0004d1d0;
      url_free(puVar10);
LAB_0004cef8:
      err = NOCONERROR;
    }
    (*(code *)PTR_free_000afd08)(mynewloc);
    uVar11 = *dt & 2;
    mynewloc = (char *)0x0;
    if ((uVar11 != 0) || (_Var13 = iri->utf8_encode, _Var13 == false)) {
      pcVar9 = local_file;
      if ((local_file == (char *)0x0) || (puVar14 = PTR_opt_000af488, u == (url *)0x0))
      goto LAB_0004d2f8;
      goto LAB_0004d2e0;
    }
    iri->utf8_encode = false;
    if (u != orig_parsed) {
      url_free(u);
    }
    pcVar9 = (char *)0x0;
    u = url_parse(origurl,(int *)0x0,iri,true);
    puVar14 = PTR_opt_000af488;
    if (u == (url *)0x0) {
      if (PTR_opt_000af488[0x16b] != '\0') {
        pcVar9 = quote(pcVar5);
        debug_logprintf(PTR_s_hallenge__000af46c + 0x783c);
      }
      goto LAB_0004d2f8;
    }
    iVar12 = (*(code *)PTR_strcmp_000afacc)(u->url,orig_parsed->url);
    cVar1 = puVar14[0x16b];
    if (iVar12 == 0) break;
    if (cVar1 != '\0') {
      pcVar9 = quote(pcVar5);
      debug_logprintf(pcVar7,pcVar9);
    }
    (*(code *)PTR_free_000afd08)(pcVar5);
    pcVar5 = xstrdup(u->url);
    cVar3 = _Var13;
  } while( true );
  if (cVar1 != '\0') {
    pcVar7 = quote(pcVar5);
    debug_logprintf(PTR_s_hallenge__000af46c + 0x7814,pcVar7);
  }
  pcVar9 = local_file;
  if (local_file != (char *)0x0) {
    uVar11 = *dt & 2;
LAB_0004d2e0:
    pcVar9 = local_file;
    if ((uVar11 != 0) || (puVar14[0x16a] != '\0')) {
      (*(code *)PTR_register_download_000af96c)(u->url);
      if ((puVar14[0x48] == '\0') && (local_84 != 0)) {
        pcVar7 = u->url;
        pcVar9 = pcVar7;
        iVar12 = (*(code *)PTR_strcmp_000afacc)(origurl);
        if (iVar12 != 0) {
          (*(code *)PTR_register_redirection_000af978)(origurl);
          pcVar9 = pcVar7;
        }
      }
      uVar11 = *dt;
      if ((uVar11 & 1) != 0) {
        (*(code *)PTR_register_html_000af974)();
        uVar11 = *dt;
      }
      if ((uVar11 & 0x40) != 0) {
        (*(code *)PTR_register_css_000af970)();
      }
    }
  }
LAB_0004d2f8:
  if (file == (char **)0x0) {
    (*(code *)PTR_free_000afd08)();
    local_file = (char *)0x0;
  }
  else {
    *file = local_file;
  }
  if (orig_parsed != u) {
    url_free(u);
  }
  puVar4 = PTR_free_000afd08;
  if ((local_84 == 0) && (cVar3 == '\0')) {
    if (newloc != (char **)0x0) {
      *newloc = (char *)0x0;
    }
  }
  else if (newloc != (char **)0x0) {
    *newloc = pcVar5;
    goto LAB_0004d33c;
  }
  (*(code *)puVar4)(pcVar5);
LAB_0004d33c:
  puVar4 = PTR_opt_000af488;
  if (bVar2) {
    *(undefined4 *)(PTR_opt_000af488 + 0x1f8) = local_64;
    *(undefined4 *)(puVar4 + 0x1fc) = local_5c;
    *(undefined4 *)(puVar4 + 500) = local_60;
  }
  if (register_status) {
    inform_exit_status(err);
  }
  if (local_2c != *(char **)puVar15) {
    pcVar5 = local_2c;
    puVar15 = PTR___stack_chk_fail_000afbd4;
    (*(code *)PTR___stack_chk_fail_000afbd4)();
    if (pcVar5 == pcVar9) {
      pcVar5 = (char *)(**(code **)(puVar15 + 0x62534))(0,*(int *)(puVar15 + 0x61cac) + 0x7864,5);
      logputs(LOG_VERBOSE,pcVar5);
      return (uerr_t)pcVar5;
    }
    pcVar5 = (char *)(**(code **)(puVar15 + 0x62534))(0,*(int *)(puVar15 + 0x61cac) + 0x7874);
    logputs(LOG_VERBOSE,pcVar5);
    return (uerr_t)pcVar5;
  }
  return err;
}



int retrieve_url(undefined4 *param_1,undefined4 param_2,undefined4 *param_3,undefined4 *param_4,
                int param_5,uint *param_6,byte param_7,int param_8,char param_9)

{
  char cVar1;
  char cVar2;
  bool bVar3;
  char cVar4;
  undefined *puVar5;
  code *pcVar6;
  undefined *puVar7;
  undefined *puVar8;
  int iVar9;
  int iVar10;
  int iVar11;
  uint uVar12;
  undefined4 *puVar13;
  undefined4 *puVar14;
  undefined4 uVar15;
  undefined4 uVar16;
  undefined *puVar17;
  undefined *puVar18;
  undefined *puVar19;
  undefined *puVar20;
  int local_84;
  int local_7c;
  uint local_68;
  undefined4 local_64;
  undefined4 local_60;
  undefined4 local_5c;
  uint local_3c;
  undefined *local_38;
  undefined4 local_34;
  undefined *local_30;
  undefined *local_2c;
  
  puVar17 = PTR___stack_chk_guard_000afc3c;
  local_7c = param_5;
  local_68 = (uint)param_7;
  local_2c = *(undefined **)PTR___stack_chk_guard_000afc3c;
  local_30 = (undefined *)0x0;
  if (param_6 == (uint *)0x0) {
    param_6 = &local_3c;
    local_3c = 0;
  }
  puVar5 = (undefined *)xstrdup(param_2);
  if (param_4 != (undefined4 *)0x0) {
    *param_4 = 0;
  }
  if (param_3 != (undefined4 *)0x0) {
    *param_3 = 0;
  }
  puVar20 = PTR_s_hallenge__000af46c;
  if (param_5 == 0) {
    local_7c = *(int *)(PTR_opt_000af488 + 0x178);
  }
  local_5c = 0;
  local_60 = 0;
  local_64 = 0;
  bVar3 = false;
  pcVar6 = (code *)(PTR_LAB_000af918 + -0x4774);
  local_84 = 0;
  puVar7 = PTR_s_hallenge__000af46c + 0x77ec;
  puVar8 = PTR_s_hallenge__000af46c + -0x1710;
  puVar13 = param_1;
  cVar4 = '\0';
LAB_0004ce08:
  do {
    local_38 = (undefined *)0x0;
    (*(code *)PTR_free_000afd08)(local_30);
    local_30 = (undefined *)0x0;
    iVar9 = (*pcVar6)(puVar13 + 1,puVar13 + 2);
    puVar19 = PTR_opt_000af488;
    if (iVar9 != 0) {
      iVar10 = iri_new();
      set_uri_encoding(iVar10,*(undefined4 *)(puVar19 + 0x21c),1);
      *(undefined1 *)(iVar10 + 0xc) = 0;
      iVar11 = url_parse(iVar9,&local_34,iVar10,1);
      if (iVar11 == 0) {
        puVar20 = (undefined *)url_error(iVar9,local_34);
        puVar18 = (undefined *)
                  (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7754,5);
        logprintf(1,puVar18,iVar9,puVar20);
        (*(code *)PTR_free_000afd08)(puVar5);
      }
      else {
        if ((*(int *)(iVar11 + 4) == 0) || (*(int *)(iVar11 + 4) == puVar13[1])) {
          iri_free(iVar10);
          (*(code *)PTR_free_000afd08)(iVar9);
          if ((1 < (uint)puVar13[1]) && (*(int *)(iVar11 + 4) != 0)) {
            if (puVar13[1] - 2 < 2) goto LAB_0004d1d0;
            url_free(iVar11);
            goto LAB_0004cef8;
          }
          goto LAB_0004cfbc;
        }
        puVar18 = (undefined *)
                  (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7778,5);
        logprintf(1,puVar18,iVar9);
        url_free(iVar11);
        puVar20 = puVar5;
      }
      (*(code *)PTR_free_000afd08)(puVar20);
      (*(code *)PTR_free_000afd08)(iVar9);
      iri_free(iVar10);
      if (bVar3) {
        iVar9 = 0x29;
        *(undefined4 *)(puVar19 + 0x1f8) = local_64;
        *(undefined4 *)(puVar19 + 0x1fc) = local_5c;
        *(undefined4 *)(puVar19 + 500) = local_60;
      }
      else {
        iVar9 = 0x29;
      }
      goto LAB_0004d368;
    }
    if ((uint)puVar13[1] < 2) {
      iVar11 = 0;
LAB_0004cfbc:
      if (((puVar19[0x22c] != '\0') && (*(int *)PTR_hsts_store_000af570 != 0)) &&
         (iVar9 = hsts_match(*(int *)PTR_hsts_store_000af570,puVar13), iVar9 != 0)) {
        logprintf(0,puVar20 + 0x77a0);
      }
      iVar9 = http_loop(puVar13,param_1,&local_38,&local_30,local_7c,param_6,iVar11,param_8);
LAB_0004d01c:
      if (iVar11 != 0) {
        url_free(iVar11);
      }
      puVar19 = PTR_opt_000af488;
      if ((iVar9 == 6) || (iVar9 == 0x30)) {
        (*(code *)PTR_free_000afd08)(local_30);
        local_30 = (undefined *)0x0;
        puVar18 = local_38;
        if (local_38 == (undefined *)0x0) {
          puVar18 = puVar8;
        }
        puVar18 = (undefined *)uri_merge(puVar5,puVar18);
        (*(code *)PTR_free_000afd08)(local_38);
        iVar10 = *(int *)(puVar19 + 0x218);
        *(undefined *)(param_8 + 0xc) = puVar19[0x216];
        local_38 = puVar18;
        if (iVar10 != 0) {
          set_uri_encoding(param_8,iVar10,1);
        }
        set_content_encoding(param_8,0);
        (*(code *)PTR_free_000afd08)(*(undefined4 *)(param_8 + 8));
        *(undefined4 *)(param_8 + 8) = 0;
        puVar14 = (undefined4 *)url_parse(local_38,&local_34,param_8,1);
        if (puVar14 == (undefined4 *)0x0) {
          uVar15 = url_error(local_38,local_34);
          uVar16 = escnonprint_uri(local_38);
          puVar18 = PTR_s_hallenge__000af46c + 0x776c;
          logprintf(1,puVar18,uVar16,uVar15);
          if (puVar13 != param_1) {
            url_free(puVar13);
          }
          (*(code *)PTR_free_000afd08)(puVar5);
          (*(code *)PTR_free_000afd08)(local_38);
          local_38 = (undefined *)0x0;
          (*(code *)PTR_free_000afd08)(uVar15);
          if (bVar3) {
            *(undefined4 *)(puVar19 + 0x1f8) = local_64;
            *(undefined4 *)(puVar19 + 0x1fc) = local_5c;
            *(undefined4 *)(puVar19 + 500) = local_60;
          }
          goto LAB_0004d368;
        }
        local_84 = local_84 + 1;
        (*(code *)PTR_free_000afd08)(local_38);
        local_38 = (undefined *)0x0;
        local_38 = (undefined *)xstrdup(*puVar14);
        if (*(int *)(puVar19 + 0x18) < local_84) {
          puVar18 = (undefined *)
                    (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x77d0,5);
          logprintf(1,puVar18,*(undefined4 *)(puVar19 + 0x18));
          url_free(puVar14);
          if (puVar13 != param_1) {
            url_free(puVar13);
          }
          (*(code *)PTR_free_000afd08)(puVar5);
          (*(code *)PTR_free_000afd08)(local_38);
          local_38 = (undefined *)0x0;
          if (bVar3) {
            iVar9 = 0x1b;
            *(undefined4 *)(puVar19 + 0x1f8) = local_64;
            *(undefined4 *)(puVar19 + 0x1fc) = local_5c;
            *(undefined4 *)(puVar19 + 500) = local_60;
          }
          else {
            iVar9 = 0x1b;
          }
          goto LAB_0004d368;
        }
        (*(code *)PTR_free_000afd08)(puVar5);
        puVar5 = local_38;
        if (puVar13 != param_1) {
          url_free(puVar13);
        }
        puVar13 = puVar14;
        if ((iVar9 != 0x30) && (!bVar3)) {
          local_64 = *(undefined4 *)(puVar19 + 0x1f8);
          *(undefined4 *)(puVar19 + 0x1f8) = 0;
          local_5c = *(undefined4 *)(puVar19 + 0x1fc);
          *(undefined4 *)(puVar19 + 0x1fc) = 0;
          bVar3 = true;
          local_60 = *(undefined4 *)(puVar19 + 500);
          *(undefined4 *)(puVar19 + 500) = 0;
        }
        goto LAB_0004ce08;
      }
    }
    else {
      if (puVar13[1] - 2 < 2) {
        iVar11 = 0;
LAB_0004d1d0:
        if (local_84 == 0) {
          iVar9 = (*(code *)PTR_ftp_loop_000af968)
                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,
                             PTR_opt_000af488[0xe1]);
        }
        else {
          iVar9 = (*(code *)PTR_ftp_loop_000af968)
                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,0);
          if ((local_30 == (undefined *)0x0) || (1 < puVar13[1] - 2)) {
            local_68 = 0;
          }
          else {
            local_68 = has_html_suffix_p();
            if (local_68 != 0) {
              local_68 = 0;
              *param_6 = *param_6 | 1;
            }
          }
        }
        goto LAB_0004d01c;
      }
LAB_0004cef8:
      iVar9 = 0;
    }
    (*(code *)PTR_free_000afd08)(local_38);
    uVar12 = *param_6 & 2;
    local_38 = (undefined *)0x0;
    if ((uVar12 != 0) || (cVar1 = *(char *)(param_8 + 0xc), cVar1 == '\0')) {
      puVar18 = local_30;
      if ((local_30 == (undefined *)0x0) ||
         (puVar19 = PTR_opt_000af488, puVar13 == (undefined4 *)0x0)) goto LAB_0004d2f8;
      goto LAB_0004d2e0;
    }
    *(undefined1 *)(param_8 + 0xc) = 0;
    if (puVar13 != param_1) {
      url_free(puVar13);
    }
    puVar18 = (undefined *)0x0;
    puVar13 = (undefined4 *)url_parse(param_2,0,param_8,1);
    puVar19 = PTR_opt_000af488;
    if (puVar13 == (undefined4 *)0x0) {
      if (PTR_opt_000af488[0x16b] != '\0') {
        puVar18 = (undefined *)quote(puVar5);
        debug_logprintf(PTR_s_hallenge__000af46c + 0x783c);
      }
      goto LAB_0004d2f8;
    }
    iVar10 = (*(code *)PTR_strcmp_000afacc)(*puVar13,*param_1);
    cVar2 = puVar19[0x16b];
    if (iVar10 == 0) break;
    if (cVar2 != '\0') {
      uVar15 = quote(puVar5);
      debug_logprintf(puVar7,uVar15);
    }
    (*(code *)PTR_free_000afd08)(puVar5);
    puVar5 = (undefined *)xstrdup(*puVar13);
    cVar4 = cVar1;
  } while( true );
  if (cVar2 != '\0') {
    uVar15 = quote(puVar5);
    debug_logprintf(PTR_s_hallenge__000af46c + 0x7814,uVar15);
  }
  puVar18 = local_30;
  if (local_30 != (undefined *)0x0) {
    uVar12 = *param_6 & 2;
LAB_0004d2e0:
    puVar18 = local_30;
    if ((uVar12 != 0) || (puVar19[0x16a] != '\0')) {
      (*(code *)PTR_register_download_000af96c)(*puVar13);
      if ((puVar19[0x48] == '\0') && (local_84 != 0)) {
        puVar20 = (undefined *)*puVar13;
        puVar18 = puVar20;
        iVar10 = (*(code *)PTR_strcmp_000afacc)(param_2);
        if (iVar10 != 0) {
          (*(code *)PTR_register_redirection_000af978)(param_2);
          puVar18 = puVar20;
        }
      }
      uVar12 = *param_6;
      if ((uVar12 & 1) != 0) {
        (*(code *)PTR_register_html_000af974)();
        uVar12 = *param_6;
      }
      if ((uVar12 & 0x40) != 0) {
        (*(code *)PTR_register_css_000af970)();
      }
    }
  }
LAB_0004d2f8:
  if (param_3 == (undefined4 *)0x0) {
    (*(code *)PTR_free_000afd08)();
    local_30 = (undefined *)0x0;
  }
  else {
    *param_3 = local_30;
  }
  if (param_1 != puVar13) {
    url_free(puVar13);
  }
  puVar20 = PTR_free_000afd08;
  if ((local_84 == 0) && (cVar4 == '\0')) {
    if (param_4 != (undefined4 *)0x0) {
      *param_4 = 0;
    }
  }
  else if (param_4 != (undefined4 *)0x0) {
    *param_4 = puVar5;
    goto LAB_0004d33c;
  }
  (*(code *)puVar20)(puVar5);
LAB_0004d33c:
  puVar5 = PTR_opt_000af488;
  if (bVar3) {
    *(undefined4 *)(PTR_opt_000af488 + 0x1f8) = local_64;
    *(undefined4 *)(puVar5 + 0x1fc) = local_5c;
    *(undefined4 *)(puVar5 + 500) = local_60;
  }
LAB_0004d368:
  if (param_9 != '\0') {
    inform_exit_status(iVar9);
  }
  if (local_2c != *(undefined **)puVar17) {
    puVar17 = local_2c;
    puVar5 = PTR___stack_chk_fail_000afbd4;
    (*(code *)PTR___stack_chk_fail_000afbd4)();
    if (puVar17 == puVar18) {
      uVar15 = (**(code **)(puVar5 + 0x62534))(0,*(int *)(puVar5 + 0x61cac) + 0x7864,5);
      iVar9 = logputs(0,uVar15);
      return iVar9;
    }
    uVar15 = (**(code **)(puVar5 + 0x62534))(0,*(int *)(puVar5 + 0x61cac) + 0x7874);
    iVar9 = logputs(0,uVar15);
    return iVar9;
  }
  return iVar9;
}


lui gp,0x7
addiu gp,gp,-0x58d0
addu gp,gp,t9
addiu sp,sp,-0xb0
lw v0,-0x77f4(gp)
lw v1,0xc0(sp)
sw s8,0xa8(sp)
sw v0,0x64(sp)
sw v1,0x34(sp)
lbu v1,0xcb(sp)
lw v0,0x0(v0)
lw s8,0xc4(sp)
sw v1,0x48(sp)
sw gp,0x20(sp)
sw s5,0x9c(sp)
or s5,a0,zero
sw s2,0x90(sp)
sw ra,0xac(sp)
sw s7,0xa4(sp)
sw s6,0xa0(sp)
sw s4,0x98(sp)
sw s3,0x94(sp)
sw s1,0x8c(sp)
sw s0,0x88(sp)
sw a1,0x38(sp)
sw a2,0x58(sp)
sw a3,0x5c(sp)
sw v0,0x84(sp)
sw zero,0x80(sp)
lbu v1,0xd3(sp)
lw s2,0xcc(sp)
beq s8,zero,0x0004d2bc
_sw v1,0x60(sp)
lw t9,-0x7fa4(gp)
bal 0x0006b64c
_lw a0,0x38(sp)
or s4,v0,zero
lw v0,0x5c(sp)
beq v0,zero,0x0004cda4
_lw gp,0x20(sp)
sw zero,0x0(v0)
lw v0,0x58(sp)
beq v0,zero,0x0004cdb4
_nop
sw zero,0x0(v0)
lw v0,0x34(sp)
beq v0,zero,0x0004d2b0
_lw s1,-0x7fa8(gp)
lw v0,-0x7fc4(gp)
or s0,s5,zero
sw zero,0x54(sp)
sw zero,0x50(sp)
sw v0,0x68(sp)
lw v0,-0x7b18(gp)
sw zero,0x4c(sp)
sw zero,0x3c(sp)
addiu v0,v0,-0x4774
sw zero,0x2c(sp)
sw zero,0x44(sp)
sw v0,0x30(sp)
lw v0,-0x7fc4(gp)
addiu v0,v0,0x77ec
sw v0,0x6c(sp)
lw v0,-0x7fc4(gp)
addiu v0,v0,-0x1710
sw v0,0x40(sp)
lw t9,-0x7728(gp)
lw a0,0x80(sp)
jalr t9
_sw zero,0x78(sp)
addiu a1,s0,0x8
lw t9,0x30(sp)
addiu a0,s0,0x4
jalr t9
_sw zero,0x80(sp)
lw gp,0x20(sp)
beq v0,zero,0x0004d1b0
_or s3,v0,zero
lw t9,-0x7ee4(gp)
lw s1,-0x7fa8(gp)
bal 0x0005da08
_nop
li a2,0x1
lw gp,0x20(sp)
or a0,v0,zero
lw a1,0x21c(s1)
lw t9,-0x7ee0(gp)
bal 0x0005dbac
_or s7,v0,zero
li a3,0x1
lw gp,0x20(sp)
addiu a1,sp,0x7c
sb zero,0xc(s7)
or a2,s7,zero
lw t9,-0x7edc(gp)
bal 0x00050f48
_or a0,s3,zero
lw gp,0x20(sp)
beq v0,zero,0x0004d45c
_or s6,v0,zero
lw v0,0x4(v0)
beq v0,zero,0x0004cea8
_lw t9,-0x7ee8(gp)
lw a0,0x4(s0)
bne v0,a0,0x0004d6d8
_lw a1,-0x7fc4(gp)
bal 0x0005db34
_or a0,s7,zero
lw gp,0x20(sp)
lw t9,-0x7728(gp)
jalr t9
_or a0,s3,zero
lw v0,0x4(s0)
sltiu v1,v0,0x2
bne v1,zero,0x0004cfbc
_lw gp,0x20(sp)
lw v1,0x4(s6)
beq v1,zero,0x0004cfbc
_addiu v0,v0,-0x2
sltiu v0,v0,0x2
bne v0,zero,0x0004d1d0
_lw t9,-0x7eec(gp)
bal 0x0004f9cc
_or a0,s6,zero
lw gp,0x20(sp)
or s3,zero,zero
lw t9,-0x7728(gp)
jalr t9
_lw a0,0x78(sp)
lw v0,0x0(s8)
lw gp,0x20(sp)
andi v0,v0,0x2
bne v0,zero,0x0004d2c8
_sw zero,0x78(sp)
lbu s6,0xc(s2)
beq s6,zero,0x0004d2cc
_lw a1,0x80(sp)
beq s0,s5,0x0004cf3c
_sb zero,0xc(s2)
lw t9,-0x7eec(gp)
bal 0x0004f9cc
_or a0,s0,zero
lw gp,0x20(sp)
lw t9,-0x7edc(gp)
li a3,0x1
lw a0,0x38(sp)
or a1,zero,zero
bal 0x00050f48
_or a2,s2,zero
lw gp,0x20(sp)
beq v0,zero,0x0004d658
_or s0,v0,zero
lw t9,-0x7964(gp)
lw s1,-0x7fa8(gp)
lw a1,0x0(s5)
jalr t9
_lw a0,0x0(v0)
lw gp,0x20(sp)
beq v0,zero,0x0004d698
_lbu v1,0x16b(s1)
bne v1,zero,0x0004d28c
_lw t9,-0x7ea0(gp)
lw t9,-0x7728(gp)
jalr t9
_or a0,s4,zero
lw gp,0x20(sp)
lw t9,-0x7fa4(gp)
bal 0x0006b64c
_lw a0,0x0(s0)
lw gp,0x20(sp)
or s4,v0,zero
b 0x0004ce08
_sw s6,0x44(sp)
lw s1,-0x7fa8(gp)
or s6,zero,zero
lbu v0,0x22c(s1)
beq v0,zero,0x0004cfec
_lw v0,0x34(sp)
lw v0,-0x7ec0(gp)
lw a0,0x0(v0)
beq a0,zero,0x0004cfe8
_lw t9,-0x7ad0(gp)
bal 0x00030c14
_or a1,s0,zero
bne v0,zero,0x0004d270
_lw gp,0x20(sp)
lw v0,0x34(sp)
addiu a3,sp,0x80
lw t9,-0x7acc(gp)
addiu a2,sp,0x78
sw s2,0x1c(sp)
or a1,s5,zero
sw s6,0x18(sp)
or a0,s0,zero
sw s8,0x14(sp)
bal 0x0003d274
_sw v0,0x10(sp)
lw gp,0x20(sp)
or s3,v0,zero
beq s6,zero,0x0004d030
_lw t9,-0x7eec(gp)
bal 0x0004f9cc
_or a0,s6,zero
lw gp,0x20(sp)
li v0,0x6
beq s3,v0,0x0004d044
_li v0,0x30
bne s3,v0,0x0004cefc
_lw t9,-0x7728(gp)
lw t9,-0x7728(gp)
lw s1,-0x7fa8(gp)
jalr t9
_lw a0,0x80(sp)
or a0,s4,zero
lw gp,0x20(sp)
lw a1,0x78(sp)
lw v0,0x40(sp)
sw zero,0x80(sp)
lw t9,-0x7dc0(gp)
bal 0x00050524
_movz a1,v0,a1
lw gp,0x20(sp)
or s6,v0,zero
lw t9,-0x7728(gp)
jalr t9
_lw a0,0x78(sp)
lbu v1,0x216(s1)
lw a1,0x218(s1)
lw gp,0x20(sp)
sw s6,0x78(sp)
beq a1,zero,0x0004d0b4
_sb v1,0xc(s2)
lw t9,-0x7ee0(gp)
li a2,0x1
bal 0x0005dbac
_or a0,s2,zero
lw gp,0x20(sp)
lw t9,-0x7c00(gp)
or a1,zero,zero
bal 0x0005dcc8
_or a0,s2,zero
lw gp,0x20(sp)
lw t9,-0x7728(gp)
jalr t9
_lw a0,0x8(s2)
li a3,0x1
lw gp,0x20(sp)
addiu a1,sp,0x7c
lw a0,0x78(sp)
or a2,s2,zero
lw t9,-0x7edc(gp)
bal 0x00050f48
_sw zero,0x8(s2)
lw gp,0x20(sp)
beq v0,zero,0x0004d500
_or s6,v0,zero
lw v0,0x2c(sp)
lw t9,-0x7728(gp)
lw a0,0x78(sp)
addiu s7,v0,0x1
jalr t9
_sw s7,0x2c(sp)
lw gp,0x20(sp)
lw a0,0x0(s6)
lw t9,-0x7fa4(gp)
bal 0x0006b64c
_sw zero,0x78(sp)
lw v1,0x18(s1)
lw gp,0x20(sp)
slt v1,v1,s7
bne v1,zero,0x0004d5b4
_sw v0,0x78(sp)
lw t9,-0x7728(gp)
jalr t9
_or a0,s4,zero
lw gp,0x20(sp)
beq s0,s5,0x0004d168
_lw s4,0x78(sp)
lw t9,-0x7eec(gp)
bal 0x0004f9cc
_or a0,s0,zero
lw gp,0x20(sp)
li v0,0x30
beq s3,v0,0x0004d230
_lw v0,0x3c(sp)
bne v0,zero,0x0004d230
_nop
lw v0,0x1f8(s1)
or s0,s6,zero
sw zero,0x1f8(s1)
sw v0,0x4c(sp)
lw v0,0x1fc(s1)
sw zero,0x1fc(s1)
sw v0,0x54(sp)
li v0,0x1
sw v0,0x3c(sp)
lw v0,0x1f4(s1)
sw zero,0x1f4(s1)
b 0x0004ce08
_sw v0,0x50(sp)
lw v0,0x4(s0)
sltiu v1,v0,0x2
bne v1,zero,0x0004cfb4
_addiu v0,v0,-0x2
sltiu v0,v0,0x2
beq v0,zero,0x0004cef8
_or s3,zero,zero
or s6,zero,zero
lw v0,0x2c(sp)
beq v0,zero,0x0004d238
_lw s1,-0x7fa8(gp)
lw v0,0x48(sp)
addiu a2,sp,0x80
lw t9,-0x7ac8(gp)
or a0,s0,zero
sw zero,0x18(sp)
or a3,s8,zero
sw v0,0x14(sp)
or a1,s5,zero
jalr t9
_sw s6,0x10(sp)
lw a0,0x80(sp)
or s3,v0,zero
beq a0,zero,0x0004d228
_lw gp,0x20(sp)
lw v0,0x4(s0)
addiu v0,v0,-0x2
sltiu v0,v0,0x2
bne v0,zero,0x0004d3c4
_lw t9,-0x7b88(gp)
b 0x0004d01c
_sw zero,0x48(sp)
b 0x0004ce08
_or s0,s6,zero
addiu a2,sp,0x80
lw v0,0x48(sp)
or a3,s8,zero
lw t9,-0x7ac8(gp)
or a1,s5,zero
sw s6,0x10(sp)
or a0,s0,zero
sw v0,0x14(sp)
lbu v0,0xe1(s1)
jalr t9
_sw v0,0x18(sp)
lw gp,0x20(sp)
b 0x0004d01c
_or s3,v0,zero
lw v0,0x68(sp)
or a0,zero,zero
lw t9,-0x7ef0(gp)
bal 0x000435b8
_addiu a1,v0,0x77a0
b 0x0004cfe8
_lw gp,0x20(sp)
bal 0x0006afa0
_or a0,s4,zero
lw gp,0x20(sp)
or a1,v0,zero
lw t9,-0x7ef4(gp)
bal 0x00043764
_lw a0,0x6c(sp)
b 0x0004cf88
_lw gp,0x20(sp)
lw v0,0x178(s1)
b 0x0004cdc0
_sw v0,0x34(sp)
addiu s8,sp,0x74
b 0x0004cd84
_sw zero,0x74(sp)
lw a1,0x80(sp)
beq a1,zero,0x0004d2f4
_or a0,a1,zero
beq s0,zero,0x0004d2f4
_nop
lw s1,-0x7fa8(gp)
bne v0,zero,0x0004d408
_lw t9,-0x7ac4(gp)
lbu v0,0x16a(s1)
bne v0,zero,0x0004d408
_or a0,a1,zero
lw v0,0x58(sp)
beq v0,zero,0x0004d720
_nop
sw a0,0x0(v0)
beq s5,s0,0x0004d318
_lw t9,-0x7eec(gp)
bal 0x0004f9cc
_or a0,s0,zero
lw gp,0x20(sp)
lw v0,0x2c(sp)
bne v0,zero,0x0004d330
_lw v0,0x5c(sp)
lw v0,0x44(sp)
beq v0,zero,0x0004d3ec
_lw v0,0x5c(sp)
beq v0,zero,0x0004d3f8
_lw t9,-0x7728(gp)
sw s4,0x0(v0)
lw v0,0x3c(sp)
beq v0,zero,0x0004d368
_lw v0,0x60(sp)
lw v0,-0x7fa8(gp)
lw v1,0x4c(sp)
sw v1,0x1f8(v0)
lw v1,0x54(sp)
sw v1,0x1fc(v0)
lw v1,0x50(sp)
sw v1,0x1f4(v0)
lw v0,0x60(sp)
bne v0,zero,0x0004d3b4
_lw t9,-0x7ecc(gp)
lw v1,0x64(sp)
or v0,s3,zero
lw a0,0x84(sp)
lw v1,0x0(v1)
bne a0,v1,0x0004d7b4
_lw ra,0xac(sp)
lw s8,0xa8(sp)
lw s7,0xa4(sp)
lw s6,0xa0(sp)
lw s5,0x9c(sp)
lw s4,0x98(sp)
lw s3,0x94(sp)
lw s2,0x90(sp)
lw s1,0x8c(sp)
lw s0,0x88(sp)
jr ra
_addiu sp,sp,0xb0
bal 0x0005ce10
_or a0,s3,zero
b 0x0004d370
_lw gp,0x20(sp)
bal 0x00056cec
_nop
lw gp,0x20(sp)
beq v0,zero,0x0004d01c
_sw v0,0x48(sp)
lw v0,0x0(s8)
sw zero,0x48(sp)
ori v0,v0,0x1
b 0x0004d01c
_sw v0,0x0(s8)
beq v0,zero,0x0004d3f8
_lw t9,-0x7728(gp)
sw zero,0x0(v0)
jalr t9
_or a0,s4,zero
b 0x0004d33c
_lw gp,0x20(sp)
jalr t9
_lw a0,0x0(s0)
lbu v0,0x48(s1)
bne v0,zero,0x0004d428
_lw gp,0x20(sp)
lw v0,0x2c(sp)
bne v0,zero,0x0004d75c
_lw t9,-0x7964(gp)
lw v0,0x0(s8)
andi v1,v0,0x1
bne v1,zero,0x0004d740
_lw a0,0x80(sp)
andi v0,v0,0x40
beq v0,zero,0x0004d2f8
_lw v0,0x58(sp)
lw t9,-0x7ac0(gp)
jalr t9
_nop
lw gp,0x20(sp)
b 0x0004d2f4
_lw a0,0x80(sp)
lw t9,-0x7ed0(gp)
or a0,s3,zero
bal 0x0004f804
_lw a1,0x7c(sp)
li a2,0x5
lw gp,0x20(sp)
or a0,zero,zero
or s0,v0,zero
lw a1,-0x7fc4(gp)
lw t9,-0x773c(gp)
jalr t9
_addiu a1,a1,0x7754
li a0,0x1
lw gp,0x20(sp)
or a3,s0,zero
or a2,s3,zero
lw t9,-0x7ef0(gp)
bal 0x000435b8
_or a1,v0,zero
lw gp,0x20(sp)
lw t9,-0x7728(gp)
jalr t9
_or a0,s4,zero
or a0,s0,zero
lw gp,0x20(sp)
lw t9,-0x7728(gp)
jalr t9
_nop
lw gp,0x20(sp)
lw t9,-0x7728(gp)
jalr t9
_or a0,s3,zero
lw gp,0x20(sp)
lw t9,-0x7ee8(gp)
bal 0x0005db34
_or a0,s7,zero
lw v0,0x3c(sp)
bne v0,zero,0x0004d6b8
_lw gp,0x20(sp)
b 0x0004d364
_li s3,0x29
lw t9,-0x7ed0(gp)
lw a1,0x7c(sp)
bal 0x0004f804
_lw a0,0x78(sp)
lw gp,0x20(sp)
or s2,v0,zero
lw t9,-0x7e4c(gp)
bal 0x00043ae4
_lw a0,0x78(sp)
li a0,0x1
lw gp,0x20(sp)
or a3,s2,zero
or a2,v0,zero
lw a1,-0x7fc4(gp)
lw t9,-0x7ef0(gp)
bal 0x000435b8
_addiu a1,a1,0x776c
beq s0,s5,0x0004d55c
_lw gp,0x20(sp)
lw t9,-0x7eec(gp)
bal 0x0004f9cc
_or a0,s0,zero
lw gp,0x20(sp)
lw t9,-0x7728(gp)
jalr t9
_or a0,s4,zero
lw gp,0x20(sp)
lw t9,-0x7728(gp)
jalr t9
_lw a0,0x78(sp)
or a0,s2,zero
lw gp,0x20(sp)
lw t9,-0x7728(gp)
jalr t9
_sw zero,0x78(sp)
lw v0,0x3c(sp)
beq v0,zero,0x0004d364
_lw gp,0x20(sp)
lw v0,0x4c(sp)
sw v0,0x1f8(s1)
lw v0,0x54(sp)
sw v0,0x1fc(s1)
lw v0,0x50(sp)
b 0x0004d364
_sw v0,0x1f4(s1)
lw a1,-0x7fc4(gp)
li a2,0x5
lw t9,-0x773c(gp)
or a0,zero,zero
jalr t9
_addiu a1,a1,0x77d0
li a0,0x1
lw gp,0x20(sp)
or a1,v0,zero
lw t9,-0x7ef0(gp)
bal 0x000435b8
_lw a2,0x18(s1)
lw gp,0x20(sp)
lw t9,-0x7eec(gp)
bal 0x0004f9cc
_or a0,s6,zero
beq s0,s5,0x0004d60c
_lw gp,0x20(sp)
lw t9,-0x7eec(gp)
bal 0x0004f9cc
_or a0,s0,zero
lw gp,0x20(sp)
lw t9,-0x7728(gp)
jalr t9
_or a0,s4,zero
lw gp,0x20(sp)
lw t9,-0x7728(gp)
jalr t9
_lw a0,0x78(sp)
lw v0,0x3c(sp)
lw gp,0x20(sp)
beq v0,zero,0x0004d738
_sw zero,0x78(sp)
lw v0,0x4c(sp)
li s3,0x1b
sw v0,0x1f8(s1)
lw v0,0x54(sp)
sw v0,0x1fc(s1)
lw v0,0x50(sp)
b 0x0004d364
_sw v0,0x1f4(s1)
lw v0,-0x7fa8(gp)
lbu v0,0x16b(v0)
beq v0,zero,0x0004d454
_nop
lw t9,-0x7ea0(gp)
bal 0x0006afa0
_or a0,s4,zero
lw gp,0x20(sp)
or a1,v0,zero
lw a0,-0x7fc4(gp)
lw t9,-0x7ef4(gp)
bal 0x00043764
_addiu a0,a0,0x783c
lw gp,0x20(sp)
b 0x0004d2f4
_lw a0,0x80(sp)
bne v1,zero,0x0004d78c
_lw t9,-0x7ea0(gp)
lw a1,0x80(sp)
beq a1,zero,0x0004d2f4
_or a0,a1,zero
lw v0,0x0(s8)
b 0x0004d2e0
_andi v0,v0,0x2
lw v0,0x4c(sp)
li s3,0x29
sw v0,0x1f8(s1)
lw v0,0x54(sp)
sw v0,0x1fc(s1)
lw v0,0x50(sp)
b 0x0004d364
_sw v0,0x1f4(s1)
li a2,0x5
lw t9,-0x773c(gp)
or a0,zero,zero
jalr t9
_addiu a1,a1,0x7778
li a0,0x1
lw gp,0x20(sp)
or a2,s3,zero
lw t9,-0x7ef0(gp)
bal 0x000435b8
_or a1,v0,zero
lw gp,0x20(sp)
lw t9,-0x7eec(gp)
bal 0x0004f9cc
_or a0,s6,zero
or a0,s4,zero
b 0x0004d4c0
_lw gp,0x20(sp)
lw t9,-0x7728(gp)
jalr t9
_nop
lw gp,0x20(sp)
b 0x0004d304
_sw zero,0x80(sp)
b 0x0004d364
_li s3,0x1b
lw t9,-0x7abc(gp)
jalr t9
_nop
lw gp,0x20(sp)
lw v0,0x0(s8)
b 0x0004d438
_lw a0,0x80(sp)
lw s1,0x0(s0)
lw a0,0x38(sp)
jalr t9
_or a1,s1,zero
beq v0,zero,0x0004d428
_lw gp,0x20(sp)
lw t9,-0x7ab8(gp)
or a1,s1,zero
jalr t9
_lw a0,0x38(sp)
b 0x0004d428
_lw gp,0x20(sp)
bal 0x0006afa0
_or a0,s4,zero
lw gp,0x20(sp)
or a1,v0,zero
lw a0,-0x7fc4(gp)
lw t9,-0x7ef4(gp)
bal 0x00043764
_addiu a0,a0,0x7814
b 0x0004d6a0
_lw gp,0x20(sp)
lw t9,-0x785c(gp)
jalr t9
_nop
(translation_unit "int retrieve_url(undefined4 *param_1,undefined4 param_2,undefined4 *param_3,undefined4 *param_4,\n                int param_5,uint *param_6,byte param_7,int param_8,char param_9)\n\n{\n  char cVar1;\n  char cVar2;\n  bool bVar3;\n  char cVar4;\n  undefined *puVar5;\n  code *pcVar6;\n  undefined *puVar7;\n  undefined *puVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  uint uVar12;\n  undefined4 *puVar13;\n  undefined4 *puVar14;\n  undefined4 uVar15;\n  undefined4 uVar16;\n  undefined *puVar17;\n  undefined *puVar18;\n  undefined *puVar19;\n  undefined *puVar20;\n  int local_84;\n  int local_7c;\n  uint local_68;\n  undefined4 local_64;\n  undefined4 local_60;\n  undefined4 local_5c;\n  uint local_3c;\n  undefined *local_38;\n  undefined4 local_34;\n  undefined *local_30;\n  undefined *local_2c;\n  \n  puVar17 = PTR___stack_chk_guard_000afc3c;\n  local_7c = param_5;\n  local_68 = (uint)param_7;\n  local_2c = *(undefined **)PTR___stack_chk_guard_000afc3c;\n  local_30 = (undefined *)0x0;\n  if (param_6 == (uint *)0x0) {\n    param_6 = &local_3c;\n    local_3c = 0;\n  }\n  puVar5 = (undefined *)xstrdup(param_2);\n  if (param_4 != (undefined4 *)0x0) {\n    *param_4 = 0;\n  }\n  if (param_3 != (undefined4 *)0x0) {\n    *param_3 = 0;\n  }\n  puVar20 = PTR_s_hallenge__000af46c;\n  if (param_5 == 0) {\n    local_7c = *(int *)(PTR_opt_000af488 + 0x178);\n  }\n  local_5c = 0;\n  local_60 = 0;\n  local_64 = 0;\n  bVar3 = false;\n  pcVar6 = (code *)(PTR_LAB_000af918 + -0x4774);\n  local_84 = 0;\n  puVar7 = PTR_s_hallenge__000af46c + 0x77ec;\n  puVar8 = PTR_s_hallenge__000af46c + -0x1710;\n  puVar13 = param_1;\n  cVar4 = '\0';\nLAB_0004ce08:\n  do {\n    local_38 = (undefined *)0x0;\n    (*(code *)PTR_free_000afd08)(local_30);\n    local_30 = (undefined *)0x0;\n    iVar9 = (*pcVar6)(puVar13 + 1,puVar13 + 2);\n    puVar19 = PTR_opt_000af488;\n    if (iVar9 != 0) {\n      iVar10 = iri_new();\n      set_uri_encoding(iVar10,*(undefined4 *)(puVar19 + 0x21c),1);\n      *(undefined1 *)(iVar10 + 0xc) = 0;\n      iVar11 = url_parse(iVar9,&local_34,iVar10,1);\n      if (iVar11 == 0) {\n        puVar20 = (undefined *)url_error(iVar9,local_34);\n        puVar18 = (undefined *)\n                  (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7754,5);\n        logprintf(1,puVar18,iVar9,puVar20);\n        (*(code *)PTR_free_000afd08)(puVar5);\n      }\n      else {\n        if ((*(int *)(iVar11 + 4) == 0) || (*(int *)(iVar11 + 4) == puVar13[1])) {\n          iri_free(iVar10);\n          (*(code *)PTR_free_000afd08)(iVar9);\n          if ((1 < (uint)puVar13[1]) && (*(int *)(iVar11 + 4) != 0)) {\n            if (puVar13[1] - 2 < 2) goto LAB_0004d1d0;\n            url_free(iVar11);\n            goto LAB_0004cef8;\n          }\n          goto LAB_0004cfbc;\n        }\n        puVar18 = (undefined *)\n                  (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7778,5);\n        logprintf(1,puVar18,iVar9);\n        url_free(iVar11);\n        puVar20 = puVar5;\n      }\n      (*(code *)PTR_free_000afd08)(puVar20);\n      (*(code *)PTR_free_000afd08)(iVar9);\n      iri_free(iVar10);\n      if (bVar3) {\n        iVar9 = 0x29;\n        *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n        *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n        *(undefined4 *)(puVar19 + 500) = local_60;\n      }\n      else {\n        iVar9 = 0x29;\n      }\n      goto LAB_0004d368;\n    }\n    if ((uint)puVar13[1] < 2) {\n      iVar11 = 0;\nLAB_0004cfbc:\n      if (((puVar19[0x22c] != '\0') && (*(int *)PTR_hsts_store_000af570 != 0)) &&\n         (iVar9 = hsts_match(*(int *)PTR_hsts_store_000af570,puVar13), iVar9 != 0)) {\n        logprintf(0,puVar20 + 0x77a0);\n      }\n      iVar9 = http_loop(puVar13,param_1,&local_38,&local_30,local_7c,param_6,iVar11,param_8);\nLAB_0004d01c:\n      if (iVar11 != 0) {\n        url_free(iVar11);\n      }\n      puVar19 = PTR_opt_000af488;\n      if ((iVar9 == 6) || (iVar9 == 0x30)) {\n        (*(code *)PTR_free_000afd08)(local_30);\n        local_30 = (undefined *)0x0;\n        puVar18 = local_38;\n        if (local_38 == (undefined *)0x0) {\n          puVar18 = puVar8;\n        }\n        puVar18 = (undefined *)uri_merge(puVar5,puVar18);\n        (*(code *)PTR_free_000afd08)(local_38);\n        iVar10 = *(int *)(puVar19 + 0x218);\n        *(undefined *)(param_8 + 0xc) = puVar19[0x216];\n        local_38 = puVar18;\n        if (iVar10 != 0) {\n          set_uri_encoding(param_8,iVar10,1);\n        }\n        set_content_encoding(param_8,0);\n        (*(code *)PTR_free_000afd08)(*(undefined4 *)(param_8 + 8));\n        *(undefined4 *)(param_8 + 8) = 0;\n        puVar14 = (undefined4 *)url_parse(local_38,&local_34,param_8,1);\n        if (puVar14 == (undefined4 *)0x0) {\n          uVar15 = url_error(local_38,local_34);\n          uVar16 = escnonprint_uri(local_38);\n          puVar18 = PTR_s_hallenge__000af46c + 0x776c;\n          logprintf(1,puVar18,uVar16,uVar15);\n          if (puVar13 != param_1) {\n            url_free(puVar13);\n          }\n          (*(code *)PTR_free_000afd08)(puVar5);\n          (*(code *)PTR_free_000afd08)(local_38);\n          local_38 = (undefined *)0x0;\n          (*(code *)PTR_free_000afd08)(uVar15);\n          if (bVar3) {\n            *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n            *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n            *(undefined4 *)(puVar19 + 500) = local_60;\n          }\n          goto LAB_0004d368;\n        }\n        local_84 = local_84 + 1;\n        (*(code *)PTR_free_000afd08)(local_38);\n        local_38 = (undefined *)0x0;\n        local_38 = (undefined *)xstrdup(*puVar14);\n        if (*(int *)(puVar19 + 0x18) < local_84) {\n          puVar18 = (undefined *)\n                    (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x77d0,5);\n          logprintf(1,puVar18,*(undefined4 *)(puVar19 + 0x18));\n          url_free(puVar14);\n          if (puVar13 != param_1) {\n            url_free(puVar13);\n          }\n          (*(code *)PTR_free_000afd08)(puVar5);\n          (*(code *)PTR_free_000afd08)(local_38);\n          local_38 = (undefined *)0x0;\n          if (bVar3) {\n            iVar9 = 0x1b;\n            *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n            *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n            *(undefined4 *)(puVar19 + 500) = local_60;\n          }\n          else {\n            iVar9 = 0x1b;\n          }\n          goto LAB_0004d368;\n        }\n        (*(code *)PTR_free_000afd08)(puVar5);\n        puVar5 = local_38;\n        if (puVar13 != param_1) {\n          url_free(puVar13);\n        }\n        puVar13 = puVar14;\n        if ((iVar9 != 0x30) && (!bVar3)) {\n          local_64 = *(undefined4 *)(puVar19 + 0x1f8);\n          *(undefined4 *)(puVar19 + 0x1f8) = 0;\n          local_5c = *(undefined4 *)(puVar19 + 0x1fc);\n          *(undefined4 *)(puVar19 + 0x1fc) = 0;\n          bVar3 = true;\n          local_60 = *(undefined4 *)(puVar19 + 500);\n          *(undefined4 *)(puVar19 + 500) = 0;\n        }\n        goto LAB_0004ce08;\n      }\n    }\n    else {\n      if (puVar13[1] - 2 < 2) {\n        iVar11 = 0;\nLAB_0004d1d0:\n        if (local_84 == 0) {\n          iVar9 = (*(code *)PTR_ftp_loop_000af968)\n                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,\n                             PTR_opt_000af488[0xe1]);\n        }\n        else {\n          iVar9 = (*(code *)PTR_ftp_loop_000af968)\n                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,0);\n          if ((local_30 == (undefined *)0x0) || (1 < puVar13[1] - 2)) {\n            local_68 = 0;\n          }\n          else {\n            local_68 = has_html_suffix_p();\n            if (local_68 != 0) {\n              local_68 = 0;\n              *param_6 = *param_6 | 1;\n            }\n          }\n        }\n        goto LAB_0004d01c;\n      }\nLAB_0004cef8:\n      iVar9 = 0;\n    }\n    (*(code *)PTR_free_000afd08)(local_38);\n    uVar12 = *param_6 & 2;\n    local_38 = (undefined *)0x0;\n    if ((uVar12 != 0) || (cVar1 = *(char *)(param_8 + 0xc), cVar1 == '\0')) {\n      puVar18 = local_30;\n      if ((local_30 == (undefined *)0x0) ||\n         (puVar19 = PTR_opt_000af488, puVar13 == (undefined4 *)0x0)) goto LAB_0004d2f8;\n      goto LAB_0004d2e0;\n    }\n    *(undefined1 *)(param_8 + 0xc) = 0;\n    if (puVar13 != param_1) {\n      url_free(puVar13);\n    }\n    puVar18 = (undefined *)0x0;\n    puVar13 = (undefined4 *)url_parse(param_2,0,param_8,1);\n    puVar19 = PTR_opt_000af488;\n    if (puVar13 == (undefined4 *)0x0) {\n      if (PTR_opt_000af488[0x16b] != '\0') {\n        puVar18 = (undefined *)quote(puVar5);\n        debug_logprintf(PTR_s_hallenge__000af46c + 0x783c);\n      }\n      goto LAB_0004d2f8;\n    }\n    iVar10 = (*(code *)PTR_strcmp_000afacc)(*puVar13,*param_1);\n    cVar2 = puVar19[0x16b];\n    if (iVar10 == 0) break;\n    if (cVar2 != '\0') {\n      uVar15 = quote(puVar5);\n      debug_logprintf(puVar7,uVar15);\n    }\n    (*(code *)PTR_free_000afd08)(puVar5);\n    puVar5 = (undefined *)xstrdup(*puVar13);\n    cVar4 = cVar1;\n  } while( true );\n  if (cVar2 != '\0') {\n    uVar15 = quote(puVar5);\n    debug_logprintf(PTR_s_hallenge__000af46c + 0x7814,uVar15);\n  }\n  puVar18 = local_30;\n  if (local_30 != (undefined *)0x0) {\n    uVar12 = *param_6 & 2;\nLAB_0004d2e0:\n    puVar18 = local_30;\n    if ((uVar12 != 0) || (puVar19[0x16a] != '\0')) {\n      (*(code *)PTR_register_download_000af96c)(*puVar13);\n      if ((puVar19[0x48] == '\0') && (local_84 != 0)) {\n        puVar20 = (undefined *)*puVar13;\n        puVar18 = puVar20;\n        iVar10 = (*(code *)PTR_strcmp_000afacc)(param_2);\n        if (iVar10 != 0) {\n          (*(code *)PTR_register_redirection_000af978)(param_2);\n          puVar18 = puVar20;\n        }\n      }\n      uVar12 = *param_6;\n      if ((uVar12 & 1) != 0) {\n        (*(code *)PTR_register_html_000af974)();\n        uVar12 = *param_6;\n      }\n      if ((uVar12 & 0x40) != 0) {\n        (*(code *)PTR_register_css_000af970)();\n      }\n    }\n  }\nLAB_0004d2f8:\n  if (param_3 == (undefined4 *)0x0) {\n    (*(code *)PTR_free_000afd08)();\n    local_30 = (undefined *)0x0;\n  }\n  else {\n    *param_3 = local_30;\n  }\n  if (param_1 != puVar13) {\n    url_free(puVar13);\n  }\n  puVar20 = PTR_free_000afd08;\n  if ((local_84 == 0) && (cVar4 == '\0')) {\n    if (param_4 != (undefined4 *)0x0) {\n      *param_4 = 0;\n    }\n  }\n  else if (param_4 != (undefined4 *)0x0) {\n    *param_4 = puVar5;\n    goto LAB_0004d33c;\n  }\n  (*(code *)puVar20)(puVar5);\nLAB_0004d33c:\n  puVar5 = PTR_opt_000af488;\n  if (bVar3) {\n    *(undefined4 *)(PTR_opt_000af488 + 0x1f8) = local_64;\n    *(undefined4 *)(puVar5 + 0x1fc) = local_5c;\n    *(undefined4 *)(puVar5 + 500) = local_60;\n  }\nLAB_0004d368:\n  if (param_9 != '\0') {\n    inform_exit_status(iVar9);\n  }\n  if (local_2c != *(undefined **)puVar17) {\n    puVar17 = local_2c;\n    puVar5 = PTR___stack_chk_fail_000afbd4;\n    (*(code *)PTR___stack_chk_fail_000afbd4)();\n    if (puVar17 == puVar18) {\n      uVar15 = (**(code **)(puVar5 + 0x62534))(0,*(int *)(puVar5 + 0x61cac) + 0x7864,5);\n      iVar9 = logputs(0,uVar15);\n      return iVar9;\n    }\n    uVar15 = (**(code **)(puVar5 + 0x62534))(0,*(int *)(puVar5 + 0x61cac) + 0x7874);\n    iVar9 = logputs(0,uVar15);\n    return iVar9;\n  }\n  return iVar9;\n}\n\n" (function_definition "int retrieve_url(undefined4 *param_1,undefined4 param_2,undefined4 *param_3,undefined4 *param_4,\n                int param_5,uint *param_6,byte param_7,int param_8,char param_9)\n\n{\n  char cVar1;\n  char cVar2;\n  bool bVar3;\n  char cVar4;\n  undefined *puVar5;\n  code *pcVar6;\n  undefined *puVar7;\n  undefined *puVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  uint uVar12;\n  undefined4 *puVar13;\n  undefined4 *puVar14;\n  undefined4 uVar15;\n  undefined4 uVar16;\n  undefined *puVar17;\n  undefined *puVar18;\n  undefined *puVar19;\n  undefined *puVar20;\n  int local_84;\n  int local_7c;\n  uint local_68;\n  undefined4 local_64;\n  undefined4 local_60;\n  undefined4 local_5c;\n  uint local_3c;\n  undefined *local_38;\n  undefined4 local_34;\n  undefined *local_30;\n  undefined *local_2c;\n  \n  puVar17 = PTR___stack_chk_guard_000afc3c;\n  local_7c = param_5;\n  local_68 = (uint)param_7;\n  local_2c = *(undefined **)PTR___stack_chk_guard_000afc3c;\n  local_30 = (undefined *)0x0;\n  if (param_6 == (uint *)0x0) {\n    param_6 = &local_3c;\n    local_3c = 0;\n  }\n  puVar5 = (undefined *)xstrdup(param_2);\n  if (param_4 != (undefined4 *)0x0) {\n    *param_4 = 0;\n  }\n  if (param_3 != (undefined4 *)0x0) {\n    *param_3 = 0;\n  }\n  puVar20 = PTR_s_hallenge__000af46c;\n  if (param_5 == 0) {\n    local_7c = *(int *)(PTR_opt_000af488 + 0x178);\n  }\n  local_5c = 0;\n  local_60 = 0;\n  local_64 = 0;\n  bVar3 = false;\n  pcVar6 = (code *)(PTR_LAB_000af918 + -0x4774);\n  local_84 = 0;\n  puVar7 = PTR_s_hallenge__000af46c + 0x77ec;\n  puVar8 = PTR_s_hallenge__000af46c + -0x1710;\n  puVar13 = param_1;\n  cVar4 = '\0';\nLAB_0004ce08:\n  do {\n    local_38 = (undefined *)0x0;\n    (*(code *)PTR_free_000afd08)(local_30);\n    local_30 = (undefined *)0x0;\n    iVar9 = (*pcVar6)(puVar13 + 1,puVar13 + 2);\n    puVar19 = PTR_opt_000af488;\n    if (iVar9 != 0) {\n      iVar10 = iri_new();\n      set_uri_encoding(iVar10,*(undefined4 *)(puVar19 + 0x21c),1);\n      *(undefined1 *)(iVar10 + 0xc) = 0;\n      iVar11 = url_parse(iVar9,&local_34,iVar10,1);\n      if (iVar11 == 0) {\n        puVar20 = (undefined *)url_error(iVar9,local_34);\n        puVar18 = (undefined *)\n                  (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7754,5);\n        logprintf(1,puVar18,iVar9,puVar20);\n        (*(code *)PTR_free_000afd08)(puVar5);\n      }\n      else {\n        if ((*(int *)(iVar11 + 4) == 0) || (*(int *)(iVar11 + 4) == puVar13[1])) {\n          iri_free(iVar10);\n          (*(code *)PTR_free_000afd08)(iVar9);\n          if ((1 < (uint)puVar13[1]) && (*(int *)(iVar11 + 4) != 0)) {\n            if (puVar13[1] - 2 < 2) goto LAB_0004d1d0;\n            url_free(iVar11);\n            goto LAB_0004cef8;\n          }\n          goto LAB_0004cfbc;\n        }\n        puVar18 = (undefined *)\n                  (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7778,5);\n        logprintf(1,puVar18,iVar9);\n        url_free(iVar11);\n        puVar20 = puVar5;\n      }\n      (*(code *)PTR_free_000afd08)(puVar20);\n      (*(code *)PTR_free_000afd08)(iVar9);\n      iri_free(iVar10);\n      if (bVar3) {\n        iVar9 = 0x29;\n        *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n        *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n        *(undefined4 *)(puVar19 + 500) = local_60;\n      }\n      else {\n        iVar9 = 0x29;\n      }\n      goto LAB_0004d368;\n    }\n    if ((uint)puVar13[1] < 2) {\n      iVar11 = 0;\nLAB_0004cfbc:\n      if (((puVar19[0x22c] != '\0') && (*(int *)PTR_hsts_store_000af570 != 0)) &&\n         (iVar9 = hsts_match(*(int *)PTR_hsts_store_000af570,puVar13), iVar9 != 0)) {\n        logprintf(0,puVar20 + 0x77a0);\n      }\n      iVar9 = http_loop(puVar13,param_1,&local_38,&local_30,local_7c,param_6,iVar11,param_8);\nLAB_0004d01c:\n      if (iVar11 != 0) {\n        url_free(iVar11);\n      }\n      puVar19 = PTR_opt_000af488;\n      if ((iVar9 == 6) || (iVar9 == 0x30)) {\n        (*(code *)PTR_free_000afd08)(local_30);\n        local_30 = (undefined *)0x0;\n        puVar18 = local_38;\n        if (local_38 == (undefined *)0x0) {\n          puVar18 = puVar8;\n        }\n        puVar18 = (undefined *)uri_merge(puVar5,puVar18);\n        (*(code *)PTR_free_000afd08)(local_38);\n        iVar10 = *(int *)(puVar19 + 0x218);\n        *(undefined *)(param_8 + 0xc) = puVar19[0x216];\n        local_38 = puVar18;\n        if (iVar10 != 0) {\n          set_uri_encoding(param_8,iVar10,1);\n        }\n        set_content_encoding(param_8,0);\n        (*(code *)PTR_free_000afd08)(*(undefined4 *)(param_8 + 8));\n        *(undefined4 *)(param_8 + 8) = 0;\n        puVar14 = (undefined4 *)url_parse(local_38,&local_34,param_8,1);\n        if (puVar14 == (undefined4 *)0x0) {\n          uVar15 = url_error(local_38,local_34);\n          uVar16 = escnonprint_uri(local_38);\n          puVar18 = PTR_s_hallenge__000af46c + 0x776c;\n          logprintf(1,puVar18,uVar16,uVar15);\n          if (puVar13 != param_1) {\n            url_free(puVar13);\n          }\n          (*(code *)PTR_free_000afd08)(puVar5);\n          (*(code *)PTR_free_000afd08)(local_38);\n          local_38 = (undefined *)0x0;\n          (*(code *)PTR_free_000afd08)(uVar15);\n          if (bVar3) {\n            *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n            *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n            *(undefined4 *)(puVar19 + 500) = local_60;\n          }\n          goto LAB_0004d368;\n        }\n        local_84 = local_84 + 1;\n        (*(code *)PTR_free_000afd08)(local_38);\n        local_38 = (undefined *)0x0;\n        local_38 = (undefined *)xstrdup(*puVar14);\n        if (*(int *)(puVar19 + 0x18) < local_84) {\n          puVar18 = (undefined *)\n                    (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x77d0,5);\n          logprintf(1,puVar18,*(undefined4 *)(puVar19 + 0x18));\n          url_free(puVar14);\n          if (puVar13 != param_1) {\n            url_free(puVar13);\n          }\n          (*(code *)PTR_free_000afd08)(puVar5);\n          (*(code *)PTR_free_000afd08)(local_38);\n          local_38 = (undefined *)0x0;\n          if (bVar3) {\n            iVar9 = 0x1b;\n            *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n            *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n            *(undefined4 *)(puVar19 + 500) = local_60;\n          }\n          else {\n            iVar9 = 0x1b;\n          }\n          goto LAB_0004d368;\n        }\n        (*(code *)PTR_free_000afd08)(puVar5);\n        puVar5 = local_38;\n        if (puVar13 != param_1) {\n          url_free(puVar13);\n        }\n        puVar13 = puVar14;\n        if ((iVar9 != 0x30) && (!bVar3)) {\n          local_64 = *(undefined4 *)(puVar19 + 0x1f8);\n          *(undefined4 *)(puVar19 + 0x1f8) = 0;\n          local_5c = *(undefined4 *)(puVar19 + 0x1fc);\n          *(undefined4 *)(puVar19 + 0x1fc) = 0;\n          bVar3 = true;\n          local_60 = *(undefined4 *)(puVar19 + 500);\n          *(undefined4 *)(puVar19 + 500) = 0;\n        }\n        goto LAB_0004ce08;\n      }\n    }\n    else {\n      if (puVar13[1] - 2 < 2) {\n        iVar11 = 0;\nLAB_0004d1d0:\n        if (local_84 == 0) {\n          iVar9 = (*(code *)PTR_ftp_loop_000af968)\n                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,\n                             PTR_opt_000af488[0xe1]);\n        }\n        else {\n          iVar9 = (*(code *)PTR_ftp_loop_000af968)\n                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,0);\n          if ((local_30 == (undefined *)0x0) || (1 < puVar13[1] - 2)) {\n            local_68 = 0;\n          }\n          else {\n            local_68 = has_html_suffix_p();\n            if (local_68 != 0) {\n              local_68 = 0;\n              *param_6 = *param_6 | 1;\n            }\n          }\n        }\n        goto LAB_0004d01c;\n      }\nLAB_0004cef8:\n      iVar9 = 0;\n    }\n    (*(code *)PTR_free_000afd08)(local_38);\n    uVar12 = *param_6 & 2;\n    local_38 = (undefined *)0x0;\n    if ((uVar12 != 0) || (cVar1 = *(char *)(param_8 + 0xc), cVar1 == '\0')) {\n      puVar18 = local_30;\n      if ((local_30 == (undefined *)0x0) ||\n         (puVar19 = PTR_opt_000af488, puVar13 == (undefined4 *)0x0)) goto LAB_0004d2f8;\n      goto LAB_0004d2e0;\n    }\n    *(undefined1 *)(param_8 + 0xc) = 0;\n    if (puVar13 != param_1) {\n      url_free(puVar13);\n    }\n    puVar18 = (undefined *)0x0;\n    puVar13 = (undefined4 *)url_parse(param_2,0,param_8,1);\n    puVar19 = PTR_opt_000af488;\n    if (puVar13 == (undefined4 *)0x0) {\n      if (PTR_opt_000af488[0x16b] != '\0') {\n        puVar18 = (undefined *)quote(puVar5);\n        debug_logprintf(PTR_s_hallenge__000af46c + 0x783c);\n      }\n      goto LAB_0004d2f8;\n    }\n    iVar10 = (*(code *)PTR_strcmp_000afacc)(*puVar13,*param_1);\n    cVar2 = puVar19[0x16b];\n    if (iVar10 == 0) break;\n    if (cVar2 != '\0') {\n      uVar15 = quote(puVar5);\n      debug_logprintf(puVar7,uVar15);\n    }\n    (*(code *)PTR_free_000afd08)(puVar5);\n    puVar5 = (undefined *)xstrdup(*puVar13);\n    cVar4 = cVar1;\n  } while( true );\n  if (cVar2 != '\0') {\n    uVar15 = quote(puVar5);\n    debug_logprintf(PTR_s_hallenge__000af46c + 0x7814,uVar15);\n  }\n  puVar18 = local_30;\n  if (local_30 != (undefined *)0x0) {\n    uVar12 = *param_6 & 2;\nLAB_0004d2e0:\n    puVar18 = local_30;\n    if ((uVar12 != 0) || (puVar19[0x16a] != '\0')) {\n      (*(code *)PTR_register_download_000af96c)(*puVar13);\n      if ((puVar19[0x48] == '\0') && (local_84 != 0)) {\n        puVar20 = (undefined *)*puVar13;\n        puVar18 = puVar20;\n        iVar10 = (*(code *)PTR_strcmp_000afacc)(param_2);\n        if (iVar10 != 0) {\n          (*(code *)PTR_register_redirection_000af978)(param_2);\n          puVar18 = puVar20;\n        }\n      }\n      uVar12 = *param_6;\n      if ((uVar12 & 1) != 0) {\n        (*(code *)PTR_register_html_000af974)();\n        uVar12 = *param_6;\n      }\n      if ((uVar12 & 0x40) != 0) {\n        (*(code *)PTR_register_css_000af970)();\n      }\n    }\n  }\nLAB_0004d2f8:\n  if (param_3 == (undefined4 *)0x0) {\n    (*(code *)PTR_free_000afd08)();\n    local_30 = (undefined *)0x0;\n  }\n  else {\n    *param_3 = local_30;\n  }\n  if (param_1 != puVar13) {\n    url_free(puVar13);\n  }\n  puVar20 = PTR_free_000afd08;\n  if ((local_84 == 0) && (cVar4 == '\0')) {\n    if (param_4 != (undefined4 *)0x0) {\n      *param_4 = 0;\n    }\n  }\n  else if (param_4 != (undefined4 *)0x0) {\n    *param_4 = puVar5;\n    goto LAB_0004d33c;\n  }\n  (*(code *)puVar20)(puVar5);\nLAB_0004d33c:\n  puVar5 = PTR_opt_000af488;\n  if (bVar3) {\n    *(undefined4 *)(PTR_opt_000af488 + 0x1f8) = local_64;\n    *(undefined4 *)(puVar5 + 0x1fc) = local_5c;\n    *(undefined4 *)(puVar5 + 500) = local_60;\n  }\nLAB_0004d368:\n  if (param_9 != '\0') {\n    inform_exit_status(iVar9);\n  }\n  if (local_2c != *(undefined **)puVar17) {\n    puVar17 = local_2c;\n    puVar5 = PTR___stack_chk_fail_000afbd4;\n    (*(code *)PTR___stack_chk_fail_000afbd4)();\n    if (puVar17 == puVar18) {\n      uVar15 = (**(code **)(puVar5 + 0x62534))(0,*(int *)(puVar5 + 0x61cac) + 0x7864,5);\n      iVar9 = logputs(0,uVar15);\n      return iVar9;\n    }\n    uVar15 = (**(code **)(puVar5 + 0x62534))(0,*(int *)(puVar5 + 0x61cac) + 0x7874);\n    iVar9 = logputs(0,uVar15);\n    return iVar9;\n  }\n  return iVar9;\n}" primitive_type (function_declarator "retrieve_url(undefined4 *param_1,undefined4 param_2,undefined4 *param_3,undefined4 *param_4,\n                int param_5,uint *param_6,byte param_7,int param_8,char param_9)" identifier (parameter_list "(undefined4 *param_1,undefined4 param_2,undefined4 *param_3,undefined4 *param_4,\n                int param_5,uint *param_6,byte param_7,int param_8,char param_9)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "undefined4 *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "undefined4 *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "int param_5" primitive_type identifier) , (parameter_declaration "uint *param_6" type_identifier (pointer_declarator "*param_6" * identifier)) , (parameter_declaration "byte param_7" type_identifier identifier) , (parameter_declaration "int param_8" primitive_type identifier) , (parameter_declaration "char param_9" primitive_type identifier) ))) (compound_statement "{\n  char cVar1;\n  char cVar2;\n  bool bVar3;\n  char cVar4;\n  undefined *puVar5;\n  code *pcVar6;\n  undefined *puVar7;\n  undefined *puVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  uint uVar12;\n  undefined4 *puVar13;\n  undefined4 *puVar14;\n  undefined4 uVar15;\n  undefined4 uVar16;\n  undefined *puVar17;\n  undefined *puVar18;\n  undefined *puVar19;\n  undefined *puVar20;\n  int local_84;\n  int local_7c;\n  uint local_68;\n  undefined4 local_64;\n  undefined4 local_60;\n  undefined4 local_5c;\n  uint local_3c;\n  undefined *local_38;\n  undefined4 local_34;\n  undefined *local_30;\n  undefined *local_2c;\n  \n  puVar17 = PTR___stack_chk_guard_000afc3c;\n  local_7c = param_5;\n  local_68 = (uint)param_7;\n  local_2c = *(undefined **)PTR___stack_chk_guard_000afc3c;\n  local_30 = (undefined *)0x0;\n  if (param_6 == (uint *)0x0) {\n    param_6 = &local_3c;\n    local_3c = 0;\n  }\n  puVar5 = (undefined *)xstrdup(param_2);\n  if (param_4 != (undefined4 *)0x0) {\n    *param_4 = 0;\n  }\n  if (param_3 != (undefined4 *)0x0) {\n    *param_3 = 0;\n  }\n  puVar20 = PTR_s_hallenge__000af46c;\n  if (param_5 == 0) {\n    local_7c = *(int *)(PTR_opt_000af488 + 0x178);\n  }\n  local_5c = 0;\n  local_60 = 0;\n  local_64 = 0;\n  bVar3 = false;\n  pcVar6 = (code *)(PTR_LAB_000af918 + -0x4774);\n  local_84 = 0;\n  puVar7 = PTR_s_hallenge__000af46c + 0x77ec;\n  puVar8 = PTR_s_hallenge__000af46c + -0x1710;\n  puVar13 = param_1;\n  cVar4 = '\0';\nLAB_0004ce08:\n  do {\n    local_38 = (undefined *)0x0;\n    (*(code *)PTR_free_000afd08)(local_30);\n    local_30 = (undefined *)0x0;\n    iVar9 = (*pcVar6)(puVar13 + 1,puVar13 + 2);\n    puVar19 = PTR_opt_000af488;\n    if (iVar9 != 0) {\n      iVar10 = iri_new();\n      set_uri_encoding(iVar10,*(undefined4 *)(puVar19 + 0x21c),1);\n      *(undefined1 *)(iVar10 + 0xc) = 0;\n      iVar11 = url_parse(iVar9,&local_34,iVar10,1);\n      if (iVar11 == 0) {\n        puVar20 = (undefined *)url_error(iVar9,local_34);\n        puVar18 = (undefined *)\n                  (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7754,5);\n        logprintf(1,puVar18,iVar9,puVar20);\n        (*(code *)PTR_free_000afd08)(puVar5);\n      }\n      else {\n        if ((*(int *)(iVar11 + 4) == 0) || (*(int *)(iVar11 + 4) == puVar13[1])) {\n          iri_free(iVar10);\n          (*(code *)PTR_free_000afd08)(iVar9);\n          if ((1 < (uint)puVar13[1]) && (*(int *)(iVar11 + 4) != 0)) {\n            if (puVar13[1] - 2 < 2) goto LAB_0004d1d0;\n            url_free(iVar11);\n            goto LAB_0004cef8;\n          }\n          goto LAB_0004cfbc;\n        }\n        puVar18 = (undefined *)\n                  (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7778,5);\n        logprintf(1,puVar18,iVar9);\n        url_free(iVar11);\n        puVar20 = puVar5;\n      }\n      (*(code *)PTR_free_000afd08)(puVar20);\n      (*(code *)PTR_free_000afd08)(iVar9);\n      iri_free(iVar10);\n      if (bVar3) {\n        iVar9 = 0x29;\n        *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n        *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n        *(undefined4 *)(puVar19 + 500) = local_60;\n      }\n      else {\n        iVar9 = 0x29;\n      }\n      goto LAB_0004d368;\n    }\n    if ((uint)puVar13[1] < 2) {\n      iVar11 = 0;\nLAB_0004cfbc:\n      if (((puVar19[0x22c] != '\0') && (*(int *)PTR_hsts_store_000af570 != 0)) &&\n         (iVar9 = hsts_match(*(int *)PTR_hsts_store_000af570,puVar13), iVar9 != 0)) {\n        logprintf(0,puVar20 + 0x77a0);\n      }\n      iVar9 = http_loop(puVar13,param_1,&local_38,&local_30,local_7c,param_6,iVar11,param_8);\nLAB_0004d01c:\n      if (iVar11 != 0) {\n        url_free(iVar11);\n      }\n      puVar19 = PTR_opt_000af488;\n      if ((iVar9 == 6) || (iVar9 == 0x30)) {\n        (*(code *)PTR_free_000afd08)(local_30);\n        local_30 = (undefined *)0x0;\n        puVar18 = local_38;\n        if (local_38 == (undefined *)0x0) {\n          puVar18 = puVar8;\n        }\n        puVar18 = (undefined *)uri_merge(puVar5,puVar18);\n        (*(code *)PTR_free_000afd08)(local_38);\n        iVar10 = *(int *)(puVar19 + 0x218);\n        *(undefined *)(param_8 + 0xc) = puVar19[0x216];\n        local_38 = puVar18;\n        if (iVar10 != 0) {\n          set_uri_encoding(param_8,iVar10,1);\n        }\n        set_content_encoding(param_8,0);\n        (*(code *)PTR_free_000afd08)(*(undefined4 *)(param_8 + 8));\n        *(undefined4 *)(param_8 + 8) = 0;\n        puVar14 = (undefined4 *)url_parse(local_38,&local_34,param_8,1);\n        if (puVar14 == (undefined4 *)0x0) {\n          uVar15 = url_error(local_38,local_34);\n          uVar16 = escnonprint_uri(local_38);\n          puVar18 = PTR_s_hallenge__000af46c + 0x776c;\n          logprintf(1,puVar18,uVar16,uVar15);\n          if (puVar13 != param_1) {\n            url_free(puVar13);\n          }\n          (*(code *)PTR_free_000afd08)(puVar5);\n          (*(code *)PTR_free_000afd08)(local_38);\n          local_38 = (undefined *)0x0;\n          (*(code *)PTR_free_000afd08)(uVar15);\n          if (bVar3) {\n            *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n            *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n            *(undefined4 *)(puVar19 + 500) = local_60;\n          }\n          goto LAB_0004d368;\n        }\n        local_84 = local_84 + 1;\n        (*(code *)PTR_free_000afd08)(local_38);\n        local_38 = (undefined *)0x0;\n        local_38 = (undefined *)xstrdup(*puVar14);\n        if (*(int *)(puVar19 + 0x18) < local_84) {\n          puVar18 = (undefined *)\n                    (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x77d0,5);\n          logprintf(1,puVar18,*(undefined4 *)(puVar19 + 0x18));\n          url_free(puVar14);\n          if (puVar13 != param_1) {\n            url_free(puVar13);\n          }\n          (*(code *)PTR_free_000afd08)(puVar5);\n          (*(code *)PTR_free_000afd08)(local_38);\n          local_38 = (undefined *)0x0;\n          if (bVar3) {\n            iVar9 = 0x1b;\n            *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n            *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n            *(undefined4 *)(puVar19 + 500) = local_60;\n          }\n          else {\n            iVar9 = 0x1b;\n          }\n          goto LAB_0004d368;\n        }\n        (*(code *)PTR_free_000afd08)(puVar5);\n        puVar5 = local_38;\n        if (puVar13 != param_1) {\n          url_free(puVar13);\n        }\n        puVar13 = puVar14;\n        if ((iVar9 != 0x30) && (!bVar3)) {\n          local_64 = *(undefined4 *)(puVar19 + 0x1f8);\n          *(undefined4 *)(puVar19 + 0x1f8) = 0;\n          local_5c = *(undefined4 *)(puVar19 + 0x1fc);\n          *(undefined4 *)(puVar19 + 0x1fc) = 0;\n          bVar3 = true;\n          local_60 = *(undefined4 *)(puVar19 + 500);\n          *(undefined4 *)(puVar19 + 500) = 0;\n        }\n        goto LAB_0004ce08;\n      }\n    }\n    else {\n      if (puVar13[1] - 2 < 2) {\n        iVar11 = 0;\nLAB_0004d1d0:\n        if (local_84 == 0) {\n          iVar9 = (*(code *)PTR_ftp_loop_000af968)\n                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,\n                             PTR_opt_000af488[0xe1]);\n        }\n        else {\n          iVar9 = (*(code *)PTR_ftp_loop_000af968)\n                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,0);\n          if ((local_30 == (undefined *)0x0) || (1 < puVar13[1] - 2)) {\n            local_68 = 0;\n          }\n          else {\n            local_68 = has_html_suffix_p();\n            if (local_68 != 0) {\n              local_68 = 0;\n              *param_6 = *param_6 | 1;\n            }\n          }\n        }\n        goto LAB_0004d01c;\n      }\nLAB_0004cef8:\n      iVar9 = 0;\n    }\n    (*(code *)PTR_free_000afd08)(local_38);\n    uVar12 = *param_6 & 2;\n    local_38 = (undefined *)0x0;\n    if ((uVar12 != 0) || (cVar1 = *(char *)(param_8 + 0xc), cVar1 == '\0')) {\n      puVar18 = local_30;\n      if ((local_30 == (undefined *)0x0) ||\n         (puVar19 = PTR_opt_000af488, puVar13 == (undefined4 *)0x0)) goto LAB_0004d2f8;\n      goto LAB_0004d2e0;\n    }\n    *(undefined1 *)(param_8 + 0xc) = 0;\n    if (puVar13 != param_1) {\n      url_free(puVar13);\n    }\n    puVar18 = (undefined *)0x0;\n    puVar13 = (undefined4 *)url_parse(param_2,0,param_8,1);\n    puVar19 = PTR_opt_000af488;\n    if (puVar13 == (undefined4 *)0x0) {\n      if (PTR_opt_000af488[0x16b] != '\0') {\n        puVar18 = (undefined *)quote(puVar5);\n        debug_logprintf(PTR_s_hallenge__000af46c + 0x783c);\n      }\n      goto LAB_0004d2f8;\n    }\n    iVar10 = (*(code *)PTR_strcmp_000afacc)(*puVar13,*param_1);\n    cVar2 = puVar19[0x16b];\n    if (iVar10 == 0) break;\n    if (cVar2 != '\0') {\n      uVar15 = quote(puVar5);\n      debug_logprintf(puVar7,uVar15);\n    }\n    (*(code *)PTR_free_000afd08)(puVar5);\n    puVar5 = (undefined *)xstrdup(*puVar13);\n    cVar4 = cVar1;\n  } while( true );\n  if (cVar2 != '\0') {\n    uVar15 = quote(puVar5);\n    debug_logprintf(PTR_s_hallenge__000af46c + 0x7814,uVar15);\n  }\n  puVar18 = local_30;\n  if (local_30 != (undefined *)0x0) {\n    uVar12 = *param_6 & 2;\nLAB_0004d2e0:\n    puVar18 = local_30;\n    if ((uVar12 != 0) || (puVar19[0x16a] != '\0')) {\n      (*(code *)PTR_register_download_000af96c)(*puVar13);\n      if ((puVar19[0x48] == '\0') && (local_84 != 0)) {\n        puVar20 = (undefined *)*puVar13;\n        puVar18 = puVar20;\n        iVar10 = (*(code *)PTR_strcmp_000afacc)(param_2);\n        if (iVar10 != 0) {\n          (*(code *)PTR_register_redirection_000af978)(param_2);\n          puVar18 = puVar20;\n        }\n      }\n      uVar12 = *param_6;\n      if ((uVar12 & 1) != 0) {\n        (*(code *)PTR_register_html_000af974)();\n        uVar12 = *param_6;\n      }\n      if ((uVar12 & 0x40) != 0) {\n        (*(code *)PTR_register_css_000af970)();\n      }\n    }\n  }\nLAB_0004d2f8:\n  if (param_3 == (undefined4 *)0x0) {\n    (*(code *)PTR_free_000afd08)();\n    local_30 = (undefined *)0x0;\n  }\n  else {\n    *param_3 = local_30;\n  }\n  if (param_1 != puVar13) {\n    url_free(puVar13);\n  }\n  puVar20 = PTR_free_000afd08;\n  if ((local_84 == 0) && (cVar4 == '\0')) {\n    if (param_4 != (undefined4 *)0x0) {\n      *param_4 = 0;\n    }\n  }\n  else if (param_4 != (undefined4 *)0x0) {\n    *param_4 = puVar5;\n    goto LAB_0004d33c;\n  }\n  (*(code *)puVar20)(puVar5);\nLAB_0004d33c:\n  puVar5 = PTR_opt_000af488;\n  if (bVar3) {\n    *(undefined4 *)(PTR_opt_000af488 + 0x1f8) = local_64;\n    *(undefined4 *)(puVar5 + 0x1fc) = local_5c;\n    *(undefined4 *)(puVar5 + 500) = local_60;\n  }\nLAB_0004d368:\n  if (param_9 != '\0') {\n    inform_exit_status(iVar9);\n  }\n  if (local_2c != *(undefined **)puVar17) {\n    puVar17 = local_2c;\n    puVar5 = PTR___stack_chk_fail_000afbd4;\n    (*(code *)PTR___stack_chk_fail_000afbd4)();\n    if (puVar17 == puVar18) {\n      uVar15 = (**(code **)(puVar5 + 0x62534))(0,*(int *)(puVar5 + 0x61cac) + 0x7864,5);\n      iVar9 = logputs(0,uVar15);\n      return iVar9;\n    }\n    uVar15 = (**(code **)(puVar5 + 0x62534))(0,*(int *)(puVar5 + 0x61cac) + 0x7874);\n    iVar9 = logputs(0,uVar15);\n    return iVar9;\n  }\n  return iVar9;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "bool bVar3;" primitive_type identifier ;) (declaration "char cVar4;" primitive_type identifier ;) (declaration "undefined *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "code *pcVar6;" type_identifier (pointer_declarator "*pcVar6" * identifier) ;) (declaration "undefined *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "undefined *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "undefined4 *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "undefined4 *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "undefined4 uVar15;" type_identifier identifier ;) (declaration "undefined4 uVar16;" type_identifier identifier ;) (declaration "undefined *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "undefined *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "undefined *puVar19;" type_identifier (pointer_declarator "*puVar19" * identifier) ;) (declaration "undefined *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "int local_84;" primitive_type identifier ;) (declaration "int local_7c;" primitive_type identifier ;) (declaration "uint local_68;" type_identifier identifier ;) (declaration "undefined4 local_64;" type_identifier identifier ;) (declaration "undefined4 local_60;" type_identifier identifier ;) (declaration "undefined4 local_5c;" type_identifier identifier ;) (declaration "uint local_3c;" type_identifier identifier ;) (declaration "undefined *local_38;" type_identifier (pointer_declarator "*local_38" * identifier) ;) (declaration "undefined4 local_34;" type_identifier identifier ;) (declaration "undefined *local_30;" type_identifier (pointer_declarator "*local_30" * identifier) ;) (declaration "undefined *local_2c;" type_identifier (pointer_declarator "*local_2c" * identifier) ;) (expression_statement "puVar17 = PTR___stack_chk_guard_000afc3c;" (assignment_expression "puVar17 = PTR___stack_chk_guard_000afc3c" identifier = identifier) ;) (expression_statement "local_7c = param_5;" (assignment_expression "local_7c = param_5" identifier = identifier) ;) (expression_statement "local_68 = (uint)param_7;" (assignment_expression "local_68 = (uint)param_7" identifier = (cast_expression "(uint)param_7" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "local_2c = *(undefined **)PTR___stack_chk_guard_000afc3c;" (assignment_expression "local_2c = *(undefined **)PTR___stack_chk_guard_000afc3c" identifier = (pointer_expression "*(undefined **)PTR___stack_chk_guard_000afc3c" * (cast_expression "(undefined **)PTR___stack_chk_guard_000afc3c" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "local_30 = (undefined *)0x0;" (assignment_expression "local_30 = (undefined *)0x0" identifier = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (param_6 == (uint *)0x0) {\n    param_6 = &local_3c;\n    local_3c = 0;\n  }" if (parenthesized_expression "(param_6 == (uint *)0x0)" ( (binary_expression "param_6 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    param_6 = &local_3c;\n    local_3c = 0;\n  }" { (expression_statement "param_6 = &local_3c;" (assignment_expression "param_6 = &local_3c" identifier = (pointer_expression "&local_3c" & identifier)) ;) (expression_statement "local_3c = 0;" (assignment_expression "local_3c = 0" identifier = number_literal) ;) })) (expression_statement "puVar5 = (undefined *)xstrdup(param_2);" (assignment_expression "puVar5 = (undefined *)xstrdup(param_2)" identifier = (cast_expression "(undefined *)xstrdup(param_2)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xstrdup(param_2)" identifier (argument_list "(param_2)" ( identifier ))))) ;) (if_statement "if (param_4 != (undefined4 *)0x0) {\n    *param_4 = 0;\n  }" if (parenthesized_expression "(param_4 != (undefined4 *)0x0)" ( (binary_expression "param_4 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    *param_4 = 0;\n  }" { (expression_statement "*param_4 = 0;" (assignment_expression "*param_4 = 0" (pointer_expression "*param_4" * identifier) = number_literal) ;) })) (if_statement "if (param_3 != (undefined4 *)0x0) {\n    *param_3 = 0;\n  }" if (parenthesized_expression "(param_3 != (undefined4 *)0x0)" ( (binary_expression "param_3 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    *param_3 = 0;\n  }" { (expression_statement "*param_3 = 0;" (assignment_expression "*param_3 = 0" (pointer_expression "*param_3" * identifier) = number_literal) ;) })) (expression_statement "puVar20 = PTR_s_hallenge__000af46c;" (assignment_expression "puVar20 = PTR_s_hallenge__000af46c" identifier = identifier) ;) (if_statement "if (param_5 == 0) {\n    local_7c = *(int *)(PTR_opt_000af488 + 0x178);\n  }" if (parenthesized_expression "(param_5 == 0)" ( (binary_expression "param_5 == 0" identifier == number_literal) )) (compound_statement "{\n    local_7c = *(int *)(PTR_opt_000af488 + 0x178);\n  }" { (expression_statement "local_7c = *(int *)(PTR_opt_000af488 + 0x178);" (assignment_expression "local_7c = *(int *)(PTR_opt_000af488 + 0x178)" identifier = (pointer_expression "*(int *)(PTR_opt_000af488 + 0x178)" * (cast_expression "(int *)(PTR_opt_000af488 + 0x178)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_opt_000af488 + 0x178)" ( (binary_expression "PTR_opt_000af488 + 0x178" identifier + number_literal) ))))) ;) })) (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" identifier = number_literal) ;) (expression_statement "local_60 = 0;" (assignment_expression "local_60 = 0" identifier = number_literal) ;) (expression_statement "local_64 = 0;" (assignment_expression "local_64 = 0" identifier = number_literal) ;) (expression_statement "bVar3 = false;" (assignment_expression "bVar3 = false" identifier = false) ;) (expression_statement "pcVar6 = (code *)(PTR_LAB_000af918 + -0x4774);" (assignment_expression "pcVar6 = (code *)(PTR_LAB_000af918 + -0x4774)" identifier = (cast_expression "(code *)(PTR_LAB_000af918 + -0x4774)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000af918 + -0x4774)" ( (binary_expression "PTR_LAB_000af918 + -0x4774" identifier + number_literal) )))) ;) (expression_statement "local_84 = 0;" (assignment_expression "local_84 = 0" identifier = number_literal) ;) (expression_statement "puVar7 = PTR_s_hallenge__000af46c + 0x77ec;" (assignment_expression "puVar7 = PTR_s_hallenge__000af46c + 0x77ec" identifier = (binary_expression "PTR_s_hallenge__000af46c + 0x77ec" identifier + number_literal)) ;) (expression_statement "puVar8 = PTR_s_hallenge__000af46c + -0x1710;" (assignment_expression "puVar8 = PTR_s_hallenge__000af46c + -0x1710" identifier = (binary_expression "PTR_s_hallenge__000af46c + -0x1710" identifier + number_literal)) ;) (expression_statement "puVar13 = param_1;" (assignment_expression "puVar13 = param_1" identifier = identifier) ;) (expression_statement "cVar4 = '\0';" (assignment_expression "cVar4 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (labeled_statement "LAB_0004ce08:\n  do {\n    local_38 = (undefined *)0x0;\n    (*(code *)PTR_free_000afd08)(local_30);\n    local_30 = (undefined *)0x0;\n    iVar9 = (*pcVar6)(puVar13 + 1,puVar13 + 2);\n    puVar19 = PTR_opt_000af488;\n    if (iVar9 != 0) {\n      iVar10 = iri_new();\n      set_uri_encoding(iVar10,*(undefined4 *)(puVar19 + 0x21c),1);\n      *(undefined1 *)(iVar10 + 0xc) = 0;\n      iVar11 = url_parse(iVar9,&local_34,iVar10,1);\n      if (iVar11 == 0) {\n        puVar20 = (undefined *)url_error(iVar9,local_34);\n        puVar18 = (undefined *)\n                  (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7754,5);\n        logprintf(1,puVar18,iVar9,puVar20);\n        (*(code *)PTR_free_000afd08)(puVar5);\n      }\n      else {\n        if ((*(int *)(iVar11 + 4) == 0) || (*(int *)(iVar11 + 4) == puVar13[1])) {\n          iri_free(iVar10);\n          (*(code *)PTR_free_000afd08)(iVar9);\n          if ((1 < (uint)puVar13[1]) && (*(int *)(iVar11 + 4) != 0)) {\n            if (puVar13[1] - 2 < 2) goto LAB_0004d1d0;\n            url_free(iVar11);\n            goto LAB_0004cef8;\n          }\n          goto LAB_0004cfbc;\n        }\n        puVar18 = (undefined *)\n                  (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7778,5);\n        logprintf(1,puVar18,iVar9);\n        url_free(iVar11);\n        puVar20 = puVar5;\n      }\n      (*(code *)PTR_free_000afd08)(puVar20);\n      (*(code *)PTR_free_000afd08)(iVar9);\n      iri_free(iVar10);\n      if (bVar3) {\n        iVar9 = 0x29;\n        *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n        *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n        *(undefined4 *)(puVar19 + 500) = local_60;\n      }\n      else {\n        iVar9 = 0x29;\n      }\n      goto LAB_0004d368;\n    }\n    if ((uint)puVar13[1] < 2) {\n      iVar11 = 0;\nLAB_0004cfbc:\n      if (((puVar19[0x22c] != '\0') && (*(int *)PTR_hsts_store_000af570 != 0)) &&\n         (iVar9 = hsts_match(*(int *)PTR_hsts_store_000af570,puVar13), iVar9 != 0)) {\n        logprintf(0,puVar20 + 0x77a0);\n      }\n      iVar9 = http_loop(puVar13,param_1,&local_38,&local_30,local_7c,param_6,iVar11,param_8);\nLAB_0004d01c:\n      if (iVar11 != 0) {\n        url_free(iVar11);\n      }\n      puVar19 = PTR_opt_000af488;\n      if ((iVar9 == 6) || (iVar9 == 0x30)) {\n        (*(code *)PTR_free_000afd08)(local_30);\n        local_30 = (undefined *)0x0;\n        puVar18 = local_38;\n        if (local_38 == (undefined *)0x0) {\n          puVar18 = puVar8;\n        }\n        puVar18 = (undefined *)uri_merge(puVar5,puVar18);\n        (*(code *)PTR_free_000afd08)(local_38);\n        iVar10 = *(int *)(puVar19 + 0x218);\n        *(undefined *)(param_8 + 0xc) = puVar19[0x216];\n        local_38 = puVar18;\n        if (iVar10 != 0) {\n          set_uri_encoding(param_8,iVar10,1);\n        }\n        set_content_encoding(param_8,0);\n        (*(code *)PTR_free_000afd08)(*(undefined4 *)(param_8 + 8));\n        *(undefined4 *)(param_8 + 8) = 0;\n        puVar14 = (undefined4 *)url_parse(local_38,&local_34,param_8,1);\n        if (puVar14 == (undefined4 *)0x0) {\n          uVar15 = url_error(local_38,local_34);\n          uVar16 = escnonprint_uri(local_38);\n          puVar18 = PTR_s_hallenge__000af46c + 0x776c;\n          logprintf(1,puVar18,uVar16,uVar15);\n          if (puVar13 != param_1) {\n            url_free(puVar13);\n          }\n          (*(code *)PTR_free_000afd08)(puVar5);\n          (*(code *)PTR_free_000afd08)(local_38);\n          local_38 = (undefined *)0x0;\n          (*(code *)PTR_free_000afd08)(uVar15);\n          if (bVar3) {\n            *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n            *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n            *(undefined4 *)(puVar19 + 500) = local_60;\n          }\n          goto LAB_0004d368;\n        }\n        local_84 = local_84 + 1;\n        (*(code *)PTR_free_000afd08)(local_38);\n        local_38 = (undefined *)0x0;\n        local_38 = (undefined *)xstrdup(*puVar14);\n        if (*(int *)(puVar19 + 0x18) < local_84) {\n          puVar18 = (undefined *)\n                    (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x77d0,5);\n          logprintf(1,puVar18,*(undefined4 *)(puVar19 + 0x18));\n          url_free(puVar14);\n          if (puVar13 != param_1) {\n            url_free(puVar13);\n          }\n          (*(code *)PTR_free_000afd08)(puVar5);\n          (*(code *)PTR_free_000afd08)(local_38);\n          local_38 = (undefined *)0x0;\n          if (bVar3) {\n            iVar9 = 0x1b;\n            *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n            *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n            *(undefined4 *)(puVar19 + 500) = local_60;\n          }\n          else {\n            iVar9 = 0x1b;\n          }\n          goto LAB_0004d368;\n        }\n        (*(code *)PTR_free_000afd08)(puVar5);\n        puVar5 = local_38;\n        if (puVar13 != param_1) {\n          url_free(puVar13);\n        }\n        puVar13 = puVar14;\n        if ((iVar9 != 0x30) && (!bVar3)) {\n          local_64 = *(undefined4 *)(puVar19 + 0x1f8);\n          *(undefined4 *)(puVar19 + 0x1f8) = 0;\n          local_5c = *(undefined4 *)(puVar19 + 0x1fc);\n          *(undefined4 *)(puVar19 + 0x1fc) = 0;\n          bVar3 = true;\n          local_60 = *(undefined4 *)(puVar19 + 500);\n          *(undefined4 *)(puVar19 + 500) = 0;\n        }\n        goto LAB_0004ce08;\n      }\n    }\n    else {\n      if (puVar13[1] - 2 < 2) {\n        iVar11 = 0;\nLAB_0004d1d0:\n        if (local_84 == 0) {\n          iVar9 = (*(code *)PTR_ftp_loop_000af968)\n                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,\n                             PTR_opt_000af488[0xe1]);\n        }\n        else {\n          iVar9 = (*(code *)PTR_ftp_loop_000af968)\n                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,0);\n          if ((local_30 == (undefined *)0x0) || (1 < puVar13[1] - 2)) {\n            local_68 = 0;\n          }\n          else {\n            local_68 = has_html_suffix_p();\n            if (local_68 != 0) {\n              local_68 = 0;\n              *param_6 = *param_6 | 1;\n            }\n          }\n        }\n        goto LAB_0004d01c;\n      }\nLAB_0004cef8:\n      iVar9 = 0;\n    }\n    (*(code *)PTR_free_000afd08)(local_38);\n    uVar12 = *param_6 & 2;\n    local_38 = (undefined *)0x0;\n    if ((uVar12 != 0) || (cVar1 = *(char *)(param_8 + 0xc), cVar1 == '\0')) {\n      puVar18 = local_30;\n      if ((local_30 == (undefined *)0x0) ||\n         (puVar19 = PTR_opt_000af488, puVar13 == (undefined4 *)0x0)) goto LAB_0004d2f8;\n      goto LAB_0004d2e0;\n    }\n    *(undefined1 *)(param_8 + 0xc) = 0;\n    if (puVar13 != param_1) {\n      url_free(puVar13);\n    }\n    puVar18 = (undefined *)0x0;\n    puVar13 = (undefined4 *)url_parse(param_2,0,param_8,1);\n    puVar19 = PTR_opt_000af488;\n    if (puVar13 == (undefined4 *)0x0) {\n      if (PTR_opt_000af488[0x16b] != '\0') {\n        puVar18 = (undefined *)quote(puVar5);\n        debug_logprintf(PTR_s_hallenge__000af46c + 0x783c);\n      }\n      goto LAB_0004d2f8;\n    }\n    iVar10 = (*(code *)PTR_strcmp_000afacc)(*puVar13,*param_1);\n    cVar2 = puVar19[0x16b];\n    if (iVar10 == 0) break;\n    if (cVar2 != '\0') {\n      uVar15 = quote(puVar5);\n      debug_logprintf(puVar7,uVar15);\n    }\n    (*(code *)PTR_free_000afd08)(puVar5);\n    puVar5 = (undefined *)xstrdup(*puVar13);\n    cVar4 = cVar1;\n  } while( true );" statement_identifier : (do_statement "do {\n    local_38 = (undefined *)0x0;\n    (*(code *)PTR_free_000afd08)(local_30);\n    local_30 = (undefined *)0x0;\n    iVar9 = (*pcVar6)(puVar13 + 1,puVar13 + 2);\n    puVar19 = PTR_opt_000af488;\n    if (iVar9 != 0) {\n      iVar10 = iri_new();\n      set_uri_encoding(iVar10,*(undefined4 *)(puVar19 + 0x21c),1);\n      *(undefined1 *)(iVar10 + 0xc) = 0;\n      iVar11 = url_parse(iVar9,&local_34,iVar10,1);\n      if (iVar11 == 0) {\n        puVar20 = (undefined *)url_error(iVar9,local_34);\n        puVar18 = (undefined *)\n                  (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7754,5);\n        logprintf(1,puVar18,iVar9,puVar20);\n        (*(code *)PTR_free_000afd08)(puVar5);\n      }\n      else {\n        if ((*(int *)(iVar11 + 4) == 0) || (*(int *)(iVar11 + 4) == puVar13[1])) {\n          iri_free(iVar10);\n          (*(code *)PTR_free_000afd08)(iVar9);\n          if ((1 < (uint)puVar13[1]) && (*(int *)(iVar11 + 4) != 0)) {\n            if (puVar13[1] - 2 < 2) goto LAB_0004d1d0;\n            url_free(iVar11);\n            goto LAB_0004cef8;\n          }\n          goto LAB_0004cfbc;\n        }\n        puVar18 = (undefined *)\n                  (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7778,5);\n        logprintf(1,puVar18,iVar9);\n        url_free(iVar11);\n        puVar20 = puVar5;\n      }\n      (*(code *)PTR_free_000afd08)(puVar20);\n      (*(code *)PTR_free_000afd08)(iVar9);\n      iri_free(iVar10);\n      if (bVar3) {\n        iVar9 = 0x29;\n        *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n        *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n        *(undefined4 *)(puVar19 + 500) = local_60;\n      }\n      else {\n        iVar9 = 0x29;\n      }\n      goto LAB_0004d368;\n    }\n    if ((uint)puVar13[1] < 2) {\n      iVar11 = 0;\nLAB_0004cfbc:\n      if (((puVar19[0x22c] != '\0') && (*(int *)PTR_hsts_store_000af570 != 0)) &&\n         (iVar9 = hsts_match(*(int *)PTR_hsts_store_000af570,puVar13), iVar9 != 0)) {\n        logprintf(0,puVar20 + 0x77a0);\n      }\n      iVar9 = http_loop(puVar13,param_1,&local_38,&local_30,local_7c,param_6,iVar11,param_8);\nLAB_0004d01c:\n      if (iVar11 != 0) {\n        url_free(iVar11);\n      }\n      puVar19 = PTR_opt_000af488;\n      if ((iVar9 == 6) || (iVar9 == 0x30)) {\n        (*(code *)PTR_free_000afd08)(local_30);\n        local_30 = (undefined *)0x0;\n        puVar18 = local_38;\n        if (local_38 == (undefined *)0x0) {\n          puVar18 = puVar8;\n        }\n        puVar18 = (undefined *)uri_merge(puVar5,puVar18);\n        (*(code *)PTR_free_000afd08)(local_38);\n        iVar10 = *(int *)(puVar19 + 0x218);\n        *(undefined *)(param_8 + 0xc) = puVar19[0x216];\n        local_38 = puVar18;\n        if (iVar10 != 0) {\n          set_uri_encoding(param_8,iVar10,1);\n        }\n        set_content_encoding(param_8,0);\n        (*(code *)PTR_free_000afd08)(*(undefined4 *)(param_8 + 8));\n        *(undefined4 *)(param_8 + 8) = 0;\n        puVar14 = (undefined4 *)url_parse(local_38,&local_34,param_8,1);\n        if (puVar14 == (undefined4 *)0x0) {\n          uVar15 = url_error(local_38,local_34);\n          uVar16 = escnonprint_uri(local_38);\n          puVar18 = PTR_s_hallenge__000af46c + 0x776c;\n          logprintf(1,puVar18,uVar16,uVar15);\n          if (puVar13 != param_1) {\n            url_free(puVar13);\n          }\n          (*(code *)PTR_free_000afd08)(puVar5);\n          (*(code *)PTR_free_000afd08)(local_38);\n          local_38 = (undefined *)0x0;\n          (*(code *)PTR_free_000afd08)(uVar15);\n          if (bVar3) {\n            *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n            *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n            *(undefined4 *)(puVar19 + 500) = local_60;\n          }\n          goto LAB_0004d368;\n        }\n        local_84 = local_84 + 1;\n        (*(code *)PTR_free_000afd08)(local_38);\n        local_38 = (undefined *)0x0;\n        local_38 = (undefined *)xstrdup(*puVar14);\n        if (*(int *)(puVar19 + 0x18) < local_84) {\n          puVar18 = (undefined *)\n                    (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x77d0,5);\n          logprintf(1,puVar18,*(undefined4 *)(puVar19 + 0x18));\n          url_free(puVar14);\n          if (puVar13 != param_1) {\n            url_free(puVar13);\n          }\n          (*(code *)PTR_free_000afd08)(puVar5);\n          (*(code *)PTR_free_000afd08)(local_38);\n          local_38 = (undefined *)0x0;\n          if (bVar3) {\n            iVar9 = 0x1b;\n            *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n            *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n            *(undefined4 *)(puVar19 + 500) = local_60;\n          }\n          else {\n            iVar9 = 0x1b;\n          }\n          goto LAB_0004d368;\n        }\n        (*(code *)PTR_free_000afd08)(puVar5);\n        puVar5 = local_38;\n        if (puVar13 != param_1) {\n          url_free(puVar13);\n        }\n        puVar13 = puVar14;\n        if ((iVar9 != 0x30) && (!bVar3)) {\n          local_64 = *(undefined4 *)(puVar19 + 0x1f8);\n          *(undefined4 *)(puVar19 + 0x1f8) = 0;\n          local_5c = *(undefined4 *)(puVar19 + 0x1fc);\n          *(undefined4 *)(puVar19 + 0x1fc) = 0;\n          bVar3 = true;\n          local_60 = *(undefined4 *)(puVar19 + 500);\n          *(undefined4 *)(puVar19 + 500) = 0;\n        }\n        goto LAB_0004ce08;\n      }\n    }\n    else {\n      if (puVar13[1] - 2 < 2) {\n        iVar11 = 0;\nLAB_0004d1d0:\n        if (local_84 == 0) {\n          iVar9 = (*(code *)PTR_ftp_loop_000af968)\n                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,\n                             PTR_opt_000af488[0xe1]);\n        }\n        else {\n          iVar9 = (*(code *)PTR_ftp_loop_000af968)\n                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,0);\n          if ((local_30 == (undefined *)0x0) || (1 < puVar13[1] - 2)) {\n            local_68 = 0;\n          }\n          else {\n            local_68 = has_html_suffix_p();\n            if (local_68 != 0) {\n              local_68 = 0;\n              *param_6 = *param_6 | 1;\n            }\n          }\n        }\n        goto LAB_0004d01c;\n      }\nLAB_0004cef8:\n      iVar9 = 0;\n    }\n    (*(code *)PTR_free_000afd08)(local_38);\n    uVar12 = *param_6 & 2;\n    local_38 = (undefined *)0x0;\n    if ((uVar12 != 0) || (cVar1 = *(char *)(param_8 + 0xc), cVar1 == '\0')) {\n      puVar18 = local_30;\n      if ((local_30 == (undefined *)0x0) ||\n         (puVar19 = PTR_opt_000af488, puVar13 == (undefined4 *)0x0)) goto LAB_0004d2f8;\n      goto LAB_0004d2e0;\n    }\n    *(undefined1 *)(param_8 + 0xc) = 0;\n    if (puVar13 != param_1) {\n      url_free(puVar13);\n    }\n    puVar18 = (undefined *)0x0;\n    puVar13 = (undefined4 *)url_parse(param_2,0,param_8,1);\n    puVar19 = PTR_opt_000af488;\n    if (puVar13 == (undefined4 *)0x0) {\n      if (PTR_opt_000af488[0x16b] != '\0') {\n        puVar18 = (undefined *)quote(puVar5);\n        debug_logprintf(PTR_s_hallenge__000af46c + 0x783c);\n      }\n      goto LAB_0004d2f8;\n    }\n    iVar10 = (*(code *)PTR_strcmp_000afacc)(*puVar13,*param_1);\n    cVar2 = puVar19[0x16b];\n    if (iVar10 == 0) break;\n    if (cVar2 != '\0') {\n      uVar15 = quote(puVar5);\n      debug_logprintf(puVar7,uVar15);\n    }\n    (*(code *)PTR_free_000afd08)(puVar5);\n    puVar5 = (undefined *)xstrdup(*puVar13);\n    cVar4 = cVar1;\n  } while( true );" do (compound_statement "{\n    local_38 = (undefined *)0x0;\n    (*(code *)PTR_free_000afd08)(local_30);\n    local_30 = (undefined *)0x0;\n    iVar9 = (*pcVar6)(puVar13 + 1,puVar13 + 2);\n    puVar19 = PTR_opt_000af488;\n    if (iVar9 != 0) {\n      iVar10 = iri_new();\n      set_uri_encoding(iVar10,*(undefined4 *)(puVar19 + 0x21c),1);\n      *(undefined1 *)(iVar10 + 0xc) = 0;\n      iVar11 = url_parse(iVar9,&local_34,iVar10,1);\n      if (iVar11 == 0) {\n        puVar20 = (undefined *)url_error(iVar9,local_34);\n        puVar18 = (undefined *)\n                  (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7754,5);\n        logprintf(1,puVar18,iVar9,puVar20);\n        (*(code *)PTR_free_000afd08)(puVar5);\n      }\n      else {\n        if ((*(int *)(iVar11 + 4) == 0) || (*(int *)(iVar11 + 4) == puVar13[1])) {\n          iri_free(iVar10);\n          (*(code *)PTR_free_000afd08)(iVar9);\n          if ((1 < (uint)puVar13[1]) && (*(int *)(iVar11 + 4) != 0)) {\n            if (puVar13[1] - 2 < 2) goto LAB_0004d1d0;\n            url_free(iVar11);\n            goto LAB_0004cef8;\n          }\n          goto LAB_0004cfbc;\n        }\n        puVar18 = (undefined *)\n                  (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7778,5);\n        logprintf(1,puVar18,iVar9);\n        url_free(iVar11);\n        puVar20 = puVar5;\n      }\n      (*(code *)PTR_free_000afd08)(puVar20);\n      (*(code *)PTR_free_000afd08)(iVar9);\n      iri_free(iVar10);\n      if (bVar3) {\n        iVar9 = 0x29;\n        *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n        *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n        *(undefined4 *)(puVar19 + 500) = local_60;\n      }\n      else {\n        iVar9 = 0x29;\n      }\n      goto LAB_0004d368;\n    }\n    if ((uint)puVar13[1] < 2) {\n      iVar11 = 0;\nLAB_0004cfbc:\n      if (((puVar19[0x22c] != '\0') && (*(int *)PTR_hsts_store_000af570 != 0)) &&\n         (iVar9 = hsts_match(*(int *)PTR_hsts_store_000af570,puVar13), iVar9 != 0)) {\n        logprintf(0,puVar20 + 0x77a0);\n      }\n      iVar9 = http_loop(puVar13,param_1,&local_38,&local_30,local_7c,param_6,iVar11,param_8);\nLAB_0004d01c:\n      if (iVar11 != 0) {\n        url_free(iVar11);\n      }\n      puVar19 = PTR_opt_000af488;\n      if ((iVar9 == 6) || (iVar9 == 0x30)) {\n        (*(code *)PTR_free_000afd08)(local_30);\n        local_30 = (undefined *)0x0;\n        puVar18 = local_38;\n        if (local_38 == (undefined *)0x0) {\n          puVar18 = puVar8;\n        }\n        puVar18 = (undefined *)uri_merge(puVar5,puVar18);\n        (*(code *)PTR_free_000afd08)(local_38);\n        iVar10 = *(int *)(puVar19 + 0x218);\n        *(undefined *)(param_8 + 0xc) = puVar19[0x216];\n        local_38 = puVar18;\n        if (iVar10 != 0) {\n          set_uri_encoding(param_8,iVar10,1);\n        }\n        set_content_encoding(param_8,0);\n        (*(code *)PTR_free_000afd08)(*(undefined4 *)(param_8 + 8));\n        *(undefined4 *)(param_8 + 8) = 0;\n        puVar14 = (undefined4 *)url_parse(local_38,&local_34,param_8,1);\n        if (puVar14 == (undefined4 *)0x0) {\n          uVar15 = url_error(local_38,local_34);\n          uVar16 = escnonprint_uri(local_38);\n          puVar18 = PTR_s_hallenge__000af46c + 0x776c;\n          logprintf(1,puVar18,uVar16,uVar15);\n          if (puVar13 != param_1) {\n            url_free(puVar13);\n          }\n          (*(code *)PTR_free_000afd08)(puVar5);\n          (*(code *)PTR_free_000afd08)(local_38);\n          local_38 = (undefined *)0x0;\n          (*(code *)PTR_free_000afd08)(uVar15);\n          if (bVar3) {\n            *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n            *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n            *(undefined4 *)(puVar19 + 500) = local_60;\n          }\n          goto LAB_0004d368;\n        }\n        local_84 = local_84 + 1;\n        (*(code *)PTR_free_000afd08)(local_38);\n        local_38 = (undefined *)0x0;\n        local_38 = (undefined *)xstrdup(*puVar14);\n        if (*(int *)(puVar19 + 0x18) < local_84) {\n          puVar18 = (undefined *)\n                    (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x77d0,5);\n          logprintf(1,puVar18,*(undefined4 *)(puVar19 + 0x18));\n          url_free(puVar14);\n          if (puVar13 != param_1) {\n            url_free(puVar13);\n          }\n          (*(code *)PTR_free_000afd08)(puVar5);\n          (*(code *)PTR_free_000afd08)(local_38);\n          local_38 = (undefined *)0x0;\n          if (bVar3) {\n            iVar9 = 0x1b;\n            *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n            *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n            *(undefined4 *)(puVar19 + 500) = local_60;\n          }\n          else {\n            iVar9 = 0x1b;\n          }\n          goto LAB_0004d368;\n        }\n        (*(code *)PTR_free_000afd08)(puVar5);\n        puVar5 = local_38;\n        if (puVar13 != param_1) {\n          url_free(puVar13);\n        }\n        puVar13 = puVar14;\n        if ((iVar9 != 0x30) && (!bVar3)) {\n          local_64 = *(undefined4 *)(puVar19 + 0x1f8);\n          *(undefined4 *)(puVar19 + 0x1f8) = 0;\n          local_5c = *(undefined4 *)(puVar19 + 0x1fc);\n          *(undefined4 *)(puVar19 + 0x1fc) = 0;\n          bVar3 = true;\n          local_60 = *(undefined4 *)(puVar19 + 500);\n          *(undefined4 *)(puVar19 + 500) = 0;\n        }\n        goto LAB_0004ce08;\n      }\n    }\n    else {\n      if (puVar13[1] - 2 < 2) {\n        iVar11 = 0;\nLAB_0004d1d0:\n        if (local_84 == 0) {\n          iVar9 = (*(code *)PTR_ftp_loop_000af968)\n                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,\n                             PTR_opt_000af488[0xe1]);\n        }\n        else {\n          iVar9 = (*(code *)PTR_ftp_loop_000af968)\n                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,0);\n          if ((local_30 == (undefined *)0x0) || (1 < puVar13[1] - 2)) {\n            local_68 = 0;\n          }\n          else {\n            local_68 = has_html_suffix_p();\n            if (local_68 != 0) {\n              local_68 = 0;\n              *param_6 = *param_6 | 1;\n            }\n          }\n        }\n        goto LAB_0004d01c;\n      }\nLAB_0004cef8:\n      iVar9 = 0;\n    }\n    (*(code *)PTR_free_000afd08)(local_38);\n    uVar12 = *param_6 & 2;\n    local_38 = (undefined *)0x0;\n    if ((uVar12 != 0) || (cVar1 = *(char *)(param_8 + 0xc), cVar1 == '\0')) {\n      puVar18 = local_30;\n      if ((local_30 == (undefined *)0x0) ||\n         (puVar19 = PTR_opt_000af488, puVar13 == (undefined4 *)0x0)) goto LAB_0004d2f8;\n      goto LAB_0004d2e0;\n    }\n    *(undefined1 *)(param_8 + 0xc) = 0;\n    if (puVar13 != param_1) {\n      url_free(puVar13);\n    }\n    puVar18 = (undefined *)0x0;\n    puVar13 = (undefined4 *)url_parse(param_2,0,param_8,1);\n    puVar19 = PTR_opt_000af488;\n    if (puVar13 == (undefined4 *)0x0) {\n      if (PTR_opt_000af488[0x16b] != '\0') {\n        puVar18 = (undefined *)quote(puVar5);\n        debug_logprintf(PTR_s_hallenge__000af46c + 0x783c);\n      }\n      goto LAB_0004d2f8;\n    }\n    iVar10 = (*(code *)PTR_strcmp_000afacc)(*puVar13,*param_1);\n    cVar2 = puVar19[0x16b];\n    if (iVar10 == 0) break;\n    if (cVar2 != '\0') {\n      uVar15 = quote(puVar5);\n      debug_logprintf(puVar7,uVar15);\n    }\n    (*(code *)PTR_free_000afd08)(puVar5);\n    puVar5 = (undefined *)xstrdup(*puVar13);\n    cVar4 = cVar1;\n  }" { (expression_statement "local_38 = (undefined *)0x0;" (assignment_expression "local_38 = (undefined *)0x0" identifier = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(*(code *)PTR_free_000afd08)(local_30);" (call_expression "(*(code *)PTR_free_000afd08)(local_30)" (parenthesized_expression "(*(code *)PTR_free_000afd08)" ( (pointer_expression "*(code *)PTR_free_000afd08" * (cast_expression "(code *)PTR_free_000afd08" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_30)" ( identifier ))) ;) (expression_statement "local_30 = (undefined *)0x0;" (assignment_expression "local_30 = (undefined *)0x0" identifier = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar9 = (*pcVar6)(puVar13 + 1,puVar13 + 2);" (assignment_expression "iVar9 = (*pcVar6)(puVar13 + 1,puVar13 + 2)" identifier = (call_expression "(*pcVar6)(puVar13 + 1,puVar13 + 2)" (parenthesized_expression "(*pcVar6)" ( (pointer_expression "*pcVar6" * identifier) )) (argument_list "(puVar13 + 1,puVar13 + 2)" ( (binary_expression "puVar13 + 1" identifier + number_literal) , (binary_expression "puVar13 + 2" identifier + number_literal) )))) ;) (expression_statement "puVar19 = PTR_opt_000af488;" (assignment_expression "puVar19 = PTR_opt_000af488" identifier = identifier) ;) (if_statement "if (iVar9 != 0) {\n      iVar10 = iri_new();\n      set_uri_encoding(iVar10,*(undefined4 *)(puVar19 + 0x21c),1);\n      *(undefined1 *)(iVar10 + 0xc) = 0;\n      iVar11 = url_parse(iVar9,&local_34,iVar10,1);\n      if (iVar11 == 0) {\n        puVar20 = (undefined *)url_error(iVar9,local_34);\n        puVar18 = (undefined *)\n                  (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7754,5);\n        logprintf(1,puVar18,iVar9,puVar20);\n        (*(code *)PTR_free_000afd08)(puVar5);\n      }\n      else {\n        if ((*(int *)(iVar11 + 4) == 0) || (*(int *)(iVar11 + 4) == puVar13[1])) {\n          iri_free(iVar10);\n          (*(code *)PTR_free_000afd08)(iVar9);\n          if ((1 < (uint)puVar13[1]) && (*(int *)(iVar11 + 4) != 0)) {\n            if (puVar13[1] - 2 < 2) goto LAB_0004d1d0;\n            url_free(iVar11);\n            goto LAB_0004cef8;\n          }\n          goto LAB_0004cfbc;\n        }\n        puVar18 = (undefined *)\n                  (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7778,5);\n        logprintf(1,puVar18,iVar9);\n        url_free(iVar11);\n        puVar20 = puVar5;\n      }\n      (*(code *)PTR_free_000afd08)(puVar20);\n      (*(code *)PTR_free_000afd08)(iVar9);\n      iri_free(iVar10);\n      if (bVar3) {\n        iVar9 = 0x29;\n        *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n        *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n        *(undefined4 *)(puVar19 + 500) = local_60;\n      }\n      else {\n        iVar9 = 0x29;\n      }\n      goto LAB_0004d368;\n    }" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar10 = iri_new();\n      set_uri_encoding(iVar10,*(undefined4 *)(puVar19 + 0x21c),1);\n      *(undefined1 *)(iVar10 + 0xc) = 0;\n      iVar11 = url_parse(iVar9,&local_34,iVar10,1);\n      if (iVar11 == 0) {\n        puVar20 = (undefined *)url_error(iVar9,local_34);\n        puVar18 = (undefined *)\n                  (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7754,5);\n        logprintf(1,puVar18,iVar9,puVar20);\n        (*(code *)PTR_free_000afd08)(puVar5);\n      }\n      else {\n        if ((*(int *)(iVar11 + 4) == 0) || (*(int *)(iVar11 + 4) == puVar13[1])) {\n          iri_free(iVar10);\n          (*(code *)PTR_free_000afd08)(iVar9);\n          if ((1 < (uint)puVar13[1]) && (*(int *)(iVar11 + 4) != 0)) {\n            if (puVar13[1] - 2 < 2) goto LAB_0004d1d0;\n            url_free(iVar11);\n            goto LAB_0004cef8;\n          }\n          goto LAB_0004cfbc;\n        }\n        puVar18 = (undefined *)\n                  (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7778,5);\n        logprintf(1,puVar18,iVar9);\n        url_free(iVar11);\n        puVar20 = puVar5;\n      }\n      (*(code *)PTR_free_000afd08)(puVar20);\n      (*(code *)PTR_free_000afd08)(iVar9);\n      iri_free(iVar10);\n      if (bVar3) {\n        iVar9 = 0x29;\n        *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n        *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n        *(undefined4 *)(puVar19 + 500) = local_60;\n      }\n      else {\n        iVar9 = 0x29;\n      }\n      goto LAB_0004d368;\n    }" { (expression_statement "iVar10 = iri_new();" (assignment_expression "iVar10 = iri_new()" identifier = (call_expression "iri_new()" identifier (argument_list "()" ( )))) ;) (expression_statement "set_uri_encoding(iVar10,*(undefined4 *)(puVar19 + 0x21c),1);" (call_expression "set_uri_encoding(iVar10,*(undefined4 *)(puVar19 + 0x21c),1)" identifier (argument_list "(iVar10,*(undefined4 *)(puVar19 + 0x21c),1)" ( identifier , (pointer_expression "*(undefined4 *)(puVar19 + 0x21c)" * (cast_expression "(undefined4 *)(puVar19 + 0x21c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + 0x21c)" ( (binary_expression "puVar19 + 0x21c" identifier + number_literal) )))) , number_literal ))) ;) (expression_statement "*(undefined1 *)(iVar10 + 0xc) = 0;" (assignment_expression "*(undefined1 *)(iVar10 + 0xc) = 0" (pointer_expression "*(undefined1 *)(iVar10 + 0xc)" * (cast_expression "(undefined1 *)(iVar10 + 0xc)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0xc)" ( (binary_expression "iVar10 + 0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar11 = url_parse(iVar9,&local_34,iVar10,1);" (assignment_expression "iVar11 = url_parse(iVar9,&local_34,iVar10,1)" identifier = (call_expression "url_parse(iVar9,&local_34,iVar10,1)" identifier (argument_list "(iVar9,&local_34,iVar10,1)" ( identifier , (pointer_expression "&local_34" & identifier) , identifier , number_literal )))) ;) (if_statement "if (iVar11 == 0) {\n        puVar20 = (undefined *)url_error(iVar9,local_34);\n        puVar18 = (undefined *)\n                  (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7754,5);\n        logprintf(1,puVar18,iVar9,puVar20);\n        (*(code *)PTR_free_000afd08)(puVar5);\n      }\n      else {\n        if ((*(int *)(iVar11 + 4) == 0) || (*(int *)(iVar11 + 4) == puVar13[1])) {\n          iri_free(iVar10);\n          (*(code *)PTR_free_000afd08)(iVar9);\n          if ((1 < (uint)puVar13[1]) && (*(int *)(iVar11 + 4) != 0)) {\n            if (puVar13[1] - 2 < 2) goto LAB_0004d1d0;\n            url_free(iVar11);\n            goto LAB_0004cef8;\n          }\n          goto LAB_0004cfbc;\n        }\n        puVar18 = (undefined *)\n                  (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7778,5);\n        logprintf(1,puVar18,iVar9);\n        url_free(iVar11);\n        puVar20 = puVar5;\n      }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n        puVar20 = (undefined *)url_error(iVar9,local_34);\n        puVar18 = (undefined *)\n                  (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7754,5);\n        logprintf(1,puVar18,iVar9,puVar20);\n        (*(code *)PTR_free_000afd08)(puVar5);\n      }" { (expression_statement "puVar20 = (undefined *)url_error(iVar9,local_34);" (assignment_expression "puVar20 = (undefined *)url_error(iVar9,local_34)" identifier = (cast_expression "(undefined *)url_error(iVar9,local_34)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "url_error(iVar9,local_34)" identifier (argument_list "(iVar9,local_34)" ( identifier , identifier ))))) ;) (expression_statement "puVar18 = (undefined *)\n                  (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7754,5);" (assignment_expression "puVar18 = (undefined *)\n                  (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7754,5)" identifier = (cast_expression "(undefined *)\n                  (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7754,5)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7754,5)" (parenthesized_expression "(*(code *)PTR_dcgettext_000afcf4)" ( (pointer_expression "*(code *)PTR_dcgettext_000afcf4" * (cast_expression "(code *)PTR_dcgettext_000afcf4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,PTR_s_hallenge__000af46c + 0x7754,5)" ( number_literal , (binary_expression "PTR_s_hallenge__000af46c + 0x7754" identifier + number_literal) , number_literal ))))) ;) (expression_statement "logprintf(1,puVar18,iVar9,puVar20);" (call_expression "logprintf(1,puVar18,iVar9,puVar20)" identifier (argument_list "(1,puVar18,iVar9,puVar20)" ( number_literal , identifier , identifier , identifier ))) ;) (expression_statement "(*(code *)PTR_free_000afd08)(puVar5);" (call_expression "(*(code *)PTR_free_000afd08)(puVar5)" (parenthesized_expression "(*(code *)PTR_free_000afd08)" ( (pointer_expression "*(code *)PTR_free_000afd08" * (cast_expression "(code *)PTR_free_000afd08" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar5)" ( identifier ))) ;) }) (else_clause "else {\n        if ((*(int *)(iVar11 + 4) == 0) || (*(int *)(iVar11 + 4) == puVar13[1])) {\n          iri_free(iVar10);\n          (*(code *)PTR_free_000afd08)(iVar9);\n          if ((1 < (uint)puVar13[1]) && (*(int *)(iVar11 + 4) != 0)) {\n            if (puVar13[1] - 2 < 2) goto LAB_0004d1d0;\n            url_free(iVar11);\n            goto LAB_0004cef8;\n          }\n          goto LAB_0004cfbc;\n        }\n        puVar18 = (undefined *)\n                  (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7778,5);\n        logprintf(1,puVar18,iVar9);\n        url_free(iVar11);\n        puVar20 = puVar5;\n      }" else (compound_statement "{\n        if ((*(int *)(iVar11 + 4) == 0) || (*(int *)(iVar11 + 4) == puVar13[1])) {\n          iri_free(iVar10);\n          (*(code *)PTR_free_000afd08)(iVar9);\n          if ((1 < (uint)puVar13[1]) && (*(int *)(iVar11 + 4) != 0)) {\n            if (puVar13[1] - 2 < 2) goto LAB_0004d1d0;\n            url_free(iVar11);\n            goto LAB_0004cef8;\n          }\n          goto LAB_0004cfbc;\n        }\n        puVar18 = (undefined *)\n                  (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7778,5);\n        logprintf(1,puVar18,iVar9);\n        url_free(iVar11);\n        puVar20 = puVar5;\n      }" { (if_statement "if ((*(int *)(iVar11 + 4) == 0) || (*(int *)(iVar11 + 4) == puVar13[1])) {\n          iri_free(iVar10);\n          (*(code *)PTR_free_000afd08)(iVar9);\n          if ((1 < (uint)puVar13[1]) && (*(int *)(iVar11 + 4) != 0)) {\n            if (puVar13[1] - 2 < 2) goto LAB_0004d1d0;\n            url_free(iVar11);\n            goto LAB_0004cef8;\n          }\n          goto LAB_0004cfbc;\n        }" if (parenthesized_expression "((*(int *)(iVar11 + 4) == 0) || (*(int *)(iVar11 + 4) == puVar13[1]))" ( (binary_expression "(*(int *)(iVar11 + 4) == 0) || (*(int *)(iVar11 + 4) == puVar13[1])" (parenthesized_expression "(*(int *)(iVar11 + 4) == 0)" ( (binary_expression "*(int *)(iVar11 + 4) == 0" (pointer_expression "*(int *)(iVar11 + 4)" * (cast_expression "(int *)(iVar11 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 4)" ( (binary_expression "iVar11 + 4" identifier + number_literal) )))) == number_literal) )) || (parenthesized_expression "(*(int *)(iVar11 + 4) == puVar13[1])" ( (binary_expression "*(int *)(iVar11 + 4) == puVar13[1]" (pointer_expression "*(int *)(iVar11 + 4)" * (cast_expression "(int *)(iVar11 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 4)" ( (binary_expression "iVar11 + 4" identifier + number_literal) )))) == (subscript_expression "puVar13[1]" identifier [ number_literal ])) ))) )) (compound_statement "{\n          iri_free(iVar10);\n          (*(code *)PTR_free_000afd08)(iVar9);\n          if ((1 < (uint)puVar13[1]) && (*(int *)(iVar11 + 4) != 0)) {\n            if (puVar13[1] - 2 < 2) goto LAB_0004d1d0;\n            url_free(iVar11);\n            goto LAB_0004cef8;\n          }\n          goto LAB_0004cfbc;\n        }" { (expression_statement "iri_free(iVar10);" (call_expression "iri_free(iVar10)" identifier (argument_list "(iVar10)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_free_000afd08)(iVar9);" (call_expression "(*(code *)PTR_free_000afd08)(iVar9)" (parenthesized_expression "(*(code *)PTR_free_000afd08)" ( (pointer_expression "*(code *)PTR_free_000afd08" * (cast_expression "(code *)PTR_free_000afd08" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar9)" ( identifier ))) ;) (if_statement "if ((1 < (uint)puVar13[1]) && (*(int *)(iVar11 + 4) != 0)) {\n            if (puVar13[1] - 2 < 2) goto LAB_0004d1d0;\n            url_free(iVar11);\n            goto LAB_0004cef8;\n          }" if (parenthesized_expression "((1 < (uint)puVar13[1]) && (*(int *)(iVar11 + 4) != 0))" ( (binary_expression "(1 < (uint)puVar13[1]) && (*(int *)(iVar11 + 4) != 0)" (parenthesized_expression "(1 < (uint)puVar13[1])" ( (binary_expression "1 < (uint)puVar13[1]" number_literal < (cast_expression "(uint)puVar13[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar13[1]" identifier [ number_literal ]))) )) && (parenthesized_expression "(*(int *)(iVar11 + 4) != 0)" ( (binary_expression "*(int *)(iVar11 + 4) != 0" (pointer_expression "*(int *)(iVar11 + 4)" * (cast_expression "(int *)(iVar11 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 4)" ( (binary_expression "iVar11 + 4" identifier + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n            if (puVar13[1] - 2 < 2) goto LAB_0004d1d0;\n            url_free(iVar11);\n            goto LAB_0004cef8;\n          }" { (if_statement "if (puVar13[1] - 2 < 2) goto LAB_0004d1d0;" if (parenthesized_expression "(puVar13[1] - 2 < 2)" ( (binary_expression "puVar13[1] - 2 < 2" (binary_expression "puVar13[1] - 2" (subscript_expression "puVar13[1]" identifier [ number_literal ]) - number_literal) < number_literal) )) (goto_statement "goto LAB_0004d1d0;" goto statement_identifier ;)) (expression_statement "url_free(iVar11);" (call_expression "url_free(iVar11)" identifier (argument_list "(iVar11)" ( identifier ))) ;) (goto_statement "goto LAB_0004cef8;" goto statement_identifier ;) })) (goto_statement "goto LAB_0004cfbc;" goto statement_identifier ;) })) (expression_statement "puVar18 = (undefined *)\n                  (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7778,5);" (assignment_expression "puVar18 = (undefined *)\n                  (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7778,5)" identifier = (cast_expression "(undefined *)\n                  (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7778,5)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7778,5)" (parenthesized_expression "(*(code *)PTR_dcgettext_000afcf4)" ( (pointer_expression "*(code *)PTR_dcgettext_000afcf4" * (cast_expression "(code *)PTR_dcgettext_000afcf4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,PTR_s_hallenge__000af46c + 0x7778,5)" ( number_literal , (binary_expression "PTR_s_hallenge__000af46c + 0x7778" identifier + number_literal) , number_literal ))))) ;) (expression_statement "logprintf(1,puVar18,iVar9);" (call_expression "logprintf(1,puVar18,iVar9)" identifier (argument_list "(1,puVar18,iVar9)" ( number_literal , identifier , identifier ))) ;) (expression_statement "url_free(iVar11);" (call_expression "url_free(iVar11)" identifier (argument_list "(iVar11)" ( identifier ))) ;) (expression_statement "puVar20 = puVar5;" (assignment_expression "puVar20 = puVar5" identifier = identifier) ;) }))) (expression_statement "(*(code *)PTR_free_000afd08)(puVar20);" (call_expression "(*(code *)PTR_free_000afd08)(puVar20)" (parenthesized_expression "(*(code *)PTR_free_000afd08)" ( (pointer_expression "*(code *)PTR_free_000afd08" * (cast_expression "(code *)PTR_free_000afd08" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar20)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_free_000afd08)(iVar9);" (call_expression "(*(code *)PTR_free_000afd08)(iVar9)" (parenthesized_expression "(*(code *)PTR_free_000afd08)" ( (pointer_expression "*(code *)PTR_free_000afd08" * (cast_expression "(code *)PTR_free_000afd08" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar9)" ( identifier ))) ;) (expression_statement "iri_free(iVar10);" (call_expression "iri_free(iVar10)" identifier (argument_list "(iVar10)" ( identifier ))) ;) (if_statement "if (bVar3) {\n        iVar9 = 0x29;\n        *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n        *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n        *(undefined4 *)(puVar19 + 500) = local_60;\n      }\n      else {\n        iVar9 = 0x29;\n      }" if (parenthesized_expression "(bVar3)" ( identifier )) (compound_statement "{\n        iVar9 = 0x29;\n        *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n        *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n        *(undefined4 *)(puVar19 + 500) = local_60;\n      }" { (expression_statement "iVar9 = 0x29;" (assignment_expression "iVar9 = 0x29" identifier = number_literal) ;) (expression_statement "*(undefined4 *)(puVar19 + 0x1f8) = local_64;" (assignment_expression "*(undefined4 *)(puVar19 + 0x1f8) = local_64" (pointer_expression "*(undefined4 *)(puVar19 + 0x1f8)" * (cast_expression "(undefined4 *)(puVar19 + 0x1f8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + 0x1f8)" ( (binary_expression "puVar19 + 0x1f8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar19 + 0x1fc) = local_5c;" (assignment_expression "*(undefined4 *)(puVar19 + 0x1fc) = local_5c" (pointer_expression "*(undefined4 *)(puVar19 + 0x1fc)" * (cast_expression "(undefined4 *)(puVar19 + 0x1fc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + 0x1fc)" ( (binary_expression "puVar19 + 0x1fc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar19 + 500) = local_60;" (assignment_expression "*(undefined4 *)(puVar19 + 500) = local_60" (pointer_expression "*(undefined4 *)(puVar19 + 500)" * (cast_expression "(undefined4 *)(puVar19 + 500)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + 500)" ( (binary_expression "puVar19 + 500" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n        iVar9 = 0x29;\n      }" else (compound_statement "{\n        iVar9 = 0x29;\n      }" { (expression_statement "iVar9 = 0x29;" (assignment_expression "iVar9 = 0x29" identifier = number_literal) ;) }))) (goto_statement "goto LAB_0004d368;" goto statement_identifier ;) })) (if_statement "if ((uint)puVar13[1] < 2) {\n      iVar11 = 0;\nLAB_0004cfbc:\n      if (((puVar19[0x22c] != '\0') && (*(int *)PTR_hsts_store_000af570 != 0)) &&\n         (iVar9 = hsts_match(*(int *)PTR_hsts_store_000af570,puVar13), iVar9 != 0)) {\n        logprintf(0,puVar20 + 0x77a0);\n      }\n      iVar9 = http_loop(puVar13,param_1,&local_38,&local_30,local_7c,param_6,iVar11,param_8);\nLAB_0004d01c:\n      if (iVar11 != 0) {\n        url_free(iVar11);\n      }\n      puVar19 = PTR_opt_000af488;\n      if ((iVar9 == 6) || (iVar9 == 0x30)) {\n        (*(code *)PTR_free_000afd08)(local_30);\n        local_30 = (undefined *)0x0;\n        puVar18 = local_38;\n        if (local_38 == (undefined *)0x0) {\n          puVar18 = puVar8;\n        }\n        puVar18 = (undefined *)uri_merge(puVar5,puVar18);\n        (*(code *)PTR_free_000afd08)(local_38);\n        iVar10 = *(int *)(puVar19 + 0x218);\n        *(undefined *)(param_8 + 0xc) = puVar19[0x216];\n        local_38 = puVar18;\n        if (iVar10 != 0) {\n          set_uri_encoding(param_8,iVar10,1);\n        }\n        set_content_encoding(param_8,0);\n        (*(code *)PTR_free_000afd08)(*(undefined4 *)(param_8 + 8));\n        *(undefined4 *)(param_8 + 8) = 0;\n        puVar14 = (undefined4 *)url_parse(local_38,&local_34,param_8,1);\n        if (puVar14 == (undefined4 *)0x0) {\n          uVar15 = url_error(local_38,local_34);\n          uVar16 = escnonprint_uri(local_38);\n          puVar18 = PTR_s_hallenge__000af46c + 0x776c;\n          logprintf(1,puVar18,uVar16,uVar15);\n          if (puVar13 != param_1) {\n            url_free(puVar13);\n          }\n          (*(code *)PTR_free_000afd08)(puVar5);\n          (*(code *)PTR_free_000afd08)(local_38);\n          local_38 = (undefined *)0x0;\n          (*(code *)PTR_free_000afd08)(uVar15);\n          if (bVar3) {\n            *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n            *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n            *(undefined4 *)(puVar19 + 500) = local_60;\n          }\n          goto LAB_0004d368;\n        }\n        local_84 = local_84 + 1;\n        (*(code *)PTR_free_000afd08)(local_38);\n        local_38 = (undefined *)0x0;\n        local_38 = (undefined *)xstrdup(*puVar14);\n        if (*(int *)(puVar19 + 0x18) < local_84) {\n          puVar18 = (undefined *)\n                    (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x77d0,5);\n          logprintf(1,puVar18,*(undefined4 *)(puVar19 + 0x18));\n          url_free(puVar14);\n          if (puVar13 != param_1) {\n            url_free(puVar13);\n          }\n          (*(code *)PTR_free_000afd08)(puVar5);\n          (*(code *)PTR_free_000afd08)(local_38);\n          local_38 = (undefined *)0x0;\n          if (bVar3) {\n            iVar9 = 0x1b;\n            *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n            *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n            *(undefined4 *)(puVar19 + 500) = local_60;\n          }\n          else {\n            iVar9 = 0x1b;\n          }\n          goto LAB_0004d368;\n        }\n        (*(code *)PTR_free_000afd08)(puVar5);\n        puVar5 = local_38;\n        if (puVar13 != param_1) {\n          url_free(puVar13);\n        }\n        puVar13 = puVar14;\n        if ((iVar9 != 0x30) && (!bVar3)) {\n          local_64 = *(undefined4 *)(puVar19 + 0x1f8);\n          *(undefined4 *)(puVar19 + 0x1f8) = 0;\n          local_5c = *(undefined4 *)(puVar19 + 0x1fc);\n          *(undefined4 *)(puVar19 + 0x1fc) = 0;\n          bVar3 = true;\n          local_60 = *(undefined4 *)(puVar19 + 500);\n          *(undefined4 *)(puVar19 + 500) = 0;\n        }\n        goto LAB_0004ce08;\n      }\n    }\n    else {\n      if (puVar13[1] - 2 < 2) {\n        iVar11 = 0;\nLAB_0004d1d0:\n        if (local_84 == 0) {\n          iVar9 = (*(code *)PTR_ftp_loop_000af968)\n                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,\n                             PTR_opt_000af488[0xe1]);\n        }\n        else {\n          iVar9 = (*(code *)PTR_ftp_loop_000af968)\n                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,0);\n          if ((local_30 == (undefined *)0x0) || (1 < puVar13[1] - 2)) {\n            local_68 = 0;\n          }\n          else {\n            local_68 = has_html_suffix_p();\n            if (local_68 != 0) {\n              local_68 = 0;\n              *param_6 = *param_6 | 1;\n            }\n          }\n        }\n        goto LAB_0004d01c;\n      }\nLAB_0004cef8:\n      iVar9 = 0;\n    }" if (parenthesized_expression "((uint)puVar13[1] < 2)" ( (binary_expression "(uint)puVar13[1] < 2" (cast_expression "(uint)puVar13[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar13[1]" identifier [ number_literal ])) < number_literal) )) (compound_statement "{\n      iVar11 = 0;\nLAB_0004cfbc:\n      if (((puVar19[0x22c] != '\0') && (*(int *)PTR_hsts_store_000af570 != 0)) &&\n         (iVar9 = hsts_match(*(int *)PTR_hsts_store_000af570,puVar13), iVar9 != 0)) {\n        logprintf(0,puVar20 + 0x77a0);\n      }\n      iVar9 = http_loop(puVar13,param_1,&local_38,&local_30,local_7c,param_6,iVar11,param_8);\nLAB_0004d01c:\n      if (iVar11 != 0) {\n        url_free(iVar11);\n      }\n      puVar19 = PTR_opt_000af488;\n      if ((iVar9 == 6) || (iVar9 == 0x30)) {\n        (*(code *)PTR_free_000afd08)(local_30);\n        local_30 = (undefined *)0x0;\n        puVar18 = local_38;\n        if (local_38 == (undefined *)0x0) {\n          puVar18 = puVar8;\n        }\n        puVar18 = (undefined *)uri_merge(puVar5,puVar18);\n        (*(code *)PTR_free_000afd08)(local_38);\n        iVar10 = *(int *)(puVar19 + 0x218);\n        *(undefined *)(param_8 + 0xc) = puVar19[0x216];\n        local_38 = puVar18;\n        if (iVar10 != 0) {\n          set_uri_encoding(param_8,iVar10,1);\n        }\n        set_content_encoding(param_8,0);\n        (*(code *)PTR_free_000afd08)(*(undefined4 *)(param_8 + 8));\n        *(undefined4 *)(param_8 + 8) = 0;\n        puVar14 = (undefined4 *)url_parse(local_38,&local_34,param_8,1);\n        if (puVar14 == (undefined4 *)0x0) {\n          uVar15 = url_error(local_38,local_34);\n          uVar16 = escnonprint_uri(local_38);\n          puVar18 = PTR_s_hallenge__000af46c + 0x776c;\n          logprintf(1,puVar18,uVar16,uVar15);\n          if (puVar13 != param_1) {\n            url_free(puVar13);\n          }\n          (*(code *)PTR_free_000afd08)(puVar5);\n          (*(code *)PTR_free_000afd08)(local_38);\n          local_38 = (undefined *)0x0;\n          (*(code *)PTR_free_000afd08)(uVar15);\n          if (bVar3) {\n            *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n            *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n            *(undefined4 *)(puVar19 + 500) = local_60;\n          }\n          goto LAB_0004d368;\n        }\n        local_84 = local_84 + 1;\n        (*(code *)PTR_free_000afd08)(local_38);\n        local_38 = (undefined *)0x0;\n        local_38 = (undefined *)xstrdup(*puVar14);\n        if (*(int *)(puVar19 + 0x18) < local_84) {\n          puVar18 = (undefined *)\n                    (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x77d0,5);\n          logprintf(1,puVar18,*(undefined4 *)(puVar19 + 0x18));\n          url_free(puVar14);\n          if (puVar13 != param_1) {\n            url_free(puVar13);\n          }\n          (*(code *)PTR_free_000afd08)(puVar5);\n          (*(code *)PTR_free_000afd08)(local_38);\n          local_38 = (undefined *)0x0;\n          if (bVar3) {\n            iVar9 = 0x1b;\n            *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n            *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n            *(undefined4 *)(puVar19 + 500) = local_60;\n          }\n          else {\n            iVar9 = 0x1b;\n          }\n          goto LAB_0004d368;\n        }\n        (*(code *)PTR_free_000afd08)(puVar5);\n        puVar5 = local_38;\n        if (puVar13 != param_1) {\n          url_free(puVar13);\n        }\n        puVar13 = puVar14;\n        if ((iVar9 != 0x30) && (!bVar3)) {\n          local_64 = *(undefined4 *)(puVar19 + 0x1f8);\n          *(undefined4 *)(puVar19 + 0x1f8) = 0;\n          local_5c = *(undefined4 *)(puVar19 + 0x1fc);\n          *(undefined4 *)(puVar19 + 0x1fc) = 0;\n          bVar3 = true;\n          local_60 = *(undefined4 *)(puVar19 + 500);\n          *(undefined4 *)(puVar19 + 500) = 0;\n        }\n        goto LAB_0004ce08;\n      }\n    }" { (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) (labeled_statement "LAB_0004cfbc:\n      if (((puVar19[0x22c] != '\0') && (*(int *)PTR_hsts_store_000af570 != 0)) &&\n         (iVar9 = hsts_match(*(int *)PTR_hsts_store_000af570,puVar13), iVar9 != 0)) {\n        logprintf(0,puVar20 + 0x77a0);\n      }" statement_identifier : (if_statement "if (((puVar19[0x22c] != '\0') && (*(int *)PTR_hsts_store_000af570 != 0)) &&\n         (iVar9 = hsts_match(*(int *)PTR_hsts_store_000af570,puVar13), iVar9 != 0)) {\n        logprintf(0,puVar20 + 0x77a0);\n      }" if (parenthesized_expression "(((puVar19[0x22c] != '\0') && (*(int *)PTR_hsts_store_000af570 != 0)) &&\n         (iVar9 = hsts_match(*(int *)PTR_hsts_store_000af570,puVar13), iVar9 != 0))" ( (binary_expression "((puVar19[0x22c] != '\0') && (*(int *)PTR_hsts_store_000af570 != 0)) &&\n         (iVar9 = hsts_match(*(int *)PTR_hsts_store_000af570,puVar13), iVar9 != 0)" (parenthesized_expression "((puVar19[0x22c] != '\0') && (*(int *)PTR_hsts_store_000af570 != 0))" ( (binary_expression "(puVar19[0x22c] != '\0') && (*(int *)PTR_hsts_store_000af570 != 0)" (parenthesized_expression "(puVar19[0x22c] != '\0')" ( (binary_expression "puVar19[0x22c] != '\0'" (subscript_expression "puVar19[0x22c]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(*(int *)PTR_hsts_store_000af570 != 0)" ( (binary_expression "*(int *)PTR_hsts_store_000af570 != 0" (pointer_expression "*(int *)PTR_hsts_store_000af570" * (cast_expression "(int *)PTR_hsts_store_000af570" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) != number_literal) ))) )) && (parenthesized_expression "(iVar9 = hsts_match(*(int *)PTR_hsts_store_000af570,puVar13), iVar9 != 0)" ( (comma_expression "iVar9 = hsts_match(*(int *)PTR_hsts_store_000af570,puVar13), iVar9 != 0" (assignment_expression "iVar9 = hsts_match(*(int *)PTR_hsts_store_000af570,puVar13)" identifier = (call_expression "hsts_match(*(int *)PTR_hsts_store_000af570,puVar13)" identifier (argument_list "(*(int *)PTR_hsts_store_000af570,puVar13)" ( (pointer_expression "*(int *)PTR_hsts_store_000af570" * (cast_expression "(int *)PTR_hsts_store_000af570" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) , identifier )))) , (binary_expression "iVar9 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n        logprintf(0,puVar20 + 0x77a0);\n      }" { (expression_statement "logprintf(0,puVar20 + 0x77a0);" (call_expression "logprintf(0,puVar20 + 0x77a0)" identifier (argument_list "(0,puVar20 + 0x77a0)" ( number_literal , (binary_expression "puVar20 + 0x77a0" identifier + number_literal) ))) ;) }))) (expression_statement "iVar9 = http_loop(puVar13,param_1,&local_38,&local_30,local_7c,param_6,iVar11,param_8);" (assignment_expression "iVar9 = http_loop(puVar13,param_1,&local_38,&local_30,local_7c,param_6,iVar11,param_8)" identifier = (call_expression "http_loop(puVar13,param_1,&local_38,&local_30,local_7c,param_6,iVar11,param_8)" identifier (argument_list "(puVar13,param_1,&local_38,&local_30,local_7c,param_6,iVar11,param_8)" ( identifier , identifier , (pointer_expression "&local_38" & identifier) , (pointer_expression "&local_30" & identifier) , identifier , identifier , identifier , identifier )))) ;) (labeled_statement "LAB_0004d01c:\n      if (iVar11 != 0) {\n        url_free(iVar11);\n      }" statement_identifier : (if_statement "if (iVar11 != 0) {\n        url_free(iVar11);\n      }" if (parenthesized_expression "(iVar11 != 0)" ( (binary_expression "iVar11 != 0" identifier != number_literal) )) (compound_statement "{\n        url_free(iVar11);\n      }" { (expression_statement "url_free(iVar11);" (call_expression "url_free(iVar11)" identifier (argument_list "(iVar11)" ( identifier ))) ;) }))) (expression_statement "puVar19 = PTR_opt_000af488;" (assignment_expression "puVar19 = PTR_opt_000af488" identifier = identifier) ;) (if_statement "if ((iVar9 == 6) || (iVar9 == 0x30)) {\n        (*(code *)PTR_free_000afd08)(local_30);\n        local_30 = (undefined *)0x0;\n        puVar18 = local_38;\n        if (local_38 == (undefined *)0x0) {\n          puVar18 = puVar8;\n        }\n        puVar18 = (undefined *)uri_merge(puVar5,puVar18);\n        (*(code *)PTR_free_000afd08)(local_38);\n        iVar10 = *(int *)(puVar19 + 0x218);\n        *(undefined *)(param_8 + 0xc) = puVar19[0x216];\n        local_38 = puVar18;\n        if (iVar10 != 0) {\n          set_uri_encoding(param_8,iVar10,1);\n        }\n        set_content_encoding(param_8,0);\n        (*(code *)PTR_free_000afd08)(*(undefined4 *)(param_8 + 8));\n        *(undefined4 *)(param_8 + 8) = 0;\n        puVar14 = (undefined4 *)url_parse(local_38,&local_34,param_8,1);\n        if (puVar14 == (undefined4 *)0x0) {\n          uVar15 = url_error(local_38,local_34);\n          uVar16 = escnonprint_uri(local_38);\n          puVar18 = PTR_s_hallenge__000af46c + 0x776c;\n          logprintf(1,puVar18,uVar16,uVar15);\n          if (puVar13 != param_1) {\n            url_free(puVar13);\n          }\n          (*(code *)PTR_free_000afd08)(puVar5);\n          (*(code *)PTR_free_000afd08)(local_38);\n          local_38 = (undefined *)0x0;\n          (*(code *)PTR_free_000afd08)(uVar15);\n          if (bVar3) {\n            *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n            *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n            *(undefined4 *)(puVar19 + 500) = local_60;\n          }\n          goto LAB_0004d368;\n        }\n        local_84 = local_84 + 1;\n        (*(code *)PTR_free_000afd08)(local_38);\n        local_38 = (undefined *)0x0;\n        local_38 = (undefined *)xstrdup(*puVar14);\n        if (*(int *)(puVar19 + 0x18) < local_84) {\n          puVar18 = (undefined *)\n                    (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x77d0,5);\n          logprintf(1,puVar18,*(undefined4 *)(puVar19 + 0x18));\n          url_free(puVar14);\n          if (puVar13 != param_1) {\n            url_free(puVar13);\n          }\n          (*(code *)PTR_free_000afd08)(puVar5);\n          (*(code *)PTR_free_000afd08)(local_38);\n          local_38 = (undefined *)0x0;\n          if (bVar3) {\n            iVar9 = 0x1b;\n            *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n            *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n            *(undefined4 *)(puVar19 + 500) = local_60;\n          }\n          else {\n            iVar9 = 0x1b;\n          }\n          goto LAB_0004d368;\n        }\n        (*(code *)PTR_free_000afd08)(puVar5);\n        puVar5 = local_38;\n        if (puVar13 != param_1) {\n          url_free(puVar13);\n        }\n        puVar13 = puVar14;\n        if ((iVar9 != 0x30) && (!bVar3)) {\n          local_64 = *(undefined4 *)(puVar19 + 0x1f8);\n          *(undefined4 *)(puVar19 + 0x1f8) = 0;\n          local_5c = *(undefined4 *)(puVar19 + 0x1fc);\n          *(undefined4 *)(puVar19 + 0x1fc) = 0;\n          bVar3 = true;\n          local_60 = *(undefined4 *)(puVar19 + 500);\n          *(undefined4 *)(puVar19 + 500) = 0;\n        }\n        goto LAB_0004ce08;\n      }" if (parenthesized_expression "((iVar9 == 6) || (iVar9 == 0x30))" ( (binary_expression "(iVar9 == 6) || (iVar9 == 0x30)" (parenthesized_expression "(iVar9 == 6)" ( (binary_expression "iVar9 == 6" identifier == number_literal) )) || (parenthesized_expression "(iVar9 == 0x30)" ( (binary_expression "iVar9 == 0x30" identifier == number_literal) ))) )) (compound_statement "{\n        (*(code *)PTR_free_000afd08)(local_30);\n        local_30 = (undefined *)0x0;\n        puVar18 = local_38;\n        if (local_38 == (undefined *)0x0) {\n          puVar18 = puVar8;\n        }\n        puVar18 = (undefined *)uri_merge(puVar5,puVar18);\n        (*(code *)PTR_free_000afd08)(local_38);\n        iVar10 = *(int *)(puVar19 + 0x218);\n        *(undefined *)(param_8 + 0xc) = puVar19[0x216];\n        local_38 = puVar18;\n        if (iVar10 != 0) {\n          set_uri_encoding(param_8,iVar10,1);\n        }\n        set_content_encoding(param_8,0);\n        (*(code *)PTR_free_000afd08)(*(undefined4 *)(param_8 + 8));\n        *(undefined4 *)(param_8 + 8) = 0;\n        puVar14 = (undefined4 *)url_parse(local_38,&local_34,param_8,1);\n        if (puVar14 == (undefined4 *)0x0) {\n          uVar15 = url_error(local_38,local_34);\n          uVar16 = escnonprint_uri(local_38);\n          puVar18 = PTR_s_hallenge__000af46c + 0x776c;\n          logprintf(1,puVar18,uVar16,uVar15);\n          if (puVar13 != param_1) {\n            url_free(puVar13);\n          }\n          (*(code *)PTR_free_000afd08)(puVar5);\n          (*(code *)PTR_free_000afd08)(local_38);\n          local_38 = (undefined *)0x0;\n          (*(code *)PTR_free_000afd08)(uVar15);\n          if (bVar3) {\n            *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n            *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n            *(undefined4 *)(puVar19 + 500) = local_60;\n          }\n          goto LAB_0004d368;\n        }\n        local_84 = local_84 + 1;\n        (*(code *)PTR_free_000afd08)(local_38);\n        local_38 = (undefined *)0x0;\n        local_38 = (undefined *)xstrdup(*puVar14);\n        if (*(int *)(puVar19 + 0x18) < local_84) {\n          puVar18 = (undefined *)\n                    (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x77d0,5);\n          logprintf(1,puVar18,*(undefined4 *)(puVar19 + 0x18));\n          url_free(puVar14);\n          if (puVar13 != param_1) {\n            url_free(puVar13);\n          }\n          (*(code *)PTR_free_000afd08)(puVar5);\n          (*(code *)PTR_free_000afd08)(local_38);\n          local_38 = (undefined *)0x0;\n          if (bVar3) {\n            iVar9 = 0x1b;\n            *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n            *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n            *(undefined4 *)(puVar19 + 500) = local_60;\n          }\n          else {\n            iVar9 = 0x1b;\n          }\n          goto LAB_0004d368;\n        }\n        (*(code *)PTR_free_000afd08)(puVar5);\n        puVar5 = local_38;\n        if (puVar13 != param_1) {\n          url_free(puVar13);\n        }\n        puVar13 = puVar14;\n        if ((iVar9 != 0x30) && (!bVar3)) {\n          local_64 = *(undefined4 *)(puVar19 + 0x1f8);\n          *(undefined4 *)(puVar19 + 0x1f8) = 0;\n          local_5c = *(undefined4 *)(puVar19 + 0x1fc);\n          *(undefined4 *)(puVar19 + 0x1fc) = 0;\n          bVar3 = true;\n          local_60 = *(undefined4 *)(puVar19 + 500);\n          *(undefined4 *)(puVar19 + 500) = 0;\n        }\n        goto LAB_0004ce08;\n      }" { (expression_statement "(*(code *)PTR_free_000afd08)(local_30);" (call_expression "(*(code *)PTR_free_000afd08)(local_30)" (parenthesized_expression "(*(code *)PTR_free_000afd08)" ( (pointer_expression "*(code *)PTR_free_000afd08" * (cast_expression "(code *)PTR_free_000afd08" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_30)" ( identifier ))) ;) (expression_statement "local_30 = (undefined *)0x0;" (assignment_expression "local_30 = (undefined *)0x0" identifier = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar18 = local_38;" (assignment_expression "puVar18 = local_38" identifier = identifier) ;) (if_statement "if (local_38 == (undefined *)0x0) {\n          puVar18 = puVar8;\n        }" if (parenthesized_expression "(local_38 == (undefined *)0x0)" ( (binary_expression "local_38 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          puVar18 = puVar8;\n        }" { (expression_statement "puVar18 = puVar8;" (assignment_expression "puVar18 = puVar8" identifier = identifier) ;) })) (expression_statement "puVar18 = (undefined *)uri_merge(puVar5,puVar18);" (assignment_expression "puVar18 = (undefined *)uri_merge(puVar5,puVar18)" identifier = (cast_expression "(undefined *)uri_merge(puVar5,puVar18)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "uri_merge(puVar5,puVar18)" identifier (argument_list "(puVar5,puVar18)" ( identifier , identifier ))))) ;) (expression_statement "(*(code *)PTR_free_000afd08)(local_38);" (call_expression "(*(code *)PTR_free_000afd08)(local_38)" (parenthesized_expression "(*(code *)PTR_free_000afd08)" ( (pointer_expression "*(code *)PTR_free_000afd08" * (cast_expression "(code *)PTR_free_000afd08" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_38)" ( identifier ))) ;) (expression_statement "iVar10 = *(int *)(puVar19 + 0x218);" (assignment_expression "iVar10 = *(int *)(puVar19 + 0x218)" identifier = (pointer_expression "*(int *)(puVar19 + 0x218)" * (cast_expression "(int *)(puVar19 + 0x218)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + 0x218)" ( (binary_expression "puVar19 + 0x218" identifier + number_literal) ))))) ;) (expression_statement "*(undefined *)(param_8 + 0xc) = puVar19[0x216];" (assignment_expression "*(undefined *)(param_8 + 0xc) = puVar19[0x216]" (pointer_expression "*(undefined *)(param_8 + 0xc)" * (cast_expression "(undefined *)(param_8 + 0xc)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_8 + 0xc)" ( (binary_expression "param_8 + 0xc" identifier + number_literal) )))) = (subscript_expression "puVar19[0x216]" identifier [ number_literal ])) ;) (expression_statement "local_38 = puVar18;" (assignment_expression "local_38 = puVar18" identifier = identifier) ;) (if_statement "if (iVar10 != 0) {\n          set_uri_encoding(param_8,iVar10,1);\n        }" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (compound_statement "{\n          set_uri_encoding(param_8,iVar10,1);\n        }" { (expression_statement "set_uri_encoding(param_8,iVar10,1);" (call_expression "set_uri_encoding(param_8,iVar10,1)" identifier (argument_list "(param_8,iVar10,1)" ( identifier , identifier , number_literal ))) ;) })) (expression_statement "set_content_encoding(param_8,0);" (call_expression "set_content_encoding(param_8,0)" identifier (argument_list "(param_8,0)" ( identifier , number_literal ))) ;) (expression_statement "(*(code *)PTR_free_000afd08)(*(undefined4 *)(param_8 + 8));" (call_expression "(*(code *)PTR_free_000afd08)(*(undefined4 *)(param_8 + 8))" (parenthesized_expression "(*(code *)PTR_free_000afd08)" ( (pointer_expression "*(code *)PTR_free_000afd08" * (cast_expression "(code *)PTR_free_000afd08" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(param_8 + 8))" ( (pointer_expression "*(undefined4 *)(param_8 + 8)" * (cast_expression "(undefined4 *)(param_8 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_8 + 8)" ( (binary_expression "param_8 + 8" identifier + number_literal) )))) ))) ;) (expression_statement "*(undefined4 *)(param_8 + 8) = 0;" (assignment_expression "*(undefined4 *)(param_8 + 8) = 0" (pointer_expression "*(undefined4 *)(param_8 + 8)" * (cast_expression "(undefined4 *)(param_8 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_8 + 8)" ( (binary_expression "param_8 + 8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar14 = (undefined4 *)url_parse(local_38,&local_34,param_8,1);" (assignment_expression "puVar14 = (undefined4 *)url_parse(local_38,&local_34,param_8,1)" identifier = (cast_expression "(undefined4 *)url_parse(local_38,&local_34,param_8,1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "url_parse(local_38,&local_34,param_8,1)" identifier (argument_list "(local_38,&local_34,param_8,1)" ( identifier , (pointer_expression "&local_34" & identifier) , identifier , number_literal ))))) ;) (if_statement "if (puVar14 == (undefined4 *)0x0) {\n          uVar15 = url_error(local_38,local_34);\n          uVar16 = escnonprint_uri(local_38);\n          puVar18 = PTR_s_hallenge__000af46c + 0x776c;\n          logprintf(1,puVar18,uVar16,uVar15);\n          if (puVar13 != param_1) {\n            url_free(puVar13);\n          }\n          (*(code *)PTR_free_000afd08)(puVar5);\n          (*(code *)PTR_free_000afd08)(local_38);\n          local_38 = (undefined *)0x0;\n          (*(code *)PTR_free_000afd08)(uVar15);\n          if (bVar3) {\n            *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n            *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n            *(undefined4 *)(puVar19 + 500) = local_60;\n          }\n          goto LAB_0004d368;\n        }" if (parenthesized_expression "(puVar14 == (undefined4 *)0x0)" ( (binary_expression "puVar14 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          uVar15 = url_error(local_38,local_34);\n          uVar16 = escnonprint_uri(local_38);\n          puVar18 = PTR_s_hallenge__000af46c + 0x776c;\n          logprintf(1,puVar18,uVar16,uVar15);\n          if (puVar13 != param_1) {\n            url_free(puVar13);\n          }\n          (*(code *)PTR_free_000afd08)(puVar5);\n          (*(code *)PTR_free_000afd08)(local_38);\n          local_38 = (undefined *)0x0;\n          (*(code *)PTR_free_000afd08)(uVar15);\n          if (bVar3) {\n            *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n            *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n            *(undefined4 *)(puVar19 + 500) = local_60;\n          }\n          goto LAB_0004d368;\n        }" { (expression_statement "uVar15 = url_error(local_38,local_34);" (assignment_expression "uVar15 = url_error(local_38,local_34)" identifier = (call_expression "url_error(local_38,local_34)" identifier (argument_list "(local_38,local_34)" ( identifier , identifier )))) ;) (expression_statement "uVar16 = escnonprint_uri(local_38);" (assignment_expression "uVar16 = escnonprint_uri(local_38)" identifier = (call_expression "escnonprint_uri(local_38)" identifier (argument_list "(local_38)" ( identifier )))) ;) (expression_statement "puVar18 = PTR_s_hallenge__000af46c + 0x776c;" (assignment_expression "puVar18 = PTR_s_hallenge__000af46c + 0x776c" identifier = (binary_expression "PTR_s_hallenge__000af46c + 0x776c" identifier + number_literal)) ;) (expression_statement "logprintf(1,puVar18,uVar16,uVar15);" (call_expression "logprintf(1,puVar18,uVar16,uVar15)" identifier (argument_list "(1,puVar18,uVar16,uVar15)" ( number_literal , identifier , identifier , identifier ))) ;) (if_statement "if (puVar13 != param_1) {\n            url_free(puVar13);\n          }" if (parenthesized_expression "(puVar13 != param_1)" ( (binary_expression "puVar13 != param_1" identifier != identifier) )) (compound_statement "{\n            url_free(puVar13);\n          }" { (expression_statement "url_free(puVar13);" (call_expression "url_free(puVar13)" identifier (argument_list "(puVar13)" ( identifier ))) ;) })) (expression_statement "(*(code *)PTR_free_000afd08)(puVar5);" (call_expression "(*(code *)PTR_free_000afd08)(puVar5)" (parenthesized_expression "(*(code *)PTR_free_000afd08)" ( (pointer_expression "*(code *)PTR_free_000afd08" * (cast_expression "(code *)PTR_free_000afd08" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar5)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_free_000afd08)(local_38);" (call_expression "(*(code *)PTR_free_000afd08)(local_38)" (parenthesized_expression "(*(code *)PTR_free_000afd08)" ( (pointer_expression "*(code *)PTR_free_000afd08" * (cast_expression "(code *)PTR_free_000afd08" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_38)" ( identifier ))) ;) (expression_statement "local_38 = (undefined *)0x0;" (assignment_expression "local_38 = (undefined *)0x0" identifier = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(*(code *)PTR_free_000afd08)(uVar15);" (call_expression "(*(code *)PTR_free_000afd08)(uVar15)" (parenthesized_expression "(*(code *)PTR_free_000afd08)" ( (pointer_expression "*(code *)PTR_free_000afd08" * (cast_expression "(code *)PTR_free_000afd08" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar15)" ( identifier ))) ;) (if_statement "if (bVar3) {\n            *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n            *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n            *(undefined4 *)(puVar19 + 500) = local_60;\n          }" if (parenthesized_expression "(bVar3)" ( identifier )) (compound_statement "{\n            *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n            *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n            *(undefined4 *)(puVar19 + 500) = local_60;\n          }" { (expression_statement "*(undefined4 *)(puVar19 + 0x1f8) = local_64;" (assignment_expression "*(undefined4 *)(puVar19 + 0x1f8) = local_64" (pointer_expression "*(undefined4 *)(puVar19 + 0x1f8)" * (cast_expression "(undefined4 *)(puVar19 + 0x1f8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + 0x1f8)" ( (binary_expression "puVar19 + 0x1f8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar19 + 0x1fc) = local_5c;" (assignment_expression "*(undefined4 *)(puVar19 + 0x1fc) = local_5c" (pointer_expression "*(undefined4 *)(puVar19 + 0x1fc)" * (cast_expression "(undefined4 *)(puVar19 + 0x1fc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + 0x1fc)" ( (binary_expression "puVar19 + 0x1fc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar19 + 500) = local_60;" (assignment_expression "*(undefined4 *)(puVar19 + 500) = local_60" (pointer_expression "*(undefined4 *)(puVar19 + 500)" * (cast_expression "(undefined4 *)(puVar19 + 500)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + 500)" ( (binary_expression "puVar19 + 500" identifier + number_literal) )))) = identifier) ;) })) (goto_statement "goto LAB_0004d368;" goto statement_identifier ;) })) (expression_statement "local_84 = local_84 + 1;" (assignment_expression "local_84 = local_84 + 1" identifier = (binary_expression "local_84 + 1" identifier + number_literal)) ;) (expression_statement "(*(code *)PTR_free_000afd08)(local_38);" (call_expression "(*(code *)PTR_free_000afd08)(local_38)" (parenthesized_expression "(*(code *)PTR_free_000afd08)" ( (pointer_expression "*(code *)PTR_free_000afd08" * (cast_expression "(code *)PTR_free_000afd08" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_38)" ( identifier ))) ;) (expression_statement "local_38 = (undefined *)0x0;" (assignment_expression "local_38 = (undefined *)0x0" identifier = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_38 = (undefined *)xstrdup(*puVar14);" (assignment_expression "local_38 = (undefined *)xstrdup(*puVar14)" identifier = (cast_expression "(undefined *)xstrdup(*puVar14)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xstrdup(*puVar14)" identifier (argument_list "(*puVar14)" ( (pointer_expression "*puVar14" * identifier) ))))) ;) (if_statement "if (*(int *)(puVar19 + 0x18) < local_84) {\n          puVar18 = (undefined *)\n                    (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x77d0,5);\n          logprintf(1,puVar18,*(undefined4 *)(puVar19 + 0x18));\n          url_free(puVar14);\n          if (puVar13 != param_1) {\n            url_free(puVar13);\n          }\n          (*(code *)PTR_free_000afd08)(puVar5);\n          (*(code *)PTR_free_000afd08)(local_38);\n          local_38 = (undefined *)0x0;\n          if (bVar3) {\n            iVar9 = 0x1b;\n            *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n            *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n            *(undefined4 *)(puVar19 + 500) = local_60;\n          }\n          else {\n            iVar9 = 0x1b;\n          }\n          goto LAB_0004d368;\n        }" if (parenthesized_expression "(*(int *)(puVar19 + 0x18) < local_84)" ( (binary_expression "*(int *)(puVar19 + 0x18) < local_84" (pointer_expression "*(int *)(puVar19 + 0x18)" * (cast_expression "(int *)(puVar19 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + 0x18)" ( (binary_expression "puVar19 + 0x18" identifier + number_literal) )))) < identifier) )) (compound_statement "{\n          puVar18 = (undefined *)\n                    (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x77d0,5);\n          logprintf(1,puVar18,*(undefined4 *)(puVar19 + 0x18));\n          url_free(puVar14);\n          if (puVar13 != param_1) {\n            url_free(puVar13);\n          }\n          (*(code *)PTR_free_000afd08)(puVar5);\n          (*(code *)PTR_free_000afd08)(local_38);\n          local_38 = (undefined *)0x0;\n          if (bVar3) {\n            iVar9 = 0x1b;\n            *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n            *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n            *(undefined4 *)(puVar19 + 500) = local_60;\n          }\n          else {\n            iVar9 = 0x1b;\n          }\n          goto LAB_0004d368;\n        }" { (expression_statement "puVar18 = (undefined *)\n                    (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x77d0,5);" (assignment_expression "puVar18 = (undefined *)\n                    (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x77d0,5)" identifier = (cast_expression "(undefined *)\n                    (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x77d0,5)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x77d0,5)" (parenthesized_expression "(*(code *)PTR_dcgettext_000afcf4)" ( (pointer_expression "*(code *)PTR_dcgettext_000afcf4" * (cast_expression "(code *)PTR_dcgettext_000afcf4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,PTR_s_hallenge__000af46c + 0x77d0,5)" ( number_literal , (binary_expression "PTR_s_hallenge__000af46c + 0x77d0" identifier + number_literal) , number_literal ))))) ;) (expression_statement "logprintf(1,puVar18,*(undefined4 *)(puVar19 + 0x18));" (call_expression "logprintf(1,puVar18,*(undefined4 *)(puVar19 + 0x18))" identifier (argument_list "(1,puVar18,*(undefined4 *)(puVar19 + 0x18))" ( number_literal , identifier , (pointer_expression "*(undefined4 *)(puVar19 + 0x18)" * (cast_expression "(undefined4 *)(puVar19 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + 0x18)" ( (binary_expression "puVar19 + 0x18" identifier + number_literal) )))) ))) ;) (expression_statement "url_free(puVar14);" (call_expression "url_free(puVar14)" identifier (argument_list "(puVar14)" ( identifier ))) ;) (if_statement "if (puVar13 != param_1) {\n            url_free(puVar13);\n          }" if (parenthesized_expression "(puVar13 != param_1)" ( (binary_expression "puVar13 != param_1" identifier != identifier) )) (compound_statement "{\n            url_free(puVar13);\n          }" { (expression_statement "url_free(puVar13);" (call_expression "url_free(puVar13)" identifier (argument_list "(puVar13)" ( identifier ))) ;) })) (expression_statement "(*(code *)PTR_free_000afd08)(puVar5);" (call_expression "(*(code *)PTR_free_000afd08)(puVar5)" (parenthesized_expression "(*(code *)PTR_free_000afd08)" ( (pointer_expression "*(code *)PTR_free_000afd08" * (cast_expression "(code *)PTR_free_000afd08" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar5)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_free_000afd08)(local_38);" (call_expression "(*(code *)PTR_free_000afd08)(local_38)" (parenthesized_expression "(*(code *)PTR_free_000afd08)" ( (pointer_expression "*(code *)PTR_free_000afd08" * (cast_expression "(code *)PTR_free_000afd08" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_38)" ( identifier ))) ;) (expression_statement "local_38 = (undefined *)0x0;" (assignment_expression "local_38 = (undefined *)0x0" identifier = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (bVar3) {\n            iVar9 = 0x1b;\n            *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n            *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n            *(undefined4 *)(puVar19 + 500) = local_60;\n          }\n          else {\n            iVar9 = 0x1b;\n          }" if (parenthesized_expression "(bVar3)" ( identifier )) (compound_statement "{\n            iVar9 = 0x1b;\n            *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n            *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n            *(undefined4 *)(puVar19 + 500) = local_60;\n          }" { (expression_statement "iVar9 = 0x1b;" (assignment_expression "iVar9 = 0x1b" identifier = number_literal) ;) (expression_statement "*(undefined4 *)(puVar19 + 0x1f8) = local_64;" (assignment_expression "*(undefined4 *)(puVar19 + 0x1f8) = local_64" (pointer_expression "*(undefined4 *)(puVar19 + 0x1f8)" * (cast_expression "(undefined4 *)(puVar19 + 0x1f8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + 0x1f8)" ( (binary_expression "puVar19 + 0x1f8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar19 + 0x1fc) = local_5c;" (assignment_expression "*(undefined4 *)(puVar19 + 0x1fc) = local_5c" (pointer_expression "*(undefined4 *)(puVar19 + 0x1fc)" * (cast_expression "(undefined4 *)(puVar19 + 0x1fc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + 0x1fc)" ( (binary_expression "puVar19 + 0x1fc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar19 + 500) = local_60;" (assignment_expression "*(undefined4 *)(puVar19 + 500) = local_60" (pointer_expression "*(undefined4 *)(puVar19 + 500)" * (cast_expression "(undefined4 *)(puVar19 + 500)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + 500)" ( (binary_expression "puVar19 + 500" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n            iVar9 = 0x1b;\n          }" else (compound_statement "{\n            iVar9 = 0x1b;\n          }" { (expression_statement "iVar9 = 0x1b;" (assignment_expression "iVar9 = 0x1b" identifier = number_literal) ;) }))) (goto_statement "goto LAB_0004d368;" goto statement_identifier ;) })) (expression_statement "(*(code *)PTR_free_000afd08)(puVar5);" (call_expression "(*(code *)PTR_free_000afd08)(puVar5)" (parenthesized_expression "(*(code *)PTR_free_000afd08)" ( (pointer_expression "*(code *)PTR_free_000afd08" * (cast_expression "(code *)PTR_free_000afd08" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar5)" ( identifier ))) ;) (expression_statement "puVar5 = local_38;" (assignment_expression "puVar5 = local_38" identifier = identifier) ;) (if_statement "if (puVar13 != param_1) {\n          url_free(puVar13);\n        }" if (parenthesized_expression "(puVar13 != param_1)" ( (binary_expression "puVar13 != param_1" identifier != identifier) )) (compound_statement "{\n          url_free(puVar13);\n        }" { (expression_statement "url_free(puVar13);" (call_expression "url_free(puVar13)" identifier (argument_list "(puVar13)" ( identifier ))) ;) })) (expression_statement "puVar13 = puVar14;" (assignment_expression "puVar13 = puVar14" identifier = identifier) ;) (if_statement "if ((iVar9 != 0x30) && (!bVar3)) {\n          local_64 = *(undefined4 *)(puVar19 + 0x1f8);\n          *(undefined4 *)(puVar19 + 0x1f8) = 0;\n          local_5c = *(undefined4 *)(puVar19 + 0x1fc);\n          *(undefined4 *)(puVar19 + 0x1fc) = 0;\n          bVar3 = true;\n          local_60 = *(undefined4 *)(puVar19 + 500);\n          *(undefined4 *)(puVar19 + 500) = 0;\n        }" if (parenthesized_expression "((iVar9 != 0x30) && (!bVar3))" ( (binary_expression "(iVar9 != 0x30) && (!bVar3)" (parenthesized_expression "(iVar9 != 0x30)" ( (binary_expression "iVar9 != 0x30" identifier != number_literal) )) && (parenthesized_expression "(!bVar3)" ( (unary_expression "!bVar3" ! identifier) ))) )) (compound_statement "{\n          local_64 = *(undefined4 *)(puVar19 + 0x1f8);\n          *(undefined4 *)(puVar19 + 0x1f8) = 0;\n          local_5c = *(undefined4 *)(puVar19 + 0x1fc);\n          *(undefined4 *)(puVar19 + 0x1fc) = 0;\n          bVar3 = true;\n          local_60 = *(undefined4 *)(puVar19 + 500);\n          *(undefined4 *)(puVar19 + 500) = 0;\n        }" { (expression_statement "local_64 = *(undefined4 *)(puVar19 + 0x1f8);" (assignment_expression "local_64 = *(undefined4 *)(puVar19 + 0x1f8)" identifier = (pointer_expression "*(undefined4 *)(puVar19 + 0x1f8)" * (cast_expression "(undefined4 *)(puVar19 + 0x1f8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + 0x1f8)" ( (binary_expression "puVar19 + 0x1f8" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar19 + 0x1f8) = 0;" (assignment_expression "*(undefined4 *)(puVar19 + 0x1f8) = 0" (pointer_expression "*(undefined4 *)(puVar19 + 0x1f8)" * (cast_expression "(undefined4 *)(puVar19 + 0x1f8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + 0x1f8)" ( (binary_expression "puVar19 + 0x1f8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_5c = *(undefined4 *)(puVar19 + 0x1fc);" (assignment_expression "local_5c = *(undefined4 *)(puVar19 + 0x1fc)" identifier = (pointer_expression "*(undefined4 *)(puVar19 + 0x1fc)" * (cast_expression "(undefined4 *)(puVar19 + 0x1fc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + 0x1fc)" ( (binary_expression "puVar19 + 0x1fc" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar19 + 0x1fc) = 0;" (assignment_expression "*(undefined4 *)(puVar19 + 0x1fc) = 0" (pointer_expression "*(undefined4 *)(puVar19 + 0x1fc)" * (cast_expression "(undefined4 *)(puVar19 + 0x1fc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + 0x1fc)" ( (binary_expression "puVar19 + 0x1fc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "bVar3 = true;" (assignment_expression "bVar3 = true" identifier = true) ;) (expression_statement "local_60 = *(undefined4 *)(puVar19 + 500);" (assignment_expression "local_60 = *(undefined4 *)(puVar19 + 500)" identifier = (pointer_expression "*(undefined4 *)(puVar19 + 500)" * (cast_expression "(undefined4 *)(puVar19 + 500)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + 500)" ( (binary_expression "puVar19 + 500" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar19 + 500) = 0;" (assignment_expression "*(undefined4 *)(puVar19 + 500) = 0" (pointer_expression "*(undefined4 *)(puVar19 + 500)" * (cast_expression "(undefined4 *)(puVar19 + 500)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + 500)" ( (binary_expression "puVar19 + 500" identifier + number_literal) )))) = number_literal) ;) })) (goto_statement "goto LAB_0004ce08;" goto statement_identifier ;) })) }) (else_clause "else {\n      if (puVar13[1] - 2 < 2) {\n        iVar11 = 0;\nLAB_0004d1d0:\n        if (local_84 == 0) {\n          iVar9 = (*(code *)PTR_ftp_loop_000af968)\n                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,\n                             PTR_opt_000af488[0xe1]);\n        }\n        else {\n          iVar9 = (*(code *)PTR_ftp_loop_000af968)\n                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,0);\n          if ((local_30 == (undefined *)0x0) || (1 < puVar13[1] - 2)) {\n            local_68 = 0;\n          }\n          else {\n            local_68 = has_html_suffix_p();\n            if (local_68 != 0) {\n              local_68 = 0;\n              *param_6 = *param_6 | 1;\n            }\n          }\n        }\n        goto LAB_0004d01c;\n      }\nLAB_0004cef8:\n      iVar9 = 0;\n    }" else (compound_statement "{\n      if (puVar13[1] - 2 < 2) {\n        iVar11 = 0;\nLAB_0004d1d0:\n        if (local_84 == 0) {\n          iVar9 = (*(code *)PTR_ftp_loop_000af968)\n                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,\n                             PTR_opt_000af488[0xe1]);\n        }\n        else {\n          iVar9 = (*(code *)PTR_ftp_loop_000af968)\n                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,0);\n          if ((local_30 == (undefined *)0x0) || (1 < puVar13[1] - 2)) {\n            local_68 = 0;\n          }\n          else {\n            local_68 = has_html_suffix_p();\n            if (local_68 != 0) {\n              local_68 = 0;\n              *param_6 = *param_6 | 1;\n            }\n          }\n        }\n        goto LAB_0004d01c;\n      }\nLAB_0004cef8:\n      iVar9 = 0;\n    }" { (if_statement "if (puVar13[1] - 2 < 2) {\n        iVar11 = 0;\nLAB_0004d1d0:\n        if (local_84 == 0) {\n          iVar9 = (*(code *)PTR_ftp_loop_000af968)\n                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,\n                             PTR_opt_000af488[0xe1]);\n        }\n        else {\n          iVar9 = (*(code *)PTR_ftp_loop_000af968)\n                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,0);\n          if ((local_30 == (undefined *)0x0) || (1 < puVar13[1] - 2)) {\n            local_68 = 0;\n          }\n          else {\n            local_68 = has_html_suffix_p();\n            if (local_68 != 0) {\n              local_68 = 0;\n              *param_6 = *param_6 | 1;\n            }\n          }\n        }\n        goto LAB_0004d01c;\n      }" if (parenthesized_expression "(puVar13[1] - 2 < 2)" ( (binary_expression "puVar13[1] - 2 < 2" (binary_expression "puVar13[1] - 2" (subscript_expression "puVar13[1]" identifier [ number_literal ]) - number_literal) < number_literal) )) (compound_statement "{\n        iVar11 = 0;\nLAB_0004d1d0:\n        if (local_84 == 0) {\n          iVar9 = (*(code *)PTR_ftp_loop_000af968)\n                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,\n                             PTR_opt_000af488[0xe1]);\n        }\n        else {\n          iVar9 = (*(code *)PTR_ftp_loop_000af968)\n                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,0);\n          if ((local_30 == (undefined *)0x0) || (1 < puVar13[1] - 2)) {\n            local_68 = 0;\n          }\n          else {\n            local_68 = has_html_suffix_p();\n            if (local_68 != 0) {\n              local_68 = 0;\n              *param_6 = *param_6 | 1;\n            }\n          }\n        }\n        goto LAB_0004d01c;\n      }" { (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) (labeled_statement "LAB_0004d1d0:\n        if (local_84 == 0) {\n          iVar9 = (*(code *)PTR_ftp_loop_000af968)\n                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,\n                             PTR_opt_000af488[0xe1]);\n        }\n        else {\n          iVar9 = (*(code *)PTR_ftp_loop_000af968)\n                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,0);\n          if ((local_30 == (undefined *)0x0) || (1 < puVar13[1] - 2)) {\n            local_68 = 0;\n          }\n          else {\n            local_68 = has_html_suffix_p();\n            if (local_68 != 0) {\n              local_68 = 0;\n              *param_6 = *param_6 | 1;\n            }\n          }\n        }" statement_identifier : (if_statement "if (local_84 == 0) {\n          iVar9 = (*(code *)PTR_ftp_loop_000af968)\n                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,\n                             PTR_opt_000af488[0xe1]);\n        }\n        else {\n          iVar9 = (*(code *)PTR_ftp_loop_000af968)\n                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,0);\n          if ((local_30 == (undefined *)0x0) || (1 < puVar13[1] - 2)) {\n            local_68 = 0;\n          }\n          else {\n            local_68 = has_html_suffix_p();\n            if (local_68 != 0) {\n              local_68 = 0;\n              *param_6 = *param_6 | 1;\n            }\n          }\n        }" if (parenthesized_expression "(local_84 == 0)" ( (binary_expression "local_84 == 0" identifier == number_literal) )) (compound_statement "{\n          iVar9 = (*(code *)PTR_ftp_loop_000af968)\n                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,\n                             PTR_opt_000af488[0xe1]);\n        }" { (expression_statement "iVar9 = (*(code *)PTR_ftp_loop_000af968)\n                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,\n                             PTR_opt_000af488[0xe1]);" (assignment_expression "iVar9 = (*(code *)PTR_ftp_loop_000af968)\n                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,\n                             PTR_opt_000af488[0xe1])" identifier = (call_expression "(*(code *)PTR_ftp_loop_000af968)\n                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,\n                             PTR_opt_000af488[0xe1])" (parenthesized_expression "(*(code *)PTR_ftp_loop_000af968)" ( (pointer_expression "*(code *)PTR_ftp_loop_000af968" * (cast_expression "(code *)PTR_ftp_loop_000af968" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar13,param_1,&local_30,param_6,iVar11,local_68,\n                             PTR_opt_000af488[0xe1])" ( identifier , identifier , (pointer_expression "&local_30" & identifier) , identifier , identifier , identifier , (subscript_expression "PTR_opt_000af488[0xe1]" identifier [ number_literal ]) )))) ;) }) (else_clause "else {\n          iVar9 = (*(code *)PTR_ftp_loop_000af968)\n                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,0);\n          if ((local_30 == (undefined *)0x0) || (1 < puVar13[1] - 2)) {\n            local_68 = 0;\n          }\n          else {\n            local_68 = has_html_suffix_p();\n            if (local_68 != 0) {\n              local_68 = 0;\n              *param_6 = *param_6 | 1;\n            }\n          }\n        }" else (compound_statement "{\n          iVar9 = (*(code *)PTR_ftp_loop_000af968)\n                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,0);\n          if ((local_30 == (undefined *)0x0) || (1 < puVar13[1] - 2)) {\n            local_68 = 0;\n          }\n          else {\n            local_68 = has_html_suffix_p();\n            if (local_68 != 0) {\n              local_68 = 0;\n              *param_6 = *param_6 | 1;\n            }\n          }\n        }" { (expression_statement "iVar9 = (*(code *)PTR_ftp_loop_000af968)\n                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,0);" (assignment_expression "iVar9 = (*(code *)PTR_ftp_loop_000af968)\n                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,0)" identifier = (call_expression "(*(code *)PTR_ftp_loop_000af968)\n                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,0)" (parenthesized_expression "(*(code *)PTR_ftp_loop_000af968)" ( (pointer_expression "*(code *)PTR_ftp_loop_000af968" * (cast_expression "(code *)PTR_ftp_loop_000af968" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar13,param_1,&local_30,param_6,iVar11,local_68,0)" ( identifier , identifier , (pointer_expression "&local_30" & identifier) , identifier , identifier , identifier , number_literal )))) ;) (if_statement "if ((local_30 == (undefined *)0x0) || (1 < puVar13[1] - 2)) {\n            local_68 = 0;\n          }\n          else {\n            local_68 = has_html_suffix_p();\n            if (local_68 != 0) {\n              local_68 = 0;\n              *param_6 = *param_6 | 1;\n            }\n          }" if (parenthesized_expression "((local_30 == (undefined *)0x0) || (1 < puVar13[1] - 2))" ( (binary_expression "(local_30 == (undefined *)0x0) || (1 < puVar13[1] - 2)" (parenthesized_expression "(local_30 == (undefined *)0x0)" ( (binary_expression "local_30 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(1 < puVar13[1] - 2)" ( (binary_expression "1 < puVar13[1] - 2" number_literal < (binary_expression "puVar13[1] - 2" (subscript_expression "puVar13[1]" identifier [ number_literal ]) - number_literal)) ))) )) (compound_statement "{\n            local_68 = 0;\n          }" { (expression_statement "local_68 = 0;" (assignment_expression "local_68 = 0" identifier = number_literal) ;) }) (else_clause "else {\n            local_68 = has_html_suffix_p();\n            if (local_68 != 0) {\n              local_68 = 0;\n              *param_6 = *param_6 | 1;\n            }\n          }" else (compound_statement "{\n            local_68 = has_html_suffix_p();\n            if (local_68 != 0) {\n              local_68 = 0;\n              *param_6 = *param_6 | 1;\n            }\n          }" { (expression_statement "local_68 = has_html_suffix_p();" (assignment_expression "local_68 = has_html_suffix_p()" identifier = (call_expression "has_html_suffix_p()" identifier (argument_list "()" ( )))) ;) (if_statement "if (local_68 != 0) {\n              local_68 = 0;\n              *param_6 = *param_6 | 1;\n            }" if (parenthesized_expression "(local_68 != 0)" ( (binary_expression "local_68 != 0" identifier != number_literal) )) (compound_statement "{\n              local_68 = 0;\n              *param_6 = *param_6 | 1;\n            }" { (expression_statement "local_68 = 0;" (assignment_expression "local_68 = 0" identifier = number_literal) ;) (expression_statement "*param_6 = *param_6 | 1;" (assignment_expression "*param_6 = *param_6 | 1" (pointer_expression "*param_6" * identifier) = (binary_expression "*param_6 | 1" (pointer_expression "*param_6" * identifier) | number_literal)) ;) })) }))) })))) (goto_statement "goto LAB_0004d01c;" goto statement_identifier ;) })) (labeled_statement "LAB_0004cef8:\n      iVar9 = 0;" statement_identifier : (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;)) }))) (expression_statement "(*(code *)PTR_free_000afd08)(local_38);" (call_expression "(*(code *)PTR_free_000afd08)(local_38)" (parenthesized_expression "(*(code *)PTR_free_000afd08)" ( (pointer_expression "*(code *)PTR_free_000afd08" * (cast_expression "(code *)PTR_free_000afd08" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_38)" ( identifier ))) ;) (expression_statement "uVar12 = *param_6 & 2;" (assignment_expression "uVar12 = *param_6 & 2" identifier = (binary_expression "*param_6 & 2" (pointer_expression "*param_6" * identifier) & number_literal)) ;) (expression_statement "local_38 = (undefined *)0x0;" (assignment_expression "local_38 = (undefined *)0x0" identifier = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if ((uVar12 != 0) || (cVar1 = *(char *)(param_8 + 0xc), cVar1 == '\0')) {\n      puVar18 = local_30;\n      if ((local_30 == (undefined *)0x0) ||\n         (puVar19 = PTR_opt_000af488, puVar13 == (undefined4 *)0x0)) goto LAB_0004d2f8;\n      goto LAB_0004d2e0;\n    }" if (parenthesized_expression "((uVar12 != 0) || (cVar1 = *(char *)(param_8 + 0xc), cVar1 == '\0'))" ( (binary_expression "(uVar12 != 0) || (cVar1 = *(char *)(param_8 + 0xc), cVar1 == '\0')" (parenthesized_expression "(uVar12 != 0)" ( (binary_expression "uVar12 != 0" identifier != number_literal) )) || (parenthesized_expression "(cVar1 = *(char *)(param_8 + 0xc), cVar1 == '\0')" ( (comma_expression "cVar1 = *(char *)(param_8 + 0xc), cVar1 == '\0'" (assignment_expression "cVar1 = *(char *)(param_8 + 0xc)" identifier = (pointer_expression "*(char *)(param_8 + 0xc)" * (cast_expression "(char *)(param_8 + 0xc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_8 + 0xc)" ( (binary_expression "param_8 + 0xc" identifier + number_literal) ))))) , (binary_expression "cVar1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence '))) ))) )) (compound_statement "{\n      puVar18 = local_30;\n      if ((local_30 == (undefined *)0x0) ||\n         (puVar19 = PTR_opt_000af488, puVar13 == (undefined4 *)0x0)) goto LAB_0004d2f8;\n      goto LAB_0004d2e0;\n    }" { (expression_statement "puVar18 = local_30;" (assignment_expression "puVar18 = local_30" identifier = identifier) ;) (if_statement "if ((local_30 == (undefined *)0x0) ||\n         (puVar19 = PTR_opt_000af488, puVar13 == (undefined4 *)0x0)) goto LAB_0004d2f8;" if (parenthesized_expression "((local_30 == (undefined *)0x0) ||\n         (puVar19 = PTR_opt_000af488, puVar13 == (undefined4 *)0x0))" ( (binary_expression "(local_30 == (undefined *)0x0) ||\n         (puVar19 = PTR_opt_000af488, puVar13 == (undefined4 *)0x0)" (parenthesized_expression "(local_30 == (undefined *)0x0)" ( (binary_expression "local_30 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(puVar19 = PTR_opt_000af488, puVar13 == (undefined4 *)0x0)" ( (comma_expression "puVar19 = PTR_opt_000af488, puVar13 == (undefined4 *)0x0" (assignment_expression "puVar19 = PTR_opt_000af488" identifier = identifier) , (binary_expression "puVar13 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (goto_statement "goto LAB_0004d2f8;" goto statement_identifier ;)) (goto_statement "goto LAB_0004d2e0;" goto statement_identifier ;) })) (expression_statement "*(undefined1 *)(param_8 + 0xc) = 0;" (assignment_expression "*(undefined1 *)(param_8 + 0xc) = 0" (pointer_expression "*(undefined1 *)(param_8 + 0xc)" * (cast_expression "(undefined1 *)(param_8 + 0xc)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_8 + 0xc)" ( (binary_expression "param_8 + 0xc" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (puVar13 != param_1) {\n      url_free(puVar13);\n    }" if (parenthesized_expression "(puVar13 != param_1)" ( (binary_expression "puVar13 != param_1" identifier != identifier) )) (compound_statement "{\n      url_free(puVar13);\n    }" { (expression_statement "url_free(puVar13);" (call_expression "url_free(puVar13)" identifier (argument_list "(puVar13)" ( identifier ))) ;) })) (expression_statement "puVar18 = (undefined *)0x0;" (assignment_expression "puVar18 = (undefined *)0x0" identifier = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar13 = (undefined4 *)url_parse(param_2,0,param_8,1);" (assignment_expression "puVar13 = (undefined4 *)url_parse(param_2,0,param_8,1)" identifier = (cast_expression "(undefined4 *)url_parse(param_2,0,param_8,1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "url_parse(param_2,0,param_8,1)" identifier (argument_list "(param_2,0,param_8,1)" ( identifier , number_literal , identifier , number_literal ))))) ;) (expression_statement "puVar19 = PTR_opt_000af488;" (assignment_expression "puVar19 = PTR_opt_000af488" identifier = identifier) ;) (if_statement "if (puVar13 == (undefined4 *)0x0) {\n      if (PTR_opt_000af488[0x16b] != '\0') {\n        puVar18 = (undefined *)quote(puVar5);\n        debug_logprintf(PTR_s_hallenge__000af46c + 0x783c);\n      }\n      goto LAB_0004d2f8;\n    }" if (parenthesized_expression "(puVar13 == (undefined4 *)0x0)" ( (binary_expression "puVar13 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if (PTR_opt_000af488[0x16b] != '\0') {\n        puVar18 = (undefined *)quote(puVar5);\n        debug_logprintf(PTR_s_hallenge__000af46c + 0x783c);\n      }\n      goto LAB_0004d2f8;\n    }" { (if_statement "if (PTR_opt_000af488[0x16b] != '\0') {\n        puVar18 = (undefined *)quote(puVar5);\n        debug_logprintf(PTR_s_hallenge__000af46c + 0x783c);\n      }" if (parenthesized_expression "(PTR_opt_000af488[0x16b] != '\0')" ( (binary_expression "PTR_opt_000af488[0x16b] != '\0'" (subscript_expression "PTR_opt_000af488[0x16b]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        puVar18 = (undefined *)quote(puVar5);\n        debug_logprintf(PTR_s_hallenge__000af46c + 0x783c);\n      }" { (expression_statement "puVar18 = (undefined *)quote(puVar5);" (assignment_expression "puVar18 = (undefined *)quote(puVar5)" identifier = (cast_expression "(undefined *)quote(puVar5)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "quote(puVar5)" identifier (argument_list "(puVar5)" ( identifier ))))) ;) (expression_statement "debug_logprintf(PTR_s_hallenge__000af46c + 0x783c);" (call_expression "debug_logprintf(PTR_s_hallenge__000af46c + 0x783c)" identifier (argument_list "(PTR_s_hallenge__000af46c + 0x783c)" ( (binary_expression "PTR_s_hallenge__000af46c + 0x783c" identifier + number_literal) ))) ;) })) (goto_statement "goto LAB_0004d2f8;" goto statement_identifier ;) })) (expression_statement "iVar10 = (*(code *)PTR_strcmp_000afacc)(*puVar13,*param_1);" (assignment_expression "iVar10 = (*(code *)PTR_strcmp_000afacc)(*puVar13,*param_1)" identifier = (call_expression "(*(code *)PTR_strcmp_000afacc)(*puVar13,*param_1)" (parenthesized_expression "(*(code *)PTR_strcmp_000afacc)" ( (pointer_expression "*(code *)PTR_strcmp_000afacc" * (cast_expression "(code *)PTR_strcmp_000afacc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*puVar13,*param_1)" ( (pointer_expression "*puVar13" * identifier) , (pointer_expression "*param_1" * identifier) )))) ;) (expression_statement "cVar2 = puVar19[0x16b];" (assignment_expression "cVar2 = puVar19[0x16b]" identifier = (subscript_expression "puVar19[0x16b]" identifier [ number_literal ])) ;) (if_statement "if (iVar10 == 0) break;" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (if_statement "if (cVar2 != '\0') {\n      uVar15 = quote(puVar5);\n      debug_logprintf(puVar7,uVar15);\n    }" if (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar15 = quote(puVar5);\n      debug_logprintf(puVar7,uVar15);\n    }" { (expression_statement "uVar15 = quote(puVar5);" (assignment_expression "uVar15 = quote(puVar5)" identifier = (call_expression "quote(puVar5)" identifier (argument_list "(puVar5)" ( identifier )))) ;) (expression_statement "debug_logprintf(puVar7,uVar15);" (call_expression "debug_logprintf(puVar7,uVar15)" identifier (argument_list "(puVar7,uVar15)" ( identifier , identifier ))) ;) })) (expression_statement "(*(code *)PTR_free_000afd08)(puVar5);" (call_expression "(*(code *)PTR_free_000afd08)(puVar5)" (parenthesized_expression "(*(code *)PTR_free_000afd08)" ( (pointer_expression "*(code *)PTR_free_000afd08" * (cast_expression "(code *)PTR_free_000afd08" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar5)" ( identifier ))) ;) (expression_statement "puVar5 = (undefined *)xstrdup(*puVar13);" (assignment_expression "puVar5 = (undefined *)xstrdup(*puVar13)" identifier = (cast_expression "(undefined *)xstrdup(*puVar13)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xstrdup(*puVar13)" identifier (argument_list "(*puVar13)" ( (pointer_expression "*puVar13" * identifier) ))))) ;) (expression_statement "cVar4 = cVar1;" (assignment_expression "cVar4 = cVar1" identifier = identifier) ;) }) while (parenthesized_expression "( true )" ( true )) ;)) (if_statement "if (cVar2 != '\0') {\n    uVar15 = quote(puVar5);\n    debug_logprintf(PTR_s_hallenge__000af46c + 0x7814,uVar15);\n  }" if (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    uVar15 = quote(puVar5);\n    debug_logprintf(PTR_s_hallenge__000af46c + 0x7814,uVar15);\n  }" { (expression_statement "uVar15 = quote(puVar5);" (assignment_expression "uVar15 = quote(puVar5)" identifier = (call_expression "quote(puVar5)" identifier (argument_list "(puVar5)" ( identifier )))) ;) (expression_statement "debug_logprintf(PTR_s_hallenge__000af46c + 0x7814,uVar15);" (call_expression "debug_logprintf(PTR_s_hallenge__000af46c + 0x7814,uVar15)" identifier (argument_list "(PTR_s_hallenge__000af46c + 0x7814,uVar15)" ( (binary_expression "PTR_s_hallenge__000af46c + 0x7814" identifier + number_literal) , identifier ))) ;) })) (expression_statement "puVar18 = local_30;" (assignment_expression "puVar18 = local_30" identifier = identifier) ;) (if_statement "if (local_30 != (undefined *)0x0) {\n    uVar12 = *param_6 & 2;\nLAB_0004d2e0:\n    puVar18 = local_30;\n    if ((uVar12 != 0) || (puVar19[0x16a] != '\0')) {\n      (*(code *)PTR_register_download_000af96c)(*puVar13);\n      if ((puVar19[0x48] == '\0') && (local_84 != 0)) {\n        puVar20 = (undefined *)*puVar13;\n        puVar18 = puVar20;\n        iVar10 = (*(code *)PTR_strcmp_000afacc)(param_2);\n        if (iVar10 != 0) {\n          (*(code *)PTR_register_redirection_000af978)(param_2);\n          puVar18 = puVar20;\n        }\n      }\n      uVar12 = *param_6;\n      if ((uVar12 & 1) != 0) {\n        (*(code *)PTR_register_html_000af974)();\n        uVar12 = *param_6;\n      }\n      if ((uVar12 & 0x40) != 0) {\n        (*(code *)PTR_register_css_000af970)();\n      }\n    }\n  }" if (parenthesized_expression "(local_30 != (undefined *)0x0)" ( (binary_expression "local_30 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar12 = *param_6 & 2;\nLAB_0004d2e0:\n    puVar18 = local_30;\n    if ((uVar12 != 0) || (puVar19[0x16a] != '\0')) {\n      (*(code *)PTR_register_download_000af96c)(*puVar13);\n      if ((puVar19[0x48] == '\0') && (local_84 != 0)) {\n        puVar20 = (undefined *)*puVar13;\n        puVar18 = puVar20;\n        iVar10 = (*(code *)PTR_strcmp_000afacc)(param_2);\n        if (iVar10 != 0) {\n          (*(code *)PTR_register_redirection_000af978)(param_2);\n          puVar18 = puVar20;\n        }\n      }\n      uVar12 = *param_6;\n      if ((uVar12 & 1) != 0) {\n        (*(code *)PTR_register_html_000af974)();\n        uVar12 = *param_6;\n      }\n      if ((uVar12 & 0x40) != 0) {\n        (*(code *)PTR_register_css_000af970)();\n      }\n    }\n  }" { (expression_statement "uVar12 = *param_6 & 2;" (assignment_expression "uVar12 = *param_6 & 2" identifier = (binary_expression "*param_6 & 2" (pointer_expression "*param_6" * identifier) & number_literal)) ;) (labeled_statement "LAB_0004d2e0:\n    puVar18 = local_30;" statement_identifier : (expression_statement "puVar18 = local_30;" (assignment_expression "puVar18 = local_30" identifier = identifier) ;)) (if_statement "if ((uVar12 != 0) || (puVar19[0x16a] != '\0')) {\n      (*(code *)PTR_register_download_000af96c)(*puVar13);\n      if ((puVar19[0x48] == '\0') && (local_84 != 0)) {\n        puVar20 = (undefined *)*puVar13;\n        puVar18 = puVar20;\n        iVar10 = (*(code *)PTR_strcmp_000afacc)(param_2);\n        if (iVar10 != 0) {\n          (*(code *)PTR_register_redirection_000af978)(param_2);\n          puVar18 = puVar20;\n        }\n      }\n      uVar12 = *param_6;\n      if ((uVar12 & 1) != 0) {\n        (*(code *)PTR_register_html_000af974)();\n        uVar12 = *param_6;\n      }\n      if ((uVar12 & 0x40) != 0) {\n        (*(code *)PTR_register_css_000af970)();\n      }\n    }" if (parenthesized_expression "((uVar12 != 0) || (puVar19[0x16a] != '\0'))" ( (binary_expression "(uVar12 != 0) || (puVar19[0x16a] != '\0')" (parenthesized_expression "(uVar12 != 0)" ( (binary_expression "uVar12 != 0" identifier != number_literal) )) || (parenthesized_expression "(puVar19[0x16a] != '\0')" ( (binary_expression "puVar19[0x16a] != '\0'" (subscript_expression "puVar19[0x16a]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n      (*(code *)PTR_register_download_000af96c)(*puVar13);\n      if ((puVar19[0x48] == '\0') && (local_84 != 0)) {\n        puVar20 = (undefined *)*puVar13;\n        puVar18 = puVar20;\n        iVar10 = (*(code *)PTR_strcmp_000afacc)(param_2);\n        if (iVar10 != 0) {\n          (*(code *)PTR_register_redirection_000af978)(param_2);\n          puVar18 = puVar20;\n        }\n      }\n      uVar12 = *param_6;\n      if ((uVar12 & 1) != 0) {\n        (*(code *)PTR_register_html_000af974)();\n        uVar12 = *param_6;\n      }\n      if ((uVar12 & 0x40) != 0) {\n        (*(code *)PTR_register_css_000af970)();\n      }\n    }" { (expression_statement "(*(code *)PTR_register_download_000af96c)(*puVar13);" (call_expression "(*(code *)PTR_register_download_000af96c)(*puVar13)" (parenthesized_expression "(*(code *)PTR_register_download_000af96c)" ( (pointer_expression "*(code *)PTR_register_download_000af96c" * (cast_expression "(code *)PTR_register_download_000af96c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*puVar13)" ( (pointer_expression "*puVar13" * identifier) ))) ;) (if_statement "if ((puVar19[0x48] == '\0') && (local_84 != 0)) {\n        puVar20 = (undefined *)*puVar13;\n        puVar18 = puVar20;\n        iVar10 = (*(code *)PTR_strcmp_000afacc)(param_2);\n        if (iVar10 != 0) {\n          (*(code *)PTR_register_redirection_000af978)(param_2);\n          puVar18 = puVar20;\n        }\n      }" if (parenthesized_expression "((puVar19[0x48] == '\0') && (local_84 != 0))" ( (binary_expression "(puVar19[0x48] == '\0') && (local_84 != 0)" (parenthesized_expression "(puVar19[0x48] == '\0')" ( (binary_expression "puVar19[0x48] == '\0'" (subscript_expression "puVar19[0x48]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(local_84 != 0)" ( (binary_expression "local_84 != 0" identifier != number_literal) ))) )) (compound_statement "{\n        puVar20 = (undefined *)*puVar13;\n        puVar18 = puVar20;\n        iVar10 = (*(code *)PTR_strcmp_000afacc)(param_2);\n        if (iVar10 != 0) {\n          (*(code *)PTR_register_redirection_000af978)(param_2);\n          puVar18 = puVar20;\n        }\n      }" { (expression_statement "puVar20 = (undefined *)*puVar13;" (assignment_expression "puVar20 = (undefined *)*puVar13" identifier = (cast_expression "(undefined *)*puVar13" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar13" * identifier))) ;) (expression_statement "puVar18 = puVar20;" (assignment_expression "puVar18 = puVar20" identifier = identifier) ;) (expression_statement "iVar10 = (*(code *)PTR_strcmp_000afacc)(param_2);" (assignment_expression "iVar10 = (*(code *)PTR_strcmp_000afacc)(param_2)" identifier = (call_expression "(*(code *)PTR_strcmp_000afacc)(param_2)" (parenthesized_expression "(*(code *)PTR_strcmp_000afacc)" ( (pointer_expression "*(code *)PTR_strcmp_000afacc" * (cast_expression "(code *)PTR_strcmp_000afacc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2)" ( identifier )))) ;) (if_statement "if (iVar10 != 0) {\n          (*(code *)PTR_register_redirection_000af978)(param_2);\n          puVar18 = puVar20;\n        }" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (compound_statement "{\n          (*(code *)PTR_register_redirection_000af978)(param_2);\n          puVar18 = puVar20;\n        }" { (expression_statement "(*(code *)PTR_register_redirection_000af978)(param_2);" (call_expression "(*(code *)PTR_register_redirection_000af978)(param_2)" (parenthesized_expression "(*(code *)PTR_register_redirection_000af978)" ( (pointer_expression "*(code *)PTR_register_redirection_000af978" * (cast_expression "(code *)PTR_register_redirection_000af978" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2)" ( identifier ))) ;) (expression_statement "puVar18 = puVar20;" (assignment_expression "puVar18 = puVar20" identifier = identifier) ;) })) })) (expression_statement "uVar12 = *param_6;" (assignment_expression "uVar12 = *param_6" identifier = (pointer_expression "*param_6" * identifier)) ;) (if_statement "if ((uVar12 & 1) != 0) {\n        (*(code *)PTR_register_html_000af974)();\n        uVar12 = *param_6;\n      }" if (parenthesized_expression "((uVar12 & 1) != 0)" ( (binary_expression "(uVar12 & 1) != 0" (parenthesized_expression "(uVar12 & 1)" ( (binary_expression "uVar12 & 1" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        (*(code *)PTR_register_html_000af974)();\n        uVar12 = *param_6;\n      }" { (expression_statement "(*(code *)PTR_register_html_000af974)();" (call_expression "(*(code *)PTR_register_html_000af974)()" (parenthesized_expression "(*(code *)PTR_register_html_000af974)" ( (pointer_expression "*(code *)PTR_register_html_000af974" * (cast_expression "(code *)PTR_register_html_000af974" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "uVar12 = *param_6;" (assignment_expression "uVar12 = *param_6" identifier = (pointer_expression "*param_6" * identifier)) ;) })) (if_statement "if ((uVar12 & 0x40) != 0) {\n        (*(code *)PTR_register_css_000af970)();\n      }" if (parenthesized_expression "((uVar12 & 0x40) != 0)" ( (binary_expression "(uVar12 & 0x40) != 0" (parenthesized_expression "(uVar12 & 0x40)" ( (binary_expression "uVar12 & 0x40" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        (*(code *)PTR_register_css_000af970)();\n      }" { (expression_statement "(*(code *)PTR_register_css_000af970)();" (call_expression "(*(code *)PTR_register_css_000af970)()" (parenthesized_expression "(*(code *)PTR_register_css_000af970)" ( (pointer_expression "*(code *)PTR_register_css_000af970" * (cast_expression "(code *)PTR_register_css_000af970" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) })) })) (labeled_statement "LAB_0004d2f8:\n  if (param_3 == (undefined4 *)0x0) {\n    (*(code *)PTR_free_000afd08)();\n    local_30 = (undefined *)0x0;\n  }\n  else {\n    *param_3 = local_30;\n  }" statement_identifier : (if_statement "if (param_3 == (undefined4 *)0x0) {\n    (*(code *)PTR_free_000afd08)();\n    local_30 = (undefined *)0x0;\n  }\n  else {\n    *param_3 = local_30;\n  }" if (parenthesized_expression "(param_3 == (undefined4 *)0x0)" ( (binary_expression "param_3 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (*(code *)PTR_free_000afd08)();\n    local_30 = (undefined *)0x0;\n  }" { (expression_statement "(*(code *)PTR_free_000afd08)();" (call_expression "(*(code *)PTR_free_000afd08)()" (parenthesized_expression "(*(code *)PTR_free_000afd08)" ( (pointer_expression "*(code *)PTR_free_000afd08" * (cast_expression "(code *)PTR_free_000afd08" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "local_30 = (undefined *)0x0;" (assignment_expression "local_30 = (undefined *)0x0" identifier = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    *param_3 = local_30;\n  }" else (compound_statement "{\n    *param_3 = local_30;\n  }" { (expression_statement "*param_3 = local_30;" (assignment_expression "*param_3 = local_30" (pointer_expression "*param_3" * identifier) = identifier) ;) })))) (if_statement "if (param_1 != puVar13) {\n    url_free(puVar13);\n  }" if (parenthesized_expression "(param_1 != puVar13)" ( (binary_expression "param_1 != puVar13" identifier != identifier) )) (compound_statement "{\n    url_free(puVar13);\n  }" { (expression_statement "url_free(puVar13);" (call_expression "url_free(puVar13)" identifier (argument_list "(puVar13)" ( identifier ))) ;) })) (expression_statement "puVar20 = PTR_free_000afd08;" (assignment_expression "puVar20 = PTR_free_000afd08" identifier = identifier) ;) (if_statement "if ((local_84 == 0) && (cVar4 == '\0')) {\n    if (param_4 != (undefined4 *)0x0) {\n      *param_4 = 0;\n    }\n  }\n  else if (param_4 != (undefined4 *)0x0) {\n    *param_4 = puVar5;\n    goto LAB_0004d33c;\n  }" if (parenthesized_expression "((local_84 == 0) && (cVar4 == '\0'))" ( (binary_expression "(local_84 == 0) && (cVar4 == '\0')" (parenthesized_expression "(local_84 == 0)" ( (binary_expression "local_84 == 0" identifier == number_literal) )) && (parenthesized_expression "(cVar4 == '\0')" ( (binary_expression "cVar4 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n    if (param_4 != (undefined4 *)0x0) {\n      *param_4 = 0;\n    }\n  }" { (if_statement "if (param_4 != (undefined4 *)0x0) {\n      *param_4 = 0;\n    }" if (parenthesized_expression "(param_4 != (undefined4 *)0x0)" ( (binary_expression "param_4 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      *param_4 = 0;\n    }" { (expression_statement "*param_4 = 0;" (assignment_expression "*param_4 = 0" (pointer_expression "*param_4" * identifier) = number_literal) ;) })) }) (else_clause "else if (param_4 != (undefined4 *)0x0) {\n    *param_4 = puVar5;\n    goto LAB_0004d33c;\n  }" else (if_statement "if (param_4 != (undefined4 *)0x0) {\n    *param_4 = puVar5;\n    goto LAB_0004d33c;\n  }" if (parenthesized_expression "(param_4 != (undefined4 *)0x0)" ( (binary_expression "param_4 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    *param_4 = puVar5;\n    goto LAB_0004d33c;\n  }" { (expression_statement "*param_4 = puVar5;" (assignment_expression "*param_4 = puVar5" (pointer_expression "*param_4" * identifier) = identifier) ;) (goto_statement "goto LAB_0004d33c;" goto statement_identifier ;) })))) (expression_statement "(*(code *)puVar20)(puVar5);" (call_expression "(*(code *)puVar20)(puVar5)" (parenthesized_expression "(*(code *)puVar20)" ( (pointer_expression "*(code *)puVar20" * (cast_expression "(code *)puVar20" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar5)" ( identifier ))) ;) (labeled_statement "LAB_0004d33c:\n  puVar5 = PTR_opt_000af488;" statement_identifier : (expression_statement "puVar5 = PTR_opt_000af488;" (assignment_expression "puVar5 = PTR_opt_000af488" identifier = identifier) ;)) (if_statement "if (bVar3) {\n    *(undefined4 *)(PTR_opt_000af488 + 0x1f8) = local_64;\n    *(undefined4 *)(puVar5 + 0x1fc) = local_5c;\n    *(undefined4 *)(puVar5 + 500) = local_60;\n  }" if (parenthesized_expression "(bVar3)" ( identifier )) (compound_statement "{\n    *(undefined4 *)(PTR_opt_000af488 + 0x1f8) = local_64;\n    *(undefined4 *)(puVar5 + 0x1fc) = local_5c;\n    *(undefined4 *)(puVar5 + 500) = local_60;\n  }" { (expression_statement "*(undefined4 *)(PTR_opt_000af488 + 0x1f8) = local_64;" (assignment_expression "*(undefined4 *)(PTR_opt_000af488 + 0x1f8) = local_64" (pointer_expression "*(undefined4 *)(PTR_opt_000af488 + 0x1f8)" * (cast_expression "(undefined4 *)(PTR_opt_000af488 + 0x1f8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_opt_000af488 + 0x1f8)" ( (binary_expression "PTR_opt_000af488 + 0x1f8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar5 + 0x1fc) = local_5c;" (assignment_expression "*(undefined4 *)(puVar5 + 0x1fc) = local_5c" (pointer_expression "*(undefined4 *)(puVar5 + 0x1fc)" * (cast_expression "(undefined4 *)(puVar5 + 0x1fc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 0x1fc)" ( (binary_expression "puVar5 + 0x1fc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar5 + 500) = local_60;" (assignment_expression "*(undefined4 *)(puVar5 + 500) = local_60" (pointer_expression "*(undefined4 *)(puVar5 + 500)" * (cast_expression "(undefined4 *)(puVar5 + 500)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 500)" ( (binary_expression "puVar5 + 500" identifier + number_literal) )))) = identifier) ;) })) (labeled_statement "LAB_0004d368:\n  if (param_9 != '\0') {\n    inform_exit_status(iVar9);\n  }" statement_identifier : (if_statement "if (param_9 != '\0') {\n    inform_exit_status(iVar9);\n  }" if (parenthesized_expression "(param_9 != '\0')" ( (binary_expression "param_9 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    inform_exit_status(iVar9);\n  }" { (expression_statement "inform_exit_status(iVar9);" (call_expression "inform_exit_status(iVar9)" identifier (argument_list "(iVar9)" ( identifier ))) ;) }))) (if_statement "if (local_2c != *(undefined **)puVar17) {\n    puVar17 = local_2c;\n    puVar5 = PTR___stack_chk_fail_000afbd4;\n    (*(code *)PTR___stack_chk_fail_000afbd4)();\n    if (puVar17 == puVar18) {\n      uVar15 = (**(code **)(puVar5 + 0x62534))(0,*(int *)(puVar5 + 0x61cac) + 0x7864,5);\n      iVar9 = logputs(0,uVar15);\n      return iVar9;\n    }\n    uVar15 = (**(code **)(puVar5 + 0x62534))(0,*(int *)(puVar5 + 0x61cac) + 0x7874);\n    iVar9 = logputs(0,uVar15);\n    return iVar9;\n  }" if (parenthesized_expression "(local_2c != *(undefined **)puVar17)" ( (binary_expression "local_2c != *(undefined **)puVar17" identifier != (pointer_expression "*(undefined **)puVar17" * (cast_expression "(undefined **)puVar17" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (compound_statement "{\n    puVar17 = local_2c;\n    puVar5 = PTR___stack_chk_fail_000afbd4;\n    (*(code *)PTR___stack_chk_fail_000afbd4)();\n    if (puVar17 == puVar18) {\n      uVar15 = (**(code **)(puVar5 + 0x62534))(0,*(int *)(puVar5 + 0x61cac) + 0x7864,5);\n      iVar9 = logputs(0,uVar15);\n      return iVar9;\n    }\n    uVar15 = (**(code **)(puVar5 + 0x62534))(0,*(int *)(puVar5 + 0x61cac) + 0x7874);\n    iVar9 = logputs(0,uVar15);\n    return iVar9;\n  }" { (expression_statement "puVar17 = local_2c;" (assignment_expression "puVar17 = local_2c" identifier = identifier) ;) (expression_statement "puVar5 = PTR___stack_chk_fail_000afbd4;" (assignment_expression "puVar5 = PTR___stack_chk_fail_000afbd4" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_000afbd4)();" (call_expression "(*(code *)PTR___stack_chk_fail_000afbd4)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000afbd4)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000afbd4" * (cast_expression "(code *)PTR___stack_chk_fail_000afbd4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (if_statement "if (puVar17 == puVar18) {\n      uVar15 = (**(code **)(puVar5 + 0x62534))(0,*(int *)(puVar5 + 0x61cac) + 0x7864,5);\n      iVar9 = logputs(0,uVar15);\n      return iVar9;\n    }" if (parenthesized_expression "(puVar17 == puVar18)" ( (binary_expression "puVar17 == puVar18" identifier == identifier) )) (compound_statement "{\n      uVar15 = (**(code **)(puVar5 + 0x62534))(0,*(int *)(puVar5 + 0x61cac) + 0x7864,5);\n      iVar9 = logputs(0,uVar15);\n      return iVar9;\n    }" { (expression_statement "uVar15 = (**(code **)(puVar5 + 0x62534))(0,*(int *)(puVar5 + 0x61cac) + 0x7864,5);" (assignment_expression "uVar15 = (**(code **)(puVar5 + 0x62534))(0,*(int *)(puVar5 + 0x61cac) + 0x7864,5)" identifier = (call_expression "(**(code **)(puVar5 + 0x62534))(0,*(int *)(puVar5 + 0x61cac) + 0x7864,5)" (parenthesized_expression "(**(code **)(puVar5 + 0x62534))" ( (pointer_expression "**(code **)(puVar5 + 0x62534)" * (pointer_expression "*(code **)(puVar5 + 0x62534)" * (cast_expression "(code **)(puVar5 + 0x62534)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar5 + 0x62534)" ( (binary_expression "puVar5 + 0x62534" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar5 + 0x61cac) + 0x7864,5)" ( number_literal , (binary_expression "*(int *)(puVar5 + 0x61cac) + 0x7864" (pointer_expression "*(int *)(puVar5 + 0x61cac)" * (cast_expression "(int *)(puVar5 + 0x61cac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 0x61cac)" ( (binary_expression "puVar5 + 0x61cac" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "iVar9 = logputs(0,uVar15);" (assignment_expression "iVar9 = logputs(0,uVar15)" identifier = (call_expression "logputs(0,uVar15)" identifier (argument_list "(0,uVar15)" ( number_literal , identifier )))) ;) (return_statement "return iVar9;" return identifier ;) })) (expression_statement "uVar15 = (**(code **)(puVar5 + 0x62534))(0,*(int *)(puVar5 + 0x61cac) + 0x7874);" (assignment_expression "uVar15 = (**(code **)(puVar5 + 0x62534))(0,*(int *)(puVar5 + 0x61cac) + 0x7874)" identifier = (call_expression "(**(code **)(puVar5 + 0x62534))(0,*(int *)(puVar5 + 0x61cac) + 0x7874)" (parenthesized_expression "(**(code **)(puVar5 + 0x62534))" ( (pointer_expression "**(code **)(puVar5 + 0x62534)" * (pointer_expression "*(code **)(puVar5 + 0x62534)" * (cast_expression "(code **)(puVar5 + 0x62534)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar5 + 0x62534)" ( (binary_expression "puVar5 + 0x62534" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar5 + 0x61cac) + 0x7874)" ( number_literal , (binary_expression "*(int *)(puVar5 + 0x61cac) + 0x7874" (pointer_expression "*(int *)(puVar5 + 0x61cac)" * (cast_expression "(int *)(puVar5 + 0x61cac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 0x61cac)" ( (binary_expression "puVar5 + 0x61cac" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "iVar9 = logputs(0,uVar15);" (assignment_expression "iVar9 = logputs(0,uVar15)" identifier = (call_expression "logputs(0,uVar15)" identifier (argument_list "(0,uVar15)" ( number_literal , identifier )))) ;) (return_statement "return iVar9;" return identifier ;) })) (return_statement "return iVar9;" return identifier ;) })))
(translation_unit "uerr_t retrieve_url(url *orig_parsed,char *origurl,char **file,char **newloc,char *refurl,int *dt,\n                   _Bool recursive,iri *iri,_Bool register_status)\n\n{\n  char cVar1;\n  bool bVar2;\n  char cVar3;\n  undefined *puVar4;\n  undefined3 extraout_var;\n  undefined3 extraout_var_00;\n  char *pcVar5;\n  code *pcVar6;\n  char *pcVar7;\n  char *pcVar8;\n  char *pcVar9;\n  iri *i;\n  url *puVar10;\n  uint uVar11;\n  url *u;\n  int iVar12;\n  uerr_t err;\n  _Bool _Var13;\n  char *charset;\n  undefined *puVar14;\n  undefined *puVar15;\n  int local_84;\n  char *local_7c;\n  uint local_68;\n  undefined4 local_64;\n  undefined4 local_60;\n  undefined4 local_5c;\n  int dummy;\n  char *mynewloc;\n  int up_error_code;\n  char *local_file;\n  char *local_2c;\n  \n  puVar15 = PTR___stack_chk_guard_000afc3c;\n  local_7c = refurl;\n  local_68 = (uint)recursive;\n  local_2c = *(char **)PTR___stack_chk_guard_000afc3c;\n  local_file = (char *)0x0;\n  if (dt == (int *)0x0) {\n    dt = &dummy;\n    dummy = 0;\n  }\n  pcVar5 = xstrdup(origurl);\n  if (newloc != (char **)0x0) {\n    *newloc = (char *)0x0;\n  }\n  if (file != (char **)0x0) {\n    *file = (char *)0x0;\n  }\n  puVar4 = PTR_s_hallenge__000af46c;\n  if (refurl == (char *)0x0) {\n    local_7c = *(char **)(PTR_opt_000af488 + 0x178);\n  }\n  local_5c = 0;\n  local_60 = 0;\n  local_64 = 0;\n  bVar2 = false;\n  pcVar6 = (code *)(PTR_LAB_000af918 + -0x4774);\n  local_84 = 0;\n  pcVar7 = PTR_s_hallenge__000af46c + 0x77ec;\n  pcVar8 = PTR_s_hallenge__000af46c + -0x1710;\n  u = orig_parsed;\n  cVar3 = '\0';\nLAB_0004ce08:\n  do {\n    mynewloc = (char *)0x0;\n    (*(code *)PTR_free_000afd08)(local_file);\n    local_file = (char *)0x0;\n    pcVar9 = (char *)(*pcVar6)(&u->scheme,&u->host);\n    puVar14 = PTR_opt_000af488;\n    if (pcVar9 == (char *)0x0) {\n      if (u->scheme < SCHEME_FTP) {\n        puVar10 = (url *)0x0;\n        goto LAB_0004cfbc;\n      }\n      if (1 < u->scheme - SCHEME_FTP) goto LAB_0004cef8;\n      puVar10 = (url *)0x0;\nLAB_0004d1d0:\n      if (local_84 == 0) {\n        err = (*(code *)PTR_ftp_loop_000af968)\n                        (u,orig_parsed,&local_file,dt,puVar10,local_68,PTR_opt_000af488[0xe1]);\n      }\n      else {\n        err = (*(code *)PTR_ftp_loop_000af968)(u,orig_parsed,&local_file,dt,puVar10,local_68,0);\n        if ((local_file == (char *)0x0) || (1 < u->scheme - SCHEME_FTP)) {\n          local_68 = 0;\n        }\n        else {\n          _Var13 = has_html_suffix_p(local_file);\n          local_68 = CONCAT31(extraout_var_00,_Var13);\n          if (local_68 != 0) {\n            local_68 = 0;\n            *dt = *dt | 1;\n          }\n        }\n      }\nLAB_0004d01c:\n      if (puVar10 != (url *)0x0) {\n        url_free(puVar10);\n      }\n      puVar14 = PTR_opt_000af488;\n      if ((err == NEWLOCATION) || (err == NEWLOCATION_KEEP_POST)) {\n        (*(code *)PTR_free_000afd08)(local_file);\n        local_file = (char *)0x0;\n        pcVar9 = mynewloc;\n        if (mynewloc == (char *)0x0) {\n          pcVar9 = pcVar8;\n        }\n        pcVar9 = uri_merge(pcVar5,pcVar9);\n        (*(code *)PTR_free_000afd08)(mynewloc);\n        charset = *(char **)(puVar14 + 0x218);\n        iri->utf8_encode = (_Bool)puVar14[0x216];\n        mynewloc = pcVar9;\n        if (charset != (char *)0x0) {\n          set_uri_encoding(iri,charset,true);\n        }\n        set_content_encoding(iri,(char *)0x0);\n        (*(code *)PTR_free_000afd08)(iri->orig_url);\n        iri->orig_url = (char *)0x0;\n        puVar10 = url_parse(mynewloc,&up_error_code,iri,true);\n        if (puVar10 == (url *)0x0) {\n          pcVar5 = url_error(mynewloc,up_error_code);\n          pcVar7 = escnonprint_uri(mynewloc);\n                    /* WARNING: Subroutine does not return */\n          logprintf(LOG_NOTQUIET,PTR_s_hallenge__000af46c + 0x776c,pcVar7,pcVar5);\n        }\n        local_84 = local_84 + 1;\n        (*(code *)PTR_free_000afd08)(mynewloc);\n        mynewloc = (char *)0x0;\n        mynewloc = xstrdup(puVar10->url);\n        if (*(int *)(puVar14 + 0x18) < local_84) {\n          pcVar5 = (char *)(*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x77d0,5);\n                    /* WARNING: Subroutine does not return */\n          logprintf(LOG_NOTQUIET,pcVar5,*(undefined4 *)(puVar14 + 0x18));\n        }\n        (*(code *)PTR_free_000afd08)(pcVar5);\n        pcVar5 = mynewloc;\n        if (u != orig_parsed) {\n          url_free(u);\n        }\n        u = puVar10;\n        if ((err != NEWLOCATION_KEEP_POST) && (!bVar2)) {\n          local_64 = *(undefined4 *)(puVar14 + 0x1f8);\n          *(undefined4 *)(puVar14 + 0x1f8) = 0;\n          local_5c = *(undefined4 *)(puVar14 + 0x1fc);\n          *(undefined4 *)(puVar14 + 0x1fc) = 0;\n          bVar2 = true;\n          local_60 = *(undefined4 *)(puVar14 + 500);\n          *(undefined4 *)(puVar14 + 500) = 0;\n        }\n        goto LAB_0004ce08;\n      }\n    }\n    else {\n      i = iri_new();\n      set_uri_encoding(i,*(char **)(puVar14 + 0x21c),true);\n      i->utf8_encode = false;\n      puVar10 = url_parse(pcVar9,&up_error_code,i,true);\n      if (puVar10 == (url *)0x0) {\n        pcVar5 = url_error(pcVar9,up_error_code);\n        pcVar7 = (char *)(*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7754,5);\n                    /* WARNING: Subroutine does not return */\n        logprintf(LOG_NOTQUIET,pcVar7,pcVar9,pcVar5);\n      }\n      if ((puVar10->scheme != SCHEME_HTTP) && (puVar10->scheme != u->scheme)) {\n        pcVar5 = (char *)(*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7778,5);\n                    /* WARNING: Subroutine does not return */\n        logprintf(LOG_NOTQUIET,pcVar5,pcVar9);\n      }\n      iri_free(i);\n      (*(code *)PTR_free_000afd08)(pcVar9);\n      if ((u->scheme < SCHEME_FTP) || (puVar10->scheme == SCHEME_HTTP)) {\nLAB_0004cfbc:\n        if ((puVar14[0x22c] != '\0') &&\n           ((*(hsts_store_t *)PTR_hsts_store_000af570 != (hsts_store_t)0x0 &&\n            (_Var13 = hsts_match(*(hsts_store_t *)PTR_hsts_store_000af570,u),\n            CONCAT31(extraout_var,_Var13) != 0)))) {\n                    /* WARNING: Subroutine does not return */\n          logprintf(LOG_VERBOSE,puVar4 + 0x77a0);\n        }\n        err = http_loop(u,orig_parsed,&mynewloc,&local_file,local_7c,dt,puVar10,iri);\n        goto LAB_0004d01c;\n      }\n      if (u->scheme - SCHEME_FTP < 2) goto LAB_0004d1d0;\n      url_free(puVar10);\nLAB_0004cef8:\n      err = NOCONERROR;\n    }\n    (*(code *)PTR_free_000afd08)(mynewloc);\n    uVar11 = *dt & 2;\n    mynewloc = (char *)0x0;\n    if ((uVar11 != 0) || (_Var13 = iri->utf8_encode, _Var13 == false)) {\n      pcVar9 = local_file;\n      if ((local_file == (char *)0x0) || (puVar14 = PTR_opt_000af488, u == (url *)0x0))\n      goto LAB_0004d2f8;\n      goto LAB_0004d2e0;\n    }\n    iri->utf8_encode = false;\n    if (u != orig_parsed) {\n      url_free(u);\n    }\n    pcVar9 = (char *)0x0;\n    u = url_parse(origurl,(int *)0x0,iri,true);\n    puVar14 = PTR_opt_000af488;\n    if (u == (url *)0x0) {\n      if (PTR_opt_000af488[0x16b] != '\0') {\n        pcVar9 = quote(pcVar5);\n        debug_logprintf(PTR_s_hallenge__000af46c + 0x783c);\n      }\n      goto LAB_0004d2f8;\n    }\n    iVar12 = (*(code *)PTR_strcmp_000afacc)(u->url,orig_parsed->url);\n    cVar1 = puVar14[0x16b];\n    if (iVar12 == 0) break;\n    if (cVar1 != '\0') {\n      pcVar9 = quote(pcVar5);\n      debug_logprintf(pcVar7,pcVar9);\n    }\n    (*(code *)PTR_free_000afd08)(pcVar5);\n    pcVar5 = xstrdup(u->url);\n    cVar3 = _Var13;\n  } while( true );\n  if (cVar1 != '\0') {\n    pcVar7 = quote(pcVar5);\n    debug_logprintf(PTR_s_hallenge__000af46c + 0x7814,pcVar7);\n  }\n  pcVar9 = local_file;\n  if (local_file != (char *)0x0) {\n    uVar11 = *dt & 2;\nLAB_0004d2e0:\n    pcVar9 = local_file;\n    if ((uVar11 != 0) || (puVar14[0x16a] != '\0')) {\n      (*(code *)PTR_register_download_000af96c)(u->url);\n      if ((puVar14[0x48] == '\0') && (local_84 != 0)) {\n        pcVar7 = u->url;\n        pcVar9 = pcVar7;\n        iVar12 = (*(code *)PTR_strcmp_000afacc)(origurl);\n        if (iVar12 != 0) {\n          (*(code *)PTR_register_redirection_000af978)(origurl);\n          pcVar9 = pcVar7;\n        }\n      }\n      uVar11 = *dt;\n      if ((uVar11 & 1) != 0) {\n        (*(code *)PTR_register_html_000af974)();\n        uVar11 = *dt;\n      }\n      if ((uVar11 & 0x40) != 0) {\n        (*(code *)PTR_register_css_000af970)();\n      }\n    }\n  }\nLAB_0004d2f8:\n  if (file == (char **)0x0) {\n    (*(code *)PTR_free_000afd08)();\n    local_file = (char *)0x0;\n  }\n  else {\n    *file = local_file;\n  }\n  if (orig_parsed != u) {\n    url_free(u);\n  }\n  puVar4 = PTR_free_000afd08;\n  if ((local_84 == 0) && (cVar3 == '\0')) {\n    if (newloc != (char **)0x0) {\n      *newloc = (char *)0x0;\n    }\n  }\n  else if (newloc != (char **)0x0) {\n    *newloc = pcVar5;\n    goto LAB_0004d33c;\n  }\n  (*(code *)puVar4)(pcVar5);\nLAB_0004d33c:\n  puVar4 = PTR_opt_000af488;\n  if (bVar2) {\n    *(undefined4 *)(PTR_opt_000af488 + 0x1f8) = local_64;\n    *(undefined4 *)(puVar4 + 0x1fc) = local_5c;\n    *(undefined4 *)(puVar4 + 500) = local_60;\n  }\n  if (register_status) {\n    inform_exit_status(err);\n  }\n  if (local_2c != *(char **)puVar15) {\n    pcVar5 = local_2c;\n    puVar15 = PTR___stack_chk_fail_000afbd4;\n    (*(code *)PTR___stack_chk_fail_000afbd4)();\n    if (pcVar5 == pcVar9) {\n      pcVar5 = (char *)(**(code **)(puVar15 + 0x62534))(0,*(int *)(puVar15 + 0x61cac) + 0x7864,5);\n      logputs(LOG_VERBOSE,pcVar5);\n      return (uerr_t)pcVar5;\n    }\n    pcVar5 = (char *)(**(code **)(puVar15 + 0x62534))(0,*(int *)(puVar15 + 0x61cac) + 0x7874);\n    logputs(LOG_VERBOSE,pcVar5);\n    return (uerr_t)pcVar5;\n  }\n  return err;\n}\n\n" (function_definition "uerr_t retrieve_url(url *orig_parsed,char *origurl,char **file,char **newloc,char *refurl,int *dt,\n                   _Bool recursive,iri *iri,_Bool register_status)\n\n{\n  char cVar1;\n  bool bVar2;\n  char cVar3;\n  undefined *puVar4;\n  undefined3 extraout_var;\n  undefined3 extraout_var_00;\n  char *pcVar5;\n  code *pcVar6;\n  char *pcVar7;\n  char *pcVar8;\n  char *pcVar9;\n  iri *i;\n  url *puVar10;\n  uint uVar11;\n  url *u;\n  int iVar12;\n  uerr_t err;\n  _Bool _Var13;\n  char *charset;\n  undefined *puVar14;\n  undefined *puVar15;\n  int local_84;\n  char *local_7c;\n  uint local_68;\n  undefined4 local_64;\n  undefined4 local_60;\n  undefined4 local_5c;\n  int dummy;\n  char *mynewloc;\n  int up_error_code;\n  char *local_file;\n  char *local_2c;\n  \n  puVar15 = PTR___stack_chk_guard_000afc3c;\n  local_7c = refurl;\n  local_68 = (uint)recursive;\n  local_2c = *(char **)PTR___stack_chk_guard_000afc3c;\n  local_file = (char *)0x0;\n  if (dt == (int *)0x0) {\n    dt = &dummy;\n    dummy = 0;\n  }\n  pcVar5 = xstrdup(origurl);\n  if (newloc != (char **)0x0) {\n    *newloc = (char *)0x0;\n  }\n  if (file != (char **)0x0) {\n    *file = (char *)0x0;\n  }\n  puVar4 = PTR_s_hallenge__000af46c;\n  if (refurl == (char *)0x0) {\n    local_7c = *(char **)(PTR_opt_000af488 + 0x178);\n  }\n  local_5c = 0;\n  local_60 = 0;\n  local_64 = 0;\n  bVar2 = false;\n  pcVar6 = (code *)(PTR_LAB_000af918 + -0x4774);\n  local_84 = 0;\n  pcVar7 = PTR_s_hallenge__000af46c + 0x77ec;\n  pcVar8 = PTR_s_hallenge__000af46c + -0x1710;\n  u = orig_parsed;\n  cVar3 = '\0';\nLAB_0004ce08:\n  do {\n    mynewloc = (char *)0x0;\n    (*(code *)PTR_free_000afd08)(local_file);\n    local_file = (char *)0x0;\n    pcVar9 = (char *)(*pcVar6)(&u->scheme,&u->host);\n    puVar14 = PTR_opt_000af488;\n    if (pcVar9 == (char *)0x0) {\n      if (u->scheme < SCHEME_FTP) {\n        puVar10 = (url *)0x0;\n        goto LAB_0004cfbc;\n      }\n      if (1 < u->scheme - SCHEME_FTP) goto LAB_0004cef8;\n      puVar10 = (url *)0x0;\nLAB_0004d1d0:\n      if (local_84 == 0) {\n        err = (*(code *)PTR_ftp_loop_000af968)\n                        (u,orig_parsed,&local_file,dt,puVar10,local_68,PTR_opt_000af488[0xe1]);\n      }\n      else {\n        err = (*(code *)PTR_ftp_loop_000af968)(u,orig_parsed,&local_file,dt,puVar10,local_68,0);\n        if ((local_file == (char *)0x0) || (1 < u->scheme - SCHEME_FTP)) {\n          local_68 = 0;\n        }\n        else {\n          _Var13 = has_html_suffix_p(local_file);\n          local_68 = CONCAT31(extraout_var_00,_Var13);\n          if (local_68 != 0) {\n            local_68 = 0;\n            *dt = *dt | 1;\n          }\n        }\n      }\nLAB_0004d01c:\n      if (puVar10 != (url *)0x0) {\n        url_free(puVar10);\n      }\n      puVar14 = PTR_opt_000af488;\n      if ((err == NEWLOCATION) || (err == NEWLOCATION_KEEP_POST)) {\n        (*(code *)PTR_free_000afd08)(local_file);\n        local_file = (char *)0x0;\n        pcVar9 = mynewloc;\n        if (mynewloc == (char *)0x0) {\n          pcVar9 = pcVar8;\n        }\n        pcVar9 = uri_merge(pcVar5,pcVar9);\n        (*(code *)PTR_free_000afd08)(mynewloc);\n        charset = *(char **)(puVar14 + 0x218);\n        iri->utf8_encode = (_Bool)puVar14[0x216];\n        mynewloc = pcVar9;\n        if (charset != (char *)0x0) {\n          set_uri_encoding(iri,charset,true);\n        }\n        set_content_encoding(iri,(char *)0x0);\n        (*(code *)PTR_free_000afd08)(iri->orig_url);\n        iri->orig_url = (char *)0x0;\n        puVar10 = url_parse(mynewloc,&up_error_code,iri,true);\n        if (puVar10 == (url *)0x0) {\n          pcVar5 = url_error(mynewloc,up_error_code);\n          pcVar7 = escnonprint_uri(mynewloc);\n                    /* WARNING: Subroutine does not return */\n          logprintf(LOG_NOTQUIET,PTR_s_hallenge__000af46c + 0x776c,pcVar7,pcVar5);\n        }\n        local_84 = local_84 + 1;\n        (*(code *)PTR_free_000afd08)(mynewloc);\n        mynewloc = (char *)0x0;\n        mynewloc = xstrdup(puVar10->url);\n        if (*(int *)(puVar14 + 0x18) < local_84) {\n          pcVar5 = (char *)(*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x77d0,5);\n                    /* WARNING: Subroutine does not return */\n          logprintf(LOG_NOTQUIET,pcVar5,*(undefined4 *)(puVar14 + 0x18));\n        }\n        (*(code *)PTR_free_000afd08)(pcVar5);\n        pcVar5 = mynewloc;\n        if (u != orig_parsed) {\n          url_free(u);\n        }\n        u = puVar10;\n        if ((err != NEWLOCATION_KEEP_POST) && (!bVar2)) {\n          local_64 = *(undefined4 *)(puVar14 + 0x1f8);\n          *(undefined4 *)(puVar14 + 0x1f8) = 0;\n          local_5c = *(undefined4 *)(puVar14 + 0x1fc);\n          *(undefined4 *)(puVar14 + 0x1fc) = 0;\n          bVar2 = true;\n          local_60 = *(undefined4 *)(puVar14 + 500);\n          *(undefined4 *)(puVar14 + 500) = 0;\n        }\n        goto LAB_0004ce08;\n      }\n    }\n    else {\n      i = iri_new();\n      set_uri_encoding(i,*(char **)(puVar14 + 0x21c),true);\n      i->utf8_encode = false;\n      puVar10 = url_parse(pcVar9,&up_error_code,i,true);\n      if (puVar10 == (url *)0x0) {\n        pcVar5 = url_error(pcVar9,up_error_code);\n        pcVar7 = (char *)(*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7754,5);\n                    /* WARNING: Subroutine does not return */\n        logprintf(LOG_NOTQUIET,pcVar7,pcVar9,pcVar5);\n      }\n      if ((puVar10->scheme != SCHEME_HTTP) && (puVar10->scheme != u->scheme)) {\n        pcVar5 = (char *)(*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7778,5);\n                    /* WARNING: Subroutine does not return */\n        logprintf(LOG_NOTQUIET,pcVar5,pcVar9);\n      }\n      iri_free(i);\n      (*(code *)PTR_free_000afd08)(pcVar9);\n      if ((u->scheme < SCHEME_FTP) || (puVar10->scheme == SCHEME_HTTP)) {\nLAB_0004cfbc:\n        if ((puVar14[0x22c] != '\0') &&\n           ((*(hsts_store_t *)PTR_hsts_store_000af570 != (hsts_store_t)0x0 &&\n            (_Var13 = hsts_match(*(hsts_store_t *)PTR_hsts_store_000af570,u),\n            CONCAT31(extraout_var,_Var13) != 0)))) {\n                    /* WARNING: Subroutine does not return */\n          logprintf(LOG_VERBOSE,puVar4 + 0x77a0);\n        }\n        err = http_loop(u,orig_parsed,&mynewloc,&local_file,local_7c,dt,puVar10,iri);\n        goto LAB_0004d01c;\n      }\n      if (u->scheme - SCHEME_FTP < 2) goto LAB_0004d1d0;\n      url_free(puVar10);\nLAB_0004cef8:\n      err = NOCONERROR;\n    }\n    (*(code *)PTR_free_000afd08)(mynewloc);\n    uVar11 = *dt & 2;\n    mynewloc = (char *)0x0;\n    if ((uVar11 != 0) || (_Var13 = iri->utf8_encode, _Var13 == false)) {\n      pcVar9 = local_file;\n      if ((local_file == (char *)0x0) || (puVar14 = PTR_opt_000af488, u == (url *)0x0))\n      goto LAB_0004d2f8;\n      goto LAB_0004d2e0;\n    }\n    iri->utf8_encode = false;\n    if (u != orig_parsed) {\n      url_free(u);\n    }\n    pcVar9 = (char *)0x0;\n    u = url_parse(origurl,(int *)0x0,iri,true);\n    puVar14 = PTR_opt_000af488;\n    if (u == (url *)0x0) {\n      if (PTR_opt_000af488[0x16b] != '\0') {\n        pcVar9 = quote(pcVar5);\n        debug_logprintf(PTR_s_hallenge__000af46c + 0x783c);\n      }\n      goto LAB_0004d2f8;\n    }\n    iVar12 = (*(code *)PTR_strcmp_000afacc)(u->url,orig_parsed->url);\n    cVar1 = puVar14[0x16b];\n    if (iVar12 == 0) break;\n    if (cVar1 != '\0') {\n      pcVar9 = quote(pcVar5);\n      debug_logprintf(pcVar7,pcVar9);\n    }\n    (*(code *)PTR_free_000afd08)(pcVar5);\n    pcVar5 = xstrdup(u->url);\n    cVar3 = _Var13;\n  } while( true );\n  if (cVar1 != '\0') {\n    pcVar7 = quote(pcVar5);\n    debug_logprintf(PTR_s_hallenge__000af46c + 0x7814,pcVar7);\n  }\n  pcVar9 = local_file;\n  if (local_file != (char *)0x0) {\n    uVar11 = *dt & 2;\nLAB_0004d2e0:\n    pcVar9 = local_file;\n    if ((uVar11 != 0) || (puVar14[0x16a] != '\0')) {\n      (*(code *)PTR_register_download_000af96c)(u->url);\n      if ((puVar14[0x48] == '\0') && (local_84 != 0)) {\n        pcVar7 = u->url;\n        pcVar9 = pcVar7;\n        iVar12 = (*(code *)PTR_strcmp_000afacc)(origurl);\n        if (iVar12 != 0) {\n          (*(code *)PTR_register_redirection_000af978)(origurl);\n          pcVar9 = pcVar7;\n        }\n      }\n      uVar11 = *dt;\n      if ((uVar11 & 1) != 0) {\n        (*(code *)PTR_register_html_000af974)();\n        uVar11 = *dt;\n      }\n      if ((uVar11 & 0x40) != 0) {\n        (*(code *)PTR_register_css_000af970)();\n      }\n    }\n  }\nLAB_0004d2f8:\n  if (file == (char **)0x0) {\n    (*(code *)PTR_free_000afd08)();\n    local_file = (char *)0x0;\n  }\n  else {\n    *file = local_file;\n  }\n  if (orig_parsed != u) {\n    url_free(u);\n  }\n  puVar4 = PTR_free_000afd08;\n  if ((local_84 == 0) && (cVar3 == '\0')) {\n    if (newloc != (char **)0x0) {\n      *newloc = (char *)0x0;\n    }\n  }\n  else if (newloc != (char **)0x0) {\n    *newloc = pcVar5;\n    goto LAB_0004d33c;\n  }\n  (*(code *)puVar4)(pcVar5);\nLAB_0004d33c:\n  puVar4 = PTR_opt_000af488;\n  if (bVar2) {\n    *(undefined4 *)(PTR_opt_000af488 + 0x1f8) = local_64;\n    *(undefined4 *)(puVar4 + 0x1fc) = local_5c;\n    *(undefined4 *)(puVar4 + 500) = local_60;\n  }\n  if (register_status) {\n    inform_exit_status(err);\n  }\n  if (local_2c != *(char **)puVar15) {\n    pcVar5 = local_2c;\n    puVar15 = PTR___stack_chk_fail_000afbd4;\n    (*(code *)PTR___stack_chk_fail_000afbd4)();\n    if (pcVar5 == pcVar9) {\n      pcVar5 = (char *)(**(code **)(puVar15 + 0x62534))(0,*(int *)(puVar15 + 0x61cac) + 0x7864,5);\n      logputs(LOG_VERBOSE,pcVar5);\n      return (uerr_t)pcVar5;\n    }\n    pcVar5 = (char *)(**(code **)(puVar15 + 0x62534))(0,*(int *)(puVar15 + 0x61cac) + 0x7874);\n    logputs(LOG_VERBOSE,pcVar5);\n    return (uerr_t)pcVar5;\n  }\n  return err;\n}" type_identifier (function_declarator "retrieve_url(url *orig_parsed,char *origurl,char **file,char **newloc,char *refurl,int *dt,\n                   _Bool recursive,iri *iri,_Bool register_status)" identifier (parameter_list "(url *orig_parsed,char *origurl,char **file,char **newloc,char *refurl,int *dt,\n                   _Bool recursive,iri *iri,_Bool register_status)" ( (parameter_declaration "url *orig_parsed" type_identifier (pointer_declarator "*orig_parsed" * identifier)) , (parameter_declaration "char *origurl" primitive_type (pointer_declarator "*origurl" * identifier)) , (parameter_declaration "char **file" primitive_type (pointer_declarator "**file" * (pointer_declarator "*file" * identifier))) , (parameter_declaration "char **newloc" primitive_type (pointer_declarator "**newloc" * (pointer_declarator "*newloc" * identifier))) , (parameter_declaration "char *refurl" primitive_type (pointer_declarator "*refurl" * identifier)) , (parameter_declaration "int *dt" primitive_type (pointer_declarator "*dt" * identifier)) , (parameter_declaration "_Bool recursive" type_identifier identifier) , (parameter_declaration "iri *iri" type_identifier (pointer_declarator "*iri" * identifier)) , (parameter_declaration "_Bool register_status" type_identifier identifier) ))) (compound_statement "{\n  char cVar1;\n  bool bVar2;\n  char cVar3;\n  undefined *puVar4;\n  undefined3 extraout_var;\n  undefined3 extraout_var_00;\n  char *pcVar5;\n  code *pcVar6;\n  char *pcVar7;\n  char *pcVar8;\n  char *pcVar9;\n  iri *i;\n  url *puVar10;\n  uint uVar11;\n  url *u;\n  int iVar12;\n  uerr_t err;\n  _Bool _Var13;\n  char *charset;\n  undefined *puVar14;\n  undefined *puVar15;\n  int local_84;\n  char *local_7c;\n  uint local_68;\n  undefined4 local_64;\n  undefined4 local_60;\n  undefined4 local_5c;\n  int dummy;\n  char *mynewloc;\n  int up_error_code;\n  char *local_file;\n  char *local_2c;\n  \n  puVar15 = PTR___stack_chk_guard_000afc3c;\n  local_7c = refurl;\n  local_68 = (uint)recursive;\n  local_2c = *(char **)PTR___stack_chk_guard_000afc3c;\n  local_file = (char *)0x0;\n  if (dt == (int *)0x0) {\n    dt = &dummy;\n    dummy = 0;\n  }\n  pcVar5 = xstrdup(origurl);\n  if (newloc != (char **)0x0) {\n    *newloc = (char *)0x0;\n  }\n  if (file != (char **)0x0) {\n    *file = (char *)0x0;\n  }\n  puVar4 = PTR_s_hallenge__000af46c;\n  if (refurl == (char *)0x0) {\n    local_7c = *(char **)(PTR_opt_000af488 + 0x178);\n  }\n  local_5c = 0;\n  local_60 = 0;\n  local_64 = 0;\n  bVar2 = false;\n  pcVar6 = (code *)(PTR_LAB_000af918 + -0x4774);\n  local_84 = 0;\n  pcVar7 = PTR_s_hallenge__000af46c + 0x77ec;\n  pcVar8 = PTR_s_hallenge__000af46c + -0x1710;\n  u = orig_parsed;\n  cVar3 = '\0';\nLAB_0004ce08:\n  do {\n    mynewloc = (char *)0x0;\n    (*(code *)PTR_free_000afd08)(local_file);\n    local_file = (char *)0x0;\n    pcVar9 = (char *)(*pcVar6)(&u->scheme,&u->host);\n    puVar14 = PTR_opt_000af488;\n    if (pcVar9 == (char *)0x0) {\n      if (u->scheme < SCHEME_FTP) {\n        puVar10 = (url *)0x0;\n        goto LAB_0004cfbc;\n      }\n      if (1 < u->scheme - SCHEME_FTP) goto LAB_0004cef8;\n      puVar10 = (url *)0x0;\nLAB_0004d1d0:\n      if (local_84 == 0) {\n        err = (*(code *)PTR_ftp_loop_000af968)\n                        (u,orig_parsed,&local_file,dt,puVar10,local_68,PTR_opt_000af488[0xe1]);\n      }\n      else {\n        err = (*(code *)PTR_ftp_loop_000af968)(u,orig_parsed,&local_file,dt,puVar10,local_68,0);\n        if ((local_file == (char *)0x0) || (1 < u->scheme - SCHEME_FTP)) {\n          local_68 = 0;\n        }\n        else {\n          _Var13 = has_html_suffix_p(local_file);\n          local_68 = CONCAT31(extraout_var_00,_Var13);\n          if (local_68 != 0) {\n            local_68 = 0;\n            *dt = *dt | 1;\n          }\n        }\n      }\nLAB_0004d01c:\n      if (puVar10 != (url *)0x0) {\n        url_free(puVar10);\n      }\n      puVar14 = PTR_opt_000af488;\n      if ((err == NEWLOCATION) || (err == NEWLOCATION_KEEP_POST)) {\n        (*(code *)PTR_free_000afd08)(local_file);\n        local_file = (char *)0x0;\n        pcVar9 = mynewloc;\n        if (mynewloc == (char *)0x0) {\n          pcVar9 = pcVar8;\n        }\n        pcVar9 = uri_merge(pcVar5,pcVar9);\n        (*(code *)PTR_free_000afd08)(mynewloc);\n        charset = *(char **)(puVar14 + 0x218);\n        iri->utf8_encode = (_Bool)puVar14[0x216];\n        mynewloc = pcVar9;\n        if (charset != (char *)0x0) {\n          set_uri_encoding(iri,charset,true);\n        }\n        set_content_encoding(iri,(char *)0x0);\n        (*(code *)PTR_free_000afd08)(iri->orig_url);\n        iri->orig_url = (char *)0x0;\n        puVar10 = url_parse(mynewloc,&up_error_code,iri,true);\n        if (puVar10 == (url *)0x0) {\n          pcVar5 = url_error(mynewloc,up_error_code);\n          pcVar7 = escnonprint_uri(mynewloc);\n                    /* WARNING: Subroutine does not return */\n          logprintf(LOG_NOTQUIET,PTR_s_hallenge__000af46c + 0x776c,pcVar7,pcVar5);\n        }\n        local_84 = local_84 + 1;\n        (*(code *)PTR_free_000afd08)(mynewloc);\n        mynewloc = (char *)0x0;\n        mynewloc = xstrdup(puVar10->url);\n        if (*(int *)(puVar14 + 0x18) < local_84) {\n          pcVar5 = (char *)(*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x77d0,5);\n                    /* WARNING: Subroutine does not return */\n          logprintf(LOG_NOTQUIET,pcVar5,*(undefined4 *)(puVar14 + 0x18));\n        }\n        (*(code *)PTR_free_000afd08)(pcVar5);\n        pcVar5 = mynewloc;\n        if (u != orig_parsed) {\n          url_free(u);\n        }\n        u = puVar10;\n        if ((err != NEWLOCATION_KEEP_POST) && (!bVar2)) {\n          local_64 = *(undefined4 *)(puVar14 + 0x1f8);\n          *(undefined4 *)(puVar14 + 0x1f8) = 0;\n          local_5c = *(undefined4 *)(puVar14 + 0x1fc);\n          *(undefined4 *)(puVar14 + 0x1fc) = 0;\n          bVar2 = true;\n          local_60 = *(undefined4 *)(puVar14 + 500);\n          *(undefined4 *)(puVar14 + 500) = 0;\n        }\n        goto LAB_0004ce08;\n      }\n    }\n    else {\n      i = iri_new();\n      set_uri_encoding(i,*(char **)(puVar14 + 0x21c),true);\n      i->utf8_encode = false;\n      puVar10 = url_parse(pcVar9,&up_error_code,i,true);\n      if (puVar10 == (url *)0x0) {\n        pcVar5 = url_error(pcVar9,up_error_code);\n        pcVar7 = (char *)(*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7754,5);\n                    /* WARNING: Subroutine does not return */\n        logprintf(LOG_NOTQUIET,pcVar7,pcVar9,pcVar5);\n      }\n      if ((puVar10->scheme != SCHEME_HTTP) && (puVar10->scheme != u->scheme)) {\n        pcVar5 = (char *)(*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7778,5);\n                    /* WARNING: Subroutine does not return */\n        logprintf(LOG_NOTQUIET,pcVar5,pcVar9);\n      }\n      iri_free(i);\n      (*(code *)PTR_free_000afd08)(pcVar9);\n      if ((u->scheme < SCHEME_FTP) || (puVar10->scheme == SCHEME_HTTP)) {\nLAB_0004cfbc:\n        if ((puVar14[0x22c] != '\0') &&\n           ((*(hsts_store_t *)PTR_hsts_store_000af570 != (hsts_store_t)0x0 &&\n            (_Var13 = hsts_match(*(hsts_store_t *)PTR_hsts_store_000af570,u),\n            CONCAT31(extraout_var,_Var13) != 0)))) {\n                    /* WARNING: Subroutine does not return */\n          logprintf(LOG_VERBOSE,puVar4 + 0x77a0);\n        }\n        err = http_loop(u,orig_parsed,&mynewloc,&local_file,local_7c,dt,puVar10,iri);\n        goto LAB_0004d01c;\n      }\n      if (u->scheme - SCHEME_FTP < 2) goto LAB_0004d1d0;\n      url_free(puVar10);\nLAB_0004cef8:\n      err = NOCONERROR;\n    }\n    (*(code *)PTR_free_000afd08)(mynewloc);\n    uVar11 = *dt & 2;\n    mynewloc = (char *)0x0;\n    if ((uVar11 != 0) || (_Var13 = iri->utf8_encode, _Var13 == false)) {\n      pcVar9 = local_file;\n      if ((local_file == (char *)0x0) || (puVar14 = PTR_opt_000af488, u == (url *)0x0))\n      goto LAB_0004d2f8;\n      goto LAB_0004d2e0;\n    }\n    iri->utf8_encode = false;\n    if (u != orig_parsed) {\n      url_free(u);\n    }\n    pcVar9 = (char *)0x0;\n    u = url_parse(origurl,(int *)0x0,iri,true);\n    puVar14 = PTR_opt_000af488;\n    if (u == (url *)0x0) {\n      if (PTR_opt_000af488[0x16b] != '\0') {\n        pcVar9 = quote(pcVar5);\n        debug_logprintf(PTR_s_hallenge__000af46c + 0x783c);\n      }\n      goto LAB_0004d2f8;\n    }\n    iVar12 = (*(code *)PTR_strcmp_000afacc)(u->url,orig_parsed->url);\n    cVar1 = puVar14[0x16b];\n    if (iVar12 == 0) break;\n    if (cVar1 != '\0') {\n      pcVar9 = quote(pcVar5);\n      debug_logprintf(pcVar7,pcVar9);\n    }\n    (*(code *)PTR_free_000afd08)(pcVar5);\n    pcVar5 = xstrdup(u->url);\n    cVar3 = _Var13;\n  } while( true );\n  if (cVar1 != '\0') {\n    pcVar7 = quote(pcVar5);\n    debug_logprintf(PTR_s_hallenge__000af46c + 0x7814,pcVar7);\n  }\n  pcVar9 = local_file;\n  if (local_file != (char *)0x0) {\n    uVar11 = *dt & 2;\nLAB_0004d2e0:\n    pcVar9 = local_file;\n    if ((uVar11 != 0) || (puVar14[0x16a] != '\0')) {\n      (*(code *)PTR_register_download_000af96c)(u->url);\n      if ((puVar14[0x48] == '\0') && (local_84 != 0)) {\n        pcVar7 = u->url;\n        pcVar9 = pcVar7;\n        iVar12 = (*(code *)PTR_strcmp_000afacc)(origurl);\n        if (iVar12 != 0) {\n          (*(code *)PTR_register_redirection_000af978)(origurl);\n          pcVar9 = pcVar7;\n        }\n      }\n      uVar11 = *dt;\n      if ((uVar11 & 1) != 0) {\n        (*(code *)PTR_register_html_000af974)();\n        uVar11 = *dt;\n      }\n      if ((uVar11 & 0x40) != 0) {\n        (*(code *)PTR_register_css_000af970)();\n      }\n    }\n  }\nLAB_0004d2f8:\n  if (file == (char **)0x0) {\n    (*(code *)PTR_free_000afd08)();\n    local_file = (char *)0x0;\n  }\n  else {\n    *file = local_file;\n  }\n  if (orig_parsed != u) {\n    url_free(u);\n  }\n  puVar4 = PTR_free_000afd08;\n  if ((local_84 == 0) && (cVar3 == '\0')) {\n    if (newloc != (char **)0x0) {\n      *newloc = (char *)0x0;\n    }\n  }\n  else if (newloc != (char **)0x0) {\n    *newloc = pcVar5;\n    goto LAB_0004d33c;\n  }\n  (*(code *)puVar4)(pcVar5);\nLAB_0004d33c:\n  puVar4 = PTR_opt_000af488;\n  if (bVar2) {\n    *(undefined4 *)(PTR_opt_000af488 + 0x1f8) = local_64;\n    *(undefined4 *)(puVar4 + 0x1fc) = local_5c;\n    *(undefined4 *)(puVar4 + 500) = local_60;\n  }\n  if (register_status) {\n    inform_exit_status(err);\n  }\n  if (local_2c != *(char **)puVar15) {\n    pcVar5 = local_2c;\n    puVar15 = PTR___stack_chk_fail_000afbd4;\n    (*(code *)PTR___stack_chk_fail_000afbd4)();\n    if (pcVar5 == pcVar9) {\n      pcVar5 = (char *)(**(code **)(puVar15 + 0x62534))(0,*(int *)(puVar15 + 0x61cac) + 0x7864,5);\n      logputs(LOG_VERBOSE,pcVar5);\n      return (uerr_t)pcVar5;\n    }\n    pcVar5 = (char *)(**(code **)(puVar15 + 0x62534))(0,*(int *)(puVar15 + 0x61cac) + 0x7874);\n    logputs(LOG_VERBOSE,pcVar5);\n    return (uerr_t)pcVar5;\n  }\n  return err;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "char cVar3;" primitive_type identifier ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined3 extraout_var;" type_identifier identifier ;) (declaration "undefined3 extraout_var_00;" type_identifier identifier ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "code *pcVar6;" type_identifier (pointer_declarator "*pcVar6" * identifier) ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "char *pcVar8;" primitive_type (pointer_declarator "*pcVar8" * identifier) ;) (declaration "char *pcVar9;" primitive_type (pointer_declarator "*pcVar9" * identifier) ;) (declaration "iri *i;" type_identifier (pointer_declarator "*i" * identifier) ;) (declaration "url *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "url *u;" type_identifier (pointer_declarator "*u" * identifier) ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "uerr_t err;" type_identifier identifier ;) (declaration "_Bool _Var13;" type_identifier identifier ;) (declaration "char *charset;" primitive_type (pointer_declarator "*charset" * identifier) ;) (declaration "undefined *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "undefined *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "int local_84;" primitive_type identifier ;) (declaration "char *local_7c;" primitive_type (pointer_declarator "*local_7c" * identifier) ;) (declaration "uint local_68;" type_identifier identifier ;) (declaration "undefined4 local_64;" type_identifier identifier ;) (declaration "undefined4 local_60;" type_identifier identifier ;) (declaration "undefined4 local_5c;" type_identifier identifier ;) (declaration "int dummy;" primitive_type identifier ;) (declaration "char *mynewloc;" primitive_type (pointer_declarator "*mynewloc" * identifier) ;) (declaration "int up_error_code;" primitive_type identifier ;) (declaration "char *local_file;" primitive_type (pointer_declarator "*local_file" * identifier) ;) (declaration "char *local_2c;" primitive_type (pointer_declarator "*local_2c" * identifier) ;) (expression_statement "puVar15 = PTR___stack_chk_guard_000afc3c;" (assignment_expression "puVar15 = PTR___stack_chk_guard_000afc3c" identifier = identifier) ;) (expression_statement "local_7c = refurl;" (assignment_expression "local_7c = refurl" identifier = identifier) ;) (expression_statement "local_68 = (uint)recursive;" (assignment_expression "local_68 = (uint)recursive" identifier = (cast_expression "(uint)recursive" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "local_2c = *(char **)PTR___stack_chk_guard_000afc3c;" (assignment_expression "local_2c = *(char **)PTR___stack_chk_guard_000afc3c" identifier = (pointer_expression "*(char **)PTR___stack_chk_guard_000afc3c" * (cast_expression "(char **)PTR___stack_chk_guard_000afc3c" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "local_file = (char *)0x0;" (assignment_expression "local_file = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (dt == (int *)0x0) {\n    dt = &dummy;\n    dummy = 0;\n  }" if (parenthesized_expression "(dt == (int *)0x0)" ( (binary_expression "dt == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    dt = &dummy;\n    dummy = 0;\n  }" { (expression_statement "dt = &dummy;" (assignment_expression "dt = &dummy" identifier = (pointer_expression "&dummy" & identifier)) ;) (expression_statement "dummy = 0;" (assignment_expression "dummy = 0" identifier = number_literal) ;) })) (expression_statement "pcVar5 = xstrdup(origurl);" (assignment_expression "pcVar5 = xstrdup(origurl)" identifier = (call_expression "xstrdup(origurl)" identifier (argument_list "(origurl)" ( identifier )))) ;) (if_statement "if (newloc != (char **)0x0) {\n    *newloc = (char *)0x0;\n  }" if (parenthesized_expression "(newloc != (char **)0x0)" ( (binary_expression "newloc != (char **)0x0" identifier != (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n    *newloc = (char *)0x0;\n  }" { (expression_statement "*newloc = (char *)0x0;" (assignment_expression "*newloc = (char *)0x0" (pointer_expression "*newloc" * identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (if_statement "if (file != (char **)0x0) {\n    *file = (char *)0x0;\n  }" if (parenthesized_expression "(file != (char **)0x0)" ( (binary_expression "file != (char **)0x0" identifier != (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n    *file = (char *)0x0;\n  }" { (expression_statement "*file = (char *)0x0;" (assignment_expression "*file = (char *)0x0" (pointer_expression "*file" * identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (expression_statement "puVar4 = PTR_s_hallenge__000af46c;" (assignment_expression "puVar4 = PTR_s_hallenge__000af46c" identifier = identifier) ;) (if_statement "if (refurl == (char *)0x0) {\n    local_7c = *(char **)(PTR_opt_000af488 + 0x178);\n  }" if (parenthesized_expression "(refurl == (char *)0x0)" ( (binary_expression "refurl == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    local_7c = *(char **)(PTR_opt_000af488 + 0x178);\n  }" { (expression_statement "local_7c = *(char **)(PTR_opt_000af488 + 0x178);" (assignment_expression "local_7c = *(char **)(PTR_opt_000af488 + 0x178)" identifier = (pointer_expression "*(char **)(PTR_opt_000af488 + 0x178)" * (cast_expression "(char **)(PTR_opt_000af488 + 0x178)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_opt_000af488 + 0x178)" ( (binary_expression "PTR_opt_000af488 + 0x178" identifier + number_literal) ))))) ;) })) (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" identifier = number_literal) ;) (expression_statement "local_60 = 0;" (assignment_expression "local_60 = 0" identifier = number_literal) ;) (expression_statement "local_64 = 0;" (assignment_expression "local_64 = 0" identifier = number_literal) ;) (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) (expression_statement "pcVar6 = (code *)(PTR_LAB_000af918 + -0x4774);" (assignment_expression "pcVar6 = (code *)(PTR_LAB_000af918 + -0x4774)" identifier = (cast_expression "(code *)(PTR_LAB_000af918 + -0x4774)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000af918 + -0x4774)" ( (binary_expression "PTR_LAB_000af918 + -0x4774" identifier + number_literal) )))) ;) (expression_statement "local_84 = 0;" (assignment_expression "local_84 = 0" identifier = number_literal) ;) (expression_statement "pcVar7 = PTR_s_hallenge__000af46c + 0x77ec;" (assignment_expression "pcVar7 = PTR_s_hallenge__000af46c + 0x77ec" identifier = (binary_expression "PTR_s_hallenge__000af46c + 0x77ec" identifier + number_literal)) ;) (expression_statement "pcVar8 = PTR_s_hallenge__000af46c + -0x1710;" (assignment_expression "pcVar8 = PTR_s_hallenge__000af46c + -0x1710" identifier = (binary_expression "PTR_s_hallenge__000af46c + -0x1710" identifier + number_literal)) ;) (expression_statement "u = orig_parsed;" (assignment_expression "u = orig_parsed" identifier = identifier) ;) (expression_statement "cVar3 = '\0';" (assignment_expression "cVar3 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (labeled_statement "LAB_0004ce08:\n  do {\n    mynewloc = (char *)0x0;\n    (*(code *)PTR_free_000afd08)(local_file);\n    local_file = (char *)0x0;\n    pcVar9 = (char *)(*pcVar6)(&u->scheme,&u->host);\n    puVar14 = PTR_opt_000af488;\n    if (pcVar9 == (char *)0x0) {\n      if (u->scheme < SCHEME_FTP) {\n        puVar10 = (url *)0x0;\n        goto LAB_0004cfbc;\n      }\n      if (1 < u->scheme - SCHEME_FTP) goto LAB_0004cef8;\n      puVar10 = (url *)0x0;\nLAB_0004d1d0:\n      if (local_84 == 0) {\n        err = (*(code *)PTR_ftp_loop_000af968)\n                        (u,orig_parsed,&local_file,dt,puVar10,local_68,PTR_opt_000af488[0xe1]);\n      }\n      else {\n        err = (*(code *)PTR_ftp_loop_000af968)(u,orig_parsed,&local_file,dt,puVar10,local_68,0);\n        if ((local_file == (char *)0x0) || (1 < u->scheme - SCHEME_FTP)) {\n          local_68 = 0;\n        }\n        else {\n          _Var13 = has_html_suffix_p(local_file);\n          local_68 = CONCAT31(extraout_var_00,_Var13);\n          if (local_68 != 0) {\n            local_68 = 0;\n            *dt = *dt | 1;\n          }\n        }\n      }\nLAB_0004d01c:\n      if (puVar10 != (url *)0x0) {\n        url_free(puVar10);\n      }\n      puVar14 = PTR_opt_000af488;\n      if ((err == NEWLOCATION) || (err == NEWLOCATION_KEEP_POST)) {\n        (*(code *)PTR_free_000afd08)(local_file);\n        local_file = (char *)0x0;\n        pcVar9 = mynewloc;\n        if (mynewloc == (char *)0x0) {\n          pcVar9 = pcVar8;\n        }\n        pcVar9 = uri_merge(pcVar5,pcVar9);\n        (*(code *)PTR_free_000afd08)(mynewloc);\n        charset = *(char **)(puVar14 + 0x218);\n        iri->utf8_encode = (_Bool)puVar14[0x216];\n        mynewloc = pcVar9;\n        if (charset != (char *)0x0) {\n          set_uri_encoding(iri,charset,true);\n        }\n        set_content_encoding(iri,(char *)0x0);\n        (*(code *)PTR_free_000afd08)(iri->orig_url);\n        iri->orig_url = (char *)0x0;\n        puVar10 = url_parse(mynewloc,&up_error_code,iri,true);\n        if (puVar10 == (url *)0x0) {\n          pcVar5 = url_error(mynewloc,up_error_code);\n          pcVar7 = escnonprint_uri(mynewloc);\n                    /* WARNING: Subroutine does not return */\n          logprintf(LOG_NOTQUIET,PTR_s_hallenge__000af46c + 0x776c,pcVar7,pcVar5);\n        }\n        local_84 = local_84 + 1;\n        (*(code *)PTR_free_000afd08)(mynewloc);\n        mynewloc = (char *)0x0;\n        mynewloc = xstrdup(puVar10->url);\n        if (*(int *)(puVar14 + 0x18) < local_84) {\n          pcVar5 = (char *)(*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x77d0,5);\n                    /* WARNING: Subroutine does not return */\n          logprintf(LOG_NOTQUIET,pcVar5,*(undefined4 *)(puVar14 + 0x18));\n        }\n        (*(code *)PTR_free_000afd08)(pcVar5);\n        pcVar5 = mynewloc;\n        if (u != orig_parsed) {\n          url_free(u);\n        }\n        u = puVar10;\n        if ((err != NEWLOCATION_KEEP_POST) && (!bVar2)) {\n          local_64 = *(undefined4 *)(puVar14 + 0x1f8);\n          *(undefined4 *)(puVar14 + 0x1f8) = 0;\n          local_5c = *(undefined4 *)(puVar14 + 0x1fc);\n          *(undefined4 *)(puVar14 + 0x1fc) = 0;\n          bVar2 = true;\n          local_60 = *(undefined4 *)(puVar14 + 500);\n          *(undefined4 *)(puVar14 + 500) = 0;\n        }\n        goto LAB_0004ce08;\n      }\n    }\n    else {\n      i = iri_new();\n      set_uri_encoding(i,*(char **)(puVar14 + 0x21c),true);\n      i->utf8_encode = false;\n      puVar10 = url_parse(pcVar9,&up_error_code,i,true);\n      if (puVar10 == (url *)0x0) {\n        pcVar5 = url_error(pcVar9,up_error_code);\n        pcVar7 = (char *)(*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7754,5);\n                    /* WARNING: Subroutine does not return */\n        logprintf(LOG_NOTQUIET,pcVar7,pcVar9,pcVar5);\n      }\n      if ((puVar10->scheme != SCHEME_HTTP) && (puVar10->scheme != u->scheme)) {\n        pcVar5 = (char *)(*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7778,5);\n                    /* WARNING: Subroutine does not return */\n        logprintf(LOG_NOTQUIET,pcVar5,pcVar9);\n      }\n      iri_free(i);\n      (*(code *)PTR_free_000afd08)(pcVar9);\n      if ((u->scheme < SCHEME_FTP) || (puVar10->scheme == SCHEME_HTTP)) {\nLAB_0004cfbc:\n        if ((puVar14[0x22c] != '\0') &&\n           ((*(hsts_store_t *)PTR_hsts_store_000af570 != (hsts_store_t)0x0 &&\n            (_Var13 = hsts_match(*(hsts_store_t *)PTR_hsts_store_000af570,u),\n            CONCAT31(extraout_var,_Var13) != 0)))) {\n                    /* WARNING: Subroutine does not return */\n          logprintf(LOG_VERBOSE,puVar4 + 0x77a0);\n        }\n        err = http_loop(u,orig_parsed,&mynewloc,&local_file,local_7c,dt,puVar10,iri);\n        goto LAB_0004d01c;\n      }\n      if (u->scheme - SCHEME_FTP < 2) goto LAB_0004d1d0;\n      url_free(puVar10);\nLAB_0004cef8:\n      err = NOCONERROR;\n    }\n    (*(code *)PTR_free_000afd08)(mynewloc);\n    uVar11 = *dt & 2;\n    mynewloc = (char *)0x0;\n    if ((uVar11 != 0) || (_Var13 = iri->utf8_encode, _Var13 == false)) {\n      pcVar9 = local_file;\n      if ((local_file == (char *)0x0) || (puVar14 = PTR_opt_000af488, u == (url *)0x0))\n      goto LAB_0004d2f8;\n      goto LAB_0004d2e0;\n    }\n    iri->utf8_encode = false;\n    if (u != orig_parsed) {\n      url_free(u);\n    }\n    pcVar9 = (char *)0x0;\n    u = url_parse(origurl,(int *)0x0,iri,true);\n    puVar14 = PTR_opt_000af488;\n    if (u == (url *)0x0) {\n      if (PTR_opt_000af488[0x16b] != '\0') {\n        pcVar9 = quote(pcVar5);\n        debug_logprintf(PTR_s_hallenge__000af46c + 0x783c);\n      }\n      goto LAB_0004d2f8;\n    }\n    iVar12 = (*(code *)PTR_strcmp_000afacc)(u->url,orig_parsed->url);\n    cVar1 = puVar14[0x16b];\n    if (iVar12 == 0) break;\n    if (cVar1 != '\0') {\n      pcVar9 = quote(pcVar5);\n      debug_logprintf(pcVar7,pcVar9);\n    }\n    (*(code *)PTR_free_000afd08)(pcVar5);\n    pcVar5 = xstrdup(u->url);\n    cVar3 = _Var13;\n  } while( true );" statement_identifier : (do_statement "do {\n    mynewloc = (char *)0x0;\n    (*(code *)PTR_free_000afd08)(local_file);\n    local_file = (char *)0x0;\n    pcVar9 = (char *)(*pcVar6)(&u->scheme,&u->host);\n    puVar14 = PTR_opt_000af488;\n    if (pcVar9 == (char *)0x0) {\n      if (u->scheme < SCHEME_FTP) {\n        puVar10 = (url *)0x0;\n        goto LAB_0004cfbc;\n      }\n      if (1 < u->scheme - SCHEME_FTP) goto LAB_0004cef8;\n      puVar10 = (url *)0x0;\nLAB_0004d1d0:\n      if (local_84 == 0) {\n        err = (*(code *)PTR_ftp_loop_000af968)\n                        (u,orig_parsed,&local_file,dt,puVar10,local_68,PTR_opt_000af488[0xe1]);\n      }\n      else {\n        err = (*(code *)PTR_ftp_loop_000af968)(u,orig_parsed,&local_file,dt,puVar10,local_68,0);\n        if ((local_file == (char *)0x0) || (1 < u->scheme - SCHEME_FTP)) {\n          local_68 = 0;\n        }\n        else {\n          _Var13 = has_html_suffix_p(local_file);\n          local_68 = CONCAT31(extraout_var_00,_Var13);\n          if (local_68 != 0) {\n            local_68 = 0;\n            *dt = *dt | 1;\n          }\n        }\n      }\nLAB_0004d01c:\n      if (puVar10 != (url *)0x0) {\n        url_free(puVar10);\n      }\n      puVar14 = PTR_opt_000af488;\n      if ((err == NEWLOCATION) || (err == NEWLOCATION_KEEP_POST)) {\n        (*(code *)PTR_free_000afd08)(local_file);\n        local_file = (char *)0x0;\n        pcVar9 = mynewloc;\n        if (mynewloc == (char *)0x0) {\n          pcVar9 = pcVar8;\n        }\n        pcVar9 = uri_merge(pcVar5,pcVar9);\n        (*(code *)PTR_free_000afd08)(mynewloc);\n        charset = *(char **)(puVar14 + 0x218);\n        iri->utf8_encode = (_Bool)puVar14[0x216];\n        mynewloc = pcVar9;\n        if (charset != (char *)0x0) {\n          set_uri_encoding(iri,charset,true);\n        }\n        set_content_encoding(iri,(char *)0x0);\n        (*(code *)PTR_free_000afd08)(iri->orig_url);\n        iri->orig_url = (char *)0x0;\n        puVar10 = url_parse(mynewloc,&up_error_code,iri,true);\n        if (puVar10 == (url *)0x0) {\n          pcVar5 = url_error(mynewloc,up_error_code);\n          pcVar7 = escnonprint_uri(mynewloc);\n                    /* WARNING: Subroutine does not return */\n          logprintf(LOG_NOTQUIET,PTR_s_hallenge__000af46c + 0x776c,pcVar7,pcVar5);\n        }\n        local_84 = local_84 + 1;\n        (*(code *)PTR_free_000afd08)(mynewloc);\n        mynewloc = (char *)0x0;\n        mynewloc = xstrdup(puVar10->url);\n        if (*(int *)(puVar14 + 0x18) < local_84) {\n          pcVar5 = (char *)(*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x77d0,5);\n                    /* WARNING: Subroutine does not return */\n          logprintf(LOG_NOTQUIET,pcVar5,*(undefined4 *)(puVar14 + 0x18));\n        }\n        (*(code *)PTR_free_000afd08)(pcVar5);\n        pcVar5 = mynewloc;\n        if (u != orig_parsed) {\n          url_free(u);\n        }\n        u = puVar10;\n        if ((err != NEWLOCATION_KEEP_POST) && (!bVar2)) {\n          local_64 = *(undefined4 *)(puVar14 + 0x1f8);\n          *(undefined4 *)(puVar14 + 0x1f8) = 0;\n          local_5c = *(undefined4 *)(puVar14 + 0x1fc);\n          *(undefined4 *)(puVar14 + 0x1fc) = 0;\n          bVar2 = true;\n          local_60 = *(undefined4 *)(puVar14 + 500);\n          *(undefined4 *)(puVar14 + 500) = 0;\n        }\n        goto LAB_0004ce08;\n      }\n    }\n    else {\n      i = iri_new();\n      set_uri_encoding(i,*(char **)(puVar14 + 0x21c),true);\n      i->utf8_encode = false;\n      puVar10 = url_parse(pcVar9,&up_error_code,i,true);\n      if (puVar10 == (url *)0x0) {\n        pcVar5 = url_error(pcVar9,up_error_code);\n        pcVar7 = (char *)(*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7754,5);\n                    /* WARNING: Subroutine does not return */\n        logprintf(LOG_NOTQUIET,pcVar7,pcVar9,pcVar5);\n      }\n      if ((puVar10->scheme != SCHEME_HTTP) && (puVar10->scheme != u->scheme)) {\n        pcVar5 = (char *)(*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7778,5);\n                    /* WARNING: Subroutine does not return */\n        logprintf(LOG_NOTQUIET,pcVar5,pcVar9);\n      }\n      iri_free(i);\n      (*(code *)PTR_free_000afd08)(pcVar9);\n      if ((u->scheme < SCHEME_FTP) || (puVar10->scheme == SCHEME_HTTP)) {\nLAB_0004cfbc:\n        if ((puVar14[0x22c] != '\0') &&\n           ((*(hsts_store_t *)PTR_hsts_store_000af570 != (hsts_store_t)0x0 &&\n            (_Var13 = hsts_match(*(hsts_store_t *)PTR_hsts_store_000af570,u),\n            CONCAT31(extraout_var,_Var13) != 0)))) {\n                    /* WARNING: Subroutine does not return */\n          logprintf(LOG_VERBOSE,puVar4 + 0x77a0);\n        }\n        err = http_loop(u,orig_parsed,&mynewloc,&local_file,local_7c,dt,puVar10,iri);\n        goto LAB_0004d01c;\n      }\n      if (u->scheme - SCHEME_FTP < 2) goto LAB_0004d1d0;\n      url_free(puVar10);\nLAB_0004cef8:\n      err = NOCONERROR;\n    }\n    (*(code *)PTR_free_000afd08)(mynewloc);\n    uVar11 = *dt & 2;\n    mynewloc = (char *)0x0;\n    if ((uVar11 != 0) || (_Var13 = iri->utf8_encode, _Var13 == false)) {\n      pcVar9 = local_file;\n      if ((local_file == (char *)0x0) || (puVar14 = PTR_opt_000af488, u == (url *)0x0))\n      goto LAB_0004d2f8;\n      goto LAB_0004d2e0;\n    }\n    iri->utf8_encode = false;\n    if (u != orig_parsed) {\n      url_free(u);\n    }\n    pcVar9 = (char *)0x0;\n    u = url_parse(origurl,(int *)0x0,iri,true);\n    puVar14 = PTR_opt_000af488;\n    if (u == (url *)0x0) {\n      if (PTR_opt_000af488[0x16b] != '\0') {\n        pcVar9 = quote(pcVar5);\n        debug_logprintf(PTR_s_hallenge__000af46c + 0x783c);\n      }\n      goto LAB_0004d2f8;\n    }\n    iVar12 = (*(code *)PTR_strcmp_000afacc)(u->url,orig_parsed->url);\n    cVar1 = puVar14[0x16b];\n    if (iVar12 == 0) break;\n    if (cVar1 != '\0') {\n      pcVar9 = quote(pcVar5);\n      debug_logprintf(pcVar7,pcVar9);\n    }\n    (*(code *)PTR_free_000afd08)(pcVar5);\n    pcVar5 = xstrdup(u->url);\n    cVar3 = _Var13;\n  } while( true );" do (compound_statement "{\n    mynewloc = (char *)0x0;\n    (*(code *)PTR_free_000afd08)(local_file);\n    local_file = (char *)0x0;\n    pcVar9 = (char *)(*pcVar6)(&u->scheme,&u->host);\n    puVar14 = PTR_opt_000af488;\n    if (pcVar9 == (char *)0x0) {\n      if (u->scheme < SCHEME_FTP) {\n        puVar10 = (url *)0x0;\n        goto LAB_0004cfbc;\n      }\n      if (1 < u->scheme - SCHEME_FTP) goto LAB_0004cef8;\n      puVar10 = (url *)0x0;\nLAB_0004d1d0:\n      if (local_84 == 0) {\n        err = (*(code *)PTR_ftp_loop_000af968)\n                        (u,orig_parsed,&local_file,dt,puVar10,local_68,PTR_opt_000af488[0xe1]);\n      }\n      else {\n        err = (*(code *)PTR_ftp_loop_000af968)(u,orig_parsed,&local_file,dt,puVar10,local_68,0);\n        if ((local_file == (char *)0x0) || (1 < u->scheme - SCHEME_FTP)) {\n          local_68 = 0;\n        }\n        else {\n          _Var13 = has_html_suffix_p(local_file);\n          local_68 = CONCAT31(extraout_var_00,_Var13);\n          if (local_68 != 0) {\n            local_68 = 0;\n            *dt = *dt | 1;\n          }\n        }\n      }\nLAB_0004d01c:\n      if (puVar10 != (url *)0x0) {\n        url_free(puVar10);\n      }\n      puVar14 = PTR_opt_000af488;\n      if ((err == NEWLOCATION) || (err == NEWLOCATION_KEEP_POST)) {\n        (*(code *)PTR_free_000afd08)(local_file);\n        local_file = (char *)0x0;\n        pcVar9 = mynewloc;\n        if (mynewloc == (char *)0x0) {\n          pcVar9 = pcVar8;\n        }\n        pcVar9 = uri_merge(pcVar5,pcVar9);\n        (*(code *)PTR_free_000afd08)(mynewloc);\n        charset = *(char **)(puVar14 + 0x218);\n        iri->utf8_encode = (_Bool)puVar14[0x216];\n        mynewloc = pcVar9;\n        if (charset != (char *)0x0) {\n          set_uri_encoding(iri,charset,true);\n        }\n        set_content_encoding(iri,(char *)0x0);\n        (*(code *)PTR_free_000afd08)(iri->orig_url);\n        iri->orig_url = (char *)0x0;\n        puVar10 = url_parse(mynewloc,&up_error_code,iri,true);\n        if (puVar10 == (url *)0x0) {\n          pcVar5 = url_error(mynewloc,up_error_code);\n          pcVar7 = escnonprint_uri(mynewloc);\n                    /* WARNING: Subroutine does not return */\n          logprintf(LOG_NOTQUIET,PTR_s_hallenge__000af46c + 0x776c,pcVar7,pcVar5);\n        }\n        local_84 = local_84 + 1;\n        (*(code *)PTR_free_000afd08)(mynewloc);\n        mynewloc = (char *)0x0;\n        mynewloc = xstrdup(puVar10->url);\n        if (*(int *)(puVar14 + 0x18) < local_84) {\n          pcVar5 = (char *)(*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x77d0,5);\n                    /* WARNING: Subroutine does not return */\n          logprintf(LOG_NOTQUIET,pcVar5,*(undefined4 *)(puVar14 + 0x18));\n        }\n        (*(code *)PTR_free_000afd08)(pcVar5);\n        pcVar5 = mynewloc;\n        if (u != orig_parsed) {\n          url_free(u);\n        }\n        u = puVar10;\n        if ((err != NEWLOCATION_KEEP_POST) && (!bVar2)) {\n          local_64 = *(undefined4 *)(puVar14 + 0x1f8);\n          *(undefined4 *)(puVar14 + 0x1f8) = 0;\n          local_5c = *(undefined4 *)(puVar14 + 0x1fc);\n          *(undefined4 *)(puVar14 + 0x1fc) = 0;\n          bVar2 = true;\n          local_60 = *(undefined4 *)(puVar14 + 500);\n          *(undefined4 *)(puVar14 + 500) = 0;\n        }\n        goto LAB_0004ce08;\n      }\n    }\n    else {\n      i = iri_new();\n      set_uri_encoding(i,*(char **)(puVar14 + 0x21c),true);\n      i->utf8_encode = false;\n      puVar10 = url_parse(pcVar9,&up_error_code,i,true);\n      if (puVar10 == (url *)0x0) {\n        pcVar5 = url_error(pcVar9,up_error_code);\n        pcVar7 = (char *)(*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7754,5);\n                    /* WARNING: Subroutine does not return */\n        logprintf(LOG_NOTQUIET,pcVar7,pcVar9,pcVar5);\n      }\n      if ((puVar10->scheme != SCHEME_HTTP) && (puVar10->scheme != u->scheme)) {\n        pcVar5 = (char *)(*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7778,5);\n                    /* WARNING: Subroutine does not return */\n        logprintf(LOG_NOTQUIET,pcVar5,pcVar9);\n      }\n      iri_free(i);\n      (*(code *)PTR_free_000afd08)(pcVar9);\n      if ((u->scheme < SCHEME_FTP) || (puVar10->scheme == SCHEME_HTTP)) {\nLAB_0004cfbc:\n        if ((puVar14[0x22c] != '\0') &&\n           ((*(hsts_store_t *)PTR_hsts_store_000af570 != (hsts_store_t)0x0 &&\n            (_Var13 = hsts_match(*(hsts_store_t *)PTR_hsts_store_000af570,u),\n            CONCAT31(extraout_var,_Var13) != 0)))) {\n                    /* WARNING: Subroutine does not return */\n          logprintf(LOG_VERBOSE,puVar4 + 0x77a0);\n        }\n        err = http_loop(u,orig_parsed,&mynewloc,&local_file,local_7c,dt,puVar10,iri);\n        goto LAB_0004d01c;\n      }\n      if (u->scheme - SCHEME_FTP < 2) goto LAB_0004d1d0;\n      url_free(puVar10);\nLAB_0004cef8:\n      err = NOCONERROR;\n    }\n    (*(code *)PTR_free_000afd08)(mynewloc);\n    uVar11 = *dt & 2;\n    mynewloc = (char *)0x0;\n    if ((uVar11 != 0) || (_Var13 = iri->utf8_encode, _Var13 == false)) {\n      pcVar9 = local_file;\n      if ((local_file == (char *)0x0) || (puVar14 = PTR_opt_000af488, u == (url *)0x0))\n      goto LAB_0004d2f8;\n      goto LAB_0004d2e0;\n    }\n    iri->utf8_encode = false;\n    if (u != orig_parsed) {\n      url_free(u);\n    }\n    pcVar9 = (char *)0x0;\n    u = url_parse(origurl,(int *)0x0,iri,true);\n    puVar14 = PTR_opt_000af488;\n    if (u == (url *)0x0) {\n      if (PTR_opt_000af488[0x16b] != '\0') {\n        pcVar9 = quote(pcVar5);\n        debug_logprintf(PTR_s_hallenge__000af46c + 0x783c);\n      }\n      goto LAB_0004d2f8;\n    }\n    iVar12 = (*(code *)PTR_strcmp_000afacc)(u->url,orig_parsed->url);\n    cVar1 = puVar14[0x16b];\n    if (iVar12 == 0) break;\n    if (cVar1 != '\0') {\n      pcVar9 = quote(pcVar5);\n      debug_logprintf(pcVar7,pcVar9);\n    }\n    (*(code *)PTR_free_000afd08)(pcVar5);\n    pcVar5 = xstrdup(u->url);\n    cVar3 = _Var13;\n  }" { (expression_statement "mynewloc = (char *)0x0;" (assignment_expression "mynewloc = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(*(code *)PTR_free_000afd08)(local_file);" (call_expression "(*(code *)PTR_free_000afd08)(local_file)" (parenthesized_expression "(*(code *)PTR_free_000afd08)" ( (pointer_expression "*(code *)PTR_free_000afd08" * (cast_expression "(code *)PTR_free_000afd08" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_file)" ( identifier ))) ;) (expression_statement "local_file = (char *)0x0;" (assignment_expression "local_file = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar9 = (char *)(*pcVar6)(&u->scheme,&u->host);" (assignment_expression "pcVar9 = (char *)(*pcVar6)(&u->scheme,&u->host)" identifier = (cast_expression "(char *)(*pcVar6)(&u->scheme,&u->host)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar6)(&u->scheme,&u->host)" (parenthesized_expression "(*pcVar6)" ( (pointer_expression "*pcVar6" * identifier) )) (argument_list "(&u->scheme,&u->host)" ( (pointer_expression "&u->scheme" & (field_expression "u->scheme" identifier -> field_identifier)) , (pointer_expression "&u->host" & (field_expression "u->host" identifier -> field_identifier)) ))))) ;) (expression_statement "puVar14 = PTR_opt_000af488;" (assignment_expression "puVar14 = PTR_opt_000af488" identifier = identifier) ;) (if_statement "if (pcVar9 == (char *)0x0) {\n      if (u->scheme < SCHEME_FTP) {\n        puVar10 = (url *)0x0;\n        goto LAB_0004cfbc;\n      }\n      if (1 < u->scheme - SCHEME_FTP) goto LAB_0004cef8;\n      puVar10 = (url *)0x0;\nLAB_0004d1d0:\n      if (local_84 == 0) {\n        err = (*(code *)PTR_ftp_loop_000af968)\n                        (u,orig_parsed,&local_file,dt,puVar10,local_68,PTR_opt_000af488[0xe1]);\n      }\n      else {\n        err = (*(code *)PTR_ftp_loop_000af968)(u,orig_parsed,&local_file,dt,puVar10,local_68,0);\n        if ((local_file == (char *)0x0) || (1 < u->scheme - SCHEME_FTP)) {\n          local_68 = 0;\n        }\n        else {\n          _Var13 = has_html_suffix_p(local_file);\n          local_68 = CONCAT31(extraout_var_00,_Var13);\n          if (local_68 != 0) {\n            local_68 = 0;\n            *dt = *dt | 1;\n          }\n        }\n      }\nLAB_0004d01c:\n      if (puVar10 != (url *)0x0) {\n        url_free(puVar10);\n      }\n      puVar14 = PTR_opt_000af488;\n      if ((err == NEWLOCATION) || (err == NEWLOCATION_KEEP_POST)) {\n        (*(code *)PTR_free_000afd08)(local_file);\n        local_file = (char *)0x0;\n        pcVar9 = mynewloc;\n        if (mynewloc == (char *)0x0) {\n          pcVar9 = pcVar8;\n        }\n        pcVar9 = uri_merge(pcVar5,pcVar9);\n        (*(code *)PTR_free_000afd08)(mynewloc);\n        charset = *(char **)(puVar14 + 0x218);\n        iri->utf8_encode = (_Bool)puVar14[0x216];\n        mynewloc = pcVar9;\n        if (charset != (char *)0x0) {\n          set_uri_encoding(iri,charset,true);\n        }\n        set_content_encoding(iri,(char *)0x0);\n        (*(code *)PTR_free_000afd08)(iri->orig_url);\n        iri->orig_url = (char *)0x0;\n        puVar10 = url_parse(mynewloc,&up_error_code,iri,true);\n        if (puVar10 == (url *)0x0) {\n          pcVar5 = url_error(mynewloc,up_error_code);\n          pcVar7 = escnonprint_uri(mynewloc);\n                    /* WARNING: Subroutine does not return */\n          logprintf(LOG_NOTQUIET,PTR_s_hallenge__000af46c + 0x776c,pcVar7,pcVar5);\n        }\n        local_84 = local_84 + 1;\n        (*(code *)PTR_free_000afd08)(mynewloc);\n        mynewloc = (char *)0x0;\n        mynewloc = xstrdup(puVar10->url);\n        if (*(int *)(puVar14 + 0x18) < local_84) {\n          pcVar5 = (char *)(*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x77d0,5);\n                    /* WARNING: Subroutine does not return */\n          logprintf(LOG_NOTQUIET,pcVar5,*(undefined4 *)(puVar14 + 0x18));\n        }\n        (*(code *)PTR_free_000afd08)(pcVar5);\n        pcVar5 = mynewloc;\n        if (u != orig_parsed) {\n          url_free(u);\n        }\n        u = puVar10;\n        if ((err != NEWLOCATION_KEEP_POST) && (!bVar2)) {\n          local_64 = *(undefined4 *)(puVar14 + 0x1f8);\n          *(undefined4 *)(puVar14 + 0x1f8) = 0;\n          local_5c = *(undefined4 *)(puVar14 + 0x1fc);\n          *(undefined4 *)(puVar14 + 0x1fc) = 0;\n          bVar2 = true;\n          local_60 = *(undefined4 *)(puVar14 + 500);\n          *(undefined4 *)(puVar14 + 500) = 0;\n        }\n        goto LAB_0004ce08;\n      }\n    }\n    else {\n      i = iri_new();\n      set_uri_encoding(i,*(char **)(puVar14 + 0x21c),true);\n      i->utf8_encode = false;\n      puVar10 = url_parse(pcVar9,&up_error_code,i,true);\n      if (puVar10 == (url *)0x0) {\n        pcVar5 = url_error(pcVar9,up_error_code);\n        pcVar7 = (char *)(*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7754,5);\n                    /* WARNING: Subroutine does not return */\n        logprintf(LOG_NOTQUIET,pcVar7,pcVar9,pcVar5);\n      }\n      if ((puVar10->scheme != SCHEME_HTTP) && (puVar10->scheme != u->scheme)) {\n        pcVar5 = (char *)(*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7778,5);\n                    /* WARNING: Subroutine does not return */\n        logprintf(LOG_NOTQUIET,pcVar5,pcVar9);\n      }\n      iri_free(i);\n      (*(code *)PTR_free_000afd08)(pcVar9);\n      if ((u->scheme < SCHEME_FTP) || (puVar10->scheme == SCHEME_HTTP)) {\nLAB_0004cfbc:\n        if ((puVar14[0x22c] != '\0') &&\n           ((*(hsts_store_t *)PTR_hsts_store_000af570 != (hsts_store_t)0x0 &&\n            (_Var13 = hsts_match(*(hsts_store_t *)PTR_hsts_store_000af570,u),\n            CONCAT31(extraout_var,_Var13) != 0)))) {\n                    /* WARNING: Subroutine does not return */\n          logprintf(LOG_VERBOSE,puVar4 + 0x77a0);\n        }\n        err = http_loop(u,orig_parsed,&mynewloc,&local_file,local_7c,dt,puVar10,iri);\n        goto LAB_0004d01c;\n      }\n      if (u->scheme - SCHEME_FTP < 2) goto LAB_0004d1d0;\n      url_free(puVar10);\nLAB_0004cef8:\n      err = NOCONERROR;\n    }" if (parenthesized_expression "(pcVar9 == (char *)0x0)" ( (binary_expression "pcVar9 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if (u->scheme < SCHEME_FTP) {\n        puVar10 = (url *)0x0;\n        goto LAB_0004cfbc;\n      }\n      if (1 < u->scheme - SCHEME_FTP) goto LAB_0004cef8;\n      puVar10 = (url *)0x0;\nLAB_0004d1d0:\n      if (local_84 == 0) {\n        err = (*(code *)PTR_ftp_loop_000af968)\n                        (u,orig_parsed,&local_file,dt,puVar10,local_68,PTR_opt_000af488[0xe1]);\n      }\n      else {\n        err = (*(code *)PTR_ftp_loop_000af968)(u,orig_parsed,&local_file,dt,puVar10,local_68,0);\n        if ((local_file == (char *)0x0) || (1 < u->scheme - SCHEME_FTP)) {\n          local_68 = 0;\n        }\n        else {\n          _Var13 = has_html_suffix_p(local_file);\n          local_68 = CONCAT31(extraout_var_00,_Var13);\n          if (local_68 != 0) {\n            local_68 = 0;\n            *dt = *dt | 1;\n          }\n        }\n      }\nLAB_0004d01c:\n      if (puVar10 != (url *)0x0) {\n        url_free(puVar10);\n      }\n      puVar14 = PTR_opt_000af488;\n      if ((err == NEWLOCATION) || (err == NEWLOCATION_KEEP_POST)) {\n        (*(code *)PTR_free_000afd08)(local_file);\n        local_file = (char *)0x0;\n        pcVar9 = mynewloc;\n        if (mynewloc == (char *)0x0) {\n          pcVar9 = pcVar8;\n        }\n        pcVar9 = uri_merge(pcVar5,pcVar9);\n        (*(code *)PTR_free_000afd08)(mynewloc);\n        charset = *(char **)(puVar14 + 0x218);\n        iri->utf8_encode = (_Bool)puVar14[0x216];\n        mynewloc = pcVar9;\n        if (charset != (char *)0x0) {\n          set_uri_encoding(iri,charset,true);\n        }\n        set_content_encoding(iri,(char *)0x0);\n        (*(code *)PTR_free_000afd08)(iri->orig_url);\n        iri->orig_url = (char *)0x0;\n        puVar10 = url_parse(mynewloc,&up_error_code,iri,true);\n        if (puVar10 == (url *)0x0) {\n          pcVar5 = url_error(mynewloc,up_error_code);\n          pcVar7 = escnonprint_uri(mynewloc);\n                    /* WARNING: Subroutine does not return */\n          logprintf(LOG_NOTQUIET,PTR_s_hallenge__000af46c + 0x776c,pcVar7,pcVar5);\n        }\n        local_84 = local_84 + 1;\n        (*(code *)PTR_free_000afd08)(mynewloc);\n        mynewloc = (char *)0x0;\n        mynewloc = xstrdup(puVar10->url);\n        if (*(int *)(puVar14 + 0x18) < local_84) {\n          pcVar5 = (char *)(*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x77d0,5);\n                    /* WARNING: Subroutine does not return */\n          logprintf(LOG_NOTQUIET,pcVar5,*(undefined4 *)(puVar14 + 0x18));\n        }\n        (*(code *)PTR_free_000afd08)(pcVar5);\n        pcVar5 = mynewloc;\n        if (u != orig_parsed) {\n          url_free(u);\n        }\n        u = puVar10;\n        if ((err != NEWLOCATION_KEEP_POST) && (!bVar2)) {\n          local_64 = *(undefined4 *)(puVar14 + 0x1f8);\n          *(undefined4 *)(puVar14 + 0x1f8) = 0;\n          local_5c = *(undefined4 *)(puVar14 + 0x1fc);\n          *(undefined4 *)(puVar14 + 0x1fc) = 0;\n          bVar2 = true;\n          local_60 = *(undefined4 *)(puVar14 + 500);\n          *(undefined4 *)(puVar14 + 500) = 0;\n        }\n        goto LAB_0004ce08;\n      }\n    }" { (if_statement "if (u->scheme < SCHEME_FTP) {\n        puVar10 = (url *)0x0;\n        goto LAB_0004cfbc;\n      }" if (parenthesized_expression "(u->scheme < SCHEME_FTP)" ( (binary_expression "u->scheme < SCHEME_FTP" (field_expression "u->scheme" identifier -> field_identifier) < identifier) )) (compound_statement "{\n        puVar10 = (url *)0x0;\n        goto LAB_0004cfbc;\n      }" { (expression_statement "puVar10 = (url *)0x0;" (assignment_expression "puVar10 = (url *)0x0" identifier = (cast_expression "(url *)0x0" ( (type_descriptor "url *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0004cfbc;" goto statement_identifier ;) })) (if_statement "if (1 < u->scheme - SCHEME_FTP) goto LAB_0004cef8;" if (parenthesized_expression "(1 < u->scheme - SCHEME_FTP)" ( (binary_expression "1 < u->scheme - SCHEME_FTP" number_literal < (binary_expression "u->scheme - SCHEME_FTP" (field_expression "u->scheme" identifier -> field_identifier) - identifier)) )) (goto_statement "goto LAB_0004cef8;" goto statement_identifier ;)) (expression_statement "puVar10 = (url *)0x0;" (assignment_expression "puVar10 = (url *)0x0" identifier = (cast_expression "(url *)0x0" ( (type_descriptor "url *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_0004d1d0:\n      if (local_84 == 0) {\n        err = (*(code *)PTR_ftp_loop_000af968)\n                        (u,orig_parsed,&local_file,dt,puVar10,local_68,PTR_opt_000af488[0xe1]);\n      }\n      else {\n        err = (*(code *)PTR_ftp_loop_000af968)(u,orig_parsed,&local_file,dt,puVar10,local_68,0);\n        if ((local_file == (char *)0x0) || (1 < u->scheme - SCHEME_FTP)) {\n          local_68 = 0;\n        }\n        else {\n          _Var13 = has_html_suffix_p(local_file);\n          local_68 = CONCAT31(extraout_var_00,_Var13);\n          if (local_68 != 0) {\n            local_68 = 0;\n            *dt = *dt | 1;\n          }\n        }\n      }" statement_identifier : (if_statement "if (local_84 == 0) {\n        err = (*(code *)PTR_ftp_loop_000af968)\n                        (u,orig_parsed,&local_file,dt,puVar10,local_68,PTR_opt_000af488[0xe1]);\n      }\n      else {\n        err = (*(code *)PTR_ftp_loop_000af968)(u,orig_parsed,&local_file,dt,puVar10,local_68,0);\n        if ((local_file == (char *)0x0) || (1 < u->scheme - SCHEME_FTP)) {\n          local_68 = 0;\n        }\n        else {\n          _Var13 = has_html_suffix_p(local_file);\n          local_68 = CONCAT31(extraout_var_00,_Var13);\n          if (local_68 != 0) {\n            local_68 = 0;\n            *dt = *dt | 1;\n          }\n        }\n      }" if (parenthesized_expression "(local_84 == 0)" ( (binary_expression "local_84 == 0" identifier == number_literal) )) (compound_statement "{\n        err = (*(code *)PTR_ftp_loop_000af968)\n                        (u,orig_parsed,&local_file,dt,puVar10,local_68,PTR_opt_000af488[0xe1]);\n      }" { (expression_statement "err = (*(code *)PTR_ftp_loop_000af968)\n                        (u,orig_parsed,&local_file,dt,puVar10,local_68,PTR_opt_000af488[0xe1]);" (assignment_expression "err = (*(code *)PTR_ftp_loop_000af968)\n                        (u,orig_parsed,&local_file,dt,puVar10,local_68,PTR_opt_000af488[0xe1])" identifier = (call_expression "(*(code *)PTR_ftp_loop_000af968)\n                        (u,orig_parsed,&local_file,dt,puVar10,local_68,PTR_opt_000af488[0xe1])" (parenthesized_expression "(*(code *)PTR_ftp_loop_000af968)" ( (pointer_expression "*(code *)PTR_ftp_loop_000af968" * (cast_expression "(code *)PTR_ftp_loop_000af968" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(u,orig_parsed,&local_file,dt,puVar10,local_68,PTR_opt_000af488[0xe1])" ( identifier , identifier , (pointer_expression "&local_file" & identifier) , identifier , identifier , identifier , (subscript_expression "PTR_opt_000af488[0xe1]" identifier [ number_literal ]) )))) ;) }) (else_clause "else {\n        err = (*(code *)PTR_ftp_loop_000af968)(u,orig_parsed,&local_file,dt,puVar10,local_68,0);\n        if ((local_file == (char *)0x0) || (1 < u->scheme - SCHEME_FTP)) {\n          local_68 = 0;\n        }\n        else {\n          _Var13 = has_html_suffix_p(local_file);\n          local_68 = CONCAT31(extraout_var_00,_Var13);\n          if (local_68 != 0) {\n            local_68 = 0;\n            *dt = *dt | 1;\n          }\n        }\n      }" else (compound_statement "{\n        err = (*(code *)PTR_ftp_loop_000af968)(u,orig_parsed,&local_file,dt,puVar10,local_68,0);\n        if ((local_file == (char *)0x0) || (1 < u->scheme - SCHEME_FTP)) {\n          local_68 = 0;\n        }\n        else {\n          _Var13 = has_html_suffix_p(local_file);\n          local_68 = CONCAT31(extraout_var_00,_Var13);\n          if (local_68 != 0) {\n            local_68 = 0;\n            *dt = *dt | 1;\n          }\n        }\n      }" { (expression_statement "err = (*(code *)PTR_ftp_loop_000af968)(u,orig_parsed,&local_file,dt,puVar10,local_68,0);" (assignment_expression "err = (*(code *)PTR_ftp_loop_000af968)(u,orig_parsed,&local_file,dt,puVar10,local_68,0)" identifier = (call_expression "(*(code *)PTR_ftp_loop_000af968)(u,orig_parsed,&local_file,dt,puVar10,local_68,0)" (parenthesized_expression "(*(code *)PTR_ftp_loop_000af968)" ( (pointer_expression "*(code *)PTR_ftp_loop_000af968" * (cast_expression "(code *)PTR_ftp_loop_000af968" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(u,orig_parsed,&local_file,dt,puVar10,local_68,0)" ( identifier , identifier , (pointer_expression "&local_file" & identifier) , identifier , identifier , identifier , number_literal )))) ;) (if_statement "if ((local_file == (char *)0x0) || (1 < u->scheme - SCHEME_FTP)) {\n          local_68 = 0;\n        }\n        else {\n          _Var13 = has_html_suffix_p(local_file);\n          local_68 = CONCAT31(extraout_var_00,_Var13);\n          if (local_68 != 0) {\n            local_68 = 0;\n            *dt = *dt | 1;\n          }\n        }" if (parenthesized_expression "((local_file == (char *)0x0) || (1 < u->scheme - SCHEME_FTP))" ( (binary_expression "(local_file == (char *)0x0) || (1 < u->scheme - SCHEME_FTP)" (parenthesized_expression "(local_file == (char *)0x0)" ( (binary_expression "local_file == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(1 < u->scheme - SCHEME_FTP)" ( (binary_expression "1 < u->scheme - SCHEME_FTP" number_literal < (binary_expression "u->scheme - SCHEME_FTP" (field_expression "u->scheme" identifier -> field_identifier) - identifier)) ))) )) (compound_statement "{\n          local_68 = 0;\n        }" { (expression_statement "local_68 = 0;" (assignment_expression "local_68 = 0" identifier = number_literal) ;) }) (else_clause "else {\n          _Var13 = has_html_suffix_p(local_file);\n          local_68 = CONCAT31(extraout_var_00,_Var13);\n          if (local_68 != 0) {\n            local_68 = 0;\n            *dt = *dt | 1;\n          }\n        }" else (compound_statement "{\n          _Var13 = has_html_suffix_p(local_file);\n          local_68 = CONCAT31(extraout_var_00,_Var13);\n          if (local_68 != 0) {\n            local_68 = 0;\n            *dt = *dt | 1;\n          }\n        }" { (expression_statement "_Var13 = has_html_suffix_p(local_file);" (assignment_expression "_Var13 = has_html_suffix_p(local_file)" identifier = (call_expression "has_html_suffix_p(local_file)" identifier (argument_list "(local_file)" ( identifier )))) ;) (expression_statement "local_68 = CONCAT31(extraout_var_00,_Var13);" (assignment_expression "local_68 = CONCAT31(extraout_var_00,_Var13)" identifier = (call_expression "CONCAT31(extraout_var_00,_Var13)" identifier (argument_list "(extraout_var_00,_Var13)" ( identifier , identifier )))) ;) (if_statement "if (local_68 != 0) {\n            local_68 = 0;\n            *dt = *dt | 1;\n          }" if (parenthesized_expression "(local_68 != 0)" ( (binary_expression "local_68 != 0" identifier != number_literal) )) (compound_statement "{\n            local_68 = 0;\n            *dt = *dt | 1;\n          }" { (expression_statement "local_68 = 0;" (assignment_expression "local_68 = 0" identifier = number_literal) ;) (expression_statement "*dt = *dt | 1;" (assignment_expression "*dt = *dt | 1" (pointer_expression "*dt" * identifier) = (binary_expression "*dt | 1" (pointer_expression "*dt" * identifier) | number_literal)) ;) })) }))) })))) (labeled_statement "LAB_0004d01c:\n      if (puVar10 != (url *)0x0) {\n        url_free(puVar10);\n      }" statement_identifier : (if_statement "if (puVar10 != (url *)0x0) {\n        url_free(puVar10);\n      }" if (parenthesized_expression "(puVar10 != (url *)0x0)" ( (binary_expression "puVar10 != (url *)0x0" identifier != (cast_expression "(url *)0x0" ( (type_descriptor "url *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        url_free(puVar10);\n      }" { (expression_statement "url_free(puVar10);" (call_expression "url_free(puVar10)" identifier (argument_list "(puVar10)" ( identifier ))) ;) }))) (expression_statement "puVar14 = PTR_opt_000af488;" (assignment_expression "puVar14 = PTR_opt_000af488" identifier = identifier) ;) (if_statement "if ((err == NEWLOCATION) || (err == NEWLOCATION_KEEP_POST)) {\n        (*(code *)PTR_free_000afd08)(local_file);\n        local_file = (char *)0x0;\n        pcVar9 = mynewloc;\n        if (mynewloc == (char *)0x0) {\n          pcVar9 = pcVar8;\n        }\n        pcVar9 = uri_merge(pcVar5,pcVar9);\n        (*(code *)PTR_free_000afd08)(mynewloc);\n        charset = *(char **)(puVar14 + 0x218);\n        iri->utf8_encode = (_Bool)puVar14[0x216];\n        mynewloc = pcVar9;\n        if (charset != (char *)0x0) {\n          set_uri_encoding(iri,charset,true);\n        }\n        set_content_encoding(iri,(char *)0x0);\n        (*(code *)PTR_free_000afd08)(iri->orig_url);\n        iri->orig_url = (char *)0x0;\n        puVar10 = url_parse(mynewloc,&up_error_code,iri,true);\n        if (puVar10 == (url *)0x0) {\n          pcVar5 = url_error(mynewloc,up_error_code);\n          pcVar7 = escnonprint_uri(mynewloc);\n                    /* WARNING: Subroutine does not return */\n          logprintf(LOG_NOTQUIET,PTR_s_hallenge__000af46c + 0x776c,pcVar7,pcVar5);\n        }\n        local_84 = local_84 + 1;\n        (*(code *)PTR_free_000afd08)(mynewloc);\n        mynewloc = (char *)0x0;\n        mynewloc = xstrdup(puVar10->url);\n        if (*(int *)(puVar14 + 0x18) < local_84) {\n          pcVar5 = (char *)(*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x77d0,5);\n                    /* WARNING: Subroutine does not return */\n          logprintf(LOG_NOTQUIET,pcVar5,*(undefined4 *)(puVar14 + 0x18));\n        }\n        (*(code *)PTR_free_000afd08)(pcVar5);\n        pcVar5 = mynewloc;\n        if (u != orig_parsed) {\n          url_free(u);\n        }\n        u = puVar10;\n        if ((err != NEWLOCATION_KEEP_POST) && (!bVar2)) {\n          local_64 = *(undefined4 *)(puVar14 + 0x1f8);\n          *(undefined4 *)(puVar14 + 0x1f8) = 0;\n          local_5c = *(undefined4 *)(puVar14 + 0x1fc);\n          *(undefined4 *)(puVar14 + 0x1fc) = 0;\n          bVar2 = true;\n          local_60 = *(undefined4 *)(puVar14 + 500);\n          *(undefined4 *)(puVar14 + 500) = 0;\n        }\n        goto LAB_0004ce08;\n      }" if (parenthesized_expression "((err == NEWLOCATION) || (err == NEWLOCATION_KEEP_POST))" ( (binary_expression "(err == NEWLOCATION) || (err == NEWLOCATION_KEEP_POST)" (parenthesized_expression "(err == NEWLOCATION)" ( (binary_expression "err == NEWLOCATION" identifier == identifier) )) || (parenthesized_expression "(err == NEWLOCATION_KEEP_POST)" ( (binary_expression "err == NEWLOCATION_KEEP_POST" identifier == identifier) ))) )) (compound_statement "{\n        (*(code *)PTR_free_000afd08)(local_file);\n        local_file = (char *)0x0;\n        pcVar9 = mynewloc;\n        if (mynewloc == (char *)0x0) {\n          pcVar9 = pcVar8;\n        }\n        pcVar9 = uri_merge(pcVar5,pcVar9);\n        (*(code *)PTR_free_000afd08)(mynewloc);\n        charset = *(char **)(puVar14 + 0x218);\n        iri->utf8_encode = (_Bool)puVar14[0x216];\n        mynewloc = pcVar9;\n        if (charset != (char *)0x0) {\n          set_uri_encoding(iri,charset,true);\n        }\n        set_content_encoding(iri,(char *)0x0);\n        (*(code *)PTR_free_000afd08)(iri->orig_url);\n        iri->orig_url = (char *)0x0;\n        puVar10 = url_parse(mynewloc,&up_error_code,iri,true);\n        if (puVar10 == (url *)0x0) {\n          pcVar5 = url_error(mynewloc,up_error_code);\n          pcVar7 = escnonprint_uri(mynewloc);\n                    /* WARNING: Subroutine does not return */\n          logprintf(LOG_NOTQUIET,PTR_s_hallenge__000af46c + 0x776c,pcVar7,pcVar5);\n        }\n        local_84 = local_84 + 1;\n        (*(code *)PTR_free_000afd08)(mynewloc);\n        mynewloc = (char *)0x0;\n        mynewloc = xstrdup(puVar10->url);\n        if (*(int *)(puVar14 + 0x18) < local_84) {\n          pcVar5 = (char *)(*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x77d0,5);\n                    /* WARNING: Subroutine does not return */\n          logprintf(LOG_NOTQUIET,pcVar5,*(undefined4 *)(puVar14 + 0x18));\n        }\n        (*(code *)PTR_free_000afd08)(pcVar5);\n        pcVar5 = mynewloc;\n        if (u != orig_parsed) {\n          url_free(u);\n        }\n        u = puVar10;\n        if ((err != NEWLOCATION_KEEP_POST) && (!bVar2)) {\n          local_64 = *(undefined4 *)(puVar14 + 0x1f8);\n          *(undefined4 *)(puVar14 + 0x1f8) = 0;\n          local_5c = *(undefined4 *)(puVar14 + 0x1fc);\n          *(undefined4 *)(puVar14 + 0x1fc) = 0;\n          bVar2 = true;\n          local_60 = *(undefined4 *)(puVar14 + 500);\n          *(undefined4 *)(puVar14 + 500) = 0;\n        }\n        goto LAB_0004ce08;\n      }" { (expression_statement "(*(code *)PTR_free_000afd08)(local_file);" (call_expression "(*(code *)PTR_free_000afd08)(local_file)" (parenthesized_expression "(*(code *)PTR_free_000afd08)" ( (pointer_expression "*(code *)PTR_free_000afd08" * (cast_expression "(code *)PTR_free_000afd08" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_file)" ( identifier ))) ;) (expression_statement "local_file = (char *)0x0;" (assignment_expression "local_file = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar9 = mynewloc;" (assignment_expression "pcVar9 = mynewloc" identifier = identifier) ;) (if_statement "if (mynewloc == (char *)0x0) {\n          pcVar9 = pcVar8;\n        }" if (parenthesized_expression "(mynewloc == (char *)0x0)" ( (binary_expression "mynewloc == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          pcVar9 = pcVar8;\n        }" { (expression_statement "pcVar9 = pcVar8;" (assignment_expression "pcVar9 = pcVar8" identifier = identifier) ;) })) (expression_statement "pcVar9 = uri_merge(pcVar5,pcVar9);" (assignment_expression "pcVar9 = uri_merge(pcVar5,pcVar9)" identifier = (call_expression "uri_merge(pcVar5,pcVar9)" identifier (argument_list "(pcVar5,pcVar9)" ( identifier , identifier )))) ;) (expression_statement "(*(code *)PTR_free_000afd08)(mynewloc);" (call_expression "(*(code *)PTR_free_000afd08)(mynewloc)" (parenthesized_expression "(*(code *)PTR_free_000afd08)" ( (pointer_expression "*(code *)PTR_free_000afd08" * (cast_expression "(code *)PTR_free_000afd08" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(mynewloc)" ( identifier ))) ;) (expression_statement "charset = *(char **)(puVar14 + 0x218);" (assignment_expression "charset = *(char **)(puVar14 + 0x218)" identifier = (pointer_expression "*(char **)(puVar14 + 0x218)" * (cast_expression "(char **)(puVar14 + 0x218)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + 0x218)" ( (binary_expression "puVar14 + 0x218" identifier + number_literal) ))))) ;) (expression_statement "iri->utf8_encode = (_Bool)puVar14[0x216];" (assignment_expression "iri->utf8_encode = (_Bool)puVar14[0x216]" (field_expression "iri->utf8_encode" identifier -> field_identifier) = (cast_expression "(_Bool)puVar14[0x216]" ( (type_descriptor "_Bool" type_identifier) ) (subscript_expression "puVar14[0x216]" identifier [ number_literal ]))) ;) (expression_statement "mynewloc = pcVar9;" (assignment_expression "mynewloc = pcVar9" identifier = identifier) ;) (if_statement "if (charset != (char *)0x0) {\n          set_uri_encoding(iri,charset,true);\n        }" if (parenthesized_expression "(charset != (char *)0x0)" ( (binary_expression "charset != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          set_uri_encoding(iri,charset,true);\n        }" { (expression_statement "set_uri_encoding(iri,charset,true);" (call_expression "set_uri_encoding(iri,charset,true)" identifier (argument_list "(iri,charset,true)" ( identifier , identifier , true ))) ;) })) (expression_statement "set_content_encoding(iri,(char *)0x0);" (call_expression "set_content_encoding(iri,(char *)0x0)" identifier (argument_list "(iri,(char *)0x0)" ( identifier , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;) (expression_statement "(*(code *)PTR_free_000afd08)(iri->orig_url);" (call_expression "(*(code *)PTR_free_000afd08)(iri->orig_url)" (parenthesized_expression "(*(code *)PTR_free_000afd08)" ( (pointer_expression "*(code *)PTR_free_000afd08" * (cast_expression "(code *)PTR_free_000afd08" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iri->orig_url)" ( (field_expression "iri->orig_url" identifier -> field_identifier) ))) ;) (expression_statement "iri->orig_url = (char *)0x0;" (assignment_expression "iri->orig_url = (char *)0x0" (field_expression "iri->orig_url" identifier -> field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar10 = url_parse(mynewloc,&up_error_code,iri,true);" (assignment_expression "puVar10 = url_parse(mynewloc,&up_error_code,iri,true)" identifier = (call_expression "url_parse(mynewloc,&up_error_code,iri,true)" identifier (argument_list "(mynewloc,&up_error_code,iri,true)" ( identifier , (pointer_expression "&up_error_code" & identifier) , identifier , true )))) ;) (if_statement "if (puVar10 == (url *)0x0) {\n          pcVar5 = url_error(mynewloc,up_error_code);\n          pcVar7 = escnonprint_uri(mynewloc);\n                    /* WARNING: Subroutine does not return */\n          logprintf(LOG_NOTQUIET,PTR_s_hallenge__000af46c + 0x776c,pcVar7,pcVar5);\n        }" if (parenthesized_expression "(puVar10 == (url *)0x0)" ( (binary_expression "puVar10 == (url *)0x0" identifier == (cast_expression "(url *)0x0" ( (type_descriptor "url *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          pcVar5 = url_error(mynewloc,up_error_code);\n          pcVar7 = escnonprint_uri(mynewloc);\n                    /* WARNING: Subroutine does not return */\n          logprintf(LOG_NOTQUIET,PTR_s_hallenge__000af46c + 0x776c,pcVar7,pcVar5);\n        }" { (expression_statement "pcVar5 = url_error(mynewloc,up_error_code);" (assignment_expression "pcVar5 = url_error(mynewloc,up_error_code)" identifier = (call_expression "url_error(mynewloc,up_error_code)" identifier (argument_list "(mynewloc,up_error_code)" ( identifier , identifier )))) ;) (expression_statement "pcVar7 = escnonprint_uri(mynewloc);" (assignment_expression "pcVar7 = escnonprint_uri(mynewloc)" identifier = (call_expression "escnonprint_uri(mynewloc)" identifier (argument_list "(mynewloc)" ( identifier )))) ;) comment (expression_statement "logprintf(LOG_NOTQUIET,PTR_s_hallenge__000af46c + 0x776c,pcVar7,pcVar5);" (call_expression "logprintf(LOG_NOTQUIET,PTR_s_hallenge__000af46c + 0x776c,pcVar7,pcVar5)" identifier (argument_list "(LOG_NOTQUIET,PTR_s_hallenge__000af46c + 0x776c,pcVar7,pcVar5)" ( identifier , (binary_expression "PTR_s_hallenge__000af46c + 0x776c" identifier + number_literal) , identifier , identifier ))) ;) })) (expression_statement "local_84 = local_84 + 1;" (assignment_expression "local_84 = local_84 + 1" identifier = (binary_expression "local_84 + 1" identifier + number_literal)) ;) (expression_statement "(*(code *)PTR_free_000afd08)(mynewloc);" (call_expression "(*(code *)PTR_free_000afd08)(mynewloc)" (parenthesized_expression "(*(code *)PTR_free_000afd08)" ( (pointer_expression "*(code *)PTR_free_000afd08" * (cast_expression "(code *)PTR_free_000afd08" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(mynewloc)" ( identifier ))) ;) (expression_statement "mynewloc = (char *)0x0;" (assignment_expression "mynewloc = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "mynewloc = xstrdup(puVar10->url);" (assignment_expression "mynewloc = xstrdup(puVar10->url)" identifier = (call_expression "xstrdup(puVar10->url)" identifier (argument_list "(puVar10->url)" ( (field_expression "puVar10->url" identifier -> field_identifier) )))) ;) (if_statement "if (*(int *)(puVar14 + 0x18) < local_84) {\n          pcVar5 = (char *)(*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x77d0,5);\n                    /* WARNING: Subroutine does not return */\n          logprintf(LOG_NOTQUIET,pcVar5,*(undefined4 *)(puVar14 + 0x18));\n        }" if (parenthesized_expression "(*(int *)(puVar14 + 0x18) < local_84)" ( (binary_expression "*(int *)(puVar14 + 0x18) < local_84" (pointer_expression "*(int *)(puVar14 + 0x18)" * (cast_expression "(int *)(puVar14 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 0x18)" ( (binary_expression "puVar14 + 0x18" identifier + number_literal) )))) < identifier) )) (compound_statement "{\n          pcVar5 = (char *)(*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x77d0,5);\n                    /* WARNING: Subroutine does not return */\n          logprintf(LOG_NOTQUIET,pcVar5,*(undefined4 *)(puVar14 + 0x18));\n        }" { (expression_statement "pcVar5 = (char *)(*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x77d0,5);" (assignment_expression "pcVar5 = (char *)(*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x77d0,5)" identifier = (cast_expression "(char *)(*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x77d0,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x77d0,5)" (parenthesized_expression "(*(code *)PTR_dcgettext_000afcf4)" ( (pointer_expression "*(code *)PTR_dcgettext_000afcf4" * (cast_expression "(code *)PTR_dcgettext_000afcf4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,PTR_s_hallenge__000af46c + 0x77d0,5)" ( number_literal , (binary_expression "PTR_s_hallenge__000af46c + 0x77d0" identifier + number_literal) , number_literal ))))) ;) comment (expression_statement "logprintf(LOG_NOTQUIET,pcVar5,*(undefined4 *)(puVar14 + 0x18));" (call_expression "logprintf(LOG_NOTQUIET,pcVar5,*(undefined4 *)(puVar14 + 0x18))" identifier (argument_list "(LOG_NOTQUIET,pcVar5,*(undefined4 *)(puVar14 + 0x18))" ( identifier , identifier , (pointer_expression "*(undefined4 *)(puVar14 + 0x18)" * (cast_expression "(undefined4 *)(puVar14 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 0x18)" ( (binary_expression "puVar14 + 0x18" identifier + number_literal) )))) ))) ;) })) (expression_statement "(*(code *)PTR_free_000afd08)(pcVar5);" (call_expression "(*(code *)PTR_free_000afd08)(pcVar5)" (parenthesized_expression "(*(code *)PTR_free_000afd08)" ( (pointer_expression "*(code *)PTR_free_000afd08" * (cast_expression "(code *)PTR_free_000afd08" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar5)" ( identifier ))) ;) (expression_statement "pcVar5 = mynewloc;" (assignment_expression "pcVar5 = mynewloc" identifier = identifier) ;) (if_statement "if (u != orig_parsed) {\n          url_free(u);\n        }" if (parenthesized_expression "(u != orig_parsed)" ( (binary_expression "u != orig_parsed" identifier != identifier) )) (compound_statement "{\n          url_free(u);\n        }" { (expression_statement "url_free(u);" (call_expression "url_free(u)" identifier (argument_list "(u)" ( identifier ))) ;) })) (expression_statement "u = puVar10;" (assignment_expression "u = puVar10" identifier = identifier) ;) (if_statement "if ((err != NEWLOCATION_KEEP_POST) && (!bVar2)) {\n          local_64 = *(undefined4 *)(puVar14 + 0x1f8);\n          *(undefined4 *)(puVar14 + 0x1f8) = 0;\n          local_5c = *(undefined4 *)(puVar14 + 0x1fc);\n          *(undefined4 *)(puVar14 + 0x1fc) = 0;\n          bVar2 = true;\n          local_60 = *(undefined4 *)(puVar14 + 500);\n          *(undefined4 *)(puVar14 + 500) = 0;\n        }" if (parenthesized_expression "((err != NEWLOCATION_KEEP_POST) && (!bVar2))" ( (binary_expression "(err != NEWLOCATION_KEEP_POST) && (!bVar2)" (parenthesized_expression "(err != NEWLOCATION_KEEP_POST)" ( (binary_expression "err != NEWLOCATION_KEEP_POST" identifier != identifier) )) && (parenthesized_expression "(!bVar2)" ( (unary_expression "!bVar2" ! identifier) ))) )) (compound_statement "{\n          local_64 = *(undefined4 *)(puVar14 + 0x1f8);\n          *(undefined4 *)(puVar14 + 0x1f8) = 0;\n          local_5c = *(undefined4 *)(puVar14 + 0x1fc);\n          *(undefined4 *)(puVar14 + 0x1fc) = 0;\n          bVar2 = true;\n          local_60 = *(undefined4 *)(puVar14 + 500);\n          *(undefined4 *)(puVar14 + 500) = 0;\n        }" { (expression_statement "local_64 = *(undefined4 *)(puVar14 + 0x1f8);" (assignment_expression "local_64 = *(undefined4 *)(puVar14 + 0x1f8)" identifier = (pointer_expression "*(undefined4 *)(puVar14 + 0x1f8)" * (cast_expression "(undefined4 *)(puVar14 + 0x1f8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 0x1f8)" ( (binary_expression "puVar14 + 0x1f8" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar14 + 0x1f8) = 0;" (assignment_expression "*(undefined4 *)(puVar14 + 0x1f8) = 0" (pointer_expression "*(undefined4 *)(puVar14 + 0x1f8)" * (cast_expression "(undefined4 *)(puVar14 + 0x1f8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 0x1f8)" ( (binary_expression "puVar14 + 0x1f8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_5c = *(undefined4 *)(puVar14 + 0x1fc);" (assignment_expression "local_5c = *(undefined4 *)(puVar14 + 0x1fc)" identifier = (pointer_expression "*(undefined4 *)(puVar14 + 0x1fc)" * (cast_expression "(undefined4 *)(puVar14 + 0x1fc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 0x1fc)" ( (binary_expression "puVar14 + 0x1fc" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar14 + 0x1fc) = 0;" (assignment_expression "*(undefined4 *)(puVar14 + 0x1fc) = 0" (pointer_expression "*(undefined4 *)(puVar14 + 0x1fc)" * (cast_expression "(undefined4 *)(puVar14 + 0x1fc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 0x1fc)" ( (binary_expression "puVar14 + 0x1fc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" identifier = true) ;) (expression_statement "local_60 = *(undefined4 *)(puVar14 + 500);" (assignment_expression "local_60 = *(undefined4 *)(puVar14 + 500)" identifier = (pointer_expression "*(undefined4 *)(puVar14 + 500)" * (cast_expression "(undefined4 *)(puVar14 + 500)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 500)" ( (binary_expression "puVar14 + 500" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar14 + 500) = 0;" (assignment_expression "*(undefined4 *)(puVar14 + 500) = 0" (pointer_expression "*(undefined4 *)(puVar14 + 500)" * (cast_expression "(undefined4 *)(puVar14 + 500)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 500)" ( (binary_expression "puVar14 + 500" identifier + number_literal) )))) = number_literal) ;) })) (goto_statement "goto LAB_0004ce08;" goto statement_identifier ;) })) }) (else_clause "else {\n      i = iri_new();\n      set_uri_encoding(i,*(char **)(puVar14 + 0x21c),true);\n      i->utf8_encode = false;\n      puVar10 = url_parse(pcVar9,&up_error_code,i,true);\n      if (puVar10 == (url *)0x0) {\n        pcVar5 = url_error(pcVar9,up_error_code);\n        pcVar7 = (char *)(*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7754,5);\n                    /* WARNING: Subroutine does not return */\n        logprintf(LOG_NOTQUIET,pcVar7,pcVar9,pcVar5);\n      }\n      if ((puVar10->scheme != SCHEME_HTTP) && (puVar10->scheme != u->scheme)) {\n        pcVar5 = (char *)(*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7778,5);\n                    /* WARNING: Subroutine does not return */\n        logprintf(LOG_NOTQUIET,pcVar5,pcVar9);\n      }\n      iri_free(i);\n      (*(code *)PTR_free_000afd08)(pcVar9);\n      if ((u->scheme < SCHEME_FTP) || (puVar10->scheme == SCHEME_HTTP)) {\nLAB_0004cfbc:\n        if ((puVar14[0x22c] != '\0') &&\n           ((*(hsts_store_t *)PTR_hsts_store_000af570 != (hsts_store_t)0x0 &&\n            (_Var13 = hsts_match(*(hsts_store_t *)PTR_hsts_store_000af570,u),\n            CONCAT31(extraout_var,_Var13) != 0)))) {\n                    /* WARNING: Subroutine does not return */\n          logprintf(LOG_VERBOSE,puVar4 + 0x77a0);\n        }\n        err = http_loop(u,orig_parsed,&mynewloc,&local_file,local_7c,dt,puVar10,iri);\n        goto LAB_0004d01c;\n      }\n      if (u->scheme - SCHEME_FTP < 2) goto LAB_0004d1d0;\n      url_free(puVar10);\nLAB_0004cef8:\n      err = NOCONERROR;\n    }" else (compound_statement "{\n      i = iri_new();\n      set_uri_encoding(i,*(char **)(puVar14 + 0x21c),true);\n      i->utf8_encode = false;\n      puVar10 = url_parse(pcVar9,&up_error_code,i,true);\n      if (puVar10 == (url *)0x0) {\n        pcVar5 = url_error(pcVar9,up_error_code);\n        pcVar7 = (char *)(*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7754,5);\n                    /* WARNING: Subroutine does not return */\n        logprintf(LOG_NOTQUIET,pcVar7,pcVar9,pcVar5);\n      }\n      if ((puVar10->scheme != SCHEME_HTTP) && (puVar10->scheme != u->scheme)) {\n        pcVar5 = (char *)(*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7778,5);\n                    /* WARNING: Subroutine does not return */\n        logprintf(LOG_NOTQUIET,pcVar5,pcVar9);\n      }\n      iri_free(i);\n      (*(code *)PTR_free_000afd08)(pcVar9);\n      if ((u->scheme < SCHEME_FTP) || (puVar10->scheme == SCHEME_HTTP)) {\nLAB_0004cfbc:\n        if ((puVar14[0x22c] != '\0') &&\n           ((*(hsts_store_t *)PTR_hsts_store_000af570 != (hsts_store_t)0x0 &&\n            (_Var13 = hsts_match(*(hsts_store_t *)PTR_hsts_store_000af570,u),\n            CONCAT31(extraout_var,_Var13) != 0)))) {\n                    /* WARNING: Subroutine does not return */\n          logprintf(LOG_VERBOSE,puVar4 + 0x77a0);\n        }\n        err = http_loop(u,orig_parsed,&mynewloc,&local_file,local_7c,dt,puVar10,iri);\n        goto LAB_0004d01c;\n      }\n      if (u->scheme - SCHEME_FTP < 2) goto LAB_0004d1d0;\n      url_free(puVar10);\nLAB_0004cef8:\n      err = NOCONERROR;\n    }" { (expression_statement "i = iri_new();" (assignment_expression "i = iri_new()" identifier = (call_expression "iri_new()" identifier (argument_list "()" ( )))) ;) (expression_statement "set_uri_encoding(i,*(char **)(puVar14 + 0x21c),true);" (call_expression "set_uri_encoding(i,*(char **)(puVar14 + 0x21c),true)" identifier (argument_list "(i,*(char **)(puVar14 + 0x21c),true)" ( identifier , (pointer_expression "*(char **)(puVar14 + 0x21c)" * (cast_expression "(char **)(puVar14 + 0x21c)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + 0x21c)" ( (binary_expression "puVar14 + 0x21c" identifier + number_literal) )))) , true ))) ;) (expression_statement "i->utf8_encode = false;" (assignment_expression "i->utf8_encode = false" (field_expression "i->utf8_encode" identifier -> field_identifier) = false) ;) (expression_statement "puVar10 = url_parse(pcVar9,&up_error_code,i,true);" (assignment_expression "puVar10 = url_parse(pcVar9,&up_error_code,i,true)" identifier = (call_expression "url_parse(pcVar9,&up_error_code,i,true)" identifier (argument_list "(pcVar9,&up_error_code,i,true)" ( identifier , (pointer_expression "&up_error_code" & identifier) , identifier , true )))) ;) (if_statement "if (puVar10 == (url *)0x0) {\n        pcVar5 = url_error(pcVar9,up_error_code);\n        pcVar7 = (char *)(*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7754,5);\n                    /* WARNING: Subroutine does not return */\n        logprintf(LOG_NOTQUIET,pcVar7,pcVar9,pcVar5);\n      }" if (parenthesized_expression "(puVar10 == (url *)0x0)" ( (binary_expression "puVar10 == (url *)0x0" identifier == (cast_expression "(url *)0x0" ( (type_descriptor "url *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pcVar5 = url_error(pcVar9,up_error_code);\n        pcVar7 = (char *)(*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7754,5);\n                    /* WARNING: Subroutine does not return */\n        logprintf(LOG_NOTQUIET,pcVar7,pcVar9,pcVar5);\n      }" { (expression_statement "pcVar5 = url_error(pcVar9,up_error_code);" (assignment_expression "pcVar5 = url_error(pcVar9,up_error_code)" identifier = (call_expression "url_error(pcVar9,up_error_code)" identifier (argument_list "(pcVar9,up_error_code)" ( identifier , identifier )))) ;) (expression_statement "pcVar7 = (char *)(*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7754,5);" (assignment_expression "pcVar7 = (char *)(*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7754,5)" identifier = (cast_expression "(char *)(*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7754,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7754,5)" (parenthesized_expression "(*(code *)PTR_dcgettext_000afcf4)" ( (pointer_expression "*(code *)PTR_dcgettext_000afcf4" * (cast_expression "(code *)PTR_dcgettext_000afcf4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,PTR_s_hallenge__000af46c + 0x7754,5)" ( number_literal , (binary_expression "PTR_s_hallenge__000af46c + 0x7754" identifier + number_literal) , number_literal ))))) ;) comment (expression_statement "logprintf(LOG_NOTQUIET,pcVar7,pcVar9,pcVar5);" (call_expression "logprintf(LOG_NOTQUIET,pcVar7,pcVar9,pcVar5)" identifier (argument_list "(LOG_NOTQUIET,pcVar7,pcVar9,pcVar5)" ( identifier , identifier , identifier , identifier ))) ;) })) (if_statement "if ((puVar10->scheme != SCHEME_HTTP) && (puVar10->scheme != u->scheme)) {\n        pcVar5 = (char *)(*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7778,5);\n                    /* WARNING: Subroutine does not return */\n        logprintf(LOG_NOTQUIET,pcVar5,pcVar9);\n      }" if (parenthesized_expression "((puVar10->scheme != SCHEME_HTTP) && (puVar10->scheme != u->scheme))" ( (binary_expression "(puVar10->scheme != SCHEME_HTTP) && (puVar10->scheme != u->scheme)" (parenthesized_expression "(puVar10->scheme != SCHEME_HTTP)" ( (binary_expression "puVar10->scheme != SCHEME_HTTP" (field_expression "puVar10->scheme" identifier -> field_identifier) != identifier) )) && (parenthesized_expression "(puVar10->scheme != u->scheme)" ( (binary_expression "puVar10->scheme != u->scheme" (field_expression "puVar10->scheme" identifier -> field_identifier) != (field_expression "u->scheme" identifier -> field_identifier)) ))) )) (compound_statement "{\n        pcVar5 = (char *)(*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7778,5);\n                    /* WARNING: Subroutine does not return */\n        logprintf(LOG_NOTQUIET,pcVar5,pcVar9);\n      }" { (expression_statement "pcVar5 = (char *)(*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7778,5);" (assignment_expression "pcVar5 = (char *)(*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7778,5)" identifier = (cast_expression "(char *)(*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7778,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7778,5)" (parenthesized_expression "(*(code *)PTR_dcgettext_000afcf4)" ( (pointer_expression "*(code *)PTR_dcgettext_000afcf4" * (cast_expression "(code *)PTR_dcgettext_000afcf4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,PTR_s_hallenge__000af46c + 0x7778,5)" ( number_literal , (binary_expression "PTR_s_hallenge__000af46c + 0x7778" identifier + number_literal) , number_literal ))))) ;) comment (expression_statement "logprintf(LOG_NOTQUIET,pcVar5,pcVar9);" (call_expression "logprintf(LOG_NOTQUIET,pcVar5,pcVar9)" identifier (argument_list "(LOG_NOTQUIET,pcVar5,pcVar9)" ( identifier , identifier , identifier ))) ;) })) (expression_statement "iri_free(i);" (call_expression "iri_free(i)" identifier (argument_list "(i)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_free_000afd08)(pcVar9);" (call_expression "(*(code *)PTR_free_000afd08)(pcVar9)" (parenthesized_expression "(*(code *)PTR_free_000afd08)" ( (pointer_expression "*(code *)PTR_free_000afd08" * (cast_expression "(code *)PTR_free_000afd08" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar9)" ( identifier ))) ;) (if_statement "if ((u->scheme < SCHEME_FTP) || (puVar10->scheme == SCHEME_HTTP)) {\nLAB_0004cfbc:\n        if ((puVar14[0x22c] != '\0') &&\n           ((*(hsts_store_t *)PTR_hsts_store_000af570 != (hsts_store_t)0x0 &&\n            (_Var13 = hsts_match(*(hsts_store_t *)PTR_hsts_store_000af570,u),\n            CONCAT31(extraout_var,_Var13) != 0)))) {\n                    /* WARNING: Subroutine does not return */\n          logprintf(LOG_VERBOSE,puVar4 + 0x77a0);\n        }\n        err = http_loop(u,orig_parsed,&mynewloc,&local_file,local_7c,dt,puVar10,iri);\n        goto LAB_0004d01c;\n      }" if (parenthesized_expression "((u->scheme < SCHEME_FTP) || (puVar10->scheme == SCHEME_HTTP))" ( (binary_expression "(u->scheme < SCHEME_FTP) || (puVar10->scheme == SCHEME_HTTP)" (parenthesized_expression "(u->scheme < SCHEME_FTP)" ( (binary_expression "u->scheme < SCHEME_FTP" (field_expression "u->scheme" identifier -> field_identifier) < identifier) )) || (parenthesized_expression "(puVar10->scheme == SCHEME_HTTP)" ( (binary_expression "puVar10->scheme == SCHEME_HTTP" (field_expression "puVar10->scheme" identifier -> field_identifier) == identifier) ))) )) (compound_statement "{\nLAB_0004cfbc:\n        if ((puVar14[0x22c] != '\0') &&\n           ((*(hsts_store_t *)PTR_hsts_store_000af570 != (hsts_store_t)0x0 &&\n            (_Var13 = hsts_match(*(hsts_store_t *)PTR_hsts_store_000af570,u),\n            CONCAT31(extraout_var,_Var13) != 0)))) {\n                    /* WARNING: Subroutine does not return */\n          logprintf(LOG_VERBOSE,puVar4 + 0x77a0);\n        }\n        err = http_loop(u,orig_parsed,&mynewloc,&local_file,local_7c,dt,puVar10,iri);\n        goto LAB_0004d01c;\n      }" { (labeled_statement "LAB_0004cfbc:\n        if ((puVar14[0x22c] != '\0') &&\n           ((*(hsts_store_t *)PTR_hsts_store_000af570 != (hsts_store_t)0x0 &&\n            (_Var13 = hsts_match(*(hsts_store_t *)PTR_hsts_store_000af570,u),\n            CONCAT31(extraout_var,_Var13) != 0)))) {\n                    /* WARNING: Subroutine does not return */\n          logprintf(LOG_VERBOSE,puVar4 + 0x77a0);\n        }" statement_identifier : (if_statement "if ((puVar14[0x22c] != '\0') &&\n           ((*(hsts_store_t *)PTR_hsts_store_000af570 != (hsts_store_t)0x0 &&\n            (_Var13 = hsts_match(*(hsts_store_t *)PTR_hsts_store_000af570,u),\n            CONCAT31(extraout_var,_Var13) != 0)))) {\n                    /* WARNING: Subroutine does not return */\n          logprintf(LOG_VERBOSE,puVar4 + 0x77a0);\n        }" if (parenthesized_expression "((puVar14[0x22c] != '\0') &&\n           ((*(hsts_store_t *)PTR_hsts_store_000af570 != (hsts_store_t)0x0 &&\n            (_Var13 = hsts_match(*(hsts_store_t *)PTR_hsts_store_000af570,u),\n            CONCAT31(extraout_var,_Var13) != 0))))" ( (binary_expression "(puVar14[0x22c] != '\0') &&\n           ((*(hsts_store_t *)PTR_hsts_store_000af570 != (hsts_store_t)0x0 &&\n            (_Var13 = hsts_match(*(hsts_store_t *)PTR_hsts_store_000af570,u),\n            CONCAT31(extraout_var,_Var13) != 0)))" (parenthesized_expression "(puVar14[0x22c] != '\0')" ( (binary_expression "puVar14[0x22c] != '\0'" (subscript_expression "puVar14[0x22c]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "((*(hsts_store_t *)PTR_hsts_store_000af570 != (hsts_store_t)0x0 &&\n            (_Var13 = hsts_match(*(hsts_store_t *)PTR_hsts_store_000af570,u),\n            CONCAT31(extraout_var,_Var13) != 0)))" ( (parenthesized_expression "(*(hsts_store_t *)PTR_hsts_store_000af570 != (hsts_store_t)0x0 &&\n            (_Var13 = hsts_match(*(hsts_store_t *)PTR_hsts_store_000af570,u),\n            CONCAT31(extraout_var,_Var13) != 0))" ( (binary_expression "*(hsts_store_t *)PTR_hsts_store_000af570 != (hsts_store_t)0x0 &&\n            (_Var13 = hsts_match(*(hsts_store_t *)PTR_hsts_store_000af570,u),\n            CONCAT31(extraout_var,_Var13) != 0)" (binary_expression "*(hsts_store_t *)PTR_hsts_store_000af570 != (hsts_store_t)0x0" (pointer_expression "*(hsts_store_t *)PTR_hsts_store_000af570" * (cast_expression "(hsts_store_t *)PTR_hsts_store_000af570" ( (type_descriptor "hsts_store_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) != (cast_expression "(hsts_store_t)0x0" ( (type_descriptor "hsts_store_t" type_identifier) ) number_literal)) && (parenthesized_expression "(_Var13 = hsts_match(*(hsts_store_t *)PTR_hsts_store_000af570,u),\n            CONCAT31(extraout_var,_Var13) != 0)" ( (comma_expression "_Var13 = hsts_match(*(hsts_store_t *)PTR_hsts_store_000af570,u),\n            CONCAT31(extraout_var,_Var13) != 0" (assignment_expression "_Var13 = hsts_match(*(hsts_store_t *)PTR_hsts_store_000af570,u)" identifier = (call_expression "hsts_match(*(hsts_store_t *)PTR_hsts_store_000af570,u)" identifier (argument_list "(*(hsts_store_t *)PTR_hsts_store_000af570,u)" ( (pointer_expression "*(hsts_store_t *)PTR_hsts_store_000af570" * (cast_expression "(hsts_store_t *)PTR_hsts_store_000af570" ( (type_descriptor "hsts_store_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , identifier )))) , (binary_expression "CONCAT31(extraout_var,_Var13) != 0" (call_expression "CONCAT31(extraout_var,_Var13)" identifier (argument_list "(extraout_var,_Var13)" ( identifier , identifier ))) != number_literal)) ))) )) ))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n          logprintf(LOG_VERBOSE,puVar4 + 0x77a0);\n        }" { comment (expression_statement "logprintf(LOG_VERBOSE,puVar4 + 0x77a0);" (call_expression "logprintf(LOG_VERBOSE,puVar4 + 0x77a0)" identifier (argument_list "(LOG_VERBOSE,puVar4 + 0x77a0)" ( identifier , (binary_expression "puVar4 + 0x77a0" identifier + number_literal) ))) ;) }))) (expression_statement "err = http_loop(u,orig_parsed,&mynewloc,&local_file,local_7c,dt,puVar10,iri);" (assignment_expression "err = http_loop(u,orig_parsed,&mynewloc,&local_file,local_7c,dt,puVar10,iri)" identifier = (call_expression "http_loop(u,orig_parsed,&mynewloc,&local_file,local_7c,dt,puVar10,iri)" identifier (argument_list "(u,orig_parsed,&mynewloc,&local_file,local_7c,dt,puVar10,iri)" ( identifier , identifier , (pointer_expression "&mynewloc" & identifier) , (pointer_expression "&local_file" & identifier) , identifier , identifier , identifier , identifier )))) ;) (goto_statement "goto LAB_0004d01c;" goto statement_identifier ;) })) (if_statement "if (u->scheme - SCHEME_FTP < 2) goto LAB_0004d1d0;" if (parenthesized_expression "(u->scheme - SCHEME_FTP < 2)" ( (binary_expression "u->scheme - SCHEME_FTP < 2" (binary_expression "u->scheme - SCHEME_FTP" (field_expression "u->scheme" identifier -> field_identifier) - identifier) < number_literal) )) (goto_statement "goto LAB_0004d1d0;" goto statement_identifier ;)) (expression_statement "url_free(puVar10);" (call_expression "url_free(puVar10)" identifier (argument_list "(puVar10)" ( identifier ))) ;) (labeled_statement "LAB_0004cef8:\n      err = NOCONERROR;" statement_identifier : (expression_statement "err = NOCONERROR;" (assignment_expression "err = NOCONERROR" identifier = identifier) ;)) }))) (expression_statement "(*(code *)PTR_free_000afd08)(mynewloc);" (call_expression "(*(code *)PTR_free_000afd08)(mynewloc)" (parenthesized_expression "(*(code *)PTR_free_000afd08)" ( (pointer_expression "*(code *)PTR_free_000afd08" * (cast_expression "(code *)PTR_free_000afd08" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(mynewloc)" ( identifier ))) ;) (expression_statement "uVar11 = *dt & 2;" (assignment_expression "uVar11 = *dt & 2" identifier = (binary_expression "*dt & 2" (pointer_expression "*dt" * identifier) & number_literal)) ;) (expression_statement "mynewloc = (char *)0x0;" (assignment_expression "mynewloc = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if ((uVar11 != 0) || (_Var13 = iri->utf8_encode, _Var13 == false)) {\n      pcVar9 = local_file;\n      if ((local_file == (char *)0x0) || (puVar14 = PTR_opt_000af488, u == (url *)0x0))\n      goto LAB_0004d2f8;\n      goto LAB_0004d2e0;\n    }" if (parenthesized_expression "((uVar11 != 0) || (_Var13 = iri->utf8_encode, _Var13 == false))" ( (binary_expression "(uVar11 != 0) || (_Var13 = iri->utf8_encode, _Var13 == false)" (parenthesized_expression "(uVar11 != 0)" ( (binary_expression "uVar11 != 0" identifier != number_literal) )) || (parenthesized_expression "(_Var13 = iri->utf8_encode, _Var13 == false)" ( (comma_expression "_Var13 = iri->utf8_encode, _Var13 == false" (assignment_expression "_Var13 = iri->utf8_encode" identifier = (field_expression "iri->utf8_encode" identifier -> field_identifier)) , (binary_expression "_Var13 == false" identifier == false)) ))) )) (compound_statement "{\n      pcVar9 = local_file;\n      if ((local_file == (char *)0x0) || (puVar14 = PTR_opt_000af488, u == (url *)0x0))\n      goto LAB_0004d2f8;\n      goto LAB_0004d2e0;\n    }" { (expression_statement "pcVar9 = local_file;" (assignment_expression "pcVar9 = local_file" identifier = identifier) ;) (if_statement "if ((local_file == (char *)0x0) || (puVar14 = PTR_opt_000af488, u == (url *)0x0))\n      goto LAB_0004d2f8;" if (parenthesized_expression "((local_file == (char *)0x0) || (puVar14 = PTR_opt_000af488, u == (url *)0x0))" ( (binary_expression "(local_file == (char *)0x0) || (puVar14 = PTR_opt_000af488, u == (url *)0x0)" (parenthesized_expression "(local_file == (char *)0x0)" ( (binary_expression "local_file == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(puVar14 = PTR_opt_000af488, u == (url *)0x0)" ( (comma_expression "puVar14 = PTR_opt_000af488, u == (url *)0x0" (assignment_expression "puVar14 = PTR_opt_000af488" identifier = identifier) , (binary_expression "u == (url *)0x0" identifier == (cast_expression "(url *)0x0" ( (type_descriptor "url *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (goto_statement "goto LAB_0004d2f8;" goto statement_identifier ;)) (goto_statement "goto LAB_0004d2e0;" goto statement_identifier ;) })) (expression_statement "iri->utf8_encode = false;" (assignment_expression "iri->utf8_encode = false" (field_expression "iri->utf8_encode" identifier -> field_identifier) = false) ;) (if_statement "if (u != orig_parsed) {\n      url_free(u);\n    }" if (parenthesized_expression "(u != orig_parsed)" ( (binary_expression "u != orig_parsed" identifier != identifier) )) (compound_statement "{\n      url_free(u);\n    }" { (expression_statement "url_free(u);" (call_expression "url_free(u)" identifier (argument_list "(u)" ( identifier ))) ;) })) (expression_statement "pcVar9 = (char *)0x0;" (assignment_expression "pcVar9 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "u = url_parse(origurl,(int *)0x0,iri,true);" (assignment_expression "u = url_parse(origurl,(int *)0x0,iri,true)" identifier = (call_expression "url_parse(origurl,(int *)0x0,iri,true)" identifier (argument_list "(origurl,(int *)0x0,iri,true)" ( identifier , (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , identifier , true )))) ;) (expression_statement "puVar14 = PTR_opt_000af488;" (assignment_expression "puVar14 = PTR_opt_000af488" identifier = identifier) ;) (if_statement "if (u == (url *)0x0) {\n      if (PTR_opt_000af488[0x16b] != '\0') {\n        pcVar9 = quote(pcVar5);\n        debug_logprintf(PTR_s_hallenge__000af46c + 0x783c);\n      }\n      goto LAB_0004d2f8;\n    }" if (parenthesized_expression "(u == (url *)0x0)" ( (binary_expression "u == (url *)0x0" identifier == (cast_expression "(url *)0x0" ( (type_descriptor "url *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if (PTR_opt_000af488[0x16b] != '\0') {\n        pcVar9 = quote(pcVar5);\n        debug_logprintf(PTR_s_hallenge__000af46c + 0x783c);\n      }\n      goto LAB_0004d2f8;\n    }" { (if_statement "if (PTR_opt_000af488[0x16b] != '\0') {\n        pcVar9 = quote(pcVar5);\n        debug_logprintf(PTR_s_hallenge__000af46c + 0x783c);\n      }" if (parenthesized_expression "(PTR_opt_000af488[0x16b] != '\0')" ( (binary_expression "PTR_opt_000af488[0x16b] != '\0'" (subscript_expression "PTR_opt_000af488[0x16b]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        pcVar9 = quote(pcVar5);\n        debug_logprintf(PTR_s_hallenge__000af46c + 0x783c);\n      }" { (expression_statement "pcVar9 = quote(pcVar5);" (assignment_expression "pcVar9 = quote(pcVar5)" identifier = (call_expression "quote(pcVar5)" identifier (argument_list "(pcVar5)" ( identifier )))) ;) (expression_statement "debug_logprintf(PTR_s_hallenge__000af46c + 0x783c);" (call_expression "debug_logprintf(PTR_s_hallenge__000af46c + 0x783c)" identifier (argument_list "(PTR_s_hallenge__000af46c + 0x783c)" ( (binary_expression "PTR_s_hallenge__000af46c + 0x783c" identifier + number_literal) ))) ;) })) (goto_statement "goto LAB_0004d2f8;" goto statement_identifier ;) })) (expression_statement "iVar12 = (*(code *)PTR_strcmp_000afacc)(u->url,orig_parsed->url);" (assignment_expression "iVar12 = (*(code *)PTR_strcmp_000afacc)(u->url,orig_parsed->url)" identifier = (call_expression "(*(code *)PTR_strcmp_000afacc)(u->url,orig_parsed->url)" (parenthesized_expression "(*(code *)PTR_strcmp_000afacc)" ( (pointer_expression "*(code *)PTR_strcmp_000afacc" * (cast_expression "(code *)PTR_strcmp_000afacc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(u->url,orig_parsed->url)" ( (field_expression "u->url" identifier -> field_identifier) , (field_expression "orig_parsed->url" identifier -> field_identifier) )))) ;) (expression_statement "cVar1 = puVar14[0x16b];" (assignment_expression "cVar1 = puVar14[0x16b]" identifier = (subscript_expression "puVar14[0x16b]" identifier [ number_literal ])) ;) (if_statement "if (iVar12 == 0) break;" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (if_statement "if (cVar1 != '\0') {\n      pcVar9 = quote(pcVar5);\n      debug_logprintf(pcVar7,pcVar9);\n    }" if (parenthesized_expression "(cVar1 != '\0')" ( (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      pcVar9 = quote(pcVar5);\n      debug_logprintf(pcVar7,pcVar9);\n    }" { (expression_statement "pcVar9 = quote(pcVar5);" (assignment_expression "pcVar9 = quote(pcVar5)" identifier = (call_expression "quote(pcVar5)" identifier (argument_list "(pcVar5)" ( identifier )))) ;) (expression_statement "debug_logprintf(pcVar7,pcVar9);" (call_expression "debug_logprintf(pcVar7,pcVar9)" identifier (argument_list "(pcVar7,pcVar9)" ( identifier , identifier ))) ;) })) (expression_statement "(*(code *)PTR_free_000afd08)(pcVar5);" (call_expression "(*(code *)PTR_free_000afd08)(pcVar5)" (parenthesized_expression "(*(code *)PTR_free_000afd08)" ( (pointer_expression "*(code *)PTR_free_000afd08" * (cast_expression "(code *)PTR_free_000afd08" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar5)" ( identifier ))) ;) (expression_statement "pcVar5 = xstrdup(u->url);" (assignment_expression "pcVar5 = xstrdup(u->url)" identifier = (call_expression "xstrdup(u->url)" identifier (argument_list "(u->url)" ( (field_expression "u->url" identifier -> field_identifier) )))) ;) (expression_statement "cVar3 = _Var13;" (assignment_expression "cVar3 = _Var13" identifier = identifier) ;) }) while (parenthesized_expression "( true )" ( true )) ;)) (if_statement "if (cVar1 != '\0') {\n    pcVar7 = quote(pcVar5);\n    debug_logprintf(PTR_s_hallenge__000af46c + 0x7814,pcVar7);\n  }" if (parenthesized_expression "(cVar1 != '\0')" ( (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    pcVar7 = quote(pcVar5);\n    debug_logprintf(PTR_s_hallenge__000af46c + 0x7814,pcVar7);\n  }" { (expression_statement "pcVar7 = quote(pcVar5);" (assignment_expression "pcVar7 = quote(pcVar5)" identifier = (call_expression "quote(pcVar5)" identifier (argument_list "(pcVar5)" ( identifier )))) ;) (expression_statement "debug_logprintf(PTR_s_hallenge__000af46c + 0x7814,pcVar7);" (call_expression "debug_logprintf(PTR_s_hallenge__000af46c + 0x7814,pcVar7)" identifier (argument_list "(PTR_s_hallenge__000af46c + 0x7814,pcVar7)" ( (binary_expression "PTR_s_hallenge__000af46c + 0x7814" identifier + number_literal) , identifier ))) ;) })) (expression_statement "pcVar9 = local_file;" (assignment_expression "pcVar9 = local_file" identifier = identifier) ;) (if_statement "if (local_file != (char *)0x0) {\n    uVar11 = *dt & 2;\nLAB_0004d2e0:\n    pcVar9 = local_file;\n    if ((uVar11 != 0) || (puVar14[0x16a] != '\0')) {\n      (*(code *)PTR_register_download_000af96c)(u->url);\n      if ((puVar14[0x48] == '\0') && (local_84 != 0)) {\n        pcVar7 = u->url;\n        pcVar9 = pcVar7;\n        iVar12 = (*(code *)PTR_strcmp_000afacc)(origurl);\n        if (iVar12 != 0) {\n          (*(code *)PTR_register_redirection_000af978)(origurl);\n          pcVar9 = pcVar7;\n        }\n      }\n      uVar11 = *dt;\n      if ((uVar11 & 1) != 0) {\n        (*(code *)PTR_register_html_000af974)();\n        uVar11 = *dt;\n      }\n      if ((uVar11 & 0x40) != 0) {\n        (*(code *)PTR_register_css_000af970)();\n      }\n    }\n  }" if (parenthesized_expression "(local_file != (char *)0x0)" ( (binary_expression "local_file != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar11 = *dt & 2;\nLAB_0004d2e0:\n    pcVar9 = local_file;\n    if ((uVar11 != 0) || (puVar14[0x16a] != '\0')) {\n      (*(code *)PTR_register_download_000af96c)(u->url);\n      if ((puVar14[0x48] == '\0') && (local_84 != 0)) {\n        pcVar7 = u->url;\n        pcVar9 = pcVar7;\n        iVar12 = (*(code *)PTR_strcmp_000afacc)(origurl);\n        if (iVar12 != 0) {\n          (*(code *)PTR_register_redirection_000af978)(origurl);\n          pcVar9 = pcVar7;\n        }\n      }\n      uVar11 = *dt;\n      if ((uVar11 & 1) != 0) {\n        (*(code *)PTR_register_html_000af974)();\n        uVar11 = *dt;\n      }\n      if ((uVar11 & 0x40) != 0) {\n        (*(code *)PTR_register_css_000af970)();\n      }\n    }\n  }" { (expression_statement "uVar11 = *dt & 2;" (assignment_expression "uVar11 = *dt & 2" identifier = (binary_expression "*dt & 2" (pointer_expression "*dt" * identifier) & number_literal)) ;) (labeled_statement "LAB_0004d2e0:\n    pcVar9 = local_file;" statement_identifier : (expression_statement "pcVar9 = local_file;" (assignment_expression "pcVar9 = local_file" identifier = identifier) ;)) (if_statement "if ((uVar11 != 0) || (puVar14[0x16a] != '\0')) {\n      (*(code *)PTR_register_download_000af96c)(u->url);\n      if ((puVar14[0x48] == '\0') && (local_84 != 0)) {\n        pcVar7 = u->url;\n        pcVar9 = pcVar7;\n        iVar12 = (*(code *)PTR_strcmp_000afacc)(origurl);\n        if (iVar12 != 0) {\n          (*(code *)PTR_register_redirection_000af978)(origurl);\n          pcVar9 = pcVar7;\n        }\n      }\n      uVar11 = *dt;\n      if ((uVar11 & 1) != 0) {\n        (*(code *)PTR_register_html_000af974)();\n        uVar11 = *dt;\n      }\n      if ((uVar11 & 0x40) != 0) {\n        (*(code *)PTR_register_css_000af970)();\n      }\n    }" if (parenthesized_expression "((uVar11 != 0) || (puVar14[0x16a] != '\0'))" ( (binary_expression "(uVar11 != 0) || (puVar14[0x16a] != '\0')" (parenthesized_expression "(uVar11 != 0)" ( (binary_expression "uVar11 != 0" identifier != number_literal) )) || (parenthesized_expression "(puVar14[0x16a] != '\0')" ( (binary_expression "puVar14[0x16a] != '\0'" (subscript_expression "puVar14[0x16a]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n      (*(code *)PTR_register_download_000af96c)(u->url);\n      if ((puVar14[0x48] == '\0') && (local_84 != 0)) {\n        pcVar7 = u->url;\n        pcVar9 = pcVar7;\n        iVar12 = (*(code *)PTR_strcmp_000afacc)(origurl);\n        if (iVar12 != 0) {\n          (*(code *)PTR_register_redirection_000af978)(origurl);\n          pcVar9 = pcVar7;\n        }\n      }\n      uVar11 = *dt;\n      if ((uVar11 & 1) != 0) {\n        (*(code *)PTR_register_html_000af974)();\n        uVar11 = *dt;\n      }\n      if ((uVar11 & 0x40) != 0) {\n        (*(code *)PTR_register_css_000af970)();\n      }\n    }" { (expression_statement "(*(code *)PTR_register_download_000af96c)(u->url);" (call_expression "(*(code *)PTR_register_download_000af96c)(u->url)" (parenthesized_expression "(*(code *)PTR_register_download_000af96c)" ( (pointer_expression "*(code *)PTR_register_download_000af96c" * (cast_expression "(code *)PTR_register_download_000af96c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(u->url)" ( (field_expression "u->url" identifier -> field_identifier) ))) ;) (if_statement "if ((puVar14[0x48] == '\0') && (local_84 != 0)) {\n        pcVar7 = u->url;\n        pcVar9 = pcVar7;\n        iVar12 = (*(code *)PTR_strcmp_000afacc)(origurl);\n        if (iVar12 != 0) {\n          (*(code *)PTR_register_redirection_000af978)(origurl);\n          pcVar9 = pcVar7;\n        }\n      }" if (parenthesized_expression "((puVar14[0x48] == '\0') && (local_84 != 0))" ( (binary_expression "(puVar14[0x48] == '\0') && (local_84 != 0)" (parenthesized_expression "(puVar14[0x48] == '\0')" ( (binary_expression "puVar14[0x48] == '\0'" (subscript_expression "puVar14[0x48]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(local_84 != 0)" ( (binary_expression "local_84 != 0" identifier != number_literal) ))) )) (compound_statement "{\n        pcVar7 = u->url;\n        pcVar9 = pcVar7;\n        iVar12 = (*(code *)PTR_strcmp_000afacc)(origurl);\n        if (iVar12 != 0) {\n          (*(code *)PTR_register_redirection_000af978)(origurl);\n          pcVar9 = pcVar7;\n        }\n      }" { (expression_statement "pcVar7 = u->url;" (assignment_expression "pcVar7 = u->url" identifier = (field_expression "u->url" identifier -> field_identifier)) ;) (expression_statement "pcVar9 = pcVar7;" (assignment_expression "pcVar9 = pcVar7" identifier = identifier) ;) (expression_statement "iVar12 = (*(code *)PTR_strcmp_000afacc)(origurl);" (assignment_expression "iVar12 = (*(code *)PTR_strcmp_000afacc)(origurl)" identifier = (call_expression "(*(code *)PTR_strcmp_000afacc)(origurl)" (parenthesized_expression "(*(code *)PTR_strcmp_000afacc)" ( (pointer_expression "*(code *)PTR_strcmp_000afacc" * (cast_expression "(code *)PTR_strcmp_000afacc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(origurl)" ( identifier )))) ;) (if_statement "if (iVar12 != 0) {\n          (*(code *)PTR_register_redirection_000af978)(origurl);\n          pcVar9 = pcVar7;\n        }" if (parenthesized_expression "(iVar12 != 0)" ( (binary_expression "iVar12 != 0" identifier != number_literal) )) (compound_statement "{\n          (*(code *)PTR_register_redirection_000af978)(origurl);\n          pcVar9 = pcVar7;\n        }" { (expression_statement "(*(code *)PTR_register_redirection_000af978)(origurl);" (call_expression "(*(code *)PTR_register_redirection_000af978)(origurl)" (parenthesized_expression "(*(code *)PTR_register_redirection_000af978)" ( (pointer_expression "*(code *)PTR_register_redirection_000af978" * (cast_expression "(code *)PTR_register_redirection_000af978" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(origurl)" ( identifier ))) ;) (expression_statement "pcVar9 = pcVar7;" (assignment_expression "pcVar9 = pcVar7" identifier = identifier) ;) })) })) (expression_statement "uVar11 = *dt;" (assignment_expression "uVar11 = *dt" identifier = (pointer_expression "*dt" * identifier)) ;) (if_statement "if ((uVar11 & 1) != 0) {\n        (*(code *)PTR_register_html_000af974)();\n        uVar11 = *dt;\n      }" if (parenthesized_expression "((uVar11 & 1) != 0)" ( (binary_expression "(uVar11 & 1) != 0" (parenthesized_expression "(uVar11 & 1)" ( (binary_expression "uVar11 & 1" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        (*(code *)PTR_register_html_000af974)();\n        uVar11 = *dt;\n      }" { (expression_statement "(*(code *)PTR_register_html_000af974)();" (call_expression "(*(code *)PTR_register_html_000af974)()" (parenthesized_expression "(*(code *)PTR_register_html_000af974)" ( (pointer_expression "*(code *)PTR_register_html_000af974" * (cast_expression "(code *)PTR_register_html_000af974" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "uVar11 = *dt;" (assignment_expression "uVar11 = *dt" identifier = (pointer_expression "*dt" * identifier)) ;) })) (if_statement "if ((uVar11 & 0x40) != 0) {\n        (*(code *)PTR_register_css_000af970)();\n      }" if (parenthesized_expression "((uVar11 & 0x40) != 0)" ( (binary_expression "(uVar11 & 0x40) != 0" (parenthesized_expression "(uVar11 & 0x40)" ( (binary_expression "uVar11 & 0x40" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        (*(code *)PTR_register_css_000af970)();\n      }" { (expression_statement "(*(code *)PTR_register_css_000af970)();" (call_expression "(*(code *)PTR_register_css_000af970)()" (parenthesized_expression "(*(code *)PTR_register_css_000af970)" ( (pointer_expression "*(code *)PTR_register_css_000af970" * (cast_expression "(code *)PTR_register_css_000af970" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) })) })) (labeled_statement "LAB_0004d2f8:\n  if (file == (char **)0x0) {\n    (*(code *)PTR_free_000afd08)();\n    local_file = (char *)0x0;\n  }\n  else {\n    *file = local_file;\n  }" statement_identifier : (if_statement "if (file == (char **)0x0) {\n    (*(code *)PTR_free_000afd08)();\n    local_file = (char *)0x0;\n  }\n  else {\n    *file = local_file;\n  }" if (parenthesized_expression "(file == (char **)0x0)" ( (binary_expression "file == (char **)0x0" identifier == (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n    (*(code *)PTR_free_000afd08)();\n    local_file = (char *)0x0;\n  }" { (expression_statement "(*(code *)PTR_free_000afd08)();" (call_expression "(*(code *)PTR_free_000afd08)()" (parenthesized_expression "(*(code *)PTR_free_000afd08)" ( (pointer_expression "*(code *)PTR_free_000afd08" * (cast_expression "(code *)PTR_free_000afd08" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "local_file = (char *)0x0;" (assignment_expression "local_file = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    *file = local_file;\n  }" else (compound_statement "{\n    *file = local_file;\n  }" { (expression_statement "*file = local_file;" (assignment_expression "*file = local_file" (pointer_expression "*file" * identifier) = identifier) ;) })))) (if_statement "if (orig_parsed != u) {\n    url_free(u);\n  }" if (parenthesized_expression "(orig_parsed != u)" ( (binary_expression "orig_parsed != u" identifier != identifier) )) (compound_statement "{\n    url_free(u);\n  }" { (expression_statement "url_free(u);" (call_expression "url_free(u)" identifier (argument_list "(u)" ( identifier ))) ;) })) (expression_statement "puVar4 = PTR_free_000afd08;" (assignment_expression "puVar4 = PTR_free_000afd08" identifier = identifier) ;) (if_statement "if ((local_84 == 0) && (cVar3 == '\0')) {\n    if (newloc != (char **)0x0) {\n      *newloc = (char *)0x0;\n    }\n  }\n  else if (newloc != (char **)0x0) {\n    *newloc = pcVar5;\n    goto LAB_0004d33c;\n  }" if (parenthesized_expression "((local_84 == 0) && (cVar3 == '\0'))" ( (binary_expression "(local_84 == 0) && (cVar3 == '\0')" (parenthesized_expression "(local_84 == 0)" ( (binary_expression "local_84 == 0" identifier == number_literal) )) && (parenthesized_expression "(cVar3 == '\0')" ( (binary_expression "cVar3 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n    if (newloc != (char **)0x0) {\n      *newloc = (char *)0x0;\n    }\n  }" { (if_statement "if (newloc != (char **)0x0) {\n      *newloc = (char *)0x0;\n    }" if (parenthesized_expression "(newloc != (char **)0x0)" ( (binary_expression "newloc != (char **)0x0" identifier != (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n      *newloc = (char *)0x0;\n    }" { (expression_statement "*newloc = (char *)0x0;" (assignment_expression "*newloc = (char *)0x0" (pointer_expression "*newloc" * identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }) (else_clause "else if (newloc != (char **)0x0) {\n    *newloc = pcVar5;\n    goto LAB_0004d33c;\n  }" else (if_statement "if (newloc != (char **)0x0) {\n    *newloc = pcVar5;\n    goto LAB_0004d33c;\n  }" if (parenthesized_expression "(newloc != (char **)0x0)" ( (binary_expression "newloc != (char **)0x0" identifier != (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n    *newloc = pcVar5;\n    goto LAB_0004d33c;\n  }" { (expression_statement "*newloc = pcVar5;" (assignment_expression "*newloc = pcVar5" (pointer_expression "*newloc" * identifier) = identifier) ;) (goto_statement "goto LAB_0004d33c;" goto statement_identifier ;) })))) (expression_statement "(*(code *)puVar4)(pcVar5);" (call_expression "(*(code *)puVar4)(pcVar5)" (parenthesized_expression "(*(code *)puVar4)" ( (pointer_expression "*(code *)puVar4" * (cast_expression "(code *)puVar4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar5)" ( identifier ))) ;) (labeled_statement "LAB_0004d33c:\n  puVar4 = PTR_opt_000af488;" statement_identifier : (expression_statement "puVar4 = PTR_opt_000af488;" (assignment_expression "puVar4 = PTR_opt_000af488" identifier = identifier) ;)) (if_statement "if (bVar2) {\n    *(undefined4 *)(PTR_opt_000af488 + 0x1f8) = local_64;\n    *(undefined4 *)(puVar4 + 0x1fc) = local_5c;\n    *(undefined4 *)(puVar4 + 500) = local_60;\n  }" if (parenthesized_expression "(bVar2)" ( identifier )) (compound_statement "{\n    *(undefined4 *)(PTR_opt_000af488 + 0x1f8) = local_64;\n    *(undefined4 *)(puVar4 + 0x1fc) = local_5c;\n    *(undefined4 *)(puVar4 + 500) = local_60;\n  }" { (expression_statement "*(undefined4 *)(PTR_opt_000af488 + 0x1f8) = local_64;" (assignment_expression "*(undefined4 *)(PTR_opt_000af488 + 0x1f8) = local_64" (pointer_expression "*(undefined4 *)(PTR_opt_000af488 + 0x1f8)" * (cast_expression "(undefined4 *)(PTR_opt_000af488 + 0x1f8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_opt_000af488 + 0x1f8)" ( (binary_expression "PTR_opt_000af488 + 0x1f8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar4 + 0x1fc) = local_5c;" (assignment_expression "*(undefined4 *)(puVar4 + 0x1fc) = local_5c" (pointer_expression "*(undefined4 *)(puVar4 + 0x1fc)" * (cast_expression "(undefined4 *)(puVar4 + 0x1fc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 0x1fc)" ( (binary_expression "puVar4 + 0x1fc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar4 + 500) = local_60;" (assignment_expression "*(undefined4 *)(puVar4 + 500) = local_60" (pointer_expression "*(undefined4 *)(puVar4 + 500)" * (cast_expression "(undefined4 *)(puVar4 + 500)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 500)" ( (binary_expression "puVar4 + 500" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if (register_status) {\n    inform_exit_status(err);\n  }" if (parenthesized_expression "(register_status)" ( identifier )) (compound_statement "{\n    inform_exit_status(err);\n  }" { (expression_statement "inform_exit_status(err);" (call_expression "inform_exit_status(err)" identifier (argument_list "(err)" ( identifier ))) ;) })) (if_statement "if (local_2c != *(char **)puVar15) {\n    pcVar5 = local_2c;\n    puVar15 = PTR___stack_chk_fail_000afbd4;\n    (*(code *)PTR___stack_chk_fail_000afbd4)();\n    if (pcVar5 == pcVar9) {\n      pcVar5 = (char *)(**(code **)(puVar15 + 0x62534))(0,*(int *)(puVar15 + 0x61cac) + 0x7864,5);\n      logputs(LOG_VERBOSE,pcVar5);\n      return (uerr_t)pcVar5;\n    }\n    pcVar5 = (char *)(**(code **)(puVar15 + 0x62534))(0,*(int *)(puVar15 + 0x61cac) + 0x7874);\n    logputs(LOG_VERBOSE,pcVar5);\n    return (uerr_t)pcVar5;\n  }" if (parenthesized_expression "(local_2c != *(char **)puVar15)" ( (binary_expression "local_2c != *(char **)puVar15" identifier != (pointer_expression "*(char **)puVar15" * (cast_expression "(char **)puVar15" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (compound_statement "{\n    pcVar5 = local_2c;\n    puVar15 = PTR___stack_chk_fail_000afbd4;\n    (*(code *)PTR___stack_chk_fail_000afbd4)();\n    if (pcVar5 == pcVar9) {\n      pcVar5 = (char *)(**(code **)(puVar15 + 0x62534))(0,*(int *)(puVar15 + 0x61cac) + 0x7864,5);\n      logputs(LOG_VERBOSE,pcVar5);\n      return (uerr_t)pcVar5;\n    }\n    pcVar5 = (char *)(**(code **)(puVar15 + 0x62534))(0,*(int *)(puVar15 + 0x61cac) + 0x7874);\n    logputs(LOG_VERBOSE,pcVar5);\n    return (uerr_t)pcVar5;\n  }" { (expression_statement "pcVar5 = local_2c;" (assignment_expression "pcVar5 = local_2c" identifier = identifier) ;) (expression_statement "puVar15 = PTR___stack_chk_fail_000afbd4;" (assignment_expression "puVar15 = PTR___stack_chk_fail_000afbd4" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_000afbd4)();" (call_expression "(*(code *)PTR___stack_chk_fail_000afbd4)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000afbd4)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000afbd4" * (cast_expression "(code *)PTR___stack_chk_fail_000afbd4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (if_statement "if (pcVar5 == pcVar9) {\n      pcVar5 = (char *)(**(code **)(puVar15 + 0x62534))(0,*(int *)(puVar15 + 0x61cac) + 0x7864,5);\n      logputs(LOG_VERBOSE,pcVar5);\n      return (uerr_t)pcVar5;\n    }" if (parenthesized_expression "(pcVar5 == pcVar9)" ( (binary_expression "pcVar5 == pcVar9" identifier == identifier) )) (compound_statement "{\n      pcVar5 = (char *)(**(code **)(puVar15 + 0x62534))(0,*(int *)(puVar15 + 0x61cac) + 0x7864,5);\n      logputs(LOG_VERBOSE,pcVar5);\n      return (uerr_t)pcVar5;\n    }" { (expression_statement "pcVar5 = (char *)(**(code **)(puVar15 + 0x62534))(0,*(int *)(puVar15 + 0x61cac) + 0x7864,5);" (assignment_expression "pcVar5 = (char *)(**(code **)(puVar15 + 0x62534))(0,*(int *)(puVar15 + 0x61cac) + 0x7864,5)" identifier = (cast_expression "(char *)(**(code **)(puVar15 + 0x62534))(0,*(int *)(puVar15 + 0x61cac) + 0x7864,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar15 + 0x62534))(0,*(int *)(puVar15 + 0x61cac) + 0x7864,5)" (parenthesized_expression "(**(code **)(puVar15 + 0x62534))" ( (pointer_expression "**(code **)(puVar15 + 0x62534)" * (pointer_expression "*(code **)(puVar15 + 0x62534)" * (cast_expression "(code **)(puVar15 + 0x62534)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 0x62534)" ( (binary_expression "puVar15 + 0x62534" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar15 + 0x61cac) + 0x7864,5)" ( number_literal , (binary_expression "*(int *)(puVar15 + 0x61cac) + 0x7864" (pointer_expression "*(int *)(puVar15 + 0x61cac)" * (cast_expression "(int *)(puVar15 + 0x61cac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x61cac)" ( (binary_expression "puVar15 + 0x61cac" identifier + number_literal) )))) + number_literal) , number_literal ))))) ;) (expression_statement "logputs(LOG_VERBOSE,pcVar5);" (call_expression "logputs(LOG_VERBOSE,pcVar5)" identifier (argument_list "(LOG_VERBOSE,pcVar5)" ( identifier , identifier ))) ;) (return_statement "return (uerr_t)pcVar5;" return (cast_expression "(uerr_t)pcVar5" ( (type_descriptor "uerr_t" type_identifier) ) identifier) ;) })) (expression_statement "pcVar5 = (char *)(**(code **)(puVar15 + 0x62534))(0,*(int *)(puVar15 + 0x61cac) + 0x7874);" (assignment_expression "pcVar5 = (char *)(**(code **)(puVar15 + 0x62534))(0,*(int *)(puVar15 + 0x61cac) + 0x7874)" identifier = (cast_expression "(char *)(**(code **)(puVar15 + 0x62534))(0,*(int *)(puVar15 + 0x61cac) + 0x7874)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar15 + 0x62534))(0,*(int *)(puVar15 + 0x61cac) + 0x7874)" (parenthesized_expression "(**(code **)(puVar15 + 0x62534))" ( (pointer_expression "**(code **)(puVar15 + 0x62534)" * (pointer_expression "*(code **)(puVar15 + 0x62534)" * (cast_expression "(code **)(puVar15 + 0x62534)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 0x62534)" ( (binary_expression "puVar15 + 0x62534" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar15 + 0x61cac) + 0x7874)" ( number_literal , (binary_expression "*(int *)(puVar15 + 0x61cac) + 0x7874" (pointer_expression "*(int *)(puVar15 + 0x61cac)" * (cast_expression "(int *)(puVar15 + 0x61cac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x61cac)" ( (binary_expression "puVar15 + 0x61cac" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "logputs(LOG_VERBOSE,pcVar5);" (call_expression "logputs(LOG_VERBOSE,pcVar5)" identifier (argument_list "(LOG_VERBOSE,pcVar5)" ( identifier , identifier ))) ;) (return_statement "return (uerr_t)pcVar5;" return (cast_expression "(uerr_t)pcVar5" ( (type_descriptor "uerr_t" type_identifier) ) identifier) ;) })) (return_statement "return err;" return identifier ;) })))
(translation_unit "int retrieve_url(undefined4 *param_1,undefined4 param_2,undefined4 *param_3,undefined4 *param_4,\n                int param_5,uint *param_6,byte param_7,int param_8,char param_9)\n\n{\n  char cVar1;\n  char cVar2;\n  bool bVar3;\n  char cVar4;\n  undefined *puVar5;\n  code *pcVar6;\n  undefined *puVar7;\n  undefined *puVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  uint uVar12;\n  undefined4 *puVar13;\n  undefined4 *puVar14;\n  undefined4 uVar15;\n  undefined4 uVar16;\n  undefined *puVar17;\n  undefined *puVar18;\n  undefined *puVar19;\n  undefined *puVar20;\n  int local_84;\n  int local_7c;\n  uint local_68;\n  undefined4 local_64;\n  undefined4 local_60;\n  undefined4 local_5c;\n  uint local_3c;\n  undefined *local_38;\n  undefined4 local_34;\n  undefined *local_30;\n  undefined *local_2c;\n  \n  puVar17 = PTR___stack_chk_guard_000afc3c;\n  local_7c = param_5;\n  local_68 = (uint)param_7;\n  local_2c = *(undefined **)PTR___stack_chk_guard_000afc3c;\n  local_30 = (undefined *)0x0;\n  if (param_6 == (uint *)0x0) {\n    param_6 = &local_3c;\n    local_3c = 0;\n  }\n  puVar5 = (undefined *)xstrdup(param_2);\n  if (param_4 != (undefined4 *)0x0) {\n    *param_4 = 0;\n  }\n  if (param_3 != (undefined4 *)0x0) {\n    *param_3 = 0;\n  }\n  puVar20 = PTR_s_hallenge__000af46c;\n  if (param_5 == 0) {\n    local_7c = *(int *)(PTR_opt_000af488 + 0x178);\n  }\n  local_5c = 0;\n  local_60 = 0;\n  local_64 = 0;\n  bVar3 = false;\n  pcVar6 = (code *)(PTR_LAB_000af918 + -0x4774);\n  local_84 = 0;\n  puVar7 = PTR_s_hallenge__000af46c + 0x77ec;\n  puVar8 = PTR_s_hallenge__000af46c + -0x1710;\n  puVar13 = param_1;\n  cVar4 = '\0';\nLAB_0004ce08:\n  do {\n    local_38 = (undefined *)0x0;\n    (*(code *)PTR_free_000afd08)(local_30);\n    local_30 = (undefined *)0x0;\n    iVar9 = (*pcVar6)(puVar13 + 1,puVar13 + 2);\n    puVar19 = PTR_opt_000af488;\n    if (iVar9 != 0) {\n      iVar10 = iri_new();\n      set_uri_encoding(iVar10,*(undefined4 *)(puVar19 + 0x21c),1);\n      *(undefined1 *)(iVar10 + 0xc) = 0;\n      iVar11 = url_parse(iVar9,&local_34,iVar10,1);\n      if (iVar11 == 0) {\n        puVar20 = (undefined *)url_error(iVar9,local_34);\n        puVar18 = (undefined *)\n                  (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7754,5);\n        logprintf(1,puVar18,iVar9,puVar20);\n        (*(code *)PTR_free_000afd08)(puVar5);\n      }\n      else {\n        if ((*(int *)(iVar11 + 4) == 0) || (*(int *)(iVar11 + 4) == puVar13[1])) {\n          iri_free(iVar10);\n          (*(code *)PTR_free_000afd08)(iVar9);\n          if ((1 < (uint)puVar13[1]) && (*(int *)(iVar11 + 4) != 0)) {\n            if (puVar13[1] - 2 < 2) goto LAB_0004d1d0;\n            url_free(iVar11);\n            goto LAB_0004cef8;\n          }\n          goto LAB_0004cfbc;\n        }\n        puVar18 = (undefined *)\n                  (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7778,5);\n        logprintf(1,puVar18,iVar9);\n        url_free(iVar11);\n        puVar20 = puVar5;\n      }\n      (*(code *)PTR_free_000afd08)(puVar20);\n      (*(code *)PTR_free_000afd08)(iVar9);\n      iri_free(iVar10);\n      if (bVar3) {\n        iVar9 = 0x29;\n        *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n        *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n        *(undefined4 *)(puVar19 + 500) = local_60;\n      }\n      else {\n        iVar9 = 0x29;\n      }\n      goto LAB_0004d368;\n    }\n    if ((uint)puVar13[1] < 2) {\n      iVar11 = 0;\nLAB_0004cfbc:\n      if (((puVar19[0x22c] != '\0') && (*(int *)PTR_hsts_store_000af570 != 0)) &&\n         (iVar9 = hsts_match(*(int *)PTR_hsts_store_000af570,puVar13), iVar9 != 0)) {\n        logprintf(0,puVar20 + 0x77a0);\n      }\n      iVar9 = http_loop(puVar13,param_1,&local_38,&local_30,local_7c,param_6,iVar11,param_8);\nLAB_0004d01c:\n      if (iVar11 != 0) {\n        url_free(iVar11);\n      }\n      puVar19 = PTR_opt_000af488;\n      if ((iVar9 == 6) || (iVar9 == 0x30)) {\n        (*(code *)PTR_free_000afd08)(local_30);\n        local_30 = (undefined *)0x0;\n        puVar18 = local_38;\n        if (local_38 == (undefined *)0x0) {\n          puVar18 = puVar8;\n        }\n        puVar18 = (undefined *)uri_merge(puVar5,puVar18);\n        (*(code *)PTR_free_000afd08)(local_38);\n        iVar10 = *(int *)(puVar19 + 0x218);\n        *(undefined *)(param_8 + 0xc) = puVar19[0x216];\n        local_38 = puVar18;\n        if (iVar10 != 0) {\n          set_uri_encoding(param_8,iVar10,1);\n        }\n        set_content_encoding(param_8,0);\n        (*(code *)PTR_free_000afd08)(*(undefined4 *)(param_8 + 8));\n        *(undefined4 *)(param_8 + 8) = 0;\n        puVar14 = (undefined4 *)url_parse(local_38,&local_34,param_8,1);\n        if (puVar14 == (undefined4 *)0x0) {\n          uVar15 = url_error(local_38,local_34);\n          uVar16 = escnonprint_uri(local_38);\n          puVar18 = PTR_s_hallenge__000af46c + 0x776c;\n          logprintf(1,puVar18,uVar16,uVar15);\n          if (puVar13 != param_1) {\n            url_free(puVar13);\n          }\n          (*(code *)PTR_free_000afd08)(puVar5);\n          (*(code *)PTR_free_000afd08)(local_38);\n          local_38 = (undefined *)0x0;\n          (*(code *)PTR_free_000afd08)(uVar15);\n          if (bVar3) {\n            *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n            *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n            *(undefined4 *)(puVar19 + 500) = local_60;\n          }\n          goto LAB_0004d368;\n        }\n        local_84 = local_84 + 1;\n        (*(code *)PTR_free_000afd08)(local_38);\n        local_38 = (undefined *)0x0;\n        local_38 = (undefined *)xstrdup(*puVar14);\n        if (*(int *)(puVar19 + 0x18) < local_84) {\n          puVar18 = (undefined *)\n                    (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x77d0,5);\n          logprintf(1,puVar18,*(undefined4 *)(puVar19 + 0x18));\n          url_free(puVar14);\n          if (puVar13 != param_1) {\n            url_free(puVar13);\n          }\n          (*(code *)PTR_free_000afd08)(puVar5);\n          (*(code *)PTR_free_000afd08)(local_38);\n          local_38 = (undefined *)0x0;\n          if (bVar3) {\n            iVar9 = 0x1b;\n            *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n            *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n            *(undefined4 *)(puVar19 + 500) = local_60;\n          }\n          else {\n            iVar9 = 0x1b;\n          }\n          goto LAB_0004d368;\n        }\n        (*(code *)PTR_free_000afd08)(puVar5);\n        puVar5 = local_38;\n        if (puVar13 != param_1) {\n          url_free(puVar13);\n        }\n        puVar13 = puVar14;\n        if ((iVar9 != 0x30) && (!bVar3)) {\n          local_64 = *(undefined4 *)(puVar19 + 0x1f8);\n          *(undefined4 *)(puVar19 + 0x1f8) = 0;\n          local_5c = *(undefined4 *)(puVar19 + 0x1fc);\n          *(undefined4 *)(puVar19 + 0x1fc) = 0;\n          bVar3 = true;\n          local_60 = *(undefined4 *)(puVar19 + 500);\n          *(undefined4 *)(puVar19 + 500) = 0;\n        }\n        goto LAB_0004ce08;\n      }\n    }\n    else {\n      if (puVar13[1] - 2 < 2) {\n        iVar11 = 0;\nLAB_0004d1d0:\n        if (local_84 == 0) {\n          iVar9 = (*(code *)PTR_ftp_loop_000af968)\n                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,\n                             PTR_opt_000af488[0xe1]);\n        }\n        else {\n          iVar9 = (*(code *)PTR_ftp_loop_000af968)\n                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,0);\n          if ((local_30 == (undefined *)0x0) || (1 < puVar13[1] - 2)) {\n            local_68 = 0;\n          }\n          else {\n            local_68 = has_html_suffix_p();\n            if (local_68 != 0) {\n              local_68 = 0;\n              *param_6 = *param_6 | 1;\n            }\n          }\n        }\n        goto LAB_0004d01c;\n      }\nLAB_0004cef8:\n      iVar9 = 0;\n    }\n    (*(code *)PTR_free_000afd08)(local_38);\n    uVar12 = *param_6 & 2;\n    local_38 = (undefined *)0x0;\n    if ((uVar12 != 0) || (cVar1 = *(char *)(param_8 + 0xc), cVar1 == '\0')) {\n      puVar18 = local_30;\n      if ((local_30 == (undefined *)0x0) ||\n         (puVar19 = PTR_opt_000af488, puVar13 == (undefined4 *)0x0)) goto LAB_0004d2f8;\n      goto LAB_0004d2e0;\n    }\n    *(undefined1 *)(param_8 + 0xc) = 0;\n    if (puVar13 != param_1) {\n      url_free(puVar13);\n    }\n    puVar18 = (undefined *)0x0;\n    puVar13 = (undefined4 *)url_parse(param_2,0,param_8,1);\n    puVar19 = PTR_opt_000af488;\n    if (puVar13 == (undefined4 *)0x0) {\n      if (PTR_opt_000af488[0x16b] != '\0') {\n        puVar18 = (undefined *)quote(puVar5);\n        debug_logprintf(PTR_s_hallenge__000af46c + 0x783c);\n      }\n      goto LAB_0004d2f8;\n    }\n    iVar10 = (*(code *)PTR_strcmp_000afacc)(*puVar13,*param_1);\n    cVar2 = puVar19[0x16b];\n    if (iVar10 == 0) break;\n    if (cVar2 != '\0') {\n      uVar15 = quote(puVar5);\n      debug_logprintf(puVar7,uVar15);\n    }\n    (*(code *)PTR_free_000afd08)(puVar5);\n    puVar5 = (undefined *)xstrdup(*puVar13);\n    cVar4 = cVar1;\n  } while( true );\n  if (cVar2 != '\0') {\n    uVar15 = quote(puVar5);\n    debug_logprintf(PTR_s_hallenge__000af46c + 0x7814,uVar15);\n  }\n  puVar18 = local_30;\n  if (local_30 != (undefined *)0x0) {\n    uVar12 = *param_6 & 2;\nLAB_0004d2e0:\n    puVar18 = local_30;\n    if ((uVar12 != 0) || (puVar19[0x16a] != '\0')) {\n      (*(code *)PTR_register_download_000af96c)(*puVar13);\n      if ((puVar19[0x48] == '\0') && (local_84 != 0)) {\n        puVar20 = (undefined *)*puVar13;\n        puVar18 = puVar20;\n        iVar10 = (*(code *)PTR_strcmp_000afacc)(param_2);\n        if (iVar10 != 0) {\n          (*(code *)PTR_register_redirection_000af978)(param_2);\n          puVar18 = puVar20;\n        }\n      }\n      uVar12 = *param_6;\n      if ((uVar12 & 1) != 0) {\n        (*(code *)PTR_register_html_000af974)();\n        uVar12 = *param_6;\n      }\n      if ((uVar12 & 0x40) != 0) {\n        (*(code *)PTR_register_css_000af970)();\n      }\n    }\n  }\nLAB_0004d2f8:\n  if (param_3 == (undefined4 *)0x0) {\n    (*(code *)PTR_free_000afd08)();\n    local_30 = (undefined *)0x0;\n  }\n  else {\n    *param_3 = local_30;\n  }\n  if (param_1 != puVar13) {\n    url_free(puVar13);\n  }\n  puVar20 = PTR_free_000afd08;\n  if ((local_84 == 0) && (cVar4 == '\0')) {\n    if (param_4 != (undefined4 *)0x0) {\n      *param_4 = 0;\n    }\n  }\n  else if (param_4 != (undefined4 *)0x0) {\n    *param_4 = puVar5;\n    goto LAB_0004d33c;\n  }\n  (*(code *)puVar20)(puVar5);\nLAB_0004d33c:\n  puVar5 = PTR_opt_000af488;\n  if (bVar3) {\n    *(undefined4 *)(PTR_opt_000af488 + 0x1f8) = local_64;\n    *(undefined4 *)(puVar5 + 0x1fc) = local_5c;\n    *(undefined4 *)(puVar5 + 500) = local_60;\n  }\nLAB_0004d368:\n  if (param_9 != '\0') {\n    inform_exit_status(iVar9);\n  }\n  if (local_2c != *(undefined **)puVar17) {\n    puVar17 = local_2c;\n    puVar5 = PTR___stack_chk_fail_000afbd4;\n    (*(code *)PTR___stack_chk_fail_000afbd4)();\n    if (puVar17 == puVar18) {\n      uVar15 = (**(code **)(puVar5 + 0x62534))(0,*(int *)(puVar5 + 0x61cac) + 0x7864,5);\n      iVar9 = logputs(0,uVar15);\n      return iVar9;\n    }\n    uVar15 = (**(code **)(puVar5 + 0x62534))(0,*(int *)(puVar5 + 0x61cac) + 0x7874);\n    iVar9 = logputs(0,uVar15);\n    return iVar9;\n  }\n  return iVar9;\n}\n\n" (function_definition "int retrieve_url(undefined4 *param_1,undefined4 param_2,undefined4 *param_3,undefined4 *param_4,\n                int param_5,uint *param_6,byte param_7,int param_8,char param_9)\n\n{\n  char cVar1;\n  char cVar2;\n  bool bVar3;\n  char cVar4;\n  undefined *puVar5;\n  code *pcVar6;\n  undefined *puVar7;\n  undefined *puVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  uint uVar12;\n  undefined4 *puVar13;\n  undefined4 *puVar14;\n  undefined4 uVar15;\n  undefined4 uVar16;\n  undefined *puVar17;\n  undefined *puVar18;\n  undefined *puVar19;\n  undefined *puVar20;\n  int local_84;\n  int local_7c;\n  uint local_68;\n  undefined4 local_64;\n  undefined4 local_60;\n  undefined4 local_5c;\n  uint local_3c;\n  undefined *local_38;\n  undefined4 local_34;\n  undefined *local_30;\n  undefined *local_2c;\n  \n  puVar17 = PTR___stack_chk_guard_000afc3c;\n  local_7c = param_5;\n  local_68 = (uint)param_7;\n  local_2c = *(undefined **)PTR___stack_chk_guard_000afc3c;\n  local_30 = (undefined *)0x0;\n  if (param_6 == (uint *)0x0) {\n    param_6 = &local_3c;\n    local_3c = 0;\n  }\n  puVar5 = (undefined *)xstrdup(param_2);\n  if (param_4 != (undefined4 *)0x0) {\n    *param_4 = 0;\n  }\n  if (param_3 != (undefined4 *)0x0) {\n    *param_3 = 0;\n  }\n  puVar20 = PTR_s_hallenge__000af46c;\n  if (param_5 == 0) {\n    local_7c = *(int *)(PTR_opt_000af488 + 0x178);\n  }\n  local_5c = 0;\n  local_60 = 0;\n  local_64 = 0;\n  bVar3 = false;\n  pcVar6 = (code *)(PTR_LAB_000af918 + -0x4774);\n  local_84 = 0;\n  puVar7 = PTR_s_hallenge__000af46c + 0x77ec;\n  puVar8 = PTR_s_hallenge__000af46c + -0x1710;\n  puVar13 = param_1;\n  cVar4 = '\0';\nLAB_0004ce08:\n  do {\n    local_38 = (undefined *)0x0;\n    (*(code *)PTR_free_000afd08)(local_30);\n    local_30 = (undefined *)0x0;\n    iVar9 = (*pcVar6)(puVar13 + 1,puVar13 + 2);\n    puVar19 = PTR_opt_000af488;\n    if (iVar9 != 0) {\n      iVar10 = iri_new();\n      set_uri_encoding(iVar10,*(undefined4 *)(puVar19 + 0x21c),1);\n      *(undefined1 *)(iVar10 + 0xc) = 0;\n      iVar11 = url_parse(iVar9,&local_34,iVar10,1);\n      if (iVar11 == 0) {\n        puVar20 = (undefined *)url_error(iVar9,local_34);\n        puVar18 = (undefined *)\n                  (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7754,5);\n        logprintf(1,puVar18,iVar9,puVar20);\n        (*(code *)PTR_free_000afd08)(puVar5);\n      }\n      else {\n        if ((*(int *)(iVar11 + 4) == 0) || (*(int *)(iVar11 + 4) == puVar13[1])) {\n          iri_free(iVar10);\n          (*(code *)PTR_free_000afd08)(iVar9);\n          if ((1 < (uint)puVar13[1]) && (*(int *)(iVar11 + 4) != 0)) {\n            if (puVar13[1] - 2 < 2) goto LAB_0004d1d0;\n            url_free(iVar11);\n            goto LAB_0004cef8;\n          }\n          goto LAB_0004cfbc;\n        }\n        puVar18 = (undefined *)\n                  (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7778,5);\n        logprintf(1,puVar18,iVar9);\n        url_free(iVar11);\n        puVar20 = puVar5;\n      }\n      (*(code *)PTR_free_000afd08)(puVar20);\n      (*(code *)PTR_free_000afd08)(iVar9);\n      iri_free(iVar10);\n      if (bVar3) {\n        iVar9 = 0x29;\n        *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n        *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n        *(undefined4 *)(puVar19 + 500) = local_60;\n      }\n      else {\n        iVar9 = 0x29;\n      }\n      goto LAB_0004d368;\n    }\n    if ((uint)puVar13[1] < 2) {\n      iVar11 = 0;\nLAB_0004cfbc:\n      if (((puVar19[0x22c] != '\0') && (*(int *)PTR_hsts_store_000af570 != 0)) &&\n         (iVar9 = hsts_match(*(int *)PTR_hsts_store_000af570,puVar13), iVar9 != 0)) {\n        logprintf(0,puVar20 + 0x77a0);\n      }\n      iVar9 = http_loop(puVar13,param_1,&local_38,&local_30,local_7c,param_6,iVar11,param_8);\nLAB_0004d01c:\n      if (iVar11 != 0) {\n        url_free(iVar11);\n      }\n      puVar19 = PTR_opt_000af488;\n      if ((iVar9 == 6) || (iVar9 == 0x30)) {\n        (*(code *)PTR_free_000afd08)(local_30);\n        local_30 = (undefined *)0x0;\n        puVar18 = local_38;\n        if (local_38 == (undefined *)0x0) {\n          puVar18 = puVar8;\n        }\n        puVar18 = (undefined *)uri_merge(puVar5,puVar18);\n        (*(code *)PTR_free_000afd08)(local_38);\n        iVar10 = *(int *)(puVar19 + 0x218);\n        *(undefined *)(param_8 + 0xc) = puVar19[0x216];\n        local_38 = puVar18;\n        if (iVar10 != 0) {\n          set_uri_encoding(param_8,iVar10,1);\n        }\n        set_content_encoding(param_8,0);\n        (*(code *)PTR_free_000afd08)(*(undefined4 *)(param_8 + 8));\n        *(undefined4 *)(param_8 + 8) = 0;\n        puVar14 = (undefined4 *)url_parse(local_38,&local_34,param_8,1);\n        if (puVar14 == (undefined4 *)0x0) {\n          uVar15 = url_error(local_38,local_34);\n          uVar16 = escnonprint_uri(local_38);\n          puVar18 = PTR_s_hallenge__000af46c + 0x776c;\n          logprintf(1,puVar18,uVar16,uVar15);\n          if (puVar13 != param_1) {\n            url_free(puVar13);\n          }\n          (*(code *)PTR_free_000afd08)(puVar5);\n          (*(code *)PTR_free_000afd08)(local_38);\n          local_38 = (undefined *)0x0;\n          (*(code *)PTR_free_000afd08)(uVar15);\n          if (bVar3) {\n            *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n            *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n            *(undefined4 *)(puVar19 + 500) = local_60;\n          }\n          goto LAB_0004d368;\n        }\n        local_84 = local_84 + 1;\n        (*(code *)PTR_free_000afd08)(local_38);\n        local_38 = (undefined *)0x0;\n        local_38 = (undefined *)xstrdup(*puVar14);\n        if (*(int *)(puVar19 + 0x18) < local_84) {\n          puVar18 = (undefined *)\n                    (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x77d0,5);\n          logprintf(1,puVar18,*(undefined4 *)(puVar19 + 0x18));\n          url_free(puVar14);\n          if (puVar13 != param_1) {\n            url_free(puVar13);\n          }\n          (*(code *)PTR_free_000afd08)(puVar5);\n          (*(code *)PTR_free_000afd08)(local_38);\n          local_38 = (undefined *)0x0;\n          if (bVar3) {\n            iVar9 = 0x1b;\n            *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n            *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n            *(undefined4 *)(puVar19 + 500) = local_60;\n          }\n          else {\n            iVar9 = 0x1b;\n          }\n          goto LAB_0004d368;\n        }\n        (*(code *)PTR_free_000afd08)(puVar5);\n        puVar5 = local_38;\n        if (puVar13 != param_1) {\n          url_free(puVar13);\n        }\n        puVar13 = puVar14;\n        if ((iVar9 != 0x30) && (!bVar3)) {\n          local_64 = *(undefined4 *)(puVar19 + 0x1f8);\n          *(undefined4 *)(puVar19 + 0x1f8) = 0;\n          local_5c = *(undefined4 *)(puVar19 + 0x1fc);\n          *(undefined4 *)(puVar19 + 0x1fc) = 0;\n          bVar3 = true;\n          local_60 = *(undefined4 *)(puVar19 + 500);\n          *(undefined4 *)(puVar19 + 500) = 0;\n        }\n        goto LAB_0004ce08;\n      }\n    }\n    else {\n      if (puVar13[1] - 2 < 2) {\n        iVar11 = 0;\nLAB_0004d1d0:\n        if (local_84 == 0) {\n          iVar9 = (*(code *)PTR_ftp_loop_000af968)\n                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,\n                             PTR_opt_000af488[0xe1]);\n        }\n        else {\n          iVar9 = (*(code *)PTR_ftp_loop_000af968)\n                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,0);\n          if ((local_30 == (undefined *)0x0) || (1 < puVar13[1] - 2)) {\n            local_68 = 0;\n          }\n          else {\n            local_68 = has_html_suffix_p();\n            if (local_68 != 0) {\n              local_68 = 0;\n              *param_6 = *param_6 | 1;\n            }\n          }\n        }\n        goto LAB_0004d01c;\n      }\nLAB_0004cef8:\n      iVar9 = 0;\n    }\n    (*(code *)PTR_free_000afd08)(local_38);\n    uVar12 = *param_6 & 2;\n    local_38 = (undefined *)0x0;\n    if ((uVar12 != 0) || (cVar1 = *(char *)(param_8 + 0xc), cVar1 == '\0')) {\n      puVar18 = local_30;\n      if ((local_30 == (undefined *)0x0) ||\n         (puVar19 = PTR_opt_000af488, puVar13 == (undefined4 *)0x0)) goto LAB_0004d2f8;\n      goto LAB_0004d2e0;\n    }\n    *(undefined1 *)(param_8 + 0xc) = 0;\n    if (puVar13 != param_1) {\n      url_free(puVar13);\n    }\n    puVar18 = (undefined *)0x0;\n    puVar13 = (undefined4 *)url_parse(param_2,0,param_8,1);\n    puVar19 = PTR_opt_000af488;\n    if (puVar13 == (undefined4 *)0x0) {\n      if (PTR_opt_000af488[0x16b] != '\0') {\n        puVar18 = (undefined *)quote(puVar5);\n        debug_logprintf(PTR_s_hallenge__000af46c + 0x783c);\n      }\n      goto LAB_0004d2f8;\n    }\n    iVar10 = (*(code *)PTR_strcmp_000afacc)(*puVar13,*param_1);\n    cVar2 = puVar19[0x16b];\n    if (iVar10 == 0) break;\n    if (cVar2 != '\0') {\n      uVar15 = quote(puVar5);\n      debug_logprintf(puVar7,uVar15);\n    }\n    (*(code *)PTR_free_000afd08)(puVar5);\n    puVar5 = (undefined *)xstrdup(*puVar13);\n    cVar4 = cVar1;\n  } while( true );\n  if (cVar2 != '\0') {\n    uVar15 = quote(puVar5);\n    debug_logprintf(PTR_s_hallenge__000af46c + 0x7814,uVar15);\n  }\n  puVar18 = local_30;\n  if (local_30 != (undefined *)0x0) {\n    uVar12 = *param_6 & 2;\nLAB_0004d2e0:\n    puVar18 = local_30;\n    if ((uVar12 != 0) || (puVar19[0x16a] != '\0')) {\n      (*(code *)PTR_register_download_000af96c)(*puVar13);\n      if ((puVar19[0x48] == '\0') && (local_84 != 0)) {\n        puVar20 = (undefined *)*puVar13;\n        puVar18 = puVar20;\n        iVar10 = (*(code *)PTR_strcmp_000afacc)(param_2);\n        if (iVar10 != 0) {\n          (*(code *)PTR_register_redirection_000af978)(param_2);\n          puVar18 = puVar20;\n        }\n      }\n      uVar12 = *param_6;\n      if ((uVar12 & 1) != 0) {\n        (*(code *)PTR_register_html_000af974)();\n        uVar12 = *param_6;\n      }\n      if ((uVar12 & 0x40) != 0) {\n        (*(code *)PTR_register_css_000af970)();\n      }\n    }\n  }\nLAB_0004d2f8:\n  if (param_3 == (undefined4 *)0x0) {\n    (*(code *)PTR_free_000afd08)();\n    local_30 = (undefined *)0x0;\n  }\n  else {\n    *param_3 = local_30;\n  }\n  if (param_1 != puVar13) {\n    url_free(puVar13);\n  }\n  puVar20 = PTR_free_000afd08;\n  if ((local_84 == 0) && (cVar4 == '\0')) {\n    if (param_4 != (undefined4 *)0x0) {\n      *param_4 = 0;\n    }\n  }\n  else if (param_4 != (undefined4 *)0x0) {\n    *param_4 = puVar5;\n    goto LAB_0004d33c;\n  }\n  (*(code *)puVar20)(puVar5);\nLAB_0004d33c:\n  puVar5 = PTR_opt_000af488;\n  if (bVar3) {\n    *(undefined4 *)(PTR_opt_000af488 + 0x1f8) = local_64;\n    *(undefined4 *)(puVar5 + 0x1fc) = local_5c;\n    *(undefined4 *)(puVar5 + 500) = local_60;\n  }\nLAB_0004d368:\n  if (param_9 != '\0') {\n    inform_exit_status(iVar9);\n  }\n  if (local_2c != *(undefined **)puVar17) {\n    puVar17 = local_2c;\n    puVar5 = PTR___stack_chk_fail_000afbd4;\n    (*(code *)PTR___stack_chk_fail_000afbd4)();\n    if (puVar17 == puVar18) {\n      uVar15 = (**(code **)(puVar5 + 0x62534))(0,*(int *)(puVar5 + 0x61cac) + 0x7864,5);\n      iVar9 = logputs(0,uVar15);\n      return iVar9;\n    }\n    uVar15 = (**(code **)(puVar5 + 0x62534))(0,*(int *)(puVar5 + 0x61cac) + 0x7874);\n    iVar9 = logputs(0,uVar15);\n    return iVar9;\n  }\n  return iVar9;\n}" primitive_type (function_declarator "retrieve_url(undefined4 *param_1,undefined4 param_2,undefined4 *param_3,undefined4 *param_4,\n                int param_5,uint *param_6,byte param_7,int param_8,char param_9)" identifier (parameter_list "(undefined4 *param_1,undefined4 param_2,undefined4 *param_3,undefined4 *param_4,\n                int param_5,uint *param_6,byte param_7,int param_8,char param_9)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "undefined4 *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "undefined4 *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "int param_5" primitive_type identifier) , (parameter_declaration "uint *param_6" type_identifier (pointer_declarator "*param_6" * identifier)) , (parameter_declaration "byte param_7" type_identifier identifier) , (parameter_declaration "int param_8" primitive_type identifier) , (parameter_declaration "char param_9" primitive_type identifier) ))) (compound_statement "{\n  char cVar1;\n  char cVar2;\n  bool bVar3;\n  char cVar4;\n  undefined *puVar5;\n  code *pcVar6;\n  undefined *puVar7;\n  undefined *puVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  uint uVar12;\n  undefined4 *puVar13;\n  undefined4 *puVar14;\n  undefined4 uVar15;\n  undefined4 uVar16;\n  undefined *puVar17;\n  undefined *puVar18;\n  undefined *puVar19;\n  undefined *puVar20;\n  int local_84;\n  int local_7c;\n  uint local_68;\n  undefined4 local_64;\n  undefined4 local_60;\n  undefined4 local_5c;\n  uint local_3c;\n  undefined *local_38;\n  undefined4 local_34;\n  undefined *local_30;\n  undefined *local_2c;\n  \n  puVar17 = PTR___stack_chk_guard_000afc3c;\n  local_7c = param_5;\n  local_68 = (uint)param_7;\n  local_2c = *(undefined **)PTR___stack_chk_guard_000afc3c;\n  local_30 = (undefined *)0x0;\n  if (param_6 == (uint *)0x0) {\n    param_6 = &local_3c;\n    local_3c = 0;\n  }\n  puVar5 = (undefined *)xstrdup(param_2);\n  if (param_4 != (undefined4 *)0x0) {\n    *param_4 = 0;\n  }\n  if (param_3 != (undefined4 *)0x0) {\n    *param_3 = 0;\n  }\n  puVar20 = PTR_s_hallenge__000af46c;\n  if (param_5 == 0) {\n    local_7c = *(int *)(PTR_opt_000af488 + 0x178);\n  }\n  local_5c = 0;\n  local_60 = 0;\n  local_64 = 0;\n  bVar3 = false;\n  pcVar6 = (code *)(PTR_LAB_000af918 + -0x4774);\n  local_84 = 0;\n  puVar7 = PTR_s_hallenge__000af46c + 0x77ec;\n  puVar8 = PTR_s_hallenge__000af46c + -0x1710;\n  puVar13 = param_1;\n  cVar4 = '\0';\nLAB_0004ce08:\n  do {\n    local_38 = (undefined *)0x0;\n    (*(code *)PTR_free_000afd08)(local_30);\n    local_30 = (undefined *)0x0;\n    iVar9 = (*pcVar6)(puVar13 + 1,puVar13 + 2);\n    puVar19 = PTR_opt_000af488;\n    if (iVar9 != 0) {\n      iVar10 = iri_new();\n      set_uri_encoding(iVar10,*(undefined4 *)(puVar19 + 0x21c),1);\n      *(undefined1 *)(iVar10 + 0xc) = 0;\n      iVar11 = url_parse(iVar9,&local_34,iVar10,1);\n      if (iVar11 == 0) {\n        puVar20 = (undefined *)url_error(iVar9,local_34);\n        puVar18 = (undefined *)\n                  (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7754,5);\n        logprintf(1,puVar18,iVar9,puVar20);\n        (*(code *)PTR_free_000afd08)(puVar5);\n      }\n      else {\n        if ((*(int *)(iVar11 + 4) == 0) || (*(int *)(iVar11 + 4) == puVar13[1])) {\n          iri_free(iVar10);\n          (*(code *)PTR_free_000afd08)(iVar9);\n          if ((1 < (uint)puVar13[1]) && (*(int *)(iVar11 + 4) != 0)) {\n            if (puVar13[1] - 2 < 2) goto LAB_0004d1d0;\n            url_free(iVar11);\n            goto LAB_0004cef8;\n          }\n          goto LAB_0004cfbc;\n        }\n        puVar18 = (undefined *)\n                  (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7778,5);\n        logprintf(1,puVar18,iVar9);\n        url_free(iVar11);\n        puVar20 = puVar5;\n      }\n      (*(code *)PTR_free_000afd08)(puVar20);\n      (*(code *)PTR_free_000afd08)(iVar9);\n      iri_free(iVar10);\n      if (bVar3) {\n        iVar9 = 0x29;\n        *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n        *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n        *(undefined4 *)(puVar19 + 500) = local_60;\n      }\n      else {\n        iVar9 = 0x29;\n      }\n      goto LAB_0004d368;\n    }\n    if ((uint)puVar13[1] < 2) {\n      iVar11 = 0;\nLAB_0004cfbc:\n      if (((puVar19[0x22c] != '\0') && (*(int *)PTR_hsts_store_000af570 != 0)) &&\n         (iVar9 = hsts_match(*(int *)PTR_hsts_store_000af570,puVar13), iVar9 != 0)) {\n        logprintf(0,puVar20 + 0x77a0);\n      }\n      iVar9 = http_loop(puVar13,param_1,&local_38,&local_30,local_7c,param_6,iVar11,param_8);\nLAB_0004d01c:\n      if (iVar11 != 0) {\n        url_free(iVar11);\n      }\n      puVar19 = PTR_opt_000af488;\n      if ((iVar9 == 6) || (iVar9 == 0x30)) {\n        (*(code *)PTR_free_000afd08)(local_30);\n        local_30 = (undefined *)0x0;\n        puVar18 = local_38;\n        if (local_38 == (undefined *)0x0) {\n          puVar18 = puVar8;\n        }\n        puVar18 = (undefined *)uri_merge(puVar5,puVar18);\n        (*(code *)PTR_free_000afd08)(local_38);\n        iVar10 = *(int *)(puVar19 + 0x218);\n        *(undefined *)(param_8 + 0xc) = puVar19[0x216];\n        local_38 = puVar18;\n        if (iVar10 != 0) {\n          set_uri_encoding(param_8,iVar10,1);\n        }\n        set_content_encoding(param_8,0);\n        (*(code *)PTR_free_000afd08)(*(undefined4 *)(param_8 + 8));\n        *(undefined4 *)(param_8 + 8) = 0;\n        puVar14 = (undefined4 *)url_parse(local_38,&local_34,param_8,1);\n        if (puVar14 == (undefined4 *)0x0) {\n          uVar15 = url_error(local_38,local_34);\n          uVar16 = escnonprint_uri(local_38);\n          puVar18 = PTR_s_hallenge__000af46c + 0x776c;\n          logprintf(1,puVar18,uVar16,uVar15);\n          if (puVar13 != param_1) {\n            url_free(puVar13);\n          }\n          (*(code *)PTR_free_000afd08)(puVar5);\n          (*(code *)PTR_free_000afd08)(local_38);\n          local_38 = (undefined *)0x0;\n          (*(code *)PTR_free_000afd08)(uVar15);\n          if (bVar3) {\n            *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n            *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n            *(undefined4 *)(puVar19 + 500) = local_60;\n          }\n          goto LAB_0004d368;\n        }\n        local_84 = local_84 + 1;\n        (*(code *)PTR_free_000afd08)(local_38);\n        local_38 = (undefined *)0x0;\n        local_38 = (undefined *)xstrdup(*puVar14);\n        if (*(int *)(puVar19 + 0x18) < local_84) {\n          puVar18 = (undefined *)\n                    (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x77d0,5);\n          logprintf(1,puVar18,*(undefined4 *)(puVar19 + 0x18));\n          url_free(puVar14);\n          if (puVar13 != param_1) {\n            url_free(puVar13);\n          }\n          (*(code *)PTR_free_000afd08)(puVar5);\n          (*(code *)PTR_free_000afd08)(local_38);\n          local_38 = (undefined *)0x0;\n          if (bVar3) {\n            iVar9 = 0x1b;\n            *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n            *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n            *(undefined4 *)(puVar19 + 500) = local_60;\n          }\n          else {\n            iVar9 = 0x1b;\n          }\n          goto LAB_0004d368;\n        }\n        (*(code *)PTR_free_000afd08)(puVar5);\n        puVar5 = local_38;\n        if (puVar13 != param_1) {\n          url_free(puVar13);\n        }\n        puVar13 = puVar14;\n        if ((iVar9 != 0x30) && (!bVar3)) {\n          local_64 = *(undefined4 *)(puVar19 + 0x1f8);\n          *(undefined4 *)(puVar19 + 0x1f8) = 0;\n          local_5c = *(undefined4 *)(puVar19 + 0x1fc);\n          *(undefined4 *)(puVar19 + 0x1fc) = 0;\n          bVar3 = true;\n          local_60 = *(undefined4 *)(puVar19 + 500);\n          *(undefined4 *)(puVar19 + 500) = 0;\n        }\n        goto LAB_0004ce08;\n      }\n    }\n    else {\n      if (puVar13[1] - 2 < 2) {\n        iVar11 = 0;\nLAB_0004d1d0:\n        if (local_84 == 0) {\n          iVar9 = (*(code *)PTR_ftp_loop_000af968)\n                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,\n                             PTR_opt_000af488[0xe1]);\n        }\n        else {\n          iVar9 = (*(code *)PTR_ftp_loop_000af968)\n                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,0);\n          if ((local_30 == (undefined *)0x0) || (1 < puVar13[1] - 2)) {\n            local_68 = 0;\n          }\n          else {\n            local_68 = has_html_suffix_p();\n            if (local_68 != 0) {\n              local_68 = 0;\n              *param_6 = *param_6 | 1;\n            }\n          }\n        }\n        goto LAB_0004d01c;\n      }\nLAB_0004cef8:\n      iVar9 = 0;\n    }\n    (*(code *)PTR_free_000afd08)(local_38);\n    uVar12 = *param_6 & 2;\n    local_38 = (undefined *)0x0;\n    if ((uVar12 != 0) || (cVar1 = *(char *)(param_8 + 0xc), cVar1 == '\0')) {\n      puVar18 = local_30;\n      if ((local_30 == (undefined *)0x0) ||\n         (puVar19 = PTR_opt_000af488, puVar13 == (undefined4 *)0x0)) goto LAB_0004d2f8;\n      goto LAB_0004d2e0;\n    }\n    *(undefined1 *)(param_8 + 0xc) = 0;\n    if (puVar13 != param_1) {\n      url_free(puVar13);\n    }\n    puVar18 = (undefined *)0x0;\n    puVar13 = (undefined4 *)url_parse(param_2,0,param_8,1);\n    puVar19 = PTR_opt_000af488;\n    if (puVar13 == (undefined4 *)0x0) {\n      if (PTR_opt_000af488[0x16b] != '\0') {\n        puVar18 = (undefined *)quote(puVar5);\n        debug_logprintf(PTR_s_hallenge__000af46c + 0x783c);\n      }\n      goto LAB_0004d2f8;\n    }\n    iVar10 = (*(code *)PTR_strcmp_000afacc)(*puVar13,*param_1);\n    cVar2 = puVar19[0x16b];\n    if (iVar10 == 0) break;\n    if (cVar2 != '\0') {\n      uVar15 = quote(puVar5);\n      debug_logprintf(puVar7,uVar15);\n    }\n    (*(code *)PTR_free_000afd08)(puVar5);\n    puVar5 = (undefined *)xstrdup(*puVar13);\n    cVar4 = cVar1;\n  } while( true );\n  if (cVar2 != '\0') {\n    uVar15 = quote(puVar5);\n    debug_logprintf(PTR_s_hallenge__000af46c + 0x7814,uVar15);\n  }\n  puVar18 = local_30;\n  if (local_30 != (undefined *)0x0) {\n    uVar12 = *param_6 & 2;\nLAB_0004d2e0:\n    puVar18 = local_30;\n    if ((uVar12 != 0) || (puVar19[0x16a] != '\0')) {\n      (*(code *)PTR_register_download_000af96c)(*puVar13);\n      if ((puVar19[0x48] == '\0') && (local_84 != 0)) {\n        puVar20 = (undefined *)*puVar13;\n        puVar18 = puVar20;\n        iVar10 = (*(code *)PTR_strcmp_000afacc)(param_2);\n        if (iVar10 != 0) {\n          (*(code *)PTR_register_redirection_000af978)(param_2);\n          puVar18 = puVar20;\n        }\n      }\n      uVar12 = *param_6;\n      if ((uVar12 & 1) != 0) {\n        (*(code *)PTR_register_html_000af974)();\n        uVar12 = *param_6;\n      }\n      if ((uVar12 & 0x40) != 0) {\n        (*(code *)PTR_register_css_000af970)();\n      }\n    }\n  }\nLAB_0004d2f8:\n  if (param_3 == (undefined4 *)0x0) {\n    (*(code *)PTR_free_000afd08)();\n    local_30 = (undefined *)0x0;\n  }\n  else {\n    *param_3 = local_30;\n  }\n  if (param_1 != puVar13) {\n    url_free(puVar13);\n  }\n  puVar20 = PTR_free_000afd08;\n  if ((local_84 == 0) && (cVar4 == '\0')) {\n    if (param_4 != (undefined4 *)0x0) {\n      *param_4 = 0;\n    }\n  }\n  else if (param_4 != (undefined4 *)0x0) {\n    *param_4 = puVar5;\n    goto LAB_0004d33c;\n  }\n  (*(code *)puVar20)(puVar5);\nLAB_0004d33c:\n  puVar5 = PTR_opt_000af488;\n  if (bVar3) {\n    *(undefined4 *)(PTR_opt_000af488 + 0x1f8) = local_64;\n    *(undefined4 *)(puVar5 + 0x1fc) = local_5c;\n    *(undefined4 *)(puVar5 + 500) = local_60;\n  }\nLAB_0004d368:\n  if (param_9 != '\0') {\n    inform_exit_status(iVar9);\n  }\n  if (local_2c != *(undefined **)puVar17) {\n    puVar17 = local_2c;\n    puVar5 = PTR___stack_chk_fail_000afbd4;\n    (*(code *)PTR___stack_chk_fail_000afbd4)();\n    if (puVar17 == puVar18) {\n      uVar15 = (**(code **)(puVar5 + 0x62534))(0,*(int *)(puVar5 + 0x61cac) + 0x7864,5);\n      iVar9 = logputs(0,uVar15);\n      return iVar9;\n    }\n    uVar15 = (**(code **)(puVar5 + 0x62534))(0,*(int *)(puVar5 + 0x61cac) + 0x7874);\n    iVar9 = logputs(0,uVar15);\n    return iVar9;\n  }\n  return iVar9;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "bool bVar3;" primitive_type identifier ;) (declaration "char cVar4;" primitive_type identifier ;) (declaration "undefined *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "code *pcVar6;" type_identifier (pointer_declarator "*pcVar6" * identifier) ;) (declaration "undefined *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "undefined *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "undefined4 *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "undefined4 *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "undefined4 uVar15;" type_identifier identifier ;) (declaration "undefined4 uVar16;" type_identifier identifier ;) (declaration "undefined *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "undefined *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "undefined *puVar19;" type_identifier (pointer_declarator "*puVar19" * identifier) ;) (declaration "undefined *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "int local_84;" primitive_type identifier ;) (declaration "int local_7c;" primitive_type identifier ;) (declaration "uint local_68;" type_identifier identifier ;) (declaration "undefined4 local_64;" type_identifier identifier ;) (declaration "undefined4 local_60;" type_identifier identifier ;) (declaration "undefined4 local_5c;" type_identifier identifier ;) (declaration "uint local_3c;" type_identifier identifier ;) (declaration "undefined *local_38;" type_identifier (pointer_declarator "*local_38" * identifier) ;) (declaration "undefined4 local_34;" type_identifier identifier ;) (declaration "undefined *local_30;" type_identifier (pointer_declarator "*local_30" * identifier) ;) (declaration "undefined *local_2c;" type_identifier (pointer_declarator "*local_2c" * identifier) ;) (expression_statement "puVar17 = PTR___stack_chk_guard_000afc3c;" (assignment_expression "puVar17 = PTR___stack_chk_guard_000afc3c" identifier = identifier) ;) (expression_statement "local_7c = param_5;" (assignment_expression "local_7c = param_5" identifier = identifier) ;) (expression_statement "local_68 = (uint)param_7;" (assignment_expression "local_68 = (uint)param_7" identifier = (cast_expression "(uint)param_7" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "local_2c = *(undefined **)PTR___stack_chk_guard_000afc3c;" (assignment_expression "local_2c = *(undefined **)PTR___stack_chk_guard_000afc3c" identifier = (pointer_expression "*(undefined **)PTR___stack_chk_guard_000afc3c" * (cast_expression "(undefined **)PTR___stack_chk_guard_000afc3c" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "local_30 = (undefined *)0x0;" (assignment_expression "local_30 = (undefined *)0x0" identifier = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (param_6 == (uint *)0x0) {\n    param_6 = &local_3c;\n    local_3c = 0;\n  }" if (parenthesized_expression "(param_6 == (uint *)0x0)" ( (binary_expression "param_6 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    param_6 = &local_3c;\n    local_3c = 0;\n  }" { (expression_statement "param_6 = &local_3c;" (assignment_expression "param_6 = &local_3c" identifier = (pointer_expression "&local_3c" & identifier)) ;) (expression_statement "local_3c = 0;" (assignment_expression "local_3c = 0" identifier = number_literal) ;) })) (expression_statement "puVar5 = (undefined *)xstrdup(param_2);" (assignment_expression "puVar5 = (undefined *)xstrdup(param_2)" identifier = (cast_expression "(undefined *)xstrdup(param_2)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xstrdup(param_2)" identifier (argument_list "(param_2)" ( identifier ))))) ;) (if_statement "if (param_4 != (undefined4 *)0x0) {\n    *param_4 = 0;\n  }" if (parenthesized_expression "(param_4 != (undefined4 *)0x0)" ( (binary_expression "param_4 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    *param_4 = 0;\n  }" { (expression_statement "*param_4 = 0;" (assignment_expression "*param_4 = 0" (pointer_expression "*param_4" * identifier) = number_literal) ;) })) (if_statement "if (param_3 != (undefined4 *)0x0) {\n    *param_3 = 0;\n  }" if (parenthesized_expression "(param_3 != (undefined4 *)0x0)" ( (binary_expression "param_3 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    *param_3 = 0;\n  }" { (expression_statement "*param_3 = 0;" (assignment_expression "*param_3 = 0" (pointer_expression "*param_3" * identifier) = number_literal) ;) })) (expression_statement "puVar20 = PTR_s_hallenge__000af46c;" (assignment_expression "puVar20 = PTR_s_hallenge__000af46c" identifier = identifier) ;) (if_statement "if (param_5 == 0) {\n    local_7c = *(int *)(PTR_opt_000af488 + 0x178);\n  }" if (parenthesized_expression "(param_5 == 0)" ( (binary_expression "param_5 == 0" identifier == number_literal) )) (compound_statement "{\n    local_7c = *(int *)(PTR_opt_000af488 + 0x178);\n  }" { (expression_statement "local_7c = *(int *)(PTR_opt_000af488 + 0x178);" (assignment_expression "local_7c = *(int *)(PTR_opt_000af488 + 0x178)" identifier = (pointer_expression "*(int *)(PTR_opt_000af488 + 0x178)" * (cast_expression "(int *)(PTR_opt_000af488 + 0x178)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_opt_000af488 + 0x178)" ( (binary_expression "PTR_opt_000af488 + 0x178" identifier + number_literal) ))))) ;) })) (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" identifier = number_literal) ;) (expression_statement "local_60 = 0;" (assignment_expression "local_60 = 0" identifier = number_literal) ;) (expression_statement "local_64 = 0;" (assignment_expression "local_64 = 0" identifier = number_literal) ;) (expression_statement "bVar3 = false;" (assignment_expression "bVar3 = false" identifier = false) ;) (expression_statement "pcVar6 = (code *)(PTR_LAB_000af918 + -0x4774);" (assignment_expression "pcVar6 = (code *)(PTR_LAB_000af918 + -0x4774)" identifier = (cast_expression "(code *)(PTR_LAB_000af918 + -0x4774)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000af918 + -0x4774)" ( (binary_expression "PTR_LAB_000af918 + -0x4774" identifier + number_literal) )))) ;) (expression_statement "local_84 = 0;" (assignment_expression "local_84 = 0" identifier = number_literal) ;) (expression_statement "puVar7 = PTR_s_hallenge__000af46c + 0x77ec;" (assignment_expression "puVar7 = PTR_s_hallenge__000af46c + 0x77ec" identifier = (binary_expression "PTR_s_hallenge__000af46c + 0x77ec" identifier + number_literal)) ;) (expression_statement "puVar8 = PTR_s_hallenge__000af46c + -0x1710;" (assignment_expression "puVar8 = PTR_s_hallenge__000af46c + -0x1710" identifier = (binary_expression "PTR_s_hallenge__000af46c + -0x1710" identifier + number_literal)) ;) (expression_statement "puVar13 = param_1;" (assignment_expression "puVar13 = param_1" identifier = identifier) ;) (expression_statement "cVar4 = '\0';" (assignment_expression "cVar4 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (labeled_statement "LAB_0004ce08:\n  do {\n    local_38 = (undefined *)0x0;\n    (*(code *)PTR_free_000afd08)(local_30);\n    local_30 = (undefined *)0x0;\n    iVar9 = (*pcVar6)(puVar13 + 1,puVar13 + 2);\n    puVar19 = PTR_opt_000af488;\n    if (iVar9 != 0) {\n      iVar10 = iri_new();\n      set_uri_encoding(iVar10,*(undefined4 *)(puVar19 + 0x21c),1);\n      *(undefined1 *)(iVar10 + 0xc) = 0;\n      iVar11 = url_parse(iVar9,&local_34,iVar10,1);\n      if (iVar11 == 0) {\n        puVar20 = (undefined *)url_error(iVar9,local_34);\n        puVar18 = (undefined *)\n                  (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7754,5);\n        logprintf(1,puVar18,iVar9,puVar20);\n        (*(code *)PTR_free_000afd08)(puVar5);\n      }\n      else {\n        if ((*(int *)(iVar11 + 4) == 0) || (*(int *)(iVar11 + 4) == puVar13[1])) {\n          iri_free(iVar10);\n          (*(code *)PTR_free_000afd08)(iVar9);\n          if ((1 < (uint)puVar13[1]) && (*(int *)(iVar11 + 4) != 0)) {\n            if (puVar13[1] - 2 < 2) goto LAB_0004d1d0;\n            url_free(iVar11);\n            goto LAB_0004cef8;\n          }\n          goto LAB_0004cfbc;\n        }\n        puVar18 = (undefined *)\n                  (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7778,5);\n        logprintf(1,puVar18,iVar9);\n        url_free(iVar11);\n        puVar20 = puVar5;\n      }\n      (*(code *)PTR_free_000afd08)(puVar20);\n      (*(code *)PTR_free_000afd08)(iVar9);\n      iri_free(iVar10);\n      if (bVar3) {\n        iVar9 = 0x29;\n        *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n        *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n        *(undefined4 *)(puVar19 + 500) = local_60;\n      }\n      else {\n        iVar9 = 0x29;\n      }\n      goto LAB_0004d368;\n    }\n    if ((uint)puVar13[1] < 2) {\n      iVar11 = 0;\nLAB_0004cfbc:\n      if (((puVar19[0x22c] != '\0') && (*(int *)PTR_hsts_store_000af570 != 0)) &&\n         (iVar9 = hsts_match(*(int *)PTR_hsts_store_000af570,puVar13), iVar9 != 0)) {\n        logprintf(0,puVar20 + 0x77a0);\n      }\n      iVar9 = http_loop(puVar13,param_1,&local_38,&local_30,local_7c,param_6,iVar11,param_8);\nLAB_0004d01c:\n      if (iVar11 != 0) {\n        url_free(iVar11);\n      }\n      puVar19 = PTR_opt_000af488;\n      if ((iVar9 == 6) || (iVar9 == 0x30)) {\n        (*(code *)PTR_free_000afd08)(local_30);\n        local_30 = (undefined *)0x0;\n        puVar18 = local_38;\n        if (local_38 == (undefined *)0x0) {\n          puVar18 = puVar8;\n        }\n        puVar18 = (undefined *)uri_merge(puVar5,puVar18);\n        (*(code *)PTR_free_000afd08)(local_38);\n        iVar10 = *(int *)(puVar19 + 0x218);\n        *(undefined *)(param_8 + 0xc) = puVar19[0x216];\n        local_38 = puVar18;\n        if (iVar10 != 0) {\n          set_uri_encoding(param_8,iVar10,1);\n        }\n        set_content_encoding(param_8,0);\n        (*(code *)PTR_free_000afd08)(*(undefined4 *)(param_8 + 8));\n        *(undefined4 *)(param_8 + 8) = 0;\n        puVar14 = (undefined4 *)url_parse(local_38,&local_34,param_8,1);\n        if (puVar14 == (undefined4 *)0x0) {\n          uVar15 = url_error(local_38,local_34);\n          uVar16 = escnonprint_uri(local_38);\n          puVar18 = PTR_s_hallenge__000af46c + 0x776c;\n          logprintf(1,puVar18,uVar16,uVar15);\n          if (puVar13 != param_1) {\n            url_free(puVar13);\n          }\n          (*(code *)PTR_free_000afd08)(puVar5);\n          (*(code *)PTR_free_000afd08)(local_38);\n          local_38 = (undefined *)0x0;\n          (*(code *)PTR_free_000afd08)(uVar15);\n          if (bVar3) {\n            *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n            *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n            *(undefined4 *)(puVar19 + 500) = local_60;\n          }\n          goto LAB_0004d368;\n        }\n        local_84 = local_84 + 1;\n        (*(code *)PTR_free_000afd08)(local_38);\n        local_38 = (undefined *)0x0;\n        local_38 = (undefined *)xstrdup(*puVar14);\n        if (*(int *)(puVar19 + 0x18) < local_84) {\n          puVar18 = (undefined *)\n                    (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x77d0,5);\n          logprintf(1,puVar18,*(undefined4 *)(puVar19 + 0x18));\n          url_free(puVar14);\n          if (puVar13 != param_1) {\n            url_free(puVar13);\n          }\n          (*(code *)PTR_free_000afd08)(puVar5);\n          (*(code *)PTR_free_000afd08)(local_38);\n          local_38 = (undefined *)0x0;\n          if (bVar3) {\n            iVar9 = 0x1b;\n            *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n            *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n            *(undefined4 *)(puVar19 + 500) = local_60;\n          }\n          else {\n            iVar9 = 0x1b;\n          }\n          goto LAB_0004d368;\n        }\n        (*(code *)PTR_free_000afd08)(puVar5);\n        puVar5 = local_38;\n        if (puVar13 != param_1) {\n          url_free(puVar13);\n        }\n        puVar13 = puVar14;\n        if ((iVar9 != 0x30) && (!bVar3)) {\n          local_64 = *(undefined4 *)(puVar19 + 0x1f8);\n          *(undefined4 *)(puVar19 + 0x1f8) = 0;\n          local_5c = *(undefined4 *)(puVar19 + 0x1fc);\n          *(undefined4 *)(puVar19 + 0x1fc) = 0;\n          bVar3 = true;\n          local_60 = *(undefined4 *)(puVar19 + 500);\n          *(undefined4 *)(puVar19 + 500) = 0;\n        }\n        goto LAB_0004ce08;\n      }\n    }\n    else {\n      if (puVar13[1] - 2 < 2) {\n        iVar11 = 0;\nLAB_0004d1d0:\n        if (local_84 == 0) {\n          iVar9 = (*(code *)PTR_ftp_loop_000af968)\n                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,\n                             PTR_opt_000af488[0xe1]);\n        }\n        else {\n          iVar9 = (*(code *)PTR_ftp_loop_000af968)\n                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,0);\n          if ((local_30 == (undefined *)0x0) || (1 < puVar13[1] - 2)) {\n            local_68 = 0;\n          }\n          else {\n            local_68 = has_html_suffix_p();\n            if (local_68 != 0) {\n              local_68 = 0;\n              *param_6 = *param_6 | 1;\n            }\n          }\n        }\n        goto LAB_0004d01c;\n      }\nLAB_0004cef8:\n      iVar9 = 0;\n    }\n    (*(code *)PTR_free_000afd08)(local_38);\n    uVar12 = *param_6 & 2;\n    local_38 = (undefined *)0x0;\n    if ((uVar12 != 0) || (cVar1 = *(char *)(param_8 + 0xc), cVar1 == '\0')) {\n      puVar18 = local_30;\n      if ((local_30 == (undefined *)0x0) ||\n         (puVar19 = PTR_opt_000af488, puVar13 == (undefined4 *)0x0)) goto LAB_0004d2f8;\n      goto LAB_0004d2e0;\n    }\n    *(undefined1 *)(param_8 + 0xc) = 0;\n    if (puVar13 != param_1) {\n      url_free(puVar13);\n    }\n    puVar18 = (undefined *)0x0;\n    puVar13 = (undefined4 *)url_parse(param_2,0,param_8,1);\n    puVar19 = PTR_opt_000af488;\n    if (puVar13 == (undefined4 *)0x0) {\n      if (PTR_opt_000af488[0x16b] != '\0') {\n        puVar18 = (undefined *)quote(puVar5);\n        debug_logprintf(PTR_s_hallenge__000af46c + 0x783c);\n      }\n      goto LAB_0004d2f8;\n    }\n    iVar10 = (*(code *)PTR_strcmp_000afacc)(*puVar13,*param_1);\n    cVar2 = puVar19[0x16b];\n    if (iVar10 == 0) break;\n    if (cVar2 != '\0') {\n      uVar15 = quote(puVar5);\n      debug_logprintf(puVar7,uVar15);\n    }\n    (*(code *)PTR_free_000afd08)(puVar5);\n    puVar5 = (undefined *)xstrdup(*puVar13);\n    cVar4 = cVar1;\n  } while( true );" statement_identifier : (do_statement "do {\n    local_38 = (undefined *)0x0;\n    (*(code *)PTR_free_000afd08)(local_30);\n    local_30 = (undefined *)0x0;\n    iVar9 = (*pcVar6)(puVar13 + 1,puVar13 + 2);\n    puVar19 = PTR_opt_000af488;\n    if (iVar9 != 0) {\n      iVar10 = iri_new();\n      set_uri_encoding(iVar10,*(undefined4 *)(puVar19 + 0x21c),1);\n      *(undefined1 *)(iVar10 + 0xc) = 0;\n      iVar11 = url_parse(iVar9,&local_34,iVar10,1);\n      if (iVar11 == 0) {\n        puVar20 = (undefined *)url_error(iVar9,local_34);\n        puVar18 = (undefined *)\n                  (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7754,5);\n        logprintf(1,puVar18,iVar9,puVar20);\n        (*(code *)PTR_free_000afd08)(puVar5);\n      }\n      else {\n        if ((*(int *)(iVar11 + 4) == 0) || (*(int *)(iVar11 + 4) == puVar13[1])) {\n          iri_free(iVar10);\n          (*(code *)PTR_free_000afd08)(iVar9);\n          if ((1 < (uint)puVar13[1]) && (*(int *)(iVar11 + 4) != 0)) {\n            if (puVar13[1] - 2 < 2) goto LAB_0004d1d0;\n            url_free(iVar11);\n            goto LAB_0004cef8;\n          }\n          goto LAB_0004cfbc;\n        }\n        puVar18 = (undefined *)\n                  (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7778,5);\n        logprintf(1,puVar18,iVar9);\n        url_free(iVar11);\n        puVar20 = puVar5;\n      }\n      (*(code *)PTR_free_000afd08)(puVar20);\n      (*(code *)PTR_free_000afd08)(iVar9);\n      iri_free(iVar10);\n      if (bVar3) {\n        iVar9 = 0x29;\n        *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n        *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n        *(undefined4 *)(puVar19 + 500) = local_60;\n      }\n      else {\n        iVar9 = 0x29;\n      }\n      goto LAB_0004d368;\n    }\n    if ((uint)puVar13[1] < 2) {\n      iVar11 = 0;\nLAB_0004cfbc:\n      if (((puVar19[0x22c] != '\0') && (*(int *)PTR_hsts_store_000af570 != 0)) &&\n         (iVar9 = hsts_match(*(int *)PTR_hsts_store_000af570,puVar13), iVar9 != 0)) {\n        logprintf(0,puVar20 + 0x77a0);\n      }\n      iVar9 = http_loop(puVar13,param_1,&local_38,&local_30,local_7c,param_6,iVar11,param_8);\nLAB_0004d01c:\n      if (iVar11 != 0) {\n        url_free(iVar11);\n      }\n      puVar19 = PTR_opt_000af488;\n      if ((iVar9 == 6) || (iVar9 == 0x30)) {\n        (*(code *)PTR_free_000afd08)(local_30);\n        local_30 = (undefined *)0x0;\n        puVar18 = local_38;\n        if (local_38 == (undefined *)0x0) {\n          puVar18 = puVar8;\n        }\n        puVar18 = (undefined *)uri_merge(puVar5,puVar18);\n        (*(code *)PTR_free_000afd08)(local_38);\n        iVar10 = *(int *)(puVar19 + 0x218);\n        *(undefined *)(param_8 + 0xc) = puVar19[0x216];\n        local_38 = puVar18;\n        if (iVar10 != 0) {\n          set_uri_encoding(param_8,iVar10,1);\n        }\n        set_content_encoding(param_8,0);\n        (*(code *)PTR_free_000afd08)(*(undefined4 *)(param_8 + 8));\n        *(undefined4 *)(param_8 + 8) = 0;\n        puVar14 = (undefined4 *)url_parse(local_38,&local_34,param_8,1);\n        if (puVar14 == (undefined4 *)0x0) {\n          uVar15 = url_error(local_38,local_34);\n          uVar16 = escnonprint_uri(local_38);\n          puVar18 = PTR_s_hallenge__000af46c + 0x776c;\n          logprintf(1,puVar18,uVar16,uVar15);\n          if (puVar13 != param_1) {\n            url_free(puVar13);\n          }\n          (*(code *)PTR_free_000afd08)(puVar5);\n          (*(code *)PTR_free_000afd08)(local_38);\n          local_38 = (undefined *)0x0;\n          (*(code *)PTR_free_000afd08)(uVar15);\n          if (bVar3) {\n            *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n            *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n            *(undefined4 *)(puVar19 + 500) = local_60;\n          }\n          goto LAB_0004d368;\n        }\n        local_84 = local_84 + 1;\n        (*(code *)PTR_free_000afd08)(local_38);\n        local_38 = (undefined *)0x0;\n        local_38 = (undefined *)xstrdup(*puVar14);\n        if (*(int *)(puVar19 + 0x18) < local_84) {\n          puVar18 = (undefined *)\n                    (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x77d0,5);\n          logprintf(1,puVar18,*(undefined4 *)(puVar19 + 0x18));\n          url_free(puVar14);\n          if (puVar13 != param_1) {\n            url_free(puVar13);\n          }\n          (*(code *)PTR_free_000afd08)(puVar5);\n          (*(code *)PTR_free_000afd08)(local_38);\n          local_38 = (undefined *)0x0;\n          if (bVar3) {\n            iVar9 = 0x1b;\n            *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n            *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n            *(undefined4 *)(puVar19 + 500) = local_60;\n          }\n          else {\n            iVar9 = 0x1b;\n          }\n          goto LAB_0004d368;\n        }\n        (*(code *)PTR_free_000afd08)(puVar5);\n        puVar5 = local_38;\n        if (puVar13 != param_1) {\n          url_free(puVar13);\n        }\n        puVar13 = puVar14;\n        if ((iVar9 != 0x30) && (!bVar3)) {\n          local_64 = *(undefined4 *)(puVar19 + 0x1f8);\n          *(undefined4 *)(puVar19 + 0x1f8) = 0;\n          local_5c = *(undefined4 *)(puVar19 + 0x1fc);\n          *(undefined4 *)(puVar19 + 0x1fc) = 0;\n          bVar3 = true;\n          local_60 = *(undefined4 *)(puVar19 + 500);\n          *(undefined4 *)(puVar19 + 500) = 0;\n        }\n        goto LAB_0004ce08;\n      }\n    }\n    else {\n      if (puVar13[1] - 2 < 2) {\n        iVar11 = 0;\nLAB_0004d1d0:\n        if (local_84 == 0) {\n          iVar9 = (*(code *)PTR_ftp_loop_000af968)\n                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,\n                             PTR_opt_000af488[0xe1]);\n        }\n        else {\n          iVar9 = (*(code *)PTR_ftp_loop_000af968)\n                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,0);\n          if ((local_30 == (undefined *)0x0) || (1 < puVar13[1] - 2)) {\n            local_68 = 0;\n          }\n          else {\n            local_68 = has_html_suffix_p();\n            if (local_68 != 0) {\n              local_68 = 0;\n              *param_6 = *param_6 | 1;\n            }\n          }\n        }\n        goto LAB_0004d01c;\n      }\nLAB_0004cef8:\n      iVar9 = 0;\n    }\n    (*(code *)PTR_free_000afd08)(local_38);\n    uVar12 = *param_6 & 2;\n    local_38 = (undefined *)0x0;\n    if ((uVar12 != 0) || (cVar1 = *(char *)(param_8 + 0xc), cVar1 == '\0')) {\n      puVar18 = local_30;\n      if ((local_30 == (undefined *)0x0) ||\n         (puVar19 = PTR_opt_000af488, puVar13 == (undefined4 *)0x0)) goto LAB_0004d2f8;\n      goto LAB_0004d2e0;\n    }\n    *(undefined1 *)(param_8 + 0xc) = 0;\n    if (puVar13 != param_1) {\n      url_free(puVar13);\n    }\n    puVar18 = (undefined *)0x0;\n    puVar13 = (undefined4 *)url_parse(param_2,0,param_8,1);\n    puVar19 = PTR_opt_000af488;\n    if (puVar13 == (undefined4 *)0x0) {\n      if (PTR_opt_000af488[0x16b] != '\0') {\n        puVar18 = (undefined *)quote(puVar5);\n        debug_logprintf(PTR_s_hallenge__000af46c + 0x783c);\n      }\n      goto LAB_0004d2f8;\n    }\n    iVar10 = (*(code *)PTR_strcmp_000afacc)(*puVar13,*param_1);\n    cVar2 = puVar19[0x16b];\n    if (iVar10 == 0) break;\n    if (cVar2 != '\0') {\n      uVar15 = quote(puVar5);\n      debug_logprintf(puVar7,uVar15);\n    }\n    (*(code *)PTR_free_000afd08)(puVar5);\n    puVar5 = (undefined *)xstrdup(*puVar13);\n    cVar4 = cVar1;\n  } while( true );" do (compound_statement "{\n    local_38 = (undefined *)0x0;\n    (*(code *)PTR_free_000afd08)(local_30);\n    local_30 = (undefined *)0x0;\n    iVar9 = (*pcVar6)(puVar13 + 1,puVar13 + 2);\n    puVar19 = PTR_opt_000af488;\n    if (iVar9 != 0) {\n      iVar10 = iri_new();\n      set_uri_encoding(iVar10,*(undefined4 *)(puVar19 + 0x21c),1);\n      *(undefined1 *)(iVar10 + 0xc) = 0;\n      iVar11 = url_parse(iVar9,&local_34,iVar10,1);\n      if (iVar11 == 0) {\n        puVar20 = (undefined *)url_error(iVar9,local_34);\n        puVar18 = (undefined *)\n                  (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7754,5);\n        logprintf(1,puVar18,iVar9,puVar20);\n        (*(code *)PTR_free_000afd08)(puVar5);\n      }\n      else {\n        if ((*(int *)(iVar11 + 4) == 0) || (*(int *)(iVar11 + 4) == puVar13[1])) {\n          iri_free(iVar10);\n          (*(code *)PTR_free_000afd08)(iVar9);\n          if ((1 < (uint)puVar13[1]) && (*(int *)(iVar11 + 4) != 0)) {\n            if (puVar13[1] - 2 < 2) goto LAB_0004d1d0;\n            url_free(iVar11);\n            goto LAB_0004cef8;\n          }\n          goto LAB_0004cfbc;\n        }\n        puVar18 = (undefined *)\n                  (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7778,5);\n        logprintf(1,puVar18,iVar9);\n        url_free(iVar11);\n        puVar20 = puVar5;\n      }\n      (*(code *)PTR_free_000afd08)(puVar20);\n      (*(code *)PTR_free_000afd08)(iVar9);\n      iri_free(iVar10);\n      if (bVar3) {\n        iVar9 = 0x29;\n        *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n        *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n        *(undefined4 *)(puVar19 + 500) = local_60;\n      }\n      else {\n        iVar9 = 0x29;\n      }\n      goto LAB_0004d368;\n    }\n    if ((uint)puVar13[1] < 2) {\n      iVar11 = 0;\nLAB_0004cfbc:\n      if (((puVar19[0x22c] != '\0') && (*(int *)PTR_hsts_store_000af570 != 0)) &&\n         (iVar9 = hsts_match(*(int *)PTR_hsts_store_000af570,puVar13), iVar9 != 0)) {\n        logprintf(0,puVar20 + 0x77a0);\n      }\n      iVar9 = http_loop(puVar13,param_1,&local_38,&local_30,local_7c,param_6,iVar11,param_8);\nLAB_0004d01c:\n      if (iVar11 != 0) {\n        url_free(iVar11);\n      }\n      puVar19 = PTR_opt_000af488;\n      if ((iVar9 == 6) || (iVar9 == 0x30)) {\n        (*(code *)PTR_free_000afd08)(local_30);\n        local_30 = (undefined *)0x0;\n        puVar18 = local_38;\n        if (local_38 == (undefined *)0x0) {\n          puVar18 = puVar8;\n        }\n        puVar18 = (undefined *)uri_merge(puVar5,puVar18);\n        (*(code *)PTR_free_000afd08)(local_38);\n        iVar10 = *(int *)(puVar19 + 0x218);\n        *(undefined *)(param_8 + 0xc) = puVar19[0x216];\n        local_38 = puVar18;\n        if (iVar10 != 0) {\n          set_uri_encoding(param_8,iVar10,1);\n        }\n        set_content_encoding(param_8,0);\n        (*(code *)PTR_free_000afd08)(*(undefined4 *)(param_8 + 8));\n        *(undefined4 *)(param_8 + 8) = 0;\n        puVar14 = (undefined4 *)url_parse(local_38,&local_34,param_8,1);\n        if (puVar14 == (undefined4 *)0x0) {\n          uVar15 = url_error(local_38,local_34);\n          uVar16 = escnonprint_uri(local_38);\n          puVar18 = PTR_s_hallenge__000af46c + 0x776c;\n          logprintf(1,puVar18,uVar16,uVar15);\n          if (puVar13 != param_1) {\n            url_free(puVar13);\n          }\n          (*(code *)PTR_free_000afd08)(puVar5);\n          (*(code *)PTR_free_000afd08)(local_38);\n          local_38 = (undefined *)0x0;\n          (*(code *)PTR_free_000afd08)(uVar15);\n          if (bVar3) {\n            *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n            *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n            *(undefined4 *)(puVar19 + 500) = local_60;\n          }\n          goto LAB_0004d368;\n        }\n        local_84 = local_84 + 1;\n        (*(code *)PTR_free_000afd08)(local_38);\n        local_38 = (undefined *)0x0;\n        local_38 = (undefined *)xstrdup(*puVar14);\n        if (*(int *)(puVar19 + 0x18) < local_84) {\n          puVar18 = (undefined *)\n                    (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x77d0,5);\n          logprintf(1,puVar18,*(undefined4 *)(puVar19 + 0x18));\n          url_free(puVar14);\n          if (puVar13 != param_1) {\n            url_free(puVar13);\n          }\n          (*(code *)PTR_free_000afd08)(puVar5);\n          (*(code *)PTR_free_000afd08)(local_38);\n          local_38 = (undefined *)0x0;\n          if (bVar3) {\n            iVar9 = 0x1b;\n            *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n            *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n            *(undefined4 *)(puVar19 + 500) = local_60;\n          }\n          else {\n            iVar9 = 0x1b;\n          }\n          goto LAB_0004d368;\n        }\n        (*(code *)PTR_free_000afd08)(puVar5);\n        puVar5 = local_38;\n        if (puVar13 != param_1) {\n          url_free(puVar13);\n        }\n        puVar13 = puVar14;\n        if ((iVar9 != 0x30) && (!bVar3)) {\n          local_64 = *(undefined4 *)(puVar19 + 0x1f8);\n          *(undefined4 *)(puVar19 + 0x1f8) = 0;\n          local_5c = *(undefined4 *)(puVar19 + 0x1fc);\n          *(undefined4 *)(puVar19 + 0x1fc) = 0;\n          bVar3 = true;\n          local_60 = *(undefined4 *)(puVar19 + 500);\n          *(undefined4 *)(puVar19 + 500) = 0;\n        }\n        goto LAB_0004ce08;\n      }\n    }\n    else {\n      if (puVar13[1] - 2 < 2) {\n        iVar11 = 0;\nLAB_0004d1d0:\n        if (local_84 == 0) {\n          iVar9 = (*(code *)PTR_ftp_loop_000af968)\n                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,\n                             PTR_opt_000af488[0xe1]);\n        }\n        else {\n          iVar9 = (*(code *)PTR_ftp_loop_000af968)\n                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,0);\n          if ((local_30 == (undefined *)0x0) || (1 < puVar13[1] - 2)) {\n            local_68 = 0;\n          }\n          else {\n            local_68 = has_html_suffix_p();\n            if (local_68 != 0) {\n              local_68 = 0;\n              *param_6 = *param_6 | 1;\n            }\n          }\n        }\n        goto LAB_0004d01c;\n      }\nLAB_0004cef8:\n      iVar9 = 0;\n    }\n    (*(code *)PTR_free_000afd08)(local_38);\n    uVar12 = *param_6 & 2;\n    local_38 = (undefined *)0x0;\n    if ((uVar12 != 0) || (cVar1 = *(char *)(param_8 + 0xc), cVar1 == '\0')) {\n      puVar18 = local_30;\n      if ((local_30 == (undefined *)0x0) ||\n         (puVar19 = PTR_opt_000af488, puVar13 == (undefined4 *)0x0)) goto LAB_0004d2f8;\n      goto LAB_0004d2e0;\n    }\n    *(undefined1 *)(param_8 + 0xc) = 0;\n    if (puVar13 != param_1) {\n      url_free(puVar13);\n    }\n    puVar18 = (undefined *)0x0;\n    puVar13 = (undefined4 *)url_parse(param_2,0,param_8,1);\n    puVar19 = PTR_opt_000af488;\n    if (puVar13 == (undefined4 *)0x0) {\n      if (PTR_opt_000af488[0x16b] != '\0') {\n        puVar18 = (undefined *)quote(puVar5);\n        debug_logprintf(PTR_s_hallenge__000af46c + 0x783c);\n      }\n      goto LAB_0004d2f8;\n    }\n    iVar10 = (*(code *)PTR_strcmp_000afacc)(*puVar13,*param_1);\n    cVar2 = puVar19[0x16b];\n    if (iVar10 == 0) break;\n    if (cVar2 != '\0') {\n      uVar15 = quote(puVar5);\n      debug_logprintf(puVar7,uVar15);\n    }\n    (*(code *)PTR_free_000afd08)(puVar5);\n    puVar5 = (undefined *)xstrdup(*puVar13);\n    cVar4 = cVar1;\n  }" { (expression_statement "local_38 = (undefined *)0x0;" (assignment_expression "local_38 = (undefined *)0x0" identifier = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(*(code *)PTR_free_000afd08)(local_30);" (call_expression "(*(code *)PTR_free_000afd08)(local_30)" (parenthesized_expression "(*(code *)PTR_free_000afd08)" ( (pointer_expression "*(code *)PTR_free_000afd08" * (cast_expression "(code *)PTR_free_000afd08" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_30)" ( identifier ))) ;) (expression_statement "local_30 = (undefined *)0x0;" (assignment_expression "local_30 = (undefined *)0x0" identifier = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar9 = (*pcVar6)(puVar13 + 1,puVar13 + 2);" (assignment_expression "iVar9 = (*pcVar6)(puVar13 + 1,puVar13 + 2)" identifier = (call_expression "(*pcVar6)(puVar13 + 1,puVar13 + 2)" (parenthesized_expression "(*pcVar6)" ( (pointer_expression "*pcVar6" * identifier) )) (argument_list "(puVar13 + 1,puVar13 + 2)" ( (binary_expression "puVar13 + 1" identifier + number_literal) , (binary_expression "puVar13 + 2" identifier + number_literal) )))) ;) (expression_statement "puVar19 = PTR_opt_000af488;" (assignment_expression "puVar19 = PTR_opt_000af488" identifier = identifier) ;) (if_statement "if (iVar9 != 0) {\n      iVar10 = iri_new();\n      set_uri_encoding(iVar10,*(undefined4 *)(puVar19 + 0x21c),1);\n      *(undefined1 *)(iVar10 + 0xc) = 0;\n      iVar11 = url_parse(iVar9,&local_34,iVar10,1);\n      if (iVar11 == 0) {\n        puVar20 = (undefined *)url_error(iVar9,local_34);\n        puVar18 = (undefined *)\n                  (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7754,5);\n        logprintf(1,puVar18,iVar9,puVar20);\n        (*(code *)PTR_free_000afd08)(puVar5);\n      }\n      else {\n        if ((*(int *)(iVar11 + 4) == 0) || (*(int *)(iVar11 + 4) == puVar13[1])) {\n          iri_free(iVar10);\n          (*(code *)PTR_free_000afd08)(iVar9);\n          if ((1 < (uint)puVar13[1]) && (*(int *)(iVar11 + 4) != 0)) {\n            if (puVar13[1] - 2 < 2) goto LAB_0004d1d0;\n            url_free(iVar11);\n            goto LAB_0004cef8;\n          }\n          goto LAB_0004cfbc;\n        }\n        puVar18 = (undefined *)\n                  (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7778,5);\n        logprintf(1,puVar18,iVar9);\n        url_free(iVar11);\n        puVar20 = puVar5;\n      }\n      (*(code *)PTR_free_000afd08)(puVar20);\n      (*(code *)PTR_free_000afd08)(iVar9);\n      iri_free(iVar10);\n      if (bVar3) {\n        iVar9 = 0x29;\n        *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n        *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n        *(undefined4 *)(puVar19 + 500) = local_60;\n      }\n      else {\n        iVar9 = 0x29;\n      }\n      goto LAB_0004d368;\n    }" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar10 = iri_new();\n      set_uri_encoding(iVar10,*(undefined4 *)(puVar19 + 0x21c),1);\n      *(undefined1 *)(iVar10 + 0xc) = 0;\n      iVar11 = url_parse(iVar9,&local_34,iVar10,1);\n      if (iVar11 == 0) {\n        puVar20 = (undefined *)url_error(iVar9,local_34);\n        puVar18 = (undefined *)\n                  (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7754,5);\n        logprintf(1,puVar18,iVar9,puVar20);\n        (*(code *)PTR_free_000afd08)(puVar5);\n      }\n      else {\n        if ((*(int *)(iVar11 + 4) == 0) || (*(int *)(iVar11 + 4) == puVar13[1])) {\n          iri_free(iVar10);\n          (*(code *)PTR_free_000afd08)(iVar9);\n          if ((1 < (uint)puVar13[1]) && (*(int *)(iVar11 + 4) != 0)) {\n            if (puVar13[1] - 2 < 2) goto LAB_0004d1d0;\n            url_free(iVar11);\n            goto LAB_0004cef8;\n          }\n          goto LAB_0004cfbc;\n        }\n        puVar18 = (undefined *)\n                  (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7778,5);\n        logprintf(1,puVar18,iVar9);\n        url_free(iVar11);\n        puVar20 = puVar5;\n      }\n      (*(code *)PTR_free_000afd08)(puVar20);\n      (*(code *)PTR_free_000afd08)(iVar9);\n      iri_free(iVar10);\n      if (bVar3) {\n        iVar9 = 0x29;\n        *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n        *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n        *(undefined4 *)(puVar19 + 500) = local_60;\n      }\n      else {\n        iVar9 = 0x29;\n      }\n      goto LAB_0004d368;\n    }" { (expression_statement "iVar10 = iri_new();" (assignment_expression "iVar10 = iri_new()" identifier = (call_expression "iri_new()" identifier (argument_list "()" ( )))) ;) (expression_statement "set_uri_encoding(iVar10,*(undefined4 *)(puVar19 + 0x21c),1);" (call_expression "set_uri_encoding(iVar10,*(undefined4 *)(puVar19 + 0x21c),1)" identifier (argument_list "(iVar10,*(undefined4 *)(puVar19 + 0x21c),1)" ( identifier , (pointer_expression "*(undefined4 *)(puVar19 + 0x21c)" * (cast_expression "(undefined4 *)(puVar19 + 0x21c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + 0x21c)" ( (binary_expression "puVar19 + 0x21c" identifier + number_literal) )))) , number_literal ))) ;) (expression_statement "*(undefined1 *)(iVar10 + 0xc) = 0;" (assignment_expression "*(undefined1 *)(iVar10 + 0xc) = 0" (pointer_expression "*(undefined1 *)(iVar10 + 0xc)" * (cast_expression "(undefined1 *)(iVar10 + 0xc)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0xc)" ( (binary_expression "iVar10 + 0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar11 = url_parse(iVar9,&local_34,iVar10,1);" (assignment_expression "iVar11 = url_parse(iVar9,&local_34,iVar10,1)" identifier = (call_expression "url_parse(iVar9,&local_34,iVar10,1)" identifier (argument_list "(iVar9,&local_34,iVar10,1)" ( identifier , (pointer_expression "&local_34" & identifier) , identifier , number_literal )))) ;) (if_statement "if (iVar11 == 0) {\n        puVar20 = (undefined *)url_error(iVar9,local_34);\n        puVar18 = (undefined *)\n                  (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7754,5);\n        logprintf(1,puVar18,iVar9,puVar20);\n        (*(code *)PTR_free_000afd08)(puVar5);\n      }\n      else {\n        if ((*(int *)(iVar11 + 4) == 0) || (*(int *)(iVar11 + 4) == puVar13[1])) {\n          iri_free(iVar10);\n          (*(code *)PTR_free_000afd08)(iVar9);\n          if ((1 < (uint)puVar13[1]) && (*(int *)(iVar11 + 4) != 0)) {\n            if (puVar13[1] - 2 < 2) goto LAB_0004d1d0;\n            url_free(iVar11);\n            goto LAB_0004cef8;\n          }\n          goto LAB_0004cfbc;\n        }\n        puVar18 = (undefined *)\n                  (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7778,5);\n        logprintf(1,puVar18,iVar9);\n        url_free(iVar11);\n        puVar20 = puVar5;\n      }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n        puVar20 = (undefined *)url_error(iVar9,local_34);\n        puVar18 = (undefined *)\n                  (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7754,5);\n        logprintf(1,puVar18,iVar9,puVar20);\n        (*(code *)PTR_free_000afd08)(puVar5);\n      }" { (expression_statement "puVar20 = (undefined *)url_error(iVar9,local_34);" (assignment_expression "puVar20 = (undefined *)url_error(iVar9,local_34)" identifier = (cast_expression "(undefined *)url_error(iVar9,local_34)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "url_error(iVar9,local_34)" identifier (argument_list "(iVar9,local_34)" ( identifier , identifier ))))) ;) (expression_statement "puVar18 = (undefined *)\n                  (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7754,5);" (assignment_expression "puVar18 = (undefined *)\n                  (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7754,5)" identifier = (cast_expression "(undefined *)\n                  (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7754,5)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7754,5)" (parenthesized_expression "(*(code *)PTR_dcgettext_000afcf4)" ( (pointer_expression "*(code *)PTR_dcgettext_000afcf4" * (cast_expression "(code *)PTR_dcgettext_000afcf4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,PTR_s_hallenge__000af46c + 0x7754,5)" ( number_literal , (binary_expression "PTR_s_hallenge__000af46c + 0x7754" identifier + number_literal) , number_literal ))))) ;) (expression_statement "logprintf(1,puVar18,iVar9,puVar20);" (call_expression "logprintf(1,puVar18,iVar9,puVar20)" identifier (argument_list "(1,puVar18,iVar9,puVar20)" ( number_literal , identifier , identifier , identifier ))) ;) (expression_statement "(*(code *)PTR_free_000afd08)(puVar5);" (call_expression "(*(code *)PTR_free_000afd08)(puVar5)" (parenthesized_expression "(*(code *)PTR_free_000afd08)" ( (pointer_expression "*(code *)PTR_free_000afd08" * (cast_expression "(code *)PTR_free_000afd08" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar5)" ( identifier ))) ;) }) (else_clause "else {\n        if ((*(int *)(iVar11 + 4) == 0) || (*(int *)(iVar11 + 4) == puVar13[1])) {\n          iri_free(iVar10);\n          (*(code *)PTR_free_000afd08)(iVar9);\n          if ((1 < (uint)puVar13[1]) && (*(int *)(iVar11 + 4) != 0)) {\n            if (puVar13[1] - 2 < 2) goto LAB_0004d1d0;\n            url_free(iVar11);\n            goto LAB_0004cef8;\n          }\n          goto LAB_0004cfbc;\n        }\n        puVar18 = (undefined *)\n                  (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7778,5);\n        logprintf(1,puVar18,iVar9);\n        url_free(iVar11);\n        puVar20 = puVar5;\n      }" else (compound_statement "{\n        if ((*(int *)(iVar11 + 4) == 0) || (*(int *)(iVar11 + 4) == puVar13[1])) {\n          iri_free(iVar10);\n          (*(code *)PTR_free_000afd08)(iVar9);\n          if ((1 < (uint)puVar13[1]) && (*(int *)(iVar11 + 4) != 0)) {\n            if (puVar13[1] - 2 < 2) goto LAB_0004d1d0;\n            url_free(iVar11);\n            goto LAB_0004cef8;\n          }\n          goto LAB_0004cfbc;\n        }\n        puVar18 = (undefined *)\n                  (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7778,5);\n        logprintf(1,puVar18,iVar9);\n        url_free(iVar11);\n        puVar20 = puVar5;\n      }" { (if_statement "if ((*(int *)(iVar11 + 4) == 0) || (*(int *)(iVar11 + 4) == puVar13[1])) {\n          iri_free(iVar10);\n          (*(code *)PTR_free_000afd08)(iVar9);\n          if ((1 < (uint)puVar13[1]) && (*(int *)(iVar11 + 4) != 0)) {\n            if (puVar13[1] - 2 < 2) goto LAB_0004d1d0;\n            url_free(iVar11);\n            goto LAB_0004cef8;\n          }\n          goto LAB_0004cfbc;\n        }" if (parenthesized_expression "((*(int *)(iVar11 + 4) == 0) || (*(int *)(iVar11 + 4) == puVar13[1]))" ( (binary_expression "(*(int *)(iVar11 + 4) == 0) || (*(int *)(iVar11 + 4) == puVar13[1])" (parenthesized_expression "(*(int *)(iVar11 + 4) == 0)" ( (binary_expression "*(int *)(iVar11 + 4) == 0" (pointer_expression "*(int *)(iVar11 + 4)" * (cast_expression "(int *)(iVar11 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 4)" ( (binary_expression "iVar11 + 4" identifier + number_literal) )))) == number_literal) )) || (parenthesized_expression "(*(int *)(iVar11 + 4) == puVar13[1])" ( (binary_expression "*(int *)(iVar11 + 4) == puVar13[1]" (pointer_expression "*(int *)(iVar11 + 4)" * (cast_expression "(int *)(iVar11 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 4)" ( (binary_expression "iVar11 + 4" identifier + number_literal) )))) == (subscript_expression "puVar13[1]" identifier [ number_literal ])) ))) )) (compound_statement "{\n          iri_free(iVar10);\n          (*(code *)PTR_free_000afd08)(iVar9);\n          if ((1 < (uint)puVar13[1]) && (*(int *)(iVar11 + 4) != 0)) {\n            if (puVar13[1] - 2 < 2) goto LAB_0004d1d0;\n            url_free(iVar11);\n            goto LAB_0004cef8;\n          }\n          goto LAB_0004cfbc;\n        }" { (expression_statement "iri_free(iVar10);" (call_expression "iri_free(iVar10)" identifier (argument_list "(iVar10)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_free_000afd08)(iVar9);" (call_expression "(*(code *)PTR_free_000afd08)(iVar9)" (parenthesized_expression "(*(code *)PTR_free_000afd08)" ( (pointer_expression "*(code *)PTR_free_000afd08" * (cast_expression "(code *)PTR_free_000afd08" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar9)" ( identifier ))) ;) (if_statement "if ((1 < (uint)puVar13[1]) && (*(int *)(iVar11 + 4) != 0)) {\n            if (puVar13[1] - 2 < 2) goto LAB_0004d1d0;\n            url_free(iVar11);\n            goto LAB_0004cef8;\n          }" if (parenthesized_expression "((1 < (uint)puVar13[1]) && (*(int *)(iVar11 + 4) != 0))" ( (binary_expression "(1 < (uint)puVar13[1]) && (*(int *)(iVar11 + 4) != 0)" (parenthesized_expression "(1 < (uint)puVar13[1])" ( (binary_expression "1 < (uint)puVar13[1]" number_literal < (cast_expression "(uint)puVar13[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar13[1]" identifier [ number_literal ]))) )) && (parenthesized_expression "(*(int *)(iVar11 + 4) != 0)" ( (binary_expression "*(int *)(iVar11 + 4) != 0" (pointer_expression "*(int *)(iVar11 + 4)" * (cast_expression "(int *)(iVar11 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 4)" ( (binary_expression "iVar11 + 4" identifier + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n            if (puVar13[1] - 2 < 2) goto LAB_0004d1d0;\n            url_free(iVar11);\n            goto LAB_0004cef8;\n          }" { (if_statement "if (puVar13[1] - 2 < 2) goto LAB_0004d1d0;" if (parenthesized_expression "(puVar13[1] - 2 < 2)" ( (binary_expression "puVar13[1] - 2 < 2" (binary_expression "puVar13[1] - 2" (subscript_expression "puVar13[1]" identifier [ number_literal ]) - number_literal) < number_literal) )) (goto_statement "goto LAB_0004d1d0;" goto statement_identifier ;)) (expression_statement "url_free(iVar11);" (call_expression "url_free(iVar11)" identifier (argument_list "(iVar11)" ( identifier ))) ;) (goto_statement "goto LAB_0004cef8;" goto statement_identifier ;) })) (goto_statement "goto LAB_0004cfbc;" goto statement_identifier ;) })) (expression_statement "puVar18 = (undefined *)\n                  (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7778,5);" (assignment_expression "puVar18 = (undefined *)\n                  (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7778,5)" identifier = (cast_expression "(undefined *)\n                  (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7778,5)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7778,5)" (parenthesized_expression "(*(code *)PTR_dcgettext_000afcf4)" ( (pointer_expression "*(code *)PTR_dcgettext_000afcf4" * (cast_expression "(code *)PTR_dcgettext_000afcf4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,PTR_s_hallenge__000af46c + 0x7778,5)" ( number_literal , (binary_expression "PTR_s_hallenge__000af46c + 0x7778" identifier + number_literal) , number_literal ))))) ;) (expression_statement "logprintf(1,puVar18,iVar9);" (call_expression "logprintf(1,puVar18,iVar9)" identifier (argument_list "(1,puVar18,iVar9)" ( number_literal , identifier , identifier ))) ;) (expression_statement "url_free(iVar11);" (call_expression "url_free(iVar11)" identifier (argument_list "(iVar11)" ( identifier ))) ;) (expression_statement "puVar20 = puVar5;" (assignment_expression "puVar20 = puVar5" identifier = identifier) ;) }))) (expression_statement "(*(code *)PTR_free_000afd08)(puVar20);" (call_expression "(*(code *)PTR_free_000afd08)(puVar20)" (parenthesized_expression "(*(code *)PTR_free_000afd08)" ( (pointer_expression "*(code *)PTR_free_000afd08" * (cast_expression "(code *)PTR_free_000afd08" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar20)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_free_000afd08)(iVar9);" (call_expression "(*(code *)PTR_free_000afd08)(iVar9)" (parenthesized_expression "(*(code *)PTR_free_000afd08)" ( (pointer_expression "*(code *)PTR_free_000afd08" * (cast_expression "(code *)PTR_free_000afd08" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar9)" ( identifier ))) ;) (expression_statement "iri_free(iVar10);" (call_expression "iri_free(iVar10)" identifier (argument_list "(iVar10)" ( identifier ))) ;) (if_statement "if (bVar3) {\n        iVar9 = 0x29;\n        *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n        *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n        *(undefined4 *)(puVar19 + 500) = local_60;\n      }\n      else {\n        iVar9 = 0x29;\n      }" if (parenthesized_expression "(bVar3)" ( identifier )) (compound_statement "{\n        iVar9 = 0x29;\n        *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n        *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n        *(undefined4 *)(puVar19 + 500) = local_60;\n      }" { (expression_statement "iVar9 = 0x29;" (assignment_expression "iVar9 = 0x29" identifier = number_literal) ;) (expression_statement "*(undefined4 *)(puVar19 + 0x1f8) = local_64;" (assignment_expression "*(undefined4 *)(puVar19 + 0x1f8) = local_64" (pointer_expression "*(undefined4 *)(puVar19 + 0x1f8)" * (cast_expression "(undefined4 *)(puVar19 + 0x1f8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + 0x1f8)" ( (binary_expression "puVar19 + 0x1f8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar19 + 0x1fc) = local_5c;" (assignment_expression "*(undefined4 *)(puVar19 + 0x1fc) = local_5c" (pointer_expression "*(undefined4 *)(puVar19 + 0x1fc)" * (cast_expression "(undefined4 *)(puVar19 + 0x1fc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + 0x1fc)" ( (binary_expression "puVar19 + 0x1fc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar19 + 500) = local_60;" (assignment_expression "*(undefined4 *)(puVar19 + 500) = local_60" (pointer_expression "*(undefined4 *)(puVar19 + 500)" * (cast_expression "(undefined4 *)(puVar19 + 500)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + 500)" ( (binary_expression "puVar19 + 500" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n        iVar9 = 0x29;\n      }" else (compound_statement "{\n        iVar9 = 0x29;\n      }" { (expression_statement "iVar9 = 0x29;" (assignment_expression "iVar9 = 0x29" identifier = number_literal) ;) }))) (goto_statement "goto LAB_0004d368;" goto statement_identifier ;) })) (if_statement "if ((uint)puVar13[1] < 2) {\n      iVar11 = 0;\nLAB_0004cfbc:\n      if (((puVar19[0x22c] != '\0') && (*(int *)PTR_hsts_store_000af570 != 0)) &&\n         (iVar9 = hsts_match(*(int *)PTR_hsts_store_000af570,puVar13), iVar9 != 0)) {\n        logprintf(0,puVar20 + 0x77a0);\n      }\n      iVar9 = http_loop(puVar13,param_1,&local_38,&local_30,local_7c,param_6,iVar11,param_8);\nLAB_0004d01c:\n      if (iVar11 != 0) {\n        url_free(iVar11);\n      }\n      puVar19 = PTR_opt_000af488;\n      if ((iVar9 == 6) || (iVar9 == 0x30)) {\n        (*(code *)PTR_free_000afd08)(local_30);\n        local_30 = (undefined *)0x0;\n        puVar18 = local_38;\n        if (local_38 == (undefined *)0x0) {\n          puVar18 = puVar8;\n        }\n        puVar18 = (undefined *)uri_merge(puVar5,puVar18);\n        (*(code *)PTR_free_000afd08)(local_38);\n        iVar10 = *(int *)(puVar19 + 0x218);\n        *(undefined *)(param_8 + 0xc) = puVar19[0x216];\n        local_38 = puVar18;\n        if (iVar10 != 0) {\n          set_uri_encoding(param_8,iVar10,1);\n        }\n        set_content_encoding(param_8,0);\n        (*(code *)PTR_free_000afd08)(*(undefined4 *)(param_8 + 8));\n        *(undefined4 *)(param_8 + 8) = 0;\n        puVar14 = (undefined4 *)url_parse(local_38,&local_34,param_8,1);\n        if (puVar14 == (undefined4 *)0x0) {\n          uVar15 = url_error(local_38,local_34);\n          uVar16 = escnonprint_uri(local_38);\n          puVar18 = PTR_s_hallenge__000af46c + 0x776c;\n          logprintf(1,puVar18,uVar16,uVar15);\n          if (puVar13 != param_1) {\n            url_free(puVar13);\n          }\n          (*(code *)PTR_free_000afd08)(puVar5);\n          (*(code *)PTR_free_000afd08)(local_38);\n          local_38 = (undefined *)0x0;\n          (*(code *)PTR_free_000afd08)(uVar15);\n          if (bVar3) {\n            *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n            *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n            *(undefined4 *)(puVar19 + 500) = local_60;\n          }\n          goto LAB_0004d368;\n        }\n        local_84 = local_84 + 1;\n        (*(code *)PTR_free_000afd08)(local_38);\n        local_38 = (undefined *)0x0;\n        local_38 = (undefined *)xstrdup(*puVar14);\n        if (*(int *)(puVar19 + 0x18) < local_84) {\n          puVar18 = (undefined *)\n                    (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x77d0,5);\n          logprintf(1,puVar18,*(undefined4 *)(puVar19 + 0x18));\n          url_free(puVar14);\n          if (puVar13 != param_1) {\n            url_free(puVar13);\n          }\n          (*(code *)PTR_free_000afd08)(puVar5);\n          (*(code *)PTR_free_000afd08)(local_38);\n          local_38 = (undefined *)0x0;\n          if (bVar3) {\n            iVar9 = 0x1b;\n            *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n            *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n            *(undefined4 *)(puVar19 + 500) = local_60;\n          }\n          else {\n            iVar9 = 0x1b;\n          }\n          goto LAB_0004d368;\n        }\n        (*(code *)PTR_free_000afd08)(puVar5);\n        puVar5 = local_38;\n        if (puVar13 != param_1) {\n          url_free(puVar13);\n        }\n        puVar13 = puVar14;\n        if ((iVar9 != 0x30) && (!bVar3)) {\n          local_64 = *(undefined4 *)(puVar19 + 0x1f8);\n          *(undefined4 *)(puVar19 + 0x1f8) = 0;\n          local_5c = *(undefined4 *)(puVar19 + 0x1fc);\n          *(undefined4 *)(puVar19 + 0x1fc) = 0;\n          bVar3 = true;\n          local_60 = *(undefined4 *)(puVar19 + 500);\n          *(undefined4 *)(puVar19 + 500) = 0;\n        }\n        goto LAB_0004ce08;\n      }\n    }\n    else {\n      if (puVar13[1] - 2 < 2) {\n        iVar11 = 0;\nLAB_0004d1d0:\n        if (local_84 == 0) {\n          iVar9 = (*(code *)PTR_ftp_loop_000af968)\n                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,\n                             PTR_opt_000af488[0xe1]);\n        }\n        else {\n          iVar9 = (*(code *)PTR_ftp_loop_000af968)\n                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,0);\n          if ((local_30 == (undefined *)0x0) || (1 < puVar13[1] - 2)) {\n            local_68 = 0;\n          }\n          else {\n            local_68 = has_html_suffix_p();\n            if (local_68 != 0) {\n              local_68 = 0;\n              *param_6 = *param_6 | 1;\n            }\n          }\n        }\n        goto LAB_0004d01c;\n      }\nLAB_0004cef8:\n      iVar9 = 0;\n    }" if (parenthesized_expression "((uint)puVar13[1] < 2)" ( (binary_expression "(uint)puVar13[1] < 2" (cast_expression "(uint)puVar13[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar13[1]" identifier [ number_literal ])) < number_literal) )) (compound_statement "{\n      iVar11 = 0;\nLAB_0004cfbc:\n      if (((puVar19[0x22c] != '\0') && (*(int *)PTR_hsts_store_000af570 != 0)) &&\n         (iVar9 = hsts_match(*(int *)PTR_hsts_store_000af570,puVar13), iVar9 != 0)) {\n        logprintf(0,puVar20 + 0x77a0);\n      }\n      iVar9 = http_loop(puVar13,param_1,&local_38,&local_30,local_7c,param_6,iVar11,param_8);\nLAB_0004d01c:\n      if (iVar11 != 0) {\n        url_free(iVar11);\n      }\n      puVar19 = PTR_opt_000af488;\n      if ((iVar9 == 6) || (iVar9 == 0x30)) {\n        (*(code *)PTR_free_000afd08)(local_30);\n        local_30 = (undefined *)0x0;\n        puVar18 = local_38;\n        if (local_38 == (undefined *)0x0) {\n          puVar18 = puVar8;\n        }\n        puVar18 = (undefined *)uri_merge(puVar5,puVar18);\n        (*(code *)PTR_free_000afd08)(local_38);\n        iVar10 = *(int *)(puVar19 + 0x218);\n        *(undefined *)(param_8 + 0xc) = puVar19[0x216];\n        local_38 = puVar18;\n        if (iVar10 != 0) {\n          set_uri_encoding(param_8,iVar10,1);\n        }\n        set_content_encoding(param_8,0);\n        (*(code *)PTR_free_000afd08)(*(undefined4 *)(param_8 + 8));\n        *(undefined4 *)(param_8 + 8) = 0;\n        puVar14 = (undefined4 *)url_parse(local_38,&local_34,param_8,1);\n        if (puVar14 == (undefined4 *)0x0) {\n          uVar15 = url_error(local_38,local_34);\n          uVar16 = escnonprint_uri(local_38);\n          puVar18 = PTR_s_hallenge__000af46c + 0x776c;\n          logprintf(1,puVar18,uVar16,uVar15);\n          if (puVar13 != param_1) {\n            url_free(puVar13);\n          }\n          (*(code *)PTR_free_000afd08)(puVar5);\n          (*(code *)PTR_free_000afd08)(local_38);\n          local_38 = (undefined *)0x0;\n          (*(code *)PTR_free_000afd08)(uVar15);\n          if (bVar3) {\n            *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n            *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n            *(undefined4 *)(puVar19 + 500) = local_60;\n          }\n          goto LAB_0004d368;\n        }\n        local_84 = local_84 + 1;\n        (*(code *)PTR_free_000afd08)(local_38);\n        local_38 = (undefined *)0x0;\n        local_38 = (undefined *)xstrdup(*puVar14);\n        if (*(int *)(puVar19 + 0x18) < local_84) {\n          puVar18 = (undefined *)\n                    (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x77d0,5);\n          logprintf(1,puVar18,*(undefined4 *)(puVar19 + 0x18));\n          url_free(puVar14);\n          if (puVar13 != param_1) {\n            url_free(puVar13);\n          }\n          (*(code *)PTR_free_000afd08)(puVar5);\n          (*(code *)PTR_free_000afd08)(local_38);\n          local_38 = (undefined *)0x0;\n          if (bVar3) {\n            iVar9 = 0x1b;\n            *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n            *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n            *(undefined4 *)(puVar19 + 500) = local_60;\n          }\n          else {\n            iVar9 = 0x1b;\n          }\n          goto LAB_0004d368;\n        }\n        (*(code *)PTR_free_000afd08)(puVar5);\n        puVar5 = local_38;\n        if (puVar13 != param_1) {\n          url_free(puVar13);\n        }\n        puVar13 = puVar14;\n        if ((iVar9 != 0x30) && (!bVar3)) {\n          local_64 = *(undefined4 *)(puVar19 + 0x1f8);\n          *(undefined4 *)(puVar19 + 0x1f8) = 0;\n          local_5c = *(undefined4 *)(puVar19 + 0x1fc);\n          *(undefined4 *)(puVar19 + 0x1fc) = 0;\n          bVar3 = true;\n          local_60 = *(undefined4 *)(puVar19 + 500);\n          *(undefined4 *)(puVar19 + 500) = 0;\n        }\n        goto LAB_0004ce08;\n      }\n    }" { (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) (labeled_statement "LAB_0004cfbc:\n      if (((puVar19[0x22c] != '\0') && (*(int *)PTR_hsts_store_000af570 != 0)) &&\n         (iVar9 = hsts_match(*(int *)PTR_hsts_store_000af570,puVar13), iVar9 != 0)) {\n        logprintf(0,puVar20 + 0x77a0);\n      }" statement_identifier : (if_statement "if (((puVar19[0x22c] != '\0') && (*(int *)PTR_hsts_store_000af570 != 0)) &&\n         (iVar9 = hsts_match(*(int *)PTR_hsts_store_000af570,puVar13), iVar9 != 0)) {\n        logprintf(0,puVar20 + 0x77a0);\n      }" if (parenthesized_expression "(((puVar19[0x22c] != '\0') && (*(int *)PTR_hsts_store_000af570 != 0)) &&\n         (iVar9 = hsts_match(*(int *)PTR_hsts_store_000af570,puVar13), iVar9 != 0))" ( (binary_expression "((puVar19[0x22c] != '\0') && (*(int *)PTR_hsts_store_000af570 != 0)) &&\n         (iVar9 = hsts_match(*(int *)PTR_hsts_store_000af570,puVar13), iVar9 != 0)" (parenthesized_expression "((puVar19[0x22c] != '\0') && (*(int *)PTR_hsts_store_000af570 != 0))" ( (binary_expression "(puVar19[0x22c] != '\0') && (*(int *)PTR_hsts_store_000af570 != 0)" (parenthesized_expression "(puVar19[0x22c] != '\0')" ( (binary_expression "puVar19[0x22c] != '\0'" (subscript_expression "puVar19[0x22c]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(*(int *)PTR_hsts_store_000af570 != 0)" ( (binary_expression "*(int *)PTR_hsts_store_000af570 != 0" (pointer_expression "*(int *)PTR_hsts_store_000af570" * (cast_expression "(int *)PTR_hsts_store_000af570" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) != number_literal) ))) )) && (parenthesized_expression "(iVar9 = hsts_match(*(int *)PTR_hsts_store_000af570,puVar13), iVar9 != 0)" ( (comma_expression "iVar9 = hsts_match(*(int *)PTR_hsts_store_000af570,puVar13), iVar9 != 0" (assignment_expression "iVar9 = hsts_match(*(int *)PTR_hsts_store_000af570,puVar13)" identifier = (call_expression "hsts_match(*(int *)PTR_hsts_store_000af570,puVar13)" identifier (argument_list "(*(int *)PTR_hsts_store_000af570,puVar13)" ( (pointer_expression "*(int *)PTR_hsts_store_000af570" * (cast_expression "(int *)PTR_hsts_store_000af570" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) , identifier )))) , (binary_expression "iVar9 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n        logprintf(0,puVar20 + 0x77a0);\n      }" { (expression_statement "logprintf(0,puVar20 + 0x77a0);" (call_expression "logprintf(0,puVar20 + 0x77a0)" identifier (argument_list "(0,puVar20 + 0x77a0)" ( number_literal , (binary_expression "puVar20 + 0x77a0" identifier + number_literal) ))) ;) }))) (expression_statement "iVar9 = http_loop(puVar13,param_1,&local_38,&local_30,local_7c,param_6,iVar11,param_8);" (assignment_expression "iVar9 = http_loop(puVar13,param_1,&local_38,&local_30,local_7c,param_6,iVar11,param_8)" identifier = (call_expression "http_loop(puVar13,param_1,&local_38,&local_30,local_7c,param_6,iVar11,param_8)" identifier (argument_list "(puVar13,param_1,&local_38,&local_30,local_7c,param_6,iVar11,param_8)" ( identifier , identifier , (pointer_expression "&local_38" & identifier) , (pointer_expression "&local_30" & identifier) , identifier , identifier , identifier , identifier )))) ;) (labeled_statement "LAB_0004d01c:\n      if (iVar11 != 0) {\n        url_free(iVar11);\n      }" statement_identifier : (if_statement "if (iVar11 != 0) {\n        url_free(iVar11);\n      }" if (parenthesized_expression "(iVar11 != 0)" ( (binary_expression "iVar11 != 0" identifier != number_literal) )) (compound_statement "{\n        url_free(iVar11);\n      }" { (expression_statement "url_free(iVar11);" (call_expression "url_free(iVar11)" identifier (argument_list "(iVar11)" ( identifier ))) ;) }))) (expression_statement "puVar19 = PTR_opt_000af488;" (assignment_expression "puVar19 = PTR_opt_000af488" identifier = identifier) ;) (if_statement "if ((iVar9 == 6) || (iVar9 == 0x30)) {\n        (*(code *)PTR_free_000afd08)(local_30);\n        local_30 = (undefined *)0x0;\n        puVar18 = local_38;\n        if (local_38 == (undefined *)0x0) {\n          puVar18 = puVar8;\n        }\n        puVar18 = (undefined *)uri_merge(puVar5,puVar18);\n        (*(code *)PTR_free_000afd08)(local_38);\n        iVar10 = *(int *)(puVar19 + 0x218);\n        *(undefined *)(param_8 + 0xc) = puVar19[0x216];\n        local_38 = puVar18;\n        if (iVar10 != 0) {\n          set_uri_encoding(param_8,iVar10,1);\n        }\n        set_content_encoding(param_8,0);\n        (*(code *)PTR_free_000afd08)(*(undefined4 *)(param_8 + 8));\n        *(undefined4 *)(param_8 + 8) = 0;\n        puVar14 = (undefined4 *)url_parse(local_38,&local_34,param_8,1);\n        if (puVar14 == (undefined4 *)0x0) {\n          uVar15 = url_error(local_38,local_34);\n          uVar16 = escnonprint_uri(local_38);\n          puVar18 = PTR_s_hallenge__000af46c + 0x776c;\n          logprintf(1,puVar18,uVar16,uVar15);\n          if (puVar13 != param_1) {\n            url_free(puVar13);\n          }\n          (*(code *)PTR_free_000afd08)(puVar5);\n          (*(code *)PTR_free_000afd08)(local_38);\n          local_38 = (undefined *)0x0;\n          (*(code *)PTR_free_000afd08)(uVar15);\n          if (bVar3) {\n            *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n            *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n            *(undefined4 *)(puVar19 + 500) = local_60;\n          }\n          goto LAB_0004d368;\n        }\n        local_84 = local_84 + 1;\n        (*(code *)PTR_free_000afd08)(local_38);\n        local_38 = (undefined *)0x0;\n        local_38 = (undefined *)xstrdup(*puVar14);\n        if (*(int *)(puVar19 + 0x18) < local_84) {\n          puVar18 = (undefined *)\n                    (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x77d0,5);\n          logprintf(1,puVar18,*(undefined4 *)(puVar19 + 0x18));\n          url_free(puVar14);\n          if (puVar13 != param_1) {\n            url_free(puVar13);\n          }\n          (*(code *)PTR_free_000afd08)(puVar5);\n          (*(code *)PTR_free_000afd08)(local_38);\n          local_38 = (undefined *)0x0;\n          if (bVar3) {\n            iVar9 = 0x1b;\n            *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n            *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n            *(undefined4 *)(puVar19 + 500) = local_60;\n          }\n          else {\n            iVar9 = 0x1b;\n          }\n          goto LAB_0004d368;\n        }\n        (*(code *)PTR_free_000afd08)(puVar5);\n        puVar5 = local_38;\n        if (puVar13 != param_1) {\n          url_free(puVar13);\n        }\n        puVar13 = puVar14;\n        if ((iVar9 != 0x30) && (!bVar3)) {\n          local_64 = *(undefined4 *)(puVar19 + 0x1f8);\n          *(undefined4 *)(puVar19 + 0x1f8) = 0;\n          local_5c = *(undefined4 *)(puVar19 + 0x1fc);\n          *(undefined4 *)(puVar19 + 0x1fc) = 0;\n          bVar3 = true;\n          local_60 = *(undefined4 *)(puVar19 + 500);\n          *(undefined4 *)(puVar19 + 500) = 0;\n        }\n        goto LAB_0004ce08;\n      }" if (parenthesized_expression "((iVar9 == 6) || (iVar9 == 0x30))" ( (binary_expression "(iVar9 == 6) || (iVar9 == 0x30)" (parenthesized_expression "(iVar9 == 6)" ( (binary_expression "iVar9 == 6" identifier == number_literal) )) || (parenthesized_expression "(iVar9 == 0x30)" ( (binary_expression "iVar9 == 0x30" identifier == number_literal) ))) )) (compound_statement "{\n        (*(code *)PTR_free_000afd08)(local_30);\n        local_30 = (undefined *)0x0;\n        puVar18 = local_38;\n        if (local_38 == (undefined *)0x0) {\n          puVar18 = puVar8;\n        }\n        puVar18 = (undefined *)uri_merge(puVar5,puVar18);\n        (*(code *)PTR_free_000afd08)(local_38);\n        iVar10 = *(int *)(puVar19 + 0x218);\n        *(undefined *)(param_8 + 0xc) = puVar19[0x216];\n        local_38 = puVar18;\n        if (iVar10 != 0) {\n          set_uri_encoding(param_8,iVar10,1);\n        }\n        set_content_encoding(param_8,0);\n        (*(code *)PTR_free_000afd08)(*(undefined4 *)(param_8 + 8));\n        *(undefined4 *)(param_8 + 8) = 0;\n        puVar14 = (undefined4 *)url_parse(local_38,&local_34,param_8,1);\n        if (puVar14 == (undefined4 *)0x0) {\n          uVar15 = url_error(local_38,local_34);\n          uVar16 = escnonprint_uri(local_38);\n          puVar18 = PTR_s_hallenge__000af46c + 0x776c;\n          logprintf(1,puVar18,uVar16,uVar15);\n          if (puVar13 != param_1) {\n            url_free(puVar13);\n          }\n          (*(code *)PTR_free_000afd08)(puVar5);\n          (*(code *)PTR_free_000afd08)(local_38);\n          local_38 = (undefined *)0x0;\n          (*(code *)PTR_free_000afd08)(uVar15);\n          if (bVar3) {\n            *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n            *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n            *(undefined4 *)(puVar19 + 500) = local_60;\n          }\n          goto LAB_0004d368;\n        }\n        local_84 = local_84 + 1;\n        (*(code *)PTR_free_000afd08)(local_38);\n        local_38 = (undefined *)0x0;\n        local_38 = (undefined *)xstrdup(*puVar14);\n        if (*(int *)(puVar19 + 0x18) < local_84) {\n          puVar18 = (undefined *)\n                    (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x77d0,5);\n          logprintf(1,puVar18,*(undefined4 *)(puVar19 + 0x18));\n          url_free(puVar14);\n          if (puVar13 != param_1) {\n            url_free(puVar13);\n          }\n          (*(code *)PTR_free_000afd08)(puVar5);\n          (*(code *)PTR_free_000afd08)(local_38);\n          local_38 = (undefined *)0x0;\n          if (bVar3) {\n            iVar9 = 0x1b;\n            *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n            *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n            *(undefined4 *)(puVar19 + 500) = local_60;\n          }\n          else {\n            iVar9 = 0x1b;\n          }\n          goto LAB_0004d368;\n        }\n        (*(code *)PTR_free_000afd08)(puVar5);\n        puVar5 = local_38;\n        if (puVar13 != param_1) {\n          url_free(puVar13);\n        }\n        puVar13 = puVar14;\n        if ((iVar9 != 0x30) && (!bVar3)) {\n          local_64 = *(undefined4 *)(puVar19 + 0x1f8);\n          *(undefined4 *)(puVar19 + 0x1f8) = 0;\n          local_5c = *(undefined4 *)(puVar19 + 0x1fc);\n          *(undefined4 *)(puVar19 + 0x1fc) = 0;\n          bVar3 = true;\n          local_60 = *(undefined4 *)(puVar19 + 500);\n          *(undefined4 *)(puVar19 + 500) = 0;\n        }\n        goto LAB_0004ce08;\n      }" { (expression_statement "(*(code *)PTR_free_000afd08)(local_30);" (call_expression "(*(code *)PTR_free_000afd08)(local_30)" (parenthesized_expression "(*(code *)PTR_free_000afd08)" ( (pointer_expression "*(code *)PTR_free_000afd08" * (cast_expression "(code *)PTR_free_000afd08" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_30)" ( identifier ))) ;) (expression_statement "local_30 = (undefined *)0x0;" (assignment_expression "local_30 = (undefined *)0x0" identifier = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar18 = local_38;" (assignment_expression "puVar18 = local_38" identifier = identifier) ;) (if_statement "if (local_38 == (undefined *)0x0) {\n          puVar18 = puVar8;\n        }" if (parenthesized_expression "(local_38 == (undefined *)0x0)" ( (binary_expression "local_38 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          puVar18 = puVar8;\n        }" { (expression_statement "puVar18 = puVar8;" (assignment_expression "puVar18 = puVar8" identifier = identifier) ;) })) (expression_statement "puVar18 = (undefined *)uri_merge(puVar5,puVar18);" (assignment_expression "puVar18 = (undefined *)uri_merge(puVar5,puVar18)" identifier = (cast_expression "(undefined *)uri_merge(puVar5,puVar18)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "uri_merge(puVar5,puVar18)" identifier (argument_list "(puVar5,puVar18)" ( identifier , identifier ))))) ;) (expression_statement "(*(code *)PTR_free_000afd08)(local_38);" (call_expression "(*(code *)PTR_free_000afd08)(local_38)" (parenthesized_expression "(*(code *)PTR_free_000afd08)" ( (pointer_expression "*(code *)PTR_free_000afd08" * (cast_expression "(code *)PTR_free_000afd08" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_38)" ( identifier ))) ;) (expression_statement "iVar10 = *(int *)(puVar19 + 0x218);" (assignment_expression "iVar10 = *(int *)(puVar19 + 0x218)" identifier = (pointer_expression "*(int *)(puVar19 + 0x218)" * (cast_expression "(int *)(puVar19 + 0x218)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + 0x218)" ( (binary_expression "puVar19 + 0x218" identifier + number_literal) ))))) ;) (expression_statement "*(undefined *)(param_8 + 0xc) = puVar19[0x216];" (assignment_expression "*(undefined *)(param_8 + 0xc) = puVar19[0x216]" (pointer_expression "*(undefined *)(param_8 + 0xc)" * (cast_expression "(undefined *)(param_8 + 0xc)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_8 + 0xc)" ( (binary_expression "param_8 + 0xc" identifier + number_literal) )))) = (subscript_expression "puVar19[0x216]" identifier [ number_literal ])) ;) (expression_statement "local_38 = puVar18;" (assignment_expression "local_38 = puVar18" identifier = identifier) ;) (if_statement "if (iVar10 != 0) {\n          set_uri_encoding(param_8,iVar10,1);\n        }" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (compound_statement "{\n          set_uri_encoding(param_8,iVar10,1);\n        }" { (expression_statement "set_uri_encoding(param_8,iVar10,1);" (call_expression "set_uri_encoding(param_8,iVar10,1)" identifier (argument_list "(param_8,iVar10,1)" ( identifier , identifier , number_literal ))) ;) })) (expression_statement "set_content_encoding(param_8,0);" (call_expression "set_content_encoding(param_8,0)" identifier (argument_list "(param_8,0)" ( identifier , number_literal ))) ;) (expression_statement "(*(code *)PTR_free_000afd08)(*(undefined4 *)(param_8 + 8));" (call_expression "(*(code *)PTR_free_000afd08)(*(undefined4 *)(param_8 + 8))" (parenthesized_expression "(*(code *)PTR_free_000afd08)" ( (pointer_expression "*(code *)PTR_free_000afd08" * (cast_expression "(code *)PTR_free_000afd08" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(param_8 + 8))" ( (pointer_expression "*(undefined4 *)(param_8 + 8)" * (cast_expression "(undefined4 *)(param_8 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_8 + 8)" ( (binary_expression "param_8 + 8" identifier + number_literal) )))) ))) ;) (expression_statement "*(undefined4 *)(param_8 + 8) = 0;" (assignment_expression "*(undefined4 *)(param_8 + 8) = 0" (pointer_expression "*(undefined4 *)(param_8 + 8)" * (cast_expression "(undefined4 *)(param_8 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_8 + 8)" ( (binary_expression "param_8 + 8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar14 = (undefined4 *)url_parse(local_38,&local_34,param_8,1);" (assignment_expression "puVar14 = (undefined4 *)url_parse(local_38,&local_34,param_8,1)" identifier = (cast_expression "(undefined4 *)url_parse(local_38,&local_34,param_8,1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "url_parse(local_38,&local_34,param_8,1)" identifier (argument_list "(local_38,&local_34,param_8,1)" ( identifier , (pointer_expression "&local_34" & identifier) , identifier , number_literal ))))) ;) (if_statement "if (puVar14 == (undefined4 *)0x0) {\n          uVar15 = url_error(local_38,local_34);\n          uVar16 = escnonprint_uri(local_38);\n          puVar18 = PTR_s_hallenge__000af46c + 0x776c;\n          logprintf(1,puVar18,uVar16,uVar15);\n          if (puVar13 != param_1) {\n            url_free(puVar13);\n          }\n          (*(code *)PTR_free_000afd08)(puVar5);\n          (*(code *)PTR_free_000afd08)(local_38);\n          local_38 = (undefined *)0x0;\n          (*(code *)PTR_free_000afd08)(uVar15);\n          if (bVar3) {\n            *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n            *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n            *(undefined4 *)(puVar19 + 500) = local_60;\n          }\n          goto LAB_0004d368;\n        }" if (parenthesized_expression "(puVar14 == (undefined4 *)0x0)" ( (binary_expression "puVar14 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          uVar15 = url_error(local_38,local_34);\n          uVar16 = escnonprint_uri(local_38);\n          puVar18 = PTR_s_hallenge__000af46c + 0x776c;\n          logprintf(1,puVar18,uVar16,uVar15);\n          if (puVar13 != param_1) {\n            url_free(puVar13);\n          }\n          (*(code *)PTR_free_000afd08)(puVar5);\n          (*(code *)PTR_free_000afd08)(local_38);\n          local_38 = (undefined *)0x0;\n          (*(code *)PTR_free_000afd08)(uVar15);\n          if (bVar3) {\n            *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n            *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n            *(undefined4 *)(puVar19 + 500) = local_60;\n          }\n          goto LAB_0004d368;\n        }" { (expression_statement "uVar15 = url_error(local_38,local_34);" (assignment_expression "uVar15 = url_error(local_38,local_34)" identifier = (call_expression "url_error(local_38,local_34)" identifier (argument_list "(local_38,local_34)" ( identifier , identifier )))) ;) (expression_statement "uVar16 = escnonprint_uri(local_38);" (assignment_expression "uVar16 = escnonprint_uri(local_38)" identifier = (call_expression "escnonprint_uri(local_38)" identifier (argument_list "(local_38)" ( identifier )))) ;) (expression_statement "puVar18 = PTR_s_hallenge__000af46c + 0x776c;" (assignment_expression "puVar18 = PTR_s_hallenge__000af46c + 0x776c" identifier = (binary_expression "PTR_s_hallenge__000af46c + 0x776c" identifier + number_literal)) ;) (expression_statement "logprintf(1,puVar18,uVar16,uVar15);" (call_expression "logprintf(1,puVar18,uVar16,uVar15)" identifier (argument_list "(1,puVar18,uVar16,uVar15)" ( number_literal , identifier , identifier , identifier ))) ;) (if_statement "if (puVar13 != param_1) {\n            url_free(puVar13);\n          }" if (parenthesized_expression "(puVar13 != param_1)" ( (binary_expression "puVar13 != param_1" identifier != identifier) )) (compound_statement "{\n            url_free(puVar13);\n          }" { (expression_statement "url_free(puVar13);" (call_expression "url_free(puVar13)" identifier (argument_list "(puVar13)" ( identifier ))) ;) })) (expression_statement "(*(code *)PTR_free_000afd08)(puVar5);" (call_expression "(*(code *)PTR_free_000afd08)(puVar5)" (parenthesized_expression "(*(code *)PTR_free_000afd08)" ( (pointer_expression "*(code *)PTR_free_000afd08" * (cast_expression "(code *)PTR_free_000afd08" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar5)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_free_000afd08)(local_38);" (call_expression "(*(code *)PTR_free_000afd08)(local_38)" (parenthesized_expression "(*(code *)PTR_free_000afd08)" ( (pointer_expression "*(code *)PTR_free_000afd08" * (cast_expression "(code *)PTR_free_000afd08" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_38)" ( identifier ))) ;) (expression_statement "local_38 = (undefined *)0x0;" (assignment_expression "local_38 = (undefined *)0x0" identifier = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(*(code *)PTR_free_000afd08)(uVar15);" (call_expression "(*(code *)PTR_free_000afd08)(uVar15)" (parenthesized_expression "(*(code *)PTR_free_000afd08)" ( (pointer_expression "*(code *)PTR_free_000afd08" * (cast_expression "(code *)PTR_free_000afd08" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar15)" ( identifier ))) ;) (if_statement "if (bVar3) {\n            *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n            *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n            *(undefined4 *)(puVar19 + 500) = local_60;\n          }" if (parenthesized_expression "(bVar3)" ( identifier )) (compound_statement "{\n            *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n            *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n            *(undefined4 *)(puVar19 + 500) = local_60;\n          }" { (expression_statement "*(undefined4 *)(puVar19 + 0x1f8) = local_64;" (assignment_expression "*(undefined4 *)(puVar19 + 0x1f8) = local_64" (pointer_expression "*(undefined4 *)(puVar19 + 0x1f8)" * (cast_expression "(undefined4 *)(puVar19 + 0x1f8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + 0x1f8)" ( (binary_expression "puVar19 + 0x1f8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar19 + 0x1fc) = local_5c;" (assignment_expression "*(undefined4 *)(puVar19 + 0x1fc) = local_5c" (pointer_expression "*(undefined4 *)(puVar19 + 0x1fc)" * (cast_expression "(undefined4 *)(puVar19 + 0x1fc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + 0x1fc)" ( (binary_expression "puVar19 + 0x1fc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar19 + 500) = local_60;" (assignment_expression "*(undefined4 *)(puVar19 + 500) = local_60" (pointer_expression "*(undefined4 *)(puVar19 + 500)" * (cast_expression "(undefined4 *)(puVar19 + 500)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + 500)" ( (binary_expression "puVar19 + 500" identifier + number_literal) )))) = identifier) ;) })) (goto_statement "goto LAB_0004d368;" goto statement_identifier ;) })) (expression_statement "local_84 = local_84 + 1;" (assignment_expression "local_84 = local_84 + 1" identifier = (binary_expression "local_84 + 1" identifier + number_literal)) ;) (expression_statement "(*(code *)PTR_free_000afd08)(local_38);" (call_expression "(*(code *)PTR_free_000afd08)(local_38)" (parenthesized_expression "(*(code *)PTR_free_000afd08)" ( (pointer_expression "*(code *)PTR_free_000afd08" * (cast_expression "(code *)PTR_free_000afd08" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_38)" ( identifier ))) ;) (expression_statement "local_38 = (undefined *)0x0;" (assignment_expression "local_38 = (undefined *)0x0" identifier = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_38 = (undefined *)xstrdup(*puVar14);" (assignment_expression "local_38 = (undefined *)xstrdup(*puVar14)" identifier = (cast_expression "(undefined *)xstrdup(*puVar14)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xstrdup(*puVar14)" identifier (argument_list "(*puVar14)" ( (pointer_expression "*puVar14" * identifier) ))))) ;) (if_statement "if (*(int *)(puVar19 + 0x18) < local_84) {\n          puVar18 = (undefined *)\n                    (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x77d0,5);\n          logprintf(1,puVar18,*(undefined4 *)(puVar19 + 0x18));\n          url_free(puVar14);\n          if (puVar13 != param_1) {\n            url_free(puVar13);\n          }\n          (*(code *)PTR_free_000afd08)(puVar5);\n          (*(code *)PTR_free_000afd08)(local_38);\n          local_38 = (undefined *)0x0;\n          if (bVar3) {\n            iVar9 = 0x1b;\n            *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n            *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n            *(undefined4 *)(puVar19 + 500) = local_60;\n          }\n          else {\n            iVar9 = 0x1b;\n          }\n          goto LAB_0004d368;\n        }" if (parenthesized_expression "(*(int *)(puVar19 + 0x18) < local_84)" ( (binary_expression "*(int *)(puVar19 + 0x18) < local_84" (pointer_expression "*(int *)(puVar19 + 0x18)" * (cast_expression "(int *)(puVar19 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + 0x18)" ( (binary_expression "puVar19 + 0x18" identifier + number_literal) )))) < identifier) )) (compound_statement "{\n          puVar18 = (undefined *)\n                    (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x77d0,5);\n          logprintf(1,puVar18,*(undefined4 *)(puVar19 + 0x18));\n          url_free(puVar14);\n          if (puVar13 != param_1) {\n            url_free(puVar13);\n          }\n          (*(code *)PTR_free_000afd08)(puVar5);\n          (*(code *)PTR_free_000afd08)(local_38);\n          local_38 = (undefined *)0x0;\n          if (bVar3) {\n            iVar9 = 0x1b;\n            *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n            *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n            *(undefined4 *)(puVar19 + 500) = local_60;\n          }\n          else {\n            iVar9 = 0x1b;\n          }\n          goto LAB_0004d368;\n        }" { (expression_statement "puVar18 = (undefined *)\n                    (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x77d0,5);" (assignment_expression "puVar18 = (undefined *)\n                    (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x77d0,5)" identifier = (cast_expression "(undefined *)\n                    (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x77d0,5)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x77d0,5)" (parenthesized_expression "(*(code *)PTR_dcgettext_000afcf4)" ( (pointer_expression "*(code *)PTR_dcgettext_000afcf4" * (cast_expression "(code *)PTR_dcgettext_000afcf4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,PTR_s_hallenge__000af46c + 0x77d0,5)" ( number_literal , (binary_expression "PTR_s_hallenge__000af46c + 0x77d0" identifier + number_literal) , number_literal ))))) ;) (expression_statement "logprintf(1,puVar18,*(undefined4 *)(puVar19 + 0x18));" (call_expression "logprintf(1,puVar18,*(undefined4 *)(puVar19 + 0x18))" identifier (argument_list "(1,puVar18,*(undefined4 *)(puVar19 + 0x18))" ( number_literal , identifier , (pointer_expression "*(undefined4 *)(puVar19 + 0x18)" * (cast_expression "(undefined4 *)(puVar19 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + 0x18)" ( (binary_expression "puVar19 + 0x18" identifier + number_literal) )))) ))) ;) (expression_statement "url_free(puVar14);" (call_expression "url_free(puVar14)" identifier (argument_list "(puVar14)" ( identifier ))) ;) (if_statement "if (puVar13 != param_1) {\n            url_free(puVar13);\n          }" if (parenthesized_expression "(puVar13 != param_1)" ( (binary_expression "puVar13 != param_1" identifier != identifier) )) (compound_statement "{\n            url_free(puVar13);\n          }" { (expression_statement "url_free(puVar13);" (call_expression "url_free(puVar13)" identifier (argument_list "(puVar13)" ( identifier ))) ;) })) (expression_statement "(*(code *)PTR_free_000afd08)(puVar5);" (call_expression "(*(code *)PTR_free_000afd08)(puVar5)" (parenthesized_expression "(*(code *)PTR_free_000afd08)" ( (pointer_expression "*(code *)PTR_free_000afd08" * (cast_expression "(code *)PTR_free_000afd08" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar5)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_free_000afd08)(local_38);" (call_expression "(*(code *)PTR_free_000afd08)(local_38)" (parenthesized_expression "(*(code *)PTR_free_000afd08)" ( (pointer_expression "*(code *)PTR_free_000afd08" * (cast_expression "(code *)PTR_free_000afd08" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_38)" ( identifier ))) ;) (expression_statement "local_38 = (undefined *)0x0;" (assignment_expression "local_38 = (undefined *)0x0" identifier = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (bVar3) {\n            iVar9 = 0x1b;\n            *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n            *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n            *(undefined4 *)(puVar19 + 500) = local_60;\n          }\n          else {\n            iVar9 = 0x1b;\n          }" if (parenthesized_expression "(bVar3)" ( identifier )) (compound_statement "{\n            iVar9 = 0x1b;\n            *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n            *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n            *(undefined4 *)(puVar19 + 500) = local_60;\n          }" { (expression_statement "iVar9 = 0x1b;" (assignment_expression "iVar9 = 0x1b" identifier = number_literal) ;) (expression_statement "*(undefined4 *)(puVar19 + 0x1f8) = local_64;" (assignment_expression "*(undefined4 *)(puVar19 + 0x1f8) = local_64" (pointer_expression "*(undefined4 *)(puVar19 + 0x1f8)" * (cast_expression "(undefined4 *)(puVar19 + 0x1f8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + 0x1f8)" ( (binary_expression "puVar19 + 0x1f8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar19 + 0x1fc) = local_5c;" (assignment_expression "*(undefined4 *)(puVar19 + 0x1fc) = local_5c" (pointer_expression "*(undefined4 *)(puVar19 + 0x1fc)" * (cast_expression "(undefined4 *)(puVar19 + 0x1fc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + 0x1fc)" ( (binary_expression "puVar19 + 0x1fc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar19 + 500) = local_60;" (assignment_expression "*(undefined4 *)(puVar19 + 500) = local_60" (pointer_expression "*(undefined4 *)(puVar19 + 500)" * (cast_expression "(undefined4 *)(puVar19 + 500)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + 500)" ( (binary_expression "puVar19 + 500" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n            iVar9 = 0x1b;\n          }" else (compound_statement "{\n            iVar9 = 0x1b;\n          }" { (expression_statement "iVar9 = 0x1b;" (assignment_expression "iVar9 = 0x1b" identifier = number_literal) ;) }))) (goto_statement "goto LAB_0004d368;" goto statement_identifier ;) })) (expression_statement "(*(code *)PTR_free_000afd08)(puVar5);" (call_expression "(*(code *)PTR_free_000afd08)(puVar5)" (parenthesized_expression "(*(code *)PTR_free_000afd08)" ( (pointer_expression "*(code *)PTR_free_000afd08" * (cast_expression "(code *)PTR_free_000afd08" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar5)" ( identifier ))) ;) (expression_statement "puVar5 = local_38;" (assignment_expression "puVar5 = local_38" identifier = identifier) ;) (if_statement "if (puVar13 != param_1) {\n          url_free(puVar13);\n        }" if (parenthesized_expression "(puVar13 != param_1)" ( (binary_expression "puVar13 != param_1" identifier != identifier) )) (compound_statement "{\n          url_free(puVar13);\n        }" { (expression_statement "url_free(puVar13);" (call_expression "url_free(puVar13)" identifier (argument_list "(puVar13)" ( identifier ))) ;) })) (expression_statement "puVar13 = puVar14;" (assignment_expression "puVar13 = puVar14" identifier = identifier) ;) (if_statement "if ((iVar9 != 0x30) && (!bVar3)) {\n          local_64 = *(undefined4 *)(puVar19 + 0x1f8);\n          *(undefined4 *)(puVar19 + 0x1f8) = 0;\n          local_5c = *(undefined4 *)(puVar19 + 0x1fc);\n          *(undefined4 *)(puVar19 + 0x1fc) = 0;\n          bVar3 = true;\n          local_60 = *(undefined4 *)(puVar19 + 500);\n          *(undefined4 *)(puVar19 + 500) = 0;\n        }" if (parenthesized_expression "((iVar9 != 0x30) && (!bVar3))" ( (binary_expression "(iVar9 != 0x30) && (!bVar3)" (parenthesized_expression "(iVar9 != 0x30)" ( (binary_expression "iVar9 != 0x30" identifier != number_literal) )) && (parenthesized_expression "(!bVar3)" ( (unary_expression "!bVar3" ! identifier) ))) )) (compound_statement "{\n          local_64 = *(undefined4 *)(puVar19 + 0x1f8);\n          *(undefined4 *)(puVar19 + 0x1f8) = 0;\n          local_5c = *(undefined4 *)(puVar19 + 0x1fc);\n          *(undefined4 *)(puVar19 + 0x1fc) = 0;\n          bVar3 = true;\n          local_60 = *(undefined4 *)(puVar19 + 500);\n          *(undefined4 *)(puVar19 + 500) = 0;\n        }" { (expression_statement "local_64 = *(undefined4 *)(puVar19 + 0x1f8);" (assignment_expression "local_64 = *(undefined4 *)(puVar19 + 0x1f8)" identifier = (pointer_expression "*(undefined4 *)(puVar19 + 0x1f8)" * (cast_expression "(undefined4 *)(puVar19 + 0x1f8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + 0x1f8)" ( (binary_expression "puVar19 + 0x1f8" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar19 + 0x1f8) = 0;" (assignment_expression "*(undefined4 *)(puVar19 + 0x1f8) = 0" (pointer_expression "*(undefined4 *)(puVar19 + 0x1f8)" * (cast_expression "(undefined4 *)(puVar19 + 0x1f8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + 0x1f8)" ( (binary_expression "puVar19 + 0x1f8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_5c = *(undefined4 *)(puVar19 + 0x1fc);" (assignment_expression "local_5c = *(undefined4 *)(puVar19 + 0x1fc)" identifier = (pointer_expression "*(undefined4 *)(puVar19 + 0x1fc)" * (cast_expression "(undefined4 *)(puVar19 + 0x1fc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + 0x1fc)" ( (binary_expression "puVar19 + 0x1fc" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar19 + 0x1fc) = 0;" (assignment_expression "*(undefined4 *)(puVar19 + 0x1fc) = 0" (pointer_expression "*(undefined4 *)(puVar19 + 0x1fc)" * (cast_expression "(undefined4 *)(puVar19 + 0x1fc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + 0x1fc)" ( (binary_expression "puVar19 + 0x1fc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "bVar3 = true;" (assignment_expression "bVar3 = true" identifier = true) ;) (expression_statement "local_60 = *(undefined4 *)(puVar19 + 500);" (assignment_expression "local_60 = *(undefined4 *)(puVar19 + 500)" identifier = (pointer_expression "*(undefined4 *)(puVar19 + 500)" * (cast_expression "(undefined4 *)(puVar19 + 500)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + 500)" ( (binary_expression "puVar19 + 500" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar19 + 500) = 0;" (assignment_expression "*(undefined4 *)(puVar19 + 500) = 0" (pointer_expression "*(undefined4 *)(puVar19 + 500)" * (cast_expression "(undefined4 *)(puVar19 + 500)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + 500)" ( (binary_expression "puVar19 + 500" identifier + number_literal) )))) = number_literal) ;) })) (goto_statement "goto LAB_0004ce08;" goto statement_identifier ;) })) }) (else_clause "else {\n      if (puVar13[1] - 2 < 2) {\n        iVar11 = 0;\nLAB_0004d1d0:\n        if (local_84 == 0) {\n          iVar9 = (*(code *)PTR_ftp_loop_000af968)\n                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,\n                             PTR_opt_000af488[0xe1]);\n        }\n        else {\n          iVar9 = (*(code *)PTR_ftp_loop_000af968)\n                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,0);\n          if ((local_30 == (undefined *)0x0) || (1 < puVar13[1] - 2)) {\n            local_68 = 0;\n          }\n          else {\n            local_68 = has_html_suffix_p();\n            if (local_68 != 0) {\n              local_68 = 0;\n              *param_6 = *param_6 | 1;\n            }\n          }\n        }\n        goto LAB_0004d01c;\n      }\nLAB_0004cef8:\n      iVar9 = 0;\n    }" else (compound_statement "{\n      if (puVar13[1] - 2 < 2) {\n        iVar11 = 0;\nLAB_0004d1d0:\n        if (local_84 == 0) {\n          iVar9 = (*(code *)PTR_ftp_loop_000af968)\n                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,\n                             PTR_opt_000af488[0xe1]);\n        }\n        else {\n          iVar9 = (*(code *)PTR_ftp_loop_000af968)\n                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,0);\n          if ((local_30 == (undefined *)0x0) || (1 < puVar13[1] - 2)) {\n            local_68 = 0;\n          }\n          else {\n            local_68 = has_html_suffix_p();\n            if (local_68 != 0) {\n              local_68 = 0;\n              *param_6 = *param_6 | 1;\n            }\n          }\n        }\n        goto LAB_0004d01c;\n      }\nLAB_0004cef8:\n      iVar9 = 0;\n    }" { (if_statement "if (puVar13[1] - 2 < 2) {\n        iVar11 = 0;\nLAB_0004d1d0:\n        if (local_84 == 0) {\n          iVar9 = (*(code *)PTR_ftp_loop_000af968)\n                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,\n                             PTR_opt_000af488[0xe1]);\n        }\n        else {\n          iVar9 = (*(code *)PTR_ftp_loop_000af968)\n                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,0);\n          if ((local_30 == (undefined *)0x0) || (1 < puVar13[1] - 2)) {\n            local_68 = 0;\n          }\n          else {\n            local_68 = has_html_suffix_p();\n            if (local_68 != 0) {\n              local_68 = 0;\n              *param_6 = *param_6 | 1;\n            }\n          }\n        }\n        goto LAB_0004d01c;\n      }" if (parenthesized_expression "(puVar13[1] - 2 < 2)" ( (binary_expression "puVar13[1] - 2 < 2" (binary_expression "puVar13[1] - 2" (subscript_expression "puVar13[1]" identifier [ number_literal ]) - number_literal) < number_literal) )) (compound_statement "{\n        iVar11 = 0;\nLAB_0004d1d0:\n        if (local_84 == 0) {\n          iVar9 = (*(code *)PTR_ftp_loop_000af968)\n                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,\n                             PTR_opt_000af488[0xe1]);\n        }\n        else {\n          iVar9 = (*(code *)PTR_ftp_loop_000af968)\n                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,0);\n          if ((local_30 == (undefined *)0x0) || (1 < puVar13[1] - 2)) {\n            local_68 = 0;\n          }\n          else {\n            local_68 = has_html_suffix_p();\n            if (local_68 != 0) {\n              local_68 = 0;\n              *param_6 = *param_6 | 1;\n            }\n          }\n        }\n        goto LAB_0004d01c;\n      }" { (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) (labeled_statement "LAB_0004d1d0:\n        if (local_84 == 0) {\n          iVar9 = (*(code *)PTR_ftp_loop_000af968)\n                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,\n                             PTR_opt_000af488[0xe1]);\n        }\n        else {\n          iVar9 = (*(code *)PTR_ftp_loop_000af968)\n                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,0);\n          if ((local_30 == (undefined *)0x0) || (1 < puVar13[1] - 2)) {\n            local_68 = 0;\n          }\n          else {\n            local_68 = has_html_suffix_p();\n            if (local_68 != 0) {\n              local_68 = 0;\n              *param_6 = *param_6 | 1;\n            }\n          }\n        }" statement_identifier : (if_statement "if (local_84 == 0) {\n          iVar9 = (*(code *)PTR_ftp_loop_000af968)\n                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,\n                             PTR_opt_000af488[0xe1]);\n        }\n        else {\n          iVar9 = (*(code *)PTR_ftp_loop_000af968)\n                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,0);\n          if ((local_30 == (undefined *)0x0) || (1 < puVar13[1] - 2)) {\n            local_68 = 0;\n          }\n          else {\n            local_68 = has_html_suffix_p();\n            if (local_68 != 0) {\n              local_68 = 0;\n              *param_6 = *param_6 | 1;\n            }\n          }\n        }" if (parenthesized_expression "(local_84 == 0)" ( (binary_expression "local_84 == 0" identifier == number_literal) )) (compound_statement "{\n          iVar9 = (*(code *)PTR_ftp_loop_000af968)\n                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,\n                             PTR_opt_000af488[0xe1]);\n        }" { (expression_statement "iVar9 = (*(code *)PTR_ftp_loop_000af968)\n                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,\n                             PTR_opt_000af488[0xe1]);" (assignment_expression "iVar9 = (*(code *)PTR_ftp_loop_000af968)\n                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,\n                             PTR_opt_000af488[0xe1])" identifier = (call_expression "(*(code *)PTR_ftp_loop_000af968)\n                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,\n                             PTR_opt_000af488[0xe1])" (parenthesized_expression "(*(code *)PTR_ftp_loop_000af968)" ( (pointer_expression "*(code *)PTR_ftp_loop_000af968" * (cast_expression "(code *)PTR_ftp_loop_000af968" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar13,param_1,&local_30,param_6,iVar11,local_68,\n                             PTR_opt_000af488[0xe1])" ( identifier , identifier , (pointer_expression "&local_30" & identifier) , identifier , identifier , identifier , (subscript_expression "PTR_opt_000af488[0xe1]" identifier [ number_literal ]) )))) ;) }) (else_clause "else {\n          iVar9 = (*(code *)PTR_ftp_loop_000af968)\n                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,0);\n          if ((local_30 == (undefined *)0x0) || (1 < puVar13[1] - 2)) {\n            local_68 = 0;\n          }\n          else {\n            local_68 = has_html_suffix_p();\n            if (local_68 != 0) {\n              local_68 = 0;\n              *param_6 = *param_6 | 1;\n            }\n          }\n        }" else (compound_statement "{\n          iVar9 = (*(code *)PTR_ftp_loop_000af968)\n                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,0);\n          if ((local_30 == (undefined *)0x0) || (1 < puVar13[1] - 2)) {\n            local_68 = 0;\n          }\n          else {\n            local_68 = has_html_suffix_p();\n            if (local_68 != 0) {\n              local_68 = 0;\n              *param_6 = *param_6 | 1;\n            }\n          }\n        }" { (expression_statement "iVar9 = (*(code *)PTR_ftp_loop_000af968)\n                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,0);" (assignment_expression "iVar9 = (*(code *)PTR_ftp_loop_000af968)\n                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,0)" identifier = (call_expression "(*(code *)PTR_ftp_loop_000af968)\n                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,0)" (parenthesized_expression "(*(code *)PTR_ftp_loop_000af968)" ( (pointer_expression "*(code *)PTR_ftp_loop_000af968" * (cast_expression "(code *)PTR_ftp_loop_000af968" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar13,param_1,&local_30,param_6,iVar11,local_68,0)" ( identifier , identifier , (pointer_expression "&local_30" & identifier) , identifier , identifier , identifier , number_literal )))) ;) (if_statement "if ((local_30 == (undefined *)0x0) || (1 < puVar13[1] - 2)) {\n            local_68 = 0;\n          }\n          else {\n            local_68 = has_html_suffix_p();\n            if (local_68 != 0) {\n              local_68 = 0;\n              *param_6 = *param_6 | 1;\n            }\n          }" if (parenthesized_expression "((local_30 == (undefined *)0x0) || (1 < puVar13[1] - 2))" ( (binary_expression "(local_30 == (undefined *)0x0) || (1 < puVar13[1] - 2)" (parenthesized_expression "(local_30 == (undefined *)0x0)" ( (binary_expression "local_30 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(1 < puVar13[1] - 2)" ( (binary_expression "1 < puVar13[1] - 2" number_literal < (binary_expression "puVar13[1] - 2" (subscript_expression "puVar13[1]" identifier [ number_literal ]) - number_literal)) ))) )) (compound_statement "{\n            local_68 = 0;\n          }" { (expression_statement "local_68 = 0;" (assignment_expression "local_68 = 0" identifier = number_literal) ;) }) (else_clause "else {\n            local_68 = has_html_suffix_p();\n            if (local_68 != 0) {\n              local_68 = 0;\n              *param_6 = *param_6 | 1;\n            }\n          }" else (compound_statement "{\n            local_68 = has_html_suffix_p();\n            if (local_68 != 0) {\n              local_68 = 0;\n              *param_6 = *param_6 | 1;\n            }\n          }" { (expression_statement "local_68 = has_html_suffix_p();" (assignment_expression "local_68 = has_html_suffix_p()" identifier = (call_expression "has_html_suffix_p()" identifier (argument_list "()" ( )))) ;) (if_statement "if (local_68 != 0) {\n              local_68 = 0;\n              *param_6 = *param_6 | 1;\n            }" if (parenthesized_expression "(local_68 != 0)" ( (binary_expression "local_68 != 0" identifier != number_literal) )) (compound_statement "{\n              local_68 = 0;\n              *param_6 = *param_6 | 1;\n            }" { (expression_statement "local_68 = 0;" (assignment_expression "local_68 = 0" identifier = number_literal) ;) (expression_statement "*param_6 = *param_6 | 1;" (assignment_expression "*param_6 = *param_6 | 1" (pointer_expression "*param_6" * identifier) = (binary_expression "*param_6 | 1" (pointer_expression "*param_6" * identifier) | number_literal)) ;) })) }))) })))) (goto_statement "goto LAB_0004d01c;" goto statement_identifier ;) })) (labeled_statement "LAB_0004cef8:\n      iVar9 = 0;" statement_identifier : (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;)) }))) (expression_statement "(*(code *)PTR_free_000afd08)(local_38);" (call_expression "(*(code *)PTR_free_000afd08)(local_38)" (parenthesized_expression "(*(code *)PTR_free_000afd08)" ( (pointer_expression "*(code *)PTR_free_000afd08" * (cast_expression "(code *)PTR_free_000afd08" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_38)" ( identifier ))) ;) (expression_statement "uVar12 = *param_6 & 2;" (assignment_expression "uVar12 = *param_6 & 2" identifier = (binary_expression "*param_6 & 2" (pointer_expression "*param_6" * identifier) & number_literal)) ;) (expression_statement "local_38 = (undefined *)0x0;" (assignment_expression "local_38 = (undefined *)0x0" identifier = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if ((uVar12 != 0) || (cVar1 = *(char *)(param_8 + 0xc), cVar1 == '\0')) {\n      puVar18 = local_30;\n      if ((local_30 == (undefined *)0x0) ||\n         (puVar19 = PTR_opt_000af488, puVar13 == (undefined4 *)0x0)) goto LAB_0004d2f8;\n      goto LAB_0004d2e0;\n    }" if (parenthesized_expression "((uVar12 != 0) || (cVar1 = *(char *)(param_8 + 0xc), cVar1 == '\0'))" ( (binary_expression "(uVar12 != 0) || (cVar1 = *(char *)(param_8 + 0xc), cVar1 == '\0')" (parenthesized_expression "(uVar12 != 0)" ( (binary_expression "uVar12 != 0" identifier != number_literal) )) || (parenthesized_expression "(cVar1 = *(char *)(param_8 + 0xc), cVar1 == '\0')" ( (comma_expression "cVar1 = *(char *)(param_8 + 0xc), cVar1 == '\0'" (assignment_expression "cVar1 = *(char *)(param_8 + 0xc)" identifier = (pointer_expression "*(char *)(param_8 + 0xc)" * (cast_expression "(char *)(param_8 + 0xc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_8 + 0xc)" ( (binary_expression "param_8 + 0xc" identifier + number_literal) ))))) , (binary_expression "cVar1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence '))) ))) )) (compound_statement "{\n      puVar18 = local_30;\n      if ((local_30 == (undefined *)0x0) ||\n         (puVar19 = PTR_opt_000af488, puVar13 == (undefined4 *)0x0)) goto LAB_0004d2f8;\n      goto LAB_0004d2e0;\n    }" { (expression_statement "puVar18 = local_30;" (assignment_expression "puVar18 = local_30" identifier = identifier) ;) (if_statement "if ((local_30 == (undefined *)0x0) ||\n         (puVar19 = PTR_opt_000af488, puVar13 == (undefined4 *)0x0)) goto LAB_0004d2f8;" if (parenthesized_expression "((local_30 == (undefined *)0x0) ||\n         (puVar19 = PTR_opt_000af488, puVar13 == (undefined4 *)0x0))" ( (binary_expression "(local_30 == (undefined *)0x0) ||\n         (puVar19 = PTR_opt_000af488, puVar13 == (undefined4 *)0x0)" (parenthesized_expression "(local_30 == (undefined *)0x0)" ( (binary_expression "local_30 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(puVar19 = PTR_opt_000af488, puVar13 == (undefined4 *)0x0)" ( (comma_expression "puVar19 = PTR_opt_000af488, puVar13 == (undefined4 *)0x0" (assignment_expression "puVar19 = PTR_opt_000af488" identifier = identifier) , (binary_expression "puVar13 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (goto_statement "goto LAB_0004d2f8;" goto statement_identifier ;)) (goto_statement "goto LAB_0004d2e0;" goto statement_identifier ;) })) (expression_statement "*(undefined1 *)(param_8 + 0xc) = 0;" (assignment_expression "*(undefined1 *)(param_8 + 0xc) = 0" (pointer_expression "*(undefined1 *)(param_8 + 0xc)" * (cast_expression "(undefined1 *)(param_8 + 0xc)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_8 + 0xc)" ( (binary_expression "param_8 + 0xc" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (puVar13 != param_1) {\n      url_free(puVar13);\n    }" if (parenthesized_expression "(puVar13 != param_1)" ( (binary_expression "puVar13 != param_1" identifier != identifier) )) (compound_statement "{\n      url_free(puVar13);\n    }" { (expression_statement "url_free(puVar13);" (call_expression "url_free(puVar13)" identifier (argument_list "(puVar13)" ( identifier ))) ;) })) (expression_statement "puVar18 = (undefined *)0x0;" (assignment_expression "puVar18 = (undefined *)0x0" identifier = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar13 = (undefined4 *)url_parse(param_2,0,param_8,1);" (assignment_expression "puVar13 = (undefined4 *)url_parse(param_2,0,param_8,1)" identifier = (cast_expression "(undefined4 *)url_parse(param_2,0,param_8,1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "url_parse(param_2,0,param_8,1)" identifier (argument_list "(param_2,0,param_8,1)" ( identifier , number_literal , identifier , number_literal ))))) ;) (expression_statement "puVar19 = PTR_opt_000af488;" (assignment_expression "puVar19 = PTR_opt_000af488" identifier = identifier) ;) (if_statement "if (puVar13 == (undefined4 *)0x0) {\n      if (PTR_opt_000af488[0x16b] != '\0') {\n        puVar18 = (undefined *)quote(puVar5);\n        debug_logprintf(PTR_s_hallenge__000af46c + 0x783c);\n      }\n      goto LAB_0004d2f8;\n    }" if (parenthesized_expression "(puVar13 == (undefined4 *)0x0)" ( (binary_expression "puVar13 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if (PTR_opt_000af488[0x16b] != '\0') {\n        puVar18 = (undefined *)quote(puVar5);\n        debug_logprintf(PTR_s_hallenge__000af46c + 0x783c);\n      }\n      goto LAB_0004d2f8;\n    }" { (if_statement "if (PTR_opt_000af488[0x16b] != '\0') {\n        puVar18 = (undefined *)quote(puVar5);\n        debug_logprintf(PTR_s_hallenge__000af46c + 0x783c);\n      }" if (parenthesized_expression "(PTR_opt_000af488[0x16b] != '\0')" ( (binary_expression "PTR_opt_000af488[0x16b] != '\0'" (subscript_expression "PTR_opt_000af488[0x16b]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        puVar18 = (undefined *)quote(puVar5);\n        debug_logprintf(PTR_s_hallenge__000af46c + 0x783c);\n      }" { (expression_statement "puVar18 = (undefined *)quote(puVar5);" (assignment_expression "puVar18 = (undefined *)quote(puVar5)" identifier = (cast_expression "(undefined *)quote(puVar5)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "quote(puVar5)" identifier (argument_list "(puVar5)" ( identifier ))))) ;) (expression_statement "debug_logprintf(PTR_s_hallenge__000af46c + 0x783c);" (call_expression "debug_logprintf(PTR_s_hallenge__000af46c + 0x783c)" identifier (argument_list "(PTR_s_hallenge__000af46c + 0x783c)" ( (binary_expression "PTR_s_hallenge__000af46c + 0x783c" identifier + number_literal) ))) ;) })) (goto_statement "goto LAB_0004d2f8;" goto statement_identifier ;) })) (expression_statement "iVar10 = (*(code *)PTR_strcmp_000afacc)(*puVar13,*param_1);" (assignment_expression "iVar10 = (*(code *)PTR_strcmp_000afacc)(*puVar13,*param_1)" identifier = (call_expression "(*(code *)PTR_strcmp_000afacc)(*puVar13,*param_1)" (parenthesized_expression "(*(code *)PTR_strcmp_000afacc)" ( (pointer_expression "*(code *)PTR_strcmp_000afacc" * (cast_expression "(code *)PTR_strcmp_000afacc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*puVar13,*param_1)" ( (pointer_expression "*puVar13" * identifier) , (pointer_expression "*param_1" * identifier) )))) ;) (expression_statement "cVar2 = puVar19[0x16b];" (assignment_expression "cVar2 = puVar19[0x16b]" identifier = (subscript_expression "puVar19[0x16b]" identifier [ number_literal ])) ;) (if_statement "if (iVar10 == 0) break;" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (if_statement "if (cVar2 != '\0') {\n      uVar15 = quote(puVar5);\n      debug_logprintf(puVar7,uVar15);\n    }" if (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar15 = quote(puVar5);\n      debug_logprintf(puVar7,uVar15);\n    }" { (expression_statement "uVar15 = quote(puVar5);" (assignment_expression "uVar15 = quote(puVar5)" identifier = (call_expression "quote(puVar5)" identifier (argument_list "(puVar5)" ( identifier )))) ;) (expression_statement "debug_logprintf(puVar7,uVar15);" (call_expression "debug_logprintf(puVar7,uVar15)" identifier (argument_list "(puVar7,uVar15)" ( identifier , identifier ))) ;) })) (expression_statement "(*(code *)PTR_free_000afd08)(puVar5);" (call_expression "(*(code *)PTR_free_000afd08)(puVar5)" (parenthesized_expression "(*(code *)PTR_free_000afd08)" ( (pointer_expression "*(code *)PTR_free_000afd08" * (cast_expression "(code *)PTR_free_000afd08" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar5)" ( identifier ))) ;) (expression_statement "puVar5 = (undefined *)xstrdup(*puVar13);" (assignment_expression "puVar5 = (undefined *)xstrdup(*puVar13)" identifier = (cast_expression "(undefined *)xstrdup(*puVar13)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xstrdup(*puVar13)" identifier (argument_list "(*puVar13)" ( (pointer_expression "*puVar13" * identifier) ))))) ;) (expression_statement "cVar4 = cVar1;" (assignment_expression "cVar4 = cVar1" identifier = identifier) ;) }) while (parenthesized_expression "( true )" ( true )) ;)) (if_statement "if (cVar2 != '\0') {\n    uVar15 = quote(puVar5);\n    debug_logprintf(PTR_s_hallenge__000af46c + 0x7814,uVar15);\n  }" if (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    uVar15 = quote(puVar5);\n    debug_logprintf(PTR_s_hallenge__000af46c + 0x7814,uVar15);\n  }" { (expression_statement "uVar15 = quote(puVar5);" (assignment_expression "uVar15 = quote(puVar5)" identifier = (call_expression "quote(puVar5)" identifier (argument_list "(puVar5)" ( identifier )))) ;) (expression_statement "debug_logprintf(PTR_s_hallenge__000af46c + 0x7814,uVar15);" (call_expression "debug_logprintf(PTR_s_hallenge__000af46c + 0x7814,uVar15)" identifier (argument_list "(PTR_s_hallenge__000af46c + 0x7814,uVar15)" ( (binary_expression "PTR_s_hallenge__000af46c + 0x7814" identifier + number_literal) , identifier ))) ;) })) (expression_statement "puVar18 = local_30;" (assignment_expression "puVar18 = local_30" identifier = identifier) ;) (if_statement "if (local_30 != (undefined *)0x0) {\n    uVar12 = *param_6 & 2;\nLAB_0004d2e0:\n    puVar18 = local_30;\n    if ((uVar12 != 0) || (puVar19[0x16a] != '\0')) {\n      (*(code *)PTR_register_download_000af96c)(*puVar13);\n      if ((puVar19[0x48] == '\0') && (local_84 != 0)) {\n        puVar20 = (undefined *)*puVar13;\n        puVar18 = puVar20;\n        iVar10 = (*(code *)PTR_strcmp_000afacc)(param_2);\n        if (iVar10 != 0) {\n          (*(code *)PTR_register_redirection_000af978)(param_2);\n          puVar18 = puVar20;\n        }\n      }\n      uVar12 = *param_6;\n      if ((uVar12 & 1) != 0) {\n        (*(code *)PTR_register_html_000af974)();\n        uVar12 = *param_6;\n      }\n      if ((uVar12 & 0x40) != 0) {\n        (*(code *)PTR_register_css_000af970)();\n      }\n    }\n  }" if (parenthesized_expression "(local_30 != (undefined *)0x0)" ( (binary_expression "local_30 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar12 = *param_6 & 2;\nLAB_0004d2e0:\n    puVar18 = local_30;\n    if ((uVar12 != 0) || (puVar19[0x16a] != '\0')) {\n      (*(code *)PTR_register_download_000af96c)(*puVar13);\n      if ((puVar19[0x48] == '\0') && (local_84 != 0)) {\n        puVar20 = (undefined *)*puVar13;\n        puVar18 = puVar20;\n        iVar10 = (*(code *)PTR_strcmp_000afacc)(param_2);\n        if (iVar10 != 0) {\n          (*(code *)PTR_register_redirection_000af978)(param_2);\n          puVar18 = puVar20;\n        }\n      }\n      uVar12 = *param_6;\n      if ((uVar12 & 1) != 0) {\n        (*(code *)PTR_register_html_000af974)();\n        uVar12 = *param_6;\n      }\n      if ((uVar12 & 0x40) != 0) {\n        (*(code *)PTR_register_css_000af970)();\n      }\n    }\n  }" { (expression_statement "uVar12 = *param_6 & 2;" (assignment_expression "uVar12 = *param_6 & 2" identifier = (binary_expression "*param_6 & 2" (pointer_expression "*param_6" * identifier) & number_literal)) ;) (labeled_statement "LAB_0004d2e0:\n    puVar18 = local_30;" statement_identifier : (expression_statement "puVar18 = local_30;" (assignment_expression "puVar18 = local_30" identifier = identifier) ;)) (if_statement "if ((uVar12 != 0) || (puVar19[0x16a] != '\0')) {\n      (*(code *)PTR_register_download_000af96c)(*puVar13);\n      if ((puVar19[0x48] == '\0') && (local_84 != 0)) {\n        puVar20 = (undefined *)*puVar13;\n        puVar18 = puVar20;\n        iVar10 = (*(code *)PTR_strcmp_000afacc)(param_2);\n        if (iVar10 != 0) {\n          (*(code *)PTR_register_redirection_000af978)(param_2);\n          puVar18 = puVar20;\n        }\n      }\n      uVar12 = *param_6;\n      if ((uVar12 & 1) != 0) {\n        (*(code *)PTR_register_html_000af974)();\n        uVar12 = *param_6;\n      }\n      if ((uVar12 & 0x40) != 0) {\n        (*(code *)PTR_register_css_000af970)();\n      }\n    }" if (parenthesized_expression "((uVar12 != 0) || (puVar19[0x16a] != '\0'))" ( (binary_expression "(uVar12 != 0) || (puVar19[0x16a] != '\0')" (parenthesized_expression "(uVar12 != 0)" ( (binary_expression "uVar12 != 0" identifier != number_literal) )) || (parenthesized_expression "(puVar19[0x16a] != '\0')" ( (binary_expression "puVar19[0x16a] != '\0'" (subscript_expression "puVar19[0x16a]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n      (*(code *)PTR_register_download_000af96c)(*puVar13);\n      if ((puVar19[0x48] == '\0') && (local_84 != 0)) {\n        puVar20 = (undefined *)*puVar13;\n        puVar18 = puVar20;\n        iVar10 = (*(code *)PTR_strcmp_000afacc)(param_2);\n        if (iVar10 != 0) {\n          (*(code *)PTR_register_redirection_000af978)(param_2);\n          puVar18 = puVar20;\n        }\n      }\n      uVar12 = *param_6;\n      if ((uVar12 & 1) != 0) {\n        (*(code *)PTR_register_html_000af974)();\n        uVar12 = *param_6;\n      }\n      if ((uVar12 & 0x40) != 0) {\n        (*(code *)PTR_register_css_000af970)();\n      }\n    }" { (expression_statement "(*(code *)PTR_register_download_000af96c)(*puVar13);" (call_expression "(*(code *)PTR_register_download_000af96c)(*puVar13)" (parenthesized_expression "(*(code *)PTR_register_download_000af96c)" ( (pointer_expression "*(code *)PTR_register_download_000af96c" * (cast_expression "(code *)PTR_register_download_000af96c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*puVar13)" ( (pointer_expression "*puVar13" * identifier) ))) ;) (if_statement "if ((puVar19[0x48] == '\0') && (local_84 != 0)) {\n        puVar20 = (undefined *)*puVar13;\n        puVar18 = puVar20;\n        iVar10 = (*(code *)PTR_strcmp_000afacc)(param_2);\n        if (iVar10 != 0) {\n          (*(code *)PTR_register_redirection_000af978)(param_2);\n          puVar18 = puVar20;\n        }\n      }" if (parenthesized_expression "((puVar19[0x48] == '\0') && (local_84 != 0))" ( (binary_expression "(puVar19[0x48] == '\0') && (local_84 != 0)" (parenthesized_expression "(puVar19[0x48] == '\0')" ( (binary_expression "puVar19[0x48] == '\0'" (subscript_expression "puVar19[0x48]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(local_84 != 0)" ( (binary_expression "local_84 != 0" identifier != number_literal) ))) )) (compound_statement "{\n        puVar20 = (undefined *)*puVar13;\n        puVar18 = puVar20;\n        iVar10 = (*(code *)PTR_strcmp_000afacc)(param_2);\n        if (iVar10 != 0) {\n          (*(code *)PTR_register_redirection_000af978)(param_2);\n          puVar18 = puVar20;\n        }\n      }" { (expression_statement "puVar20 = (undefined *)*puVar13;" (assignment_expression "puVar20 = (undefined *)*puVar13" identifier = (cast_expression "(undefined *)*puVar13" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar13" * identifier))) ;) (expression_statement "puVar18 = puVar20;" (assignment_expression "puVar18 = puVar20" identifier = identifier) ;) (expression_statement "iVar10 = (*(code *)PTR_strcmp_000afacc)(param_2);" (assignment_expression "iVar10 = (*(code *)PTR_strcmp_000afacc)(param_2)" identifier = (call_expression "(*(code *)PTR_strcmp_000afacc)(param_2)" (parenthesized_expression "(*(code *)PTR_strcmp_000afacc)" ( (pointer_expression "*(code *)PTR_strcmp_000afacc" * (cast_expression "(code *)PTR_strcmp_000afacc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2)" ( identifier )))) ;) (if_statement "if (iVar10 != 0) {\n          (*(code *)PTR_register_redirection_000af978)(param_2);\n          puVar18 = puVar20;\n        }" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (compound_statement "{\n          (*(code *)PTR_register_redirection_000af978)(param_2);\n          puVar18 = puVar20;\n        }" { (expression_statement "(*(code *)PTR_register_redirection_000af978)(param_2);" (call_expression "(*(code *)PTR_register_redirection_000af978)(param_2)" (parenthesized_expression "(*(code *)PTR_register_redirection_000af978)" ( (pointer_expression "*(code *)PTR_register_redirection_000af978" * (cast_expression "(code *)PTR_register_redirection_000af978" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2)" ( identifier ))) ;) (expression_statement "puVar18 = puVar20;" (assignment_expression "puVar18 = puVar20" identifier = identifier) ;) })) })) (expression_statement "uVar12 = *param_6;" (assignment_expression "uVar12 = *param_6" identifier = (pointer_expression "*param_6" * identifier)) ;) (if_statement "if ((uVar12 & 1) != 0) {\n        (*(code *)PTR_register_html_000af974)();\n        uVar12 = *param_6;\n      }" if (parenthesized_expression "((uVar12 & 1) != 0)" ( (binary_expression "(uVar12 & 1) != 0" (parenthesized_expression "(uVar12 & 1)" ( (binary_expression "uVar12 & 1" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        (*(code *)PTR_register_html_000af974)();\n        uVar12 = *param_6;\n      }" { (expression_statement "(*(code *)PTR_register_html_000af974)();" (call_expression "(*(code *)PTR_register_html_000af974)()" (parenthesized_expression "(*(code *)PTR_register_html_000af974)" ( (pointer_expression "*(code *)PTR_register_html_000af974" * (cast_expression "(code *)PTR_register_html_000af974" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "uVar12 = *param_6;" (assignment_expression "uVar12 = *param_6" identifier = (pointer_expression "*param_6" * identifier)) ;) })) (if_statement "if ((uVar12 & 0x40) != 0) {\n        (*(code *)PTR_register_css_000af970)();\n      }" if (parenthesized_expression "((uVar12 & 0x40) != 0)" ( (binary_expression "(uVar12 & 0x40) != 0" (parenthesized_expression "(uVar12 & 0x40)" ( (binary_expression "uVar12 & 0x40" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        (*(code *)PTR_register_css_000af970)();\n      }" { (expression_statement "(*(code *)PTR_register_css_000af970)();" (call_expression "(*(code *)PTR_register_css_000af970)()" (parenthesized_expression "(*(code *)PTR_register_css_000af970)" ( (pointer_expression "*(code *)PTR_register_css_000af970" * (cast_expression "(code *)PTR_register_css_000af970" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) })) })) (labeled_statement "LAB_0004d2f8:\n  if (param_3 == (undefined4 *)0x0) {\n    (*(code *)PTR_free_000afd08)();\n    local_30 = (undefined *)0x0;\n  }\n  else {\n    *param_3 = local_30;\n  }" statement_identifier : (if_statement "if (param_3 == (undefined4 *)0x0) {\n    (*(code *)PTR_free_000afd08)();\n    local_30 = (undefined *)0x0;\n  }\n  else {\n    *param_3 = local_30;\n  }" if (parenthesized_expression "(param_3 == (undefined4 *)0x0)" ( (binary_expression "param_3 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (*(code *)PTR_free_000afd08)();\n    local_30 = (undefined *)0x0;\n  }" { (expression_statement "(*(code *)PTR_free_000afd08)();" (call_expression "(*(code *)PTR_free_000afd08)()" (parenthesized_expression "(*(code *)PTR_free_000afd08)" ( (pointer_expression "*(code *)PTR_free_000afd08" * (cast_expression "(code *)PTR_free_000afd08" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "local_30 = (undefined *)0x0;" (assignment_expression "local_30 = (undefined *)0x0" identifier = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    *param_3 = local_30;\n  }" else (compound_statement "{\n    *param_3 = local_30;\n  }" { (expression_statement "*param_3 = local_30;" (assignment_expression "*param_3 = local_30" (pointer_expression "*param_3" * identifier) = identifier) ;) })))) (if_statement "if (param_1 != puVar13) {\n    url_free(puVar13);\n  }" if (parenthesized_expression "(param_1 != puVar13)" ( (binary_expression "param_1 != puVar13" identifier != identifier) )) (compound_statement "{\n    url_free(puVar13);\n  }" { (expression_statement "url_free(puVar13);" (call_expression "url_free(puVar13)" identifier (argument_list "(puVar13)" ( identifier ))) ;) })) (expression_statement "puVar20 = PTR_free_000afd08;" (assignment_expression "puVar20 = PTR_free_000afd08" identifier = identifier) ;) (if_statement "if ((local_84 == 0) && (cVar4 == '\0')) {\n    if (param_4 != (undefined4 *)0x0) {\n      *param_4 = 0;\n    }\n  }\n  else if (param_4 != (undefined4 *)0x0) {\n    *param_4 = puVar5;\n    goto LAB_0004d33c;\n  }" if (parenthesized_expression "((local_84 == 0) && (cVar4 == '\0'))" ( (binary_expression "(local_84 == 0) && (cVar4 == '\0')" (parenthesized_expression "(local_84 == 0)" ( (binary_expression "local_84 == 0" identifier == number_literal) )) && (parenthesized_expression "(cVar4 == '\0')" ( (binary_expression "cVar4 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n    if (param_4 != (undefined4 *)0x0) {\n      *param_4 = 0;\n    }\n  }" { (if_statement "if (param_4 != (undefined4 *)0x0) {\n      *param_4 = 0;\n    }" if (parenthesized_expression "(param_4 != (undefined4 *)0x0)" ( (binary_expression "param_4 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      *param_4 = 0;\n    }" { (expression_statement "*param_4 = 0;" (assignment_expression "*param_4 = 0" (pointer_expression "*param_4" * identifier) = number_literal) ;) })) }) (else_clause "else if (param_4 != (undefined4 *)0x0) {\n    *param_4 = puVar5;\n    goto LAB_0004d33c;\n  }" else (if_statement "if (param_4 != (undefined4 *)0x0) {\n    *param_4 = puVar5;\n    goto LAB_0004d33c;\n  }" if (parenthesized_expression "(param_4 != (undefined4 *)0x0)" ( (binary_expression "param_4 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    *param_4 = puVar5;\n    goto LAB_0004d33c;\n  }" { (expression_statement "*param_4 = puVar5;" (assignment_expression "*param_4 = puVar5" (pointer_expression "*param_4" * identifier) = identifier) ;) (goto_statement "goto LAB_0004d33c;" goto statement_identifier ;) })))) (expression_statement "(*(code *)puVar20)(puVar5);" (call_expression "(*(code *)puVar20)(puVar5)" (parenthesized_expression "(*(code *)puVar20)" ( (pointer_expression "*(code *)puVar20" * (cast_expression "(code *)puVar20" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar5)" ( identifier ))) ;) (labeled_statement "LAB_0004d33c:\n  puVar5 = PTR_opt_000af488;" statement_identifier : (expression_statement "puVar5 = PTR_opt_000af488;" (assignment_expression "puVar5 = PTR_opt_000af488" identifier = identifier) ;)) (if_statement "if (bVar3) {\n    *(undefined4 *)(PTR_opt_000af488 + 0x1f8) = local_64;\n    *(undefined4 *)(puVar5 + 0x1fc) = local_5c;\n    *(undefined4 *)(puVar5 + 500) = local_60;\n  }" if (parenthesized_expression "(bVar3)" ( identifier )) (compound_statement "{\n    *(undefined4 *)(PTR_opt_000af488 + 0x1f8) = local_64;\n    *(undefined4 *)(puVar5 + 0x1fc) = local_5c;\n    *(undefined4 *)(puVar5 + 500) = local_60;\n  }" { (expression_statement "*(undefined4 *)(PTR_opt_000af488 + 0x1f8) = local_64;" (assignment_expression "*(undefined4 *)(PTR_opt_000af488 + 0x1f8) = local_64" (pointer_expression "*(undefined4 *)(PTR_opt_000af488 + 0x1f8)" * (cast_expression "(undefined4 *)(PTR_opt_000af488 + 0x1f8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_opt_000af488 + 0x1f8)" ( (binary_expression "PTR_opt_000af488 + 0x1f8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar5 + 0x1fc) = local_5c;" (assignment_expression "*(undefined4 *)(puVar5 + 0x1fc) = local_5c" (pointer_expression "*(undefined4 *)(puVar5 + 0x1fc)" * (cast_expression "(undefined4 *)(puVar5 + 0x1fc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 0x1fc)" ( (binary_expression "puVar5 + 0x1fc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar5 + 500) = local_60;" (assignment_expression "*(undefined4 *)(puVar5 + 500) = local_60" (pointer_expression "*(undefined4 *)(puVar5 + 500)" * (cast_expression "(undefined4 *)(puVar5 + 500)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 500)" ( (binary_expression "puVar5 + 500" identifier + number_literal) )))) = identifier) ;) })) (labeled_statement "LAB_0004d368:\n  if (param_9 != '\0') {\n    inform_exit_status(iVar9);\n  }" statement_identifier : (if_statement "if (param_9 != '\0') {\n    inform_exit_status(iVar9);\n  }" if (parenthesized_expression "(param_9 != '\0')" ( (binary_expression "param_9 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    inform_exit_status(iVar9);\n  }" { (expression_statement "inform_exit_status(iVar9);" (call_expression "inform_exit_status(iVar9)" identifier (argument_list "(iVar9)" ( identifier ))) ;) }))) (if_statement "if (local_2c != *(undefined **)puVar17) {\n    puVar17 = local_2c;\n    puVar5 = PTR___stack_chk_fail_000afbd4;\n    (*(code *)PTR___stack_chk_fail_000afbd4)();\n    if (puVar17 == puVar18) {\n      uVar15 = (**(code **)(puVar5 + 0x62534))(0,*(int *)(puVar5 + 0x61cac) + 0x7864,5);\n      iVar9 = logputs(0,uVar15);\n      return iVar9;\n    }\n    uVar15 = (**(code **)(puVar5 + 0x62534))(0,*(int *)(puVar5 + 0x61cac) + 0x7874);\n    iVar9 = logputs(0,uVar15);\n    return iVar9;\n  }" if (parenthesized_expression "(local_2c != *(undefined **)puVar17)" ( (binary_expression "local_2c != *(undefined **)puVar17" identifier != (pointer_expression "*(undefined **)puVar17" * (cast_expression "(undefined **)puVar17" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (compound_statement "{\n    puVar17 = local_2c;\n    puVar5 = PTR___stack_chk_fail_000afbd4;\n    (*(code *)PTR___stack_chk_fail_000afbd4)();\n    if (puVar17 == puVar18) {\n      uVar15 = (**(code **)(puVar5 + 0x62534))(0,*(int *)(puVar5 + 0x61cac) + 0x7864,5);\n      iVar9 = logputs(0,uVar15);\n      return iVar9;\n    }\n    uVar15 = (**(code **)(puVar5 + 0x62534))(0,*(int *)(puVar5 + 0x61cac) + 0x7874);\n    iVar9 = logputs(0,uVar15);\n    return iVar9;\n  }" { (expression_statement "puVar17 = local_2c;" (assignment_expression "puVar17 = local_2c" identifier = identifier) ;) (expression_statement "puVar5 = PTR___stack_chk_fail_000afbd4;" (assignment_expression "puVar5 = PTR___stack_chk_fail_000afbd4" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_000afbd4)();" (call_expression "(*(code *)PTR___stack_chk_fail_000afbd4)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000afbd4)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000afbd4" * (cast_expression "(code *)PTR___stack_chk_fail_000afbd4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (if_statement "if (puVar17 == puVar18) {\n      uVar15 = (**(code **)(puVar5 + 0x62534))(0,*(int *)(puVar5 + 0x61cac) + 0x7864,5);\n      iVar9 = logputs(0,uVar15);\n      return iVar9;\n    }" if (parenthesized_expression "(puVar17 == puVar18)" ( (binary_expression "puVar17 == puVar18" identifier == identifier) )) (compound_statement "{\n      uVar15 = (**(code **)(puVar5 + 0x62534))(0,*(int *)(puVar5 + 0x61cac) + 0x7864,5);\n      iVar9 = logputs(0,uVar15);\n      return iVar9;\n    }" { (expression_statement "uVar15 = (**(code **)(puVar5 + 0x62534))(0,*(int *)(puVar5 + 0x61cac) + 0x7864,5);" (assignment_expression "uVar15 = (**(code **)(puVar5 + 0x62534))(0,*(int *)(puVar5 + 0x61cac) + 0x7864,5)" identifier = (call_expression "(**(code **)(puVar5 + 0x62534))(0,*(int *)(puVar5 + 0x61cac) + 0x7864,5)" (parenthesized_expression "(**(code **)(puVar5 + 0x62534))" ( (pointer_expression "**(code **)(puVar5 + 0x62534)" * (pointer_expression "*(code **)(puVar5 + 0x62534)" * (cast_expression "(code **)(puVar5 + 0x62534)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar5 + 0x62534)" ( (binary_expression "puVar5 + 0x62534" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar5 + 0x61cac) + 0x7864,5)" ( number_literal , (binary_expression "*(int *)(puVar5 + 0x61cac) + 0x7864" (pointer_expression "*(int *)(puVar5 + 0x61cac)" * (cast_expression "(int *)(puVar5 + 0x61cac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 0x61cac)" ( (binary_expression "puVar5 + 0x61cac" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "iVar9 = logputs(0,uVar15);" (assignment_expression "iVar9 = logputs(0,uVar15)" identifier = (call_expression "logputs(0,uVar15)" identifier (argument_list "(0,uVar15)" ( number_literal , identifier )))) ;) (return_statement "return iVar9;" return identifier ;) })) (expression_statement "uVar15 = (**(code **)(puVar5 + 0x62534))(0,*(int *)(puVar5 + 0x61cac) + 0x7874);" (assignment_expression "uVar15 = (**(code **)(puVar5 + 0x62534))(0,*(int *)(puVar5 + 0x61cac) + 0x7874)" identifier = (call_expression "(**(code **)(puVar5 + 0x62534))(0,*(int *)(puVar5 + 0x61cac) + 0x7874)" (parenthesized_expression "(**(code **)(puVar5 + 0x62534))" ( (pointer_expression "**(code **)(puVar5 + 0x62534)" * (pointer_expression "*(code **)(puVar5 + 0x62534)" * (cast_expression "(code **)(puVar5 + 0x62534)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar5 + 0x62534)" ( (binary_expression "puVar5 + 0x62534" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar5 + 0x61cac) + 0x7874)" ( number_literal , (binary_expression "*(int *)(puVar5 + 0x61cac) + 0x7874" (pointer_expression "*(int *)(puVar5 + 0x61cac)" * (cast_expression "(int *)(puVar5 + 0x61cac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 0x61cac)" ( (binary_expression "puVar5 + 0x61cac" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "iVar9 = logputs(0,uVar15);" (assignment_expression "iVar9 = logputs(0,uVar15)" identifier = (call_expression "logputs(0,uVar15)" identifier (argument_list "(0,uVar15)" ( number_literal , identifier )))) ;) (return_statement "return iVar9;" return identifier ;) })) (return_statement "return iVar9;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) (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 (pointer_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 (pointer_expression * IDENT) = LIT) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (labeled_statement statement_identifier : (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT , (binary_expression IDENT + LIT) , LIT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , IDENT , IDENT , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (subscript_expression IDENT [ LIT ])) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) - LIT) < LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (goto_statement goto statement_identifier ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT , (binary_expression IDENT + LIT) , LIT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) != LIT) ))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) , IDENT )))) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT , (binary_expression IDENT + LIT) ))) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (pointer_expression & IDENT) , (pointer_expression & IDENT) , IDENT , IDENT , IDENT , IDENT )))) ;) (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 (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) (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 , IDENT , LIT ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , 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 = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , IDENT , IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (pointer_expression * IDENT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT , (binary_expression IDENT + LIT) , LIT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) (goto_statement goto statement_identifier ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (unary_expression ! IDENT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) })) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) - LIT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , (pointer_expression & IDENT) , IDENT , IDENT , IDENT , (subscript_expression IDENT [ LIT ]) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , (pointer_expression & IDENT) , IDENT , IDENT , IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) || (parenthesized_expression ( (binary_expression LIT < (binary_expression (subscript_expression IDENT [ LIT ]) - LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) | LIT)) ;) })) }))) })))) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) }))) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_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) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (binary_expression IDENT == (char_literal ' escape_sequence '))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ))) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , LIT , IDENT , LIT ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) ))) ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression * IDENT) , (pointer_expression * IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (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 )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (pointer_expression * IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( BOOL )) ;)) (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 )))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) & LIT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) || (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (char_literal ' escape_sequence ')) ))) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression * IDENT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) })) })) })) (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 (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) })))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) ))) )) (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 (pointer_expression * IDENT) = LIT) ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (goto_statement goto statement_identifier ;) })))) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT )))) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT )))) ;) (return_statement return IDENT ;) })) (return_statement return IDENT ;) })))
(function_definition "int retrieve_url(undefined4 *param_1,undefined4 param_2,undefined4 *param_3,undefined4 *param_4,\n                int param_5,uint *param_6,byte param_7,int param_8,char param_9)\n\n{\n  char cVar1;\n  char cVar2;\n  bool bVar3;\n  char cVar4;\n  undefined *puVar5;\n  code *pcVar6;\n  undefined *puVar7;\n  undefined *puVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  uint uVar12;\n  undefined4 *puVar13;\n  undefined4 *puVar14;\n  undefined4 uVar15;\n  undefined4 uVar16;\n  undefined *puVar17;\n  undefined *puVar18;\n  undefined *puVar19;\n  undefined *puVar20;\n  int local_84;\n  int local_7c;\n  uint local_68;\n  undefined4 local_64;\n  undefined4 local_60;\n  undefined4 local_5c;\n  uint local_3c;\n  undefined *local_38;\n  undefined4 local_34;\n  undefined *local_30;\n  undefined *local_2c;\n  \n  puVar17 = PTR___stack_chk_guard_000afc3c;\n  local_7c = param_5;\n  local_68 = (uint)param_7;\n  local_2c = *(undefined **)PTR___stack_chk_guard_000afc3c;\n  local_30 = (undefined *)0x0;\n  if (param_6 == (uint *)0x0) {\n    param_6 = &local_3c;\n    local_3c = 0;\n  }\n  puVar5 = (undefined *)xstrdup(param_2);\n  if (param_4 != (undefined4 *)0x0) {\n    *param_4 = 0;\n  }\n  if (param_3 != (undefined4 *)0x0) {\n    *param_3 = 0;\n  }\n  puVar20 = PTR_s_hallenge__000af46c;\n  if (param_5 == 0) {\n    local_7c = *(int *)(PTR_opt_000af488 + 0x178);\n  }\n  local_5c = 0;\n  local_60 = 0;\n  local_64 = 0;\n  bVar3 = false;\n  pcVar6 = (code *)(PTR_LAB_000af918 + -0x4774);\n  local_84 = 0;\n  puVar7 = PTR_s_hallenge__000af46c + 0x77ec;\n  puVar8 = PTR_s_hallenge__000af46c + -0x1710;\n  puVar13 = param_1;\n  cVar4 = '\0';\nLAB_0004ce08:\n  do {\n    local_38 = (undefined *)0x0;\n    (*(code *)PTR_free_000afd08)(local_30);\n    local_30 = (undefined *)0x0;\n    iVar9 = (*pcVar6)(puVar13 + 1,puVar13 + 2);\n    puVar19 = PTR_opt_000af488;\n    if (iVar9 != 0) {\n      iVar10 = iri_new();\n      set_uri_encoding(iVar10,*(undefined4 *)(puVar19 + 0x21c),1);\n      *(undefined1 *)(iVar10 + 0xc) = 0;\n      iVar11 = url_parse(iVar9,&local_34,iVar10,1);\n      if (iVar11 == 0) {\n        puVar20 = (undefined *)url_error(iVar9,local_34);\n        puVar18 = (undefined *)\n                  (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7754,5);\n        logprintf(1,puVar18,iVar9,puVar20);\n        (*(code *)PTR_free_000afd08)(puVar5);\n      }\n      else {\n        if ((*(int *)(iVar11 + 4) == 0) || (*(int *)(iVar11 + 4) == puVar13[1])) {\n          iri_free(iVar10);\n          (*(code *)PTR_free_000afd08)(iVar9);\n          if ((1 < (uint)puVar13[1]) && (*(int *)(iVar11 + 4) != 0)) {\n            if (puVar13[1] - 2 < 2) goto LAB_0004d1d0;\n            url_free(iVar11);\n            goto LAB_0004cef8;\n          }\n          goto LAB_0004cfbc;\n        }\n        puVar18 = (undefined *)\n                  (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7778,5);\n        logprintf(1,puVar18,iVar9);\n        url_free(iVar11);\n        puVar20 = puVar5;\n      }\n      (*(code *)PTR_free_000afd08)(puVar20);\n      (*(code *)PTR_free_000afd08)(iVar9);\n      iri_free(iVar10);\n      if (bVar3) {\n        iVar9 = 0x29;\n        *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n        *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n        *(undefined4 *)(puVar19 + 500) = local_60;\n      }\n      else {\n        iVar9 = 0x29;\n      }\n      goto LAB_0004d368;\n    }\n    if ((uint)puVar13[1] < 2) {\n      iVar11 = 0;\nLAB_0004cfbc:\n      if (((puVar19[0x22c] != '\0') && (*(int *)PTR_hsts_store_000af570 != 0)) &&\n         (iVar9 = hsts_match(*(int *)PTR_hsts_store_000af570,puVar13), iVar9 != 0)) {\n        logprintf(0,puVar20 + 0x77a0);\n      }\n      iVar9 = http_loop(puVar13,param_1,&local_38,&local_30,local_7c,param_6,iVar11,param_8);\nLAB_0004d01c:\n      if (iVar11 != 0) {\n        url_free(iVar11);\n      }\n      puVar19 = PTR_opt_000af488;\n      if ((iVar9 == 6) || (iVar9 == 0x30)) {\n        (*(code *)PTR_free_000afd08)(local_30);\n        local_30 = (undefined *)0x0;\n        puVar18 = local_38;\n        if (local_38 == (undefined *)0x0) {\n          puVar18 = puVar8;\n        }\n        puVar18 = (undefined *)uri_merge(puVar5,puVar18);\n        (*(code *)PTR_free_000afd08)(local_38);\n        iVar10 = *(int *)(puVar19 + 0x218);\n        *(undefined *)(param_8 + 0xc) = puVar19[0x216];\n        local_38 = puVar18;\n        if (iVar10 != 0) {\n          set_uri_encoding(param_8,iVar10,1);\n        }\n        set_content_encoding(param_8,0);\n        (*(code *)PTR_free_000afd08)(*(undefined4 *)(param_8 + 8));\n        *(undefined4 *)(param_8 + 8) = 0;\n        puVar14 = (undefined4 *)url_parse(local_38,&local_34,param_8,1);\n        if (puVar14 == (undefined4 *)0x0) {\n          uVar15 = url_error(local_38,local_34);\n          uVar16 = escnonprint_uri(local_38);\n          puVar18 = PTR_s_hallenge__000af46c + 0x776c;\n          logprintf(1,puVar18,uVar16,uVar15);\n          if (puVar13 != param_1) {\n            url_free(puVar13);\n          }\n          (*(code *)PTR_free_000afd08)(puVar5);\n          (*(code *)PTR_free_000afd08)(local_38);\n          local_38 = (undefined *)0x0;\n          (*(code *)PTR_free_000afd08)(uVar15);\n          if (bVar3) {\n            *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n            *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n            *(undefined4 *)(puVar19 + 500) = local_60;\n          }\n          goto LAB_0004d368;\n        }\n        local_84 = local_84 + 1;\n        (*(code *)PTR_free_000afd08)(local_38);\n        local_38 = (undefined *)0x0;\n        local_38 = (undefined *)xstrdup(*puVar14);\n        if (*(int *)(puVar19 + 0x18) < local_84) {\n          puVar18 = (undefined *)\n                    (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x77d0,5);\n          logprintf(1,puVar18,*(undefined4 *)(puVar19 + 0x18));\n          url_free(puVar14);\n          if (puVar13 != param_1) {\n            url_free(puVar13);\n          }\n          (*(code *)PTR_free_000afd08)(puVar5);\n          (*(code *)PTR_free_000afd08)(local_38);\n          local_38 = (undefined *)0x0;\n          if (bVar3) {\n            iVar9 = 0x1b;\n            *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n            *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n            *(undefined4 *)(puVar19 + 500) = local_60;\n          }\n          else {\n            iVar9 = 0x1b;\n          }\n          goto LAB_0004d368;\n        }\n        (*(code *)PTR_free_000afd08)(puVar5);\n        puVar5 = local_38;\n        if (puVar13 != param_1) {\n          url_free(puVar13);\n        }\n        puVar13 = puVar14;\n        if ((iVar9 != 0x30) && (!bVar3)) {\n          local_64 = *(undefined4 *)(puVar19 + 0x1f8);\n          *(undefined4 *)(puVar19 + 0x1f8) = 0;\n          local_5c = *(undefined4 *)(puVar19 + 0x1fc);\n          *(undefined4 *)(puVar19 + 0x1fc) = 0;\n          bVar3 = true;\n          local_60 = *(undefined4 *)(puVar19 + 500);\n          *(undefined4 *)(puVar19 + 500) = 0;\n        }\n        goto LAB_0004ce08;\n      }\n    }\n    else {\n      if (puVar13[1] - 2 < 2) {\n        iVar11 = 0;\nLAB_0004d1d0:\n        if (local_84 == 0) {\n          iVar9 = (*(code *)PTR_ftp_loop_000af968)\n                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,\n                             PTR_opt_000af488[0xe1]);\n        }\n        else {\n          iVar9 = (*(code *)PTR_ftp_loop_000af968)\n                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,0);\n          if ((local_30 == (undefined *)0x0) || (1 < puVar13[1] - 2)) {\n            local_68 = 0;\n          }\n          else {\n            local_68 = has_html_suffix_p();\n            if (local_68 != 0) {\n              local_68 = 0;\n              *param_6 = *param_6 | 1;\n            }\n          }\n        }\n        goto LAB_0004d01c;\n      }\nLAB_0004cef8:\n      iVar9 = 0;\n    }\n    (*(code *)PTR_free_000afd08)(local_38);\n    uVar12 = *param_6 & 2;\n    local_38 = (undefined *)0x0;\n    if ((uVar12 != 0) || (cVar1 = *(char *)(param_8 + 0xc), cVar1 == '\0')) {\n      puVar18 = local_30;\n      if ((local_30 == (undefined *)0x0) ||\n         (puVar19 = PTR_opt_000af488, puVar13 == (undefined4 *)0x0)) goto LAB_0004d2f8;\n      goto LAB_0004d2e0;\n    }\n    *(undefined1 *)(param_8 + 0xc) = 0;\n    if (puVar13 != param_1) {\n      url_free(puVar13);\n    }\n    puVar18 = (undefined *)0x0;\n    puVar13 = (undefined4 *)url_parse(param_2,0,param_8,1);\n    puVar19 = PTR_opt_000af488;\n    if (puVar13 == (undefined4 *)0x0) {\n      if (PTR_opt_000af488[0x16b] != '\0') {\n        puVar18 = (undefined *)quote(puVar5);\n        debug_logprintf(PTR_s_hallenge__000af46c + 0x783c);\n      }\n      goto LAB_0004d2f8;\n    }\n    iVar10 = (*(code *)PTR_strcmp_000afacc)(*puVar13,*param_1);\n    cVar2 = puVar19[0x16b];\n    if (iVar10 == 0) break;\n    if (cVar2 != '\0') {\n      uVar15 = quote(puVar5);\n      debug_logprintf(puVar7,uVar15);\n    }\n    (*(code *)PTR_free_000afd08)(puVar5);\n    puVar5 = (undefined *)xstrdup(*puVar13);\n    cVar4 = cVar1;\n  } while( true );\n  if (cVar2 != '\0') {\n    uVar15 = quote(puVar5);\n    debug_logprintf(PTR_s_hallenge__000af46c + 0x7814,uVar15);\n  }\n  puVar18 = local_30;\n  if (local_30 != (undefined *)0x0) {\n    uVar12 = *param_6 & 2;\nLAB_0004d2e0:\n    puVar18 = local_30;\n    if ((uVar12 != 0) || (puVar19[0x16a] != '\0')) {\n      (*(code *)PTR_register_download_000af96c)(*puVar13);\n      if ((puVar19[0x48] == '\0') && (local_84 != 0)) {\n        puVar20 = (undefined *)*puVar13;\n        puVar18 = puVar20;\n        iVar10 = (*(code *)PTR_strcmp_000afacc)(param_2);\n        if (iVar10 != 0) {\n          (*(code *)PTR_register_redirection_000af978)(param_2);\n          puVar18 = puVar20;\n        }\n      }\n      uVar12 = *param_6;\n      if ((uVar12 & 1) != 0) {\n        (*(code *)PTR_register_html_000af974)();\n        uVar12 = *param_6;\n      }\n      if ((uVar12 & 0x40) != 0) {\n        (*(code *)PTR_register_css_000af970)();\n      }\n    }\n  }\nLAB_0004d2f8:\n  if (param_3 == (undefined4 *)0x0) {\n    (*(code *)PTR_free_000afd08)();\n    local_30 = (undefined *)0x0;\n  }\n  else {\n    *param_3 = local_30;\n  }\n  if (param_1 != puVar13) {\n    url_free(puVar13);\n  }\n  puVar20 = PTR_free_000afd08;\n  if ((local_84 == 0) && (cVar4 == '\0')) {\n    if (param_4 != (undefined4 *)0x0) {\n      *param_4 = 0;\n    }\n  }\n  else if (param_4 != (undefined4 *)0x0) {\n    *param_4 = puVar5;\n    goto LAB_0004d33c;\n  }\n  (*(code *)puVar20)(puVar5);\nLAB_0004d33c:\n  puVar5 = PTR_opt_000af488;\n  if (bVar3) {\n    *(undefined4 *)(PTR_opt_000af488 + 0x1f8) = local_64;\n    *(undefined4 *)(puVar5 + 0x1fc) = local_5c;\n    *(undefined4 *)(puVar5 + 500) = local_60;\n  }\nLAB_0004d368:\n  if (param_9 != '\0') {\n    inform_exit_status(iVar9);\n  }\n  if (local_2c != *(undefined **)puVar17) {\n    puVar17 = local_2c;\n    puVar5 = PTR___stack_chk_fail_000afbd4;\n    (*(code *)PTR___stack_chk_fail_000afbd4)();\n    if (puVar17 == puVar18) {\n      uVar15 = (**(code **)(puVar5 + 0x62534))(0,*(int *)(puVar5 + 0x61cac) + 0x7864,5);\n      iVar9 = logputs(0,uVar15);\n      return iVar9;\n    }\n    uVar15 = (**(code **)(puVar5 + 0x62534))(0,*(int *)(puVar5 + 0x61cac) + 0x7874);\n    iVar9 = logputs(0,uVar15);\n    return iVar9;\n  }\n  return iVar9;\n}" (primitive_type "int") (function_declarator "retrieve_url(undefined4 *param_1,undefined4 param_2,undefined4 *param_3,undefined4 *param_4,\n                int param_5,uint *param_6,byte param_7,int param_8,char param_9)" (identifier "retrieve_url") (parameter_list "(undefined4 *param_1,undefined4 param_2,undefined4 *param_3,undefined4 *param_4,\n                int param_5,uint *param_6,byte param_7,int param_8,char param_9)" (( "(") (parameter_declaration "undefined4 *param_1" (type_identifier "undefined4") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) (, ",") (parameter_declaration "undefined4 *param_3" (type_identifier "undefined4") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) (, ",") (parameter_declaration "undefined4 *param_4" (type_identifier "undefined4") (pointer_declarator "*param_4" (* "*") (identifier "param_4"))) (, ",") (parameter_declaration "int param_5" (primitive_type "int") (identifier "param_5")) (, ",") (parameter_declaration "uint *param_6" (type_identifier "uint") (pointer_declarator "*param_6" (* "*") (identifier "param_6"))) (, ",") (parameter_declaration "byte param_7" (type_identifier "byte") (identifier "param_7")) (, ",") (parameter_declaration "int param_8" (primitive_type "int") (identifier "param_8")) (, ",") (parameter_declaration "char param_9" (primitive_type "char") (identifier "param_9")) () ")"))) (compound_statement "{\n  char cVar1;\n  char cVar2;\n  bool bVar3;\n  char cVar4;\n  undefined *puVar5;\n  code *pcVar6;\n  undefined *puVar7;\n  undefined *puVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  uint uVar12;\n  undefined4 *puVar13;\n  undefined4 *puVar14;\n  undefined4 uVar15;\n  undefined4 uVar16;\n  undefined *puVar17;\n  undefined *puVar18;\n  undefined *puVar19;\n  undefined *puVar20;\n  int local_84;\n  int local_7c;\n  uint local_68;\n  undefined4 local_64;\n  undefined4 local_60;\n  undefined4 local_5c;\n  uint local_3c;\n  undefined *local_38;\n  undefined4 local_34;\n  undefined *local_30;\n  undefined *local_2c;\n  \n  puVar17 = PTR___stack_chk_guard_000afc3c;\n  local_7c = param_5;\n  local_68 = (uint)param_7;\n  local_2c = *(undefined **)PTR___stack_chk_guard_000afc3c;\n  local_30 = (undefined *)0x0;\n  if (param_6 == (uint *)0x0) {\n    param_6 = &local_3c;\n    local_3c = 0;\n  }\n  puVar5 = (undefined *)xstrdup(param_2);\n  if (param_4 != (undefined4 *)0x0) {\n    *param_4 = 0;\n  }\n  if (param_3 != (undefined4 *)0x0) {\n    *param_3 = 0;\n  }\n  puVar20 = PTR_s_hallenge__000af46c;\n  if (param_5 == 0) {\n    local_7c = *(int *)(PTR_opt_000af488 + 0x178);\n  }\n  local_5c = 0;\n  local_60 = 0;\n  local_64 = 0;\n  bVar3 = false;\n  pcVar6 = (code *)(PTR_LAB_000af918 + -0x4774);\n  local_84 = 0;\n  puVar7 = PTR_s_hallenge__000af46c + 0x77ec;\n  puVar8 = PTR_s_hallenge__000af46c + -0x1710;\n  puVar13 = param_1;\n  cVar4 = '\0';\nLAB_0004ce08:\n  do {\n    local_38 = (undefined *)0x0;\n    (*(code *)PTR_free_000afd08)(local_30);\n    local_30 = (undefined *)0x0;\n    iVar9 = (*pcVar6)(puVar13 + 1,puVar13 + 2);\n    puVar19 = PTR_opt_000af488;\n    if (iVar9 != 0) {\n      iVar10 = iri_new();\n      set_uri_encoding(iVar10,*(undefined4 *)(puVar19 + 0x21c),1);\n      *(undefined1 *)(iVar10 + 0xc) = 0;\n      iVar11 = url_parse(iVar9,&local_34,iVar10,1);\n      if (iVar11 == 0) {\n        puVar20 = (undefined *)url_error(iVar9,local_34);\n        puVar18 = (undefined *)\n                  (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7754,5);\n        logprintf(1,puVar18,iVar9,puVar20);\n        (*(code *)PTR_free_000afd08)(puVar5);\n      }\n      else {\n        if ((*(int *)(iVar11 + 4) == 0) || (*(int *)(iVar11 + 4) == puVar13[1])) {\n          iri_free(iVar10);\n          (*(code *)PTR_free_000afd08)(iVar9);\n          if ((1 < (uint)puVar13[1]) && (*(int *)(iVar11 + 4) != 0)) {\n            if (puVar13[1] - 2 < 2) goto LAB_0004d1d0;\n            url_free(iVar11);\n            goto LAB_0004cef8;\n          }\n          goto LAB_0004cfbc;\n        }\n        puVar18 = (undefined *)\n                  (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7778,5);\n        logprintf(1,puVar18,iVar9);\n        url_free(iVar11);\n        puVar20 = puVar5;\n      }\n      (*(code *)PTR_free_000afd08)(puVar20);\n      (*(code *)PTR_free_000afd08)(iVar9);\n      iri_free(iVar10);\n      if (bVar3) {\n        iVar9 = 0x29;\n        *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n        *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n        *(undefined4 *)(puVar19 + 500) = local_60;\n      }\n      else {\n        iVar9 = 0x29;\n      }\n      goto LAB_0004d368;\n    }\n    if ((uint)puVar13[1] < 2) {\n      iVar11 = 0;\nLAB_0004cfbc:\n      if (((puVar19[0x22c] != '\0') && (*(int *)PTR_hsts_store_000af570 != 0)) &&\n         (iVar9 = hsts_match(*(int *)PTR_hsts_store_000af570,puVar13), iVar9 != 0)) {\n        logprintf(0,puVar20 + 0x77a0);\n      }\n      iVar9 = http_loop(puVar13,param_1,&local_38,&local_30,local_7c,param_6,iVar11,param_8);\nLAB_0004d01c:\n      if (iVar11 != 0) {\n        url_free(iVar11);\n      }\n      puVar19 = PTR_opt_000af488;\n      if ((iVar9 == 6) || (iVar9 == 0x30)) {\n        (*(code *)PTR_free_000afd08)(local_30);\n        local_30 = (undefined *)0x0;\n        puVar18 = local_38;\n        if (local_38 == (undefined *)0x0) {\n          puVar18 = puVar8;\n        }\n        puVar18 = (undefined *)uri_merge(puVar5,puVar18);\n        (*(code *)PTR_free_000afd08)(local_38);\n        iVar10 = *(int *)(puVar19 + 0x218);\n        *(undefined *)(param_8 + 0xc) = puVar19[0x216];\n        local_38 = puVar18;\n        if (iVar10 != 0) {\n          set_uri_encoding(param_8,iVar10,1);\n        }\n        set_content_encoding(param_8,0);\n        (*(code *)PTR_free_000afd08)(*(undefined4 *)(param_8 + 8));\n        *(undefined4 *)(param_8 + 8) = 0;\n        puVar14 = (undefined4 *)url_parse(local_38,&local_34,param_8,1);\n        if (puVar14 == (undefined4 *)0x0) {\n          uVar15 = url_error(local_38,local_34);\n          uVar16 = escnonprint_uri(local_38);\n          puVar18 = PTR_s_hallenge__000af46c + 0x776c;\n          logprintf(1,puVar18,uVar16,uVar15);\n          if (puVar13 != param_1) {\n            url_free(puVar13);\n          }\n          (*(code *)PTR_free_000afd08)(puVar5);\n          (*(code *)PTR_free_000afd08)(local_38);\n          local_38 = (undefined *)0x0;\n          (*(code *)PTR_free_000afd08)(uVar15);\n          if (bVar3) {\n            *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n            *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n            *(undefined4 *)(puVar19 + 500) = local_60;\n          }\n          goto LAB_0004d368;\n        }\n        local_84 = local_84 + 1;\n        (*(code *)PTR_free_000afd08)(local_38);\n        local_38 = (undefined *)0x0;\n        local_38 = (undefined *)xstrdup(*puVar14);\n        if (*(int *)(puVar19 + 0x18) < local_84) {\n          puVar18 = (undefined *)\n                    (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x77d0,5);\n          logprintf(1,puVar18,*(undefined4 *)(puVar19 + 0x18));\n          url_free(puVar14);\n          if (puVar13 != param_1) {\n            url_free(puVar13);\n          }\n          (*(code *)PTR_free_000afd08)(puVar5);\n          (*(code *)PTR_free_000afd08)(local_38);\n          local_38 = (undefined *)0x0;\n          if (bVar3) {\n            iVar9 = 0x1b;\n            *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n            *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n            *(undefined4 *)(puVar19 + 500) = local_60;\n          }\n          else {\n            iVar9 = 0x1b;\n          }\n          goto LAB_0004d368;\n        }\n        (*(code *)PTR_free_000afd08)(puVar5);\n        puVar5 = local_38;\n        if (puVar13 != param_1) {\n          url_free(puVar13);\n        }\n        puVar13 = puVar14;\n        if ((iVar9 != 0x30) && (!bVar3)) {\n          local_64 = *(undefined4 *)(puVar19 + 0x1f8);\n          *(undefined4 *)(puVar19 + 0x1f8) = 0;\n          local_5c = *(undefined4 *)(puVar19 + 0x1fc);\n          *(undefined4 *)(puVar19 + 0x1fc) = 0;\n          bVar3 = true;\n          local_60 = *(undefined4 *)(puVar19 + 500);\n          *(undefined4 *)(puVar19 + 500) = 0;\n        }\n        goto LAB_0004ce08;\n      }\n    }\n    else {\n      if (puVar13[1] - 2 < 2) {\n        iVar11 = 0;\nLAB_0004d1d0:\n        if (local_84 == 0) {\n          iVar9 = (*(code *)PTR_ftp_loop_000af968)\n                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,\n                             PTR_opt_000af488[0xe1]);\n        }\n        else {\n          iVar9 = (*(code *)PTR_ftp_loop_000af968)\n                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,0);\n          if ((local_30 == (undefined *)0x0) || (1 < puVar13[1] - 2)) {\n            local_68 = 0;\n          }\n          else {\n            local_68 = has_html_suffix_p();\n            if (local_68 != 0) {\n              local_68 = 0;\n              *param_6 = *param_6 | 1;\n            }\n          }\n        }\n        goto LAB_0004d01c;\n      }\nLAB_0004cef8:\n      iVar9 = 0;\n    }\n    (*(code *)PTR_free_000afd08)(local_38);\n    uVar12 = *param_6 & 2;\n    local_38 = (undefined *)0x0;\n    if ((uVar12 != 0) || (cVar1 = *(char *)(param_8 + 0xc), cVar1 == '\0')) {\n      puVar18 = local_30;\n      if ((local_30 == (undefined *)0x0) ||\n         (puVar19 = PTR_opt_000af488, puVar13 == (undefined4 *)0x0)) goto LAB_0004d2f8;\n      goto LAB_0004d2e0;\n    }\n    *(undefined1 *)(param_8 + 0xc) = 0;\n    if (puVar13 != param_1) {\n      url_free(puVar13);\n    }\n    puVar18 = (undefined *)0x0;\n    puVar13 = (undefined4 *)url_parse(param_2,0,param_8,1);\n    puVar19 = PTR_opt_000af488;\n    if (puVar13 == (undefined4 *)0x0) {\n      if (PTR_opt_000af488[0x16b] != '\0') {\n        puVar18 = (undefined *)quote(puVar5);\n        debug_logprintf(PTR_s_hallenge__000af46c + 0x783c);\n      }\n      goto LAB_0004d2f8;\n    }\n    iVar10 = (*(code *)PTR_strcmp_000afacc)(*puVar13,*param_1);\n    cVar2 = puVar19[0x16b];\n    if (iVar10 == 0) break;\n    if (cVar2 != '\0') {\n      uVar15 = quote(puVar5);\n      debug_logprintf(puVar7,uVar15);\n    }\n    (*(code *)PTR_free_000afd08)(puVar5);\n    puVar5 = (undefined *)xstrdup(*puVar13);\n    cVar4 = cVar1;\n  } while( true );\n  if (cVar2 != '\0') {\n    uVar15 = quote(puVar5);\n    debug_logprintf(PTR_s_hallenge__000af46c + 0x7814,uVar15);\n  }\n  puVar18 = local_30;\n  if (local_30 != (undefined *)0x0) {\n    uVar12 = *param_6 & 2;\nLAB_0004d2e0:\n    puVar18 = local_30;\n    if ((uVar12 != 0) || (puVar19[0x16a] != '\0')) {\n      (*(code *)PTR_register_download_000af96c)(*puVar13);\n      if ((puVar19[0x48] == '\0') && (local_84 != 0)) {\n        puVar20 = (undefined *)*puVar13;\n        puVar18 = puVar20;\n        iVar10 = (*(code *)PTR_strcmp_000afacc)(param_2);\n        if (iVar10 != 0) {\n          (*(code *)PTR_register_redirection_000af978)(param_2);\n          puVar18 = puVar20;\n        }\n      }\n      uVar12 = *param_6;\n      if ((uVar12 & 1) != 0) {\n        (*(code *)PTR_register_html_000af974)();\n        uVar12 = *param_6;\n      }\n      if ((uVar12 & 0x40) != 0) {\n        (*(code *)PTR_register_css_000af970)();\n      }\n    }\n  }\nLAB_0004d2f8:\n  if (param_3 == (undefined4 *)0x0) {\n    (*(code *)PTR_free_000afd08)();\n    local_30 = (undefined *)0x0;\n  }\n  else {\n    *param_3 = local_30;\n  }\n  if (param_1 != puVar13) {\n    url_free(puVar13);\n  }\n  puVar20 = PTR_free_000afd08;\n  if ((local_84 == 0) && (cVar4 == '\0')) {\n    if (param_4 != (undefined4 *)0x0) {\n      *param_4 = 0;\n    }\n  }\n  else if (param_4 != (undefined4 *)0x0) {\n    *param_4 = puVar5;\n    goto LAB_0004d33c;\n  }\n  (*(code *)puVar20)(puVar5);\nLAB_0004d33c:\n  puVar5 = PTR_opt_000af488;\n  if (bVar3) {\n    *(undefined4 *)(PTR_opt_000af488 + 0x1f8) = local_64;\n    *(undefined4 *)(puVar5 + 0x1fc) = local_5c;\n    *(undefined4 *)(puVar5 + 500) = local_60;\n  }\nLAB_0004d368:\n  if (param_9 != '\0') {\n    inform_exit_status(iVar9);\n  }\n  if (local_2c != *(undefined **)puVar17) {\n    puVar17 = local_2c;\n    puVar5 = PTR___stack_chk_fail_000afbd4;\n    (*(code *)PTR___stack_chk_fail_000afbd4)();\n    if (puVar17 == puVar18) {\n      uVar15 = (**(code **)(puVar5 + 0x62534))(0,*(int *)(puVar5 + 0x61cac) + 0x7864,5);\n      iVar9 = logputs(0,uVar15);\n      return iVar9;\n    }\n    uVar15 = (**(code **)(puVar5 + 0x62534))(0,*(int *)(puVar5 + 0x61cac) + 0x7874);\n    iVar9 = logputs(0,uVar15);\n    return iVar9;\n  }\n  return iVar9;\n}" ({ "{") (declaration "char cVar1;" (primitive_type "char") (identifier "cVar1") (; ";")) (declaration "char cVar2;" (primitive_type "char") (identifier "cVar2") (; ";")) (declaration "bool bVar3;" (primitive_type "bool") (identifier "bVar3") (; ";")) (declaration "char cVar4;" (primitive_type "char") (identifier "cVar4") (; ";")) (declaration "undefined *puVar5;" (type_identifier "undefined") (pointer_declarator "*puVar5" (* "*") (identifier "puVar5")) (; ";")) (declaration "code *pcVar6;" (type_identifier "code") (pointer_declarator "*pcVar6" (* "*") (identifier "pcVar6")) (; ";")) (declaration "undefined *puVar7;" (type_identifier "undefined") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "undefined *puVar8;" (type_identifier "undefined") (pointer_declarator "*puVar8" (* "*") (identifier "puVar8")) (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "int iVar10;" (primitive_type "int") (identifier "iVar10") (; ";")) (declaration "int iVar11;" (primitive_type "int") (identifier "iVar11") (; ";")) (declaration "uint uVar12;" (type_identifier "uint") (identifier "uVar12") (; ";")) (declaration "undefined4 *puVar13;" (type_identifier "undefined4") (pointer_declarator "*puVar13" (* "*") (identifier "puVar13")) (; ";")) (declaration "undefined4 *puVar14;" (type_identifier "undefined4") (pointer_declarator "*puVar14" (* "*") (identifier "puVar14")) (; ";")) (declaration "undefined4 uVar15;" (type_identifier "undefined4") (identifier "uVar15") (; ";")) (declaration "undefined4 uVar16;" (type_identifier "undefined4") (identifier "uVar16") (; ";")) (declaration "undefined *puVar17;" (type_identifier "undefined") (pointer_declarator "*puVar17" (* "*") (identifier "puVar17")) (; ";")) (declaration "undefined *puVar18;" (type_identifier "undefined") (pointer_declarator "*puVar18" (* "*") (identifier "puVar18")) (; ";")) (declaration "undefined *puVar19;" (type_identifier "undefined") (pointer_declarator "*puVar19" (* "*") (identifier "puVar19")) (; ";")) (declaration "undefined *puVar20;" (type_identifier "undefined") (pointer_declarator "*puVar20" (* "*") (identifier "puVar20")) (; ";")) (declaration "int local_84;" (primitive_type "int") (identifier "local_84") (; ";")) (declaration "int local_7c;" (primitive_type "int") (identifier "local_7c") (; ";")) (declaration "uint local_68;" (type_identifier "uint") (identifier "local_68") (; ";")) (declaration "undefined4 local_64;" (type_identifier "undefined4") (identifier "local_64") (; ";")) (declaration "undefined4 local_60;" (type_identifier "undefined4") (identifier "local_60") (; ";")) (declaration "undefined4 local_5c;" (type_identifier "undefined4") (identifier "local_5c") (; ";")) (declaration "uint local_3c;" (type_identifier "uint") (identifier "local_3c") (; ";")) (declaration "undefined *local_38;" (type_identifier "undefined") (pointer_declarator "*local_38" (* "*") (identifier "local_38")) (; ";")) (declaration "undefined4 local_34;" (type_identifier "undefined4") (identifier "local_34") (; ";")) (declaration "undefined *local_30;" (type_identifier "undefined") (pointer_declarator "*local_30" (* "*") (identifier "local_30")) (; ";")) (declaration "undefined *local_2c;" (type_identifier "undefined") (pointer_declarator "*local_2c" (* "*") (identifier "local_2c")) (; ";")) (expression_statement "puVar17 = PTR___stack_chk_guard_000afc3c;" (assignment_expression "puVar17 = PTR___stack_chk_guard_000afc3c" (identifier "puVar17") (= "=") (identifier "PTR___stack_chk_guard_000afc3c")) (; ";")) (expression_statement "local_7c = param_5;" (assignment_expression "local_7c = param_5" (identifier "local_7c") (= "=") (identifier "param_5")) (; ";")) (expression_statement "local_68 = (uint)param_7;" (assignment_expression "local_68 = (uint)param_7" (identifier "local_68") (= "=") (cast_expression "(uint)param_7" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "param_7"))) (; ";")) (expression_statement "local_2c = *(undefined **)PTR___stack_chk_guard_000afc3c;" (assignment_expression "local_2c = *(undefined **)PTR___stack_chk_guard_000afc3c" (identifier "local_2c") (= "=") (pointer_expression "*(undefined **)PTR___stack_chk_guard_000afc3c" (* "*") (cast_expression "(undefined **)PTR___stack_chk_guard_000afc3c" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "PTR___stack_chk_guard_000afc3c")))) (; ";")) (expression_statement "local_30 = (undefined *)0x0;" (assignment_expression "local_30 = (undefined *)0x0" (identifier "local_30") (= "=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if (param_6 == (uint *)0x0) {\n    param_6 = &local_3c;\n    local_3c = 0;\n  }" (if "if") (parenthesized_expression "(param_6 == (uint *)0x0)" (( "(") (binary_expression "param_6 == (uint *)0x0" (identifier "param_6") (== "==") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    param_6 = &local_3c;\n    local_3c = 0;\n  }" ({ "{") (expression_statement "param_6 = &local_3c;" (assignment_expression "param_6 = &local_3c" (identifier "param_6") (= "=") (pointer_expression "&local_3c" (& "&") (identifier "local_3c"))) (; ";")) (expression_statement "local_3c = 0;" (assignment_expression "local_3c = 0" (identifier "local_3c") (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "puVar5 = (undefined *)xstrdup(param_2);" (assignment_expression "puVar5 = (undefined *)xstrdup(param_2)" (identifier "puVar5") (= "=") (cast_expression "(undefined *)xstrdup(param_2)" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xstrdup(param_2)" (identifier "xstrdup") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")"))))) (; ";")) (if_statement "if (param_4 != (undefined4 *)0x0) {\n    *param_4 = 0;\n  }" (if "if") (parenthesized_expression "(param_4 != (undefined4 *)0x0)" (( "(") (binary_expression "param_4 != (undefined4 *)0x0" (identifier "param_4") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    *param_4 = 0;\n  }" ({ "{") (expression_statement "*param_4 = 0;" (assignment_expression "*param_4 = 0" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (number_literal "0")) (; ";")) (} "}"))) (if_statement "if (param_3 != (undefined4 *)0x0) {\n    *param_3 = 0;\n  }" (if "if") (parenthesized_expression "(param_3 != (undefined4 *)0x0)" (( "(") (binary_expression "param_3 != (undefined4 *)0x0" (identifier "param_3") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    *param_3 = 0;\n  }" ({ "{") (expression_statement "*param_3 = 0;" (assignment_expression "*param_3 = 0" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "puVar20 = PTR_s_hallenge__000af46c;" (assignment_expression "puVar20 = PTR_s_hallenge__000af46c" (identifier "puVar20") (= "=") (identifier "PTR_s_hallenge__000af46c")) (; ";")) (if_statement "if (param_5 == 0) {\n    local_7c = *(int *)(PTR_opt_000af488 + 0x178);\n  }" (if "if") (parenthesized_expression "(param_5 == 0)" (( "(") (binary_expression "param_5 == 0" (identifier "param_5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    local_7c = *(int *)(PTR_opt_000af488 + 0x178);\n  }" ({ "{") (expression_statement "local_7c = *(int *)(PTR_opt_000af488 + 0x178);" (assignment_expression "local_7c = *(int *)(PTR_opt_000af488 + 0x178)" (identifier "local_7c") (= "=") (pointer_expression "*(int *)(PTR_opt_000af488 + 0x178)" (* "*") (cast_expression "(int *)(PTR_opt_000af488 + 0x178)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_opt_000af488 + 0x178)" (( "(") (binary_expression "PTR_opt_000af488 + 0x178" (identifier "PTR_opt_000af488") (+ "+") (number_literal "0x178")) () ")"))))) (; ";")) (} "}"))) (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" (identifier "local_5c") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_60 = 0;" (assignment_expression "local_60 = 0" (identifier "local_60") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_64 = 0;" (assignment_expression "local_64 = 0" (identifier "local_64") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar3 = false;" (assignment_expression "bVar3 = false" (identifier "bVar3") (= "=") (false "false")) (; ";")) (expression_statement "pcVar6 = (code *)(PTR_LAB_000af918 + -0x4774);" (assignment_expression "pcVar6 = (code *)(PTR_LAB_000af918 + -0x4774)" (identifier "pcVar6") (= "=") (cast_expression "(code *)(PTR_LAB_000af918 + -0x4774)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000af918 + -0x4774)" (( "(") (binary_expression "PTR_LAB_000af918 + -0x4774" (identifier "PTR_LAB_000af918") (+ "+") (number_literal "-0x4774")) () ")")))) (; ";")) (expression_statement "local_84 = 0;" (assignment_expression "local_84 = 0" (identifier "local_84") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar7 = PTR_s_hallenge__000af46c + 0x77ec;" (assignment_expression "puVar7 = PTR_s_hallenge__000af46c + 0x77ec" (identifier "puVar7") (= "=") (binary_expression "PTR_s_hallenge__000af46c + 0x77ec" (identifier "PTR_s_hallenge__000af46c") (+ "+") (number_literal "0x77ec"))) (; ";")) (expression_statement "puVar8 = PTR_s_hallenge__000af46c + -0x1710;" (assignment_expression "puVar8 = PTR_s_hallenge__000af46c + -0x1710" (identifier "puVar8") (= "=") (binary_expression "PTR_s_hallenge__000af46c + -0x1710" (identifier "PTR_s_hallenge__000af46c") (+ "+") (number_literal "-0x1710"))) (; ";")) (expression_statement "puVar13 = param_1;" (assignment_expression "puVar13 = param_1" (identifier "puVar13") (= "=") (identifier "param_1")) (; ";")) (expression_statement "cVar4 = '\0';" (assignment_expression "cVar4 = '\0'" (identifier "cVar4") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (labeled_statement "LAB_0004ce08:\n  do {\n    local_38 = (undefined *)0x0;\n    (*(code *)PTR_free_000afd08)(local_30);\n    local_30 = (undefined *)0x0;\n    iVar9 = (*pcVar6)(puVar13 + 1,puVar13 + 2);\n    puVar19 = PTR_opt_000af488;\n    if (iVar9 != 0) {\n      iVar10 = iri_new();\n      set_uri_encoding(iVar10,*(undefined4 *)(puVar19 + 0x21c),1);\n      *(undefined1 *)(iVar10 + 0xc) = 0;\n      iVar11 = url_parse(iVar9,&local_34,iVar10,1);\n      if (iVar11 == 0) {\n        puVar20 = (undefined *)url_error(iVar9,local_34);\n        puVar18 = (undefined *)\n                  (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7754,5);\n        logprintf(1,puVar18,iVar9,puVar20);\n        (*(code *)PTR_free_000afd08)(puVar5);\n      }\n      else {\n        if ((*(int *)(iVar11 + 4) == 0) || (*(int *)(iVar11 + 4) == puVar13[1])) {\n          iri_free(iVar10);\n          (*(code *)PTR_free_000afd08)(iVar9);\n          if ((1 < (uint)puVar13[1]) && (*(int *)(iVar11 + 4) != 0)) {\n            if (puVar13[1] - 2 < 2) goto LAB_0004d1d0;\n            url_free(iVar11);\n            goto LAB_0004cef8;\n          }\n          goto LAB_0004cfbc;\n        }\n        puVar18 = (undefined *)\n                  (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7778,5);\n        logprintf(1,puVar18,iVar9);\n        url_free(iVar11);\n        puVar20 = puVar5;\n      }\n      (*(code *)PTR_free_000afd08)(puVar20);\n      (*(code *)PTR_free_000afd08)(iVar9);\n      iri_free(iVar10);\n      if (bVar3) {\n        iVar9 = 0x29;\n        *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n        *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n        *(undefined4 *)(puVar19 + 500) = local_60;\n      }\n      else {\n        iVar9 = 0x29;\n      }\n      goto LAB_0004d368;\n    }\n    if ((uint)puVar13[1] < 2) {\n      iVar11 = 0;\nLAB_0004cfbc:\n      if (((puVar19[0x22c] != '\0') && (*(int *)PTR_hsts_store_000af570 != 0)) &&\n         (iVar9 = hsts_match(*(int *)PTR_hsts_store_000af570,puVar13), iVar9 != 0)) {\n        logprintf(0,puVar20 + 0x77a0);\n      }\n      iVar9 = http_loop(puVar13,param_1,&local_38,&local_30,local_7c,param_6,iVar11,param_8);\nLAB_0004d01c:\n      if (iVar11 != 0) {\n        url_free(iVar11);\n      }\n      puVar19 = PTR_opt_000af488;\n      if ((iVar9 == 6) || (iVar9 == 0x30)) {\n        (*(code *)PTR_free_000afd08)(local_30);\n        local_30 = (undefined *)0x0;\n        puVar18 = local_38;\n        if (local_38 == (undefined *)0x0) {\n          puVar18 = puVar8;\n        }\n        puVar18 = (undefined *)uri_merge(puVar5,puVar18);\n        (*(code *)PTR_free_000afd08)(local_38);\n        iVar10 = *(int *)(puVar19 + 0x218);\n        *(undefined *)(param_8 + 0xc) = puVar19[0x216];\n        local_38 = puVar18;\n        if (iVar10 != 0) {\n          set_uri_encoding(param_8,iVar10,1);\n        }\n        set_content_encoding(param_8,0);\n        (*(code *)PTR_free_000afd08)(*(undefined4 *)(param_8 + 8));\n        *(undefined4 *)(param_8 + 8) = 0;\n        puVar14 = (undefined4 *)url_parse(local_38,&local_34,param_8,1);\n        if (puVar14 == (undefined4 *)0x0) {\n          uVar15 = url_error(local_38,local_34);\n          uVar16 = escnonprint_uri(local_38);\n          puVar18 = PTR_s_hallenge__000af46c + 0x776c;\n          logprintf(1,puVar18,uVar16,uVar15);\n          if (puVar13 != param_1) {\n            url_free(puVar13);\n          }\n          (*(code *)PTR_free_000afd08)(puVar5);\n          (*(code *)PTR_free_000afd08)(local_38);\n          local_38 = (undefined *)0x0;\n          (*(code *)PTR_free_000afd08)(uVar15);\n          if (bVar3) {\n            *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n            *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n            *(undefined4 *)(puVar19 + 500) = local_60;\n          }\n          goto LAB_0004d368;\n        }\n        local_84 = local_84 + 1;\n        (*(code *)PTR_free_000afd08)(local_38);\n        local_38 = (undefined *)0x0;\n        local_38 = (undefined *)xstrdup(*puVar14);\n        if (*(int *)(puVar19 + 0x18) < local_84) {\n          puVar18 = (undefined *)\n                    (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x77d0,5);\n          logprintf(1,puVar18,*(undefined4 *)(puVar19 + 0x18));\n          url_free(puVar14);\n          if (puVar13 != param_1) {\n            url_free(puVar13);\n          }\n          (*(code *)PTR_free_000afd08)(puVar5);\n          (*(code *)PTR_free_000afd08)(local_38);\n          local_38 = (undefined *)0x0;\n          if (bVar3) {\n            iVar9 = 0x1b;\n            *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n            *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n            *(undefined4 *)(puVar19 + 500) = local_60;\n          }\n          else {\n            iVar9 = 0x1b;\n          }\n          goto LAB_0004d368;\n        }\n        (*(code *)PTR_free_000afd08)(puVar5);\n        puVar5 = local_38;\n        if (puVar13 != param_1) {\n          url_free(puVar13);\n        }\n        puVar13 = puVar14;\n        if ((iVar9 != 0x30) && (!bVar3)) {\n          local_64 = *(undefined4 *)(puVar19 + 0x1f8);\n          *(undefined4 *)(puVar19 + 0x1f8) = 0;\n          local_5c = *(undefined4 *)(puVar19 + 0x1fc);\n          *(undefined4 *)(puVar19 + 0x1fc) = 0;\n          bVar3 = true;\n          local_60 = *(undefined4 *)(puVar19 + 500);\n          *(undefined4 *)(puVar19 + 500) = 0;\n        }\n        goto LAB_0004ce08;\n      }\n    }\n    else {\n      if (puVar13[1] - 2 < 2) {\n        iVar11 = 0;\nLAB_0004d1d0:\n        if (local_84 == 0) {\n          iVar9 = (*(code *)PTR_ftp_loop_000af968)\n                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,\n                             PTR_opt_000af488[0xe1]);\n        }\n        else {\n          iVar9 = (*(code *)PTR_ftp_loop_000af968)\n                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,0);\n          if ((local_30 == (undefined *)0x0) || (1 < puVar13[1] - 2)) {\n            local_68 = 0;\n          }\n          else {\n            local_68 = has_html_suffix_p();\n            if (local_68 != 0) {\n              local_68 = 0;\n              *param_6 = *param_6 | 1;\n            }\n          }\n        }\n        goto LAB_0004d01c;\n      }\nLAB_0004cef8:\n      iVar9 = 0;\n    }\n    (*(code *)PTR_free_000afd08)(local_38);\n    uVar12 = *param_6 & 2;\n    local_38 = (undefined *)0x0;\n    if ((uVar12 != 0) || (cVar1 = *(char *)(param_8 + 0xc), cVar1 == '\0')) {\n      puVar18 = local_30;\n      if ((local_30 == (undefined *)0x0) ||\n         (puVar19 = PTR_opt_000af488, puVar13 == (undefined4 *)0x0)) goto LAB_0004d2f8;\n      goto LAB_0004d2e0;\n    }\n    *(undefined1 *)(param_8 + 0xc) = 0;\n    if (puVar13 != param_1) {\n      url_free(puVar13);\n    }\n    puVar18 = (undefined *)0x0;\n    puVar13 = (undefined4 *)url_parse(param_2,0,param_8,1);\n    puVar19 = PTR_opt_000af488;\n    if (puVar13 == (undefined4 *)0x0) {\n      if (PTR_opt_000af488[0x16b] != '\0') {\n        puVar18 = (undefined *)quote(puVar5);\n        debug_logprintf(PTR_s_hallenge__000af46c + 0x783c);\n      }\n      goto LAB_0004d2f8;\n    }\n    iVar10 = (*(code *)PTR_strcmp_000afacc)(*puVar13,*param_1);\n    cVar2 = puVar19[0x16b];\n    if (iVar10 == 0) break;\n    if (cVar2 != '\0') {\n      uVar15 = quote(puVar5);\n      debug_logprintf(puVar7,uVar15);\n    }\n    (*(code *)PTR_free_000afd08)(puVar5);\n    puVar5 = (undefined *)xstrdup(*puVar13);\n    cVar4 = cVar1;\n  } while( true );" (statement_identifier "LAB_0004ce08") (: ":") (do_statement "do {\n    local_38 = (undefined *)0x0;\n    (*(code *)PTR_free_000afd08)(local_30);\n    local_30 = (undefined *)0x0;\n    iVar9 = (*pcVar6)(puVar13 + 1,puVar13 + 2);\n    puVar19 = PTR_opt_000af488;\n    if (iVar9 != 0) {\n      iVar10 = iri_new();\n      set_uri_encoding(iVar10,*(undefined4 *)(puVar19 + 0x21c),1);\n      *(undefined1 *)(iVar10 + 0xc) = 0;\n      iVar11 = url_parse(iVar9,&local_34,iVar10,1);\n      if (iVar11 == 0) {\n        puVar20 = (undefined *)url_error(iVar9,local_34);\n        puVar18 = (undefined *)\n                  (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7754,5);\n        logprintf(1,puVar18,iVar9,puVar20);\n        (*(code *)PTR_free_000afd08)(puVar5);\n      }\n      else {\n        if ((*(int *)(iVar11 + 4) == 0) || (*(int *)(iVar11 + 4) == puVar13[1])) {\n          iri_free(iVar10);\n          (*(code *)PTR_free_000afd08)(iVar9);\n          if ((1 < (uint)puVar13[1]) && (*(int *)(iVar11 + 4) != 0)) {\n            if (puVar13[1] - 2 < 2) goto LAB_0004d1d0;\n            url_free(iVar11);\n            goto LAB_0004cef8;\n          }\n          goto LAB_0004cfbc;\n        }\n        puVar18 = (undefined *)\n                  (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7778,5);\n        logprintf(1,puVar18,iVar9);\n        url_free(iVar11);\n        puVar20 = puVar5;\n      }\n      (*(code *)PTR_free_000afd08)(puVar20);\n      (*(code *)PTR_free_000afd08)(iVar9);\n      iri_free(iVar10);\n      if (bVar3) {\n        iVar9 = 0x29;\n        *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n        *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n        *(undefined4 *)(puVar19 + 500) = local_60;\n      }\n      else {\n        iVar9 = 0x29;\n      }\n      goto LAB_0004d368;\n    }\n    if ((uint)puVar13[1] < 2) {\n      iVar11 = 0;\nLAB_0004cfbc:\n      if (((puVar19[0x22c] != '\0') && (*(int *)PTR_hsts_store_000af570 != 0)) &&\n         (iVar9 = hsts_match(*(int *)PTR_hsts_store_000af570,puVar13), iVar9 != 0)) {\n        logprintf(0,puVar20 + 0x77a0);\n      }\n      iVar9 = http_loop(puVar13,param_1,&local_38,&local_30,local_7c,param_6,iVar11,param_8);\nLAB_0004d01c:\n      if (iVar11 != 0) {\n        url_free(iVar11);\n      }\n      puVar19 = PTR_opt_000af488;\n      if ((iVar9 == 6) || (iVar9 == 0x30)) {\n        (*(code *)PTR_free_000afd08)(local_30);\n        local_30 = (undefined *)0x0;\n        puVar18 = local_38;\n        if (local_38 == (undefined *)0x0) {\n          puVar18 = puVar8;\n        }\n        puVar18 = (undefined *)uri_merge(puVar5,puVar18);\n        (*(code *)PTR_free_000afd08)(local_38);\n        iVar10 = *(int *)(puVar19 + 0x218);\n        *(undefined *)(param_8 + 0xc) = puVar19[0x216];\n        local_38 = puVar18;\n        if (iVar10 != 0) {\n          set_uri_encoding(param_8,iVar10,1);\n        }\n        set_content_encoding(param_8,0);\n        (*(code *)PTR_free_000afd08)(*(undefined4 *)(param_8 + 8));\n        *(undefined4 *)(param_8 + 8) = 0;\n        puVar14 = (undefined4 *)url_parse(local_38,&local_34,param_8,1);\n        if (puVar14 == (undefined4 *)0x0) {\n          uVar15 = url_error(local_38,local_34);\n          uVar16 = escnonprint_uri(local_38);\n          puVar18 = PTR_s_hallenge__000af46c + 0x776c;\n          logprintf(1,puVar18,uVar16,uVar15);\n          if (puVar13 != param_1) {\n            url_free(puVar13);\n          }\n          (*(code *)PTR_free_000afd08)(puVar5);\n          (*(code *)PTR_free_000afd08)(local_38);\n          local_38 = (undefined *)0x0;\n          (*(code *)PTR_free_000afd08)(uVar15);\n          if (bVar3) {\n            *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n            *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n            *(undefined4 *)(puVar19 + 500) = local_60;\n          }\n          goto LAB_0004d368;\n        }\n        local_84 = local_84 + 1;\n        (*(code *)PTR_free_000afd08)(local_38);\n        local_38 = (undefined *)0x0;\n        local_38 = (undefined *)xstrdup(*puVar14);\n        if (*(int *)(puVar19 + 0x18) < local_84) {\n          puVar18 = (undefined *)\n                    (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x77d0,5);\n          logprintf(1,puVar18,*(undefined4 *)(puVar19 + 0x18));\n          url_free(puVar14);\n          if (puVar13 != param_1) {\n            url_free(puVar13);\n          }\n          (*(code *)PTR_free_000afd08)(puVar5);\n          (*(code *)PTR_free_000afd08)(local_38);\n          local_38 = (undefined *)0x0;\n          if (bVar3) {\n            iVar9 = 0x1b;\n            *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n            *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n            *(undefined4 *)(puVar19 + 500) = local_60;\n          }\n          else {\n            iVar9 = 0x1b;\n          }\n          goto LAB_0004d368;\n        }\n        (*(code *)PTR_free_000afd08)(puVar5);\n        puVar5 = local_38;\n        if (puVar13 != param_1) {\n          url_free(puVar13);\n        }\n        puVar13 = puVar14;\n        if ((iVar9 != 0x30) && (!bVar3)) {\n          local_64 = *(undefined4 *)(puVar19 + 0x1f8);\n          *(undefined4 *)(puVar19 + 0x1f8) = 0;\n          local_5c = *(undefined4 *)(puVar19 + 0x1fc);\n          *(undefined4 *)(puVar19 + 0x1fc) = 0;\n          bVar3 = true;\n          local_60 = *(undefined4 *)(puVar19 + 500);\n          *(undefined4 *)(puVar19 + 500) = 0;\n        }\n        goto LAB_0004ce08;\n      }\n    }\n    else {\n      if (puVar13[1] - 2 < 2) {\n        iVar11 = 0;\nLAB_0004d1d0:\n        if (local_84 == 0) {\n          iVar9 = (*(code *)PTR_ftp_loop_000af968)\n                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,\n                             PTR_opt_000af488[0xe1]);\n        }\n        else {\n          iVar9 = (*(code *)PTR_ftp_loop_000af968)\n                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,0);\n          if ((local_30 == (undefined *)0x0) || (1 < puVar13[1] - 2)) {\n            local_68 = 0;\n          }\n          else {\n            local_68 = has_html_suffix_p();\n            if (local_68 != 0) {\n              local_68 = 0;\n              *param_6 = *param_6 | 1;\n            }\n          }\n        }\n        goto LAB_0004d01c;\n      }\nLAB_0004cef8:\n      iVar9 = 0;\n    }\n    (*(code *)PTR_free_000afd08)(local_38);\n    uVar12 = *param_6 & 2;\n    local_38 = (undefined *)0x0;\n    if ((uVar12 != 0) || (cVar1 = *(char *)(param_8 + 0xc), cVar1 == '\0')) {\n      puVar18 = local_30;\n      if ((local_30 == (undefined *)0x0) ||\n         (puVar19 = PTR_opt_000af488, puVar13 == (undefined4 *)0x0)) goto LAB_0004d2f8;\n      goto LAB_0004d2e0;\n    }\n    *(undefined1 *)(param_8 + 0xc) = 0;\n    if (puVar13 != param_1) {\n      url_free(puVar13);\n    }\n    puVar18 = (undefined *)0x0;\n    puVar13 = (undefined4 *)url_parse(param_2,0,param_8,1);\n    puVar19 = PTR_opt_000af488;\n    if (puVar13 == (undefined4 *)0x0) {\n      if (PTR_opt_000af488[0x16b] != '\0') {\n        puVar18 = (undefined *)quote(puVar5);\n        debug_logprintf(PTR_s_hallenge__000af46c + 0x783c);\n      }\n      goto LAB_0004d2f8;\n    }\n    iVar10 = (*(code *)PTR_strcmp_000afacc)(*puVar13,*param_1);\n    cVar2 = puVar19[0x16b];\n    if (iVar10 == 0) break;\n    if (cVar2 != '\0') {\n      uVar15 = quote(puVar5);\n      debug_logprintf(puVar7,uVar15);\n    }\n    (*(code *)PTR_free_000afd08)(puVar5);\n    puVar5 = (undefined *)xstrdup(*puVar13);\n    cVar4 = cVar1;\n  } while( true );" (do "do") (compound_statement "{\n    local_38 = (undefined *)0x0;\n    (*(code *)PTR_free_000afd08)(local_30);\n    local_30 = (undefined *)0x0;\n    iVar9 = (*pcVar6)(puVar13 + 1,puVar13 + 2);\n    puVar19 = PTR_opt_000af488;\n    if (iVar9 != 0) {\n      iVar10 = iri_new();\n      set_uri_encoding(iVar10,*(undefined4 *)(puVar19 + 0x21c),1);\n      *(undefined1 *)(iVar10 + 0xc) = 0;\n      iVar11 = url_parse(iVar9,&local_34,iVar10,1);\n      if (iVar11 == 0) {\n        puVar20 = (undefined *)url_error(iVar9,local_34);\n        puVar18 = (undefined *)\n                  (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7754,5);\n        logprintf(1,puVar18,iVar9,puVar20);\n        (*(code *)PTR_free_000afd08)(puVar5);\n      }\n      else {\n        if ((*(int *)(iVar11 + 4) == 0) || (*(int *)(iVar11 + 4) == puVar13[1])) {\n          iri_free(iVar10);\n          (*(code *)PTR_free_000afd08)(iVar9);\n          if ((1 < (uint)puVar13[1]) && (*(int *)(iVar11 + 4) != 0)) {\n            if (puVar13[1] - 2 < 2) goto LAB_0004d1d0;\n            url_free(iVar11);\n            goto LAB_0004cef8;\n          }\n          goto LAB_0004cfbc;\n        }\n        puVar18 = (undefined *)\n                  (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7778,5);\n        logprintf(1,puVar18,iVar9);\n        url_free(iVar11);\n        puVar20 = puVar5;\n      }\n      (*(code *)PTR_free_000afd08)(puVar20);\n      (*(code *)PTR_free_000afd08)(iVar9);\n      iri_free(iVar10);\n      if (bVar3) {\n        iVar9 = 0x29;\n        *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n        *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n        *(undefined4 *)(puVar19 + 500) = local_60;\n      }\n      else {\n        iVar9 = 0x29;\n      }\n      goto LAB_0004d368;\n    }\n    if ((uint)puVar13[1] < 2) {\n      iVar11 = 0;\nLAB_0004cfbc:\n      if (((puVar19[0x22c] != '\0') && (*(int *)PTR_hsts_store_000af570 != 0)) &&\n         (iVar9 = hsts_match(*(int *)PTR_hsts_store_000af570,puVar13), iVar9 != 0)) {\n        logprintf(0,puVar20 + 0x77a0);\n      }\n      iVar9 = http_loop(puVar13,param_1,&local_38,&local_30,local_7c,param_6,iVar11,param_8);\nLAB_0004d01c:\n      if (iVar11 != 0) {\n        url_free(iVar11);\n      }\n      puVar19 = PTR_opt_000af488;\n      if ((iVar9 == 6) || (iVar9 == 0x30)) {\n        (*(code *)PTR_free_000afd08)(local_30);\n        local_30 = (undefined *)0x0;\n        puVar18 = local_38;\n        if (local_38 == (undefined *)0x0) {\n          puVar18 = puVar8;\n        }\n        puVar18 = (undefined *)uri_merge(puVar5,puVar18);\n        (*(code *)PTR_free_000afd08)(local_38);\n        iVar10 = *(int *)(puVar19 + 0x218);\n        *(undefined *)(param_8 + 0xc) = puVar19[0x216];\n        local_38 = puVar18;\n        if (iVar10 != 0) {\n          set_uri_encoding(param_8,iVar10,1);\n        }\n        set_content_encoding(param_8,0);\n        (*(code *)PTR_free_000afd08)(*(undefined4 *)(param_8 + 8));\n        *(undefined4 *)(param_8 + 8) = 0;\n        puVar14 = (undefined4 *)url_parse(local_38,&local_34,param_8,1);\n        if (puVar14 == (undefined4 *)0x0) {\n          uVar15 = url_error(local_38,local_34);\n          uVar16 = escnonprint_uri(local_38);\n          puVar18 = PTR_s_hallenge__000af46c + 0x776c;\n          logprintf(1,puVar18,uVar16,uVar15);\n          if (puVar13 != param_1) {\n            url_free(puVar13);\n          }\n          (*(code *)PTR_free_000afd08)(puVar5);\n          (*(code *)PTR_free_000afd08)(local_38);\n          local_38 = (undefined *)0x0;\n          (*(code *)PTR_free_000afd08)(uVar15);\n          if (bVar3) {\n            *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n            *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n            *(undefined4 *)(puVar19 + 500) = local_60;\n          }\n          goto LAB_0004d368;\n        }\n        local_84 = local_84 + 1;\n        (*(code *)PTR_free_000afd08)(local_38);\n        local_38 = (undefined *)0x0;\n        local_38 = (undefined *)xstrdup(*puVar14);\n        if (*(int *)(puVar19 + 0x18) < local_84) {\n          puVar18 = (undefined *)\n                    (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x77d0,5);\n          logprintf(1,puVar18,*(undefined4 *)(puVar19 + 0x18));\n          url_free(puVar14);\n          if (puVar13 != param_1) {\n            url_free(puVar13);\n          }\n          (*(code *)PTR_free_000afd08)(puVar5);\n          (*(code *)PTR_free_000afd08)(local_38);\n          local_38 = (undefined *)0x0;\n          if (bVar3) {\n            iVar9 = 0x1b;\n            *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n            *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n            *(undefined4 *)(puVar19 + 500) = local_60;\n          }\n          else {\n            iVar9 = 0x1b;\n          }\n          goto LAB_0004d368;\n        }\n        (*(code *)PTR_free_000afd08)(puVar5);\n        puVar5 = local_38;\n        if (puVar13 != param_1) {\n          url_free(puVar13);\n        }\n        puVar13 = puVar14;\n        if ((iVar9 != 0x30) && (!bVar3)) {\n          local_64 = *(undefined4 *)(puVar19 + 0x1f8);\n          *(undefined4 *)(puVar19 + 0x1f8) = 0;\n          local_5c = *(undefined4 *)(puVar19 + 0x1fc);\n          *(undefined4 *)(puVar19 + 0x1fc) = 0;\n          bVar3 = true;\n          local_60 = *(undefined4 *)(puVar19 + 500);\n          *(undefined4 *)(puVar19 + 500) = 0;\n        }\n        goto LAB_0004ce08;\n      }\n    }\n    else {\n      if (puVar13[1] - 2 < 2) {\n        iVar11 = 0;\nLAB_0004d1d0:\n        if (local_84 == 0) {\n          iVar9 = (*(code *)PTR_ftp_loop_000af968)\n                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,\n                             PTR_opt_000af488[0xe1]);\n        }\n        else {\n          iVar9 = (*(code *)PTR_ftp_loop_000af968)\n                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,0);\n          if ((local_30 == (undefined *)0x0) || (1 < puVar13[1] - 2)) {\n            local_68 = 0;\n          }\n          else {\n            local_68 = has_html_suffix_p();\n            if (local_68 != 0) {\n              local_68 = 0;\n              *param_6 = *param_6 | 1;\n            }\n          }\n        }\n        goto LAB_0004d01c;\n      }\nLAB_0004cef8:\n      iVar9 = 0;\n    }\n    (*(code *)PTR_free_000afd08)(local_38);\n    uVar12 = *param_6 & 2;\n    local_38 = (undefined *)0x0;\n    if ((uVar12 != 0) || (cVar1 = *(char *)(param_8 + 0xc), cVar1 == '\0')) {\n      puVar18 = local_30;\n      if ((local_30 == (undefined *)0x0) ||\n         (puVar19 = PTR_opt_000af488, puVar13 == (undefined4 *)0x0)) goto LAB_0004d2f8;\n      goto LAB_0004d2e0;\n    }\n    *(undefined1 *)(param_8 + 0xc) = 0;\n    if (puVar13 != param_1) {\n      url_free(puVar13);\n    }\n    puVar18 = (undefined *)0x0;\n    puVar13 = (undefined4 *)url_parse(param_2,0,param_8,1);\n    puVar19 = PTR_opt_000af488;\n    if (puVar13 == (undefined4 *)0x0) {\n      if (PTR_opt_000af488[0x16b] != '\0') {\n        puVar18 = (undefined *)quote(puVar5);\n        debug_logprintf(PTR_s_hallenge__000af46c + 0x783c);\n      }\n      goto LAB_0004d2f8;\n    }\n    iVar10 = (*(code *)PTR_strcmp_000afacc)(*puVar13,*param_1);\n    cVar2 = puVar19[0x16b];\n    if (iVar10 == 0) break;\n    if (cVar2 != '\0') {\n      uVar15 = quote(puVar5);\n      debug_logprintf(puVar7,uVar15);\n    }\n    (*(code *)PTR_free_000afd08)(puVar5);\n    puVar5 = (undefined *)xstrdup(*puVar13);\n    cVar4 = cVar1;\n  }" ({ "{") (expression_statement "local_38 = (undefined *)0x0;" (assignment_expression "local_38 = (undefined *)0x0" (identifier "local_38") (= "=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "(*(code *)PTR_free_000afd08)(local_30);" (call_expression "(*(code *)PTR_free_000afd08)(local_30)" (parenthesized_expression "(*(code *)PTR_free_000afd08)" (( "(") (pointer_expression "*(code *)PTR_free_000afd08" (* "*") (cast_expression "(code *)PTR_free_000afd08" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_000afd08"))) () ")")) (argument_list "(local_30)" (( "(") (identifier "local_30") () ")"))) (; ";")) (expression_statement "local_30 = (undefined *)0x0;" (assignment_expression "local_30 = (undefined *)0x0" (identifier "local_30") (= "=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "iVar9 = (*pcVar6)(puVar13 + 1,puVar13 + 2);" (assignment_expression "iVar9 = (*pcVar6)(puVar13 + 1,puVar13 + 2)" (identifier "iVar9") (= "=") (call_expression "(*pcVar6)(puVar13 + 1,puVar13 + 2)" (parenthesized_expression "(*pcVar6)" (( "(") (pointer_expression "*pcVar6" (* "*") (identifier "pcVar6")) () ")")) (argument_list "(puVar13 + 1,puVar13 + 2)" (( "(") (binary_expression "puVar13 + 1" (identifier "puVar13") (+ "+") (number_literal "1")) (, ",") (binary_expression "puVar13 + 2" (identifier "puVar13") (+ "+") (number_literal "2")) () ")")))) (; ";")) (expression_statement "puVar19 = PTR_opt_000af488;" (assignment_expression "puVar19 = PTR_opt_000af488" (identifier "puVar19") (= "=") (identifier "PTR_opt_000af488")) (; ";")) (if_statement "if (iVar9 != 0) {\n      iVar10 = iri_new();\n      set_uri_encoding(iVar10,*(undefined4 *)(puVar19 + 0x21c),1);\n      *(undefined1 *)(iVar10 + 0xc) = 0;\n      iVar11 = url_parse(iVar9,&local_34,iVar10,1);\n      if (iVar11 == 0) {\n        puVar20 = (undefined *)url_error(iVar9,local_34);\n        puVar18 = (undefined *)\n                  (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7754,5);\n        logprintf(1,puVar18,iVar9,puVar20);\n        (*(code *)PTR_free_000afd08)(puVar5);\n      }\n      else {\n        if ((*(int *)(iVar11 + 4) == 0) || (*(int *)(iVar11 + 4) == puVar13[1])) {\n          iri_free(iVar10);\n          (*(code *)PTR_free_000afd08)(iVar9);\n          if ((1 < (uint)puVar13[1]) && (*(int *)(iVar11 + 4) != 0)) {\n            if (puVar13[1] - 2 < 2) goto LAB_0004d1d0;\n            url_free(iVar11);\n            goto LAB_0004cef8;\n          }\n          goto LAB_0004cfbc;\n        }\n        puVar18 = (undefined *)\n                  (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7778,5);\n        logprintf(1,puVar18,iVar9);\n        url_free(iVar11);\n        puVar20 = puVar5;\n      }\n      (*(code *)PTR_free_000afd08)(puVar20);\n      (*(code *)PTR_free_000afd08)(iVar9);\n      iri_free(iVar10);\n      if (bVar3) {\n        iVar9 = 0x29;\n        *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n        *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n        *(undefined4 *)(puVar19 + 500) = local_60;\n      }\n      else {\n        iVar9 = 0x29;\n      }\n      goto LAB_0004d368;\n    }" (if "if") (parenthesized_expression "(iVar9 != 0)" (( "(") (binary_expression "iVar9 != 0" (identifier "iVar9") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      iVar10 = iri_new();\n      set_uri_encoding(iVar10,*(undefined4 *)(puVar19 + 0x21c),1);\n      *(undefined1 *)(iVar10 + 0xc) = 0;\n      iVar11 = url_parse(iVar9,&local_34,iVar10,1);\n      if (iVar11 == 0) {\n        puVar20 = (undefined *)url_error(iVar9,local_34);\n        puVar18 = (undefined *)\n                  (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7754,5);\n        logprintf(1,puVar18,iVar9,puVar20);\n        (*(code *)PTR_free_000afd08)(puVar5);\n      }\n      else {\n        if ((*(int *)(iVar11 + 4) == 0) || (*(int *)(iVar11 + 4) == puVar13[1])) {\n          iri_free(iVar10);\n          (*(code *)PTR_free_000afd08)(iVar9);\n          if ((1 < (uint)puVar13[1]) && (*(int *)(iVar11 + 4) != 0)) {\n            if (puVar13[1] - 2 < 2) goto LAB_0004d1d0;\n            url_free(iVar11);\n            goto LAB_0004cef8;\n          }\n          goto LAB_0004cfbc;\n        }\n        puVar18 = (undefined *)\n                  (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7778,5);\n        logprintf(1,puVar18,iVar9);\n        url_free(iVar11);\n        puVar20 = puVar5;\n      }\n      (*(code *)PTR_free_000afd08)(puVar20);\n      (*(code *)PTR_free_000afd08)(iVar9);\n      iri_free(iVar10);\n      if (bVar3) {\n        iVar9 = 0x29;\n        *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n        *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n        *(undefined4 *)(puVar19 + 500) = local_60;\n      }\n      else {\n        iVar9 = 0x29;\n      }\n      goto LAB_0004d368;\n    }" ({ "{") (expression_statement "iVar10 = iri_new();" (assignment_expression "iVar10 = iri_new()" (identifier "iVar10") (= "=") (call_expression "iri_new()" (identifier "iri_new") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "set_uri_encoding(iVar10,*(undefined4 *)(puVar19 + 0x21c),1);" (call_expression "set_uri_encoding(iVar10,*(undefined4 *)(puVar19 + 0x21c),1)" (identifier "set_uri_encoding") (argument_list "(iVar10,*(undefined4 *)(puVar19 + 0x21c),1)" (( "(") (identifier "iVar10") (, ",") (pointer_expression "*(undefined4 *)(puVar19 + 0x21c)" (* "*") (cast_expression "(undefined4 *)(puVar19 + 0x21c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar19 + 0x21c)" (( "(") (binary_expression "puVar19 + 0x21c" (identifier "puVar19") (+ "+") (number_literal "0x21c")) () ")")))) (, ",") (number_literal "1") () ")"))) (; ";")) (expression_statement "*(undefined1 *)(iVar10 + 0xc) = 0;" (assignment_expression "*(undefined1 *)(iVar10 + 0xc) = 0" (pointer_expression "*(undefined1 *)(iVar10 + 0xc)" (* "*") (cast_expression "(undefined1 *)(iVar10 + 0xc)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0xc)" (( "(") (binary_expression "iVar10 + 0xc" (identifier "iVar10") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar11 = url_parse(iVar9,&local_34,iVar10,1);" (assignment_expression "iVar11 = url_parse(iVar9,&local_34,iVar10,1)" (identifier "iVar11") (= "=") (call_expression "url_parse(iVar9,&local_34,iVar10,1)" (identifier "url_parse") (argument_list "(iVar9,&local_34,iVar10,1)" (( "(") (identifier "iVar9") (, ",") (pointer_expression "&local_34" (& "&") (identifier "local_34")) (, ",") (identifier "iVar10") (, ",") (number_literal "1") () ")")))) (; ";")) (if_statement "if (iVar11 == 0) {\n        puVar20 = (undefined *)url_error(iVar9,local_34);\n        puVar18 = (undefined *)\n                  (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7754,5);\n        logprintf(1,puVar18,iVar9,puVar20);\n        (*(code *)PTR_free_000afd08)(puVar5);\n      }\n      else {\n        if ((*(int *)(iVar11 + 4) == 0) || (*(int *)(iVar11 + 4) == puVar13[1])) {\n          iri_free(iVar10);\n          (*(code *)PTR_free_000afd08)(iVar9);\n          if ((1 < (uint)puVar13[1]) && (*(int *)(iVar11 + 4) != 0)) {\n            if (puVar13[1] - 2 < 2) goto LAB_0004d1d0;\n            url_free(iVar11);\n            goto LAB_0004cef8;\n          }\n          goto LAB_0004cfbc;\n        }\n        puVar18 = (undefined *)\n                  (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7778,5);\n        logprintf(1,puVar18,iVar9);\n        url_free(iVar11);\n        puVar20 = puVar5;\n      }" (if "if") (parenthesized_expression "(iVar11 == 0)" (( "(") (binary_expression "iVar11 == 0" (identifier "iVar11") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        puVar20 = (undefined *)url_error(iVar9,local_34);\n        puVar18 = (undefined *)\n                  (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7754,5);\n        logprintf(1,puVar18,iVar9,puVar20);\n        (*(code *)PTR_free_000afd08)(puVar5);\n      }" ({ "{") (expression_statement "puVar20 = (undefined *)url_error(iVar9,local_34);" (assignment_expression "puVar20 = (undefined *)url_error(iVar9,local_34)" (identifier "puVar20") (= "=") (cast_expression "(undefined *)url_error(iVar9,local_34)" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "url_error(iVar9,local_34)" (identifier "url_error") (argument_list "(iVar9,local_34)" (( "(") (identifier "iVar9") (, ",") (identifier "local_34") () ")"))))) (; ";")) (expression_statement "puVar18 = (undefined *)\n                  (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7754,5);" (assignment_expression "puVar18 = (undefined *)\n                  (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7754,5)" (identifier "puVar18") (= "=") (cast_expression "(undefined *)\n                  (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7754,5)" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7754,5)" (parenthesized_expression "(*(code *)PTR_dcgettext_000afcf4)" (( "(") (pointer_expression "*(code *)PTR_dcgettext_000afcf4" (* "*") (cast_expression "(code *)PTR_dcgettext_000afcf4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_dcgettext_000afcf4"))) () ")")) (argument_list "(0,PTR_s_hallenge__000af46c + 0x7754,5)" (( "(") (number_literal "0") (, ",") (binary_expression "PTR_s_hallenge__000af46c + 0x7754" (identifier "PTR_s_hallenge__000af46c") (+ "+") (number_literal "0x7754")) (, ",") (number_literal "5") () ")"))))) (; ";")) (expression_statement "logprintf(1,puVar18,iVar9,puVar20);" (call_expression "logprintf(1,puVar18,iVar9,puVar20)" (identifier "logprintf") (argument_list "(1,puVar18,iVar9,puVar20)" (( "(") (number_literal "1") (, ",") (identifier "puVar18") (, ",") (identifier "iVar9") (, ",") (identifier "puVar20") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_free_000afd08)(puVar5);" (call_expression "(*(code *)PTR_free_000afd08)(puVar5)" (parenthesized_expression "(*(code *)PTR_free_000afd08)" (( "(") (pointer_expression "*(code *)PTR_free_000afd08" (* "*") (cast_expression "(code *)PTR_free_000afd08" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_000afd08"))) () ")")) (argument_list "(puVar5)" (( "(") (identifier "puVar5") () ")"))) (; ";")) (} "}")) (else_clause "else {\n        if ((*(int *)(iVar11 + 4) == 0) || (*(int *)(iVar11 + 4) == puVar13[1])) {\n          iri_free(iVar10);\n          (*(code *)PTR_free_000afd08)(iVar9);\n          if ((1 < (uint)puVar13[1]) && (*(int *)(iVar11 + 4) != 0)) {\n            if (puVar13[1] - 2 < 2) goto LAB_0004d1d0;\n            url_free(iVar11);\n            goto LAB_0004cef8;\n          }\n          goto LAB_0004cfbc;\n        }\n        puVar18 = (undefined *)\n                  (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7778,5);\n        logprintf(1,puVar18,iVar9);\n        url_free(iVar11);\n        puVar20 = puVar5;\n      }" (else "else") (compound_statement "{\n        if ((*(int *)(iVar11 + 4) == 0) || (*(int *)(iVar11 + 4) == puVar13[1])) {\n          iri_free(iVar10);\n          (*(code *)PTR_free_000afd08)(iVar9);\n          if ((1 < (uint)puVar13[1]) && (*(int *)(iVar11 + 4) != 0)) {\n            if (puVar13[1] - 2 < 2) goto LAB_0004d1d0;\n            url_free(iVar11);\n            goto LAB_0004cef8;\n          }\n          goto LAB_0004cfbc;\n        }\n        puVar18 = (undefined *)\n                  (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7778,5);\n        logprintf(1,puVar18,iVar9);\n        url_free(iVar11);\n        puVar20 = puVar5;\n      }" ({ "{") (if_statement "if ((*(int *)(iVar11 + 4) == 0) || (*(int *)(iVar11 + 4) == puVar13[1])) {\n          iri_free(iVar10);\n          (*(code *)PTR_free_000afd08)(iVar9);\n          if ((1 < (uint)puVar13[1]) && (*(int *)(iVar11 + 4) != 0)) {\n            if (puVar13[1] - 2 < 2) goto LAB_0004d1d0;\n            url_free(iVar11);\n            goto LAB_0004cef8;\n          }\n          goto LAB_0004cfbc;\n        }" (if "if") (parenthesized_expression "((*(int *)(iVar11 + 4) == 0) || (*(int *)(iVar11 + 4) == puVar13[1]))" (( "(") (binary_expression "(*(int *)(iVar11 + 4) == 0) || (*(int *)(iVar11 + 4) == puVar13[1])" (parenthesized_expression "(*(int *)(iVar11 + 4) == 0)" (( "(") (binary_expression "*(int *)(iVar11 + 4) == 0" (pointer_expression "*(int *)(iVar11 + 4)" (* "*") (cast_expression "(int *)(iVar11 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 4)" (( "(") (binary_expression "iVar11 + 4" (identifier "iVar11") (+ "+") (number_literal "4")) () ")")))) (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(*(int *)(iVar11 + 4) == puVar13[1])" (( "(") (binary_expression "*(int *)(iVar11 + 4) == puVar13[1]" (pointer_expression "*(int *)(iVar11 + 4)" (* "*") (cast_expression "(int *)(iVar11 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 4)" (( "(") (binary_expression "iVar11 + 4" (identifier "iVar11") (+ "+") (number_literal "4")) () ")")))) (== "==") (subscript_expression "puVar13[1]" (identifier "puVar13") ([ "[") (number_literal "1") (] "]"))) () ")"))) () ")")) (compound_statement "{\n          iri_free(iVar10);\n          (*(code *)PTR_free_000afd08)(iVar9);\n          if ((1 < (uint)puVar13[1]) && (*(int *)(iVar11 + 4) != 0)) {\n            if (puVar13[1] - 2 < 2) goto LAB_0004d1d0;\n            url_free(iVar11);\n            goto LAB_0004cef8;\n          }\n          goto LAB_0004cfbc;\n        }" ({ "{") (expression_statement "iri_free(iVar10);" (call_expression "iri_free(iVar10)" (identifier "iri_free") (argument_list "(iVar10)" (( "(") (identifier "iVar10") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_free_000afd08)(iVar9);" (call_expression "(*(code *)PTR_free_000afd08)(iVar9)" (parenthesized_expression "(*(code *)PTR_free_000afd08)" (( "(") (pointer_expression "*(code *)PTR_free_000afd08" (* "*") (cast_expression "(code *)PTR_free_000afd08" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_000afd08"))) () ")")) (argument_list "(iVar9)" (( "(") (identifier "iVar9") () ")"))) (; ";")) (if_statement "if ((1 < (uint)puVar13[1]) && (*(int *)(iVar11 + 4) != 0)) {\n            if (puVar13[1] - 2 < 2) goto LAB_0004d1d0;\n            url_free(iVar11);\n            goto LAB_0004cef8;\n          }" (if "if") (parenthesized_expression "((1 < (uint)puVar13[1]) && (*(int *)(iVar11 + 4) != 0))" (( "(") (binary_expression "(1 < (uint)puVar13[1]) && (*(int *)(iVar11 + 4) != 0)" (parenthesized_expression "(1 < (uint)puVar13[1])" (( "(") (binary_expression "1 < (uint)puVar13[1]" (number_literal "1") (< "<") (cast_expression "(uint)puVar13[1]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "puVar13[1]" (identifier "puVar13") ([ "[") (number_literal "1") (] "]")))) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(iVar11 + 4) != 0)" (( "(") (binary_expression "*(int *)(iVar11 + 4) != 0" (pointer_expression "*(int *)(iVar11 + 4)" (* "*") (cast_expression "(int *)(iVar11 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 4)" (( "(") (binary_expression "iVar11 + 4" (identifier "iVar11") (+ "+") (number_literal "4")) () ")")))) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n            if (puVar13[1] - 2 < 2) goto LAB_0004d1d0;\n            url_free(iVar11);\n            goto LAB_0004cef8;\n          }" ({ "{") (if_statement "if (puVar13[1] - 2 < 2) goto LAB_0004d1d0;" (if "if") (parenthesized_expression "(puVar13[1] - 2 < 2)" (( "(") (binary_expression "puVar13[1] - 2 < 2" (binary_expression "puVar13[1] - 2" (subscript_expression "puVar13[1]" (identifier "puVar13") ([ "[") (number_literal "1") (] "]")) (- "-") (number_literal "2")) (< "<") (number_literal "2")) () ")")) (goto_statement "goto LAB_0004d1d0;" (goto "goto") (statement_identifier "LAB_0004d1d0") (; ";"))) (expression_statement "url_free(iVar11);" (call_expression "url_free(iVar11)" (identifier "url_free") (argument_list "(iVar11)" (( "(") (identifier "iVar11") () ")"))) (; ";")) (goto_statement "goto LAB_0004cef8;" (goto "goto") (statement_identifier "LAB_0004cef8") (; ";")) (} "}"))) (goto_statement "goto LAB_0004cfbc;" (goto "goto") (statement_identifier "LAB_0004cfbc") (; ";")) (} "}"))) (expression_statement "puVar18 = (undefined *)\n                  (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7778,5);" (assignment_expression "puVar18 = (undefined *)\n                  (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7778,5)" (identifier "puVar18") (= "=") (cast_expression "(undefined *)\n                  (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7778,5)" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7778,5)" (parenthesized_expression "(*(code *)PTR_dcgettext_000afcf4)" (( "(") (pointer_expression "*(code *)PTR_dcgettext_000afcf4" (* "*") (cast_expression "(code *)PTR_dcgettext_000afcf4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_dcgettext_000afcf4"))) () ")")) (argument_list "(0,PTR_s_hallenge__000af46c + 0x7778,5)" (( "(") (number_literal "0") (, ",") (binary_expression "PTR_s_hallenge__000af46c + 0x7778" (identifier "PTR_s_hallenge__000af46c") (+ "+") (number_literal "0x7778")) (, ",") (number_literal "5") () ")"))))) (; ";")) (expression_statement "logprintf(1,puVar18,iVar9);" (call_expression "logprintf(1,puVar18,iVar9)" (identifier "logprintf") (argument_list "(1,puVar18,iVar9)" (( "(") (number_literal "1") (, ",") (identifier "puVar18") (, ",") (identifier "iVar9") () ")"))) (; ";")) (expression_statement "url_free(iVar11);" (call_expression "url_free(iVar11)" (identifier "url_free") (argument_list "(iVar11)" (( "(") (identifier "iVar11") () ")"))) (; ";")) (expression_statement "puVar20 = puVar5;" (assignment_expression "puVar20 = puVar5" (identifier "puVar20") (= "=") (identifier "puVar5")) (; ";")) (} "}")))) (expression_statement "(*(code *)PTR_free_000afd08)(puVar20);" (call_expression "(*(code *)PTR_free_000afd08)(puVar20)" (parenthesized_expression "(*(code *)PTR_free_000afd08)" (( "(") (pointer_expression "*(code *)PTR_free_000afd08" (* "*") (cast_expression "(code *)PTR_free_000afd08" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_000afd08"))) () ")")) (argument_list "(puVar20)" (( "(") (identifier "puVar20") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_free_000afd08)(iVar9);" (call_expression "(*(code *)PTR_free_000afd08)(iVar9)" (parenthesized_expression "(*(code *)PTR_free_000afd08)" (( "(") (pointer_expression "*(code *)PTR_free_000afd08" (* "*") (cast_expression "(code *)PTR_free_000afd08" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_000afd08"))) () ")")) (argument_list "(iVar9)" (( "(") (identifier "iVar9") () ")"))) (; ";")) (expression_statement "iri_free(iVar10);" (call_expression "iri_free(iVar10)" (identifier "iri_free") (argument_list "(iVar10)" (( "(") (identifier "iVar10") () ")"))) (; ";")) (if_statement "if (bVar3) {\n        iVar9 = 0x29;\n        *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n        *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n        *(undefined4 *)(puVar19 + 500) = local_60;\n      }\n      else {\n        iVar9 = 0x29;\n      }" (if "if") (parenthesized_expression "(bVar3)" (( "(") (identifier "bVar3") () ")")) (compound_statement "{\n        iVar9 = 0x29;\n        *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n        *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n        *(undefined4 *)(puVar19 + 500) = local_60;\n      }" ({ "{") (expression_statement "iVar9 = 0x29;" (assignment_expression "iVar9 = 0x29" (identifier "iVar9") (= "=") (number_literal "0x29")) (; ";")) (expression_statement "*(undefined4 *)(puVar19 + 0x1f8) = local_64;" (assignment_expression "*(undefined4 *)(puVar19 + 0x1f8) = local_64" (pointer_expression "*(undefined4 *)(puVar19 + 0x1f8)" (* "*") (cast_expression "(undefined4 *)(puVar19 + 0x1f8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar19 + 0x1f8)" (( "(") (binary_expression "puVar19 + 0x1f8" (identifier "puVar19") (+ "+") (number_literal "0x1f8")) () ")")))) (= "=") (identifier "local_64")) (; ";")) (expression_statement "*(undefined4 *)(puVar19 + 0x1fc) = local_5c;" (assignment_expression "*(undefined4 *)(puVar19 + 0x1fc) = local_5c" (pointer_expression "*(undefined4 *)(puVar19 + 0x1fc)" (* "*") (cast_expression "(undefined4 *)(puVar19 + 0x1fc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar19 + 0x1fc)" (( "(") (binary_expression "puVar19 + 0x1fc" (identifier "puVar19") (+ "+") (number_literal "0x1fc")) () ")")))) (= "=") (identifier "local_5c")) (; ";")) (expression_statement "*(undefined4 *)(puVar19 + 500) = local_60;" (assignment_expression "*(undefined4 *)(puVar19 + 500) = local_60" (pointer_expression "*(undefined4 *)(puVar19 + 500)" (* "*") (cast_expression "(undefined4 *)(puVar19 + 500)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar19 + 500)" (( "(") (binary_expression "puVar19 + 500" (identifier "puVar19") (+ "+") (number_literal "500")) () ")")))) (= "=") (identifier "local_60")) (; ";")) (} "}")) (else_clause "else {\n        iVar9 = 0x29;\n      }" (else "else") (compound_statement "{\n        iVar9 = 0x29;\n      }" ({ "{") (expression_statement "iVar9 = 0x29;" (assignment_expression "iVar9 = 0x29" (identifier "iVar9") (= "=") (number_literal "0x29")) (; ";")) (} "}")))) (goto_statement "goto LAB_0004d368;" (goto "goto") (statement_identifier "LAB_0004d368") (; ";")) (} "}"))) (if_statement "if ((uint)puVar13[1] < 2) {\n      iVar11 = 0;\nLAB_0004cfbc:\n      if (((puVar19[0x22c] != '\0') && (*(int *)PTR_hsts_store_000af570 != 0)) &&\n         (iVar9 = hsts_match(*(int *)PTR_hsts_store_000af570,puVar13), iVar9 != 0)) {\n        logprintf(0,puVar20 + 0x77a0);\n      }\n      iVar9 = http_loop(puVar13,param_1,&local_38,&local_30,local_7c,param_6,iVar11,param_8);\nLAB_0004d01c:\n      if (iVar11 != 0) {\n        url_free(iVar11);\n      }\n      puVar19 = PTR_opt_000af488;\n      if ((iVar9 == 6) || (iVar9 == 0x30)) {\n        (*(code *)PTR_free_000afd08)(local_30);\n        local_30 = (undefined *)0x0;\n        puVar18 = local_38;\n        if (local_38 == (undefined *)0x0) {\n          puVar18 = puVar8;\n        }\n        puVar18 = (undefined *)uri_merge(puVar5,puVar18);\n        (*(code *)PTR_free_000afd08)(local_38);\n        iVar10 = *(int *)(puVar19 + 0x218);\n        *(undefined *)(param_8 + 0xc) = puVar19[0x216];\n        local_38 = puVar18;\n        if (iVar10 != 0) {\n          set_uri_encoding(param_8,iVar10,1);\n        }\n        set_content_encoding(param_8,0);\n        (*(code *)PTR_free_000afd08)(*(undefined4 *)(param_8 + 8));\n        *(undefined4 *)(param_8 + 8) = 0;\n        puVar14 = (undefined4 *)url_parse(local_38,&local_34,param_8,1);\n        if (puVar14 == (undefined4 *)0x0) {\n          uVar15 = url_error(local_38,local_34);\n          uVar16 = escnonprint_uri(local_38);\n          puVar18 = PTR_s_hallenge__000af46c + 0x776c;\n          logprintf(1,puVar18,uVar16,uVar15);\n          if (puVar13 != param_1) {\n            url_free(puVar13);\n          }\n          (*(code *)PTR_free_000afd08)(puVar5);\n          (*(code *)PTR_free_000afd08)(local_38);\n          local_38 = (undefined *)0x0;\n          (*(code *)PTR_free_000afd08)(uVar15);\n          if (bVar3) {\n            *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n            *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n            *(undefined4 *)(puVar19 + 500) = local_60;\n          }\n          goto LAB_0004d368;\n        }\n        local_84 = local_84 + 1;\n        (*(code *)PTR_free_000afd08)(local_38);\n        local_38 = (undefined *)0x0;\n        local_38 = (undefined *)xstrdup(*puVar14);\n        if (*(int *)(puVar19 + 0x18) < local_84) {\n          puVar18 = (undefined *)\n                    (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x77d0,5);\n          logprintf(1,puVar18,*(undefined4 *)(puVar19 + 0x18));\n          url_free(puVar14);\n          if (puVar13 != param_1) {\n            url_free(puVar13);\n          }\n          (*(code *)PTR_free_000afd08)(puVar5);\n          (*(code *)PTR_free_000afd08)(local_38);\n          local_38 = (undefined *)0x0;\n          if (bVar3) {\n            iVar9 = 0x1b;\n            *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n            *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n            *(undefined4 *)(puVar19 + 500) = local_60;\n          }\n          else {\n            iVar9 = 0x1b;\n          }\n          goto LAB_0004d368;\n        }\n        (*(code *)PTR_free_000afd08)(puVar5);\n        puVar5 = local_38;\n        if (puVar13 != param_1) {\n          url_free(puVar13);\n        }\n        puVar13 = puVar14;\n        if ((iVar9 != 0x30) && (!bVar3)) {\n          local_64 = *(undefined4 *)(puVar19 + 0x1f8);\n          *(undefined4 *)(puVar19 + 0x1f8) = 0;\n          local_5c = *(undefined4 *)(puVar19 + 0x1fc);\n          *(undefined4 *)(puVar19 + 0x1fc) = 0;\n          bVar3 = true;\n          local_60 = *(undefined4 *)(puVar19 + 500);\n          *(undefined4 *)(puVar19 + 500) = 0;\n        }\n        goto LAB_0004ce08;\n      }\n    }\n    else {\n      if (puVar13[1] - 2 < 2) {\n        iVar11 = 0;\nLAB_0004d1d0:\n        if (local_84 == 0) {\n          iVar9 = (*(code *)PTR_ftp_loop_000af968)\n                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,\n                             PTR_opt_000af488[0xe1]);\n        }\n        else {\n          iVar9 = (*(code *)PTR_ftp_loop_000af968)\n                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,0);\n          if ((local_30 == (undefined *)0x0) || (1 < puVar13[1] - 2)) {\n            local_68 = 0;\n          }\n          else {\n            local_68 = has_html_suffix_p();\n            if (local_68 != 0) {\n              local_68 = 0;\n              *param_6 = *param_6 | 1;\n            }\n          }\n        }\n        goto LAB_0004d01c;\n      }\nLAB_0004cef8:\n      iVar9 = 0;\n    }" (if "if") (parenthesized_expression "((uint)puVar13[1] < 2)" (( "(") (binary_expression "(uint)puVar13[1] < 2" (cast_expression "(uint)puVar13[1]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "puVar13[1]" (identifier "puVar13") ([ "[") (number_literal "1") (] "]"))) (< "<") (number_literal "2")) () ")")) (compound_statement "{\n      iVar11 = 0;\nLAB_0004cfbc:\n      if (((puVar19[0x22c] != '\0') && (*(int *)PTR_hsts_store_000af570 != 0)) &&\n         (iVar9 = hsts_match(*(int *)PTR_hsts_store_000af570,puVar13), iVar9 != 0)) {\n        logprintf(0,puVar20 + 0x77a0);\n      }\n      iVar9 = http_loop(puVar13,param_1,&local_38,&local_30,local_7c,param_6,iVar11,param_8);\nLAB_0004d01c:\n      if (iVar11 != 0) {\n        url_free(iVar11);\n      }\n      puVar19 = PTR_opt_000af488;\n      if ((iVar9 == 6) || (iVar9 == 0x30)) {\n        (*(code *)PTR_free_000afd08)(local_30);\n        local_30 = (undefined *)0x0;\n        puVar18 = local_38;\n        if (local_38 == (undefined *)0x0) {\n          puVar18 = puVar8;\n        }\n        puVar18 = (undefined *)uri_merge(puVar5,puVar18);\n        (*(code *)PTR_free_000afd08)(local_38);\n        iVar10 = *(int *)(puVar19 + 0x218);\n        *(undefined *)(param_8 + 0xc) = puVar19[0x216];\n        local_38 = puVar18;\n        if (iVar10 != 0) {\n          set_uri_encoding(param_8,iVar10,1);\n        }\n        set_content_encoding(param_8,0);\n        (*(code *)PTR_free_000afd08)(*(undefined4 *)(param_8 + 8));\n        *(undefined4 *)(param_8 + 8) = 0;\n        puVar14 = (undefined4 *)url_parse(local_38,&local_34,param_8,1);\n        if (puVar14 == (undefined4 *)0x0) {\n          uVar15 = url_error(local_38,local_34);\n          uVar16 = escnonprint_uri(local_38);\n          puVar18 = PTR_s_hallenge__000af46c + 0x776c;\n          logprintf(1,puVar18,uVar16,uVar15);\n          if (puVar13 != param_1) {\n            url_free(puVar13);\n          }\n          (*(code *)PTR_free_000afd08)(puVar5);\n          (*(code *)PTR_free_000afd08)(local_38);\n          local_38 = (undefined *)0x0;\n          (*(code *)PTR_free_000afd08)(uVar15);\n          if (bVar3) {\n            *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n            *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n            *(undefined4 *)(puVar19 + 500) = local_60;\n          }\n          goto LAB_0004d368;\n        }\n        local_84 = local_84 + 1;\n        (*(code *)PTR_free_000afd08)(local_38);\n        local_38 = (undefined *)0x0;\n        local_38 = (undefined *)xstrdup(*puVar14);\n        if (*(int *)(puVar19 + 0x18) < local_84) {\n          puVar18 = (undefined *)\n                    (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x77d0,5);\n          logprintf(1,puVar18,*(undefined4 *)(puVar19 + 0x18));\n          url_free(puVar14);\n          if (puVar13 != param_1) {\n            url_free(puVar13);\n          }\n          (*(code *)PTR_free_000afd08)(puVar5);\n          (*(code *)PTR_free_000afd08)(local_38);\n          local_38 = (undefined *)0x0;\n          if (bVar3) {\n            iVar9 = 0x1b;\n            *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n            *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n            *(undefined4 *)(puVar19 + 500) = local_60;\n          }\n          else {\n            iVar9 = 0x1b;\n          }\n          goto LAB_0004d368;\n        }\n        (*(code *)PTR_free_000afd08)(puVar5);\n        puVar5 = local_38;\n        if (puVar13 != param_1) {\n          url_free(puVar13);\n        }\n        puVar13 = puVar14;\n        if ((iVar9 != 0x30) && (!bVar3)) {\n          local_64 = *(undefined4 *)(puVar19 + 0x1f8);\n          *(undefined4 *)(puVar19 + 0x1f8) = 0;\n          local_5c = *(undefined4 *)(puVar19 + 0x1fc);\n          *(undefined4 *)(puVar19 + 0x1fc) = 0;\n          bVar3 = true;\n          local_60 = *(undefined4 *)(puVar19 + 500);\n          *(undefined4 *)(puVar19 + 500) = 0;\n        }\n        goto LAB_0004ce08;\n      }\n    }" ({ "{") (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" (identifier "iVar11") (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_0004cfbc:\n      if (((puVar19[0x22c] != '\0') && (*(int *)PTR_hsts_store_000af570 != 0)) &&\n         (iVar9 = hsts_match(*(int *)PTR_hsts_store_000af570,puVar13), iVar9 != 0)) {\n        logprintf(0,puVar20 + 0x77a0);\n      }" (statement_identifier "LAB_0004cfbc") (: ":") (if_statement "if (((puVar19[0x22c] != '\0') && (*(int *)PTR_hsts_store_000af570 != 0)) &&\n         (iVar9 = hsts_match(*(int *)PTR_hsts_store_000af570,puVar13), iVar9 != 0)) {\n        logprintf(0,puVar20 + 0x77a0);\n      }" (if "if") (parenthesized_expression "(((puVar19[0x22c] != '\0') && (*(int *)PTR_hsts_store_000af570 != 0)) &&\n         (iVar9 = hsts_match(*(int *)PTR_hsts_store_000af570,puVar13), iVar9 != 0))" (( "(") (binary_expression "((puVar19[0x22c] != '\0') && (*(int *)PTR_hsts_store_000af570 != 0)) &&\n         (iVar9 = hsts_match(*(int *)PTR_hsts_store_000af570,puVar13), iVar9 != 0)" (parenthesized_expression "((puVar19[0x22c] != '\0') && (*(int *)PTR_hsts_store_000af570 != 0))" (( "(") (binary_expression "(puVar19[0x22c] != '\0') && (*(int *)PTR_hsts_store_000af570 != 0)" (parenthesized_expression "(puVar19[0x22c] != '\0')" (( "(") (binary_expression "puVar19[0x22c] != '\0'" (subscript_expression "puVar19[0x22c]" (identifier "puVar19") ([ "[") (number_literal "0x22c") (] "]")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(*(int *)PTR_hsts_store_000af570 != 0)" (( "(") (binary_expression "*(int *)PTR_hsts_store_000af570 != 0" (pointer_expression "*(int *)PTR_hsts_store_000af570" (* "*") (cast_expression "(int *)PTR_hsts_store_000af570" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_hsts_store_000af570"))) (!= "!=") (number_literal "0")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(iVar9 = hsts_match(*(int *)PTR_hsts_store_000af570,puVar13), iVar9 != 0)" (( "(") (comma_expression "iVar9 = hsts_match(*(int *)PTR_hsts_store_000af570,puVar13), iVar9 != 0" (assignment_expression "iVar9 = hsts_match(*(int *)PTR_hsts_store_000af570,puVar13)" (identifier "iVar9") (= "=") (call_expression "hsts_match(*(int *)PTR_hsts_store_000af570,puVar13)" (identifier "hsts_match") (argument_list "(*(int *)PTR_hsts_store_000af570,puVar13)" (( "(") (pointer_expression "*(int *)PTR_hsts_store_000af570" (* "*") (cast_expression "(int *)PTR_hsts_store_000af570" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_hsts_store_000af570"))) (, ",") (identifier "puVar13") () ")")))) (, ",") (binary_expression "iVar9 != 0" (identifier "iVar9") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n        logprintf(0,puVar20 + 0x77a0);\n      }" ({ "{") (expression_statement "logprintf(0,puVar20 + 0x77a0);" (call_expression "logprintf(0,puVar20 + 0x77a0)" (identifier "logprintf") (argument_list "(0,puVar20 + 0x77a0)" (( "(") (number_literal "0") (, ",") (binary_expression "puVar20 + 0x77a0" (identifier "puVar20") (+ "+") (number_literal "0x77a0")) () ")"))) (; ";")) (} "}")))) (expression_statement "iVar9 = http_loop(puVar13,param_1,&local_38,&local_30,local_7c,param_6,iVar11,param_8);" (assignment_expression "iVar9 = http_loop(puVar13,param_1,&local_38,&local_30,local_7c,param_6,iVar11,param_8)" (identifier "iVar9") (= "=") (call_expression "http_loop(puVar13,param_1,&local_38,&local_30,local_7c,param_6,iVar11,param_8)" (identifier "http_loop") (argument_list "(puVar13,param_1,&local_38,&local_30,local_7c,param_6,iVar11,param_8)" (( "(") (identifier "puVar13") (, ",") (identifier "param_1") (, ",") (pointer_expression "&local_38" (& "&") (identifier "local_38")) (, ",") (pointer_expression "&local_30" (& "&") (identifier "local_30")) (, ",") (identifier "local_7c") (, ",") (identifier "param_6") (, ",") (identifier "iVar11") (, ",") (identifier "param_8") () ")")))) (; ";")) (labeled_statement "LAB_0004d01c:\n      if (iVar11 != 0) {\n        url_free(iVar11);\n      }" (statement_identifier "LAB_0004d01c") (: ":") (if_statement "if (iVar11 != 0) {\n        url_free(iVar11);\n      }" (if "if") (parenthesized_expression "(iVar11 != 0)" (( "(") (binary_expression "iVar11 != 0" (identifier "iVar11") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        url_free(iVar11);\n      }" ({ "{") (expression_statement "url_free(iVar11);" (call_expression "url_free(iVar11)" (identifier "url_free") (argument_list "(iVar11)" (( "(") (identifier "iVar11") () ")"))) (; ";")) (} "}")))) (expression_statement "puVar19 = PTR_opt_000af488;" (assignment_expression "puVar19 = PTR_opt_000af488" (identifier "puVar19") (= "=") (identifier "PTR_opt_000af488")) (; ";")) (if_statement "if ((iVar9 == 6) || (iVar9 == 0x30)) {\n        (*(code *)PTR_free_000afd08)(local_30);\n        local_30 = (undefined *)0x0;\n        puVar18 = local_38;\n        if (local_38 == (undefined *)0x0) {\n          puVar18 = puVar8;\n        }\n        puVar18 = (undefined *)uri_merge(puVar5,puVar18);\n        (*(code *)PTR_free_000afd08)(local_38);\n        iVar10 = *(int *)(puVar19 + 0x218);\n        *(undefined *)(param_8 + 0xc) = puVar19[0x216];\n        local_38 = puVar18;\n        if (iVar10 != 0) {\n          set_uri_encoding(param_8,iVar10,1);\n        }\n        set_content_encoding(param_8,0);\n        (*(code *)PTR_free_000afd08)(*(undefined4 *)(param_8 + 8));\n        *(undefined4 *)(param_8 + 8) = 0;\n        puVar14 = (undefined4 *)url_parse(local_38,&local_34,param_8,1);\n        if (puVar14 == (undefined4 *)0x0) {\n          uVar15 = url_error(local_38,local_34);\n          uVar16 = escnonprint_uri(local_38);\n          puVar18 = PTR_s_hallenge__000af46c + 0x776c;\n          logprintf(1,puVar18,uVar16,uVar15);\n          if (puVar13 != param_1) {\n            url_free(puVar13);\n          }\n          (*(code *)PTR_free_000afd08)(puVar5);\n          (*(code *)PTR_free_000afd08)(local_38);\n          local_38 = (undefined *)0x0;\n          (*(code *)PTR_free_000afd08)(uVar15);\n          if (bVar3) {\n            *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n            *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n            *(undefined4 *)(puVar19 + 500) = local_60;\n          }\n          goto LAB_0004d368;\n        }\n        local_84 = local_84 + 1;\n        (*(code *)PTR_free_000afd08)(local_38);\n        local_38 = (undefined *)0x0;\n        local_38 = (undefined *)xstrdup(*puVar14);\n        if (*(int *)(puVar19 + 0x18) < local_84) {\n          puVar18 = (undefined *)\n                    (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x77d0,5);\n          logprintf(1,puVar18,*(undefined4 *)(puVar19 + 0x18));\n          url_free(puVar14);\n          if (puVar13 != param_1) {\n            url_free(puVar13);\n          }\n          (*(code *)PTR_free_000afd08)(puVar5);\n          (*(code *)PTR_free_000afd08)(local_38);\n          local_38 = (undefined *)0x0;\n          if (bVar3) {\n            iVar9 = 0x1b;\n            *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n            *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n            *(undefined4 *)(puVar19 + 500) = local_60;\n          }\n          else {\n            iVar9 = 0x1b;\n          }\n          goto LAB_0004d368;\n        }\n        (*(code *)PTR_free_000afd08)(puVar5);\n        puVar5 = local_38;\n        if (puVar13 != param_1) {\n          url_free(puVar13);\n        }\n        puVar13 = puVar14;\n        if ((iVar9 != 0x30) && (!bVar3)) {\n          local_64 = *(undefined4 *)(puVar19 + 0x1f8);\n          *(undefined4 *)(puVar19 + 0x1f8) = 0;\n          local_5c = *(undefined4 *)(puVar19 + 0x1fc);\n          *(undefined4 *)(puVar19 + 0x1fc) = 0;\n          bVar3 = true;\n          local_60 = *(undefined4 *)(puVar19 + 500);\n          *(undefined4 *)(puVar19 + 500) = 0;\n        }\n        goto LAB_0004ce08;\n      }" (if "if") (parenthesized_expression "((iVar9 == 6) || (iVar9 == 0x30))" (( "(") (binary_expression "(iVar9 == 6) || (iVar9 == 0x30)" (parenthesized_expression "(iVar9 == 6)" (( "(") (binary_expression "iVar9 == 6" (identifier "iVar9") (== "==") (number_literal "6")) () ")")) (|| "||") (parenthesized_expression "(iVar9 == 0x30)" (( "(") (binary_expression "iVar9 == 0x30" (identifier "iVar9") (== "==") (number_literal "0x30")) () ")"))) () ")")) (compound_statement "{\n        (*(code *)PTR_free_000afd08)(local_30);\n        local_30 = (undefined *)0x0;\n        puVar18 = local_38;\n        if (local_38 == (undefined *)0x0) {\n          puVar18 = puVar8;\n        }\n        puVar18 = (undefined *)uri_merge(puVar5,puVar18);\n        (*(code *)PTR_free_000afd08)(local_38);\n        iVar10 = *(int *)(puVar19 + 0x218);\n        *(undefined *)(param_8 + 0xc) = puVar19[0x216];\n        local_38 = puVar18;\n        if (iVar10 != 0) {\n          set_uri_encoding(param_8,iVar10,1);\n        }\n        set_content_encoding(param_8,0);\n        (*(code *)PTR_free_000afd08)(*(undefined4 *)(param_8 + 8));\n        *(undefined4 *)(param_8 + 8) = 0;\n        puVar14 = (undefined4 *)url_parse(local_38,&local_34,param_8,1);\n        if (puVar14 == (undefined4 *)0x0) {\n          uVar15 = url_error(local_38,local_34);\n          uVar16 = escnonprint_uri(local_38);\n          puVar18 = PTR_s_hallenge__000af46c + 0x776c;\n          logprintf(1,puVar18,uVar16,uVar15);\n          if (puVar13 != param_1) {\n            url_free(puVar13);\n          }\n          (*(code *)PTR_free_000afd08)(puVar5);\n          (*(code *)PTR_free_000afd08)(local_38);\n          local_38 = (undefined *)0x0;\n          (*(code *)PTR_free_000afd08)(uVar15);\n          if (bVar3) {\n            *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n            *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n            *(undefined4 *)(puVar19 + 500) = local_60;\n          }\n          goto LAB_0004d368;\n        }\n        local_84 = local_84 + 1;\n        (*(code *)PTR_free_000afd08)(local_38);\n        local_38 = (undefined *)0x0;\n        local_38 = (undefined *)xstrdup(*puVar14);\n        if (*(int *)(puVar19 + 0x18) < local_84) {\n          puVar18 = (undefined *)\n                    (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x77d0,5);\n          logprintf(1,puVar18,*(undefined4 *)(puVar19 + 0x18));\n          url_free(puVar14);\n          if (puVar13 != param_1) {\n            url_free(puVar13);\n          }\n          (*(code *)PTR_free_000afd08)(puVar5);\n          (*(code *)PTR_free_000afd08)(local_38);\n          local_38 = (undefined *)0x0;\n          if (bVar3) {\n            iVar9 = 0x1b;\n            *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n            *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n            *(undefined4 *)(puVar19 + 500) = local_60;\n          }\n          else {\n            iVar9 = 0x1b;\n          }\n          goto LAB_0004d368;\n        }\n        (*(code *)PTR_free_000afd08)(puVar5);\n        puVar5 = local_38;\n        if (puVar13 != param_1) {\n          url_free(puVar13);\n        }\n        puVar13 = puVar14;\n        if ((iVar9 != 0x30) && (!bVar3)) {\n          local_64 = *(undefined4 *)(puVar19 + 0x1f8);\n          *(undefined4 *)(puVar19 + 0x1f8) = 0;\n          local_5c = *(undefined4 *)(puVar19 + 0x1fc);\n          *(undefined4 *)(puVar19 + 0x1fc) = 0;\n          bVar3 = true;\n          local_60 = *(undefined4 *)(puVar19 + 500);\n          *(undefined4 *)(puVar19 + 500) = 0;\n        }\n        goto LAB_0004ce08;\n      }" ({ "{") (expression_statement "(*(code *)PTR_free_000afd08)(local_30);" (call_expression "(*(code *)PTR_free_000afd08)(local_30)" (parenthesized_expression "(*(code *)PTR_free_000afd08)" (( "(") (pointer_expression "*(code *)PTR_free_000afd08" (* "*") (cast_expression "(code *)PTR_free_000afd08" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_000afd08"))) () ")")) (argument_list "(local_30)" (( "(") (identifier "local_30") () ")"))) (; ";")) (expression_statement "local_30 = (undefined *)0x0;" (assignment_expression "local_30 = (undefined *)0x0" (identifier "local_30") (= "=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "puVar18 = local_38;" (assignment_expression "puVar18 = local_38" (identifier "puVar18") (= "=") (identifier "local_38")) (; ";")) (if_statement "if (local_38 == (undefined *)0x0) {\n          puVar18 = puVar8;\n        }" (if "if") (parenthesized_expression "(local_38 == (undefined *)0x0)" (( "(") (binary_expression "local_38 == (undefined *)0x0" (identifier "local_38") (== "==") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          puVar18 = puVar8;\n        }" ({ "{") (expression_statement "puVar18 = puVar8;" (assignment_expression "puVar18 = puVar8" (identifier "puVar18") (= "=") (identifier "puVar8")) (; ";")) (} "}"))) (expression_statement "puVar18 = (undefined *)uri_merge(puVar5,puVar18);" (assignment_expression "puVar18 = (undefined *)uri_merge(puVar5,puVar18)" (identifier "puVar18") (= "=") (cast_expression "(undefined *)uri_merge(puVar5,puVar18)" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "uri_merge(puVar5,puVar18)" (identifier "uri_merge") (argument_list "(puVar5,puVar18)" (( "(") (identifier "puVar5") (, ",") (identifier "puVar18") () ")"))))) (; ";")) (expression_statement "(*(code *)PTR_free_000afd08)(local_38);" (call_expression "(*(code *)PTR_free_000afd08)(local_38)" (parenthesized_expression "(*(code *)PTR_free_000afd08)" (( "(") (pointer_expression "*(code *)PTR_free_000afd08" (* "*") (cast_expression "(code *)PTR_free_000afd08" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_000afd08"))) () ")")) (argument_list "(local_38)" (( "(") (identifier "local_38") () ")"))) (; ";")) (expression_statement "iVar10 = *(int *)(puVar19 + 0x218);" (assignment_expression "iVar10 = *(int *)(puVar19 + 0x218)" (identifier "iVar10") (= "=") (pointer_expression "*(int *)(puVar19 + 0x218)" (* "*") (cast_expression "(int *)(puVar19 + 0x218)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar19 + 0x218)" (( "(") (binary_expression "puVar19 + 0x218" (identifier "puVar19") (+ "+") (number_literal "0x218")) () ")"))))) (; ";")) (expression_statement "*(undefined *)(param_8 + 0xc) = puVar19[0x216];" (assignment_expression "*(undefined *)(param_8 + 0xc) = puVar19[0x216]" (pointer_expression "*(undefined *)(param_8 + 0xc)" (* "*") (cast_expression "(undefined *)(param_8 + 0xc)" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_8 + 0xc)" (( "(") (binary_expression "param_8 + 0xc" (identifier "param_8") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (subscript_expression "puVar19[0x216]" (identifier "puVar19") ([ "[") (number_literal "0x216") (] "]"))) (; ";")) (expression_statement "local_38 = puVar18;" (assignment_expression "local_38 = puVar18" (identifier "local_38") (= "=") (identifier "puVar18")) (; ";")) (if_statement "if (iVar10 != 0) {\n          set_uri_encoding(param_8,iVar10,1);\n        }" (if "if") (parenthesized_expression "(iVar10 != 0)" (( "(") (binary_expression "iVar10 != 0" (identifier "iVar10") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          set_uri_encoding(param_8,iVar10,1);\n        }" ({ "{") (expression_statement "set_uri_encoding(param_8,iVar10,1);" (call_expression "set_uri_encoding(param_8,iVar10,1)" (identifier "set_uri_encoding") (argument_list "(param_8,iVar10,1)" (( "(") (identifier "param_8") (, ",") (identifier "iVar10") (, ",") (number_literal "1") () ")"))) (; ";")) (} "}"))) (expression_statement "set_content_encoding(param_8,0);" (call_expression "set_content_encoding(param_8,0)" (identifier "set_content_encoding") (argument_list "(param_8,0)" (( "(") (identifier "param_8") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_free_000afd08)(*(undefined4 *)(param_8 + 8));" (call_expression "(*(code *)PTR_free_000afd08)(*(undefined4 *)(param_8 + 8))" (parenthesized_expression "(*(code *)PTR_free_000afd08)" (( "(") (pointer_expression "*(code *)PTR_free_000afd08" (* "*") (cast_expression "(code *)PTR_free_000afd08" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_000afd08"))) () ")")) (argument_list "(*(undefined4 *)(param_8 + 8))" (( "(") (pointer_expression "*(undefined4 *)(param_8 + 8)" (* "*") (cast_expression "(undefined4 *)(param_8 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_8 + 8)" (( "(") (binary_expression "param_8 + 8" (identifier "param_8") (+ "+") (number_literal "8")) () ")")))) () ")"))) (; ";")) (expression_statement "*(undefined4 *)(param_8 + 8) = 0;" (assignment_expression "*(undefined4 *)(param_8 + 8) = 0" (pointer_expression "*(undefined4 *)(param_8 + 8)" (* "*") (cast_expression "(undefined4 *)(param_8 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_8 + 8)" (( "(") (binary_expression "param_8 + 8" (identifier "param_8") (+ "+") (number_literal "8")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar14 = (undefined4 *)url_parse(local_38,&local_34,param_8,1);" (assignment_expression "puVar14 = (undefined4 *)url_parse(local_38,&local_34,param_8,1)" (identifier "puVar14") (= "=") (cast_expression "(undefined4 *)url_parse(local_38,&local_34,param_8,1)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "url_parse(local_38,&local_34,param_8,1)" (identifier "url_parse") (argument_list "(local_38,&local_34,param_8,1)" (( "(") (identifier "local_38") (, ",") (pointer_expression "&local_34" (& "&") (identifier "local_34")) (, ",") (identifier "param_8") (, ",") (number_literal "1") () ")"))))) (; ";")) (if_statement "if (puVar14 == (undefined4 *)0x0) {\n          uVar15 = url_error(local_38,local_34);\n          uVar16 = escnonprint_uri(local_38);\n          puVar18 = PTR_s_hallenge__000af46c + 0x776c;\n          logprintf(1,puVar18,uVar16,uVar15);\n          if (puVar13 != param_1) {\n            url_free(puVar13);\n          }\n          (*(code *)PTR_free_000afd08)(puVar5);\n          (*(code *)PTR_free_000afd08)(local_38);\n          local_38 = (undefined *)0x0;\n          (*(code *)PTR_free_000afd08)(uVar15);\n          if (bVar3) {\n            *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n            *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n            *(undefined4 *)(puVar19 + 500) = local_60;\n          }\n          goto LAB_0004d368;\n        }" (if "if") (parenthesized_expression "(puVar14 == (undefined4 *)0x0)" (( "(") (binary_expression "puVar14 == (undefined4 *)0x0" (identifier "puVar14") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          uVar15 = url_error(local_38,local_34);\n          uVar16 = escnonprint_uri(local_38);\n          puVar18 = PTR_s_hallenge__000af46c + 0x776c;\n          logprintf(1,puVar18,uVar16,uVar15);\n          if (puVar13 != param_1) {\n            url_free(puVar13);\n          }\n          (*(code *)PTR_free_000afd08)(puVar5);\n          (*(code *)PTR_free_000afd08)(local_38);\n          local_38 = (undefined *)0x0;\n          (*(code *)PTR_free_000afd08)(uVar15);\n          if (bVar3) {\n            *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n            *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n            *(undefined4 *)(puVar19 + 500) = local_60;\n          }\n          goto LAB_0004d368;\n        }" ({ "{") (expression_statement "uVar15 = url_error(local_38,local_34);" (assignment_expression "uVar15 = url_error(local_38,local_34)" (identifier "uVar15") (= "=") (call_expression "url_error(local_38,local_34)" (identifier "url_error") (argument_list "(local_38,local_34)" (( "(") (identifier "local_38") (, ",") (identifier "local_34") () ")")))) (; ";")) (expression_statement "uVar16 = escnonprint_uri(local_38);" (assignment_expression "uVar16 = escnonprint_uri(local_38)" (identifier "uVar16") (= "=") (call_expression "escnonprint_uri(local_38)" (identifier "escnonprint_uri") (argument_list "(local_38)" (( "(") (identifier "local_38") () ")")))) (; ";")) (expression_statement "puVar18 = PTR_s_hallenge__000af46c + 0x776c;" (assignment_expression "puVar18 = PTR_s_hallenge__000af46c + 0x776c" (identifier "puVar18") (= "=") (binary_expression "PTR_s_hallenge__000af46c + 0x776c" (identifier "PTR_s_hallenge__000af46c") (+ "+") (number_literal "0x776c"))) (; ";")) (expression_statement "logprintf(1,puVar18,uVar16,uVar15);" (call_expression "logprintf(1,puVar18,uVar16,uVar15)" (identifier "logprintf") (argument_list "(1,puVar18,uVar16,uVar15)" (( "(") (number_literal "1") (, ",") (identifier "puVar18") (, ",") (identifier "uVar16") (, ",") (identifier "uVar15") () ")"))) (; ";")) (if_statement "if (puVar13 != param_1) {\n            url_free(puVar13);\n          }" (if "if") (parenthesized_expression "(puVar13 != param_1)" (( "(") (binary_expression "puVar13 != param_1" (identifier "puVar13") (!= "!=") (identifier "param_1")) () ")")) (compound_statement "{\n            url_free(puVar13);\n          }" ({ "{") (expression_statement "url_free(puVar13);" (call_expression "url_free(puVar13)" (identifier "url_free") (argument_list "(puVar13)" (( "(") (identifier "puVar13") () ")"))) (; ";")) (} "}"))) (expression_statement "(*(code *)PTR_free_000afd08)(puVar5);" (call_expression "(*(code *)PTR_free_000afd08)(puVar5)" (parenthesized_expression "(*(code *)PTR_free_000afd08)" (( "(") (pointer_expression "*(code *)PTR_free_000afd08" (* "*") (cast_expression "(code *)PTR_free_000afd08" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_000afd08"))) () ")")) (argument_list "(puVar5)" (( "(") (identifier "puVar5") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_free_000afd08)(local_38);" (call_expression "(*(code *)PTR_free_000afd08)(local_38)" (parenthesized_expression "(*(code *)PTR_free_000afd08)" (( "(") (pointer_expression "*(code *)PTR_free_000afd08" (* "*") (cast_expression "(code *)PTR_free_000afd08" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_000afd08"))) () ")")) (argument_list "(local_38)" (( "(") (identifier "local_38") () ")"))) (; ";")) (expression_statement "local_38 = (undefined *)0x0;" (assignment_expression "local_38 = (undefined *)0x0" (identifier "local_38") (= "=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "(*(code *)PTR_free_000afd08)(uVar15);" (call_expression "(*(code *)PTR_free_000afd08)(uVar15)" (parenthesized_expression "(*(code *)PTR_free_000afd08)" (( "(") (pointer_expression "*(code *)PTR_free_000afd08" (* "*") (cast_expression "(code *)PTR_free_000afd08" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_000afd08"))) () ")")) (argument_list "(uVar15)" (( "(") (identifier "uVar15") () ")"))) (; ";")) (if_statement "if (bVar3) {\n            *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n            *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n            *(undefined4 *)(puVar19 + 500) = local_60;\n          }" (if "if") (parenthesized_expression "(bVar3)" (( "(") (identifier "bVar3") () ")")) (compound_statement "{\n            *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n            *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n            *(undefined4 *)(puVar19 + 500) = local_60;\n          }" ({ "{") (expression_statement "*(undefined4 *)(puVar19 + 0x1f8) = local_64;" (assignment_expression "*(undefined4 *)(puVar19 + 0x1f8) = local_64" (pointer_expression "*(undefined4 *)(puVar19 + 0x1f8)" (* "*") (cast_expression "(undefined4 *)(puVar19 + 0x1f8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar19 + 0x1f8)" (( "(") (binary_expression "puVar19 + 0x1f8" (identifier "puVar19") (+ "+") (number_literal "0x1f8")) () ")")))) (= "=") (identifier "local_64")) (; ";")) (expression_statement "*(undefined4 *)(puVar19 + 0x1fc) = local_5c;" (assignment_expression "*(undefined4 *)(puVar19 + 0x1fc) = local_5c" (pointer_expression "*(undefined4 *)(puVar19 + 0x1fc)" (* "*") (cast_expression "(undefined4 *)(puVar19 + 0x1fc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar19 + 0x1fc)" (( "(") (binary_expression "puVar19 + 0x1fc" (identifier "puVar19") (+ "+") (number_literal "0x1fc")) () ")")))) (= "=") (identifier "local_5c")) (; ";")) (expression_statement "*(undefined4 *)(puVar19 + 500) = local_60;" (assignment_expression "*(undefined4 *)(puVar19 + 500) = local_60" (pointer_expression "*(undefined4 *)(puVar19 + 500)" (* "*") (cast_expression "(undefined4 *)(puVar19 + 500)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar19 + 500)" (( "(") (binary_expression "puVar19 + 500" (identifier "puVar19") (+ "+") (number_literal "500")) () ")")))) (= "=") (identifier "local_60")) (; ";")) (} "}"))) (goto_statement "goto LAB_0004d368;" (goto "goto") (statement_identifier "LAB_0004d368") (; ";")) (} "}"))) (expression_statement "local_84 = local_84 + 1;" (assignment_expression "local_84 = local_84 + 1" (identifier "local_84") (= "=") (binary_expression "local_84 + 1" (identifier "local_84") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "(*(code *)PTR_free_000afd08)(local_38);" (call_expression "(*(code *)PTR_free_000afd08)(local_38)" (parenthesized_expression "(*(code *)PTR_free_000afd08)" (( "(") (pointer_expression "*(code *)PTR_free_000afd08" (* "*") (cast_expression "(code *)PTR_free_000afd08" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_000afd08"))) () ")")) (argument_list "(local_38)" (( "(") (identifier "local_38") () ")"))) (; ";")) (expression_statement "local_38 = (undefined *)0x0;" (assignment_expression "local_38 = (undefined *)0x0" (identifier "local_38") (= "=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_38 = (undefined *)xstrdup(*puVar14);" (assignment_expression "local_38 = (undefined *)xstrdup(*puVar14)" (identifier "local_38") (= "=") (cast_expression "(undefined *)xstrdup(*puVar14)" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xstrdup(*puVar14)" (identifier "xstrdup") (argument_list "(*puVar14)" (( "(") (pointer_expression "*puVar14" (* "*") (identifier "puVar14")) () ")"))))) (; ";")) (if_statement "if (*(int *)(puVar19 + 0x18) < local_84) {\n          puVar18 = (undefined *)\n                    (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x77d0,5);\n          logprintf(1,puVar18,*(undefined4 *)(puVar19 + 0x18));\n          url_free(puVar14);\n          if (puVar13 != param_1) {\n            url_free(puVar13);\n          }\n          (*(code *)PTR_free_000afd08)(puVar5);\n          (*(code *)PTR_free_000afd08)(local_38);\n          local_38 = (undefined *)0x0;\n          if (bVar3) {\n            iVar9 = 0x1b;\n            *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n            *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n            *(undefined4 *)(puVar19 + 500) = local_60;\n          }\n          else {\n            iVar9 = 0x1b;\n          }\n          goto LAB_0004d368;\n        }" (if "if") (parenthesized_expression "(*(int *)(puVar19 + 0x18) < local_84)" (( "(") (binary_expression "*(int *)(puVar19 + 0x18) < local_84" (pointer_expression "*(int *)(puVar19 + 0x18)" (* "*") (cast_expression "(int *)(puVar19 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar19 + 0x18)" (( "(") (binary_expression "puVar19 + 0x18" (identifier "puVar19") (+ "+") (number_literal "0x18")) () ")")))) (< "<") (identifier "local_84")) () ")")) (compound_statement "{\n          puVar18 = (undefined *)\n                    (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x77d0,5);\n          logprintf(1,puVar18,*(undefined4 *)(puVar19 + 0x18));\n          url_free(puVar14);\n          if (puVar13 != param_1) {\n            url_free(puVar13);\n          }\n          (*(code *)PTR_free_000afd08)(puVar5);\n          (*(code *)PTR_free_000afd08)(local_38);\n          local_38 = (undefined *)0x0;\n          if (bVar3) {\n            iVar9 = 0x1b;\n            *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n            *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n            *(undefined4 *)(puVar19 + 500) = local_60;\n          }\n          else {\n            iVar9 = 0x1b;\n          }\n          goto LAB_0004d368;\n        }" ({ "{") (expression_statement "puVar18 = (undefined *)\n                    (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x77d0,5);" (assignment_expression "puVar18 = (undefined *)\n                    (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x77d0,5)" (identifier "puVar18") (= "=") (cast_expression "(undefined *)\n                    (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x77d0,5)" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x77d0,5)" (parenthesized_expression "(*(code *)PTR_dcgettext_000afcf4)" (( "(") (pointer_expression "*(code *)PTR_dcgettext_000afcf4" (* "*") (cast_expression "(code *)PTR_dcgettext_000afcf4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_dcgettext_000afcf4"))) () ")")) (argument_list "(0,PTR_s_hallenge__000af46c + 0x77d0,5)" (( "(") (number_literal "0") (, ",") (binary_expression "PTR_s_hallenge__000af46c + 0x77d0" (identifier "PTR_s_hallenge__000af46c") (+ "+") (number_literal "0x77d0")) (, ",") (number_literal "5") () ")"))))) (; ";")) (expression_statement "logprintf(1,puVar18,*(undefined4 *)(puVar19 + 0x18));" (call_expression "logprintf(1,puVar18,*(undefined4 *)(puVar19 + 0x18))" (identifier "logprintf") (argument_list "(1,puVar18,*(undefined4 *)(puVar19 + 0x18))" (( "(") (number_literal "1") (, ",") (identifier "puVar18") (, ",") (pointer_expression "*(undefined4 *)(puVar19 + 0x18)" (* "*") (cast_expression "(undefined4 *)(puVar19 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar19 + 0x18)" (( "(") (binary_expression "puVar19 + 0x18" (identifier "puVar19") (+ "+") (number_literal "0x18")) () ")")))) () ")"))) (; ";")) (expression_statement "url_free(puVar14);" (call_expression "url_free(puVar14)" (identifier "url_free") (argument_list "(puVar14)" (( "(") (identifier "puVar14") () ")"))) (; ";")) (if_statement "if (puVar13 != param_1) {\n            url_free(puVar13);\n          }" (if "if") (parenthesized_expression "(puVar13 != param_1)" (( "(") (binary_expression "puVar13 != param_1" (identifier "puVar13") (!= "!=") (identifier "param_1")) () ")")) (compound_statement "{\n            url_free(puVar13);\n          }" ({ "{") (expression_statement "url_free(puVar13);" (call_expression "url_free(puVar13)" (identifier "url_free") (argument_list "(puVar13)" (( "(") (identifier "puVar13") () ")"))) (; ";")) (} "}"))) (expression_statement "(*(code *)PTR_free_000afd08)(puVar5);" (call_expression "(*(code *)PTR_free_000afd08)(puVar5)" (parenthesized_expression "(*(code *)PTR_free_000afd08)" (( "(") (pointer_expression "*(code *)PTR_free_000afd08" (* "*") (cast_expression "(code *)PTR_free_000afd08" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_000afd08"))) () ")")) (argument_list "(puVar5)" (( "(") (identifier "puVar5") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_free_000afd08)(local_38);" (call_expression "(*(code *)PTR_free_000afd08)(local_38)" (parenthesized_expression "(*(code *)PTR_free_000afd08)" (( "(") (pointer_expression "*(code *)PTR_free_000afd08" (* "*") (cast_expression "(code *)PTR_free_000afd08" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_000afd08"))) () ")")) (argument_list "(local_38)" (( "(") (identifier "local_38") () ")"))) (; ";")) (expression_statement "local_38 = (undefined *)0x0;" (assignment_expression "local_38 = (undefined *)0x0" (identifier "local_38") (= "=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if (bVar3) {\n            iVar9 = 0x1b;\n            *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n            *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n            *(undefined4 *)(puVar19 + 500) = local_60;\n          }\n          else {\n            iVar9 = 0x1b;\n          }" (if "if") (parenthesized_expression "(bVar3)" (( "(") (identifier "bVar3") () ")")) (compound_statement "{\n            iVar9 = 0x1b;\n            *(undefined4 *)(puVar19 + 0x1f8) = local_64;\n            *(undefined4 *)(puVar19 + 0x1fc) = local_5c;\n            *(undefined4 *)(puVar19 + 500) = local_60;\n          }" ({ "{") (expression_statement "iVar9 = 0x1b;" (assignment_expression "iVar9 = 0x1b" (identifier "iVar9") (= "=") (number_literal "0x1b")) (; ";")) (expression_statement "*(undefined4 *)(puVar19 + 0x1f8) = local_64;" (assignment_expression "*(undefined4 *)(puVar19 + 0x1f8) = local_64" (pointer_expression "*(undefined4 *)(puVar19 + 0x1f8)" (* "*") (cast_expression "(undefined4 *)(puVar19 + 0x1f8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar19 + 0x1f8)" (( "(") (binary_expression "puVar19 + 0x1f8" (identifier "puVar19") (+ "+") (number_literal "0x1f8")) () ")")))) (= "=") (identifier "local_64")) (; ";")) (expression_statement "*(undefined4 *)(puVar19 + 0x1fc) = local_5c;" (assignment_expression "*(undefined4 *)(puVar19 + 0x1fc) = local_5c" (pointer_expression "*(undefined4 *)(puVar19 + 0x1fc)" (* "*") (cast_expression "(undefined4 *)(puVar19 + 0x1fc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar19 + 0x1fc)" (( "(") (binary_expression "puVar19 + 0x1fc" (identifier "puVar19") (+ "+") (number_literal "0x1fc")) () ")")))) (= "=") (identifier "local_5c")) (; ";")) (expression_statement "*(undefined4 *)(puVar19 + 500) = local_60;" (assignment_expression "*(undefined4 *)(puVar19 + 500) = local_60" (pointer_expression "*(undefined4 *)(puVar19 + 500)" (* "*") (cast_expression "(undefined4 *)(puVar19 + 500)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar19 + 500)" (( "(") (binary_expression "puVar19 + 500" (identifier "puVar19") (+ "+") (number_literal "500")) () ")")))) (= "=") (identifier "local_60")) (; ";")) (} "}")) (else_clause "else {\n            iVar9 = 0x1b;\n          }" (else "else") (compound_statement "{\n            iVar9 = 0x1b;\n          }" ({ "{") (expression_statement "iVar9 = 0x1b;" (assignment_expression "iVar9 = 0x1b" (identifier "iVar9") (= "=") (number_literal "0x1b")) (; ";")) (} "}")))) (goto_statement "goto LAB_0004d368;" (goto "goto") (statement_identifier "LAB_0004d368") (; ";")) (} "}"))) (expression_statement "(*(code *)PTR_free_000afd08)(puVar5);" (call_expression "(*(code *)PTR_free_000afd08)(puVar5)" (parenthesized_expression "(*(code *)PTR_free_000afd08)" (( "(") (pointer_expression "*(code *)PTR_free_000afd08" (* "*") (cast_expression "(code *)PTR_free_000afd08" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_000afd08"))) () ")")) (argument_list "(puVar5)" (( "(") (identifier "puVar5") () ")"))) (; ";")) (expression_statement "puVar5 = local_38;" (assignment_expression "puVar5 = local_38" (identifier "puVar5") (= "=") (identifier "local_38")) (; ";")) (if_statement "if (puVar13 != param_1) {\n          url_free(puVar13);\n        }" (if "if") (parenthesized_expression "(puVar13 != param_1)" (( "(") (binary_expression "puVar13 != param_1" (identifier "puVar13") (!= "!=") (identifier "param_1")) () ")")) (compound_statement "{\n          url_free(puVar13);\n        }" ({ "{") (expression_statement "url_free(puVar13);" (call_expression "url_free(puVar13)" (identifier "url_free") (argument_list "(puVar13)" (( "(") (identifier "puVar13") () ")"))) (; ";")) (} "}"))) (expression_statement "puVar13 = puVar14;" (assignment_expression "puVar13 = puVar14" (identifier "puVar13") (= "=") (identifier "puVar14")) (; ";")) (if_statement "if ((iVar9 != 0x30) && (!bVar3)) {\n          local_64 = *(undefined4 *)(puVar19 + 0x1f8);\n          *(undefined4 *)(puVar19 + 0x1f8) = 0;\n          local_5c = *(undefined4 *)(puVar19 + 0x1fc);\n          *(undefined4 *)(puVar19 + 0x1fc) = 0;\n          bVar3 = true;\n          local_60 = *(undefined4 *)(puVar19 + 500);\n          *(undefined4 *)(puVar19 + 500) = 0;\n        }" (if "if") (parenthesized_expression "((iVar9 != 0x30) && (!bVar3))" (( "(") (binary_expression "(iVar9 != 0x30) && (!bVar3)" (parenthesized_expression "(iVar9 != 0x30)" (( "(") (binary_expression "iVar9 != 0x30" (identifier "iVar9") (!= "!=") (number_literal "0x30")) () ")")) (&& "&&") (parenthesized_expression "(!bVar3)" (( "(") (unary_expression "!bVar3" (! "!") (identifier "bVar3")) () ")"))) () ")")) (compound_statement "{\n          local_64 = *(undefined4 *)(puVar19 + 0x1f8);\n          *(undefined4 *)(puVar19 + 0x1f8) = 0;\n          local_5c = *(undefined4 *)(puVar19 + 0x1fc);\n          *(undefined4 *)(puVar19 + 0x1fc) = 0;\n          bVar3 = true;\n          local_60 = *(undefined4 *)(puVar19 + 500);\n          *(undefined4 *)(puVar19 + 500) = 0;\n        }" ({ "{") (expression_statement "local_64 = *(undefined4 *)(puVar19 + 0x1f8);" (assignment_expression "local_64 = *(undefined4 *)(puVar19 + 0x1f8)" (identifier "local_64") (= "=") (pointer_expression "*(undefined4 *)(puVar19 + 0x1f8)" (* "*") (cast_expression "(undefined4 *)(puVar19 + 0x1f8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar19 + 0x1f8)" (( "(") (binary_expression "puVar19 + 0x1f8" (identifier "puVar19") (+ "+") (number_literal "0x1f8")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar19 + 0x1f8) = 0;" (assignment_expression "*(undefined4 *)(puVar19 + 0x1f8) = 0" (pointer_expression "*(undefined4 *)(puVar19 + 0x1f8)" (* "*") (cast_expression "(undefined4 *)(puVar19 + 0x1f8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar19 + 0x1f8)" (( "(") (binary_expression "puVar19 + 0x1f8" (identifier "puVar19") (+ "+") (number_literal "0x1f8")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_5c = *(undefined4 *)(puVar19 + 0x1fc);" (assignment_expression "local_5c = *(undefined4 *)(puVar19 + 0x1fc)" (identifier "local_5c") (= "=") (pointer_expression "*(undefined4 *)(puVar19 + 0x1fc)" (* "*") (cast_expression "(undefined4 *)(puVar19 + 0x1fc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar19 + 0x1fc)" (( "(") (binary_expression "puVar19 + 0x1fc" (identifier "puVar19") (+ "+") (number_literal "0x1fc")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar19 + 0x1fc) = 0;" (assignment_expression "*(undefined4 *)(puVar19 + 0x1fc) = 0" (pointer_expression "*(undefined4 *)(puVar19 + 0x1fc)" (* "*") (cast_expression "(undefined4 *)(puVar19 + 0x1fc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar19 + 0x1fc)" (( "(") (binary_expression "puVar19 + 0x1fc" (identifier "puVar19") (+ "+") (number_literal "0x1fc")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar3 = true;" (assignment_expression "bVar3 = true" (identifier "bVar3") (= "=") (true "true")) (; ";")) (expression_statement "local_60 = *(undefined4 *)(puVar19 + 500);" (assignment_expression "local_60 = *(undefined4 *)(puVar19 + 500)" (identifier "local_60") (= "=") (pointer_expression "*(undefined4 *)(puVar19 + 500)" (* "*") (cast_expression "(undefined4 *)(puVar19 + 500)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar19 + 500)" (( "(") (binary_expression "puVar19 + 500" (identifier "puVar19") (+ "+") (number_literal "500")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar19 + 500) = 0;" (assignment_expression "*(undefined4 *)(puVar19 + 500) = 0" (pointer_expression "*(undefined4 *)(puVar19 + 500)" (* "*") (cast_expression "(undefined4 *)(puVar19 + 500)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar19 + 500)" (( "(") (binary_expression "puVar19 + 500" (identifier "puVar19") (+ "+") (number_literal "500")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}"))) (goto_statement "goto LAB_0004ce08;" (goto "goto") (statement_identifier "LAB_0004ce08") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n      if (puVar13[1] - 2 < 2) {\n        iVar11 = 0;\nLAB_0004d1d0:\n        if (local_84 == 0) {\n          iVar9 = (*(code *)PTR_ftp_loop_000af968)\n                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,\n                             PTR_opt_000af488[0xe1]);\n        }\n        else {\n          iVar9 = (*(code *)PTR_ftp_loop_000af968)\n                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,0);\n          if ((local_30 == (undefined *)0x0) || (1 < puVar13[1] - 2)) {\n            local_68 = 0;\n          }\n          else {\n            local_68 = has_html_suffix_p();\n            if (local_68 != 0) {\n              local_68 = 0;\n              *param_6 = *param_6 | 1;\n            }\n          }\n        }\n        goto LAB_0004d01c;\n      }\nLAB_0004cef8:\n      iVar9 = 0;\n    }" (else "else") (compound_statement "{\n      if (puVar13[1] - 2 < 2) {\n        iVar11 = 0;\nLAB_0004d1d0:\n        if (local_84 == 0) {\n          iVar9 = (*(code *)PTR_ftp_loop_000af968)\n                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,\n                             PTR_opt_000af488[0xe1]);\n        }\n        else {\n          iVar9 = (*(code *)PTR_ftp_loop_000af968)\n                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,0);\n          if ((local_30 == (undefined *)0x0) || (1 < puVar13[1] - 2)) {\n            local_68 = 0;\n          }\n          else {\n            local_68 = has_html_suffix_p();\n            if (local_68 != 0) {\n              local_68 = 0;\n              *param_6 = *param_6 | 1;\n            }\n          }\n        }\n        goto LAB_0004d01c;\n      }\nLAB_0004cef8:\n      iVar9 = 0;\n    }" ({ "{") (if_statement "if (puVar13[1] - 2 < 2) {\n        iVar11 = 0;\nLAB_0004d1d0:\n        if (local_84 == 0) {\n          iVar9 = (*(code *)PTR_ftp_loop_000af968)\n                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,\n                             PTR_opt_000af488[0xe1]);\n        }\n        else {\n          iVar9 = (*(code *)PTR_ftp_loop_000af968)\n                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,0);\n          if ((local_30 == (undefined *)0x0) || (1 < puVar13[1] - 2)) {\n            local_68 = 0;\n          }\n          else {\n            local_68 = has_html_suffix_p();\n            if (local_68 != 0) {\n              local_68 = 0;\n              *param_6 = *param_6 | 1;\n            }\n          }\n        }\n        goto LAB_0004d01c;\n      }" (if "if") (parenthesized_expression "(puVar13[1] - 2 < 2)" (( "(") (binary_expression "puVar13[1] - 2 < 2" (binary_expression "puVar13[1] - 2" (subscript_expression "puVar13[1]" (identifier "puVar13") ([ "[") (number_literal "1") (] "]")) (- "-") (number_literal "2")) (< "<") (number_literal "2")) () ")")) (compound_statement "{\n        iVar11 = 0;\nLAB_0004d1d0:\n        if (local_84 == 0) {\n          iVar9 = (*(code *)PTR_ftp_loop_000af968)\n                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,\n                             PTR_opt_000af488[0xe1]);\n        }\n        else {\n          iVar9 = (*(code *)PTR_ftp_loop_000af968)\n                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,0);\n          if ((local_30 == (undefined *)0x0) || (1 < puVar13[1] - 2)) {\n            local_68 = 0;\n          }\n          else {\n            local_68 = has_html_suffix_p();\n            if (local_68 != 0) {\n              local_68 = 0;\n              *param_6 = *param_6 | 1;\n            }\n          }\n        }\n        goto LAB_0004d01c;\n      }" ({ "{") (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" (identifier "iVar11") (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_0004d1d0:\n        if (local_84 == 0) {\n          iVar9 = (*(code *)PTR_ftp_loop_000af968)\n                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,\n                             PTR_opt_000af488[0xe1]);\n        }\n        else {\n          iVar9 = (*(code *)PTR_ftp_loop_000af968)\n                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,0);\n          if ((local_30 == (undefined *)0x0) || (1 < puVar13[1] - 2)) {\n            local_68 = 0;\n          }\n          else {\n            local_68 = has_html_suffix_p();\n            if (local_68 != 0) {\n              local_68 = 0;\n              *param_6 = *param_6 | 1;\n            }\n          }\n        }" (statement_identifier "LAB_0004d1d0") (: ":") (if_statement "if (local_84 == 0) {\n          iVar9 = (*(code *)PTR_ftp_loop_000af968)\n                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,\n                             PTR_opt_000af488[0xe1]);\n        }\n        else {\n          iVar9 = (*(code *)PTR_ftp_loop_000af968)\n                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,0);\n          if ((local_30 == (undefined *)0x0) || (1 < puVar13[1] - 2)) {\n            local_68 = 0;\n          }\n          else {\n            local_68 = has_html_suffix_p();\n            if (local_68 != 0) {\n              local_68 = 0;\n              *param_6 = *param_6 | 1;\n            }\n          }\n        }" (if "if") (parenthesized_expression "(local_84 == 0)" (( "(") (binary_expression "local_84 == 0" (identifier "local_84") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          iVar9 = (*(code *)PTR_ftp_loop_000af968)\n                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,\n                             PTR_opt_000af488[0xe1]);\n        }" ({ "{") (expression_statement "iVar9 = (*(code *)PTR_ftp_loop_000af968)\n                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,\n                             PTR_opt_000af488[0xe1]);" (assignment_expression "iVar9 = (*(code *)PTR_ftp_loop_000af968)\n                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,\n                             PTR_opt_000af488[0xe1])" (identifier "iVar9") (= "=") (call_expression "(*(code *)PTR_ftp_loop_000af968)\n                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,\n                             PTR_opt_000af488[0xe1])" (parenthesized_expression "(*(code *)PTR_ftp_loop_000af968)" (( "(") (pointer_expression "*(code *)PTR_ftp_loop_000af968" (* "*") (cast_expression "(code *)PTR_ftp_loop_000af968" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_ftp_loop_000af968"))) () ")")) (argument_list "(puVar13,param_1,&local_30,param_6,iVar11,local_68,\n                             PTR_opt_000af488[0xe1])" (( "(") (identifier "puVar13") (, ",") (identifier "param_1") (, ",") (pointer_expression "&local_30" (& "&") (identifier "local_30")) (, ",") (identifier "param_6") (, ",") (identifier "iVar11") (, ",") (identifier "local_68") (, ",") (subscript_expression "PTR_opt_000af488[0xe1]" (identifier "PTR_opt_000af488") ([ "[") (number_literal "0xe1") (] "]")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n          iVar9 = (*(code *)PTR_ftp_loop_000af968)\n                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,0);\n          if ((local_30 == (undefined *)0x0) || (1 < puVar13[1] - 2)) {\n            local_68 = 0;\n          }\n          else {\n            local_68 = has_html_suffix_p();\n            if (local_68 != 0) {\n              local_68 = 0;\n              *param_6 = *param_6 | 1;\n            }\n          }\n        }" (else "else") (compound_statement "{\n          iVar9 = (*(code *)PTR_ftp_loop_000af968)\n                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,0);\n          if ((local_30 == (undefined *)0x0) || (1 < puVar13[1] - 2)) {\n            local_68 = 0;\n          }\n          else {\n            local_68 = has_html_suffix_p();\n            if (local_68 != 0) {\n              local_68 = 0;\n              *param_6 = *param_6 | 1;\n            }\n          }\n        }" ({ "{") (expression_statement "iVar9 = (*(code *)PTR_ftp_loop_000af968)\n                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,0);" (assignment_expression "iVar9 = (*(code *)PTR_ftp_loop_000af968)\n                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,0)" (identifier "iVar9") (= "=") (call_expression "(*(code *)PTR_ftp_loop_000af968)\n                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,0)" (parenthesized_expression "(*(code *)PTR_ftp_loop_000af968)" (( "(") (pointer_expression "*(code *)PTR_ftp_loop_000af968" (* "*") (cast_expression "(code *)PTR_ftp_loop_000af968" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_ftp_loop_000af968"))) () ")")) (argument_list "(puVar13,param_1,&local_30,param_6,iVar11,local_68,0)" (( "(") (identifier "puVar13") (, ",") (identifier "param_1") (, ",") (pointer_expression "&local_30" (& "&") (identifier "local_30")) (, ",") (identifier "param_6") (, ",") (identifier "iVar11") (, ",") (identifier "local_68") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if ((local_30 == (undefined *)0x0) || (1 < puVar13[1] - 2)) {\n            local_68 = 0;\n          }\n          else {\n            local_68 = has_html_suffix_p();\n            if (local_68 != 0) {\n              local_68 = 0;\n              *param_6 = *param_6 | 1;\n            }\n          }" (if "if") (parenthesized_expression "((local_30 == (undefined *)0x0) || (1 < puVar13[1] - 2))" (( "(") (binary_expression "(local_30 == (undefined *)0x0) || (1 < puVar13[1] - 2)" (parenthesized_expression "(local_30 == (undefined *)0x0)" (( "(") (binary_expression "local_30 == (undefined *)0x0" (identifier "local_30") (== "==") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(1 < puVar13[1] - 2)" (( "(") (binary_expression "1 < puVar13[1] - 2" (number_literal "1") (< "<") (binary_expression "puVar13[1] - 2" (subscript_expression "puVar13[1]" (identifier "puVar13") ([ "[") (number_literal "1") (] "]")) (- "-") (number_literal "2"))) () ")"))) () ")")) (compound_statement "{\n            local_68 = 0;\n          }" ({ "{") (expression_statement "local_68 = 0;" (assignment_expression "local_68 = 0" (identifier "local_68") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n            local_68 = has_html_suffix_p();\n            if (local_68 != 0) {\n              local_68 = 0;\n              *param_6 = *param_6 | 1;\n            }\n          }" (else "else") (compound_statement "{\n            local_68 = has_html_suffix_p();\n            if (local_68 != 0) {\n              local_68 = 0;\n              *param_6 = *param_6 | 1;\n            }\n          }" ({ "{") (expression_statement "local_68 = has_html_suffix_p();" (assignment_expression "local_68 = has_html_suffix_p()" (identifier "local_68") (= "=") (call_expression "has_html_suffix_p()" (identifier "has_html_suffix_p") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (local_68 != 0) {\n              local_68 = 0;\n              *param_6 = *param_6 | 1;\n            }" (if "if") (parenthesized_expression "(local_68 != 0)" (( "(") (binary_expression "local_68 != 0" (identifier "local_68") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              local_68 = 0;\n              *param_6 = *param_6 | 1;\n            }" ({ "{") (expression_statement "local_68 = 0;" (assignment_expression "local_68 = 0" (identifier "local_68") (= "=") (number_literal "0")) (; ";")) (expression_statement "*param_6 = *param_6 | 1;" (assignment_expression "*param_6 = *param_6 | 1" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (= "=") (binary_expression "*param_6 | 1" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (| "|") (number_literal "1"))) (; ";")) (} "}"))) (} "}")))) (} "}"))))) (goto_statement "goto LAB_0004d01c;" (goto "goto") (statement_identifier "LAB_0004d01c") (; ";")) (} "}"))) (labeled_statement "LAB_0004cef8:\n      iVar9 = 0;" (statement_identifier "LAB_0004cef8") (: ":") (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" (identifier "iVar9") (= "=") (number_literal "0")) (; ";"))) (} "}")))) (expression_statement "(*(code *)PTR_free_000afd08)(local_38);" (call_expression "(*(code *)PTR_free_000afd08)(local_38)" (parenthesized_expression "(*(code *)PTR_free_000afd08)" (( "(") (pointer_expression "*(code *)PTR_free_000afd08" (* "*") (cast_expression "(code *)PTR_free_000afd08" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_000afd08"))) () ")")) (argument_list "(local_38)" (( "(") (identifier "local_38") () ")"))) (; ";")) (expression_statement "uVar12 = *param_6 & 2;" (assignment_expression "uVar12 = *param_6 & 2" (identifier "uVar12") (= "=") (binary_expression "*param_6 & 2" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (& "&") (number_literal "2"))) (; ";")) (expression_statement "local_38 = (undefined *)0x0;" (assignment_expression "local_38 = (undefined *)0x0" (identifier "local_38") (= "=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if ((uVar12 != 0) || (cVar1 = *(char *)(param_8 + 0xc), cVar1 == '\0')) {\n      puVar18 = local_30;\n      if ((local_30 == (undefined *)0x0) ||\n         (puVar19 = PTR_opt_000af488, puVar13 == (undefined4 *)0x0)) goto LAB_0004d2f8;\n      goto LAB_0004d2e0;\n    }" (if "if") (parenthesized_expression "((uVar12 != 0) || (cVar1 = *(char *)(param_8 + 0xc), cVar1 == '\0'))" (( "(") (binary_expression "(uVar12 != 0) || (cVar1 = *(char *)(param_8 + 0xc), cVar1 == '\0')" (parenthesized_expression "(uVar12 != 0)" (( "(") (binary_expression "uVar12 != 0" (identifier "uVar12") (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(cVar1 = *(char *)(param_8 + 0xc), cVar1 == '\0')" (( "(") (comma_expression "cVar1 = *(char *)(param_8 + 0xc), cVar1 == '\0'" (assignment_expression "cVar1 = *(char *)(param_8 + 0xc)" (identifier "cVar1") (= "=") (pointer_expression "*(char *)(param_8 + 0xc)" (* "*") (cast_expression "(char *)(param_8 + 0xc)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_8 + 0xc)" (( "(") (binary_expression "param_8 + 0xc" (identifier "param_8") (+ "+") (number_literal "0xc")) () ")"))))) (, ",") (binary_expression "cVar1 == '\0'" (identifier "cVar1") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) () ")"))) () ")")) (compound_statement "{\n      puVar18 = local_30;\n      if ((local_30 == (undefined *)0x0) ||\n         (puVar19 = PTR_opt_000af488, puVar13 == (undefined4 *)0x0)) goto LAB_0004d2f8;\n      goto LAB_0004d2e0;\n    }" ({ "{") (expression_statement "puVar18 = local_30;" (assignment_expression "puVar18 = local_30" (identifier "puVar18") (= "=") (identifier "local_30")) (; ";")) (if_statement "if ((local_30 == (undefined *)0x0) ||\n         (puVar19 = PTR_opt_000af488, puVar13 == (undefined4 *)0x0)) goto LAB_0004d2f8;" (if "if") (parenthesized_expression "((local_30 == (undefined *)0x0) ||\n         (puVar19 = PTR_opt_000af488, puVar13 == (undefined4 *)0x0))" (( "(") (binary_expression "(local_30 == (undefined *)0x0) ||\n         (puVar19 = PTR_opt_000af488, puVar13 == (undefined4 *)0x0)" (parenthesized_expression "(local_30 == (undefined *)0x0)" (( "(") (binary_expression "local_30 == (undefined *)0x0" (identifier "local_30") (== "==") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(puVar19 = PTR_opt_000af488, puVar13 == (undefined4 *)0x0)" (( "(") (comma_expression "puVar19 = PTR_opt_000af488, puVar13 == (undefined4 *)0x0" (assignment_expression "puVar19 = PTR_opt_000af488" (identifier "puVar19") (= "=") (identifier "PTR_opt_000af488")) (, ",") (binary_expression "puVar13 == (undefined4 *)0x0" (identifier "puVar13") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (goto_statement "goto LAB_0004d2f8;" (goto "goto") (statement_identifier "LAB_0004d2f8") (; ";"))) (goto_statement "goto LAB_0004d2e0;" (goto "goto") (statement_identifier "LAB_0004d2e0") (; ";")) (} "}"))) (expression_statement "*(undefined1 *)(param_8 + 0xc) = 0;" (assignment_expression "*(undefined1 *)(param_8 + 0xc) = 0" (pointer_expression "*(undefined1 *)(param_8 + 0xc)" (* "*") (cast_expression "(undefined1 *)(param_8 + 0xc)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_8 + 0xc)" (( "(") (binary_expression "param_8 + 0xc" (identifier "param_8") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (number_literal "0")) (; ";")) (if_statement "if (puVar13 != param_1) {\n      url_free(puVar13);\n    }" (if "if") (parenthesized_expression "(puVar13 != param_1)" (( "(") (binary_expression "puVar13 != param_1" (identifier "puVar13") (!= "!=") (identifier "param_1")) () ")")) (compound_statement "{\n      url_free(puVar13);\n    }" ({ "{") (expression_statement "url_free(puVar13);" (call_expression "url_free(puVar13)" (identifier "url_free") (argument_list "(puVar13)" (( "(") (identifier "puVar13") () ")"))) (; ";")) (} "}"))) (expression_statement "puVar18 = (undefined *)0x0;" (assignment_expression "puVar18 = (undefined *)0x0" (identifier "puVar18") (= "=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "puVar13 = (undefined4 *)url_parse(param_2,0,param_8,1);" (assignment_expression "puVar13 = (undefined4 *)url_parse(param_2,0,param_8,1)" (identifier "puVar13") (= "=") (cast_expression "(undefined4 *)url_parse(param_2,0,param_8,1)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "url_parse(param_2,0,param_8,1)" (identifier "url_parse") (argument_list "(param_2,0,param_8,1)" (( "(") (identifier "param_2") (, ",") (number_literal "0") (, ",") (identifier "param_8") (, ",") (number_literal "1") () ")"))))) (; ";")) (expression_statement "puVar19 = PTR_opt_000af488;" (assignment_expression "puVar19 = PTR_opt_000af488" (identifier "puVar19") (= "=") (identifier "PTR_opt_000af488")) (; ";")) (if_statement "if (puVar13 == (undefined4 *)0x0) {\n      if (PTR_opt_000af488[0x16b] != '\0') {\n        puVar18 = (undefined *)quote(puVar5);\n        debug_logprintf(PTR_s_hallenge__000af46c + 0x783c);\n      }\n      goto LAB_0004d2f8;\n    }" (if "if") (parenthesized_expression "(puVar13 == (undefined4 *)0x0)" (( "(") (binary_expression "puVar13 == (undefined4 *)0x0" (identifier "puVar13") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      if (PTR_opt_000af488[0x16b] != '\0') {\n        puVar18 = (undefined *)quote(puVar5);\n        debug_logprintf(PTR_s_hallenge__000af46c + 0x783c);\n      }\n      goto LAB_0004d2f8;\n    }" ({ "{") (if_statement "if (PTR_opt_000af488[0x16b] != '\0') {\n        puVar18 = (undefined *)quote(puVar5);\n        debug_logprintf(PTR_s_hallenge__000af46c + 0x783c);\n      }" (if "if") (parenthesized_expression "(PTR_opt_000af488[0x16b] != '\0')" (( "(") (binary_expression "PTR_opt_000af488[0x16b] != '\0'" (subscript_expression "PTR_opt_000af488[0x16b]" (identifier "PTR_opt_000af488") ([ "[") (number_literal "0x16b") (] "]")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        puVar18 = (undefined *)quote(puVar5);\n        debug_logprintf(PTR_s_hallenge__000af46c + 0x783c);\n      }" ({ "{") (expression_statement "puVar18 = (undefined *)quote(puVar5);" (assignment_expression "puVar18 = (undefined *)quote(puVar5)" (identifier "puVar18") (= "=") (cast_expression "(undefined *)quote(puVar5)" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "quote(puVar5)" (identifier "quote") (argument_list "(puVar5)" (( "(") (identifier "puVar5") () ")"))))) (; ";")) (expression_statement "debug_logprintf(PTR_s_hallenge__000af46c + 0x783c);" (call_expression "debug_logprintf(PTR_s_hallenge__000af46c + 0x783c)" (identifier "debug_logprintf") (argument_list "(PTR_s_hallenge__000af46c + 0x783c)" (( "(") (binary_expression "PTR_s_hallenge__000af46c + 0x783c" (identifier "PTR_s_hallenge__000af46c") (+ "+") (number_literal "0x783c")) () ")"))) (; ";")) (} "}"))) (goto_statement "goto LAB_0004d2f8;" (goto "goto") (statement_identifier "LAB_0004d2f8") (; ";")) (} "}"))) (expression_statement "iVar10 = (*(code *)PTR_strcmp_000afacc)(*puVar13,*param_1);" (assignment_expression "iVar10 = (*(code *)PTR_strcmp_000afacc)(*puVar13,*param_1)" (identifier "iVar10") (= "=") (call_expression "(*(code *)PTR_strcmp_000afacc)(*puVar13,*param_1)" (parenthesized_expression "(*(code *)PTR_strcmp_000afacc)" (( "(") (pointer_expression "*(code *)PTR_strcmp_000afacc" (* "*") (cast_expression "(code *)PTR_strcmp_000afacc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strcmp_000afacc"))) () ")")) (argument_list "(*puVar13,*param_1)" (( "(") (pointer_expression "*puVar13" (* "*") (identifier "puVar13")) (, ",") (pointer_expression "*param_1" (* "*") (identifier "param_1")) () ")")))) (; ";")) (expression_statement "cVar2 = puVar19[0x16b];" (assignment_expression "cVar2 = puVar19[0x16b]" (identifier "cVar2") (= "=") (subscript_expression "puVar19[0x16b]" (identifier "puVar19") ([ "[") (number_literal "0x16b") (] "]"))) (; ";")) (if_statement "if (iVar10 == 0) break;" (if "if") (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (if_statement "if (cVar2 != '\0') {\n      uVar15 = quote(puVar5);\n      debug_logprintf(puVar7,uVar15);\n    }" (if "if") (parenthesized_expression "(cVar2 != '\0')" (( "(") (binary_expression "cVar2 != '\0'" (identifier "cVar2") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      uVar15 = quote(puVar5);\n      debug_logprintf(puVar7,uVar15);\n    }" ({ "{") (expression_statement "uVar15 = quote(puVar5);" (assignment_expression "uVar15 = quote(puVar5)" (identifier "uVar15") (= "=") (call_expression "quote(puVar5)" (identifier "quote") (argument_list "(puVar5)" (( "(") (identifier "puVar5") () ")")))) (; ";")) (expression_statement "debug_logprintf(puVar7,uVar15);" (call_expression "debug_logprintf(puVar7,uVar15)" (identifier "debug_logprintf") (argument_list "(puVar7,uVar15)" (( "(") (identifier "puVar7") (, ",") (identifier "uVar15") () ")"))) (; ";")) (} "}"))) (expression_statement "(*(code *)PTR_free_000afd08)(puVar5);" (call_expression "(*(code *)PTR_free_000afd08)(puVar5)" (parenthesized_expression "(*(code *)PTR_free_000afd08)" (( "(") (pointer_expression "*(code *)PTR_free_000afd08" (* "*") (cast_expression "(code *)PTR_free_000afd08" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_000afd08"))) () ")")) (argument_list "(puVar5)" (( "(") (identifier "puVar5") () ")"))) (; ";")) (expression_statement "puVar5 = (undefined *)xstrdup(*puVar13);" (assignment_expression "puVar5 = (undefined *)xstrdup(*puVar13)" (identifier "puVar5") (= "=") (cast_expression "(undefined *)xstrdup(*puVar13)" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xstrdup(*puVar13)" (identifier "xstrdup") (argument_list "(*puVar13)" (( "(") (pointer_expression "*puVar13" (* "*") (identifier "puVar13")) () ")"))))) (; ";")) (expression_statement "cVar4 = cVar1;" (assignment_expression "cVar4 = cVar1" (identifier "cVar4") (= "=") (identifier "cVar1")) (; ";")) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";"))) (if_statement "if (cVar2 != '\0') {\n    uVar15 = quote(puVar5);\n    debug_logprintf(PTR_s_hallenge__000af46c + 0x7814,uVar15);\n  }" (if "if") (parenthesized_expression "(cVar2 != '\0')" (( "(") (binary_expression "cVar2 != '\0'" (identifier "cVar2") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    uVar15 = quote(puVar5);\n    debug_logprintf(PTR_s_hallenge__000af46c + 0x7814,uVar15);\n  }" ({ "{") (expression_statement "uVar15 = quote(puVar5);" (assignment_expression "uVar15 = quote(puVar5)" (identifier "uVar15") (= "=") (call_expression "quote(puVar5)" (identifier "quote") (argument_list "(puVar5)" (( "(") (identifier "puVar5") () ")")))) (; ";")) (expression_statement "debug_logprintf(PTR_s_hallenge__000af46c + 0x7814,uVar15);" (call_expression "debug_logprintf(PTR_s_hallenge__000af46c + 0x7814,uVar15)" (identifier "debug_logprintf") (argument_list "(PTR_s_hallenge__000af46c + 0x7814,uVar15)" (( "(") (binary_expression "PTR_s_hallenge__000af46c + 0x7814" (identifier "PTR_s_hallenge__000af46c") (+ "+") (number_literal "0x7814")) (, ",") (identifier "uVar15") () ")"))) (; ";")) (} "}"))) (expression_statement "puVar18 = local_30;" (assignment_expression "puVar18 = local_30" (identifier "puVar18") (= "=") (identifier "local_30")) (; ";")) (if_statement "if (local_30 != (undefined *)0x0) {\n    uVar12 = *param_6 & 2;\nLAB_0004d2e0:\n    puVar18 = local_30;\n    if ((uVar12 != 0) || (puVar19[0x16a] != '\0')) {\n      (*(code *)PTR_register_download_000af96c)(*puVar13);\n      if ((puVar19[0x48] == '\0') && (local_84 != 0)) {\n        puVar20 = (undefined *)*puVar13;\n        puVar18 = puVar20;\n        iVar10 = (*(code *)PTR_strcmp_000afacc)(param_2);\n        if (iVar10 != 0) {\n          (*(code *)PTR_register_redirection_000af978)(param_2);\n          puVar18 = puVar20;\n        }\n      }\n      uVar12 = *param_6;\n      if ((uVar12 & 1) != 0) {\n        (*(code *)PTR_register_html_000af974)();\n        uVar12 = *param_6;\n      }\n      if ((uVar12 & 0x40) != 0) {\n        (*(code *)PTR_register_css_000af970)();\n      }\n    }\n  }" (if "if") (parenthesized_expression "(local_30 != (undefined *)0x0)" (( "(") (binary_expression "local_30 != (undefined *)0x0" (identifier "local_30") (!= "!=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    uVar12 = *param_6 & 2;\nLAB_0004d2e0:\n    puVar18 = local_30;\n    if ((uVar12 != 0) || (puVar19[0x16a] != '\0')) {\n      (*(code *)PTR_register_download_000af96c)(*puVar13);\n      if ((puVar19[0x48] == '\0') && (local_84 != 0)) {\n        puVar20 = (undefined *)*puVar13;\n        puVar18 = puVar20;\n        iVar10 = (*(code *)PTR_strcmp_000afacc)(param_2);\n        if (iVar10 != 0) {\n          (*(code *)PTR_register_redirection_000af978)(param_2);\n          puVar18 = puVar20;\n        }\n      }\n      uVar12 = *param_6;\n      if ((uVar12 & 1) != 0) {\n        (*(code *)PTR_register_html_000af974)();\n        uVar12 = *param_6;\n      }\n      if ((uVar12 & 0x40) != 0) {\n        (*(code *)PTR_register_css_000af970)();\n      }\n    }\n  }" ({ "{") (expression_statement "uVar12 = *param_6 & 2;" (assignment_expression "uVar12 = *param_6 & 2" (identifier "uVar12") (= "=") (binary_expression "*param_6 & 2" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (& "&") (number_literal "2"))) (; ";")) (labeled_statement "LAB_0004d2e0:\n    puVar18 = local_30;" (statement_identifier "LAB_0004d2e0") (: ":") (expression_statement "puVar18 = local_30;" (assignment_expression "puVar18 = local_30" (identifier "puVar18") (= "=") (identifier "local_30")) (; ";"))) (if_statement "if ((uVar12 != 0) || (puVar19[0x16a] != '\0')) {\n      (*(code *)PTR_register_download_000af96c)(*puVar13);\n      if ((puVar19[0x48] == '\0') && (local_84 != 0)) {\n        puVar20 = (undefined *)*puVar13;\n        puVar18 = puVar20;\n        iVar10 = (*(code *)PTR_strcmp_000afacc)(param_2);\n        if (iVar10 != 0) {\n          (*(code *)PTR_register_redirection_000af978)(param_2);\n          puVar18 = puVar20;\n        }\n      }\n      uVar12 = *param_6;\n      if ((uVar12 & 1) != 0) {\n        (*(code *)PTR_register_html_000af974)();\n        uVar12 = *param_6;\n      }\n      if ((uVar12 & 0x40) != 0) {\n        (*(code *)PTR_register_css_000af970)();\n      }\n    }" (if "if") (parenthesized_expression "((uVar12 != 0) || (puVar19[0x16a] != '\0'))" (( "(") (binary_expression "(uVar12 != 0) || (puVar19[0x16a] != '\0')" (parenthesized_expression "(uVar12 != 0)" (( "(") (binary_expression "uVar12 != 0" (identifier "uVar12") (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(puVar19[0x16a] != '\0')" (( "(") (binary_expression "puVar19[0x16a] != '\0'" (subscript_expression "puVar19[0x16a]" (identifier "puVar19") ([ "[") (number_literal "0x16a") (] "]")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n      (*(code *)PTR_register_download_000af96c)(*puVar13);\n      if ((puVar19[0x48] == '\0') && (local_84 != 0)) {\n        puVar20 = (undefined *)*puVar13;\n        puVar18 = puVar20;\n        iVar10 = (*(code *)PTR_strcmp_000afacc)(param_2);\n        if (iVar10 != 0) {\n          (*(code *)PTR_register_redirection_000af978)(param_2);\n          puVar18 = puVar20;\n        }\n      }\n      uVar12 = *param_6;\n      if ((uVar12 & 1) != 0) {\n        (*(code *)PTR_register_html_000af974)();\n        uVar12 = *param_6;\n      }\n      if ((uVar12 & 0x40) != 0) {\n        (*(code *)PTR_register_css_000af970)();\n      }\n    }" ({ "{") (expression_statement "(*(code *)PTR_register_download_000af96c)(*puVar13);" (call_expression "(*(code *)PTR_register_download_000af96c)(*puVar13)" (parenthesized_expression "(*(code *)PTR_register_download_000af96c)" (( "(") (pointer_expression "*(code *)PTR_register_download_000af96c" (* "*") (cast_expression "(code *)PTR_register_download_000af96c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_register_download_000af96c"))) () ")")) (argument_list "(*puVar13)" (( "(") (pointer_expression "*puVar13" (* "*") (identifier "puVar13")) () ")"))) (; ";")) (if_statement "if ((puVar19[0x48] == '\0') && (local_84 != 0)) {\n        puVar20 = (undefined *)*puVar13;\n        puVar18 = puVar20;\n        iVar10 = (*(code *)PTR_strcmp_000afacc)(param_2);\n        if (iVar10 != 0) {\n          (*(code *)PTR_register_redirection_000af978)(param_2);\n          puVar18 = puVar20;\n        }\n      }" (if "if") (parenthesized_expression "((puVar19[0x48] == '\0') && (local_84 != 0))" (( "(") (binary_expression "(puVar19[0x48] == '\0') && (local_84 != 0)" (parenthesized_expression "(puVar19[0x48] == '\0')" (( "(") (binary_expression "puVar19[0x48] == '\0'" (subscript_expression "puVar19[0x48]" (identifier "puVar19") ([ "[") (number_literal "0x48") (] "]")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(local_84 != 0)" (( "(") (binary_expression "local_84 != 0" (identifier "local_84") (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n        puVar20 = (undefined *)*puVar13;\n        puVar18 = puVar20;\n        iVar10 = (*(code *)PTR_strcmp_000afacc)(param_2);\n        if (iVar10 != 0) {\n          (*(code *)PTR_register_redirection_000af978)(param_2);\n          puVar18 = puVar20;\n        }\n      }" ({ "{") (expression_statement "puVar20 = (undefined *)*puVar13;" (assignment_expression "puVar20 = (undefined *)*puVar13" (identifier "puVar20") (= "=") (cast_expression "(undefined *)*puVar13" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar13" (* "*") (identifier "puVar13")))) (; ";")) (expression_statement "puVar18 = puVar20;" (assignment_expression "puVar18 = puVar20" (identifier "puVar18") (= "=") (identifier "puVar20")) (; ";")) (expression_statement "iVar10 = (*(code *)PTR_strcmp_000afacc)(param_2);" (assignment_expression "iVar10 = (*(code *)PTR_strcmp_000afacc)(param_2)" (identifier "iVar10") (= "=") (call_expression "(*(code *)PTR_strcmp_000afacc)(param_2)" (parenthesized_expression "(*(code *)PTR_strcmp_000afacc)" (( "(") (pointer_expression "*(code *)PTR_strcmp_000afacc" (* "*") (cast_expression "(code *)PTR_strcmp_000afacc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strcmp_000afacc"))) () ")")) (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (if_statement "if (iVar10 != 0) {\n          (*(code *)PTR_register_redirection_000af978)(param_2);\n          puVar18 = puVar20;\n        }" (if "if") (parenthesized_expression "(iVar10 != 0)" (( "(") (binary_expression "iVar10 != 0" (identifier "iVar10") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          (*(code *)PTR_register_redirection_000af978)(param_2);\n          puVar18 = puVar20;\n        }" ({ "{") (expression_statement "(*(code *)PTR_register_redirection_000af978)(param_2);" (call_expression "(*(code *)PTR_register_redirection_000af978)(param_2)" (parenthesized_expression "(*(code *)PTR_register_redirection_000af978)" (( "(") (pointer_expression "*(code *)PTR_register_redirection_000af978" (* "*") (cast_expression "(code *)PTR_register_redirection_000af978" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_register_redirection_000af978"))) () ")")) (argument_list "(param_2)" (( "(") (identifier "param_2") () ")"))) (; ";")) (expression_statement "puVar18 = puVar20;" (assignment_expression "puVar18 = puVar20" (identifier "puVar18") (= "=") (identifier "puVar20")) (; ";")) (} "}"))) (} "}"))) (expression_statement "uVar12 = *param_6;" (assignment_expression "uVar12 = *param_6" (identifier "uVar12") (= "=") (pointer_expression "*param_6" (* "*") (identifier "param_6"))) (; ";")) (if_statement "if ((uVar12 & 1) != 0) {\n        (*(code *)PTR_register_html_000af974)();\n        uVar12 = *param_6;\n      }" (if "if") (parenthesized_expression "((uVar12 & 1) != 0)" (( "(") (binary_expression "(uVar12 & 1) != 0" (parenthesized_expression "(uVar12 & 1)" (( "(") (binary_expression "uVar12 & 1" (identifier "uVar12") (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        (*(code *)PTR_register_html_000af974)();\n        uVar12 = *param_6;\n      }" ({ "{") (expression_statement "(*(code *)PTR_register_html_000af974)();" (call_expression "(*(code *)PTR_register_html_000af974)()" (parenthesized_expression "(*(code *)PTR_register_html_000af974)" (( "(") (pointer_expression "*(code *)PTR_register_html_000af974" (* "*") (cast_expression "(code *)PTR_register_html_000af974" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_register_html_000af974"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar12 = *param_6;" (assignment_expression "uVar12 = *param_6" (identifier "uVar12") (= "=") (pointer_expression "*param_6" (* "*") (identifier "param_6"))) (; ";")) (} "}"))) (if_statement "if ((uVar12 & 0x40) != 0) {\n        (*(code *)PTR_register_css_000af970)();\n      }" (if "if") (parenthesized_expression "((uVar12 & 0x40) != 0)" (( "(") (binary_expression "(uVar12 & 0x40) != 0" (parenthesized_expression "(uVar12 & 0x40)" (( "(") (binary_expression "uVar12 & 0x40" (identifier "uVar12") (& "&") (number_literal "0x40")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        (*(code *)PTR_register_css_000af970)();\n      }" ({ "{") (expression_statement "(*(code *)PTR_register_css_000af970)();" (call_expression "(*(code *)PTR_register_css_000af970)()" (parenthesized_expression "(*(code *)PTR_register_css_000af970)" (( "(") (pointer_expression "*(code *)PTR_register_css_000af970" (* "*") (cast_expression "(code *)PTR_register_css_000af970" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_register_css_000af970"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (} "}"))) (} "}"))) (labeled_statement "LAB_0004d2f8:\n  if (param_3 == (undefined4 *)0x0) {\n    (*(code *)PTR_free_000afd08)();\n    local_30 = (undefined *)0x0;\n  }\n  else {\n    *param_3 = local_30;\n  }" (statement_identifier "LAB_0004d2f8") (: ":") (if_statement "if (param_3 == (undefined4 *)0x0) {\n    (*(code *)PTR_free_000afd08)();\n    local_30 = (undefined *)0x0;\n  }\n  else {\n    *param_3 = local_30;\n  }" (if "if") (parenthesized_expression "(param_3 == (undefined4 *)0x0)" (( "(") (binary_expression "param_3 == (undefined4 *)0x0" (identifier "param_3") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    (*(code *)PTR_free_000afd08)();\n    local_30 = (undefined *)0x0;\n  }" ({ "{") (expression_statement "(*(code *)PTR_free_000afd08)();" (call_expression "(*(code *)PTR_free_000afd08)()" (parenthesized_expression "(*(code *)PTR_free_000afd08)" (( "(") (pointer_expression "*(code *)PTR_free_000afd08" (* "*") (cast_expression "(code *)PTR_free_000afd08" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_000afd08"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "local_30 = (undefined *)0x0;" (assignment_expression "local_30 = (undefined *)0x0" (identifier "local_30") (= "=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")) (else_clause "else {\n    *param_3 = local_30;\n  }" (else "else") (compound_statement "{\n    *param_3 = local_30;\n  }" ({ "{") (expression_statement "*param_3 = local_30;" (assignment_expression "*param_3 = local_30" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (identifier "local_30")) (; ";")) (} "}"))))) (if_statement "if (param_1 != puVar13) {\n    url_free(puVar13);\n  }" (if "if") (parenthesized_expression "(param_1 != puVar13)" (( "(") (binary_expression "param_1 != puVar13" (identifier "param_1") (!= "!=") (identifier "puVar13")) () ")")) (compound_statement "{\n    url_free(puVar13);\n  }" ({ "{") (expression_statement "url_free(puVar13);" (call_expression "url_free(puVar13)" (identifier "url_free") (argument_list "(puVar13)" (( "(") (identifier "puVar13") () ")"))) (; ";")) (} "}"))) (expression_statement "puVar20 = PTR_free_000afd08;" (assignment_expression "puVar20 = PTR_free_000afd08" (identifier "puVar20") (= "=") (identifier "PTR_free_000afd08")) (; ";")) (if_statement "if ((local_84 == 0) && (cVar4 == '\0')) {\n    if (param_4 != (undefined4 *)0x0) {\n      *param_4 = 0;\n    }\n  }\n  else if (param_4 != (undefined4 *)0x0) {\n    *param_4 = puVar5;\n    goto LAB_0004d33c;\n  }" (if "if") (parenthesized_expression "((local_84 == 0) && (cVar4 == '\0'))" (( "(") (binary_expression "(local_84 == 0) && (cVar4 == '\0')" (parenthesized_expression "(local_84 == 0)" (( "(") (binary_expression "local_84 == 0" (identifier "local_84") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(cVar4 == '\0')" (( "(") (binary_expression "cVar4 == '\0'" (identifier "cVar4") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n    if (param_4 != (undefined4 *)0x0) {\n      *param_4 = 0;\n    }\n  }" ({ "{") (if_statement "if (param_4 != (undefined4 *)0x0) {\n      *param_4 = 0;\n    }" (if "if") (parenthesized_expression "(param_4 != (undefined4 *)0x0)" (( "(") (binary_expression "param_4 != (undefined4 *)0x0" (identifier "param_4") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      *param_4 = 0;\n    }" ({ "{") (expression_statement "*param_4 = 0;" (assignment_expression "*param_4 = 0" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (number_literal "0")) (; ";")) (} "}"))) (} "}")) (else_clause "else if (param_4 != (undefined4 *)0x0) {\n    *param_4 = puVar5;\n    goto LAB_0004d33c;\n  }" (else "else") (if_statement "if (param_4 != (undefined4 *)0x0) {\n    *param_4 = puVar5;\n    goto LAB_0004d33c;\n  }" (if "if") (parenthesized_expression "(param_4 != (undefined4 *)0x0)" (( "(") (binary_expression "param_4 != (undefined4 *)0x0" (identifier "param_4") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    *param_4 = puVar5;\n    goto LAB_0004d33c;\n  }" ({ "{") (expression_statement "*param_4 = puVar5;" (assignment_expression "*param_4 = puVar5" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (identifier "puVar5")) (; ";")) (goto_statement "goto LAB_0004d33c;" (goto "goto") (statement_identifier "LAB_0004d33c") (; ";")) (} "}"))))) (expression_statement "(*(code *)puVar20)(puVar5);" (call_expression "(*(code *)puVar20)(puVar5)" (parenthesized_expression "(*(code *)puVar20)" (( "(") (pointer_expression "*(code *)puVar20" (* "*") (cast_expression "(code *)puVar20" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar20"))) () ")")) (argument_list "(puVar5)" (( "(") (identifier "puVar5") () ")"))) (; ";")) (labeled_statement "LAB_0004d33c:\n  puVar5 = PTR_opt_000af488;" (statement_identifier "LAB_0004d33c") (: ":") (expression_statement "puVar5 = PTR_opt_000af488;" (assignment_expression "puVar5 = PTR_opt_000af488" (identifier "puVar5") (= "=") (identifier "PTR_opt_000af488")) (; ";"))) (if_statement "if (bVar3) {\n    *(undefined4 *)(PTR_opt_000af488 + 0x1f8) = local_64;\n    *(undefined4 *)(puVar5 + 0x1fc) = local_5c;\n    *(undefined4 *)(puVar5 + 500) = local_60;\n  }" (if "if") (parenthesized_expression "(bVar3)" (( "(") (identifier "bVar3") () ")")) (compound_statement "{\n    *(undefined4 *)(PTR_opt_000af488 + 0x1f8) = local_64;\n    *(undefined4 *)(puVar5 + 0x1fc) = local_5c;\n    *(undefined4 *)(puVar5 + 500) = local_60;\n  }" ({ "{") (expression_statement "*(undefined4 *)(PTR_opt_000af488 + 0x1f8) = local_64;" (assignment_expression "*(undefined4 *)(PTR_opt_000af488 + 0x1f8) = local_64" (pointer_expression "*(undefined4 *)(PTR_opt_000af488 + 0x1f8)" (* "*") (cast_expression "(undefined4 *)(PTR_opt_000af488 + 0x1f8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_opt_000af488 + 0x1f8)" (( "(") (binary_expression "PTR_opt_000af488 + 0x1f8" (identifier "PTR_opt_000af488") (+ "+") (number_literal "0x1f8")) () ")")))) (= "=") (identifier "local_64")) (; ";")) (expression_statement "*(undefined4 *)(puVar5 + 0x1fc) = local_5c;" (assignment_expression "*(undefined4 *)(puVar5 + 0x1fc) = local_5c" (pointer_expression "*(undefined4 *)(puVar5 + 0x1fc)" (* "*") (cast_expression "(undefined4 *)(puVar5 + 0x1fc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5 + 0x1fc)" (( "(") (binary_expression "puVar5 + 0x1fc" (identifier "puVar5") (+ "+") (number_literal "0x1fc")) () ")")))) (= "=") (identifier "local_5c")) (; ";")) (expression_statement "*(undefined4 *)(puVar5 + 500) = local_60;" (assignment_expression "*(undefined4 *)(puVar5 + 500) = local_60" (pointer_expression "*(undefined4 *)(puVar5 + 500)" (* "*") (cast_expression "(undefined4 *)(puVar5 + 500)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5 + 500)" (( "(") (binary_expression "puVar5 + 500" (identifier "puVar5") (+ "+") (number_literal "500")) () ")")))) (= "=") (identifier "local_60")) (; ";")) (} "}"))) (labeled_statement "LAB_0004d368:\n  if (param_9 != '\0') {\n    inform_exit_status(iVar9);\n  }" (statement_identifier "LAB_0004d368") (: ":") (if_statement "if (param_9 != '\0') {\n    inform_exit_status(iVar9);\n  }" (if "if") (parenthesized_expression "(param_9 != '\0')" (( "(") (binary_expression "param_9 != '\0'" (identifier "param_9") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    inform_exit_status(iVar9);\n  }" ({ "{") (expression_statement "inform_exit_status(iVar9);" (call_expression "inform_exit_status(iVar9)" (identifier "inform_exit_status") (argument_list "(iVar9)" (( "(") (identifier "iVar9") () ")"))) (; ";")) (} "}")))) (if_statement "if (local_2c != *(undefined **)puVar17) {\n    puVar17 = local_2c;\n    puVar5 = PTR___stack_chk_fail_000afbd4;\n    (*(code *)PTR___stack_chk_fail_000afbd4)();\n    if (puVar17 == puVar18) {\n      uVar15 = (**(code **)(puVar5 + 0x62534))(0,*(int *)(puVar5 + 0x61cac) + 0x7864,5);\n      iVar9 = logputs(0,uVar15);\n      return iVar9;\n    }\n    uVar15 = (**(code **)(puVar5 + 0x62534))(0,*(int *)(puVar5 + 0x61cac) + 0x7874);\n    iVar9 = logputs(0,uVar15);\n    return iVar9;\n  }" (if "if") (parenthesized_expression "(local_2c != *(undefined **)puVar17)" (( "(") (binary_expression "local_2c != *(undefined **)puVar17" (identifier "local_2c") (!= "!=") (pointer_expression "*(undefined **)puVar17" (* "*") (cast_expression "(undefined **)puVar17" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "puVar17")))) () ")")) (compound_statement "{\n    puVar17 = local_2c;\n    puVar5 = PTR___stack_chk_fail_000afbd4;\n    (*(code *)PTR___stack_chk_fail_000afbd4)();\n    if (puVar17 == puVar18) {\n      uVar15 = (**(code **)(puVar5 + 0x62534))(0,*(int *)(puVar5 + 0x61cac) + 0x7864,5);\n      iVar9 = logputs(0,uVar15);\n      return iVar9;\n    }\n    uVar15 = (**(code **)(puVar5 + 0x62534))(0,*(int *)(puVar5 + 0x61cac) + 0x7874);\n    iVar9 = logputs(0,uVar15);\n    return iVar9;\n  }" ({ "{") (expression_statement "puVar17 = local_2c;" (assignment_expression "puVar17 = local_2c" (identifier "puVar17") (= "=") (identifier "local_2c")) (; ";")) (expression_statement "puVar5 = PTR___stack_chk_fail_000afbd4;" (assignment_expression "puVar5 = PTR___stack_chk_fail_000afbd4" (identifier "puVar5") (= "=") (identifier "PTR___stack_chk_fail_000afbd4")) (; ";")) (expression_statement "(*(code *)PTR___stack_chk_fail_000afbd4)();" (call_expression "(*(code *)PTR___stack_chk_fail_000afbd4)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000afbd4)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_000afbd4" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_000afbd4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_000afbd4"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (puVar17 == puVar18) {\n      uVar15 = (**(code **)(puVar5 + 0x62534))(0,*(int *)(puVar5 + 0x61cac) + 0x7864,5);\n      iVar9 = logputs(0,uVar15);\n      return iVar9;\n    }" (if "if") (parenthesized_expression "(puVar17 == puVar18)" (( "(") (binary_expression "puVar17 == puVar18" (identifier "puVar17") (== "==") (identifier "puVar18")) () ")")) (compound_statement "{\n      uVar15 = (**(code **)(puVar5 + 0x62534))(0,*(int *)(puVar5 + 0x61cac) + 0x7864,5);\n      iVar9 = logputs(0,uVar15);\n      return iVar9;\n    }" ({ "{") (expression_statement "uVar15 = (**(code **)(puVar5 + 0x62534))(0,*(int *)(puVar5 + 0x61cac) + 0x7864,5);" (assignment_expression "uVar15 = (**(code **)(puVar5 + 0x62534))(0,*(int *)(puVar5 + 0x61cac) + 0x7864,5)" (identifier "uVar15") (= "=") (call_expression "(**(code **)(puVar5 + 0x62534))(0,*(int *)(puVar5 + 0x61cac) + 0x7864,5)" (parenthesized_expression "(**(code **)(puVar5 + 0x62534))" (( "(") (pointer_expression "**(code **)(puVar5 + 0x62534)" (* "*") (pointer_expression "*(code **)(puVar5 + 0x62534)" (* "*") (cast_expression "(code **)(puVar5 + 0x62534)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar5 + 0x62534)" (( "(") (binary_expression "puVar5 + 0x62534" (identifier "puVar5") (+ "+") (number_literal "0x62534")) () ")"))))) () ")")) (argument_list "(0,*(int *)(puVar5 + 0x61cac) + 0x7864,5)" (( "(") (number_literal "0") (, ",") (binary_expression "*(int *)(puVar5 + 0x61cac) + 0x7864" (pointer_expression "*(int *)(puVar5 + 0x61cac)" (* "*") (cast_expression "(int *)(puVar5 + 0x61cac)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5 + 0x61cac)" (( "(") (binary_expression "puVar5 + 0x61cac" (identifier "puVar5") (+ "+") (number_literal "0x61cac")) () ")")))) (+ "+") (number_literal "0x7864")) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "iVar9 = logputs(0,uVar15);" (assignment_expression "iVar9 = logputs(0,uVar15)" (identifier "iVar9") (= "=") (call_expression "logputs(0,uVar15)" (identifier "logputs") (argument_list "(0,uVar15)" (( "(") (number_literal "0") (, ",") (identifier "uVar15") () ")")))) (; ";")) (return_statement "return iVar9;" (return "return") (identifier "iVar9") (; ";")) (} "}"))) (expression_statement "uVar15 = (**(code **)(puVar5 + 0x62534))(0,*(int *)(puVar5 + 0x61cac) + 0x7874);" (assignment_expression "uVar15 = (**(code **)(puVar5 + 0x62534))(0,*(int *)(puVar5 + 0x61cac) + 0x7874)" (identifier "uVar15") (= "=") (call_expression "(**(code **)(puVar5 + 0x62534))(0,*(int *)(puVar5 + 0x61cac) + 0x7874)" (parenthesized_expression "(**(code **)(puVar5 + 0x62534))" (( "(") (pointer_expression "**(code **)(puVar5 + 0x62534)" (* "*") (pointer_expression "*(code **)(puVar5 + 0x62534)" (* "*") (cast_expression "(code **)(puVar5 + 0x62534)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar5 + 0x62534)" (( "(") (binary_expression "puVar5 + 0x62534" (identifier "puVar5") (+ "+") (number_literal "0x62534")) () ")"))))) () ")")) (argument_list "(0,*(int *)(puVar5 + 0x61cac) + 0x7874)" (( "(") (number_literal "0") (, ",") (binary_expression "*(int *)(puVar5 + 0x61cac) + 0x7874" (pointer_expression "*(int *)(puVar5 + 0x61cac)" (* "*") (cast_expression "(int *)(puVar5 + 0x61cac)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5 + 0x61cac)" (( "(") (binary_expression "puVar5 + 0x61cac" (identifier "puVar5") (+ "+") (number_literal "0x61cac")) () ")")))) (+ "+") (number_literal "0x7874")) () ")")))) (; ";")) (expression_statement "iVar9 = logputs(0,uVar15);" (assignment_expression "iVar9 = logputs(0,uVar15)" (identifier "iVar9") (= "=") (call_expression "logputs(0,uVar15)" (identifier "logputs") (argument_list "(0,uVar15)" (( "(") (number_literal "0") (, ",") (identifier "uVar15") () ")")))) (; ";")) (return_statement "return iVar9;" (return "return") (identifier "iVar9") (; ";")) (} "}"))) (return_statement "return iVar9;" (return "return") (identifier "iVar9") (; ";")) (} "}")))

type_1 function_1(type_2 *var_32,char *origurl,char **var_4,char **var_3,char *var_5,int *var_1,
                   type_3 recursive,type_4 *type_4,type_3 register_status)

{
  char var_44;
  bool bVar2;
  char var_45;
  type_5 *var_37;
  type_6 extraout_var;
  type_6 extraout_var_00;
  char *var_48;
  type_7 *pcVar6;
  char *pcVar7;
  char *pcVar8;
  char *var_9;
  type_4 *i;
  type_2 *var_16;
  type_8 var_39;
  type_2 *var_31;
  int var_43;
  type_1 var_18;
  type_3 var_40;
  char *var_24;
  type_5 *var_23;
  type_5 *var_49;
  int var_11;
  char *local_7c;
  type_8 var_15;
  type_9 local_64;
  type_9 local_60;
  type_9 local_5c;
  int dummy;
  char *var_21;
  int up_error_code;
  char *var_12;
  char *var_47;
  
  var_49 = PTR___stack_chk_guard_000afc3c;
  local_7c = var_5;
  var_15 = (type_8)recursive;
  var_47 = *(char **)PTR___stack_chk_guard_000afc3c;
  var_12 = (char *)0x0;
  if (var_1 == (int *)0x0) {
    var_1 = &dummy;
    dummy = 0;
  }
  var_48 = var_2(origurl);
  if (var_3 != (char **)0x0) {
    *var_3 = (char *)0x0;
  }
  if (var_4 != (char **)0x0) {
    *var_4 = (char *)0x0;
  }
  var_37 = var_8;
  if (var_5 == (char *)0x0) {
    local_7c = *(char **)(var_6 + 0x178);
  }
  local_5c = 0;
  local_60 = 0;
  local_64 = 0;
  bVar2 = false;
  pcVar6 = (type_7 *)(var_7 + -0x4774);
  var_11 = 0;
  pcVar7 = var_8 + 0x77ec;
  pcVar8 = var_8 + -0x1710;
  var_31 = var_32;
  var_45 = '\0';
LAB_0004ce08:
  do {
    var_21 = (char *)0x0;
    (*(type_7 *)PTR_free_000afd08)(var_12);
    var_12 = (char *)0x0;
    var_9 = (char *)(*pcVar6)(&var_31->scheme,&var_31->host);
    var_23 = var_6;
    if (var_9 == (char *)0x0) {
      if (var_31->scheme < var_10) {
        var_16 = (type_2 *)0x0;
        goto LAB_0004cfbc;
      }
      if (1 < var_31->scheme - var_10) goto LAB_0004cef8;
      var_16 = (type_2 *)0x0;
LAB_0004d1d0:
      if (var_11 == 0) {
        var_18 = (*(type_7 *)PTR_ftp_loop_000af968)
                        (var_31,var_32,&var_12,var_1,var_16,var_15,var_6[0xe1]);
      }
      else {
        var_18 = (*(type_7 *)PTR_ftp_loop_000af968)(var_31,var_32,&var_12,var_1,var_16,var_15,0);
        if ((var_12 == (char *)0x0) || (1 < var_31->scheme - var_10)) {
          var_15 = 0;
        }
        else {
          var_40 = var_13(var_12);
          var_15 = var_14(extraout_var_00,var_40);
          if (var_15 != 0) {
            var_15 = 0;
            *var_1 = *var_1 | 1;
          }
        }
      }
LAB_0004d01c:
      if (var_16 != (type_2 *)0x0) {
        var_17(var_16);
      }
      var_23 = var_6;
      if ((var_18 == var_19) || (var_18 == var_20)) {
        (*(type_7 *)PTR_free_000afd08)(var_12);
        var_12 = (char *)0x0;
        var_9 = var_21;
        if (var_21 == (char *)0x0) {
          var_9 = pcVar8;
        }
        var_9 = var_22(var_48,var_9);
        (*(type_7 *)PTR_free_000afd08)(var_21);
        var_24 = *(char **)(var_23 + 0x218);
        type_4->utf8_encode = (type_3)var_23[0x216];
        var_21 = var_9;
        if (var_24 != (char *)0x0) {
          var_25(type_4,var_24,true);
        }
        var_26(type_4,(char *)0x0);
        (*(type_7 *)PTR_free_000afd08)(type_4->orig_url);
        type_4->orig_url = (char *)0x0;
        var_16 = var_27(var_21,&up_error_code,type_4,true);
        if (var_16 == (type_2 *)0x0) {
          var_48 = var_28(var_21,up_error_code);
          pcVar7 = var_29(var_21);
                    /* WARNING: Subroutine does not return */
          var_30(LOG_NOTQUIET,var_8 + 0x776c,pcVar7,var_48);
        }
        var_11 = var_11 + 1;
        (*(type_7 *)PTR_free_000afd08)(var_21);
        var_21 = (char *)0x0;
        var_21 = var_2(var_16->type_2);
        if (*(int *)(var_23 + 0x18) < var_11) {
          var_48 = (char *)(*(type_7 *)PTR_dcgettext_000afcf4)(0,var_8 + 0x77d0,5);
                    /* WARNING: Subroutine does not return */
          var_30(LOG_NOTQUIET,var_48,*(type_9 *)(var_23 + 0x18));
        }
        (*(type_7 *)PTR_free_000afd08)(var_48);
        var_48 = var_21;
        if (var_31 != var_32) {
          var_17(var_31);
        }
        var_31 = var_16;
        if ((var_18 != var_20) && (!bVar2)) {
          local_64 = *(type_9 *)(var_23 + 0x1f8);
          *(type_9 *)(var_23 + 0x1f8) = 0;
          local_5c = *(type_9 *)(var_23 + 0x1fc);
          *(type_9 *)(var_23 + 0x1fc) = 0;
          bVar2 = true;
          local_60 = *(type_9 *)(var_23 + 500);
          *(type_9 *)(var_23 + 500) = 0;
        }
        goto LAB_0004ce08;
      }
    }
    else {
      i = var_33();
      var_25(i,*(char **)(var_23 + 0x21c),true);
      i->utf8_encode = false;
      var_16 = var_27(var_9,&up_error_code,i,true);
      if (var_16 == (type_2 *)0x0) {
        var_48 = var_28(var_9,up_error_code);
        pcVar7 = (char *)(*(type_7 *)PTR_dcgettext_000afcf4)(0,var_8 + 0x7754,5);
                    /* WARNING: Subroutine does not return */
        var_30(LOG_NOTQUIET,pcVar7,var_9,var_48);
      }
      if ((var_16->scheme != var_34) && (var_16->scheme != var_31->scheme)) {
        var_48 = (char *)(*(type_7 *)PTR_dcgettext_000afcf4)(0,var_8 + 0x7778,5);
                    /* WARNING: Subroutine does not return */
        var_30(LOG_NOTQUIET,var_48,var_9);
      }
      var_35(i);
      (*(type_7 *)PTR_free_000afd08)(var_9);
      if ((var_31->scheme < var_10) || (var_16->scheme == var_34)) {
LAB_0004cfbc:
        if ((var_23[0x22c] != '\0') &&
           ((*(type_10 *)PTR_hsts_store_000af570 != (type_10)0x0 &&
            (var_40 = var_36(*(type_10 *)PTR_hsts_store_000af570,var_31),
            var_14(extraout_var,var_40) != 0)))) {
                    /* WARNING: Subroutine does not return */
          var_30(LOG_VERBOSE,var_37 + 0x77a0);
        }
        var_18 = var_38(var_31,var_32,&var_21,&var_12,local_7c,var_1,var_16,type_4);
        goto LAB_0004d01c;
      }
      if (var_31->scheme - var_10 < 2) goto LAB_0004d1d0;
      var_17(var_16);
LAB_0004cef8:
      var_18 = NOCONERROR;
    }
    (*(type_7 *)PTR_free_000afd08)(var_21);
    var_39 = *var_1 & 2;
    var_21 = (char *)0x0;
    if ((var_39 != 0) || (var_40 = type_4->utf8_encode, var_40 == false)) {
      var_9 = var_12;
      if ((var_12 == (char *)0x0) || (var_23 = var_6, var_31 == (type_2 *)0x0))
      goto LAB_0004d2f8;
      goto LAB_0004d2e0;
    }
    type_4->utf8_encode = false;
    if (var_31 != var_32) {
      var_17(var_31);
    }
    var_9 = (char *)0x0;
    var_31 = var_27(origurl,(int *)0x0,type_4,true);
    var_23 = var_6;
    if (var_31 == (type_2 *)0x0) {
      if (var_6[0x16b] != '\0') {
        var_9 = var_41(var_48);
        var_42(var_8 + 0x783c);
      }
      goto LAB_0004d2f8;
    }
    var_43 = (*(type_7 *)PTR_strcmp_000afacc)(var_31->type_2,var_32->type_2);
    var_44 = var_23[0x16b];
    if (var_43 == 0) break;
    if (var_44 != '\0') {
      var_9 = var_41(var_48);
      var_42(pcVar7,var_9);
    }
    (*(type_7 *)PTR_free_000afd08)(var_48);
    var_48 = var_2(var_31->type_2);
    var_45 = var_40;
  } while( true );
  if (var_44 != '\0') {
    pcVar7 = var_41(var_48);
    var_42(var_8 + 0x7814,pcVar7);
  }
  var_9 = var_12;
  if (var_12 != (char *)0x0) {
    var_39 = *var_1 & 2;
LAB_0004d2e0:
    var_9 = var_12;
    if ((var_39 != 0) || (var_23[0x16a] != '\0')) {
      (*(type_7 *)PTR_register_download_000af96c)(var_31->type_2);
      if ((var_23[0x48] == '\0') && (var_11 != 0)) {
        pcVar7 = var_31->type_2;
        var_9 = pcVar7;
        var_43 = (*(type_7 *)PTR_strcmp_000afacc)(origurl);
        if (var_43 != 0) {
          (*(type_7 *)PTR_register_redirection_000af978)(origurl);
          var_9 = pcVar7;
        }
      }
      var_39 = *var_1;
      if ((var_39 & 1) != 0) {
        (*(type_7 *)PTR_register_html_000af974)();
        var_39 = *var_1;
      }
      if ((var_39 & 0x40) != 0) {
        (*(type_7 *)PTR_register_css_000af970)();
      }
    }
  }
LAB_0004d2f8:
  if (var_4 == (char **)0x0) {
    (*(type_7 *)PTR_free_000afd08)();
    var_12 = (char *)0x0;
  }
  else {
    *var_4 = var_12;
  }
  if (var_32 != var_31) {
    var_17(var_31);
  }
  var_37 = PTR_free_000afd08;
  if ((var_11 == 0) && (var_45 == '\0')) {
    if (var_3 != (char **)0x0) {
      *var_3 = (char *)0x0;
    }
  }
  else if (var_3 != (char **)0x0) {
    *var_3 = var_48;
    goto LAB_0004d33c;
  }
  (*(type_7 *)var_37)(var_48);
LAB_0004d33c:
  var_37 = var_6;
  if (bVar2) {
    *(type_9 *)(var_6 + 0x1f8) = local_64;
    *(type_9 *)(var_37 + 0x1fc) = local_5c;
    *(type_9 *)(var_37 + 500) = local_60;
  }
  if (register_status) {
    var_46(var_18);
  }
  if (var_47 != *(char **)var_49) {
    var_48 = var_47;
    var_49 = PTR___stack_chk_fail_000afbd4;
    (*(type_7 *)PTR___stack_chk_fail_000afbd4)();
    if (var_48 == var_9) {
      var_48 = (char *)(**(type_7 **)(var_49 + 0x62534))(0,*(int *)(var_49 + 0x61cac) + 0x7864,5);
      var_50(LOG_VERBOSE,var_48);
      return (type_1)var_48;
    }
    var_48 = (char *)(**(type_7 **)(var_49 + 0x62534))(0,*(int *)(var_49 + 0x61cac) + 0x7874);
    var_50(LOG_VERBOSE,var_48);
    return (type_1)var_48;
  }
  return var_18;
}


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

int MASKED(undefined4 *param_1,undefined4 param_2,undefined4 *param_3,undefined4 *param_4,
                int param_5,uint *param_6,byte param_7,int param_8,char param_9)

{
  char cVar1;
  char cVar2;
  bool bVar3;
  char cVar4;
  undefined *puVar5;
  code *pcVar6;
  undefined *puVar7;
  undefined *puVar8;
  int iVar9;
  int iVar10;
  int iVar11;
  uint uVar12;
  undefined4 *puVar13;
  undefined4 *puVar14;
  undefined4 uVar15;
  undefined4 uVar16;
  undefined *puVar17;
  undefined *puVar18;
  undefined *puVar19;
  undefined *puVar20;
  int local_84;
  int local_7c;
  uint local_68;
  undefined4 local_64;
  undefined4 local_60;
  undefined4 local_5c;
  uint local_3c;
  undefined *local_38;
  undefined4 local_34;
  undefined *local_30;
  undefined *local_2c;
  
  puVar17 = PTR___stack_chk_guard_000afc3c;
  local_7c = param_5;
  local_68 = (uint)param_7;
  local_2c = *(undefined **)PTR___stack_chk_guard_000afc3c;
  local_30 = (undefined *)0x0;
  if (param_6 == (uint *)0x0) {
    param_6 = &local_3c;
    local_3c = 0;
  }
  puVar5 = (undefined *)xstrdup(param_2);
  if (param_4 != (undefined4 *)0x0) {
    *param_4 = 0;
  }
  if (param_3 != (undefined4 *)0x0) {
    *param_3 = 0;
  }
  puVar20 = PTR_s_hallenge__000af46c;
  if (param_5 == 0) {
    local_7c = *(int *)(PTR_opt_000af488 + 0x178);
  }
  local_5c = 0;
  local_60 = 0;
  local_64 = 0;
  bVar3 = false;
  pcVar6 = (code *)(PTR_LAB_000af918 + -0x4774);
  local_84 = 0;
  puVar7 = PTR_s_hallenge__000af46c + 0x77ec;
  puVar8 = PTR_s_hallenge__000af46c + -0x1710;
  puVar13 = param_1;
  cVar4 = '\0';
LAB_0004ce08:
  do {
    local_38 = (undefined *)0x0;
    (*(code *)PTR_free_000afd08)(local_30);
    local_30 = (undefined *)0x0;
    iVar9 = (*pcVar6)(puVar13 + 1,puVar13 + 2);
    puVar19 = PTR_opt_000af488;
    if (iVar9 != 0) {
      iVar10 = iri_new();
      set_uri_encoding(iVar10,*(undefined4 *)(puVar19 + 0x21c),1);
      *(undefined1 *)(iVar10 + 0xc) = 0;
      iVar11 = url_parse(iVar9,&local_34,iVar10,1);
      if (iVar11 == 0) {
        puVar20 = (undefined *)url_error(iVar9,local_34);
        puVar18 = (undefined *)
                  (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7754,5);
        logprintf(1,puVar18,iVar9,puVar20);
        (*(code *)PTR_free_000afd08)(puVar5);
      }
      else {
        if ((*(int *)(iVar11 + 4) == 0) || (*(int *)(iVar11 + 4) == puVar13[1])) {
          iri_free(iVar10);
          (*(code *)PTR_free_000afd08)(iVar9);
          if ((1 < (uint)puVar13[1]) && (*(int *)(iVar11 + 4) != 0)) {
            if (puVar13[1] - 2 < 2) goto LAB_0004d1d0;
            url_free(iVar11);
            goto LAB_0004cef8;
          }
          goto LAB_0004cfbc;
        }
        puVar18 = (undefined *)
                  (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x7778,5);
        logprintf(1,puVar18,iVar9);
        url_free(iVar11);
        puVar20 = puVar5;
      }
      (*(code *)PTR_free_000afd08)(puVar20);
      (*(code *)PTR_free_000afd08)(iVar9);
      iri_free(iVar10);
      if (bVar3) {
        iVar9 = 0x29;
        *(undefined4 *)(puVar19 + 0x1f8) = local_64;
        *(undefined4 *)(puVar19 + 0x1fc) = local_5c;
        *(undefined4 *)(puVar19 + 500) = local_60;
      }
      else {
        iVar9 = 0x29;
      }
      goto LAB_0004d368;
    }
    if ((uint)puVar13[1] < 2) {
      iVar11 = 0;
LAB_0004cfbc:
      if (((puVar19[0x22c] != '\0') && (*(int *)PTR_hsts_store_000af570 != 0)) &&
         (iVar9 = hsts_match(*(int *)PTR_hsts_store_000af570,puVar13), iVar9 != 0)) {
        logprintf(0,puVar20 + 0x77a0);
      }
      iVar9 = http_loop(puVar13,param_1,&local_38,&local_30,local_7c,param_6,iVar11,param_8);
LAB_0004d01c:
      if (iVar11 != 0) {
        url_free(iVar11);
      }
      puVar19 = PTR_opt_000af488;
      if ((iVar9 == 6) || (iVar9 == 0x30)) {
        (*(code *)PTR_free_000afd08)(local_30);
        local_30 = (undefined *)0x0;
        puVar18 = local_38;
        if (local_38 == (undefined *)0x0) {
          puVar18 = puVar8;
        }
        puVar18 = (undefined *)uri_merge(puVar5,puVar18);
        (*(code *)PTR_free_000afd08)(local_38);
        iVar10 = *(int *)(puVar19 + 0x218);
        *(undefined *)(param_8 + 0xc) = puVar19[0x216];
        local_38 = puVar18;
        if (iVar10 != 0) {
          set_uri_encoding(param_8,iVar10,1);
        }
        set_content_encoding(param_8,0);
        (*(code *)PTR_free_000afd08)(*(undefined4 *)(param_8 + 8));
        *(undefined4 *)(param_8 + 8) = 0;
        puVar14 = (undefined4 *)url_parse(local_38,&local_34,param_8,1);
        if (puVar14 == (undefined4 *)0x0) {
          uVar15 = url_error(local_38,local_34);
          uVar16 = escnonprint_uri(local_38);
          puVar18 = PTR_s_hallenge__000af46c + 0x776c;
          logprintf(1,puVar18,uVar16,uVar15);
          if (puVar13 != param_1) {
            url_free(puVar13);
          }
          (*(code *)PTR_free_000afd08)(puVar5);
          (*(code *)PTR_free_000afd08)(local_38);
          local_38 = (undefined *)0x0;
          (*(code *)PTR_free_000afd08)(uVar15);
          if (bVar3) {
            *(undefined4 *)(puVar19 + 0x1f8) = local_64;
            *(undefined4 *)(puVar19 + 0x1fc) = local_5c;
            *(undefined4 *)(puVar19 + 500) = local_60;
          }
          goto LAB_0004d368;
        }
        local_84 = local_84 + 1;
        (*(code *)PTR_free_000afd08)(local_38);
        local_38 = (undefined *)0x0;
        local_38 = (undefined *)xstrdup(*puVar14);
        if (*(int *)(puVar19 + 0x18) < local_84) {
          puVar18 = (undefined *)
                    (*(code *)PTR_dcgettext_000afcf4)(0,PTR_s_hallenge__000af46c + 0x77d0,5);
          logprintf(1,puVar18,*(undefined4 *)(puVar19 + 0x18));
          url_free(puVar14);
          if (puVar13 != param_1) {
            url_free(puVar13);
          }
          (*(code *)PTR_free_000afd08)(puVar5);
          (*(code *)PTR_free_000afd08)(local_38);
          local_38 = (undefined *)0x0;
          if (bVar3) {
            iVar9 = 0x1b;
            *(undefined4 *)(puVar19 + 0x1f8) = local_64;
            *(undefined4 *)(puVar19 + 0x1fc) = local_5c;
            *(undefined4 *)(puVar19 + 500) = local_60;
          }
          else {
            iVar9 = 0x1b;
          }
          goto LAB_0004d368;
        }
        (*(code *)PTR_free_000afd08)(puVar5);
        puVar5 = local_38;
        if (puVar13 != param_1) {
          url_free(puVar13);
        }
        puVar13 = puVar14;
        if ((iVar9 != 0x30) && (!bVar3)) {
          local_64 = *(undefined4 *)(puVar19 + 0x1f8);
          *(undefined4 *)(puVar19 + 0x1f8) = 0;
          local_5c = *(undefined4 *)(puVar19 + 0x1fc);
          *(undefined4 *)(puVar19 + 0x1fc) = 0;
          bVar3 = true;
          local_60 = *(undefined4 *)(puVar19 + 500);
          *(undefined4 *)(puVar19 + 500) = 0;
        }
        goto LAB_0004ce08;
      }
    }
    else {
      if (puVar13[1] - 2 < 2) {
        iVar11 = 0;
LAB_0004d1d0:
        if (local_84 == 0) {
          iVar9 = (*(code *)PTR_ftp_loop_000af968)
                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,
                             PTR_opt_000af488[0xe1]);
        }
        else {
          iVar9 = (*(code *)PTR_ftp_loop_000af968)
                            (puVar13,param_1,&local_30,param_6,iVar11,local_68,0);
          if ((local_30 == (undefined *)0x0) || (1 < puVar13[1] - 2)) {
            local_68 = 0;
          }
          else {
            local_68 = has_html_suffix_p();
            if (local_68 != 0) {
              local_68 = 0;
              *param_6 = *param_6 | 1;
            }
          }
        }
        goto LAB_0004d01c;
      }
LAB_0004cef8:
      iVar9 = 0;
    }
    (*(code *)PTR_free_000afd08)(local_38);
    uVar12 = *param_6 & 2;
    local_38 = (undefined *)0x0;
    if ((uVar12 != 0) || (cVar1 = *(char *)(param_8 + 0xc), cVar1 == '\0')) {
      puVar18 = local_30;
      if ((local_30 == (undefined *)0x0) ||
         (puVar19 = PTR_opt_000af488, puVar13 == (undefined4 *)0x0)) goto LAB_0004d2f8;
      goto LAB_0004d2e0;
    }
    *(undefined1 *)(param_8 + 0xc) = 0;
    if (puVar13 != param_1) {
      url_free(puVar13);
    }
    puVar18 = (undefined *)0x0;
    puVar13 = (undefined4 *)url_parse(param_2,0,param_8,1);
    puVar19 = PTR_opt_000af488;
    if (puVar13 == (undefined4 *)0x0) {
      if (PTR_opt_000af488[0x16b] != '\0') {
        puVar18 = (undefined *)quote(puVar5);
        debug_logprintf(PTR_s_hallenge__000af46c + 0x783c);
      }
      goto LAB_0004d2f8;
    }
    iVar10 = (*(code *)PTR_strcmp_000afacc)(*puVar13,*param_1);
    cVar2 = puVar19[0x16b];
    if (iVar10 == 0) break;
    if (cVar2 != '\0') {
      uVar15 = quote(puVar5);
      debug_logprintf(puVar7,uVar15);
    }
    (*(code *)PTR_free_000afd08)(puVar5);
    puVar5 = (undefined *)xstrdup(*puVar13);
    cVar4 = cVar1;
  } while( true );
  if (cVar2 != '\0') {
    uVar15 = quote(puVar5);
    debug_logprintf(PTR_s_hallenge__000af46c + 0x7814,uVar15);
  }
  puVar18 = local_30;
  if (local_30 != (undefined *)0x0) {
    uVar12 = *param_6 & 2;
LAB_0004d2e0:
    puVar18 = local_30;
    if ((uVar12 != 0) || (puVar19[0x16a] != '\0')) {
      (*(code *)PTR_register_download_000af96c)(*puVar13);
      if ((puVar19[0x48] == '\0') && (local_84 != 0)) {
        puVar20 = (undefined *)*puVar13;
        puVar18 = puVar20;
        iVar10 = (*(code *)PTR_strcmp_000afacc)(param_2);
        if (iVar10 != 0) {
          (*(code *)PTR_register_redirection_000af978)(param_2);
          puVar18 = puVar20;
        }
      }
      uVar12 = *param_6;
      if ((uVar12 & 1) != 0) {
        (*(code *)PTR_register_html_000af974)();
        uVar12 = *param_6;
      }
      if ((uVar12 & 0x40) != 0) {
        (*(code *)PTR_register_css_000af970)();
      }
    }
  }
LAB_0004d2f8:
  if (param_3 == (undefined4 *)0x0) {
    (*(code *)PTR_free_000afd08)();
    local_30 = (undefined *)0x0;
  }
  else {
    *param_3 = local_30;
  }
  if (param_1 != puVar13) {
    url_free(puVar13);
  }
  puVar20 = PTR_free_000afd08;
  if ((local_84 == 0) && (cVar4 == '\0')) {
    if (param_4 != (undefined4 *)0x0) {
      *param_4 = 0;
    }
  }
  else if (param_4 != (undefined4 *)0x0) {
    *param_4 = puVar5;
    goto LAB_0004d33c;
  }
  (*(code *)puVar20)(puVar5);
LAB_0004d33c:
  puVar5 = PTR_opt_000af488;
  if (bVar3) {
    *(undefined4 *)(PTR_opt_000af488 + 0x1f8) = local_64;
    *(undefined4 *)(puVar5 + 0x1fc) = local_5c;
    *(undefined4 *)(puVar5 + 500) = local_60;
  }
LAB_0004d368:
  if (param_9 != '\0') {
    inform_exit_status(iVar9);
  }
  if (local_2c != *(undefined **)puVar17) {
    puVar17 = local_2c;
    puVar5 = PTR___stack_chk_fail_000afbd4;
    (*(code *)PTR___stack_chk_fail_000afbd4)();
    if (puVar17 == puVar18) {
      uVar15 = (**(code **)(puVar5 + 0x62534))(0,*(int *)(puVar5 + 0x61cac) + 0x7864,5);
      iVar9 = logputs(0,uVar15);
      return iVar9;
    }
    uVar15 = (**(code **)(puVar5 + 0x62534))(0,*(int *)(puVar5 + 0x61cac) + 0x7874);
    iVar9 = logputs(0,uVar15);
    return iVar9;
  }
  return iVar9;
}

