
/* WARNING: Enum "anon_enum_32": Some values do not have unique names */

url * url_parse(char *url,int *error,iri *iri,_Bool percent_encode)

{
  char cVar1;
  uint uVar2;
  _Bool _Var3;
  char cVar4;
  url_scheme scheme;
  char *pcVar5;
  char *pcVar6;
  char *pcVar7;
  char *pcVar8;
  url *url_00;
  ulong uVar9;
  char *pcVar10;
  int iVar11;
  byte bVar12;
  char *__s;
  long in_FS_OFFSET;
  char *local_b8;
  char *local_b0;
  char *local_a8;
  char *local_a0;
  char *local_90;
  char *local_88;
  char *local_80;
  uint local_74;
  char *local_70;
  char *local_68;
  char *local_60;
  char *local_58;
  char *local_50;
  char *new_url;
  long local_40;
  
  bVar12 = 0;
  local_40 = *(long *)(in_FS_OFFSET + 0x28);
  scheme = url_scheme(url);
  if (scheme == SCHEME_INVALID) {
    _Var3 = url_has_scheme(url);
    iVar11 = !_Var3 + 1;
  }
  else {
    if ((iri == (iri *)0x0) || (iri->utf8_encode == false)) {
LAB_001374b5:
      local_b8 = url;
      if (percent_encode) {
        local_b8 = reencode_escapes(url);
      }
    }
    else {
      new_url = (char *)0x0;
      pcVar8 = iri->orig_url;
      if (iri->orig_url == (char *)0x0) {
        pcVar8 = url;
      }
      _Var3 = remote_to_utf8(iri,pcVar8,&new_url);
      iri->utf8_encode = _Var3;
      if (!_Var3) goto LAB_001374b5;
      free(iri->orig_url);
      iri->orig_url = (char *)0x0;
      pcVar8 = xstrdup(url);
      iri->orig_url = pcVar8;
      local_b8 = reencode_escapes(new_url);
      if (new_url != local_b8) {
        free(new_url);
      }
    }
    uVar9 = 0xffffffffffffffff;
    pcVar8 = supported_schemes[scheme].leading_string;
    do {
      if (uVar9 == 0) break;
      uVar9 = uVar9 - 1;
      cVar4 = *pcVar8;
      pcVar8 = pcVar8 + (ulong)bVar12 * -2 + 1;
    } while (cVar4 != '\0');
    pcVar8 = local_b8 + (~uVar9 - 1);
    pcVar5 = strpbrk(pcVar8,"@/?#;");
    pcVar10 = pcVar8;
    if ((pcVar5 != (char *)0x0) && (pcVar10 = pcVar5 + 1, *pcVar5 != '@')) {
      pcVar10 = pcVar8;
    }
    pcVar5 = init_seps(scheme);
    if (*pcVar10 == '[') {
      local_a8 = pcVar10 + 1;
      local_a0 = strchr(local_a8,0x5d);
      if (local_a0 == (char *)0x0) {
        iVar11 = 6;
      }
      else {
        _Var3 = is_valid_ipv6_address(local_a8,local_a0);
        if (_Var3) {
          pcVar6 = local_a0 + 1;
          pcVar7 = strchr(pcVar5,(int)local_a0[1]);
          if (pcVar7 != (char *)0x0) goto LAB_00137554;
          iVar11 = 3;
        }
        else {
          iVar11 = 8;
        }
      }
    }
    else {
      pcVar6 = strpbrk(pcVar10,pcVar5);
      local_a8 = pcVar10;
      local_a0 = pcVar6;
      if (pcVar6 == (char *)0x0) {
        uVar9 = 0xffffffffffffffff;
        pcVar6 = pcVar10;
        do {
          if (uVar9 == 0) break;
          uVar9 = uVar9 - 1;
          cVar4 = *pcVar6;
          pcVar6 = pcVar6 + (ulong)bVar12 * -2 + 1;
        } while (cVar4 != '\0');
        pcVar6 = pcVar10 + (~uVar9 - 1);
        local_a0 = pcVar6;
      }
LAB_00137554:
      if (local_a8 == local_a0) {
        iVar11 = 3;
      }
      else {
        local_74 = supported_schemes[scheme].default_port;
        pcVar7 = pcVar6;
        if (*pcVar6 == ':') {
          __s = pcVar6 + 1;
          pcVar7 = strpbrk(__s,pcVar5 + 1);
          if (pcVar7 == (char *)0x0) {
            uVar9 = 0xffffffffffffffff;
            pcVar7 = __s;
            do {
              if (uVar9 == 0) break;
              uVar9 = uVar9 - 1;
              cVar4 = *pcVar7;
              pcVar7 = pcVar7 + (ulong)bVar12 * -2 + 1;
            } while (cVar4 != '\0');
            pcVar7 = pcVar6 + ~uVar9;
          }
          if (__s != pcVar7) {
            if (__s < pcVar7) {
              local_74 = (int)pcVar6[1] - 0x30;
              if (local_74 < 10) {
                do {
                  __s = __s + 1;
                  if (__s == pcVar7) goto LAB_00137584;
                  if (9 < (int)*__s - 0x30U) {
                    iVar11 = 4;
                    goto LAB_00137c65;
                  }
                  local_74 = *__s + -0x30 + local_74 * 10;
                } while ((int)local_74 < 0x10000);
                iVar11 = 4;
              }
              else {
                iVar11 = 4;
              }
              goto LAB_00137c65;
            }
            local_74 = 0;
          }
        }
LAB_00137584:
        local_80 = (char *)0x0;
        local_88 = (char *)0x0;
        pcVar6 = pcVar7;
        if (*pcVar7 == '/') {
          local_88 = pcVar7 + 1;
          pcVar6 = strpbrk(local_88,pcVar5 + 2);
          local_80 = pcVar6;
          if (pcVar6 == (char *)0x0) {
            uVar9 = 0xffffffffffffffff;
            pcVar6 = local_88;
            do {
              if (uVar9 == 0) break;
              uVar9 = uVar9 - 1;
              cVar4 = *pcVar6;
              pcVar6 = pcVar6 + (ulong)bVar12 * -2 + 1;
            } while (cVar4 != '\0');
            pcVar6 = pcVar7 + ~uVar9;
            local_80 = pcVar6;
          }
        }
        local_90 = pcVar5 + 3;
        uVar2 = supported_schemes[scheme].flags;
        if ((uVar2 & 2) == 0) {
          local_60 = (char *)0x0;
          local_70 = (char *)0x0;
        }
        else {
          local_60 = (char *)0x0;
          local_70 = (char *)0x0;
          pcVar7 = pcVar6;
          if (*pcVar6 == ';') {
            local_70 = pcVar6 + 1;
            pcVar7 = strpbrk(local_70,local_90);
            local_60 = pcVar7;
            if (pcVar7 == (char *)0x0) {
              uVar9 = 0xffffffffffffffff;
              pcVar7 = local_70;
              do {
                if (uVar9 == 0) break;
                uVar9 = uVar9 - 1;
                cVar4 = *pcVar7;
                pcVar7 = pcVar7 + (ulong)bVar12 * -2 + 1;
              } while (cVar4 != '\0');
              pcVar7 = pcVar6 + ~uVar9;
              local_60 = pcVar7;
            }
          }
          local_90 = pcVar5 + 4;
          pcVar6 = pcVar7;
        }
        if ((uVar2 & 4) == 0) {
          local_58 = (char *)0x0;
          local_b0 = (char *)0x0;
        }
        else {
          local_58 = (char *)0x0;
          local_b0 = (char *)0x0;
          pcVar5 = pcVar6;
          if (*pcVar6 == '?') {
            local_b0 = pcVar6 + 1;
            pcVar5 = strpbrk(local_b0,local_90);
            local_58 = pcVar5;
            if (pcVar5 == (char *)0x0) {
              uVar9 = 0xffffffffffffffff;
              pcVar5 = local_b0;
              do {
                if (uVar9 == 0) break;
                uVar9 = uVar9 - 1;
                cVar4 = *pcVar5;
                pcVar5 = pcVar5 + (ulong)bVar12 * -2 + 1;
              } while (cVar4 != '\0');
              pcVar5 = pcVar6 + ~uVar9;
              local_58 = pcVar5;
            }
          }
          local_90 = local_90 + 1;
          pcVar6 = pcVar5;
        }
        if ((uVar2 & 8) == 0) {
          local_50 = (char *)0x0;
          local_68 = (char *)0x0;
        }
        else {
          local_50 = (char *)0x0;
          local_68 = (char *)0x0;
          if (*pcVar6 == '#') {
            local_68 = pcVar6 + 1;
            local_50 = strpbrk(local_68,local_90);
            if (local_50 == (char *)0x0) {
              uVar9 = 0xffffffffffffffff;
              pcVar5 = local_68;
              do {
                if (uVar9 == 0) break;
                uVar9 = uVar9 - 1;
                cVar4 = *pcVar5;
                pcVar5 = pcVar5 + (ulong)bVar12 * -2 + 1;
              } while (cVar4 != '\0');
              local_50 = pcVar6 + ~uVar9;
            }
          }
        }
        if (pcVar8 == pcVar10) {
          pcVar5 = (char *)0x0;
          pcVar8 = (char *)0x0;
LAB_001379c6:
          url_00 = (url *)xcalloc(1,0x60);
          url_00->scheme = scheme;
          pcVar10 = strdupdelim(local_a8,local_a0);
          url_00->host = pcVar10;
          url_00->port = local_74;
          url_00->user = pcVar8;
          url_00->passwd = pcVar5;
          pcVar8 = strdupdelim(local_88,local_80);
          url_00->path = pcVar8;
          uVar9 = 0xffffffffffffffff;
          pcVar10 = pcVar8;
          do {
            if (uVar9 == 0) break;
            uVar9 = uVar9 - 1;
            cVar4 = *pcVar10;
            pcVar10 = pcVar10 + (ulong)bVar12 * -2 + 1;
          } while (cVar4 != '\0');
          pcVar10 = pcVar8 + (~uVar9 - 1);
          pcVar5 = pcVar8;
          if (pcVar8 < pcVar10) {
            pcVar7 = pcVar8;
            pcVar6 = pcVar8;
            do {
              cVar4 = *pcVar8;
              if (cVar4 == '.') {
                cVar1 = pcVar8[1];
                if ((cVar1 == '/') || (cVar1 == '\0')) {
                  pcVar8 = pcVar8 + 2;
                }
                else {
                  if ((cVar1 != '.') || ((pcVar8[2] != '/' && (pcVar8[2] != '\0'))))
                  goto LAB_00137e1d;
                  if (pcVar6 < pcVar7) {
                    pcVar5 = pcVar7 + -1;
                    if (pcVar6 < pcVar5) {
                      cVar4 = pcVar7[-2];
                      pcVar7 = pcVar5;
                      while ((pcVar5 = pcVar7, cVar4 != '/' &&
                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {
                        cVar4 = pcVar7[-2];
                        pcVar7 = pcVar5;
                      }
                    }
                  }
                  else {
                    pcVar5 = pcVar7;
                    if (scheme - SCHEME_FTP < 2) {
                      pcVar6 = pcVar7 + 3;
                      goto LAB_00137e1d;
                    }
                  }
                  pcVar8 = pcVar8 + 3;
                  pcVar7 = pcVar5;
                }
              }
              else {
LAB_00137e1d:
                if (pcVar7 == pcVar8) {
                  pcVar5 = pcVar7;
                  if (pcVar10 <= pcVar7) break;
                  cVar4 = *pcVar7;
                  while (cVar4 != '/') {
                    pcVar5 = pcVar5 + 1;
                    pcVar7 = pcVar10;
                    if (pcVar10 == pcVar5) goto LAB_00137d7b;
                    cVar4 = *pcVar5;
                  }
                  pcVar8 = pcVar5 + 1;
                  pcVar7 = pcVar5 + 1;
                }
                else {
                  pcVar5 = pcVar8;
                  if (pcVar10 <= pcVar8) break;
                  while (cVar4 != '/') {
                    pcVar8 = pcVar8 + 1;
                    pcVar5 = pcVar7 + 1;
                    *pcVar7 = cVar4;
                    pcVar7 = pcVar5;
                    pcVar5 = pcVar10;
                    if (pcVar10 == pcVar8) goto LAB_00137d7b;
                    cVar4 = *pcVar8;
                  }
                  *pcVar7 = *pcVar8;
                  pcVar8 = pcVar8 + 1;
                  pcVar7 = pcVar7 + 1;
                }
              }
              pcVar5 = pcVar8;
            } while (pcVar8 < pcVar10);
LAB_00137d7b:
            pcVar8 = pcVar7;
            if (pcVar5 != pcVar7) {
              *pcVar7 = '\0';
            }
          }
          pcVar10 = url_00->path;
          pcVar6 = strrchr(pcVar10,0x2f);
          if (pcVar6 == (char *)0x0) {
            pcVar6 = xstrdup("");
            url_00->dir = pcVar6;
            pcVar10 = xstrdup(pcVar10);
            url_00->file = pcVar10;
          }
          else {
            pcVar10 = strdupdelim(pcVar10,pcVar6);
            url_00->dir = pcVar10;
            pcVar10 = xstrdup(pcVar6 + 1);
            url_00->file = pcVar10;
          }
          url_unescape(url_00->dir);
          url_unescape(url_00->file);
          pcVar10 = url_00->host;
          cVar4 = *pcVar10;
          if (cVar4 == '\0') {
            bVar12 = 0;
          }
          else {
            bVar12 = 0;
            do {
              if ((int)cVar4 - 0x41U < 0x1a) {
                *pcVar10 = cVar4 + ' ';
                bVar12 = 1;
              }
              pcVar10 = pcVar10 + 1;
              cVar4 = *pcVar10;
            } while (cVar4 != '\0');
          }
          pcVar10 = url_00->host;
          pcVar6 = strchr(pcVar10,0x25);
          if (pcVar6 != (char *)0x0) {
            url_unescape(pcVar10);
            pcVar10 = url_00->host;
            cVar4 = *pcVar10;
            pcVar6 = pcVar10;
            while (cVar4 != '\0') {
              if ((-1 < cVar4) && ((cVar4 < ' ' || (cVar4 == '\x7f')))) {
                url_free(url_00);
                iVar11 = 3;
                goto LAB_00137c65;
              }
              pcVar6 = pcVar6 + 1;
              cVar4 = *pcVar6;
            }
            bVar12 = iri != (iri *)0x0 & opt.enable_iri;
            if (bVar12 == 0) {
              bVar12 = 1;
            }
            else {
              pcVar10 = idn_encode(iri,pcVar10);
              if (pcVar10 != (char *)0x0) {
                free(url_00->host);
                url_00->host = pcVar10;
              }
            }
          }
          if (local_70 != (char *)0x0) {
            pcVar10 = strdupdelim(local_70,local_60);
            url_00->params = pcVar10;
          }
          if (local_b0 != (char *)0x0) {
            pcVar10 = strdupdelim(local_b0,local_58);
            url_00->query = pcVar10;
          }
          if (local_68 != (char *)0x0) {
            pcVar10 = strdupdelim(local_68,local_50);
            url_00->fragment = pcVar10;
          }
          error = (int *)url_00;
          if ((((opt.enable_iri == false) && (pcVar5 == pcVar8)) &&
              (url_00->fragment == (char *)0x0)) && ((local_88 != local_80 && (bVar12 == 0)))) {
            if (local_b8 == url) {
              pcVar8 = xstrdup(url);
              url_00->url = pcVar8;
            }
            else {
              url_00->url = local_b8;
            }
          }
          else {
            pcVar8 = url_string(url_00,URL_AUTH_SHOW);
            url_00->url = pcVar8;
            if (local_b8 != url) {
              free(local_b8);
            }
          }
          goto LAB_00137c95;
        }
        pcVar10 = pcVar10 + -1;
        if (pcVar10 == pcVar8) {
          iVar11 = 5;
        }
        else {
          pcVar6 = (char *)memchr(pcVar8,0x3a,(long)pcVar10 - (long)pcVar8);
          if (pcVar8 != pcVar6) {
            pcVar5 = pcVar6;
            if (pcVar6 != (char *)0x0) {
              pcVar5 = strdupdelim(pcVar6 + 1,pcVar10);
              url_unescape(pcVar5);
              pcVar10 = pcVar6;
            }
            pcVar8 = strdupdelim(pcVar8,pcVar10);
            url_unescape(pcVar8);
            goto LAB_001379c6;
          }
          iVar11 = 5;
        }
      }
    }
LAB_00137c65:
    if ((local_b8 != (char *)0x0) && (local_b8 != url)) {
      free(local_b8);
    }
  }
  if (error != (int *)0x0) {
    *error = iVar11;
    error = (int *)0x0;
  }
LAB_00137c95:
  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {
    return (url *)error;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail();
}



int * FUN_00137430(void *param_1,int *param_2,long param_3,char param_4)

{
  char cVar1;
  uint uVar2;
  char cVar3;
  uint uVar4;
  char *pcVar5;
  char *pcVar6;
  char *pcVar7;
  undefined8 uVar8;
  int *piVar9;
  undefined8 uVar10;
  char *pcVar11;
  long lVar12;
  ulong uVar13;
  char *pcVar14;
  int iVar15;
  void *pvVar16;
  byte bVar17;
  char *__s;
  long in_FS_OFFSET;
  void *local_b8;
  char *local_b0;
  char *local_a8;
  char *local_a0;
  char *local_90;
  char *local_88;
  char *local_80;
  uint local_74;
  char *local_70;
  char *local_68;
  char *local_60;
  char *local_58;
  char *local_50;
  void *local_48;
  long local_40;
  
  bVar17 = 0;
  local_40 = *(long *)(in_FS_OFFSET + 0x28);
  uVar4 = FUN_00135f73();
  if (uVar4 == 4) {
    cVar3 = FUN_00136004(param_1);
    iVar15 = (cVar3 == '\0') + 1;
  }
  else {
    if ((param_3 == 0) || (*(char *)(param_3 + 0x18) == '\0')) {
LAB_001374b5:
      local_b8 = param_1;
      if (param_4 != '\0') {
        local_b8 = (void *)FUN_00135ae4(param_1);
      }
    }
    else {
      local_48 = (void *)0x0;
      pvVar16 = *(void **)(param_3 + 0x10);
      if (*(void **)(param_3 + 0x10) == (void *)0x0) {
        pvVar16 = param_1;
      }
      cVar3 = FUN_0013e9b4(param_3,pvVar16,&local_48);
      *(char *)(param_3 + 0x18) = cVar3;
      if (cVar3 == '\0') goto LAB_001374b5;
      free(*(void **)(param_3 + 0x10));
      *(undefined8 *)(param_3 + 0x10) = 0;
      uVar8 = FUN_001496d9(param_1);
      *(undefined8 *)(param_3 + 0x10) = uVar8;
      local_b8 = (void *)FUN_00135ae4(local_48);
      if (local_48 != local_b8) {
        free(local_48);
      }
    }
    uVar13 = 0xffffffffffffffff;
    pcVar11 = (&PTR_s_http____0016e348)[(ulong)uVar4 * 3];
    do {
      if (uVar13 == 0) break;
      uVar13 = uVar13 - 1;
      cVar3 = *pcVar11;
      pcVar11 = pcVar11 + (ulong)bVar17 * -2 + 1;
    } while (cVar3 != '\0');
    pcVar11 = (char *)((long)local_b8 + (~uVar13 - 1));
    pcVar5 = strpbrk(pcVar11,"@/?#;");
    pcVar14 = pcVar11;
    if ((pcVar5 != (char *)0x0) && (pcVar14 = pcVar5 + 1, *pcVar5 != '@')) {
      pcVar14 = pcVar11;
    }
    pcVar5 = (char *)FUN_00135653(uVar4);
    if (*pcVar14 == '[') {
      local_a8 = pcVar14 + 1;
      local_a0 = strchr(local_a8,0x5d);
      if (local_a0 == (char *)0x0) {
        iVar15 = 6;
      }
      else {
        cVar3 = FUN_0011c7c7(local_a8,local_a0);
        if (cVar3 == '\0') {
          iVar15 = 8;
        }
        else {
          pcVar6 = local_a0 + 1;
          pcVar7 = strchr(pcVar5,(int)local_a0[1]);
          if (pcVar7 != (char *)0x0) goto LAB_00137554;
          iVar15 = 3;
        }
      }
    }
    else {
      pcVar6 = strpbrk(pcVar14,pcVar5);
      local_a8 = pcVar14;
      local_a0 = pcVar6;
      if (pcVar6 == (char *)0x0) {
        uVar13 = 0xffffffffffffffff;
        pcVar6 = pcVar14;
        do {
          if (uVar13 == 0) break;
          uVar13 = uVar13 - 1;
          cVar3 = *pcVar6;
          pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;
        } while (cVar3 != '\0');
        pcVar6 = pcVar14 + (~uVar13 - 1);
        local_a0 = pcVar6;
      }
LAB_00137554:
      if (local_a8 == local_a0) {
        iVar15 = 3;
      }
      else {
        local_74 = *(uint *)(&DAT_0016e350 + (ulong)uVar4 * 0x18);
        pcVar7 = pcVar6;
        if (*pcVar6 == ':') {
          __s = pcVar6 + 1;
          pcVar7 = strpbrk(__s,pcVar5 + 1);
          if (pcVar7 == (char *)0x0) {
            uVar13 = 0xffffffffffffffff;
            pcVar7 = __s;
            do {
              if (uVar13 == 0) break;
              uVar13 = uVar13 - 1;
              cVar3 = *pcVar7;
              pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;
            } while (cVar3 != '\0');
            pcVar7 = pcVar6 + ~uVar13;
          }
          if (__s != pcVar7) {
            if (__s < pcVar7) {
              local_74 = (int)pcVar6[1] - 0x30;
              if (local_74 < 10) {
                do {
                  __s = __s + 1;
                  if (__s == pcVar7) goto LAB_00137584;
                  if (9 < (int)*__s - 0x30U) {
                    iVar15 = 4;
                    goto LAB_00137c65;
                  }
                  local_74 = *__s + -0x30 + local_74 * 10;
                } while ((int)local_74 < 0x10000);
                iVar15 = 4;
              }
              else {
                iVar15 = 4;
              }
              goto LAB_00137c65;
            }
            local_74 = 0;
          }
        }
LAB_00137584:
        local_80 = (char *)0x0;
        local_88 = (char *)0x0;
        pcVar6 = pcVar7;
        if (*pcVar7 == '/') {
          local_88 = pcVar7 + 1;
          pcVar6 = strpbrk(local_88,pcVar5 + 2);
          local_80 = pcVar6;
          if (pcVar6 == (char *)0x0) {
            uVar13 = 0xffffffffffffffff;
            pcVar6 = local_88;
            do {
              if (uVar13 == 0) break;
              uVar13 = uVar13 - 1;
              cVar3 = *pcVar6;
              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;
            } while (cVar3 != '\0');
            pcVar6 = pcVar7 + ~uVar13;
            local_80 = pcVar6;
          }
        }
        local_90 = pcVar5 + 3;
        uVar2 = (&DAT_0016e354)[(ulong)uVar4 * 6];
        if ((uVar2 & 2) == 0) {
          local_60 = (char *)0x0;
          local_70 = (char *)0x0;
        }
        else {
          local_60 = (char *)0x0;
          local_70 = (char *)0x0;
          pcVar7 = pcVar6;
          if (*pcVar6 == ';') {
            local_70 = pcVar6 + 1;
            pcVar7 = strpbrk(local_70,local_90);
            local_60 = pcVar7;
            if (pcVar7 == (char *)0x0) {
              uVar13 = 0xffffffffffffffff;
              pcVar7 = local_70;
              do {
                if (uVar13 == 0) break;
                uVar13 = uVar13 - 1;
                cVar3 = *pcVar7;
                pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;
              } while (cVar3 != '\0');
              pcVar7 = pcVar6 + ~uVar13;
              local_60 = pcVar7;
            }
          }
          local_90 = pcVar5 + 4;
          pcVar6 = pcVar7;
        }
        if ((uVar2 & 4) == 0) {
          local_58 = (char *)0x0;
          local_b0 = (char *)0x0;
        }
        else {
          local_58 = (char *)0x0;
          local_b0 = (char *)0x0;
          pcVar5 = pcVar6;
          if (*pcVar6 == '?') {
            local_b0 = pcVar6 + 1;
            pcVar5 = strpbrk(local_b0,local_90);
            local_58 = pcVar5;
            if (pcVar5 == (char *)0x0) {
              uVar13 = 0xffffffffffffffff;
              pcVar5 = local_b0;
              do {
                if (uVar13 == 0) break;
                uVar13 = uVar13 - 1;
                cVar3 = *pcVar5;
                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;
              } while (cVar3 != '\0');
              pcVar5 = pcVar6 + ~uVar13;
              local_58 = pcVar5;
            }
          }
          local_90 = local_90 + 1;
          pcVar6 = pcVar5;
        }
        if ((uVar2 & 8) == 0) {
          local_50 = (char *)0x0;
          local_68 = (char *)0x0;
        }
        else {
          local_50 = (char *)0x0;
          local_68 = (char *)0x0;
          if (*pcVar6 == '#') {
            local_68 = pcVar6 + 1;
            local_50 = strpbrk(local_68,local_90);
            if (local_50 == (char *)0x0) {
              uVar13 = 0xffffffffffffffff;
              pcVar5 = local_68;
              do {
                if (uVar13 == 0) break;
                uVar13 = uVar13 - 1;
                cVar3 = *pcVar5;
                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;
              } while (cVar3 != '\0');
              local_50 = pcVar6 + ~uVar13;
            }
          }
        }
        if (pcVar11 == pcVar14) {
          pcVar5 = (char *)0x0;
          uVar8 = 0;
LAB_001379c6:
          piVar9 = (int *)FUN_0014967c(1,0x60);
          piVar9[2] = uVar4;
          uVar10 = FUN_0013a40c(local_a8,local_a0);
          *(undefined8 *)(piVar9 + 4) = uVar10;
          piVar9[6] = local_74;
          *(undefined8 *)(piVar9 + 0x14) = uVar8;
          *(char **)(piVar9 + 0x16) = pcVar5;
          pcVar11 = (char *)FUN_0013a40c(local_88,local_80);
          *(char **)(piVar9 + 8) = pcVar11;
          uVar13 = 0xffffffffffffffff;
          pcVar14 = pcVar11;
          do {
            if (uVar13 == 0) break;
            uVar13 = uVar13 - 1;
            cVar3 = *pcVar14;
            pcVar14 = pcVar14 + (ulong)bVar17 * -2 + 1;
          } while (cVar3 != '\0');
          pcVar14 = pcVar11 + (~uVar13 - 1);
          pcVar5 = pcVar11;
          if (pcVar11 < pcVar14) {
            pcVar7 = pcVar11;
            pcVar6 = pcVar11;
            do {
              cVar3 = *pcVar11;
              if (cVar3 == '.') {
                cVar1 = pcVar11[1];
                if ((cVar1 == '/') || (cVar1 == '\0')) {
                  pcVar11 = pcVar11 + 2;
                }
                else {
                  if ((cVar1 != '.') || ((pcVar11[2] != '/' && (pcVar11[2] != '\0'))))
                  goto LAB_00137e1d;
                  if (pcVar6 < pcVar7) {
                    pcVar5 = pcVar7 + -1;
                    if (pcVar6 < pcVar5) {
                      cVar3 = pcVar7[-2];
                      pcVar7 = pcVar5;
                      while ((pcVar5 = pcVar7, cVar3 != '/' &&
                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {
                        cVar3 = pcVar7[-2];
                        pcVar7 = pcVar5;
                      }
                    }
                  }
                  else {
                    pcVar5 = pcVar7;
                    if (uVar4 - 2 < 2) {
                      pcVar6 = pcVar7 + 3;
                      goto LAB_00137e1d;
                    }
                  }
                  pcVar11 = pcVar11 + 3;
                  pcVar7 = pcVar5;
                }
              }
              else {
LAB_00137e1d:
                if (pcVar7 == pcVar11) {
                  pcVar5 = pcVar7;
                  if (pcVar14 <= pcVar7) break;
                  cVar3 = *pcVar7;
                  while (cVar3 != '/') {
                    pcVar5 = pcVar5 + 1;
                    pcVar7 = pcVar14;
                    if (pcVar14 == pcVar5) goto LAB_00137d7b;
                    cVar3 = *pcVar5;
                  }
                  pcVar11 = pcVar5 + 1;
                  pcVar7 = pcVar5 + 1;
                }
                else {
                  pcVar5 = pcVar11;
                  if (pcVar14 <= pcVar11) break;
                  while (cVar3 != '/') {
                    pcVar11 = pcVar11 + 1;
                    pcVar5 = pcVar7 + 1;
                    *pcVar7 = cVar3;
                    pcVar7 = pcVar5;
                    pcVar5 = pcVar14;
                    if (pcVar14 == pcVar11) goto LAB_00137d7b;
                    cVar3 = *pcVar11;
                  }
                  *pcVar7 = *pcVar11;
                  pcVar11 = pcVar11 + 1;
                  pcVar7 = pcVar7 + 1;
                }
              }
              pcVar5 = pcVar11;
            } while (pcVar11 < pcVar14);
LAB_00137d7b:
            pcVar11 = pcVar7;
            if (pcVar5 != pcVar7) {
              *pcVar7 = '\0';
            }
          }
          pcVar14 = *(char **)(piVar9 + 8);
          pcVar6 = strrchr(pcVar14,0x2f);
          if (pcVar6 == (char *)0x0) {
            uVar8 = FUN_001496d9(&DAT_0015ea35);
            *(undefined8 *)(piVar9 + 0x10) = uVar8;
            uVar8 = FUN_001496d9(pcVar14);
            *(undefined8 *)(piVar9 + 0x12) = uVar8;
          }
          else {
            uVar8 = FUN_0013a40c(pcVar14,pcVar6);
            *(undefined8 *)(piVar9 + 0x10) = uVar8;
            uVar8 = FUN_001496d9(pcVar6 + 1);
            *(undefined8 *)(piVar9 + 0x12) = uVar8;
          }
          FUN_00135c58(*(undefined8 *)(piVar9 + 0x10));
          FUN_00135c58(*(undefined8 *)(piVar9 + 0x12));
          pcVar14 = *(char **)(piVar9 + 4);
          cVar3 = *pcVar14;
          if (cVar3 == '\0') {
            bVar17 = 0;
          }
          else {
            bVar17 = 0;
            do {
              if ((int)cVar3 - 0x41U < 0x1a) {
                *pcVar14 = cVar3 + ' ';
                bVar17 = 1;
              }
              pcVar14 = pcVar14 + 1;
              cVar3 = *pcVar14;
            } while (cVar3 != '\0');
          }
          pcVar14 = *(char **)(piVar9 + 4);
          pcVar6 = strchr(pcVar14,0x25);
          if (pcVar6 != (char *)0x0) {
            FUN_00135c58(pcVar14);
            pcVar14 = *(char **)(piVar9 + 4);
            cVar3 = *pcVar14;
            while (cVar3 != '\0') {
              if ((-1 < cVar3) && ((cVar3 < ' ' || (cVar3 == '\x7f')))) {
                FUN_0013629a(piVar9);
                iVar15 = 3;
                goto LAB_00137c65;
              }
              pcVar14 = pcVar14 + 1;
              cVar3 = *pcVar14;
            }
            bVar17 = param_3 != 0 & DAT_00177606;
            if (bVar17 == 0) {
              bVar17 = 1;
            }
            else {
              lVar12 = FUN_0013eaa4(param_3);
              if (lVar12 != 0) {
                free(*(void **)(piVar9 + 4));
                *(long *)(piVar9 + 4) = lVar12;
              }
            }
          }
          if (local_70 != (char *)0x0) {
            uVar8 = FUN_0013a40c(local_70,local_60);
            *(undefined8 *)(piVar9 + 10) = uVar8;
          }
          if (local_b0 != (char *)0x0) {
            uVar8 = FUN_0013a40c(local_b0,local_58);
            *(undefined8 *)(piVar9 + 0xc) = uVar8;
          }
          if (local_68 != (char *)0x0) {
            uVar8 = FUN_0013a40c(local_68,local_50);
            *(undefined8 *)(piVar9 + 0xe) = uVar8;
          }
          param_2 = piVar9;
          if ((((DAT_00177606 == 0) && (pcVar5 == pcVar11)) && (*(long *)(piVar9 + 0xe) == 0)) &&
             ((local_88 != local_80 && (bVar17 == 0)))) {
            if (local_b8 == param_1) {
              uVar8 = FUN_001496d9(param_1);
              *(undefined8 *)piVar9 = uVar8;
            }
            else {
              *(void **)piVar9 = local_b8;
            }
          }
          else {
            uVar8 = FUN_00137051(piVar9,0);
            *(undefined8 *)piVar9 = uVar8;
            if (local_b8 != param_1) {
              free(local_b8);
            }
          }
          goto LAB_00137c95;
        }
        pcVar14 = pcVar14 + -1;
        if (pcVar14 == pcVar11) {
          iVar15 = 5;
        }
        else {
          pcVar6 = (char *)memchr(pcVar11,0x3a,(long)pcVar14 - (long)pcVar11);
          if (pcVar11 != pcVar6) {
            pcVar5 = pcVar6;
            if (pcVar6 != (char *)0x0) {
              pcVar5 = (char *)FUN_0013a40c(pcVar6 + 1,pcVar14);
              FUN_00135c58(pcVar5);
              pcVar14 = pcVar6;
            }
            uVar8 = FUN_0013a40c(pcVar11,pcVar14);
            FUN_00135c58(uVar8);
            goto LAB_001379c6;
          }
          iVar15 = 5;
        }
      }
    }
LAB_00137c65:
    if ((local_b8 != (void *)0x0) && (local_b8 != param_1)) {
      free(local_b8);
    }
  }
  if (param_2 != (int *)0x0) {
    *param_2 = iVar15;
    param_2 = (int *)0x0;
  }
LAB_00137c95:
  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {
    return param_2;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail();
}


PUSH R15
PUSH R14
PUSH R13
PUSH R12
PUSH RBP
PUSH RBX
SUB RSP,0x98
MOV qword ptr [RSP + 0x8],RDI
MOV qword ptr [RSP + 0x30],RSI
MOV R15,RDX
MOV EBX,ECX
MOV RAX,qword ptr FS:[0x28]
MOV qword ptr [RSP + 0x88],RAX
XOR EAX,EAX
CALL 0x00135f73
CMP EAX,0x4
JZ 0x001375fa
MOV R13D,EAX
TEST R15,R15
JZ 0x001374b5
CMP byte ptr [R15 + 0x18],0x0
JZ 0x001374b5
MOV qword ptr [RSP + 0x80],0x0
MOV RSI,qword ptr [R15 + 0x10]
TEST RSI,RSI
CMOVZ RSI,qword ptr [RSP + 0x8]
LEA RDX,[RSP + 0x80]
MOV RDI,R15
CALL 0x0013e9b4
MOV byte ptr [R15 + 0x18],AL
TEST AL,AL
JNZ 0x00137616
MOV RAX,qword ptr [RSP + 0x8]
MOV qword ptr [RSP + 0x10],RAX
TEST BL,BL
JNZ 0x00137662
MOV EAX,R13D
LEA RDX,[RAX + RAX*0x2]
LEA RAX,[0x16e340]
MOV RDI,qword ptr [RAX + RDX*0x8 + 0x8]
MOV RCX,-0x1
MOV EAX,0x0
SCASB.REPNE RDI
MOV RSI,RCX
NOT RSI
MOV RAX,qword ptr [RSP + 0x10]
LEA R12,[RAX + RSI*0x1 + -0x1]
LEA RSI,[0x15e066]
MOV RDI,R12
CALL 0x0010c300
TEST RAX,RAX
JZ 0x00137674
LEA RBX,[RAX + 0x1]
CMP byte ptr [RAX],0x40
CMOVNZ RBX,R12
MOV EDI,R13D
CALL 0x00135653
MOV qword ptr [RSP + 0x18],RAX
CMP byte ptr [RBX],0x5b
JZ 0x0013767c
MOV RSI,qword ptr [RSP + 0x18]
MOV RDI,RBX
CALL 0x0010c300
MOV RBP,RAX
MOV qword ptr [RSP + 0x28],RAX
MOV qword ptr [RSP + 0x20],RBX
TEST RAX,RAX
JZ 0x001376dc
MOV RSI,qword ptr [RSP + 0x28]
CMP qword ptr [RSP + 0x20],RSI
JZ 0x00137d3d
MOV EAX,R13D
LEA RDX,[RAX + RAX*0x2]
LEA RAX,[0x16e340]
MOV EAX,dword ptr [RAX + RDX*0x8 + 0x10]
MOV dword ptr [RSP + 0x54],EAX
CMP byte ptr [RBP],0x3a
JZ 0x001376ff
MOV qword ptr [RSP + 0x48],0x0
MOV qword ptr [RSP + 0x40],0x0
CMP byte ptr [RBP],0x2f
JZ 0x001377aa
MOV RAX,qword ptr [RSP + 0x18]
ADD RAX,0x3
MOV qword ptr [RSP + 0x38],RAX
MOV EAX,R13D
LEA RDX,[RAX + RAX*0x2]
LEA RAX,[0x16e340]
MOV R14D,dword ptr [RAX + RDX*0x8 + 0x14]
TEST R14B,0x2
JZ 0x0013784d
MOV qword ptr [RSP + 0x68],0x0
MOV qword ptr [RSP + 0x58],0x0
CMP byte ptr [RBP],0x3b
JZ 0x001377fc
MOV RAX,qword ptr [RSP + 0x18]
ADD RAX,0x4
MOV qword ptr [RSP + 0x38],RAX
JMP 0x0013785f
MOV RDI,qword ptr [RSP + 0x8]
CALL 0x00136004
TEST AL,AL
SETZ BPL
MOVZX EBP,BPL
ADD EBP,0x1
JMP 0x00137c81
MOV RDI,qword ptr [R15 + 0x10]
CALL 0x0010c550
MOV qword ptr [R15 + 0x10],0x0
MOV RDI,qword ptr [RSP + 0x8]
CALL 0x001496d9
MOV qword ptr [R15 + 0x10],RAX
MOV RDI,qword ptr [RSP + 0x80]
CALL 0x00135ae4
MOV qword ptr [RSP + 0x10],RAX
MOV RDI,qword ptr [RSP + 0x80]
CMP RDI,RAX
JZ 0x001374c7
CALL 0x0010c550
JMP 0x001374c7
MOV RDI,RAX
CALL 0x00135ae4
MOV qword ptr [RSP + 0x10],RAX
JMP 0x001374c7
MOV RBX,R12
JMP 0x0013751b
LEA RBP,[RBX + 0x1]
MOV qword ptr [RSP + 0x20],RBP
MOV ESI,0x5d
MOV RDI,RBP
CALL 0x0010c920
MOV R14,RAX
MOV qword ptr [RSP + 0x28],RAX
TEST RAX,RAX
JZ 0x00137d29
MOV RSI,RAX
MOV RDI,RBP
CALL 0x0011c7c7
TEST AL,AL
JZ 0x00137d33
LEA RBP,[R14 + 0x1]
MOVSX ESI,byte ptr [R14 + 0x1]
MOV RDI,qword ptr [RSP + 0x18]
CALL 0x0010c920
TEST RAX,RAX
JNZ 0x00137554
MOV EBP,0x3
JMP 0x00137c65
MOV RCX,-0x1
MOV EAX,0x0
MOV RDI,RBX
SCASB.REPNE RDI
NOT RCX
LEA RBP,[RBX + RCX*0x1 + -0x1]
MOV qword ptr [RSP + 0x28],RBP
JMP 0x00137554
LEA R14,[RBP + 0x1]
MOV RAX,qword ptr [RSP + 0x18]
LEA RSI,[RAX + 0x1]
MOV RDI,R14
CALL 0x0010c300
TEST RAX,RAX
JZ 0x0013776d
CMP R14,RAX
JZ 0x00137792
JNC 0x0013779a
MOVZX ECX,byte ptr [RBP + 0x1]
MOVSX EDX,CL
SUB EDX,0x30
CMP EDX,0x9
JA 0x00137d47
MOV ESI,EDX
ADD R14,0x1
CMP R14,RAX
JZ 0x00137786
MOVZX ECX,byte ptr [R14]
MOVSX EDX,CL
SUB EDX,0x30
CMP EDX,0x9
JA 0x00137d51
LEA EDX,[RSI + RSI*0x4]
MOVSX ECX,CL
LEA ESI,[RCX + RDX*0x2 + -0x30]
CMP ESI,0xffff
JLE 0x00137735
MOV EBP,0x4
JMP 0x00137c65
MOV RCX,-0x1
MOV RDI,R14
SCASB.REPNE RDI
MOV RSI,RCX
NOT RSI
LEA RAX,[R14 + RSI*0x1 + -0x1]
JMP 0x00137719
MOV dword ptr [RSP + 0x54],ESI
MOV RBP,RAX
JMP 0x00137584
MOV RBP,RAX
JMP 0x00137584
MOV RBP,RAX
MOV dword ptr [RSP + 0x54],0x0
JMP 0x00137584
LEA RDI,[RBP + 0x1]
MOV qword ptr [RSP + 0x40],RDI
MOV RAX,qword ptr [RSP + 0x18]
LEA RSI,[RAX + 0x2]
CALL 0x0010c300
MOV RBP,RAX
MOV qword ptr [RSP + 0x48],RAX
TEST RAX,RAX
JNZ 0x001375a0
MOV RCX,-0x1
MOV EAX,0x0
MOV RDI,qword ptr [RSP + 0x40]
SCASB.REPNE RDI
NOT RCX
MOV RDI,qword ptr [RSP + 0x40]
LEA RBP,[RDI + RCX*0x1 + -0x1]
MOV qword ptr [RSP + 0x48],RBP
JMP 0x001375a0
LEA RAX,[RBP + 0x1]
MOV qword ptr [RSP + 0x58],RAX
MOV RSI,qword ptr [RSP + 0x38]
MOV RDI,RAX
CALL 0x0010c300
MOV RBP,RAX
MOV qword ptr [RSP + 0x68],RAX
TEST RAX,RAX
JNZ 0x001375e7
MOV RCX,-0x1
MOV EAX,0x0
MOV RDI,qword ptr [RSP + 0x58]
SCASB.REPNE RDI
NOT RCX
MOV RDI,qword ptr [RSP + 0x58]
LEA RBP,[RDI + RCX*0x1 + -0x1]
MOV qword ptr [RSP + 0x68],RBP
JMP 0x001375e7
MOV qword ptr [RSP + 0x68],0x0
MOV qword ptr [RSP + 0x58],0x0
TEST R14B,0x4
JZ 0x001378d2
MOV qword ptr [RSP + 0x70],0x0
MOV qword ptr [RSP + 0x18],0x0
CMP byte ptr [RBP],0x3f
JZ 0x00137885
ADD qword ptr [RSP + 0x38],0x1
JMP 0x001378e4
LEA RAX,[RBP + 0x1]
MOV qword ptr [RSP + 0x18],RAX
MOV RSI,qword ptr [RSP + 0x38]
MOV RDI,RAX
CALL 0x0010c300
MOV RBP,RAX
MOV qword ptr [RSP + 0x70],RAX
TEST RAX,RAX
JNZ 0x0013787d
MOV RCX,-0x1
MOV EAX,0x0
MOV RDI,qword ptr [RSP + 0x18]
SCASB.REPNE RDI
MOV RSI,RCX
NOT RSI
MOV RDI,qword ptr [RSP + 0x18]
LEA RBP,[RDI + RSI*0x1 + -0x1]
MOV qword ptr [RSP + 0x70],RBP
JMP 0x0013787d
MOV qword ptr [RSP + 0x70],0x0
MOV qword ptr [RSP + 0x18],0x0
TEST R14B,0x8
JZ 0x00137947
MOV qword ptr [RSP + 0x78],0x0
MOV qword ptr [RSP + 0x60],0x0
CMP byte ptr [RBP],0x23
JNZ 0x00137959
LEA RAX,[RBP + 0x1]
MOV qword ptr [RSP + 0x60],RAX
MOV RSI,qword ptr [RSP + 0x38]
MOV RDI,RAX
CALL 0x0010c300
MOV qword ptr [RSP + 0x78],RAX
TEST RAX,RAX
JNZ 0x00137959
MOV RCX,-0x1
MOV RDI,qword ptr [RSP + 0x60]
SCASB.REPNE RDI
MOV RSI,RCX
NOT RSI
MOV RDI,qword ptr [RSP + 0x60]
LEA RAX,[RDI + RSI*0x1 + -0x1]
MOV qword ptr [RSP + 0x78],RAX
JMP 0x00137959
MOV qword ptr [RSP + 0x78],0x0
MOV qword ptr [RSP + 0x60],0x0
CMP R12,RBX
JZ 0x00137a45
SUB RBX,0x1
CMP RBX,R12
JZ 0x00137d5b
MOV RDX,RBX
SUB RDX,R12
MOV ESI,0x3a
MOV RDI,R12
CALL 0x0010c1d0
MOV RBP,RAX
MOV R14,RAX
CMP R12,RAX
JZ 0x00137d65
TEST RAX,RAX
JZ 0x001379b0
LEA RDI,[RAX + 0x1]
MOV RSI,RBX
CALL 0x0013a40c
MOV R14,RAX
MOV RDI,RAX
CALL 0x00135c58
MOV RBX,RBP
MOV RSI,RBX
MOV RDI,R12
CALL 0x0013a40c
MOV RBP,RAX
MOV RDI,RAX
CALL 0x00135c58
MOV ESI,0x60
MOV EDI,0x1
CALL 0x0014967c
MOV RBX,RAX
MOV dword ptr [RAX + 0x8],R13D
MOV RSI,qword ptr [RSP + 0x28]
MOV RDI,qword ptr [RSP + 0x20]
CALL 0x0013a40c
MOV qword ptr [RBX + 0x10],RAX
MOV EAX,dword ptr [RSP + 0x54]
MOV dword ptr [RBX + 0x18],EAX
MOV qword ptr [RBX + 0x50],RBP
MOV qword ptr [RBX + 0x58],R14
MOV RSI,qword ptr [RSP + 0x48]
MOV RDI,qword ptr [RSP + 0x40]
CALL 0x0013a40c
MOV RDX,RAX
MOV qword ptr [RBX + 0x20],RAX
MOV RCX,-0x1
MOV EAX,0x0
MOV RDI,RDX
SCASB.REPNE RDI
NOT RCX
LEA R12,[RDX + RCX*0x1 + -0x1]
CMP RDX,R12
JNC 0x00137b11
MOV RDI,RDX
MOV RBP,RDX
LEA ECX,[R13 + -0x2]
JMP 0x00137e12
MOV R14D,0x0
MOV EBP,0x0
JMP 0x001379c6
MOVZX ESI,byte ptr [RDX + 0x1]
CMP SIL,0x2f
JZ 0x00137a94
TEST SIL,SIL
JZ 0x00137a94
CMP SIL,0x2e
JNZ 0x00137e1d
MOVZX ESI,byte ptr [RDX + 0x2]
CMP SIL,0x2f
JZ 0x00137a81
TEST SIL,SIL
JNZ 0x00137e1d
CMP RBP,RDI
JA 0x00137a9d
CMP ECX,0x1
JBE 0x00137ac0
ADD RDX,0x3
JMP 0x00137e09
ADD RDX,0x2
JMP 0x00137e09
LEA RAX,[RBP + -0x1]
CMP RDI,RAX
JNC 0x00137ac9
CMP byte ptr [RBP + -0x2],0x2f
JZ 0x00137ace
MOV RBP,RAX
SUB RBP,0x1
CMP RDI,RBP
JZ 0x00137a8b
CMP byte ptr [RBP + -0x1],0x2f
JNZ 0x00137aaf
JMP 0x00137a8b
LEA RDI,[RBP + 0x3]
JMP 0x00137e1d
MOV RBP,RAX
JMP 0x00137a8b
MOV RBP,RAX
JMP 0x00137a8b
CMP RBP,R12
JNC 0x00137d6f
CMP byte ptr [RBP],0x2f
JZ 0x00137dee
ADD RBP,0x1
CMP R12,RBP
JZ 0x00137d72
CMP byte ptr [RBP],0x2f
JNZ 0x00137ae6
MOV RDX,RBP
ADD RBP,0x1
ADD RDX,0x1
JMP 0x00137e09
MOV R12,RDX
JMP 0x00137d7b
MOV RBP,RDX
MOV R12,RDX
JMP 0x00137d84
LEA RDI,[0x15ea35]
CALL 0x001496d9
MOV qword ptr [RBX + 0x40],RAX
MOV RDI,R14
CALL 0x001496d9
MOV qword ptr [RBX + 0x48],RAX
JMP 0x00137dbd
ADD RDX,0x1
MOVZX EAX,byte ptr [RDX]
TEST AL,AL
JZ 0x00137b63
MOVSX ECX,AL
SUB ECX,0x41
CMP ECX,0x19
JA 0x00137b3d
ADD EAX,0x20
MOV byte ptr [RDX],AL
MOV R13D,ESI
JMP 0x00137b3d
MOV R13D,0x0
MOV R14,qword ptr [RBX + 0x10]
MOV ESI,0x25
MOV RDI,R14
CALL 0x0010c920
TEST RAX,RAX
JZ 0x00137bc8
MOV RDI,R14
CALL 0x00135c58
MOV RSI,qword ptr [RBX + 0x10]
MOVZX EAX,byte ptr [RSI]
TEST AL,AL
JZ 0x00137bae
MOV RDX,RSI
TEST AL,AL
JS 0x00137ba3
CMP AL,0x1f
JLE 0x00137c58
CMP AL,0x7f
JZ 0x00137c58
ADD RDX,0x1
MOVZX EAX,byte ptr [RDX]
TEST AL,AL
JNZ 0x00137b8f
TEST R15,R15
SETNZ R13B
AND R13B,byte ptr [0x00177606]
JNZ 0x00137cc1
MOV R13D,0x1
MOV RAX,qword ptr [RSP + 0x58]
TEST RAX,RAX
JZ 0x00137be3
MOV RSI,qword ptr [RSP + 0x68]
MOV RDI,RAX
CALL 0x0013a40c
MOV qword ptr [RBX + 0x28],RAX
MOV RAX,qword ptr [RSP + 0x18]
TEST RAX,RAX
JZ 0x00137bfe
MOV RSI,qword ptr [RSP + 0x70]
MOV RDI,RAX
CALL 0x0013a40c
MOV qword ptr [RBX + 0x30],RAX
MOV RAX,qword ptr [RSP + 0x60]
TEST RAX,RAX
JZ 0x00137c19
MOV RSI,qword ptr [RSP + 0x78]
MOV RDI,RAX
CALL 0x0013a40c
MOV qword ptr [RBX + 0x38],RAX
CMP byte ptr [0x00177606],0x0
JNZ 0x00137c32
CMP R12,RBP
JNZ 0x00137c32
CMP qword ptr [RBX + 0x38],0x0
JZ 0x00137ce7
MOV ESI,0x0
MOV RDI,RBX
CALL 0x00137051
MOV qword ptr [RBX],RAX
MOV RDI,qword ptr [RSP + 0x10]
MOV RAX,qword ptr [RSP + 0x8]
CMP RDI,RAX
JZ 0x00137c95
CALL 0x0010c550
JMP 0x00137c95
MOV RDI,RBX
CALL 0x0013629a
MOV EBP,0x3
MOV RAX,qword ptr [RSP + 0x10]
TEST RAX,RAX
JZ 0x00137c81
MOV RSI,qword ptr [RSP + 0x8]
CMP RAX,RSI
JZ 0x00137c81
MOV RDI,RAX
CALL 0x0010c550
MOV RAX,qword ptr [RSP + 0x30]
MOV RBX,RAX
TEST RAX,RAX
JZ 0x00137c95
MOV dword ptr [RAX],EBP
MOV EBX,0x0
MOV RAX,RBX
MOV RSI,qword ptr [RSP + 0x88]
XOR RSI,qword ptr FS:[0x28]
JNZ 0x00137e4c
ADD RSP,0x98
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
MOV RDI,R15
CALL 0x0013eaa4
MOV R14,RAX
TEST RAX,RAX
JZ 0x00137bc8
MOV RDI,qword ptr [RBX + 0x10]
CALL 0x0010c550
MOV qword ptr [RBX + 0x10],R14
JMP 0x00137bc8
MOV RCX,qword ptr [RSP + 0x48]
CMP qword ptr [RSP + 0x40],RCX
JZ 0x00137c32
TEST R13B,R13B
JNZ 0x00137c32
MOV RCX,qword ptr [RSP + 0x8]
CMP qword ptr [RSP + 0x10],RCX
JZ 0x00137d19
MOV RAX,qword ptr [RSP + 0x10]
MOV qword ptr [RBX],RAX
JMP 0x00137c95
MOV RDI,RCX
CALL 0x001496d9
MOV qword ptr [RBX],RAX
JMP 0x00137c95
MOV EBP,0x6
JMP 0x00137c65
MOV EBP,0x8
JMP 0x00137c65
MOV EBP,0x3
JMP 0x00137c65
MOV EBP,0x4
JMP 0x00137c65
MOV EBP,0x4
JMP 0x00137c65
MOV EBP,0x5
JMP 0x00137c65
MOV EBP,0x5
JMP 0x00137c65
MOV R12,RBP
MOV RAX,R12
MOV R12,RBP
MOV RBP,RAX
CMP R12,RBP
JZ 0x00137d84
MOV byte ptr [RBP],0x0
MOV R14,qword ptr [RBX + 0x20]
MOV ESI,0x2f
MOV RDI,R14
CALL 0x0010c6a0
MOV R13,RAX
TEST RAX,RAX
JZ 0x00137b1c
MOV RSI,RAX
MOV RDI,R14
CALL 0x0013a40c
MOV qword ptr [RBX + 0x40],RAX
LEA RDI,[R13 + 0x1]
CALL 0x001496d9
MOV qword ptr [RBX + 0x48],RAX
MOV RDI,qword ptr [RBX + 0x40]
CALL 0x00135c58
MOV RDI,qword ptr [RBX + 0x48]
CALL 0x00135c58
MOV RDX,qword ptr [RBX + 0x10]
MOVZX EAX,byte ptr [RDX]
TEST AL,AL
JZ 0x00137b5d
MOV R13D,0x0
MOV ESI,0x1
JMP 0x00137b48
MOV RDX,RBP
JMP 0x00137afc
MOV R12,RDX
JMP 0x00137d7b
MOVZX EAX,byte ptr [RDX]
MOV byte ptr [RBP],AL
LEA RBP,[RBP + 0x1]
LEA RDX,[RDX + 0x1]
CMP RDX,R12
JNC 0x00137b09
MOVZX EAX,byte ptr [RDX]
CMP AL,0x2e
JZ 0x00137a55
CMP RBP,RDX
JZ 0x00137ad3
CMP R12,RDX
JBE 0x00137df6
CMP AL,0x2f
JZ 0x00137dfb
ADD RDX,0x1
ADD RBP,0x1
MOV byte ptr [RBP + -0x1],AL
CMP R12,RDX
JZ 0x00137d7b
MOVZX EAX,byte ptr [RDX]
CMP AL,0x2f
JNZ 0x00137e2f
JMP 0x00137dfb
CALL 0x0010ca20
(translation_unit "int * FUN_00137430(void *param_1,int *param_2,long param_3,char param_4)\n\n{\n  char cVar1;\n  uint uVar2;\n  char cVar3;\n  uint uVar4;\n  char *pcVar5;\n  char *pcVar6;\n  char *pcVar7;\n  undefined8 uVar8;\n  int *piVar9;\n  undefined8 uVar10;\n  char *pcVar11;\n  long lVar12;\n  ulong uVar13;\n  char *pcVar14;\n  int iVar15;\n  void *pvVar16;\n  byte bVar17;\n  char *__s;\n  long in_FS_OFFSET;\n  void *local_b8;\n  char *local_b0;\n  char *local_a8;\n  char *local_a0;\n  char *local_90;\n  char *local_88;\n  char *local_80;\n  uint local_74;\n  char *local_70;\n  char *local_68;\n  char *local_60;\n  char *local_58;\n  char *local_50;\n  void *local_48;\n  long local_40;\n  \n  bVar17 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  uVar4 = FUN_00135f73();\n  if (uVar4 == 4) {\n    cVar3 = FUN_00136004(param_1);\n    iVar15 = (cVar3 == '\0') + 1;\n  }\n  else {\n    if ((param_3 == 0) || (*(char *)(param_3 + 0x18) == '\0')) {\nLAB_001374b5:\n      local_b8 = param_1;\n      if (param_4 != '\0') {\n        local_b8 = (void *)FUN_00135ae4(param_1);\n      }\n    }\n    else {\n      local_48 = (void *)0x0;\n      pvVar16 = *(void **)(param_3 + 0x10);\n      if (*(void **)(param_3 + 0x10) == (void *)0x0) {\n        pvVar16 = param_1;\n      }\n      cVar3 = FUN_0013e9b4(param_3,pvVar16,&local_48);\n      *(char *)(param_3 + 0x18) = cVar3;\n      if (cVar3 == '\0') goto LAB_001374b5;\n      free(*(void **)(param_3 + 0x10));\n      *(undefined8 *)(param_3 + 0x10) = 0;\n      uVar8 = FUN_001496d9(param_1);\n      *(undefined8 *)(param_3 + 0x10) = uVar8;\n      local_b8 = (void *)FUN_00135ae4(local_48);\n      if (local_48 != local_b8) {\n        free(local_48);\n      }\n    }\n    uVar13 = 0xffffffffffffffff;\n    pcVar11 = (&PTR_s_http____0016e348)[(ulong)uVar4 * 3];\n    do {\n      if (uVar13 == 0) break;\n      uVar13 = uVar13 - 1;\n      cVar3 = *pcVar11;\n      pcVar11 = pcVar11 + (ulong)bVar17 * -2 + 1;\n    } while (cVar3 != '\0');\n    pcVar11 = (char *)((long)local_b8 + (~uVar13 - 1));\n    pcVar5 = strpbrk(pcVar11,"@/?#;");\n    pcVar14 = pcVar11;\n    if ((pcVar5 != (char *)0x0) && (pcVar14 = pcVar5 + 1, *pcVar5 != '@')) {\n      pcVar14 = pcVar11;\n    }\n    pcVar5 = (char *)FUN_00135653(uVar4);\n    if (*pcVar14 == '[') {\n      local_a8 = pcVar14 + 1;\n      local_a0 = strchr(local_a8,0x5d);\n      if (local_a0 == (char *)0x0) {\n        iVar15 = 6;\n      }\n      else {\n        cVar3 = FUN_0011c7c7(local_a8,local_a0);\n        if (cVar3 == '\0') {\n          iVar15 = 8;\n        }\n        else {\n          pcVar6 = local_a0 + 1;\n          pcVar7 = strchr(pcVar5,(int)local_a0[1]);\n          if (pcVar7 != (char *)0x0) goto LAB_00137554;\n          iVar15 = 3;\n        }\n      }\n    }\n    else {\n      pcVar6 = strpbrk(pcVar14,pcVar5);\n      local_a8 = pcVar14;\n      local_a0 = pcVar6;\n      if (pcVar6 == (char *)0x0) {\n        uVar13 = 0xffffffffffffffff;\n        pcVar6 = pcVar14;\n        do {\n          if (uVar13 == 0) break;\n          uVar13 = uVar13 - 1;\n          cVar3 = *pcVar6;\n          pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n        } while (cVar3 != '\0');\n        pcVar6 = pcVar14 + (~uVar13 - 1);\n        local_a0 = pcVar6;\n      }\nLAB_00137554:\n      if (local_a8 == local_a0) {\n        iVar15 = 3;\n      }\n      else {\n        local_74 = *(uint *)(&DAT_0016e350 + (ulong)uVar4 * 0x18);\n        pcVar7 = pcVar6;\n        if (*pcVar6 == ':') {\n          __s = pcVar6 + 1;\n          pcVar7 = strpbrk(__s,pcVar5 + 1);\n          if (pcVar7 == (char *)0x0) {\n            uVar13 = 0xffffffffffffffff;\n            pcVar7 = __s;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar7;\n              pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');\n            pcVar7 = pcVar6 + ~uVar13;\n          }\n          if (__s != pcVar7) {\n            if (__s < pcVar7) {\n              local_74 = (int)pcVar6[1] - 0x30;\n              if (local_74 < 10) {\n                do {\n                  __s = __s + 1;\n                  if (__s == pcVar7) goto LAB_00137584;\n                  if (9 < (int)*__s - 0x30U) {\n                    iVar15 = 4;\n                    goto LAB_00137c65;\n                  }\n                  local_74 = *__s + -0x30 + local_74 * 10;\n                } while ((int)local_74 < 0x10000);\n                iVar15 = 4;\n              }\n              else {\n                iVar15 = 4;\n              }\n              goto LAB_00137c65;\n            }\n            local_74 = 0;\n          }\n        }\nLAB_00137584:\n        local_80 = (char *)0x0;\n        local_88 = (char *)0x0;\n        pcVar6 = pcVar7;\n        if (*pcVar7 == '/') {\n          local_88 = pcVar7 + 1;\n          pcVar6 = strpbrk(local_88,pcVar5 + 2);\n          local_80 = pcVar6;\n          if (pcVar6 == (char *)0x0) {\n            uVar13 = 0xffffffffffffffff;\n            pcVar6 = local_88;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');\n            pcVar6 = pcVar7 + ~uVar13;\n            local_80 = pcVar6;\n          }\n        }\n        local_90 = pcVar5 + 3;\n        uVar2 = (&DAT_0016e354)[(ulong)uVar4 * 6];\n        if ((uVar2 & 2) == 0) {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n        }\n        else {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n          pcVar7 = pcVar6;\n          if (*pcVar6 == ';') {\n            local_70 = pcVar6 + 1;\n            pcVar7 = strpbrk(local_70,local_90);\n            local_60 = pcVar7;\n            if (pcVar7 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar7 = local_70;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar7;\n                pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar7 = pcVar6 + ~uVar13;\n              local_60 = pcVar7;\n            }\n          }\n          local_90 = pcVar5 + 4;\n          pcVar6 = pcVar7;\n        }\n        if ((uVar2 & 4) == 0) {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n        }\n        else {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n          pcVar5 = pcVar6;\n          if (*pcVar6 == '?') {\n            local_b0 = pcVar6 + 1;\n            pcVar5 = strpbrk(local_b0,local_90);\n            local_58 = pcVar5;\n            if (pcVar5 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_b0;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar5 = pcVar6 + ~uVar13;\n              local_58 = pcVar5;\n            }\n          }\n          local_90 = local_90 + 1;\n          pcVar6 = pcVar5;\n        }\n        if ((uVar2 & 8) == 0) {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n        }\n        else {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n          if (*pcVar6 == '#') {\n            local_68 = pcVar6 + 1;\n            local_50 = strpbrk(local_68,local_90);\n            if (local_50 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_68;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              local_50 = pcVar6 + ~uVar13;\n            }\n          }\n        }\n        if (pcVar11 == pcVar14) {\n          pcVar5 = (char *)0x0;\n          uVar8 = 0;\nLAB_001379c6:\n          piVar9 = (int *)FUN_0014967c(1,0x60);\n          piVar9[2] = uVar4;\n          uVar10 = FUN_0013a40c(local_a8,local_a0);\n          *(undefined8 *)(piVar9 + 4) = uVar10;\n          piVar9[6] = local_74;\n          *(undefined8 *)(piVar9 + 0x14) = uVar8;\n          *(char **)(piVar9 + 0x16) = pcVar5;\n          pcVar11 = (char *)FUN_0013a40c(local_88,local_80);\n          *(char **)(piVar9 + 8) = pcVar11;\n          uVar13 = 0xffffffffffffffff;\n          pcVar14 = pcVar11;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar3 = *pcVar14;\n            pcVar14 = pcVar14 + (ulong)bVar17 * -2 + 1;\n          } while (cVar3 != '\0');\n          pcVar14 = pcVar11 + (~uVar13 - 1);\n          pcVar5 = pcVar11;\n          if (pcVar11 < pcVar14) {\n            pcVar7 = pcVar11;\n            pcVar6 = pcVar11;\n            do {\n              cVar3 = *pcVar11;\n              if (cVar3 == '.') {\n                cVar1 = pcVar11[1];\n                if ((cVar1 == '/') || (cVar1 == '\0')) {\n                  pcVar11 = pcVar11 + 2;\n                }\n                else {\n                  if ((cVar1 != '.') || ((pcVar11[2] != '/' && (pcVar11[2] != '\0'))))\n                  goto LAB_00137e1d;\n                  if (pcVar6 < pcVar7) {\n                    pcVar5 = pcVar7 + -1;\n                    if (pcVar6 < pcVar5) {\n                      cVar3 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar3 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar3 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar5 = pcVar7;\n                    if (uVar4 - 2 < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }\n                  pcVar11 = pcVar11 + 3;\n                  pcVar7 = pcVar5;\n                }\n              }\n              else {\nLAB_00137e1d:\n                if (pcVar7 == pcVar11) {\n                  pcVar5 = pcVar7;\n                  if (pcVar14 <= pcVar7) break;\n                  cVar3 = *pcVar7;\n                  while (cVar3 != '/') {\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar14;\n                    if (pcVar14 == pcVar5) goto LAB_00137d7b;\n                    cVar3 = *pcVar5;\n                  }\n                  pcVar11 = pcVar5 + 1;\n                  pcVar7 = pcVar5 + 1;\n                }\n                else {\n                  pcVar5 = pcVar11;\n                  if (pcVar14 <= pcVar11) break;\n                  while (cVar3 != '/') {\n                    pcVar11 = pcVar11 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar3;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar14;\n                    if (pcVar14 == pcVar11) goto LAB_00137d7b;\n                    cVar3 = *pcVar11;\n                  }\n                  *pcVar7 = *pcVar11;\n                  pcVar11 = pcVar11 + 1;\n                  pcVar7 = pcVar7 + 1;\n                }\n              }\n              pcVar5 = pcVar11;\n            } while (pcVar11 < pcVar14);\nLAB_00137d7b:\n            pcVar11 = pcVar7;\n            if (pcVar5 != pcVar7) {\n              *pcVar7 = '\0';\n            }\n          }\n          pcVar14 = *(char **)(piVar9 + 8);\n          pcVar6 = strrchr(pcVar14,0x2f);\n          if (pcVar6 == (char *)0x0) {\n            uVar8 = FUN_001496d9(&DAT_0015ea35);\n            *(undefined8 *)(piVar9 + 0x10) = uVar8;\n            uVar8 = FUN_001496d9(pcVar14);\n            *(undefined8 *)(piVar9 + 0x12) = uVar8;\n          }\n          else {\n            uVar8 = FUN_0013a40c(pcVar14,pcVar6);\n            *(undefined8 *)(piVar9 + 0x10) = uVar8;\n            uVar8 = FUN_001496d9(pcVar6 + 1);\n            *(undefined8 *)(piVar9 + 0x12) = uVar8;\n          }\n          FUN_00135c58(*(undefined8 *)(piVar9 + 0x10));\n          FUN_00135c58(*(undefined8 *)(piVar9 + 0x12));\n          pcVar14 = *(char **)(piVar9 + 4);\n          cVar3 = *pcVar14;\n          if (cVar3 == '\0') {\n            bVar17 = 0;\n          }\n          else {\n            bVar17 = 0;\n            do {\n              if ((int)cVar3 - 0x41U < 0x1a) {\n                *pcVar14 = cVar3 + ' ';\n                bVar17 = 1;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            } while (cVar3 != '\0');\n          }\n          pcVar14 = *(char **)(piVar9 + 4);\n          pcVar6 = strchr(pcVar14,0x25);\n          if (pcVar6 != (char *)0x0) {\n            FUN_00135c58(pcVar14);\n            pcVar14 = *(char **)(piVar9 + 4);\n            cVar3 = *pcVar14;\n            while (cVar3 != '\0') {\n              if ((-1 < cVar3) && ((cVar3 < ' ' || (cVar3 == '\x7f')))) {\n                FUN_0013629a(piVar9);\n                iVar15 = 3;\n                goto LAB_00137c65;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            }\n            bVar17 = param_3 != 0 & DAT_00177606;\n            if (bVar17 == 0) {\n              bVar17 = 1;\n            }\n            else {\n              lVar12 = FUN_0013eaa4(param_3);\n              if (lVar12 != 0) {\n                free(*(void **)(piVar9 + 4));\n                *(long *)(piVar9 + 4) = lVar12;\n              }\n            }\n          }\n          if (local_70 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_70,local_60);\n            *(undefined8 *)(piVar9 + 10) = uVar8;\n          }\n          if (local_b0 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_b0,local_58);\n            *(undefined8 *)(piVar9 + 0xc) = uVar8;\n          }\n          if (local_68 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_68,local_50);\n            *(undefined8 *)(piVar9 + 0xe) = uVar8;\n          }\n          param_2 = piVar9;\n          if ((((DAT_00177606 == 0) && (pcVar5 == pcVar11)) && (*(long *)(piVar9 + 0xe) == 0)) &&\n             ((local_88 != local_80 && (bVar17 == 0)))) {\n            if (local_b8 == param_1) {\n              uVar8 = FUN_001496d9(param_1);\n              *(undefined8 *)piVar9 = uVar8;\n            }\n            else {\n              *(void **)piVar9 = local_b8;\n            }\n          }\n          else {\n            uVar8 = FUN_00137051(piVar9,0);\n            *(undefined8 *)piVar9 = uVar8;\n            if (local_b8 != param_1) {\n              free(local_b8);\n            }\n          }\n          goto LAB_00137c95;\n        }\n        pcVar14 = pcVar14 + -1;\n        if (pcVar14 == pcVar11) {\n          iVar15 = 5;\n        }\n        else {\n          pcVar6 = (char *)memchr(pcVar11,0x3a,(long)pcVar14 - (long)pcVar11);\n          if (pcVar11 != pcVar6) {\n            pcVar5 = pcVar6;\n            if (pcVar6 != (char *)0x0) {\n              pcVar5 = (char *)FUN_0013a40c(pcVar6 + 1,pcVar14);\n              FUN_00135c58(pcVar5);\n              pcVar14 = pcVar6;\n            }\n            uVar8 = FUN_0013a40c(pcVar11,pcVar14);\n            FUN_00135c58(uVar8);\n            goto LAB_001379c6;\n          }\n          iVar15 = 5;\n        }\n      }\n    }\nLAB_00137c65:\n    if ((local_b8 != (void *)0x0) && (local_b8 != param_1)) {\n      free(local_b8);\n    }\n  }\n  if (param_2 != (int *)0x0) {\n    *param_2 = iVar15;\n    param_2 = (int *)0x0;\n  }\nLAB_00137c95:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return param_2;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}\n\n" (function_definition "int * FUN_00137430(void *param_1,int *param_2,long param_3,char param_4)\n\n{\n  char cVar1;\n  uint uVar2;\n  char cVar3;\n  uint uVar4;\n  char *pcVar5;\n  char *pcVar6;\n  char *pcVar7;\n  undefined8 uVar8;\n  int *piVar9;\n  undefined8 uVar10;\n  char *pcVar11;\n  long lVar12;\n  ulong uVar13;\n  char *pcVar14;\n  int iVar15;\n  void *pvVar16;\n  byte bVar17;\n  char *__s;\n  long in_FS_OFFSET;\n  void *local_b8;\n  char *local_b0;\n  char *local_a8;\n  char *local_a0;\n  char *local_90;\n  char *local_88;\n  char *local_80;\n  uint local_74;\n  char *local_70;\n  char *local_68;\n  char *local_60;\n  char *local_58;\n  char *local_50;\n  void *local_48;\n  long local_40;\n  \n  bVar17 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  uVar4 = FUN_00135f73();\n  if (uVar4 == 4) {\n    cVar3 = FUN_00136004(param_1);\n    iVar15 = (cVar3 == '\0') + 1;\n  }\n  else {\n    if ((param_3 == 0) || (*(char *)(param_3 + 0x18) == '\0')) {\nLAB_001374b5:\n      local_b8 = param_1;\n      if (param_4 != '\0') {\n        local_b8 = (void *)FUN_00135ae4(param_1);\n      }\n    }\n    else {\n      local_48 = (void *)0x0;\n      pvVar16 = *(void **)(param_3 + 0x10);\n      if (*(void **)(param_3 + 0x10) == (void *)0x0) {\n        pvVar16 = param_1;\n      }\n      cVar3 = FUN_0013e9b4(param_3,pvVar16,&local_48);\n      *(char *)(param_3 + 0x18) = cVar3;\n      if (cVar3 == '\0') goto LAB_001374b5;\n      free(*(void **)(param_3 + 0x10));\n      *(undefined8 *)(param_3 + 0x10) = 0;\n      uVar8 = FUN_001496d9(param_1);\n      *(undefined8 *)(param_3 + 0x10) = uVar8;\n      local_b8 = (void *)FUN_00135ae4(local_48);\n      if (local_48 != local_b8) {\n        free(local_48);\n      }\n    }\n    uVar13 = 0xffffffffffffffff;\n    pcVar11 = (&PTR_s_http____0016e348)[(ulong)uVar4 * 3];\n    do {\n      if (uVar13 == 0) break;\n      uVar13 = uVar13 - 1;\n      cVar3 = *pcVar11;\n      pcVar11 = pcVar11 + (ulong)bVar17 * -2 + 1;\n    } while (cVar3 != '\0');\n    pcVar11 = (char *)((long)local_b8 + (~uVar13 - 1));\n    pcVar5 = strpbrk(pcVar11,"@/?#;");\n    pcVar14 = pcVar11;\n    if ((pcVar5 != (char *)0x0) && (pcVar14 = pcVar5 + 1, *pcVar5 != '@')) {\n      pcVar14 = pcVar11;\n    }\n    pcVar5 = (char *)FUN_00135653(uVar4);\n    if (*pcVar14 == '[') {\n      local_a8 = pcVar14 + 1;\n      local_a0 = strchr(local_a8,0x5d);\n      if (local_a0 == (char *)0x0) {\n        iVar15 = 6;\n      }\n      else {\n        cVar3 = FUN_0011c7c7(local_a8,local_a0);\n        if (cVar3 == '\0') {\n          iVar15 = 8;\n        }\n        else {\n          pcVar6 = local_a0 + 1;\n          pcVar7 = strchr(pcVar5,(int)local_a0[1]);\n          if (pcVar7 != (char *)0x0) goto LAB_00137554;\n          iVar15 = 3;\n        }\n      }\n    }\n    else {\n      pcVar6 = strpbrk(pcVar14,pcVar5);\n      local_a8 = pcVar14;\n      local_a0 = pcVar6;\n      if (pcVar6 == (char *)0x0) {\n        uVar13 = 0xffffffffffffffff;\n        pcVar6 = pcVar14;\n        do {\n          if (uVar13 == 0) break;\n          uVar13 = uVar13 - 1;\n          cVar3 = *pcVar6;\n          pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n        } while (cVar3 != '\0');\n        pcVar6 = pcVar14 + (~uVar13 - 1);\n        local_a0 = pcVar6;\n      }\nLAB_00137554:\n      if (local_a8 == local_a0) {\n        iVar15 = 3;\n      }\n      else {\n        local_74 = *(uint *)(&DAT_0016e350 + (ulong)uVar4 * 0x18);\n        pcVar7 = pcVar6;\n        if (*pcVar6 == ':') {\n          __s = pcVar6 + 1;\n          pcVar7 = strpbrk(__s,pcVar5 + 1);\n          if (pcVar7 == (char *)0x0) {\n            uVar13 = 0xffffffffffffffff;\n            pcVar7 = __s;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar7;\n              pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');\n            pcVar7 = pcVar6 + ~uVar13;\n          }\n          if (__s != pcVar7) {\n            if (__s < pcVar7) {\n              local_74 = (int)pcVar6[1] - 0x30;\n              if (local_74 < 10) {\n                do {\n                  __s = __s + 1;\n                  if (__s == pcVar7) goto LAB_00137584;\n                  if (9 < (int)*__s - 0x30U) {\n                    iVar15 = 4;\n                    goto LAB_00137c65;\n                  }\n                  local_74 = *__s + -0x30 + local_74 * 10;\n                } while ((int)local_74 < 0x10000);\n                iVar15 = 4;\n              }\n              else {\n                iVar15 = 4;\n              }\n              goto LAB_00137c65;\n            }\n            local_74 = 0;\n          }\n        }\nLAB_00137584:\n        local_80 = (char *)0x0;\n        local_88 = (char *)0x0;\n        pcVar6 = pcVar7;\n        if (*pcVar7 == '/') {\n          local_88 = pcVar7 + 1;\n          pcVar6 = strpbrk(local_88,pcVar5 + 2);\n          local_80 = pcVar6;\n          if (pcVar6 == (char *)0x0) {\n            uVar13 = 0xffffffffffffffff;\n            pcVar6 = local_88;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');\n            pcVar6 = pcVar7 + ~uVar13;\n            local_80 = pcVar6;\n          }\n        }\n        local_90 = pcVar5 + 3;\n        uVar2 = (&DAT_0016e354)[(ulong)uVar4 * 6];\n        if ((uVar2 & 2) == 0) {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n        }\n        else {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n          pcVar7 = pcVar6;\n          if (*pcVar6 == ';') {\n            local_70 = pcVar6 + 1;\n            pcVar7 = strpbrk(local_70,local_90);\n            local_60 = pcVar7;\n            if (pcVar7 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar7 = local_70;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar7;\n                pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar7 = pcVar6 + ~uVar13;\n              local_60 = pcVar7;\n            }\n          }\n          local_90 = pcVar5 + 4;\n          pcVar6 = pcVar7;\n        }\n        if ((uVar2 & 4) == 0) {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n        }\n        else {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n          pcVar5 = pcVar6;\n          if (*pcVar6 == '?') {\n            local_b0 = pcVar6 + 1;\n            pcVar5 = strpbrk(local_b0,local_90);\n            local_58 = pcVar5;\n            if (pcVar5 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_b0;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar5 = pcVar6 + ~uVar13;\n              local_58 = pcVar5;\n            }\n          }\n          local_90 = local_90 + 1;\n          pcVar6 = pcVar5;\n        }\n        if ((uVar2 & 8) == 0) {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n        }\n        else {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n          if (*pcVar6 == '#') {\n            local_68 = pcVar6 + 1;\n            local_50 = strpbrk(local_68,local_90);\n            if (local_50 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_68;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              local_50 = pcVar6 + ~uVar13;\n            }\n          }\n        }\n        if (pcVar11 == pcVar14) {\n          pcVar5 = (char *)0x0;\n          uVar8 = 0;\nLAB_001379c6:\n          piVar9 = (int *)FUN_0014967c(1,0x60);\n          piVar9[2] = uVar4;\n          uVar10 = FUN_0013a40c(local_a8,local_a0);\n          *(undefined8 *)(piVar9 + 4) = uVar10;\n          piVar9[6] = local_74;\n          *(undefined8 *)(piVar9 + 0x14) = uVar8;\n          *(char **)(piVar9 + 0x16) = pcVar5;\n          pcVar11 = (char *)FUN_0013a40c(local_88,local_80);\n          *(char **)(piVar9 + 8) = pcVar11;\n          uVar13 = 0xffffffffffffffff;\n          pcVar14 = pcVar11;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar3 = *pcVar14;\n            pcVar14 = pcVar14 + (ulong)bVar17 * -2 + 1;\n          } while (cVar3 != '\0');\n          pcVar14 = pcVar11 + (~uVar13 - 1);\n          pcVar5 = pcVar11;\n          if (pcVar11 < pcVar14) {\n            pcVar7 = pcVar11;\n            pcVar6 = pcVar11;\n            do {\n              cVar3 = *pcVar11;\n              if (cVar3 == '.') {\n                cVar1 = pcVar11[1];\n                if ((cVar1 == '/') || (cVar1 == '\0')) {\n                  pcVar11 = pcVar11 + 2;\n                }\n                else {\n                  if ((cVar1 != '.') || ((pcVar11[2] != '/' && (pcVar11[2] != '\0'))))\n                  goto LAB_00137e1d;\n                  if (pcVar6 < pcVar7) {\n                    pcVar5 = pcVar7 + -1;\n                    if (pcVar6 < pcVar5) {\n                      cVar3 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar3 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar3 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar5 = pcVar7;\n                    if (uVar4 - 2 < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }\n                  pcVar11 = pcVar11 + 3;\n                  pcVar7 = pcVar5;\n                }\n              }\n              else {\nLAB_00137e1d:\n                if (pcVar7 == pcVar11) {\n                  pcVar5 = pcVar7;\n                  if (pcVar14 <= pcVar7) break;\n                  cVar3 = *pcVar7;\n                  while (cVar3 != '/') {\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar14;\n                    if (pcVar14 == pcVar5) goto LAB_00137d7b;\n                    cVar3 = *pcVar5;\n                  }\n                  pcVar11 = pcVar5 + 1;\n                  pcVar7 = pcVar5 + 1;\n                }\n                else {\n                  pcVar5 = pcVar11;\n                  if (pcVar14 <= pcVar11) break;\n                  while (cVar3 != '/') {\n                    pcVar11 = pcVar11 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar3;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar14;\n                    if (pcVar14 == pcVar11) goto LAB_00137d7b;\n                    cVar3 = *pcVar11;\n                  }\n                  *pcVar7 = *pcVar11;\n                  pcVar11 = pcVar11 + 1;\n                  pcVar7 = pcVar7 + 1;\n                }\n              }\n              pcVar5 = pcVar11;\n            } while (pcVar11 < pcVar14);\nLAB_00137d7b:\n            pcVar11 = pcVar7;\n            if (pcVar5 != pcVar7) {\n              *pcVar7 = '\0';\n            }\n          }\n          pcVar14 = *(char **)(piVar9 + 8);\n          pcVar6 = strrchr(pcVar14,0x2f);\n          if (pcVar6 == (char *)0x0) {\n            uVar8 = FUN_001496d9(&DAT_0015ea35);\n            *(undefined8 *)(piVar9 + 0x10) = uVar8;\n            uVar8 = FUN_001496d9(pcVar14);\n            *(undefined8 *)(piVar9 + 0x12) = uVar8;\n          }\n          else {\n            uVar8 = FUN_0013a40c(pcVar14,pcVar6);\n            *(undefined8 *)(piVar9 + 0x10) = uVar8;\n            uVar8 = FUN_001496d9(pcVar6 + 1);\n            *(undefined8 *)(piVar9 + 0x12) = uVar8;\n          }\n          FUN_00135c58(*(undefined8 *)(piVar9 + 0x10));\n          FUN_00135c58(*(undefined8 *)(piVar9 + 0x12));\n          pcVar14 = *(char **)(piVar9 + 4);\n          cVar3 = *pcVar14;\n          if (cVar3 == '\0') {\n            bVar17 = 0;\n          }\n          else {\n            bVar17 = 0;\n            do {\n              if ((int)cVar3 - 0x41U < 0x1a) {\n                *pcVar14 = cVar3 + ' ';\n                bVar17 = 1;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            } while (cVar3 != '\0');\n          }\n          pcVar14 = *(char **)(piVar9 + 4);\n          pcVar6 = strchr(pcVar14,0x25);\n          if (pcVar6 != (char *)0x0) {\n            FUN_00135c58(pcVar14);\n            pcVar14 = *(char **)(piVar9 + 4);\n            cVar3 = *pcVar14;\n            while (cVar3 != '\0') {\n              if ((-1 < cVar3) && ((cVar3 < ' ' || (cVar3 == '\x7f')))) {\n                FUN_0013629a(piVar9);\n                iVar15 = 3;\n                goto LAB_00137c65;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            }\n            bVar17 = param_3 != 0 & DAT_00177606;\n            if (bVar17 == 0) {\n              bVar17 = 1;\n            }\n            else {\n              lVar12 = FUN_0013eaa4(param_3);\n              if (lVar12 != 0) {\n                free(*(void **)(piVar9 + 4));\n                *(long *)(piVar9 + 4) = lVar12;\n              }\n            }\n          }\n          if (local_70 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_70,local_60);\n            *(undefined8 *)(piVar9 + 10) = uVar8;\n          }\n          if (local_b0 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_b0,local_58);\n            *(undefined8 *)(piVar9 + 0xc) = uVar8;\n          }\n          if (local_68 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_68,local_50);\n            *(undefined8 *)(piVar9 + 0xe) = uVar8;\n          }\n          param_2 = piVar9;\n          if ((((DAT_00177606 == 0) && (pcVar5 == pcVar11)) && (*(long *)(piVar9 + 0xe) == 0)) &&\n             ((local_88 != local_80 && (bVar17 == 0)))) {\n            if (local_b8 == param_1) {\n              uVar8 = FUN_001496d9(param_1);\n              *(undefined8 *)piVar9 = uVar8;\n            }\n            else {\n              *(void **)piVar9 = local_b8;\n            }\n          }\n          else {\n            uVar8 = FUN_00137051(piVar9,0);\n            *(undefined8 *)piVar9 = uVar8;\n            if (local_b8 != param_1) {\n              free(local_b8);\n            }\n          }\n          goto LAB_00137c95;\n        }\n        pcVar14 = pcVar14 + -1;\n        if (pcVar14 == pcVar11) {\n          iVar15 = 5;\n        }\n        else {\n          pcVar6 = (char *)memchr(pcVar11,0x3a,(long)pcVar14 - (long)pcVar11);\n          if (pcVar11 != pcVar6) {\n            pcVar5 = pcVar6;\n            if (pcVar6 != (char *)0x0) {\n              pcVar5 = (char *)FUN_0013a40c(pcVar6 + 1,pcVar14);\n              FUN_00135c58(pcVar5);\n              pcVar14 = pcVar6;\n            }\n            uVar8 = FUN_0013a40c(pcVar11,pcVar14);\n            FUN_00135c58(uVar8);\n            goto LAB_001379c6;\n          }\n          iVar15 = 5;\n        }\n      }\n    }\nLAB_00137c65:\n    if ((local_b8 != (void *)0x0) && (local_b8 != param_1)) {\n      free(local_b8);\n    }\n  }\n  if (param_2 != (int *)0x0) {\n    *param_2 = iVar15;\n    param_2 = (int *)0x0;\n  }\nLAB_00137c95:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return param_2;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}" primitive_type (pointer_declarator "* FUN_00137430(void *param_1,int *param_2,long param_3,char param_4)" * (function_declarator "FUN_00137430(void *param_1,int *param_2,long param_3,char param_4)" identifier (parameter_list "(void *param_1,int *param_2,long param_3,char param_4)" ( (parameter_declaration "void *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "long param_3" (sized_type_specifier "long" long) identifier) , (parameter_declaration "char param_4" primitive_type identifier) )))) (compound_statement "{\n  char cVar1;\n  uint uVar2;\n  char cVar3;\n  uint uVar4;\n  char *pcVar5;\n  char *pcVar6;\n  char *pcVar7;\n  undefined8 uVar8;\n  int *piVar9;\n  undefined8 uVar10;\n  char *pcVar11;\n  long lVar12;\n  ulong uVar13;\n  char *pcVar14;\n  int iVar15;\n  void *pvVar16;\n  byte bVar17;\n  char *__s;\n  long in_FS_OFFSET;\n  void *local_b8;\n  char *local_b0;\n  char *local_a8;\n  char *local_a0;\n  char *local_90;\n  char *local_88;\n  char *local_80;\n  uint local_74;\n  char *local_70;\n  char *local_68;\n  char *local_60;\n  char *local_58;\n  char *local_50;\n  void *local_48;\n  long local_40;\n  \n  bVar17 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  uVar4 = FUN_00135f73();\n  if (uVar4 == 4) {\n    cVar3 = FUN_00136004(param_1);\n    iVar15 = (cVar3 == '\0') + 1;\n  }\n  else {\n    if ((param_3 == 0) || (*(char *)(param_3 + 0x18) == '\0')) {\nLAB_001374b5:\n      local_b8 = param_1;\n      if (param_4 != '\0') {\n        local_b8 = (void *)FUN_00135ae4(param_1);\n      }\n    }\n    else {\n      local_48 = (void *)0x0;\n      pvVar16 = *(void **)(param_3 + 0x10);\n      if (*(void **)(param_3 + 0x10) == (void *)0x0) {\n        pvVar16 = param_1;\n      }\n      cVar3 = FUN_0013e9b4(param_3,pvVar16,&local_48);\n      *(char *)(param_3 + 0x18) = cVar3;\n      if (cVar3 == '\0') goto LAB_001374b5;\n      free(*(void **)(param_3 + 0x10));\n      *(undefined8 *)(param_3 + 0x10) = 0;\n      uVar8 = FUN_001496d9(param_1);\n      *(undefined8 *)(param_3 + 0x10) = uVar8;\n      local_b8 = (void *)FUN_00135ae4(local_48);\n      if (local_48 != local_b8) {\n        free(local_48);\n      }\n    }\n    uVar13 = 0xffffffffffffffff;\n    pcVar11 = (&PTR_s_http____0016e348)[(ulong)uVar4 * 3];\n    do {\n      if (uVar13 == 0) break;\n      uVar13 = uVar13 - 1;\n      cVar3 = *pcVar11;\n      pcVar11 = pcVar11 + (ulong)bVar17 * -2 + 1;\n    } while (cVar3 != '\0');\n    pcVar11 = (char *)((long)local_b8 + (~uVar13 - 1));\n    pcVar5 = strpbrk(pcVar11,"@/?#;");\n    pcVar14 = pcVar11;\n    if ((pcVar5 != (char *)0x0) && (pcVar14 = pcVar5 + 1, *pcVar5 != '@')) {\n      pcVar14 = pcVar11;\n    }\n    pcVar5 = (char *)FUN_00135653(uVar4);\n    if (*pcVar14 == '[') {\n      local_a8 = pcVar14 + 1;\n      local_a0 = strchr(local_a8,0x5d);\n      if (local_a0 == (char *)0x0) {\n        iVar15 = 6;\n      }\n      else {\n        cVar3 = FUN_0011c7c7(local_a8,local_a0);\n        if (cVar3 == '\0') {\n          iVar15 = 8;\n        }\n        else {\n          pcVar6 = local_a0 + 1;\n          pcVar7 = strchr(pcVar5,(int)local_a0[1]);\n          if (pcVar7 != (char *)0x0) goto LAB_00137554;\n          iVar15 = 3;\n        }\n      }\n    }\n    else {\n      pcVar6 = strpbrk(pcVar14,pcVar5);\n      local_a8 = pcVar14;\n      local_a0 = pcVar6;\n      if (pcVar6 == (char *)0x0) {\n        uVar13 = 0xffffffffffffffff;\n        pcVar6 = pcVar14;\n        do {\n          if (uVar13 == 0) break;\n          uVar13 = uVar13 - 1;\n          cVar3 = *pcVar6;\n          pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n        } while (cVar3 != '\0');\n        pcVar6 = pcVar14 + (~uVar13 - 1);\n        local_a0 = pcVar6;\n      }\nLAB_00137554:\n      if (local_a8 == local_a0) {\n        iVar15 = 3;\n      }\n      else {\n        local_74 = *(uint *)(&DAT_0016e350 + (ulong)uVar4 * 0x18);\n        pcVar7 = pcVar6;\n        if (*pcVar6 == ':') {\n          __s = pcVar6 + 1;\n          pcVar7 = strpbrk(__s,pcVar5 + 1);\n          if (pcVar7 == (char *)0x0) {\n            uVar13 = 0xffffffffffffffff;\n            pcVar7 = __s;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar7;\n              pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');\n            pcVar7 = pcVar6 + ~uVar13;\n          }\n          if (__s != pcVar7) {\n            if (__s < pcVar7) {\n              local_74 = (int)pcVar6[1] - 0x30;\n              if (local_74 < 10) {\n                do {\n                  __s = __s + 1;\n                  if (__s == pcVar7) goto LAB_00137584;\n                  if (9 < (int)*__s - 0x30U) {\n                    iVar15 = 4;\n                    goto LAB_00137c65;\n                  }\n                  local_74 = *__s + -0x30 + local_74 * 10;\n                } while ((int)local_74 < 0x10000);\n                iVar15 = 4;\n              }\n              else {\n                iVar15 = 4;\n              }\n              goto LAB_00137c65;\n            }\n            local_74 = 0;\n          }\n        }\nLAB_00137584:\n        local_80 = (char *)0x0;\n        local_88 = (char *)0x0;\n        pcVar6 = pcVar7;\n        if (*pcVar7 == '/') {\n          local_88 = pcVar7 + 1;\n          pcVar6 = strpbrk(local_88,pcVar5 + 2);\n          local_80 = pcVar6;\n          if (pcVar6 == (char *)0x0) {\n            uVar13 = 0xffffffffffffffff;\n            pcVar6 = local_88;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');\n            pcVar6 = pcVar7 + ~uVar13;\n            local_80 = pcVar6;\n          }\n        }\n        local_90 = pcVar5 + 3;\n        uVar2 = (&DAT_0016e354)[(ulong)uVar4 * 6];\n        if ((uVar2 & 2) == 0) {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n        }\n        else {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n          pcVar7 = pcVar6;\n          if (*pcVar6 == ';') {\n            local_70 = pcVar6 + 1;\n            pcVar7 = strpbrk(local_70,local_90);\n            local_60 = pcVar7;\n            if (pcVar7 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar7 = local_70;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar7;\n                pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar7 = pcVar6 + ~uVar13;\n              local_60 = pcVar7;\n            }\n          }\n          local_90 = pcVar5 + 4;\n          pcVar6 = pcVar7;\n        }\n        if ((uVar2 & 4) == 0) {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n        }\n        else {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n          pcVar5 = pcVar6;\n          if (*pcVar6 == '?') {\n            local_b0 = pcVar6 + 1;\n            pcVar5 = strpbrk(local_b0,local_90);\n            local_58 = pcVar5;\n            if (pcVar5 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_b0;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar5 = pcVar6 + ~uVar13;\n              local_58 = pcVar5;\n            }\n          }\n          local_90 = local_90 + 1;\n          pcVar6 = pcVar5;\n        }\n        if ((uVar2 & 8) == 0) {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n        }\n        else {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n          if (*pcVar6 == '#') {\n            local_68 = pcVar6 + 1;\n            local_50 = strpbrk(local_68,local_90);\n            if (local_50 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_68;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              local_50 = pcVar6 + ~uVar13;\n            }\n          }\n        }\n        if (pcVar11 == pcVar14) {\n          pcVar5 = (char *)0x0;\n          uVar8 = 0;\nLAB_001379c6:\n          piVar9 = (int *)FUN_0014967c(1,0x60);\n          piVar9[2] = uVar4;\n          uVar10 = FUN_0013a40c(local_a8,local_a0);\n          *(undefined8 *)(piVar9 + 4) = uVar10;\n          piVar9[6] = local_74;\n          *(undefined8 *)(piVar9 + 0x14) = uVar8;\n          *(char **)(piVar9 + 0x16) = pcVar5;\n          pcVar11 = (char *)FUN_0013a40c(local_88,local_80);\n          *(char **)(piVar9 + 8) = pcVar11;\n          uVar13 = 0xffffffffffffffff;\n          pcVar14 = pcVar11;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar3 = *pcVar14;\n            pcVar14 = pcVar14 + (ulong)bVar17 * -2 + 1;\n          } while (cVar3 != '\0');\n          pcVar14 = pcVar11 + (~uVar13 - 1);\n          pcVar5 = pcVar11;\n          if (pcVar11 < pcVar14) {\n            pcVar7 = pcVar11;\n            pcVar6 = pcVar11;\n            do {\n              cVar3 = *pcVar11;\n              if (cVar3 == '.') {\n                cVar1 = pcVar11[1];\n                if ((cVar1 == '/') || (cVar1 == '\0')) {\n                  pcVar11 = pcVar11 + 2;\n                }\n                else {\n                  if ((cVar1 != '.') || ((pcVar11[2] != '/' && (pcVar11[2] != '\0'))))\n                  goto LAB_00137e1d;\n                  if (pcVar6 < pcVar7) {\n                    pcVar5 = pcVar7 + -1;\n                    if (pcVar6 < pcVar5) {\n                      cVar3 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar3 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar3 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar5 = pcVar7;\n                    if (uVar4 - 2 < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }\n                  pcVar11 = pcVar11 + 3;\n                  pcVar7 = pcVar5;\n                }\n              }\n              else {\nLAB_00137e1d:\n                if (pcVar7 == pcVar11) {\n                  pcVar5 = pcVar7;\n                  if (pcVar14 <= pcVar7) break;\n                  cVar3 = *pcVar7;\n                  while (cVar3 != '/') {\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar14;\n                    if (pcVar14 == pcVar5) goto LAB_00137d7b;\n                    cVar3 = *pcVar5;\n                  }\n                  pcVar11 = pcVar5 + 1;\n                  pcVar7 = pcVar5 + 1;\n                }\n                else {\n                  pcVar5 = pcVar11;\n                  if (pcVar14 <= pcVar11) break;\n                  while (cVar3 != '/') {\n                    pcVar11 = pcVar11 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar3;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar14;\n                    if (pcVar14 == pcVar11) goto LAB_00137d7b;\n                    cVar3 = *pcVar11;\n                  }\n                  *pcVar7 = *pcVar11;\n                  pcVar11 = pcVar11 + 1;\n                  pcVar7 = pcVar7 + 1;\n                }\n              }\n              pcVar5 = pcVar11;\n            } while (pcVar11 < pcVar14);\nLAB_00137d7b:\n            pcVar11 = pcVar7;\n            if (pcVar5 != pcVar7) {\n              *pcVar7 = '\0';\n            }\n          }\n          pcVar14 = *(char **)(piVar9 + 8);\n          pcVar6 = strrchr(pcVar14,0x2f);\n          if (pcVar6 == (char *)0x0) {\n            uVar8 = FUN_001496d9(&DAT_0015ea35);\n            *(undefined8 *)(piVar9 + 0x10) = uVar8;\n            uVar8 = FUN_001496d9(pcVar14);\n            *(undefined8 *)(piVar9 + 0x12) = uVar8;\n          }\n          else {\n            uVar8 = FUN_0013a40c(pcVar14,pcVar6);\n            *(undefined8 *)(piVar9 + 0x10) = uVar8;\n            uVar8 = FUN_001496d9(pcVar6 + 1);\n            *(undefined8 *)(piVar9 + 0x12) = uVar8;\n          }\n          FUN_00135c58(*(undefined8 *)(piVar9 + 0x10));\n          FUN_00135c58(*(undefined8 *)(piVar9 + 0x12));\n          pcVar14 = *(char **)(piVar9 + 4);\n          cVar3 = *pcVar14;\n          if (cVar3 == '\0') {\n            bVar17 = 0;\n          }\n          else {\n            bVar17 = 0;\n            do {\n              if ((int)cVar3 - 0x41U < 0x1a) {\n                *pcVar14 = cVar3 + ' ';\n                bVar17 = 1;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            } while (cVar3 != '\0');\n          }\n          pcVar14 = *(char **)(piVar9 + 4);\n          pcVar6 = strchr(pcVar14,0x25);\n          if (pcVar6 != (char *)0x0) {\n            FUN_00135c58(pcVar14);\n            pcVar14 = *(char **)(piVar9 + 4);\n            cVar3 = *pcVar14;\n            while (cVar3 != '\0') {\n              if ((-1 < cVar3) && ((cVar3 < ' ' || (cVar3 == '\x7f')))) {\n                FUN_0013629a(piVar9);\n                iVar15 = 3;\n                goto LAB_00137c65;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            }\n            bVar17 = param_3 != 0 & DAT_00177606;\n            if (bVar17 == 0) {\n              bVar17 = 1;\n            }\n            else {\n              lVar12 = FUN_0013eaa4(param_3);\n              if (lVar12 != 0) {\n                free(*(void **)(piVar9 + 4));\n                *(long *)(piVar9 + 4) = lVar12;\n              }\n            }\n          }\n          if (local_70 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_70,local_60);\n            *(undefined8 *)(piVar9 + 10) = uVar8;\n          }\n          if (local_b0 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_b0,local_58);\n            *(undefined8 *)(piVar9 + 0xc) = uVar8;\n          }\n          if (local_68 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_68,local_50);\n            *(undefined8 *)(piVar9 + 0xe) = uVar8;\n          }\n          param_2 = piVar9;\n          if ((((DAT_00177606 == 0) && (pcVar5 == pcVar11)) && (*(long *)(piVar9 + 0xe) == 0)) &&\n             ((local_88 != local_80 && (bVar17 == 0)))) {\n            if (local_b8 == param_1) {\n              uVar8 = FUN_001496d9(param_1);\n              *(undefined8 *)piVar9 = uVar8;\n            }\n            else {\n              *(void **)piVar9 = local_b8;\n            }\n          }\n          else {\n            uVar8 = FUN_00137051(piVar9,0);\n            *(undefined8 *)piVar9 = uVar8;\n            if (local_b8 != param_1) {\n              free(local_b8);\n            }\n          }\n          goto LAB_00137c95;\n        }\n        pcVar14 = pcVar14 + -1;\n        if (pcVar14 == pcVar11) {\n          iVar15 = 5;\n        }\n        else {\n          pcVar6 = (char *)memchr(pcVar11,0x3a,(long)pcVar14 - (long)pcVar11);\n          if (pcVar11 != pcVar6) {\n            pcVar5 = pcVar6;\n            if (pcVar6 != (char *)0x0) {\n              pcVar5 = (char *)FUN_0013a40c(pcVar6 + 1,pcVar14);\n              FUN_00135c58(pcVar5);\n              pcVar14 = pcVar6;\n            }\n            uVar8 = FUN_0013a40c(pcVar11,pcVar14);\n            FUN_00135c58(uVar8);\n            goto LAB_001379c6;\n          }\n          iVar15 = 5;\n        }\n      }\n    }\nLAB_00137c65:\n    if ((local_b8 != (void *)0x0) && (local_b8 != param_1)) {\n      free(local_b8);\n    }\n  }\n  if (param_2 != (int *)0x0) {\n    *param_2 = iVar15;\n    param_2 = (int *)0x0;\n  }\nLAB_00137c95:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return param_2;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "char cVar3;" primitive_type identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "undefined8 uVar8;" type_identifier identifier ;) (declaration "int *piVar9;" primitive_type (pointer_declarator "*piVar9" * identifier) ;) (declaration "undefined8 uVar10;" type_identifier identifier ;) (declaration "char *pcVar11;" primitive_type (pointer_declarator "*pcVar11" * identifier) ;) (declaration "long lVar12;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong uVar13;" type_identifier identifier ;) (declaration "char *pcVar14;" primitive_type (pointer_declarator "*pcVar14" * identifier) ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "void *pvVar16;" primitive_type (pointer_declarator "*pvVar16" * identifier) ;) (declaration "byte bVar17;" type_identifier identifier ;) (declaration "char *__s;" primitive_type (pointer_declarator "*__s" * identifier) ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "void *local_b8;" primitive_type (pointer_declarator "*local_b8" * identifier) ;) (declaration "char *local_b0;" primitive_type (pointer_declarator "*local_b0" * identifier) ;) (declaration "char *local_a8;" primitive_type (pointer_declarator "*local_a8" * identifier) ;) (declaration "char *local_a0;" primitive_type (pointer_declarator "*local_a0" * identifier) ;) (declaration "char *local_90;" primitive_type (pointer_declarator "*local_90" * identifier) ;) (declaration "char *local_88;" primitive_type (pointer_declarator "*local_88" * identifier) ;) (declaration "char *local_80;" primitive_type (pointer_declarator "*local_80" * identifier) ;) (declaration "uint local_74;" type_identifier identifier ;) (declaration "char *local_70;" primitive_type (pointer_declarator "*local_70" * identifier) ;) (declaration "char *local_68;" primitive_type (pointer_declarator "*local_68" * identifier) ;) (declaration "char *local_60;" primitive_type (pointer_declarator "*local_60" * identifier) ;) (declaration "char *local_58;" primitive_type (pointer_declarator "*local_58" * identifier) ;) (declaration "char *local_50;" primitive_type (pointer_declarator "*local_50" * identifier) ;) (declaration "void *local_48;" primitive_type (pointer_declarator "*local_48" * identifier) ;) (declaration "long local_40;" (sized_type_specifier "long" long) identifier ;) (expression_statement "bVar17 = 0;" (assignment_expression "bVar17 = 0" identifier = number_literal) ;) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (expression_statement "uVar4 = FUN_00135f73();" (assignment_expression "uVar4 = FUN_00135f73()" identifier = (call_expression "FUN_00135f73()" identifier (argument_list "()" ( )))) ;) (if_statement "if (uVar4 == 4) {\n    cVar3 = FUN_00136004(param_1);\n    iVar15 = (cVar3 == '\0') + 1;\n  }\n  else {\n    if ((param_3 == 0) || (*(char *)(param_3 + 0x18) == '\0')) {\nLAB_001374b5:\n      local_b8 = param_1;\n      if (param_4 != '\0') {\n        local_b8 = (void *)FUN_00135ae4(param_1);\n      }\n    }\n    else {\n      local_48 = (void *)0x0;\n      pvVar16 = *(void **)(param_3 + 0x10);\n      if (*(void **)(param_3 + 0x10) == (void *)0x0) {\n        pvVar16 = param_1;\n      }\n      cVar3 = FUN_0013e9b4(param_3,pvVar16,&local_48);\n      *(char *)(param_3 + 0x18) = cVar3;\n      if (cVar3 == '\0') goto LAB_001374b5;\n      free(*(void **)(param_3 + 0x10));\n      *(undefined8 *)(param_3 + 0x10) = 0;\n      uVar8 = FUN_001496d9(param_1);\n      *(undefined8 *)(param_3 + 0x10) = uVar8;\n      local_b8 = (void *)FUN_00135ae4(local_48);\n      if (local_48 != local_b8) {\n        free(local_48);\n      }\n    }\n    uVar13 = 0xffffffffffffffff;\n    pcVar11 = (&PTR_s_http____0016e348)[(ulong)uVar4 * 3];\n    do {\n      if (uVar13 == 0) break;\n      uVar13 = uVar13 - 1;\n      cVar3 = *pcVar11;\n      pcVar11 = pcVar11 + (ulong)bVar17 * -2 + 1;\n    } while (cVar3 != '\0');\n    pcVar11 = (char *)((long)local_b8 + (~uVar13 - 1));\n    pcVar5 = strpbrk(pcVar11,"@/?#;");\n    pcVar14 = pcVar11;\n    if ((pcVar5 != (char *)0x0) && (pcVar14 = pcVar5 + 1, *pcVar5 != '@')) {\n      pcVar14 = pcVar11;\n    }\n    pcVar5 = (char *)FUN_00135653(uVar4);\n    if (*pcVar14 == '[') {\n      local_a8 = pcVar14 + 1;\n      local_a0 = strchr(local_a8,0x5d);\n      if (local_a0 == (char *)0x0) {\n        iVar15 = 6;\n      }\n      else {\n        cVar3 = FUN_0011c7c7(local_a8,local_a0);\n        if (cVar3 == '\0') {\n          iVar15 = 8;\n        }\n        else {\n          pcVar6 = local_a0 + 1;\n          pcVar7 = strchr(pcVar5,(int)local_a0[1]);\n          if (pcVar7 != (char *)0x0) goto LAB_00137554;\n          iVar15 = 3;\n        }\n      }\n    }\n    else {\n      pcVar6 = strpbrk(pcVar14,pcVar5);\n      local_a8 = pcVar14;\n      local_a0 = pcVar6;\n      if (pcVar6 == (char *)0x0) {\n        uVar13 = 0xffffffffffffffff;\n        pcVar6 = pcVar14;\n        do {\n          if (uVar13 == 0) break;\n          uVar13 = uVar13 - 1;\n          cVar3 = *pcVar6;\n          pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n        } while (cVar3 != '\0');\n        pcVar6 = pcVar14 + (~uVar13 - 1);\n        local_a0 = pcVar6;\n      }\nLAB_00137554:\n      if (local_a8 == local_a0) {\n        iVar15 = 3;\n      }\n      else {\n        local_74 = *(uint *)(&DAT_0016e350 + (ulong)uVar4 * 0x18);\n        pcVar7 = pcVar6;\n        if (*pcVar6 == ':') {\n          __s = pcVar6 + 1;\n          pcVar7 = strpbrk(__s,pcVar5 + 1);\n          if (pcVar7 == (char *)0x0) {\n            uVar13 = 0xffffffffffffffff;\n            pcVar7 = __s;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar7;\n              pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');\n            pcVar7 = pcVar6 + ~uVar13;\n          }\n          if (__s != pcVar7) {\n            if (__s < pcVar7) {\n              local_74 = (int)pcVar6[1] - 0x30;\n              if (local_74 < 10) {\n                do {\n                  __s = __s + 1;\n                  if (__s == pcVar7) goto LAB_00137584;\n                  if (9 < (int)*__s - 0x30U) {\n                    iVar15 = 4;\n                    goto LAB_00137c65;\n                  }\n                  local_74 = *__s + -0x30 + local_74 * 10;\n                } while ((int)local_74 < 0x10000);\n                iVar15 = 4;\n              }\n              else {\n                iVar15 = 4;\n              }\n              goto LAB_00137c65;\n            }\n            local_74 = 0;\n          }\n        }\nLAB_00137584:\n        local_80 = (char *)0x0;\n        local_88 = (char *)0x0;\n        pcVar6 = pcVar7;\n        if (*pcVar7 == '/') {\n          local_88 = pcVar7 + 1;\n          pcVar6 = strpbrk(local_88,pcVar5 + 2);\n          local_80 = pcVar6;\n          if (pcVar6 == (char *)0x0) {\n            uVar13 = 0xffffffffffffffff;\n            pcVar6 = local_88;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');\n            pcVar6 = pcVar7 + ~uVar13;\n            local_80 = pcVar6;\n          }\n        }\n        local_90 = pcVar5 + 3;\n        uVar2 = (&DAT_0016e354)[(ulong)uVar4 * 6];\n        if ((uVar2 & 2) == 0) {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n        }\n        else {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n          pcVar7 = pcVar6;\n          if (*pcVar6 == ';') {\n            local_70 = pcVar6 + 1;\n            pcVar7 = strpbrk(local_70,local_90);\n            local_60 = pcVar7;\n            if (pcVar7 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar7 = local_70;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar7;\n                pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar7 = pcVar6 + ~uVar13;\n              local_60 = pcVar7;\n            }\n          }\n          local_90 = pcVar5 + 4;\n          pcVar6 = pcVar7;\n        }\n        if ((uVar2 & 4) == 0) {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n        }\n        else {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n          pcVar5 = pcVar6;\n          if (*pcVar6 == '?') {\n            local_b0 = pcVar6 + 1;\n            pcVar5 = strpbrk(local_b0,local_90);\n            local_58 = pcVar5;\n            if (pcVar5 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_b0;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar5 = pcVar6 + ~uVar13;\n              local_58 = pcVar5;\n            }\n          }\n          local_90 = local_90 + 1;\n          pcVar6 = pcVar5;\n        }\n        if ((uVar2 & 8) == 0) {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n        }\n        else {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n          if (*pcVar6 == '#') {\n            local_68 = pcVar6 + 1;\n            local_50 = strpbrk(local_68,local_90);\n            if (local_50 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_68;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              local_50 = pcVar6 + ~uVar13;\n            }\n          }\n        }\n        if (pcVar11 == pcVar14) {\n          pcVar5 = (char *)0x0;\n          uVar8 = 0;\nLAB_001379c6:\n          piVar9 = (int *)FUN_0014967c(1,0x60);\n          piVar9[2] = uVar4;\n          uVar10 = FUN_0013a40c(local_a8,local_a0);\n          *(undefined8 *)(piVar9 + 4) = uVar10;\n          piVar9[6] = local_74;\n          *(undefined8 *)(piVar9 + 0x14) = uVar8;\n          *(char **)(piVar9 + 0x16) = pcVar5;\n          pcVar11 = (char *)FUN_0013a40c(local_88,local_80);\n          *(char **)(piVar9 + 8) = pcVar11;\n          uVar13 = 0xffffffffffffffff;\n          pcVar14 = pcVar11;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar3 = *pcVar14;\n            pcVar14 = pcVar14 + (ulong)bVar17 * -2 + 1;\n          } while (cVar3 != '\0');\n          pcVar14 = pcVar11 + (~uVar13 - 1);\n          pcVar5 = pcVar11;\n          if (pcVar11 < pcVar14) {\n            pcVar7 = pcVar11;\n            pcVar6 = pcVar11;\n            do {\n              cVar3 = *pcVar11;\n              if (cVar3 == '.') {\n                cVar1 = pcVar11[1];\n                if ((cVar1 == '/') || (cVar1 == '\0')) {\n                  pcVar11 = pcVar11 + 2;\n                }\n                else {\n                  if ((cVar1 != '.') || ((pcVar11[2] != '/' && (pcVar11[2] != '\0'))))\n                  goto LAB_00137e1d;\n                  if (pcVar6 < pcVar7) {\n                    pcVar5 = pcVar7 + -1;\n                    if (pcVar6 < pcVar5) {\n                      cVar3 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar3 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar3 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar5 = pcVar7;\n                    if (uVar4 - 2 < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }\n                  pcVar11 = pcVar11 + 3;\n                  pcVar7 = pcVar5;\n                }\n              }\n              else {\nLAB_00137e1d:\n                if (pcVar7 == pcVar11) {\n                  pcVar5 = pcVar7;\n                  if (pcVar14 <= pcVar7) break;\n                  cVar3 = *pcVar7;\n                  while (cVar3 != '/') {\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar14;\n                    if (pcVar14 == pcVar5) goto LAB_00137d7b;\n                    cVar3 = *pcVar5;\n                  }\n                  pcVar11 = pcVar5 + 1;\n                  pcVar7 = pcVar5 + 1;\n                }\n                else {\n                  pcVar5 = pcVar11;\n                  if (pcVar14 <= pcVar11) break;\n                  while (cVar3 != '/') {\n                    pcVar11 = pcVar11 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar3;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar14;\n                    if (pcVar14 == pcVar11) goto LAB_00137d7b;\n                    cVar3 = *pcVar11;\n                  }\n                  *pcVar7 = *pcVar11;\n                  pcVar11 = pcVar11 + 1;\n                  pcVar7 = pcVar7 + 1;\n                }\n              }\n              pcVar5 = pcVar11;\n            } while (pcVar11 < pcVar14);\nLAB_00137d7b:\n            pcVar11 = pcVar7;\n            if (pcVar5 != pcVar7) {\n              *pcVar7 = '\0';\n            }\n          }\n          pcVar14 = *(char **)(piVar9 + 8);\n          pcVar6 = strrchr(pcVar14,0x2f);\n          if (pcVar6 == (char *)0x0) {\n            uVar8 = FUN_001496d9(&DAT_0015ea35);\n            *(undefined8 *)(piVar9 + 0x10) = uVar8;\n            uVar8 = FUN_001496d9(pcVar14);\n            *(undefined8 *)(piVar9 + 0x12) = uVar8;\n          }\n          else {\n            uVar8 = FUN_0013a40c(pcVar14,pcVar6);\n            *(undefined8 *)(piVar9 + 0x10) = uVar8;\n            uVar8 = FUN_001496d9(pcVar6 + 1);\n            *(undefined8 *)(piVar9 + 0x12) = uVar8;\n          }\n          FUN_00135c58(*(undefined8 *)(piVar9 + 0x10));\n          FUN_00135c58(*(undefined8 *)(piVar9 + 0x12));\n          pcVar14 = *(char **)(piVar9 + 4);\n          cVar3 = *pcVar14;\n          if (cVar3 == '\0') {\n            bVar17 = 0;\n          }\n          else {\n            bVar17 = 0;\n            do {\n              if ((int)cVar3 - 0x41U < 0x1a) {\n                *pcVar14 = cVar3 + ' ';\n                bVar17 = 1;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            } while (cVar3 != '\0');\n          }\n          pcVar14 = *(char **)(piVar9 + 4);\n          pcVar6 = strchr(pcVar14,0x25);\n          if (pcVar6 != (char *)0x0) {\n            FUN_00135c58(pcVar14);\n            pcVar14 = *(char **)(piVar9 + 4);\n            cVar3 = *pcVar14;\n            while (cVar3 != '\0') {\n              if ((-1 < cVar3) && ((cVar3 < ' ' || (cVar3 == '\x7f')))) {\n                FUN_0013629a(piVar9);\n                iVar15 = 3;\n                goto LAB_00137c65;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            }\n            bVar17 = param_3 != 0 & DAT_00177606;\n            if (bVar17 == 0) {\n              bVar17 = 1;\n            }\n            else {\n              lVar12 = FUN_0013eaa4(param_3);\n              if (lVar12 != 0) {\n                free(*(void **)(piVar9 + 4));\n                *(long *)(piVar9 + 4) = lVar12;\n              }\n            }\n          }\n          if (local_70 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_70,local_60);\n            *(undefined8 *)(piVar9 + 10) = uVar8;\n          }\n          if (local_b0 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_b0,local_58);\n            *(undefined8 *)(piVar9 + 0xc) = uVar8;\n          }\n          if (local_68 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_68,local_50);\n            *(undefined8 *)(piVar9 + 0xe) = uVar8;\n          }\n          param_2 = piVar9;\n          if ((((DAT_00177606 == 0) && (pcVar5 == pcVar11)) && (*(long *)(piVar9 + 0xe) == 0)) &&\n             ((local_88 != local_80 && (bVar17 == 0)))) {\n            if (local_b8 == param_1) {\n              uVar8 = FUN_001496d9(param_1);\n              *(undefined8 *)piVar9 = uVar8;\n            }\n            else {\n              *(void **)piVar9 = local_b8;\n            }\n          }\n          else {\n            uVar8 = FUN_00137051(piVar9,0);\n            *(undefined8 *)piVar9 = uVar8;\n            if (local_b8 != param_1) {\n              free(local_b8);\n            }\n          }\n          goto LAB_00137c95;\n        }\n        pcVar14 = pcVar14 + -1;\n        if (pcVar14 == pcVar11) {\n          iVar15 = 5;\n        }\n        else {\n          pcVar6 = (char *)memchr(pcVar11,0x3a,(long)pcVar14 - (long)pcVar11);\n          if (pcVar11 != pcVar6) {\n            pcVar5 = pcVar6;\n            if (pcVar6 != (char *)0x0) {\n              pcVar5 = (char *)FUN_0013a40c(pcVar6 + 1,pcVar14);\n              FUN_00135c58(pcVar5);\n              pcVar14 = pcVar6;\n            }\n            uVar8 = FUN_0013a40c(pcVar11,pcVar14);\n            FUN_00135c58(uVar8);\n            goto LAB_001379c6;\n          }\n          iVar15 = 5;\n        }\n      }\n    }\nLAB_00137c65:\n    if ((local_b8 != (void *)0x0) && (local_b8 != param_1)) {\n      free(local_b8);\n    }\n  }" if (parenthesized_expression "(uVar4 == 4)" ( (binary_expression "uVar4 == 4" identifier == number_literal) )) (compound_statement "{\n    cVar3 = FUN_00136004(param_1);\n    iVar15 = (cVar3 == '\0') + 1;\n  }" { (expression_statement "cVar3 = FUN_00136004(param_1);" (assignment_expression "cVar3 = FUN_00136004(param_1)" identifier = (call_expression "FUN_00136004(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "iVar15 = (cVar3 == '\0') + 1;" (assignment_expression "iVar15 = (cVar3 == '\0') + 1" identifier = (binary_expression "(cVar3 == '\0') + 1" (parenthesized_expression "(cVar3 == '\0')" ( (binary_expression "cVar3 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) + number_literal)) ;) }) (else_clause "else {\n    if ((param_3 == 0) || (*(char *)(param_3 + 0x18) == '\0')) {\nLAB_001374b5:\n      local_b8 = param_1;\n      if (param_4 != '\0') {\n        local_b8 = (void *)FUN_00135ae4(param_1);\n      }\n    }\n    else {\n      local_48 = (void *)0x0;\n      pvVar16 = *(void **)(param_3 + 0x10);\n      if (*(void **)(param_3 + 0x10) == (void *)0x0) {\n        pvVar16 = param_1;\n      }\n      cVar3 = FUN_0013e9b4(param_3,pvVar16,&local_48);\n      *(char *)(param_3 + 0x18) = cVar3;\n      if (cVar3 == '\0') goto LAB_001374b5;\n      free(*(void **)(param_3 + 0x10));\n      *(undefined8 *)(param_3 + 0x10) = 0;\n      uVar8 = FUN_001496d9(param_1);\n      *(undefined8 *)(param_3 + 0x10) = uVar8;\n      local_b8 = (void *)FUN_00135ae4(local_48);\n      if (local_48 != local_b8) {\n        free(local_48);\n      }\n    }\n    uVar13 = 0xffffffffffffffff;\n    pcVar11 = (&PTR_s_http____0016e348)[(ulong)uVar4 * 3];\n    do {\n      if (uVar13 == 0) break;\n      uVar13 = uVar13 - 1;\n      cVar3 = *pcVar11;\n      pcVar11 = pcVar11 + (ulong)bVar17 * -2 + 1;\n    } while (cVar3 != '\0');\n    pcVar11 = (char *)((long)local_b8 + (~uVar13 - 1));\n    pcVar5 = strpbrk(pcVar11,"@/?#;");\n    pcVar14 = pcVar11;\n    if ((pcVar5 != (char *)0x0) && (pcVar14 = pcVar5 + 1, *pcVar5 != '@')) {\n      pcVar14 = pcVar11;\n    }\n    pcVar5 = (char *)FUN_00135653(uVar4);\n    if (*pcVar14 == '[') {\n      local_a8 = pcVar14 + 1;\n      local_a0 = strchr(local_a8,0x5d);\n      if (local_a0 == (char *)0x0) {\n        iVar15 = 6;\n      }\n      else {\n        cVar3 = FUN_0011c7c7(local_a8,local_a0);\n        if (cVar3 == '\0') {\n          iVar15 = 8;\n        }\n        else {\n          pcVar6 = local_a0 + 1;\n          pcVar7 = strchr(pcVar5,(int)local_a0[1]);\n          if (pcVar7 != (char *)0x0) goto LAB_00137554;\n          iVar15 = 3;\n        }\n      }\n    }\n    else {\n      pcVar6 = strpbrk(pcVar14,pcVar5);\n      local_a8 = pcVar14;\n      local_a0 = pcVar6;\n      if (pcVar6 == (char *)0x0) {\n        uVar13 = 0xffffffffffffffff;\n        pcVar6 = pcVar14;\n        do {\n          if (uVar13 == 0) break;\n          uVar13 = uVar13 - 1;\n          cVar3 = *pcVar6;\n          pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n        } while (cVar3 != '\0');\n        pcVar6 = pcVar14 + (~uVar13 - 1);\n        local_a0 = pcVar6;\n      }\nLAB_00137554:\n      if (local_a8 == local_a0) {\n        iVar15 = 3;\n      }\n      else {\n        local_74 = *(uint *)(&DAT_0016e350 + (ulong)uVar4 * 0x18);\n        pcVar7 = pcVar6;\n        if (*pcVar6 == ':') {\n          __s = pcVar6 + 1;\n          pcVar7 = strpbrk(__s,pcVar5 + 1);\n          if (pcVar7 == (char *)0x0) {\n            uVar13 = 0xffffffffffffffff;\n            pcVar7 = __s;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar7;\n              pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');\n            pcVar7 = pcVar6 + ~uVar13;\n          }\n          if (__s != pcVar7) {\n            if (__s < pcVar7) {\n              local_74 = (int)pcVar6[1] - 0x30;\n              if (local_74 < 10) {\n                do {\n                  __s = __s + 1;\n                  if (__s == pcVar7) goto LAB_00137584;\n                  if (9 < (int)*__s - 0x30U) {\n                    iVar15 = 4;\n                    goto LAB_00137c65;\n                  }\n                  local_74 = *__s + -0x30 + local_74 * 10;\n                } while ((int)local_74 < 0x10000);\n                iVar15 = 4;\n              }\n              else {\n                iVar15 = 4;\n              }\n              goto LAB_00137c65;\n            }\n            local_74 = 0;\n          }\n        }\nLAB_00137584:\n        local_80 = (char *)0x0;\n        local_88 = (char *)0x0;\n        pcVar6 = pcVar7;\n        if (*pcVar7 == '/') {\n          local_88 = pcVar7 + 1;\n          pcVar6 = strpbrk(local_88,pcVar5 + 2);\n          local_80 = pcVar6;\n          if (pcVar6 == (char *)0x0) {\n            uVar13 = 0xffffffffffffffff;\n            pcVar6 = local_88;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');\n            pcVar6 = pcVar7 + ~uVar13;\n            local_80 = pcVar6;\n          }\n        }\n        local_90 = pcVar5 + 3;\n        uVar2 = (&DAT_0016e354)[(ulong)uVar4 * 6];\n        if ((uVar2 & 2) == 0) {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n        }\n        else {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n          pcVar7 = pcVar6;\n          if (*pcVar6 == ';') {\n            local_70 = pcVar6 + 1;\n            pcVar7 = strpbrk(local_70,local_90);\n            local_60 = pcVar7;\n            if (pcVar7 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar7 = local_70;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar7;\n                pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar7 = pcVar6 + ~uVar13;\n              local_60 = pcVar7;\n            }\n          }\n          local_90 = pcVar5 + 4;\n          pcVar6 = pcVar7;\n        }\n        if ((uVar2 & 4) == 0) {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n        }\n        else {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n          pcVar5 = pcVar6;\n          if (*pcVar6 == '?') {\n            local_b0 = pcVar6 + 1;\n            pcVar5 = strpbrk(local_b0,local_90);\n            local_58 = pcVar5;\n            if (pcVar5 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_b0;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar5 = pcVar6 + ~uVar13;\n              local_58 = pcVar5;\n            }\n          }\n          local_90 = local_90 + 1;\n          pcVar6 = pcVar5;\n        }\n        if ((uVar2 & 8) == 0) {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n        }\n        else {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n          if (*pcVar6 == '#') {\n            local_68 = pcVar6 + 1;\n            local_50 = strpbrk(local_68,local_90);\n            if (local_50 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_68;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              local_50 = pcVar6 + ~uVar13;\n            }\n          }\n        }\n        if (pcVar11 == pcVar14) {\n          pcVar5 = (char *)0x0;\n          uVar8 = 0;\nLAB_001379c6:\n          piVar9 = (int *)FUN_0014967c(1,0x60);\n          piVar9[2] = uVar4;\n          uVar10 = FUN_0013a40c(local_a8,local_a0);\n          *(undefined8 *)(piVar9 + 4) = uVar10;\n          piVar9[6] = local_74;\n          *(undefined8 *)(piVar9 + 0x14) = uVar8;\n          *(char **)(piVar9 + 0x16) = pcVar5;\n          pcVar11 = (char *)FUN_0013a40c(local_88,local_80);\n          *(char **)(piVar9 + 8) = pcVar11;\n          uVar13 = 0xffffffffffffffff;\n          pcVar14 = pcVar11;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar3 = *pcVar14;\n            pcVar14 = pcVar14 + (ulong)bVar17 * -2 + 1;\n          } while (cVar3 != '\0');\n          pcVar14 = pcVar11 + (~uVar13 - 1);\n          pcVar5 = pcVar11;\n          if (pcVar11 < pcVar14) {\n            pcVar7 = pcVar11;\n            pcVar6 = pcVar11;\n            do {\n              cVar3 = *pcVar11;\n              if (cVar3 == '.') {\n                cVar1 = pcVar11[1];\n                if ((cVar1 == '/') || (cVar1 == '\0')) {\n                  pcVar11 = pcVar11 + 2;\n                }\n                else {\n                  if ((cVar1 != '.') || ((pcVar11[2] != '/' && (pcVar11[2] != '\0'))))\n                  goto LAB_00137e1d;\n                  if (pcVar6 < pcVar7) {\n                    pcVar5 = pcVar7 + -1;\n                    if (pcVar6 < pcVar5) {\n                      cVar3 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar3 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar3 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar5 = pcVar7;\n                    if (uVar4 - 2 < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }\n                  pcVar11 = pcVar11 + 3;\n                  pcVar7 = pcVar5;\n                }\n              }\n              else {\nLAB_00137e1d:\n                if (pcVar7 == pcVar11) {\n                  pcVar5 = pcVar7;\n                  if (pcVar14 <= pcVar7) break;\n                  cVar3 = *pcVar7;\n                  while (cVar3 != '/') {\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar14;\n                    if (pcVar14 == pcVar5) goto LAB_00137d7b;\n                    cVar3 = *pcVar5;\n                  }\n                  pcVar11 = pcVar5 + 1;\n                  pcVar7 = pcVar5 + 1;\n                }\n                else {\n                  pcVar5 = pcVar11;\n                  if (pcVar14 <= pcVar11) break;\n                  while (cVar3 != '/') {\n                    pcVar11 = pcVar11 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar3;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar14;\n                    if (pcVar14 == pcVar11) goto LAB_00137d7b;\n                    cVar3 = *pcVar11;\n                  }\n                  *pcVar7 = *pcVar11;\n                  pcVar11 = pcVar11 + 1;\n                  pcVar7 = pcVar7 + 1;\n                }\n              }\n              pcVar5 = pcVar11;\n            } while (pcVar11 < pcVar14);\nLAB_00137d7b:\n            pcVar11 = pcVar7;\n            if (pcVar5 != pcVar7) {\n              *pcVar7 = '\0';\n            }\n          }\n          pcVar14 = *(char **)(piVar9 + 8);\n          pcVar6 = strrchr(pcVar14,0x2f);\n          if (pcVar6 == (char *)0x0) {\n            uVar8 = FUN_001496d9(&DAT_0015ea35);\n            *(undefined8 *)(piVar9 + 0x10) = uVar8;\n            uVar8 = FUN_001496d9(pcVar14);\n            *(undefined8 *)(piVar9 + 0x12) = uVar8;\n          }\n          else {\n            uVar8 = FUN_0013a40c(pcVar14,pcVar6);\n            *(undefined8 *)(piVar9 + 0x10) = uVar8;\n            uVar8 = FUN_001496d9(pcVar6 + 1);\n            *(undefined8 *)(piVar9 + 0x12) = uVar8;\n          }\n          FUN_00135c58(*(undefined8 *)(piVar9 + 0x10));\n          FUN_00135c58(*(undefined8 *)(piVar9 + 0x12));\n          pcVar14 = *(char **)(piVar9 + 4);\n          cVar3 = *pcVar14;\n          if (cVar3 == '\0') {\n            bVar17 = 0;\n          }\n          else {\n            bVar17 = 0;\n            do {\n              if ((int)cVar3 - 0x41U < 0x1a) {\n                *pcVar14 = cVar3 + ' ';\n                bVar17 = 1;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            } while (cVar3 != '\0');\n          }\n          pcVar14 = *(char **)(piVar9 + 4);\n          pcVar6 = strchr(pcVar14,0x25);\n          if (pcVar6 != (char *)0x0) {\n            FUN_00135c58(pcVar14);\n            pcVar14 = *(char **)(piVar9 + 4);\n            cVar3 = *pcVar14;\n            while (cVar3 != '\0') {\n              if ((-1 < cVar3) && ((cVar3 < ' ' || (cVar3 == '\x7f')))) {\n                FUN_0013629a(piVar9);\n                iVar15 = 3;\n                goto LAB_00137c65;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            }\n            bVar17 = param_3 != 0 & DAT_00177606;\n            if (bVar17 == 0) {\n              bVar17 = 1;\n            }\n            else {\n              lVar12 = FUN_0013eaa4(param_3);\n              if (lVar12 != 0) {\n                free(*(void **)(piVar9 + 4));\n                *(long *)(piVar9 + 4) = lVar12;\n              }\n            }\n          }\n          if (local_70 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_70,local_60);\n            *(undefined8 *)(piVar9 + 10) = uVar8;\n          }\n          if (local_b0 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_b0,local_58);\n            *(undefined8 *)(piVar9 + 0xc) = uVar8;\n          }\n          if (local_68 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_68,local_50);\n            *(undefined8 *)(piVar9 + 0xe) = uVar8;\n          }\n          param_2 = piVar9;\n          if ((((DAT_00177606 == 0) && (pcVar5 == pcVar11)) && (*(long *)(piVar9 + 0xe) == 0)) &&\n             ((local_88 != local_80 && (bVar17 == 0)))) {\n            if (local_b8 == param_1) {\n              uVar8 = FUN_001496d9(param_1);\n              *(undefined8 *)piVar9 = uVar8;\n            }\n            else {\n              *(void **)piVar9 = local_b8;\n            }\n          }\n          else {\n            uVar8 = FUN_00137051(piVar9,0);\n            *(undefined8 *)piVar9 = uVar8;\n            if (local_b8 != param_1) {\n              free(local_b8);\n            }\n          }\n          goto LAB_00137c95;\n        }\n        pcVar14 = pcVar14 + -1;\n        if (pcVar14 == pcVar11) {\n          iVar15 = 5;\n        }\n        else {\n          pcVar6 = (char *)memchr(pcVar11,0x3a,(long)pcVar14 - (long)pcVar11);\n          if (pcVar11 != pcVar6) {\n            pcVar5 = pcVar6;\n            if (pcVar6 != (char *)0x0) {\n              pcVar5 = (char *)FUN_0013a40c(pcVar6 + 1,pcVar14);\n              FUN_00135c58(pcVar5);\n              pcVar14 = pcVar6;\n            }\n            uVar8 = FUN_0013a40c(pcVar11,pcVar14);\n            FUN_00135c58(uVar8);\n            goto LAB_001379c6;\n          }\n          iVar15 = 5;\n        }\n      }\n    }\nLAB_00137c65:\n    if ((local_b8 != (void *)0x0) && (local_b8 != param_1)) {\n      free(local_b8);\n    }\n  }" else (compound_statement "{\n    if ((param_3 == 0) || (*(char *)(param_3 + 0x18) == '\0')) {\nLAB_001374b5:\n      local_b8 = param_1;\n      if (param_4 != '\0') {\n        local_b8 = (void *)FUN_00135ae4(param_1);\n      }\n    }\n    else {\n      local_48 = (void *)0x0;\n      pvVar16 = *(void **)(param_3 + 0x10);\n      if (*(void **)(param_3 + 0x10) == (void *)0x0) {\n        pvVar16 = param_1;\n      }\n      cVar3 = FUN_0013e9b4(param_3,pvVar16,&local_48);\n      *(char *)(param_3 + 0x18) = cVar3;\n      if (cVar3 == '\0') goto LAB_001374b5;\n      free(*(void **)(param_3 + 0x10));\n      *(undefined8 *)(param_3 + 0x10) = 0;\n      uVar8 = FUN_001496d9(param_1);\n      *(undefined8 *)(param_3 + 0x10) = uVar8;\n      local_b8 = (void *)FUN_00135ae4(local_48);\n      if (local_48 != local_b8) {\n        free(local_48);\n      }\n    }\n    uVar13 = 0xffffffffffffffff;\n    pcVar11 = (&PTR_s_http____0016e348)[(ulong)uVar4 * 3];\n    do {\n      if (uVar13 == 0) break;\n      uVar13 = uVar13 - 1;\n      cVar3 = *pcVar11;\n      pcVar11 = pcVar11 + (ulong)bVar17 * -2 + 1;\n    } while (cVar3 != '\0');\n    pcVar11 = (char *)((long)local_b8 + (~uVar13 - 1));\n    pcVar5 = strpbrk(pcVar11,"@/?#;");\n    pcVar14 = pcVar11;\n    if ((pcVar5 != (char *)0x0) && (pcVar14 = pcVar5 + 1, *pcVar5 != '@')) {\n      pcVar14 = pcVar11;\n    }\n    pcVar5 = (char *)FUN_00135653(uVar4);\n    if (*pcVar14 == '[') {\n      local_a8 = pcVar14 + 1;\n      local_a0 = strchr(local_a8,0x5d);\n      if (local_a0 == (char *)0x0) {\n        iVar15 = 6;\n      }\n      else {\n        cVar3 = FUN_0011c7c7(local_a8,local_a0);\n        if (cVar3 == '\0') {\n          iVar15 = 8;\n        }\n        else {\n          pcVar6 = local_a0 + 1;\n          pcVar7 = strchr(pcVar5,(int)local_a0[1]);\n          if (pcVar7 != (char *)0x0) goto LAB_00137554;\n          iVar15 = 3;\n        }\n      }\n    }\n    else {\n      pcVar6 = strpbrk(pcVar14,pcVar5);\n      local_a8 = pcVar14;\n      local_a0 = pcVar6;\n      if (pcVar6 == (char *)0x0) {\n        uVar13 = 0xffffffffffffffff;\n        pcVar6 = pcVar14;\n        do {\n          if (uVar13 == 0) break;\n          uVar13 = uVar13 - 1;\n          cVar3 = *pcVar6;\n          pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n        } while (cVar3 != '\0');\n        pcVar6 = pcVar14 + (~uVar13 - 1);\n        local_a0 = pcVar6;\n      }\nLAB_00137554:\n      if (local_a8 == local_a0) {\n        iVar15 = 3;\n      }\n      else {\n        local_74 = *(uint *)(&DAT_0016e350 + (ulong)uVar4 * 0x18);\n        pcVar7 = pcVar6;\n        if (*pcVar6 == ':') {\n          __s = pcVar6 + 1;\n          pcVar7 = strpbrk(__s,pcVar5 + 1);\n          if (pcVar7 == (char *)0x0) {\n            uVar13 = 0xffffffffffffffff;\n            pcVar7 = __s;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar7;\n              pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');\n            pcVar7 = pcVar6 + ~uVar13;\n          }\n          if (__s != pcVar7) {\n            if (__s < pcVar7) {\n              local_74 = (int)pcVar6[1] - 0x30;\n              if (local_74 < 10) {\n                do {\n                  __s = __s + 1;\n                  if (__s == pcVar7) goto LAB_00137584;\n                  if (9 < (int)*__s - 0x30U) {\n                    iVar15 = 4;\n                    goto LAB_00137c65;\n                  }\n                  local_74 = *__s + -0x30 + local_74 * 10;\n                } while ((int)local_74 < 0x10000);\n                iVar15 = 4;\n              }\n              else {\n                iVar15 = 4;\n              }\n              goto LAB_00137c65;\n            }\n            local_74 = 0;\n          }\n        }\nLAB_00137584:\n        local_80 = (char *)0x0;\n        local_88 = (char *)0x0;\n        pcVar6 = pcVar7;\n        if (*pcVar7 == '/') {\n          local_88 = pcVar7 + 1;\n          pcVar6 = strpbrk(local_88,pcVar5 + 2);\n          local_80 = pcVar6;\n          if (pcVar6 == (char *)0x0) {\n            uVar13 = 0xffffffffffffffff;\n            pcVar6 = local_88;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');\n            pcVar6 = pcVar7 + ~uVar13;\n            local_80 = pcVar6;\n          }\n        }\n        local_90 = pcVar5 + 3;\n        uVar2 = (&DAT_0016e354)[(ulong)uVar4 * 6];\n        if ((uVar2 & 2) == 0) {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n        }\n        else {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n          pcVar7 = pcVar6;\n          if (*pcVar6 == ';') {\n            local_70 = pcVar6 + 1;\n            pcVar7 = strpbrk(local_70,local_90);\n            local_60 = pcVar7;\n            if (pcVar7 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar7 = local_70;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar7;\n                pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar7 = pcVar6 + ~uVar13;\n              local_60 = pcVar7;\n            }\n          }\n          local_90 = pcVar5 + 4;\n          pcVar6 = pcVar7;\n        }\n        if ((uVar2 & 4) == 0) {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n        }\n        else {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n          pcVar5 = pcVar6;\n          if (*pcVar6 == '?') {\n            local_b0 = pcVar6 + 1;\n            pcVar5 = strpbrk(local_b0,local_90);\n            local_58 = pcVar5;\n            if (pcVar5 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_b0;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar5 = pcVar6 + ~uVar13;\n              local_58 = pcVar5;\n            }\n          }\n          local_90 = local_90 + 1;\n          pcVar6 = pcVar5;\n        }\n        if ((uVar2 & 8) == 0) {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n        }\n        else {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n          if (*pcVar6 == '#') {\n            local_68 = pcVar6 + 1;\n            local_50 = strpbrk(local_68,local_90);\n            if (local_50 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_68;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              local_50 = pcVar6 + ~uVar13;\n            }\n          }\n        }\n        if (pcVar11 == pcVar14) {\n          pcVar5 = (char *)0x0;\n          uVar8 = 0;\nLAB_001379c6:\n          piVar9 = (int *)FUN_0014967c(1,0x60);\n          piVar9[2] = uVar4;\n          uVar10 = FUN_0013a40c(local_a8,local_a0);\n          *(undefined8 *)(piVar9 + 4) = uVar10;\n          piVar9[6] = local_74;\n          *(undefined8 *)(piVar9 + 0x14) = uVar8;\n          *(char **)(piVar9 + 0x16) = pcVar5;\n          pcVar11 = (char *)FUN_0013a40c(local_88,local_80);\n          *(char **)(piVar9 + 8) = pcVar11;\n          uVar13 = 0xffffffffffffffff;\n          pcVar14 = pcVar11;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar3 = *pcVar14;\n            pcVar14 = pcVar14 + (ulong)bVar17 * -2 + 1;\n          } while (cVar3 != '\0');\n          pcVar14 = pcVar11 + (~uVar13 - 1);\n          pcVar5 = pcVar11;\n          if (pcVar11 < pcVar14) {\n            pcVar7 = pcVar11;\n            pcVar6 = pcVar11;\n            do {\n              cVar3 = *pcVar11;\n              if (cVar3 == '.') {\n                cVar1 = pcVar11[1];\n                if ((cVar1 == '/') || (cVar1 == '\0')) {\n                  pcVar11 = pcVar11 + 2;\n                }\n                else {\n                  if ((cVar1 != '.') || ((pcVar11[2] != '/' && (pcVar11[2] != '\0'))))\n                  goto LAB_00137e1d;\n                  if (pcVar6 < pcVar7) {\n                    pcVar5 = pcVar7 + -1;\n                    if (pcVar6 < pcVar5) {\n                      cVar3 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar3 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar3 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar5 = pcVar7;\n                    if (uVar4 - 2 < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }\n                  pcVar11 = pcVar11 + 3;\n                  pcVar7 = pcVar5;\n                }\n              }\n              else {\nLAB_00137e1d:\n                if (pcVar7 == pcVar11) {\n                  pcVar5 = pcVar7;\n                  if (pcVar14 <= pcVar7) break;\n                  cVar3 = *pcVar7;\n                  while (cVar3 != '/') {\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar14;\n                    if (pcVar14 == pcVar5) goto LAB_00137d7b;\n                    cVar3 = *pcVar5;\n                  }\n                  pcVar11 = pcVar5 + 1;\n                  pcVar7 = pcVar5 + 1;\n                }\n                else {\n                  pcVar5 = pcVar11;\n                  if (pcVar14 <= pcVar11) break;\n                  while (cVar3 != '/') {\n                    pcVar11 = pcVar11 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar3;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar14;\n                    if (pcVar14 == pcVar11) goto LAB_00137d7b;\n                    cVar3 = *pcVar11;\n                  }\n                  *pcVar7 = *pcVar11;\n                  pcVar11 = pcVar11 + 1;\n                  pcVar7 = pcVar7 + 1;\n                }\n              }\n              pcVar5 = pcVar11;\n            } while (pcVar11 < pcVar14);\nLAB_00137d7b:\n            pcVar11 = pcVar7;\n            if (pcVar5 != pcVar7) {\n              *pcVar7 = '\0';\n            }\n          }\n          pcVar14 = *(char **)(piVar9 + 8);\n          pcVar6 = strrchr(pcVar14,0x2f);\n          if (pcVar6 == (char *)0x0) {\n            uVar8 = FUN_001496d9(&DAT_0015ea35);\n            *(undefined8 *)(piVar9 + 0x10) = uVar8;\n            uVar8 = FUN_001496d9(pcVar14);\n            *(undefined8 *)(piVar9 + 0x12) = uVar8;\n          }\n          else {\n            uVar8 = FUN_0013a40c(pcVar14,pcVar6);\n            *(undefined8 *)(piVar9 + 0x10) = uVar8;\n            uVar8 = FUN_001496d9(pcVar6 + 1);\n            *(undefined8 *)(piVar9 + 0x12) = uVar8;\n          }\n          FUN_00135c58(*(undefined8 *)(piVar9 + 0x10));\n          FUN_00135c58(*(undefined8 *)(piVar9 + 0x12));\n          pcVar14 = *(char **)(piVar9 + 4);\n          cVar3 = *pcVar14;\n          if (cVar3 == '\0') {\n            bVar17 = 0;\n          }\n          else {\n            bVar17 = 0;\n            do {\n              if ((int)cVar3 - 0x41U < 0x1a) {\n                *pcVar14 = cVar3 + ' ';\n                bVar17 = 1;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            } while (cVar3 != '\0');\n          }\n          pcVar14 = *(char **)(piVar9 + 4);\n          pcVar6 = strchr(pcVar14,0x25);\n          if (pcVar6 != (char *)0x0) {\n            FUN_00135c58(pcVar14);\n            pcVar14 = *(char **)(piVar9 + 4);\n            cVar3 = *pcVar14;\n            while (cVar3 != '\0') {\n              if ((-1 < cVar3) && ((cVar3 < ' ' || (cVar3 == '\x7f')))) {\n                FUN_0013629a(piVar9);\n                iVar15 = 3;\n                goto LAB_00137c65;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            }\n            bVar17 = param_3 != 0 & DAT_00177606;\n            if (bVar17 == 0) {\n              bVar17 = 1;\n            }\n            else {\n              lVar12 = FUN_0013eaa4(param_3);\n              if (lVar12 != 0) {\n                free(*(void **)(piVar9 + 4));\n                *(long *)(piVar9 + 4) = lVar12;\n              }\n            }\n          }\n          if (local_70 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_70,local_60);\n            *(undefined8 *)(piVar9 + 10) = uVar8;\n          }\n          if (local_b0 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_b0,local_58);\n            *(undefined8 *)(piVar9 + 0xc) = uVar8;\n          }\n          if (local_68 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_68,local_50);\n            *(undefined8 *)(piVar9 + 0xe) = uVar8;\n          }\n          param_2 = piVar9;\n          if ((((DAT_00177606 == 0) && (pcVar5 == pcVar11)) && (*(long *)(piVar9 + 0xe) == 0)) &&\n             ((local_88 != local_80 && (bVar17 == 0)))) {\n            if (local_b8 == param_1) {\n              uVar8 = FUN_001496d9(param_1);\n              *(undefined8 *)piVar9 = uVar8;\n            }\n            else {\n              *(void **)piVar9 = local_b8;\n            }\n          }\n          else {\n            uVar8 = FUN_00137051(piVar9,0);\n            *(undefined8 *)piVar9 = uVar8;\n            if (local_b8 != param_1) {\n              free(local_b8);\n            }\n          }\n          goto LAB_00137c95;\n        }\n        pcVar14 = pcVar14 + -1;\n        if (pcVar14 == pcVar11) {\n          iVar15 = 5;\n        }\n        else {\n          pcVar6 = (char *)memchr(pcVar11,0x3a,(long)pcVar14 - (long)pcVar11);\n          if (pcVar11 != pcVar6) {\n            pcVar5 = pcVar6;\n            if (pcVar6 != (char *)0x0) {\n              pcVar5 = (char *)FUN_0013a40c(pcVar6 + 1,pcVar14);\n              FUN_00135c58(pcVar5);\n              pcVar14 = pcVar6;\n            }\n            uVar8 = FUN_0013a40c(pcVar11,pcVar14);\n            FUN_00135c58(uVar8);\n            goto LAB_001379c6;\n          }\n          iVar15 = 5;\n        }\n      }\n    }\nLAB_00137c65:\n    if ((local_b8 != (void *)0x0) && (local_b8 != param_1)) {\n      free(local_b8);\n    }\n  }" { (if_statement "if ((param_3 == 0) || (*(char *)(param_3 + 0x18) == '\0')) {\nLAB_001374b5:\n      local_b8 = param_1;\n      if (param_4 != '\0') {\n        local_b8 = (void *)FUN_00135ae4(param_1);\n      }\n    }\n    else {\n      local_48 = (void *)0x0;\n      pvVar16 = *(void **)(param_3 + 0x10);\n      if (*(void **)(param_3 + 0x10) == (void *)0x0) {\n        pvVar16 = param_1;\n      }\n      cVar3 = FUN_0013e9b4(param_3,pvVar16,&local_48);\n      *(char *)(param_3 + 0x18) = cVar3;\n      if (cVar3 == '\0') goto LAB_001374b5;\n      free(*(void **)(param_3 + 0x10));\n      *(undefined8 *)(param_3 + 0x10) = 0;\n      uVar8 = FUN_001496d9(param_1);\n      *(undefined8 *)(param_3 + 0x10) = uVar8;\n      local_b8 = (void *)FUN_00135ae4(local_48);\n      if (local_48 != local_b8) {\n        free(local_48);\n      }\n    }" if (parenthesized_expression "((param_3 == 0) || (*(char *)(param_3 + 0x18) == '\0'))" ( (binary_expression "(param_3 == 0) || (*(char *)(param_3 + 0x18) == '\0')" (parenthesized_expression "(param_3 == 0)" ( (binary_expression "param_3 == 0" identifier == number_literal) )) || (parenthesized_expression "(*(char *)(param_3 + 0x18) == '\0')" ( (binary_expression "*(char *)(param_3 + 0x18) == '\0'" (pointer_expression "*(char *)(param_3 + 0x18)" * (cast_expression "(char *)(param_3 + 0x18)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x18)" ( (binary_expression "param_3 + 0x18" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\nLAB_001374b5:\n      local_b8 = param_1;\n      if (param_4 != '\0') {\n        local_b8 = (void *)FUN_00135ae4(param_1);\n      }\n    }" { (labeled_statement "LAB_001374b5:\n      local_b8 = param_1;" statement_identifier : (expression_statement "local_b8 = param_1;" (assignment_expression "local_b8 = param_1" identifier = identifier) ;)) (if_statement "if (param_4 != '\0') {\n        local_b8 = (void *)FUN_00135ae4(param_1);\n      }" if (parenthesized_expression "(param_4 != '\0')" ( (binary_expression "param_4 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        local_b8 = (void *)FUN_00135ae4(param_1);\n      }" { (expression_statement "local_b8 = (void *)FUN_00135ae4(param_1);" (assignment_expression "local_b8 = (void *)FUN_00135ae4(param_1)" identifier = (cast_expression "(void *)FUN_00135ae4(param_1)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00135ae4(param_1)" identifier (argument_list "(param_1)" ( identifier ))))) ;) })) }) (else_clause "else {\n      local_48 = (void *)0x0;\n      pvVar16 = *(void **)(param_3 + 0x10);\n      if (*(void **)(param_3 + 0x10) == (void *)0x0) {\n        pvVar16 = param_1;\n      }\n      cVar3 = FUN_0013e9b4(param_3,pvVar16,&local_48);\n      *(char *)(param_3 + 0x18) = cVar3;\n      if (cVar3 == '\0') goto LAB_001374b5;\n      free(*(void **)(param_3 + 0x10));\n      *(undefined8 *)(param_3 + 0x10) = 0;\n      uVar8 = FUN_001496d9(param_1);\n      *(undefined8 *)(param_3 + 0x10) = uVar8;\n      local_b8 = (void *)FUN_00135ae4(local_48);\n      if (local_48 != local_b8) {\n        free(local_48);\n      }\n    }" else (compound_statement "{\n      local_48 = (void *)0x0;\n      pvVar16 = *(void **)(param_3 + 0x10);\n      if (*(void **)(param_3 + 0x10) == (void *)0x0) {\n        pvVar16 = param_1;\n      }\n      cVar3 = FUN_0013e9b4(param_3,pvVar16,&local_48);\n      *(char *)(param_3 + 0x18) = cVar3;\n      if (cVar3 == '\0') goto LAB_001374b5;\n      free(*(void **)(param_3 + 0x10));\n      *(undefined8 *)(param_3 + 0x10) = 0;\n      uVar8 = FUN_001496d9(param_1);\n      *(undefined8 *)(param_3 + 0x10) = uVar8;\n      local_b8 = (void *)FUN_00135ae4(local_48);\n      if (local_48 != local_b8) {\n        free(local_48);\n      }\n    }" { (expression_statement "local_48 = (void *)0x0;" (assignment_expression "local_48 = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pvVar16 = *(void **)(param_3 + 0x10);" (assignment_expression "pvVar16 = *(void **)(param_3 + 0x10)" identifier = (pointer_expression "*(void **)(param_3 + 0x10)" * (cast_expression "(void **)(param_3 + 0x10)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_3 + 0x10)" ( (binary_expression "param_3 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if (*(void **)(param_3 + 0x10) == (void *)0x0) {\n        pvVar16 = param_1;\n      }" if (parenthesized_expression "(*(void **)(param_3 + 0x10) == (void *)0x0)" ( (binary_expression "*(void **)(param_3 + 0x10) == (void *)0x0" (pointer_expression "*(void **)(param_3 + 0x10)" * (cast_expression "(void **)(param_3 + 0x10)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_3 + 0x10)" ( (binary_expression "param_3 + 0x10" identifier + number_literal) )))) == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pvVar16 = param_1;\n      }" { (expression_statement "pvVar16 = param_1;" (assignment_expression "pvVar16 = param_1" identifier = identifier) ;) })) (expression_statement "cVar3 = FUN_0013e9b4(param_3,pvVar16,&local_48);" (assignment_expression "cVar3 = FUN_0013e9b4(param_3,pvVar16,&local_48)" identifier = (call_expression "FUN_0013e9b4(param_3,pvVar16,&local_48)" identifier (argument_list "(param_3,pvVar16,&local_48)" ( identifier , identifier , (pointer_expression "&local_48" & identifier) )))) ;) (expression_statement "*(char *)(param_3 + 0x18) = cVar3;" (assignment_expression "*(char *)(param_3 + 0x18) = cVar3" (pointer_expression "*(char *)(param_3 + 0x18)" * (cast_expression "(char *)(param_3 + 0x18)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x18)" ( (binary_expression "param_3 + 0x18" identifier + number_literal) )))) = identifier) ;) (if_statement "if (cVar3 == '\0') goto LAB_001374b5;" if (parenthesized_expression "(cVar3 == '\0')" ( (binary_expression "cVar3 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_001374b5;" goto statement_identifier ;)) (expression_statement "free(*(void **)(param_3 + 0x10));" (call_expression "free(*(void **)(param_3 + 0x10))" identifier (argument_list "(*(void **)(param_3 + 0x10))" ( (pointer_expression "*(void **)(param_3 + 0x10)" * (cast_expression "(void **)(param_3 + 0x10)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_3 + 0x10)" ( (binary_expression "param_3 + 0x10" identifier + number_literal) )))) ))) ;) (expression_statement "*(undefined8 *)(param_3 + 0x10) = 0;" (assignment_expression "*(undefined8 *)(param_3 + 0x10) = 0" (pointer_expression "*(undefined8 *)(param_3 + 0x10)" * (cast_expression "(undefined8 *)(param_3 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x10)" ( (binary_expression "param_3 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar8 = FUN_001496d9(param_1);" (assignment_expression "uVar8 = FUN_001496d9(param_1)" identifier = (call_expression "FUN_001496d9(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "*(undefined8 *)(param_3 + 0x10) = uVar8;" (assignment_expression "*(undefined8 *)(param_3 + 0x10) = uVar8" (pointer_expression "*(undefined8 *)(param_3 + 0x10)" * (cast_expression "(undefined8 *)(param_3 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x10)" ( (binary_expression "param_3 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "local_b8 = (void *)FUN_00135ae4(local_48);" (assignment_expression "local_b8 = (void *)FUN_00135ae4(local_48)" identifier = (cast_expression "(void *)FUN_00135ae4(local_48)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00135ae4(local_48)" identifier (argument_list "(local_48)" ( identifier ))))) ;) (if_statement "if (local_48 != local_b8) {\n        free(local_48);\n      }" if (parenthesized_expression "(local_48 != local_b8)" ( (binary_expression "local_48 != local_b8" identifier != identifier) )) (compound_statement "{\n        free(local_48);\n      }" { (expression_statement "free(local_48);" (call_expression "free(local_48)" identifier (argument_list "(local_48)" ( identifier ))) ;) })) }))) (expression_statement "uVar13 = 0xffffffffffffffff;" (assignment_expression "uVar13 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar11 = (&PTR_s_http____0016e348)[(ulong)uVar4 * 3];" (assignment_expression "pcVar11 = (&PTR_s_http____0016e348)[(ulong)uVar4 * 3]" identifier = (subscript_expression "(&PTR_s_http____0016e348)[(ulong)uVar4 * 3]" (parenthesized_expression "(&PTR_s_http____0016e348)" ( (pointer_expression "&PTR_s_http____0016e348" & identifier) )) [ (binary_expression "(ulong)uVar4 * 3" (cast_expression "(ulong)uVar4" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal) ])) ;) (do_statement "do {\n      if (uVar13 == 0) break;\n      uVar13 = uVar13 - 1;\n      cVar3 = *pcVar11;\n      pcVar11 = pcVar11 + (ulong)bVar17 * -2 + 1;\n    } while (cVar3 != '\0');" do (compound_statement "{\n      if (uVar13 == 0) break;\n      uVar13 = uVar13 - 1;\n      cVar3 = *pcVar11;\n      pcVar11 = pcVar11 + (ulong)bVar17 * -2 + 1;\n    }" { (if_statement "if (uVar13 == 0) break;" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar13 = uVar13 - 1;" (assignment_expression "uVar13 = uVar13 - 1" identifier = (binary_expression "uVar13 - 1" identifier - number_literal)) ;) (expression_statement "cVar3 = *pcVar11;" (assignment_expression "cVar3 = *pcVar11" identifier = (pointer_expression "*pcVar11" * identifier)) ;) (expression_statement "pcVar11 = pcVar11 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pcVar11 = pcVar11 + (ulong)bVar17 * -2 + 1" identifier = (binary_expression "pcVar11 + (ulong)bVar17 * -2 + 1" (binary_expression "pcVar11 + (ulong)bVar17 * -2" identifier + (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar3 != '\0')" ( (binary_expression "cVar3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "pcVar11 = (char *)((long)local_b8 + (~uVar13 - 1));" (assignment_expression "pcVar11 = (char *)((long)local_b8 + (~uVar13 - 1))" identifier = (cast_expression "(char *)((long)local_b8 + (~uVar13 - 1))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_b8 + (~uVar13 - 1))" ( (binary_expression "(long)local_b8 + (~uVar13 - 1)" (cast_expression "(long)local_b8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (parenthesized_expression "(~uVar13 - 1)" ( (binary_expression "~uVar13 - 1" (unary_expression "~uVar13" ~ identifier) - number_literal) ))) )))) ;) (expression_statement "pcVar5 = strpbrk(pcVar11,"@/?#;");" (assignment_expression "pcVar5 = strpbrk(pcVar11,"@/?#;")" identifier = (call_expression "strpbrk(pcVar11,"@/?#;")" identifier (argument_list "(pcVar11,"@/?#;")" ( identifier , (string_literal ""@/?#;"" " string_content ") )))) ;) (expression_statement "pcVar14 = pcVar11;" (assignment_expression "pcVar14 = pcVar11" identifier = identifier) ;) (if_statement "if ((pcVar5 != (char *)0x0) && (pcVar14 = pcVar5 + 1, *pcVar5 != '@')) {\n      pcVar14 = pcVar11;\n    }" if (parenthesized_expression "((pcVar5 != (char *)0x0) && (pcVar14 = pcVar5 + 1, *pcVar5 != '@'))" ( (binary_expression "(pcVar5 != (char *)0x0) && (pcVar14 = pcVar5 + 1, *pcVar5 != '@')" (parenthesized_expression "(pcVar5 != (char *)0x0)" ( (binary_expression "pcVar5 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(pcVar14 = pcVar5 + 1, *pcVar5 != '@')" ( (comma_expression "pcVar14 = pcVar5 + 1, *pcVar5 != '@'" (assignment_expression "pcVar14 = pcVar5 + 1" identifier = (binary_expression "pcVar5 + 1" identifier + number_literal)) , (binary_expression "*pcVar5 != '@'" (pointer_expression "*pcVar5" * identifier) != (char_literal "'@'" ' character '))) ))) )) (compound_statement "{\n      pcVar14 = pcVar11;\n    }" { (expression_statement "pcVar14 = pcVar11;" (assignment_expression "pcVar14 = pcVar11" identifier = identifier) ;) })) (expression_statement "pcVar5 = (char *)FUN_00135653(uVar4);" (assignment_expression "pcVar5 = (char *)FUN_00135653(uVar4)" identifier = (cast_expression "(char *)FUN_00135653(uVar4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00135653(uVar4)" identifier (argument_list "(uVar4)" ( identifier ))))) ;) (if_statement "if (*pcVar14 == '[') {\n      local_a8 = pcVar14 + 1;\n      local_a0 = strchr(local_a8,0x5d);\n      if (local_a0 == (char *)0x0) {\n        iVar15 = 6;\n      }\n      else {\n        cVar3 = FUN_0011c7c7(local_a8,local_a0);\n        if (cVar3 == '\0') {\n          iVar15 = 8;\n        }\n        else {\n          pcVar6 = local_a0 + 1;\n          pcVar7 = strchr(pcVar5,(int)local_a0[1]);\n          if (pcVar7 != (char *)0x0) goto LAB_00137554;\n          iVar15 = 3;\n        }\n      }\n    }\n    else {\n      pcVar6 = strpbrk(pcVar14,pcVar5);\n      local_a8 = pcVar14;\n      local_a0 = pcVar6;\n      if (pcVar6 == (char *)0x0) {\n        uVar13 = 0xffffffffffffffff;\n        pcVar6 = pcVar14;\n        do {\n          if (uVar13 == 0) break;\n          uVar13 = uVar13 - 1;\n          cVar3 = *pcVar6;\n          pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n        } while (cVar3 != '\0');\n        pcVar6 = pcVar14 + (~uVar13 - 1);\n        local_a0 = pcVar6;\n      }\nLAB_00137554:\n      if (local_a8 == local_a0) {\n        iVar15 = 3;\n      }\n      else {\n        local_74 = *(uint *)(&DAT_0016e350 + (ulong)uVar4 * 0x18);\n        pcVar7 = pcVar6;\n        if (*pcVar6 == ':') {\n          __s = pcVar6 + 1;\n          pcVar7 = strpbrk(__s,pcVar5 + 1);\n          if (pcVar7 == (char *)0x0) {\n            uVar13 = 0xffffffffffffffff;\n            pcVar7 = __s;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar7;\n              pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');\n            pcVar7 = pcVar6 + ~uVar13;\n          }\n          if (__s != pcVar7) {\n            if (__s < pcVar7) {\n              local_74 = (int)pcVar6[1] - 0x30;\n              if (local_74 < 10) {\n                do {\n                  __s = __s + 1;\n                  if (__s == pcVar7) goto LAB_00137584;\n                  if (9 < (int)*__s - 0x30U) {\n                    iVar15 = 4;\n                    goto LAB_00137c65;\n                  }\n                  local_74 = *__s + -0x30 + local_74 * 10;\n                } while ((int)local_74 < 0x10000);\n                iVar15 = 4;\n              }\n              else {\n                iVar15 = 4;\n              }\n              goto LAB_00137c65;\n            }\n            local_74 = 0;\n          }\n        }\nLAB_00137584:\n        local_80 = (char *)0x0;\n        local_88 = (char *)0x0;\n        pcVar6 = pcVar7;\n        if (*pcVar7 == '/') {\n          local_88 = pcVar7 + 1;\n          pcVar6 = strpbrk(local_88,pcVar5 + 2);\n          local_80 = pcVar6;\n          if (pcVar6 == (char *)0x0) {\n            uVar13 = 0xffffffffffffffff;\n            pcVar6 = local_88;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');\n            pcVar6 = pcVar7 + ~uVar13;\n            local_80 = pcVar6;\n          }\n        }\n        local_90 = pcVar5 + 3;\n        uVar2 = (&DAT_0016e354)[(ulong)uVar4 * 6];\n        if ((uVar2 & 2) == 0) {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n        }\n        else {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n          pcVar7 = pcVar6;\n          if (*pcVar6 == ';') {\n            local_70 = pcVar6 + 1;\n            pcVar7 = strpbrk(local_70,local_90);\n            local_60 = pcVar7;\n            if (pcVar7 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar7 = local_70;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar7;\n                pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar7 = pcVar6 + ~uVar13;\n              local_60 = pcVar7;\n            }\n          }\n          local_90 = pcVar5 + 4;\n          pcVar6 = pcVar7;\n        }\n        if ((uVar2 & 4) == 0) {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n        }\n        else {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n          pcVar5 = pcVar6;\n          if (*pcVar6 == '?') {\n            local_b0 = pcVar6 + 1;\n            pcVar5 = strpbrk(local_b0,local_90);\n            local_58 = pcVar5;\n            if (pcVar5 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_b0;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar5 = pcVar6 + ~uVar13;\n              local_58 = pcVar5;\n            }\n          }\n          local_90 = local_90 + 1;\n          pcVar6 = pcVar5;\n        }\n        if ((uVar2 & 8) == 0) {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n        }\n        else {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n          if (*pcVar6 == '#') {\n            local_68 = pcVar6 + 1;\n            local_50 = strpbrk(local_68,local_90);\n            if (local_50 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_68;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              local_50 = pcVar6 + ~uVar13;\n            }\n          }\n        }\n        if (pcVar11 == pcVar14) {\n          pcVar5 = (char *)0x0;\n          uVar8 = 0;\nLAB_001379c6:\n          piVar9 = (int *)FUN_0014967c(1,0x60);\n          piVar9[2] = uVar4;\n          uVar10 = FUN_0013a40c(local_a8,local_a0);\n          *(undefined8 *)(piVar9 + 4) = uVar10;\n          piVar9[6] = local_74;\n          *(undefined8 *)(piVar9 + 0x14) = uVar8;\n          *(char **)(piVar9 + 0x16) = pcVar5;\n          pcVar11 = (char *)FUN_0013a40c(local_88,local_80);\n          *(char **)(piVar9 + 8) = pcVar11;\n          uVar13 = 0xffffffffffffffff;\n          pcVar14 = pcVar11;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar3 = *pcVar14;\n            pcVar14 = pcVar14 + (ulong)bVar17 * -2 + 1;\n          } while (cVar3 != '\0');\n          pcVar14 = pcVar11 + (~uVar13 - 1);\n          pcVar5 = pcVar11;\n          if (pcVar11 < pcVar14) {\n            pcVar7 = pcVar11;\n            pcVar6 = pcVar11;\n            do {\n              cVar3 = *pcVar11;\n              if (cVar3 == '.') {\n                cVar1 = pcVar11[1];\n                if ((cVar1 == '/') || (cVar1 == '\0')) {\n                  pcVar11 = pcVar11 + 2;\n                }\n                else {\n                  if ((cVar1 != '.') || ((pcVar11[2] != '/' && (pcVar11[2] != '\0'))))\n                  goto LAB_00137e1d;\n                  if (pcVar6 < pcVar7) {\n                    pcVar5 = pcVar7 + -1;\n                    if (pcVar6 < pcVar5) {\n                      cVar3 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar3 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar3 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar5 = pcVar7;\n                    if (uVar4 - 2 < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }\n                  pcVar11 = pcVar11 + 3;\n                  pcVar7 = pcVar5;\n                }\n              }\n              else {\nLAB_00137e1d:\n                if (pcVar7 == pcVar11) {\n                  pcVar5 = pcVar7;\n                  if (pcVar14 <= pcVar7) break;\n                  cVar3 = *pcVar7;\n                  while (cVar3 != '/') {\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar14;\n                    if (pcVar14 == pcVar5) goto LAB_00137d7b;\n                    cVar3 = *pcVar5;\n                  }\n                  pcVar11 = pcVar5 + 1;\n                  pcVar7 = pcVar5 + 1;\n                }\n                else {\n                  pcVar5 = pcVar11;\n                  if (pcVar14 <= pcVar11) break;\n                  while (cVar3 != '/') {\n                    pcVar11 = pcVar11 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar3;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar14;\n                    if (pcVar14 == pcVar11) goto LAB_00137d7b;\n                    cVar3 = *pcVar11;\n                  }\n                  *pcVar7 = *pcVar11;\n                  pcVar11 = pcVar11 + 1;\n                  pcVar7 = pcVar7 + 1;\n                }\n              }\n              pcVar5 = pcVar11;\n            } while (pcVar11 < pcVar14);\nLAB_00137d7b:\n            pcVar11 = pcVar7;\n            if (pcVar5 != pcVar7) {\n              *pcVar7 = '\0';\n            }\n          }\n          pcVar14 = *(char **)(piVar9 + 8);\n          pcVar6 = strrchr(pcVar14,0x2f);\n          if (pcVar6 == (char *)0x0) {\n            uVar8 = FUN_001496d9(&DAT_0015ea35);\n            *(undefined8 *)(piVar9 + 0x10) = uVar8;\n            uVar8 = FUN_001496d9(pcVar14);\n            *(undefined8 *)(piVar9 + 0x12) = uVar8;\n          }\n          else {\n            uVar8 = FUN_0013a40c(pcVar14,pcVar6);\n            *(undefined8 *)(piVar9 + 0x10) = uVar8;\n            uVar8 = FUN_001496d9(pcVar6 + 1);\n            *(undefined8 *)(piVar9 + 0x12) = uVar8;\n          }\n          FUN_00135c58(*(undefined8 *)(piVar9 + 0x10));\n          FUN_00135c58(*(undefined8 *)(piVar9 + 0x12));\n          pcVar14 = *(char **)(piVar9 + 4);\n          cVar3 = *pcVar14;\n          if (cVar3 == '\0') {\n            bVar17 = 0;\n          }\n          else {\n            bVar17 = 0;\n            do {\n              if ((int)cVar3 - 0x41U < 0x1a) {\n                *pcVar14 = cVar3 + ' ';\n                bVar17 = 1;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            } while (cVar3 != '\0');\n          }\n          pcVar14 = *(char **)(piVar9 + 4);\n          pcVar6 = strchr(pcVar14,0x25);\n          if (pcVar6 != (char *)0x0) {\n            FUN_00135c58(pcVar14);\n            pcVar14 = *(char **)(piVar9 + 4);\n            cVar3 = *pcVar14;\n            while (cVar3 != '\0') {\n              if ((-1 < cVar3) && ((cVar3 < ' ' || (cVar3 == '\x7f')))) {\n                FUN_0013629a(piVar9);\n                iVar15 = 3;\n                goto LAB_00137c65;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            }\n            bVar17 = param_3 != 0 & DAT_00177606;\n            if (bVar17 == 0) {\n              bVar17 = 1;\n            }\n            else {\n              lVar12 = FUN_0013eaa4(param_3);\n              if (lVar12 != 0) {\n                free(*(void **)(piVar9 + 4));\n                *(long *)(piVar9 + 4) = lVar12;\n              }\n            }\n          }\n          if (local_70 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_70,local_60);\n            *(undefined8 *)(piVar9 + 10) = uVar8;\n          }\n          if (local_b0 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_b0,local_58);\n            *(undefined8 *)(piVar9 + 0xc) = uVar8;\n          }\n          if (local_68 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_68,local_50);\n            *(undefined8 *)(piVar9 + 0xe) = uVar8;\n          }\n          param_2 = piVar9;\n          if ((((DAT_00177606 == 0) && (pcVar5 == pcVar11)) && (*(long *)(piVar9 + 0xe) == 0)) &&\n             ((local_88 != local_80 && (bVar17 == 0)))) {\n            if (local_b8 == param_1) {\n              uVar8 = FUN_001496d9(param_1);\n              *(undefined8 *)piVar9 = uVar8;\n            }\n            else {\n              *(void **)piVar9 = local_b8;\n            }\n          }\n          else {\n            uVar8 = FUN_00137051(piVar9,0);\n            *(undefined8 *)piVar9 = uVar8;\n            if (local_b8 != param_1) {\n              free(local_b8);\n            }\n          }\n          goto LAB_00137c95;\n        }\n        pcVar14 = pcVar14 + -1;\n        if (pcVar14 == pcVar11) {\n          iVar15 = 5;\n        }\n        else {\n          pcVar6 = (char *)memchr(pcVar11,0x3a,(long)pcVar14 - (long)pcVar11);\n          if (pcVar11 != pcVar6) {\n            pcVar5 = pcVar6;\n            if (pcVar6 != (char *)0x0) {\n              pcVar5 = (char *)FUN_0013a40c(pcVar6 + 1,pcVar14);\n              FUN_00135c58(pcVar5);\n              pcVar14 = pcVar6;\n            }\n            uVar8 = FUN_0013a40c(pcVar11,pcVar14);\n            FUN_00135c58(uVar8);\n            goto LAB_001379c6;\n          }\n          iVar15 = 5;\n        }\n      }\n    }" if (parenthesized_expression "(*pcVar14 == '[')" ( (binary_expression "*pcVar14 == '['" (pointer_expression "*pcVar14" * identifier) == (char_literal "'['" ' character ')) )) (compound_statement "{\n      local_a8 = pcVar14 + 1;\n      local_a0 = strchr(local_a8,0x5d);\n      if (local_a0 == (char *)0x0) {\n        iVar15 = 6;\n      }\n      else {\n        cVar3 = FUN_0011c7c7(local_a8,local_a0);\n        if (cVar3 == '\0') {\n          iVar15 = 8;\n        }\n        else {\n          pcVar6 = local_a0 + 1;\n          pcVar7 = strchr(pcVar5,(int)local_a0[1]);\n          if (pcVar7 != (char *)0x0) goto LAB_00137554;\n          iVar15 = 3;\n        }\n      }\n    }" { (expression_statement "local_a8 = pcVar14 + 1;" (assignment_expression "local_a8 = pcVar14 + 1" identifier = (binary_expression "pcVar14 + 1" identifier + number_literal)) ;) (expression_statement "local_a0 = strchr(local_a8,0x5d);" (assignment_expression "local_a0 = strchr(local_a8,0x5d)" identifier = (call_expression "strchr(local_a8,0x5d)" identifier (argument_list "(local_a8,0x5d)" ( identifier , number_literal )))) ;) (if_statement "if (local_a0 == (char *)0x0) {\n        iVar15 = 6;\n      }\n      else {\n        cVar3 = FUN_0011c7c7(local_a8,local_a0);\n        if (cVar3 == '\0') {\n          iVar15 = 8;\n        }\n        else {\n          pcVar6 = local_a0 + 1;\n          pcVar7 = strchr(pcVar5,(int)local_a0[1]);\n          if (pcVar7 != (char *)0x0) goto LAB_00137554;\n          iVar15 = 3;\n        }\n      }" if (parenthesized_expression "(local_a0 == (char *)0x0)" ( (binary_expression "local_a0 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        iVar15 = 6;\n      }" { (expression_statement "iVar15 = 6;" (assignment_expression "iVar15 = 6" identifier = number_literal) ;) }) (else_clause "else {\n        cVar3 = FUN_0011c7c7(local_a8,local_a0);\n        if (cVar3 == '\0') {\n          iVar15 = 8;\n        }\n        else {\n          pcVar6 = local_a0 + 1;\n          pcVar7 = strchr(pcVar5,(int)local_a0[1]);\n          if (pcVar7 != (char *)0x0) goto LAB_00137554;\n          iVar15 = 3;\n        }\n      }" else (compound_statement "{\n        cVar3 = FUN_0011c7c7(local_a8,local_a0);\n        if (cVar3 == '\0') {\n          iVar15 = 8;\n        }\n        else {\n          pcVar6 = local_a0 + 1;\n          pcVar7 = strchr(pcVar5,(int)local_a0[1]);\n          if (pcVar7 != (char *)0x0) goto LAB_00137554;\n          iVar15 = 3;\n        }\n      }" { (expression_statement "cVar3 = FUN_0011c7c7(local_a8,local_a0);" (assignment_expression "cVar3 = FUN_0011c7c7(local_a8,local_a0)" identifier = (call_expression "FUN_0011c7c7(local_a8,local_a0)" identifier (argument_list "(local_a8,local_a0)" ( identifier , identifier )))) ;) (if_statement "if (cVar3 == '\0') {\n          iVar15 = 8;\n        }\n        else {\n          pcVar6 = local_a0 + 1;\n          pcVar7 = strchr(pcVar5,(int)local_a0[1]);\n          if (pcVar7 != (char *)0x0) goto LAB_00137554;\n          iVar15 = 3;\n        }" if (parenthesized_expression "(cVar3 == '\0')" ( (binary_expression "cVar3 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          iVar15 = 8;\n        }" { (expression_statement "iVar15 = 8;" (assignment_expression "iVar15 = 8" identifier = number_literal) ;) }) (else_clause "else {\n          pcVar6 = local_a0 + 1;\n          pcVar7 = strchr(pcVar5,(int)local_a0[1]);\n          if (pcVar7 != (char *)0x0) goto LAB_00137554;\n          iVar15 = 3;\n        }" else (compound_statement "{\n          pcVar6 = local_a0 + 1;\n          pcVar7 = strchr(pcVar5,(int)local_a0[1]);\n          if (pcVar7 != (char *)0x0) goto LAB_00137554;\n          iVar15 = 3;\n        }" { (expression_statement "pcVar6 = local_a0 + 1;" (assignment_expression "pcVar6 = local_a0 + 1" identifier = (binary_expression "local_a0 + 1" identifier + number_literal)) ;) (expression_statement "pcVar7 = strchr(pcVar5,(int)local_a0[1]);" (assignment_expression "pcVar7 = strchr(pcVar5,(int)local_a0[1])" identifier = (call_expression "strchr(pcVar5,(int)local_a0[1])" identifier (argument_list "(pcVar5,(int)local_a0[1])" ( identifier , (cast_expression "(int)local_a0[1]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "local_a0[1]" identifier [ number_literal ])) )))) ;) (if_statement "if (pcVar7 != (char *)0x0) goto LAB_00137554;" if (parenthesized_expression "(pcVar7 != (char *)0x0)" ( (binary_expression "pcVar7 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00137554;" goto statement_identifier ;)) (expression_statement "iVar15 = 3;" (assignment_expression "iVar15 = 3" identifier = number_literal) ;) }))) }))) }) (else_clause "else {\n      pcVar6 = strpbrk(pcVar14,pcVar5);\n      local_a8 = pcVar14;\n      local_a0 = pcVar6;\n      if (pcVar6 == (char *)0x0) {\n        uVar13 = 0xffffffffffffffff;\n        pcVar6 = pcVar14;\n        do {\n          if (uVar13 == 0) break;\n          uVar13 = uVar13 - 1;\n          cVar3 = *pcVar6;\n          pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n        } while (cVar3 != '\0');\n        pcVar6 = pcVar14 + (~uVar13 - 1);\n        local_a0 = pcVar6;\n      }\nLAB_00137554:\n      if (local_a8 == local_a0) {\n        iVar15 = 3;\n      }\n      else {\n        local_74 = *(uint *)(&DAT_0016e350 + (ulong)uVar4 * 0x18);\n        pcVar7 = pcVar6;\n        if (*pcVar6 == ':') {\n          __s = pcVar6 + 1;\n          pcVar7 = strpbrk(__s,pcVar5 + 1);\n          if (pcVar7 == (char *)0x0) {\n            uVar13 = 0xffffffffffffffff;\n            pcVar7 = __s;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar7;\n              pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');\n            pcVar7 = pcVar6 + ~uVar13;\n          }\n          if (__s != pcVar7) {\n            if (__s < pcVar7) {\n              local_74 = (int)pcVar6[1] - 0x30;\n              if (local_74 < 10) {\n                do {\n                  __s = __s + 1;\n                  if (__s == pcVar7) goto LAB_00137584;\n                  if (9 < (int)*__s - 0x30U) {\n                    iVar15 = 4;\n                    goto LAB_00137c65;\n                  }\n                  local_74 = *__s + -0x30 + local_74 * 10;\n                } while ((int)local_74 < 0x10000);\n                iVar15 = 4;\n              }\n              else {\n                iVar15 = 4;\n              }\n              goto LAB_00137c65;\n            }\n            local_74 = 0;\n          }\n        }\nLAB_00137584:\n        local_80 = (char *)0x0;\n        local_88 = (char *)0x0;\n        pcVar6 = pcVar7;\n        if (*pcVar7 == '/') {\n          local_88 = pcVar7 + 1;\n          pcVar6 = strpbrk(local_88,pcVar5 + 2);\n          local_80 = pcVar6;\n          if (pcVar6 == (char *)0x0) {\n            uVar13 = 0xffffffffffffffff;\n            pcVar6 = local_88;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');\n            pcVar6 = pcVar7 + ~uVar13;\n            local_80 = pcVar6;\n          }\n        }\n        local_90 = pcVar5 + 3;\n        uVar2 = (&DAT_0016e354)[(ulong)uVar4 * 6];\n        if ((uVar2 & 2) == 0) {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n        }\n        else {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n          pcVar7 = pcVar6;\n          if (*pcVar6 == ';') {\n            local_70 = pcVar6 + 1;\n            pcVar7 = strpbrk(local_70,local_90);\n            local_60 = pcVar7;\n            if (pcVar7 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar7 = local_70;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar7;\n                pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar7 = pcVar6 + ~uVar13;\n              local_60 = pcVar7;\n            }\n          }\n          local_90 = pcVar5 + 4;\n          pcVar6 = pcVar7;\n        }\n        if ((uVar2 & 4) == 0) {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n        }\n        else {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n          pcVar5 = pcVar6;\n          if (*pcVar6 == '?') {\n            local_b0 = pcVar6 + 1;\n            pcVar5 = strpbrk(local_b0,local_90);\n            local_58 = pcVar5;\n            if (pcVar5 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_b0;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar5 = pcVar6 + ~uVar13;\n              local_58 = pcVar5;\n            }\n          }\n          local_90 = local_90 + 1;\n          pcVar6 = pcVar5;\n        }\n        if ((uVar2 & 8) == 0) {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n        }\n        else {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n          if (*pcVar6 == '#') {\n            local_68 = pcVar6 + 1;\n            local_50 = strpbrk(local_68,local_90);\n            if (local_50 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_68;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              local_50 = pcVar6 + ~uVar13;\n            }\n          }\n        }\n        if (pcVar11 == pcVar14) {\n          pcVar5 = (char *)0x0;\n          uVar8 = 0;\nLAB_001379c6:\n          piVar9 = (int *)FUN_0014967c(1,0x60);\n          piVar9[2] = uVar4;\n          uVar10 = FUN_0013a40c(local_a8,local_a0);\n          *(undefined8 *)(piVar9 + 4) = uVar10;\n          piVar9[6] = local_74;\n          *(undefined8 *)(piVar9 + 0x14) = uVar8;\n          *(char **)(piVar9 + 0x16) = pcVar5;\n          pcVar11 = (char *)FUN_0013a40c(local_88,local_80);\n          *(char **)(piVar9 + 8) = pcVar11;\n          uVar13 = 0xffffffffffffffff;\n          pcVar14 = pcVar11;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar3 = *pcVar14;\n            pcVar14 = pcVar14 + (ulong)bVar17 * -2 + 1;\n          } while (cVar3 != '\0');\n          pcVar14 = pcVar11 + (~uVar13 - 1);\n          pcVar5 = pcVar11;\n          if (pcVar11 < pcVar14) {\n            pcVar7 = pcVar11;\n            pcVar6 = pcVar11;\n            do {\n              cVar3 = *pcVar11;\n              if (cVar3 == '.') {\n                cVar1 = pcVar11[1];\n                if ((cVar1 == '/') || (cVar1 == '\0')) {\n                  pcVar11 = pcVar11 + 2;\n                }\n                else {\n                  if ((cVar1 != '.') || ((pcVar11[2] != '/' && (pcVar11[2] != '\0'))))\n                  goto LAB_00137e1d;\n                  if (pcVar6 < pcVar7) {\n                    pcVar5 = pcVar7 + -1;\n                    if (pcVar6 < pcVar5) {\n                      cVar3 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar3 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar3 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar5 = pcVar7;\n                    if (uVar4 - 2 < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }\n                  pcVar11 = pcVar11 + 3;\n                  pcVar7 = pcVar5;\n                }\n              }\n              else {\nLAB_00137e1d:\n                if (pcVar7 == pcVar11) {\n                  pcVar5 = pcVar7;\n                  if (pcVar14 <= pcVar7) break;\n                  cVar3 = *pcVar7;\n                  while (cVar3 != '/') {\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar14;\n                    if (pcVar14 == pcVar5) goto LAB_00137d7b;\n                    cVar3 = *pcVar5;\n                  }\n                  pcVar11 = pcVar5 + 1;\n                  pcVar7 = pcVar5 + 1;\n                }\n                else {\n                  pcVar5 = pcVar11;\n                  if (pcVar14 <= pcVar11) break;\n                  while (cVar3 != '/') {\n                    pcVar11 = pcVar11 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar3;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar14;\n                    if (pcVar14 == pcVar11) goto LAB_00137d7b;\n                    cVar3 = *pcVar11;\n                  }\n                  *pcVar7 = *pcVar11;\n                  pcVar11 = pcVar11 + 1;\n                  pcVar7 = pcVar7 + 1;\n                }\n              }\n              pcVar5 = pcVar11;\n            } while (pcVar11 < pcVar14);\nLAB_00137d7b:\n            pcVar11 = pcVar7;\n            if (pcVar5 != pcVar7) {\n              *pcVar7 = '\0';\n            }\n          }\n          pcVar14 = *(char **)(piVar9 + 8);\n          pcVar6 = strrchr(pcVar14,0x2f);\n          if (pcVar6 == (char *)0x0) {\n            uVar8 = FUN_001496d9(&DAT_0015ea35);\n            *(undefined8 *)(piVar9 + 0x10) = uVar8;\n            uVar8 = FUN_001496d9(pcVar14);\n            *(undefined8 *)(piVar9 + 0x12) = uVar8;\n          }\n          else {\n            uVar8 = FUN_0013a40c(pcVar14,pcVar6);\n            *(undefined8 *)(piVar9 + 0x10) = uVar8;\n            uVar8 = FUN_001496d9(pcVar6 + 1);\n            *(undefined8 *)(piVar9 + 0x12) = uVar8;\n          }\n          FUN_00135c58(*(undefined8 *)(piVar9 + 0x10));\n          FUN_00135c58(*(undefined8 *)(piVar9 + 0x12));\n          pcVar14 = *(char **)(piVar9 + 4);\n          cVar3 = *pcVar14;\n          if (cVar3 == '\0') {\n            bVar17 = 0;\n          }\n          else {\n            bVar17 = 0;\n            do {\n              if ((int)cVar3 - 0x41U < 0x1a) {\n                *pcVar14 = cVar3 + ' ';\n                bVar17 = 1;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            } while (cVar3 != '\0');\n          }\n          pcVar14 = *(char **)(piVar9 + 4);\n          pcVar6 = strchr(pcVar14,0x25);\n          if (pcVar6 != (char *)0x0) {\n            FUN_00135c58(pcVar14);\n            pcVar14 = *(char **)(piVar9 + 4);\n            cVar3 = *pcVar14;\n            while (cVar3 != '\0') {\n              if ((-1 < cVar3) && ((cVar3 < ' ' || (cVar3 == '\x7f')))) {\n                FUN_0013629a(piVar9);\n                iVar15 = 3;\n                goto LAB_00137c65;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            }\n            bVar17 = param_3 != 0 & DAT_00177606;\n            if (bVar17 == 0) {\n              bVar17 = 1;\n            }\n            else {\n              lVar12 = FUN_0013eaa4(param_3);\n              if (lVar12 != 0) {\n                free(*(void **)(piVar9 + 4));\n                *(long *)(piVar9 + 4) = lVar12;\n              }\n            }\n          }\n          if (local_70 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_70,local_60);\n            *(undefined8 *)(piVar9 + 10) = uVar8;\n          }\n          if (local_b0 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_b0,local_58);\n            *(undefined8 *)(piVar9 + 0xc) = uVar8;\n          }\n          if (local_68 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_68,local_50);\n            *(undefined8 *)(piVar9 + 0xe) = uVar8;\n          }\n          param_2 = piVar9;\n          if ((((DAT_00177606 == 0) && (pcVar5 == pcVar11)) && (*(long *)(piVar9 + 0xe) == 0)) &&\n             ((local_88 != local_80 && (bVar17 == 0)))) {\n            if (local_b8 == param_1) {\n              uVar8 = FUN_001496d9(param_1);\n              *(undefined8 *)piVar9 = uVar8;\n            }\n            else {\n              *(void **)piVar9 = local_b8;\n            }\n          }\n          else {\n            uVar8 = FUN_00137051(piVar9,0);\n            *(undefined8 *)piVar9 = uVar8;\n            if (local_b8 != param_1) {\n              free(local_b8);\n            }\n          }\n          goto LAB_00137c95;\n        }\n        pcVar14 = pcVar14 + -1;\n        if (pcVar14 == pcVar11) {\n          iVar15 = 5;\n        }\n        else {\n          pcVar6 = (char *)memchr(pcVar11,0x3a,(long)pcVar14 - (long)pcVar11);\n          if (pcVar11 != pcVar6) {\n            pcVar5 = pcVar6;\n            if (pcVar6 != (char *)0x0) {\n              pcVar5 = (char *)FUN_0013a40c(pcVar6 + 1,pcVar14);\n              FUN_00135c58(pcVar5);\n              pcVar14 = pcVar6;\n            }\n            uVar8 = FUN_0013a40c(pcVar11,pcVar14);\n            FUN_00135c58(uVar8);\n            goto LAB_001379c6;\n          }\n          iVar15 = 5;\n        }\n      }\n    }" else (compound_statement "{\n      pcVar6 = strpbrk(pcVar14,pcVar5);\n      local_a8 = pcVar14;\n      local_a0 = pcVar6;\n      if (pcVar6 == (char *)0x0) {\n        uVar13 = 0xffffffffffffffff;\n        pcVar6 = pcVar14;\n        do {\n          if (uVar13 == 0) break;\n          uVar13 = uVar13 - 1;\n          cVar3 = *pcVar6;\n          pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n        } while (cVar3 != '\0');\n        pcVar6 = pcVar14 + (~uVar13 - 1);\n        local_a0 = pcVar6;\n      }\nLAB_00137554:\n      if (local_a8 == local_a0) {\n        iVar15 = 3;\n      }\n      else {\n        local_74 = *(uint *)(&DAT_0016e350 + (ulong)uVar4 * 0x18);\n        pcVar7 = pcVar6;\n        if (*pcVar6 == ':') {\n          __s = pcVar6 + 1;\n          pcVar7 = strpbrk(__s,pcVar5 + 1);\n          if (pcVar7 == (char *)0x0) {\n            uVar13 = 0xffffffffffffffff;\n            pcVar7 = __s;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar7;\n              pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');\n            pcVar7 = pcVar6 + ~uVar13;\n          }\n          if (__s != pcVar7) {\n            if (__s < pcVar7) {\n              local_74 = (int)pcVar6[1] - 0x30;\n              if (local_74 < 10) {\n                do {\n                  __s = __s + 1;\n                  if (__s == pcVar7) goto LAB_00137584;\n                  if (9 < (int)*__s - 0x30U) {\n                    iVar15 = 4;\n                    goto LAB_00137c65;\n                  }\n                  local_74 = *__s + -0x30 + local_74 * 10;\n                } while ((int)local_74 < 0x10000);\n                iVar15 = 4;\n              }\n              else {\n                iVar15 = 4;\n              }\n              goto LAB_00137c65;\n            }\n            local_74 = 0;\n          }\n        }\nLAB_00137584:\n        local_80 = (char *)0x0;\n        local_88 = (char *)0x0;\n        pcVar6 = pcVar7;\n        if (*pcVar7 == '/') {\n          local_88 = pcVar7 + 1;\n          pcVar6 = strpbrk(local_88,pcVar5 + 2);\n          local_80 = pcVar6;\n          if (pcVar6 == (char *)0x0) {\n            uVar13 = 0xffffffffffffffff;\n            pcVar6 = local_88;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');\n            pcVar6 = pcVar7 + ~uVar13;\n            local_80 = pcVar6;\n          }\n        }\n        local_90 = pcVar5 + 3;\n        uVar2 = (&DAT_0016e354)[(ulong)uVar4 * 6];\n        if ((uVar2 & 2) == 0) {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n        }\n        else {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n          pcVar7 = pcVar6;\n          if (*pcVar6 == ';') {\n            local_70 = pcVar6 + 1;\n            pcVar7 = strpbrk(local_70,local_90);\n            local_60 = pcVar7;\n            if (pcVar7 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar7 = local_70;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar7;\n                pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar7 = pcVar6 + ~uVar13;\n              local_60 = pcVar7;\n            }\n          }\n          local_90 = pcVar5 + 4;\n          pcVar6 = pcVar7;\n        }\n        if ((uVar2 & 4) == 0) {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n        }\n        else {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n          pcVar5 = pcVar6;\n          if (*pcVar6 == '?') {\n            local_b0 = pcVar6 + 1;\n            pcVar5 = strpbrk(local_b0,local_90);\n            local_58 = pcVar5;\n            if (pcVar5 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_b0;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar5 = pcVar6 + ~uVar13;\n              local_58 = pcVar5;\n            }\n          }\n          local_90 = local_90 + 1;\n          pcVar6 = pcVar5;\n        }\n        if ((uVar2 & 8) == 0) {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n        }\n        else {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n          if (*pcVar6 == '#') {\n            local_68 = pcVar6 + 1;\n            local_50 = strpbrk(local_68,local_90);\n            if (local_50 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_68;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              local_50 = pcVar6 + ~uVar13;\n            }\n          }\n        }\n        if (pcVar11 == pcVar14) {\n          pcVar5 = (char *)0x0;\n          uVar8 = 0;\nLAB_001379c6:\n          piVar9 = (int *)FUN_0014967c(1,0x60);\n          piVar9[2] = uVar4;\n          uVar10 = FUN_0013a40c(local_a8,local_a0);\n          *(undefined8 *)(piVar9 + 4) = uVar10;\n          piVar9[6] = local_74;\n          *(undefined8 *)(piVar9 + 0x14) = uVar8;\n          *(char **)(piVar9 + 0x16) = pcVar5;\n          pcVar11 = (char *)FUN_0013a40c(local_88,local_80);\n          *(char **)(piVar9 + 8) = pcVar11;\n          uVar13 = 0xffffffffffffffff;\n          pcVar14 = pcVar11;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar3 = *pcVar14;\n            pcVar14 = pcVar14 + (ulong)bVar17 * -2 + 1;\n          } while (cVar3 != '\0');\n          pcVar14 = pcVar11 + (~uVar13 - 1);\n          pcVar5 = pcVar11;\n          if (pcVar11 < pcVar14) {\n            pcVar7 = pcVar11;\n            pcVar6 = pcVar11;\n            do {\n              cVar3 = *pcVar11;\n              if (cVar3 == '.') {\n                cVar1 = pcVar11[1];\n                if ((cVar1 == '/') || (cVar1 == '\0')) {\n                  pcVar11 = pcVar11 + 2;\n                }\n                else {\n                  if ((cVar1 != '.') || ((pcVar11[2] != '/' && (pcVar11[2] != '\0'))))\n                  goto LAB_00137e1d;\n                  if (pcVar6 < pcVar7) {\n                    pcVar5 = pcVar7 + -1;\n                    if (pcVar6 < pcVar5) {\n                      cVar3 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar3 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar3 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar5 = pcVar7;\n                    if (uVar4 - 2 < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }\n                  pcVar11 = pcVar11 + 3;\n                  pcVar7 = pcVar5;\n                }\n              }\n              else {\nLAB_00137e1d:\n                if (pcVar7 == pcVar11) {\n                  pcVar5 = pcVar7;\n                  if (pcVar14 <= pcVar7) break;\n                  cVar3 = *pcVar7;\n                  while (cVar3 != '/') {\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar14;\n                    if (pcVar14 == pcVar5) goto LAB_00137d7b;\n                    cVar3 = *pcVar5;\n                  }\n                  pcVar11 = pcVar5 + 1;\n                  pcVar7 = pcVar5 + 1;\n                }\n                else {\n                  pcVar5 = pcVar11;\n                  if (pcVar14 <= pcVar11) break;\n                  while (cVar3 != '/') {\n                    pcVar11 = pcVar11 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar3;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar14;\n                    if (pcVar14 == pcVar11) goto LAB_00137d7b;\n                    cVar3 = *pcVar11;\n                  }\n                  *pcVar7 = *pcVar11;\n                  pcVar11 = pcVar11 + 1;\n                  pcVar7 = pcVar7 + 1;\n                }\n              }\n              pcVar5 = pcVar11;\n            } while (pcVar11 < pcVar14);\nLAB_00137d7b:\n            pcVar11 = pcVar7;\n            if (pcVar5 != pcVar7) {\n              *pcVar7 = '\0';\n            }\n          }\n          pcVar14 = *(char **)(piVar9 + 8);\n          pcVar6 = strrchr(pcVar14,0x2f);\n          if (pcVar6 == (char *)0x0) {\n            uVar8 = FUN_001496d9(&DAT_0015ea35);\n            *(undefined8 *)(piVar9 + 0x10) = uVar8;\n            uVar8 = FUN_001496d9(pcVar14);\n            *(undefined8 *)(piVar9 + 0x12) = uVar8;\n          }\n          else {\n            uVar8 = FUN_0013a40c(pcVar14,pcVar6);\n            *(undefined8 *)(piVar9 + 0x10) = uVar8;\n            uVar8 = FUN_001496d9(pcVar6 + 1);\n            *(undefined8 *)(piVar9 + 0x12) = uVar8;\n          }\n          FUN_00135c58(*(undefined8 *)(piVar9 + 0x10));\n          FUN_00135c58(*(undefined8 *)(piVar9 + 0x12));\n          pcVar14 = *(char **)(piVar9 + 4);\n          cVar3 = *pcVar14;\n          if (cVar3 == '\0') {\n            bVar17 = 0;\n          }\n          else {\n            bVar17 = 0;\n            do {\n              if ((int)cVar3 - 0x41U < 0x1a) {\n                *pcVar14 = cVar3 + ' ';\n                bVar17 = 1;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            } while (cVar3 != '\0');\n          }\n          pcVar14 = *(char **)(piVar9 + 4);\n          pcVar6 = strchr(pcVar14,0x25);\n          if (pcVar6 != (char *)0x0) {\n            FUN_00135c58(pcVar14);\n            pcVar14 = *(char **)(piVar9 + 4);\n            cVar3 = *pcVar14;\n            while (cVar3 != '\0') {\n              if ((-1 < cVar3) && ((cVar3 < ' ' || (cVar3 == '\x7f')))) {\n                FUN_0013629a(piVar9);\n                iVar15 = 3;\n                goto LAB_00137c65;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            }\n            bVar17 = param_3 != 0 & DAT_00177606;\n            if (bVar17 == 0) {\n              bVar17 = 1;\n            }\n            else {\n              lVar12 = FUN_0013eaa4(param_3);\n              if (lVar12 != 0) {\n                free(*(void **)(piVar9 + 4));\n                *(long *)(piVar9 + 4) = lVar12;\n              }\n            }\n          }\n          if (local_70 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_70,local_60);\n            *(undefined8 *)(piVar9 + 10) = uVar8;\n          }\n          if (local_b0 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_b0,local_58);\n            *(undefined8 *)(piVar9 + 0xc) = uVar8;\n          }\n          if (local_68 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_68,local_50);\n            *(undefined8 *)(piVar9 + 0xe) = uVar8;\n          }\n          param_2 = piVar9;\n          if ((((DAT_00177606 == 0) && (pcVar5 == pcVar11)) && (*(long *)(piVar9 + 0xe) == 0)) &&\n             ((local_88 != local_80 && (bVar17 == 0)))) {\n            if (local_b8 == param_1) {\n              uVar8 = FUN_001496d9(param_1);\n              *(undefined8 *)piVar9 = uVar8;\n            }\n            else {\n              *(void **)piVar9 = local_b8;\n            }\n          }\n          else {\n            uVar8 = FUN_00137051(piVar9,0);\n            *(undefined8 *)piVar9 = uVar8;\n            if (local_b8 != param_1) {\n              free(local_b8);\n            }\n          }\n          goto LAB_00137c95;\n        }\n        pcVar14 = pcVar14 + -1;\n        if (pcVar14 == pcVar11) {\n          iVar15 = 5;\n        }\n        else {\n          pcVar6 = (char *)memchr(pcVar11,0x3a,(long)pcVar14 - (long)pcVar11);\n          if (pcVar11 != pcVar6) {\n            pcVar5 = pcVar6;\n            if (pcVar6 != (char *)0x0) {\n              pcVar5 = (char *)FUN_0013a40c(pcVar6 + 1,pcVar14);\n              FUN_00135c58(pcVar5);\n              pcVar14 = pcVar6;\n            }\n            uVar8 = FUN_0013a40c(pcVar11,pcVar14);\n            FUN_00135c58(uVar8);\n            goto LAB_001379c6;\n          }\n          iVar15 = 5;\n        }\n      }\n    }" { (expression_statement "pcVar6 = strpbrk(pcVar14,pcVar5);" (assignment_expression "pcVar6 = strpbrk(pcVar14,pcVar5)" identifier = (call_expression "strpbrk(pcVar14,pcVar5)" identifier (argument_list "(pcVar14,pcVar5)" ( identifier , identifier )))) ;) (expression_statement "local_a8 = pcVar14;" (assignment_expression "local_a8 = pcVar14" identifier = identifier) ;) (expression_statement "local_a0 = pcVar6;" (assignment_expression "local_a0 = pcVar6" identifier = identifier) ;) (if_statement "if (pcVar6 == (char *)0x0) {\n        uVar13 = 0xffffffffffffffff;\n        pcVar6 = pcVar14;\n        do {\n          if (uVar13 == 0) break;\n          uVar13 = uVar13 - 1;\n          cVar3 = *pcVar6;\n          pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n        } while (cVar3 != '\0');\n        pcVar6 = pcVar14 + (~uVar13 - 1);\n        local_a0 = pcVar6;\n      }" if (parenthesized_expression "(pcVar6 == (char *)0x0)" ( (binary_expression "pcVar6 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar13 = 0xffffffffffffffff;\n        pcVar6 = pcVar14;\n        do {\n          if (uVar13 == 0) break;\n          uVar13 = uVar13 - 1;\n          cVar3 = *pcVar6;\n          pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n        } while (cVar3 != '\0');\n        pcVar6 = pcVar14 + (~uVar13 - 1);\n        local_a0 = pcVar6;\n      }" { (expression_statement "uVar13 = 0xffffffffffffffff;" (assignment_expression "uVar13 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar6 = pcVar14;" (assignment_expression "pcVar6 = pcVar14" identifier = identifier) ;) (do_statement "do {\n          if (uVar13 == 0) break;\n          uVar13 = uVar13 - 1;\n          cVar3 = *pcVar6;\n          pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n        } while (cVar3 != '\0');" do (compound_statement "{\n          if (uVar13 == 0) break;\n          uVar13 = uVar13 - 1;\n          cVar3 = *pcVar6;\n          pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n        }" { (if_statement "if (uVar13 == 0) break;" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar13 = uVar13 - 1;" (assignment_expression "uVar13 = uVar13 - 1" identifier = (binary_expression "uVar13 - 1" identifier - number_literal)) ;) (expression_statement "cVar3 = *pcVar6;" (assignment_expression "cVar3 = *pcVar6" identifier = (pointer_expression "*pcVar6" * identifier)) ;) (expression_statement "pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1" identifier = (binary_expression "pcVar6 + (ulong)bVar17 * -2 + 1" (binary_expression "pcVar6 + (ulong)bVar17 * -2" identifier + (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar3 != '\0')" ( (binary_expression "cVar3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "pcVar6 = pcVar14 + (~uVar13 - 1);" (assignment_expression "pcVar6 = pcVar14 + (~uVar13 - 1)" identifier = (binary_expression "pcVar14 + (~uVar13 - 1)" identifier + (parenthesized_expression "(~uVar13 - 1)" ( (binary_expression "~uVar13 - 1" (unary_expression "~uVar13" ~ identifier) - number_literal) )))) ;) (expression_statement "local_a0 = pcVar6;" (assignment_expression "local_a0 = pcVar6" identifier = identifier) ;) })) (labeled_statement "LAB_00137554:\n      if (local_a8 == local_a0) {\n        iVar15 = 3;\n      }\n      else {\n        local_74 = *(uint *)(&DAT_0016e350 + (ulong)uVar4 * 0x18);\n        pcVar7 = pcVar6;\n        if (*pcVar6 == ':') {\n          __s = pcVar6 + 1;\n          pcVar7 = strpbrk(__s,pcVar5 + 1);\n          if (pcVar7 == (char *)0x0) {\n            uVar13 = 0xffffffffffffffff;\n            pcVar7 = __s;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar7;\n              pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');\n            pcVar7 = pcVar6 + ~uVar13;\n          }\n          if (__s != pcVar7) {\n            if (__s < pcVar7) {\n              local_74 = (int)pcVar6[1] - 0x30;\n              if (local_74 < 10) {\n                do {\n                  __s = __s + 1;\n                  if (__s == pcVar7) goto LAB_00137584;\n                  if (9 < (int)*__s - 0x30U) {\n                    iVar15 = 4;\n                    goto LAB_00137c65;\n                  }\n                  local_74 = *__s + -0x30 + local_74 * 10;\n                } while ((int)local_74 < 0x10000);\n                iVar15 = 4;\n              }\n              else {\n                iVar15 = 4;\n              }\n              goto LAB_00137c65;\n            }\n            local_74 = 0;\n          }\n        }\nLAB_00137584:\n        local_80 = (char *)0x0;\n        local_88 = (char *)0x0;\n        pcVar6 = pcVar7;\n        if (*pcVar7 == '/') {\n          local_88 = pcVar7 + 1;\n          pcVar6 = strpbrk(local_88,pcVar5 + 2);\n          local_80 = pcVar6;\n          if (pcVar6 == (char *)0x0) {\n            uVar13 = 0xffffffffffffffff;\n            pcVar6 = local_88;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');\n            pcVar6 = pcVar7 + ~uVar13;\n            local_80 = pcVar6;\n          }\n        }\n        local_90 = pcVar5 + 3;\n        uVar2 = (&DAT_0016e354)[(ulong)uVar4 * 6];\n        if ((uVar2 & 2) == 0) {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n        }\n        else {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n          pcVar7 = pcVar6;\n          if (*pcVar6 == ';') {\n            local_70 = pcVar6 + 1;\n            pcVar7 = strpbrk(local_70,local_90);\n            local_60 = pcVar7;\n            if (pcVar7 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar7 = local_70;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar7;\n                pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar7 = pcVar6 + ~uVar13;\n              local_60 = pcVar7;\n            }\n          }\n          local_90 = pcVar5 + 4;\n          pcVar6 = pcVar7;\n        }\n        if ((uVar2 & 4) == 0) {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n        }\n        else {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n          pcVar5 = pcVar6;\n          if (*pcVar6 == '?') {\n            local_b0 = pcVar6 + 1;\n            pcVar5 = strpbrk(local_b0,local_90);\n            local_58 = pcVar5;\n            if (pcVar5 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_b0;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar5 = pcVar6 + ~uVar13;\n              local_58 = pcVar5;\n            }\n          }\n          local_90 = local_90 + 1;\n          pcVar6 = pcVar5;\n        }\n        if ((uVar2 & 8) == 0) {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n        }\n        else {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n          if (*pcVar6 == '#') {\n            local_68 = pcVar6 + 1;\n            local_50 = strpbrk(local_68,local_90);\n            if (local_50 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_68;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              local_50 = pcVar6 + ~uVar13;\n            }\n          }\n        }\n        if (pcVar11 == pcVar14) {\n          pcVar5 = (char *)0x0;\n          uVar8 = 0;\nLAB_001379c6:\n          piVar9 = (int *)FUN_0014967c(1,0x60);\n          piVar9[2] = uVar4;\n          uVar10 = FUN_0013a40c(local_a8,local_a0);\n          *(undefined8 *)(piVar9 + 4) = uVar10;\n          piVar9[6] = local_74;\n          *(undefined8 *)(piVar9 + 0x14) = uVar8;\n          *(char **)(piVar9 + 0x16) = pcVar5;\n          pcVar11 = (char *)FUN_0013a40c(local_88,local_80);\n          *(char **)(piVar9 + 8) = pcVar11;\n          uVar13 = 0xffffffffffffffff;\n          pcVar14 = pcVar11;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar3 = *pcVar14;\n            pcVar14 = pcVar14 + (ulong)bVar17 * -2 + 1;\n          } while (cVar3 != '\0');\n          pcVar14 = pcVar11 + (~uVar13 - 1);\n          pcVar5 = pcVar11;\n          if (pcVar11 < pcVar14) {\n            pcVar7 = pcVar11;\n            pcVar6 = pcVar11;\n            do {\n              cVar3 = *pcVar11;\n              if (cVar3 == '.') {\n                cVar1 = pcVar11[1];\n                if ((cVar1 == '/') || (cVar1 == '\0')) {\n                  pcVar11 = pcVar11 + 2;\n                }\n                else {\n                  if ((cVar1 != '.') || ((pcVar11[2] != '/' && (pcVar11[2] != '\0'))))\n                  goto LAB_00137e1d;\n                  if (pcVar6 < pcVar7) {\n                    pcVar5 = pcVar7 + -1;\n                    if (pcVar6 < pcVar5) {\n                      cVar3 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar3 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar3 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar5 = pcVar7;\n                    if (uVar4 - 2 < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }\n                  pcVar11 = pcVar11 + 3;\n                  pcVar7 = pcVar5;\n                }\n              }\n              else {\nLAB_00137e1d:\n                if (pcVar7 == pcVar11) {\n                  pcVar5 = pcVar7;\n                  if (pcVar14 <= pcVar7) break;\n                  cVar3 = *pcVar7;\n                  while (cVar3 != '/') {\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar14;\n                    if (pcVar14 == pcVar5) goto LAB_00137d7b;\n                    cVar3 = *pcVar5;\n                  }\n                  pcVar11 = pcVar5 + 1;\n                  pcVar7 = pcVar5 + 1;\n                }\n                else {\n                  pcVar5 = pcVar11;\n                  if (pcVar14 <= pcVar11) break;\n                  while (cVar3 != '/') {\n                    pcVar11 = pcVar11 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar3;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar14;\n                    if (pcVar14 == pcVar11) goto LAB_00137d7b;\n                    cVar3 = *pcVar11;\n                  }\n                  *pcVar7 = *pcVar11;\n                  pcVar11 = pcVar11 + 1;\n                  pcVar7 = pcVar7 + 1;\n                }\n              }\n              pcVar5 = pcVar11;\n            } while (pcVar11 < pcVar14);\nLAB_00137d7b:\n            pcVar11 = pcVar7;\n            if (pcVar5 != pcVar7) {\n              *pcVar7 = '\0';\n            }\n          }\n          pcVar14 = *(char **)(piVar9 + 8);\n          pcVar6 = strrchr(pcVar14,0x2f);\n          if (pcVar6 == (char *)0x0) {\n            uVar8 = FUN_001496d9(&DAT_0015ea35);\n            *(undefined8 *)(piVar9 + 0x10) = uVar8;\n            uVar8 = FUN_001496d9(pcVar14);\n            *(undefined8 *)(piVar9 + 0x12) = uVar8;\n          }\n          else {\n            uVar8 = FUN_0013a40c(pcVar14,pcVar6);\n            *(undefined8 *)(piVar9 + 0x10) = uVar8;\n            uVar8 = FUN_001496d9(pcVar6 + 1);\n            *(undefined8 *)(piVar9 + 0x12) = uVar8;\n          }\n          FUN_00135c58(*(undefined8 *)(piVar9 + 0x10));\n          FUN_00135c58(*(undefined8 *)(piVar9 + 0x12));\n          pcVar14 = *(char **)(piVar9 + 4);\n          cVar3 = *pcVar14;\n          if (cVar3 == '\0') {\n            bVar17 = 0;\n          }\n          else {\n            bVar17 = 0;\n            do {\n              if ((int)cVar3 - 0x41U < 0x1a) {\n                *pcVar14 = cVar3 + ' ';\n                bVar17 = 1;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            } while (cVar3 != '\0');\n          }\n          pcVar14 = *(char **)(piVar9 + 4);\n          pcVar6 = strchr(pcVar14,0x25);\n          if (pcVar6 != (char *)0x0) {\n            FUN_00135c58(pcVar14);\n            pcVar14 = *(char **)(piVar9 + 4);\n            cVar3 = *pcVar14;\n            while (cVar3 != '\0') {\n              if ((-1 < cVar3) && ((cVar3 < ' ' || (cVar3 == '\x7f')))) {\n                FUN_0013629a(piVar9);\n                iVar15 = 3;\n                goto LAB_00137c65;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            }\n            bVar17 = param_3 != 0 & DAT_00177606;\n            if (bVar17 == 0) {\n              bVar17 = 1;\n            }\n            else {\n              lVar12 = FUN_0013eaa4(param_3);\n              if (lVar12 != 0) {\n                free(*(void **)(piVar9 + 4));\n                *(long *)(piVar9 + 4) = lVar12;\n              }\n            }\n          }\n          if (local_70 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_70,local_60);\n            *(undefined8 *)(piVar9 + 10) = uVar8;\n          }\n          if (local_b0 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_b0,local_58);\n            *(undefined8 *)(piVar9 + 0xc) = uVar8;\n          }\n          if (local_68 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_68,local_50);\n            *(undefined8 *)(piVar9 + 0xe) = uVar8;\n          }\n          param_2 = piVar9;\n          if ((((DAT_00177606 == 0) && (pcVar5 == pcVar11)) && (*(long *)(piVar9 + 0xe) == 0)) &&\n             ((local_88 != local_80 && (bVar17 == 0)))) {\n            if (local_b8 == param_1) {\n              uVar8 = FUN_001496d9(param_1);\n              *(undefined8 *)piVar9 = uVar8;\n            }\n            else {\n              *(void **)piVar9 = local_b8;\n            }\n          }\n          else {\n            uVar8 = FUN_00137051(piVar9,0);\n            *(undefined8 *)piVar9 = uVar8;\n            if (local_b8 != param_1) {\n              free(local_b8);\n            }\n          }\n          goto LAB_00137c95;\n        }\n        pcVar14 = pcVar14 + -1;\n        if (pcVar14 == pcVar11) {\n          iVar15 = 5;\n        }\n        else {\n          pcVar6 = (char *)memchr(pcVar11,0x3a,(long)pcVar14 - (long)pcVar11);\n          if (pcVar11 != pcVar6) {\n            pcVar5 = pcVar6;\n            if (pcVar6 != (char *)0x0) {\n              pcVar5 = (char *)FUN_0013a40c(pcVar6 + 1,pcVar14);\n              FUN_00135c58(pcVar5);\n              pcVar14 = pcVar6;\n            }\n            uVar8 = FUN_0013a40c(pcVar11,pcVar14);\n            FUN_00135c58(uVar8);\n            goto LAB_001379c6;\n          }\n          iVar15 = 5;\n        }\n      }" statement_identifier : (if_statement "if (local_a8 == local_a0) {\n        iVar15 = 3;\n      }\n      else {\n        local_74 = *(uint *)(&DAT_0016e350 + (ulong)uVar4 * 0x18);\n        pcVar7 = pcVar6;\n        if (*pcVar6 == ':') {\n          __s = pcVar6 + 1;\n          pcVar7 = strpbrk(__s,pcVar5 + 1);\n          if (pcVar7 == (char *)0x0) {\n            uVar13 = 0xffffffffffffffff;\n            pcVar7 = __s;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar7;\n              pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');\n            pcVar7 = pcVar6 + ~uVar13;\n          }\n          if (__s != pcVar7) {\n            if (__s < pcVar7) {\n              local_74 = (int)pcVar6[1] - 0x30;\n              if (local_74 < 10) {\n                do {\n                  __s = __s + 1;\n                  if (__s == pcVar7) goto LAB_00137584;\n                  if (9 < (int)*__s - 0x30U) {\n                    iVar15 = 4;\n                    goto LAB_00137c65;\n                  }\n                  local_74 = *__s + -0x30 + local_74 * 10;\n                } while ((int)local_74 < 0x10000);\n                iVar15 = 4;\n              }\n              else {\n                iVar15 = 4;\n              }\n              goto LAB_00137c65;\n            }\n            local_74 = 0;\n          }\n        }\nLAB_00137584:\n        local_80 = (char *)0x0;\n        local_88 = (char *)0x0;\n        pcVar6 = pcVar7;\n        if (*pcVar7 == '/') {\n          local_88 = pcVar7 + 1;\n          pcVar6 = strpbrk(local_88,pcVar5 + 2);\n          local_80 = pcVar6;\n          if (pcVar6 == (char *)0x0) {\n            uVar13 = 0xffffffffffffffff;\n            pcVar6 = local_88;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');\n            pcVar6 = pcVar7 + ~uVar13;\n            local_80 = pcVar6;\n          }\n        }\n        local_90 = pcVar5 + 3;\n        uVar2 = (&DAT_0016e354)[(ulong)uVar4 * 6];\n        if ((uVar2 & 2) == 0) {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n        }\n        else {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n          pcVar7 = pcVar6;\n          if (*pcVar6 == ';') {\n            local_70 = pcVar6 + 1;\n            pcVar7 = strpbrk(local_70,local_90);\n            local_60 = pcVar7;\n            if (pcVar7 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar7 = local_70;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar7;\n                pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar7 = pcVar6 + ~uVar13;\n              local_60 = pcVar7;\n            }\n          }\n          local_90 = pcVar5 + 4;\n          pcVar6 = pcVar7;\n        }\n        if ((uVar2 & 4) == 0) {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n        }\n        else {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n          pcVar5 = pcVar6;\n          if (*pcVar6 == '?') {\n            local_b0 = pcVar6 + 1;\n            pcVar5 = strpbrk(local_b0,local_90);\n            local_58 = pcVar5;\n            if (pcVar5 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_b0;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar5 = pcVar6 + ~uVar13;\n              local_58 = pcVar5;\n            }\n          }\n          local_90 = local_90 + 1;\n          pcVar6 = pcVar5;\n        }\n        if ((uVar2 & 8) == 0) {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n        }\n        else {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n          if (*pcVar6 == '#') {\n            local_68 = pcVar6 + 1;\n            local_50 = strpbrk(local_68,local_90);\n            if (local_50 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_68;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              local_50 = pcVar6 + ~uVar13;\n            }\n          }\n        }\n        if (pcVar11 == pcVar14) {\n          pcVar5 = (char *)0x0;\n          uVar8 = 0;\nLAB_001379c6:\n          piVar9 = (int *)FUN_0014967c(1,0x60);\n          piVar9[2] = uVar4;\n          uVar10 = FUN_0013a40c(local_a8,local_a0);\n          *(undefined8 *)(piVar9 + 4) = uVar10;\n          piVar9[6] = local_74;\n          *(undefined8 *)(piVar9 + 0x14) = uVar8;\n          *(char **)(piVar9 + 0x16) = pcVar5;\n          pcVar11 = (char *)FUN_0013a40c(local_88,local_80);\n          *(char **)(piVar9 + 8) = pcVar11;\n          uVar13 = 0xffffffffffffffff;\n          pcVar14 = pcVar11;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar3 = *pcVar14;\n            pcVar14 = pcVar14 + (ulong)bVar17 * -2 + 1;\n          } while (cVar3 != '\0');\n          pcVar14 = pcVar11 + (~uVar13 - 1);\n          pcVar5 = pcVar11;\n          if (pcVar11 < pcVar14) {\n            pcVar7 = pcVar11;\n            pcVar6 = pcVar11;\n            do {\n              cVar3 = *pcVar11;\n              if (cVar3 == '.') {\n                cVar1 = pcVar11[1];\n                if ((cVar1 == '/') || (cVar1 == '\0')) {\n                  pcVar11 = pcVar11 + 2;\n                }\n                else {\n                  if ((cVar1 != '.') || ((pcVar11[2] != '/' && (pcVar11[2] != '\0'))))\n                  goto LAB_00137e1d;\n                  if (pcVar6 < pcVar7) {\n                    pcVar5 = pcVar7 + -1;\n                    if (pcVar6 < pcVar5) {\n                      cVar3 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar3 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar3 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar5 = pcVar7;\n                    if (uVar4 - 2 < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }\n                  pcVar11 = pcVar11 + 3;\n                  pcVar7 = pcVar5;\n                }\n              }\n              else {\nLAB_00137e1d:\n                if (pcVar7 == pcVar11) {\n                  pcVar5 = pcVar7;\n                  if (pcVar14 <= pcVar7) break;\n                  cVar3 = *pcVar7;\n                  while (cVar3 != '/') {\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar14;\n                    if (pcVar14 == pcVar5) goto LAB_00137d7b;\n                    cVar3 = *pcVar5;\n                  }\n                  pcVar11 = pcVar5 + 1;\n                  pcVar7 = pcVar5 + 1;\n                }\n                else {\n                  pcVar5 = pcVar11;\n                  if (pcVar14 <= pcVar11) break;\n                  while (cVar3 != '/') {\n                    pcVar11 = pcVar11 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar3;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar14;\n                    if (pcVar14 == pcVar11) goto LAB_00137d7b;\n                    cVar3 = *pcVar11;\n                  }\n                  *pcVar7 = *pcVar11;\n                  pcVar11 = pcVar11 + 1;\n                  pcVar7 = pcVar7 + 1;\n                }\n              }\n              pcVar5 = pcVar11;\n            } while (pcVar11 < pcVar14);\nLAB_00137d7b:\n            pcVar11 = pcVar7;\n            if (pcVar5 != pcVar7) {\n              *pcVar7 = '\0';\n            }\n          }\n          pcVar14 = *(char **)(piVar9 + 8);\n          pcVar6 = strrchr(pcVar14,0x2f);\n          if (pcVar6 == (char *)0x0) {\n            uVar8 = FUN_001496d9(&DAT_0015ea35);\n            *(undefined8 *)(piVar9 + 0x10) = uVar8;\n            uVar8 = FUN_001496d9(pcVar14);\n            *(undefined8 *)(piVar9 + 0x12) = uVar8;\n          }\n          else {\n            uVar8 = FUN_0013a40c(pcVar14,pcVar6);\n            *(undefined8 *)(piVar9 + 0x10) = uVar8;\n            uVar8 = FUN_001496d9(pcVar6 + 1);\n            *(undefined8 *)(piVar9 + 0x12) = uVar8;\n          }\n          FUN_00135c58(*(undefined8 *)(piVar9 + 0x10));\n          FUN_00135c58(*(undefined8 *)(piVar9 + 0x12));\n          pcVar14 = *(char **)(piVar9 + 4);\n          cVar3 = *pcVar14;\n          if (cVar3 == '\0') {\n            bVar17 = 0;\n          }\n          else {\n            bVar17 = 0;\n            do {\n              if ((int)cVar3 - 0x41U < 0x1a) {\n                *pcVar14 = cVar3 + ' ';\n                bVar17 = 1;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            } while (cVar3 != '\0');\n          }\n          pcVar14 = *(char **)(piVar9 + 4);\n          pcVar6 = strchr(pcVar14,0x25);\n          if (pcVar6 != (char *)0x0) {\n            FUN_00135c58(pcVar14);\n            pcVar14 = *(char **)(piVar9 + 4);\n            cVar3 = *pcVar14;\n            while (cVar3 != '\0') {\n              if ((-1 < cVar3) && ((cVar3 < ' ' || (cVar3 == '\x7f')))) {\n                FUN_0013629a(piVar9);\n                iVar15 = 3;\n                goto LAB_00137c65;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            }\n            bVar17 = param_3 != 0 & DAT_00177606;\n            if (bVar17 == 0) {\n              bVar17 = 1;\n            }\n            else {\n              lVar12 = FUN_0013eaa4(param_3);\n              if (lVar12 != 0) {\n                free(*(void **)(piVar9 + 4));\n                *(long *)(piVar9 + 4) = lVar12;\n              }\n            }\n          }\n          if (local_70 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_70,local_60);\n            *(undefined8 *)(piVar9 + 10) = uVar8;\n          }\n          if (local_b0 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_b0,local_58);\n            *(undefined8 *)(piVar9 + 0xc) = uVar8;\n          }\n          if (local_68 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_68,local_50);\n            *(undefined8 *)(piVar9 + 0xe) = uVar8;\n          }\n          param_2 = piVar9;\n          if ((((DAT_00177606 == 0) && (pcVar5 == pcVar11)) && (*(long *)(piVar9 + 0xe) == 0)) &&\n             ((local_88 != local_80 && (bVar17 == 0)))) {\n            if (local_b8 == param_1) {\n              uVar8 = FUN_001496d9(param_1);\n              *(undefined8 *)piVar9 = uVar8;\n            }\n            else {\n              *(void **)piVar9 = local_b8;\n            }\n          }\n          else {\n            uVar8 = FUN_00137051(piVar9,0);\n            *(undefined8 *)piVar9 = uVar8;\n            if (local_b8 != param_1) {\n              free(local_b8);\n            }\n          }\n          goto LAB_00137c95;\n        }\n        pcVar14 = pcVar14 + -1;\n        if (pcVar14 == pcVar11) {\n          iVar15 = 5;\n        }\n        else {\n          pcVar6 = (char *)memchr(pcVar11,0x3a,(long)pcVar14 - (long)pcVar11);\n          if (pcVar11 != pcVar6) {\n            pcVar5 = pcVar6;\n            if (pcVar6 != (char *)0x0) {\n              pcVar5 = (char *)FUN_0013a40c(pcVar6 + 1,pcVar14);\n              FUN_00135c58(pcVar5);\n              pcVar14 = pcVar6;\n            }\n            uVar8 = FUN_0013a40c(pcVar11,pcVar14);\n            FUN_00135c58(uVar8);\n            goto LAB_001379c6;\n          }\n          iVar15 = 5;\n        }\n      }" if (parenthesized_expression "(local_a8 == local_a0)" ( (binary_expression "local_a8 == local_a0" identifier == identifier) )) (compound_statement "{\n        iVar15 = 3;\n      }" { (expression_statement "iVar15 = 3;" (assignment_expression "iVar15 = 3" identifier = number_literal) ;) }) (else_clause "else {\n        local_74 = *(uint *)(&DAT_0016e350 + (ulong)uVar4 * 0x18);\n        pcVar7 = pcVar6;\n        if (*pcVar6 == ':') {\n          __s = pcVar6 + 1;\n          pcVar7 = strpbrk(__s,pcVar5 + 1);\n          if (pcVar7 == (char *)0x0) {\n            uVar13 = 0xffffffffffffffff;\n            pcVar7 = __s;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar7;\n              pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');\n            pcVar7 = pcVar6 + ~uVar13;\n          }\n          if (__s != pcVar7) {\n            if (__s < pcVar7) {\n              local_74 = (int)pcVar6[1] - 0x30;\n              if (local_74 < 10) {\n                do {\n                  __s = __s + 1;\n                  if (__s == pcVar7) goto LAB_00137584;\n                  if (9 < (int)*__s - 0x30U) {\n                    iVar15 = 4;\n                    goto LAB_00137c65;\n                  }\n                  local_74 = *__s + -0x30 + local_74 * 10;\n                } while ((int)local_74 < 0x10000);\n                iVar15 = 4;\n              }\n              else {\n                iVar15 = 4;\n              }\n              goto LAB_00137c65;\n            }\n            local_74 = 0;\n          }\n        }\nLAB_00137584:\n        local_80 = (char *)0x0;\n        local_88 = (char *)0x0;\n        pcVar6 = pcVar7;\n        if (*pcVar7 == '/') {\n          local_88 = pcVar7 + 1;\n          pcVar6 = strpbrk(local_88,pcVar5 + 2);\n          local_80 = pcVar6;\n          if (pcVar6 == (char *)0x0) {\n            uVar13 = 0xffffffffffffffff;\n            pcVar6 = local_88;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');\n            pcVar6 = pcVar7 + ~uVar13;\n            local_80 = pcVar6;\n          }\n        }\n        local_90 = pcVar5 + 3;\n        uVar2 = (&DAT_0016e354)[(ulong)uVar4 * 6];\n        if ((uVar2 & 2) == 0) {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n        }\n        else {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n          pcVar7 = pcVar6;\n          if (*pcVar6 == ';') {\n            local_70 = pcVar6 + 1;\n            pcVar7 = strpbrk(local_70,local_90);\n            local_60 = pcVar7;\n            if (pcVar7 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar7 = local_70;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar7;\n                pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar7 = pcVar6 + ~uVar13;\n              local_60 = pcVar7;\n            }\n          }\n          local_90 = pcVar5 + 4;\n          pcVar6 = pcVar7;\n        }\n        if ((uVar2 & 4) == 0) {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n        }\n        else {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n          pcVar5 = pcVar6;\n          if (*pcVar6 == '?') {\n            local_b0 = pcVar6 + 1;\n            pcVar5 = strpbrk(local_b0,local_90);\n            local_58 = pcVar5;\n            if (pcVar5 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_b0;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar5 = pcVar6 + ~uVar13;\n              local_58 = pcVar5;\n            }\n          }\n          local_90 = local_90 + 1;\n          pcVar6 = pcVar5;\n        }\n        if ((uVar2 & 8) == 0) {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n        }\n        else {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n          if (*pcVar6 == '#') {\n            local_68 = pcVar6 + 1;\n            local_50 = strpbrk(local_68,local_90);\n            if (local_50 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_68;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              local_50 = pcVar6 + ~uVar13;\n            }\n          }\n        }\n        if (pcVar11 == pcVar14) {\n          pcVar5 = (char *)0x0;\n          uVar8 = 0;\nLAB_001379c6:\n          piVar9 = (int *)FUN_0014967c(1,0x60);\n          piVar9[2] = uVar4;\n          uVar10 = FUN_0013a40c(local_a8,local_a0);\n          *(undefined8 *)(piVar9 + 4) = uVar10;\n          piVar9[6] = local_74;\n          *(undefined8 *)(piVar9 + 0x14) = uVar8;\n          *(char **)(piVar9 + 0x16) = pcVar5;\n          pcVar11 = (char *)FUN_0013a40c(local_88,local_80);\n          *(char **)(piVar9 + 8) = pcVar11;\n          uVar13 = 0xffffffffffffffff;\n          pcVar14 = pcVar11;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar3 = *pcVar14;\n            pcVar14 = pcVar14 + (ulong)bVar17 * -2 + 1;\n          } while (cVar3 != '\0');\n          pcVar14 = pcVar11 + (~uVar13 - 1);\n          pcVar5 = pcVar11;\n          if (pcVar11 < pcVar14) {\n            pcVar7 = pcVar11;\n            pcVar6 = pcVar11;\n            do {\n              cVar3 = *pcVar11;\n              if (cVar3 == '.') {\n                cVar1 = pcVar11[1];\n                if ((cVar1 == '/') || (cVar1 == '\0')) {\n                  pcVar11 = pcVar11 + 2;\n                }\n                else {\n                  if ((cVar1 != '.') || ((pcVar11[2] != '/' && (pcVar11[2] != '\0'))))\n                  goto LAB_00137e1d;\n                  if (pcVar6 < pcVar7) {\n                    pcVar5 = pcVar7 + -1;\n                    if (pcVar6 < pcVar5) {\n                      cVar3 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar3 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar3 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar5 = pcVar7;\n                    if (uVar4 - 2 < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }\n                  pcVar11 = pcVar11 + 3;\n                  pcVar7 = pcVar5;\n                }\n              }\n              else {\nLAB_00137e1d:\n                if (pcVar7 == pcVar11) {\n                  pcVar5 = pcVar7;\n                  if (pcVar14 <= pcVar7) break;\n                  cVar3 = *pcVar7;\n                  while (cVar3 != '/') {\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar14;\n                    if (pcVar14 == pcVar5) goto LAB_00137d7b;\n                    cVar3 = *pcVar5;\n                  }\n                  pcVar11 = pcVar5 + 1;\n                  pcVar7 = pcVar5 + 1;\n                }\n                else {\n                  pcVar5 = pcVar11;\n                  if (pcVar14 <= pcVar11) break;\n                  while (cVar3 != '/') {\n                    pcVar11 = pcVar11 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar3;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar14;\n                    if (pcVar14 == pcVar11) goto LAB_00137d7b;\n                    cVar3 = *pcVar11;\n                  }\n                  *pcVar7 = *pcVar11;\n                  pcVar11 = pcVar11 + 1;\n                  pcVar7 = pcVar7 + 1;\n                }\n              }\n              pcVar5 = pcVar11;\n            } while (pcVar11 < pcVar14);\nLAB_00137d7b:\n            pcVar11 = pcVar7;\n            if (pcVar5 != pcVar7) {\n              *pcVar7 = '\0';\n            }\n          }\n          pcVar14 = *(char **)(piVar9 + 8);\n          pcVar6 = strrchr(pcVar14,0x2f);\n          if (pcVar6 == (char *)0x0) {\n            uVar8 = FUN_001496d9(&DAT_0015ea35);\n            *(undefined8 *)(piVar9 + 0x10) = uVar8;\n            uVar8 = FUN_001496d9(pcVar14);\n            *(undefined8 *)(piVar9 + 0x12) = uVar8;\n          }\n          else {\n            uVar8 = FUN_0013a40c(pcVar14,pcVar6);\n            *(undefined8 *)(piVar9 + 0x10) = uVar8;\n            uVar8 = FUN_001496d9(pcVar6 + 1);\n            *(undefined8 *)(piVar9 + 0x12) = uVar8;\n          }\n          FUN_00135c58(*(undefined8 *)(piVar9 + 0x10));\n          FUN_00135c58(*(undefined8 *)(piVar9 + 0x12));\n          pcVar14 = *(char **)(piVar9 + 4);\n          cVar3 = *pcVar14;\n          if (cVar3 == '\0') {\n            bVar17 = 0;\n          }\n          else {\n            bVar17 = 0;\n            do {\n              if ((int)cVar3 - 0x41U < 0x1a) {\n                *pcVar14 = cVar3 + ' ';\n                bVar17 = 1;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            } while (cVar3 != '\0');\n          }\n          pcVar14 = *(char **)(piVar9 + 4);\n          pcVar6 = strchr(pcVar14,0x25);\n          if (pcVar6 != (char *)0x0) {\n            FUN_00135c58(pcVar14);\n            pcVar14 = *(char **)(piVar9 + 4);\n            cVar3 = *pcVar14;\n            while (cVar3 != '\0') {\n              if ((-1 < cVar3) && ((cVar3 < ' ' || (cVar3 == '\x7f')))) {\n                FUN_0013629a(piVar9);\n                iVar15 = 3;\n                goto LAB_00137c65;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            }\n            bVar17 = param_3 != 0 & DAT_00177606;\n            if (bVar17 == 0) {\n              bVar17 = 1;\n            }\n            else {\n              lVar12 = FUN_0013eaa4(param_3);\n              if (lVar12 != 0) {\n                free(*(void **)(piVar9 + 4));\n                *(long *)(piVar9 + 4) = lVar12;\n              }\n            }\n          }\n          if (local_70 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_70,local_60);\n            *(undefined8 *)(piVar9 + 10) = uVar8;\n          }\n          if (local_b0 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_b0,local_58);\n            *(undefined8 *)(piVar9 + 0xc) = uVar8;\n          }\n          if (local_68 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_68,local_50);\n            *(undefined8 *)(piVar9 + 0xe) = uVar8;\n          }\n          param_2 = piVar9;\n          if ((((DAT_00177606 == 0) && (pcVar5 == pcVar11)) && (*(long *)(piVar9 + 0xe) == 0)) &&\n             ((local_88 != local_80 && (bVar17 == 0)))) {\n            if (local_b8 == param_1) {\n              uVar8 = FUN_001496d9(param_1);\n              *(undefined8 *)piVar9 = uVar8;\n            }\n            else {\n              *(void **)piVar9 = local_b8;\n            }\n          }\n          else {\n            uVar8 = FUN_00137051(piVar9,0);\n            *(undefined8 *)piVar9 = uVar8;\n            if (local_b8 != param_1) {\n              free(local_b8);\n            }\n          }\n          goto LAB_00137c95;\n        }\n        pcVar14 = pcVar14 + -1;\n        if (pcVar14 == pcVar11) {\n          iVar15 = 5;\n        }\n        else {\n          pcVar6 = (char *)memchr(pcVar11,0x3a,(long)pcVar14 - (long)pcVar11);\n          if (pcVar11 != pcVar6) {\n            pcVar5 = pcVar6;\n            if (pcVar6 != (char *)0x0) {\n              pcVar5 = (char *)FUN_0013a40c(pcVar6 + 1,pcVar14);\n              FUN_00135c58(pcVar5);\n              pcVar14 = pcVar6;\n            }\n            uVar8 = FUN_0013a40c(pcVar11,pcVar14);\n            FUN_00135c58(uVar8);\n            goto LAB_001379c6;\n          }\n          iVar15 = 5;\n        }\n      }" else (compound_statement "{\n        local_74 = *(uint *)(&DAT_0016e350 + (ulong)uVar4 * 0x18);\n        pcVar7 = pcVar6;\n        if (*pcVar6 == ':') {\n          __s = pcVar6 + 1;\n          pcVar7 = strpbrk(__s,pcVar5 + 1);\n          if (pcVar7 == (char *)0x0) {\n            uVar13 = 0xffffffffffffffff;\n            pcVar7 = __s;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar7;\n              pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');\n            pcVar7 = pcVar6 + ~uVar13;\n          }\n          if (__s != pcVar7) {\n            if (__s < pcVar7) {\n              local_74 = (int)pcVar6[1] - 0x30;\n              if (local_74 < 10) {\n                do {\n                  __s = __s + 1;\n                  if (__s == pcVar7) goto LAB_00137584;\n                  if (9 < (int)*__s - 0x30U) {\n                    iVar15 = 4;\n                    goto LAB_00137c65;\n                  }\n                  local_74 = *__s + -0x30 + local_74 * 10;\n                } while ((int)local_74 < 0x10000);\n                iVar15 = 4;\n              }\n              else {\n                iVar15 = 4;\n              }\n              goto LAB_00137c65;\n            }\n            local_74 = 0;\n          }\n        }\nLAB_00137584:\n        local_80 = (char *)0x0;\n        local_88 = (char *)0x0;\n        pcVar6 = pcVar7;\n        if (*pcVar7 == '/') {\n          local_88 = pcVar7 + 1;\n          pcVar6 = strpbrk(local_88,pcVar5 + 2);\n          local_80 = pcVar6;\n          if (pcVar6 == (char *)0x0) {\n            uVar13 = 0xffffffffffffffff;\n            pcVar6 = local_88;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');\n            pcVar6 = pcVar7 + ~uVar13;\n            local_80 = pcVar6;\n          }\n        }\n        local_90 = pcVar5 + 3;\n        uVar2 = (&DAT_0016e354)[(ulong)uVar4 * 6];\n        if ((uVar2 & 2) == 0) {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n        }\n        else {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n          pcVar7 = pcVar6;\n          if (*pcVar6 == ';') {\n            local_70 = pcVar6 + 1;\n            pcVar7 = strpbrk(local_70,local_90);\n            local_60 = pcVar7;\n            if (pcVar7 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar7 = local_70;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar7;\n                pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar7 = pcVar6 + ~uVar13;\n              local_60 = pcVar7;\n            }\n          }\n          local_90 = pcVar5 + 4;\n          pcVar6 = pcVar7;\n        }\n        if ((uVar2 & 4) == 0) {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n        }\n        else {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n          pcVar5 = pcVar6;\n          if (*pcVar6 == '?') {\n            local_b0 = pcVar6 + 1;\n            pcVar5 = strpbrk(local_b0,local_90);\n            local_58 = pcVar5;\n            if (pcVar5 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_b0;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar5 = pcVar6 + ~uVar13;\n              local_58 = pcVar5;\n            }\n          }\n          local_90 = local_90 + 1;\n          pcVar6 = pcVar5;\n        }\n        if ((uVar2 & 8) == 0) {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n        }\n        else {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n          if (*pcVar6 == '#') {\n            local_68 = pcVar6 + 1;\n            local_50 = strpbrk(local_68,local_90);\n            if (local_50 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_68;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              local_50 = pcVar6 + ~uVar13;\n            }\n          }\n        }\n        if (pcVar11 == pcVar14) {\n          pcVar5 = (char *)0x0;\n          uVar8 = 0;\nLAB_001379c6:\n          piVar9 = (int *)FUN_0014967c(1,0x60);\n          piVar9[2] = uVar4;\n          uVar10 = FUN_0013a40c(local_a8,local_a0);\n          *(undefined8 *)(piVar9 + 4) = uVar10;\n          piVar9[6] = local_74;\n          *(undefined8 *)(piVar9 + 0x14) = uVar8;\n          *(char **)(piVar9 + 0x16) = pcVar5;\n          pcVar11 = (char *)FUN_0013a40c(local_88,local_80);\n          *(char **)(piVar9 + 8) = pcVar11;\n          uVar13 = 0xffffffffffffffff;\n          pcVar14 = pcVar11;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar3 = *pcVar14;\n            pcVar14 = pcVar14 + (ulong)bVar17 * -2 + 1;\n          } while (cVar3 != '\0');\n          pcVar14 = pcVar11 + (~uVar13 - 1);\n          pcVar5 = pcVar11;\n          if (pcVar11 < pcVar14) {\n            pcVar7 = pcVar11;\n            pcVar6 = pcVar11;\n            do {\n              cVar3 = *pcVar11;\n              if (cVar3 == '.') {\n                cVar1 = pcVar11[1];\n                if ((cVar1 == '/') || (cVar1 == '\0')) {\n                  pcVar11 = pcVar11 + 2;\n                }\n                else {\n                  if ((cVar1 != '.') || ((pcVar11[2] != '/' && (pcVar11[2] != '\0'))))\n                  goto LAB_00137e1d;\n                  if (pcVar6 < pcVar7) {\n                    pcVar5 = pcVar7 + -1;\n                    if (pcVar6 < pcVar5) {\n                      cVar3 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar3 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar3 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar5 = pcVar7;\n                    if (uVar4 - 2 < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }\n                  pcVar11 = pcVar11 + 3;\n                  pcVar7 = pcVar5;\n                }\n              }\n              else {\nLAB_00137e1d:\n                if (pcVar7 == pcVar11) {\n                  pcVar5 = pcVar7;\n                  if (pcVar14 <= pcVar7) break;\n                  cVar3 = *pcVar7;\n                  while (cVar3 != '/') {\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar14;\n                    if (pcVar14 == pcVar5) goto LAB_00137d7b;\n                    cVar3 = *pcVar5;\n                  }\n                  pcVar11 = pcVar5 + 1;\n                  pcVar7 = pcVar5 + 1;\n                }\n                else {\n                  pcVar5 = pcVar11;\n                  if (pcVar14 <= pcVar11) break;\n                  while (cVar3 != '/') {\n                    pcVar11 = pcVar11 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar3;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar14;\n                    if (pcVar14 == pcVar11) goto LAB_00137d7b;\n                    cVar3 = *pcVar11;\n                  }\n                  *pcVar7 = *pcVar11;\n                  pcVar11 = pcVar11 + 1;\n                  pcVar7 = pcVar7 + 1;\n                }\n              }\n              pcVar5 = pcVar11;\n            } while (pcVar11 < pcVar14);\nLAB_00137d7b:\n            pcVar11 = pcVar7;\n            if (pcVar5 != pcVar7) {\n              *pcVar7 = '\0';\n            }\n          }\n          pcVar14 = *(char **)(piVar9 + 8);\n          pcVar6 = strrchr(pcVar14,0x2f);\n          if (pcVar6 == (char *)0x0) {\n            uVar8 = FUN_001496d9(&DAT_0015ea35);\n            *(undefined8 *)(piVar9 + 0x10) = uVar8;\n            uVar8 = FUN_001496d9(pcVar14);\n            *(undefined8 *)(piVar9 + 0x12) = uVar8;\n          }\n          else {\n            uVar8 = FUN_0013a40c(pcVar14,pcVar6);\n            *(undefined8 *)(piVar9 + 0x10) = uVar8;\n            uVar8 = FUN_001496d9(pcVar6 + 1);\n            *(undefined8 *)(piVar9 + 0x12) = uVar8;\n          }\n          FUN_00135c58(*(undefined8 *)(piVar9 + 0x10));\n          FUN_00135c58(*(undefined8 *)(piVar9 + 0x12));\n          pcVar14 = *(char **)(piVar9 + 4);\n          cVar3 = *pcVar14;\n          if (cVar3 == '\0') {\n            bVar17 = 0;\n          }\n          else {\n            bVar17 = 0;\n            do {\n              if ((int)cVar3 - 0x41U < 0x1a) {\n                *pcVar14 = cVar3 + ' ';\n                bVar17 = 1;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            } while (cVar3 != '\0');\n          }\n          pcVar14 = *(char **)(piVar9 + 4);\n          pcVar6 = strchr(pcVar14,0x25);\n          if (pcVar6 != (char *)0x0) {\n            FUN_00135c58(pcVar14);\n            pcVar14 = *(char **)(piVar9 + 4);\n            cVar3 = *pcVar14;\n            while (cVar3 != '\0') {\n              if ((-1 < cVar3) && ((cVar3 < ' ' || (cVar3 == '\x7f')))) {\n                FUN_0013629a(piVar9);\n                iVar15 = 3;\n                goto LAB_00137c65;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            }\n            bVar17 = param_3 != 0 & DAT_00177606;\n            if (bVar17 == 0) {\n              bVar17 = 1;\n            }\n            else {\n              lVar12 = FUN_0013eaa4(param_3);\n              if (lVar12 != 0) {\n                free(*(void **)(piVar9 + 4));\n                *(long *)(piVar9 + 4) = lVar12;\n              }\n            }\n          }\n          if (local_70 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_70,local_60);\n            *(undefined8 *)(piVar9 + 10) = uVar8;\n          }\n          if (local_b0 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_b0,local_58);\n            *(undefined8 *)(piVar9 + 0xc) = uVar8;\n          }\n          if (local_68 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_68,local_50);\n            *(undefined8 *)(piVar9 + 0xe) = uVar8;\n          }\n          param_2 = piVar9;\n          if ((((DAT_00177606 == 0) && (pcVar5 == pcVar11)) && (*(long *)(piVar9 + 0xe) == 0)) &&\n             ((local_88 != local_80 && (bVar17 == 0)))) {\n            if (local_b8 == param_1) {\n              uVar8 = FUN_001496d9(param_1);\n              *(undefined8 *)piVar9 = uVar8;\n            }\n            else {\n              *(void **)piVar9 = local_b8;\n            }\n          }\n          else {\n            uVar8 = FUN_00137051(piVar9,0);\n            *(undefined8 *)piVar9 = uVar8;\n            if (local_b8 != param_1) {\n              free(local_b8);\n            }\n          }\n          goto LAB_00137c95;\n        }\n        pcVar14 = pcVar14 + -1;\n        if (pcVar14 == pcVar11) {\n          iVar15 = 5;\n        }\n        else {\n          pcVar6 = (char *)memchr(pcVar11,0x3a,(long)pcVar14 - (long)pcVar11);\n          if (pcVar11 != pcVar6) {\n            pcVar5 = pcVar6;\n            if (pcVar6 != (char *)0x0) {\n              pcVar5 = (char *)FUN_0013a40c(pcVar6 + 1,pcVar14);\n              FUN_00135c58(pcVar5);\n              pcVar14 = pcVar6;\n            }\n            uVar8 = FUN_0013a40c(pcVar11,pcVar14);\n            FUN_00135c58(uVar8);\n            goto LAB_001379c6;\n          }\n          iVar15 = 5;\n        }\n      }" { (expression_statement "local_74 = *(uint *)(&DAT_0016e350 + (ulong)uVar4 * 0x18);" (assignment_expression "local_74 = *(uint *)(&DAT_0016e350 + (ulong)uVar4 * 0x18)" identifier = (pointer_expression "*(uint *)(&DAT_0016e350 + (ulong)uVar4 * 0x18)" * (cast_expression "(uint *)(&DAT_0016e350 + (ulong)uVar4 * 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_0016e350 + (ulong)uVar4 * 0x18)" ( (binary_expression "&DAT_0016e350 + (ulong)uVar4 * 0x18" (pointer_expression "&DAT_0016e350" & identifier) + (binary_expression "(ulong)uVar4 * 0x18" (cast_expression "(ulong)uVar4" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) ))))) ;) (expression_statement "pcVar7 = pcVar6;" (assignment_expression "pcVar7 = pcVar6" identifier = identifier) ;) (if_statement "if (*pcVar6 == ':') {\n          __s = pcVar6 + 1;\n          pcVar7 = strpbrk(__s,pcVar5 + 1);\n          if (pcVar7 == (char *)0x0) {\n            uVar13 = 0xffffffffffffffff;\n            pcVar7 = __s;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar7;\n              pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');\n            pcVar7 = pcVar6 + ~uVar13;\n          }\n          if (__s != pcVar7) {\n            if (__s < pcVar7) {\n              local_74 = (int)pcVar6[1] - 0x30;\n              if (local_74 < 10) {\n                do {\n                  __s = __s + 1;\n                  if (__s == pcVar7) goto LAB_00137584;\n                  if (9 < (int)*__s - 0x30U) {\n                    iVar15 = 4;\n                    goto LAB_00137c65;\n                  }\n                  local_74 = *__s + -0x30 + local_74 * 10;\n                } while ((int)local_74 < 0x10000);\n                iVar15 = 4;\n              }\n              else {\n                iVar15 = 4;\n              }\n              goto LAB_00137c65;\n            }\n            local_74 = 0;\n          }\n        }" if (parenthesized_expression "(*pcVar6 == ':')" ( (binary_expression "*pcVar6 == ':'" (pointer_expression "*pcVar6" * identifier) == (char_literal "':'" ' character ')) )) (compound_statement "{\n          __s = pcVar6 + 1;\n          pcVar7 = strpbrk(__s,pcVar5 + 1);\n          if (pcVar7 == (char *)0x0) {\n            uVar13 = 0xffffffffffffffff;\n            pcVar7 = __s;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar7;\n              pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');\n            pcVar7 = pcVar6 + ~uVar13;\n          }\n          if (__s != pcVar7) {\n            if (__s < pcVar7) {\n              local_74 = (int)pcVar6[1] - 0x30;\n              if (local_74 < 10) {\n                do {\n                  __s = __s + 1;\n                  if (__s == pcVar7) goto LAB_00137584;\n                  if (9 < (int)*__s - 0x30U) {\n                    iVar15 = 4;\n                    goto LAB_00137c65;\n                  }\n                  local_74 = *__s + -0x30 + local_74 * 10;\n                } while ((int)local_74 < 0x10000);\n                iVar15 = 4;\n              }\n              else {\n                iVar15 = 4;\n              }\n              goto LAB_00137c65;\n            }\n            local_74 = 0;\n          }\n        }" { (expression_statement "__s = pcVar6 + 1;" (assignment_expression "__s = pcVar6 + 1" identifier = (binary_expression "pcVar6 + 1" identifier + number_literal)) ;) (expression_statement "pcVar7 = strpbrk(__s,pcVar5 + 1);" (assignment_expression "pcVar7 = strpbrk(__s,pcVar5 + 1)" identifier = (call_expression "strpbrk(__s,pcVar5 + 1)" identifier (argument_list "(__s,pcVar5 + 1)" ( identifier , (binary_expression "pcVar5 + 1" identifier + number_literal) )))) ;) (if_statement "if (pcVar7 == (char *)0x0) {\n            uVar13 = 0xffffffffffffffff;\n            pcVar7 = __s;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar7;\n              pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');\n            pcVar7 = pcVar6 + ~uVar13;\n          }" if (parenthesized_expression "(pcVar7 == (char *)0x0)" ( (binary_expression "pcVar7 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            uVar13 = 0xffffffffffffffff;\n            pcVar7 = __s;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar7;\n              pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');\n            pcVar7 = pcVar6 + ~uVar13;\n          }" { (expression_statement "uVar13 = 0xffffffffffffffff;" (assignment_expression "uVar13 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar7 = __s;" (assignment_expression "pcVar7 = __s" identifier = identifier) ;) (do_statement "do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar7;\n              pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');" do (compound_statement "{\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar7;\n              pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n            }" { (if_statement "if (uVar13 == 0) break;" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar13 = uVar13 - 1;" (assignment_expression "uVar13 = uVar13 - 1" identifier = (binary_expression "uVar13 - 1" identifier - number_literal)) ;) (expression_statement "cVar3 = *pcVar7;" (assignment_expression "cVar3 = *pcVar7" identifier = (pointer_expression "*pcVar7" * identifier)) ;) (expression_statement "pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1" identifier = (binary_expression "pcVar7 + (ulong)bVar17 * -2 + 1" (binary_expression "pcVar7 + (ulong)bVar17 * -2" identifier + (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar3 != '\0')" ( (binary_expression "cVar3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "pcVar7 = pcVar6 + ~uVar13;" (assignment_expression "pcVar7 = pcVar6 + ~uVar13" identifier = (binary_expression "pcVar6 + ~uVar13" identifier + (unary_expression "~uVar13" ~ identifier))) ;) })) (if_statement "if (__s != pcVar7) {\n            if (__s < pcVar7) {\n              local_74 = (int)pcVar6[1] - 0x30;\n              if (local_74 < 10) {\n                do {\n                  __s = __s + 1;\n                  if (__s == pcVar7) goto LAB_00137584;\n                  if (9 < (int)*__s - 0x30U) {\n                    iVar15 = 4;\n                    goto LAB_00137c65;\n                  }\n                  local_74 = *__s + -0x30 + local_74 * 10;\n                } while ((int)local_74 < 0x10000);\n                iVar15 = 4;\n              }\n              else {\n                iVar15 = 4;\n              }\n              goto LAB_00137c65;\n            }\n            local_74 = 0;\n          }" if (parenthesized_expression "(__s != pcVar7)" ( (binary_expression "__s != pcVar7" identifier != identifier) )) (compound_statement "{\n            if (__s < pcVar7) {\n              local_74 = (int)pcVar6[1] - 0x30;\n              if (local_74 < 10) {\n                do {\n                  __s = __s + 1;\n                  if (__s == pcVar7) goto LAB_00137584;\n                  if (9 < (int)*__s - 0x30U) {\n                    iVar15 = 4;\n                    goto LAB_00137c65;\n                  }\n                  local_74 = *__s + -0x30 + local_74 * 10;\n                } while ((int)local_74 < 0x10000);\n                iVar15 = 4;\n              }\n              else {\n                iVar15 = 4;\n              }\n              goto LAB_00137c65;\n            }\n            local_74 = 0;\n          }" { (if_statement "if (__s < pcVar7) {\n              local_74 = (int)pcVar6[1] - 0x30;\n              if (local_74 < 10) {\n                do {\n                  __s = __s + 1;\n                  if (__s == pcVar7) goto LAB_00137584;\n                  if (9 < (int)*__s - 0x30U) {\n                    iVar15 = 4;\n                    goto LAB_00137c65;\n                  }\n                  local_74 = *__s + -0x30 + local_74 * 10;\n                } while ((int)local_74 < 0x10000);\n                iVar15 = 4;\n              }\n              else {\n                iVar15 = 4;\n              }\n              goto LAB_00137c65;\n            }" if (parenthesized_expression "(__s < pcVar7)" ( (binary_expression "__s < pcVar7" identifier < identifier) )) (compound_statement "{\n              local_74 = (int)pcVar6[1] - 0x30;\n              if (local_74 < 10) {\n                do {\n                  __s = __s + 1;\n                  if (__s == pcVar7) goto LAB_00137584;\n                  if (9 < (int)*__s - 0x30U) {\n                    iVar15 = 4;\n                    goto LAB_00137c65;\n                  }\n                  local_74 = *__s + -0x30 + local_74 * 10;\n                } while ((int)local_74 < 0x10000);\n                iVar15 = 4;\n              }\n              else {\n                iVar15 = 4;\n              }\n              goto LAB_00137c65;\n            }" { (expression_statement "local_74 = (int)pcVar6[1] - 0x30;" (assignment_expression "local_74 = (int)pcVar6[1] - 0x30" identifier = (binary_expression "(int)pcVar6[1] - 0x30" (cast_expression "(int)pcVar6[1]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pcVar6[1]" identifier [ number_literal ])) - number_literal)) ;) (if_statement "if (local_74 < 10) {\n                do {\n                  __s = __s + 1;\n                  if (__s == pcVar7) goto LAB_00137584;\n                  if (9 < (int)*__s - 0x30U) {\n                    iVar15 = 4;\n                    goto LAB_00137c65;\n                  }\n                  local_74 = *__s + -0x30 + local_74 * 10;\n                } while ((int)local_74 < 0x10000);\n                iVar15 = 4;\n              }\n              else {\n                iVar15 = 4;\n              }" if (parenthesized_expression "(local_74 < 10)" ( (binary_expression "local_74 < 10" identifier < number_literal) )) (compound_statement "{\n                do {\n                  __s = __s + 1;\n                  if (__s == pcVar7) goto LAB_00137584;\n                  if (9 < (int)*__s - 0x30U) {\n                    iVar15 = 4;\n                    goto LAB_00137c65;\n                  }\n                  local_74 = *__s + -0x30 + local_74 * 10;\n                } while ((int)local_74 < 0x10000);\n                iVar15 = 4;\n              }" { (do_statement "do {\n                  __s = __s + 1;\n                  if (__s == pcVar7) goto LAB_00137584;\n                  if (9 < (int)*__s - 0x30U) {\n                    iVar15 = 4;\n                    goto LAB_00137c65;\n                  }\n                  local_74 = *__s + -0x30 + local_74 * 10;\n                } while ((int)local_74 < 0x10000);" do (compound_statement "{\n                  __s = __s + 1;\n                  if (__s == pcVar7) goto LAB_00137584;\n                  if (9 < (int)*__s - 0x30U) {\n                    iVar15 = 4;\n                    goto LAB_00137c65;\n                  }\n                  local_74 = *__s + -0x30 + local_74 * 10;\n                }" { (expression_statement "__s = __s + 1;" (assignment_expression "__s = __s + 1" identifier = (binary_expression "__s + 1" identifier + number_literal)) ;) (if_statement "if (__s == pcVar7) goto LAB_00137584;" if (parenthesized_expression "(__s == pcVar7)" ( (binary_expression "__s == pcVar7" identifier == identifier) )) (goto_statement "goto LAB_00137584;" goto statement_identifier ;)) (if_statement "if (9 < (int)*__s - 0x30U) {\n                    iVar15 = 4;\n                    goto LAB_00137c65;\n                  }" if (parenthesized_expression "(9 < (int)*__s - 0x30U)" ( (binary_expression "9 < (int)*__s - 0x30U" number_literal < (binary_expression "(int)*__s - 0x30U" (cast_expression "(int)*__s" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*__s" * identifier)) - number_literal)) )) (compound_statement "{\n                    iVar15 = 4;\n                    goto LAB_00137c65;\n                  }" { (expression_statement "iVar15 = 4;" (assignment_expression "iVar15 = 4" identifier = number_literal) ;) (goto_statement "goto LAB_00137c65;" goto statement_identifier ;) })) (expression_statement "local_74 = *__s + -0x30 + local_74 * 10;" (assignment_expression "local_74 = *__s + -0x30 + local_74 * 10" identifier = (binary_expression "*__s + -0x30 + local_74 * 10" (binary_expression "*__s + -0x30" (pointer_expression "*__s" * identifier) + number_literal) + (binary_expression "local_74 * 10" identifier * number_literal))) ;) }) while (parenthesized_expression "((int)local_74 < 0x10000)" ( (binary_expression "(int)local_74 < 0x10000" (cast_expression "(int)local_74" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) ;) (expression_statement "iVar15 = 4;" (assignment_expression "iVar15 = 4" identifier = number_literal) ;) }) (else_clause "else {\n                iVar15 = 4;\n              }" else (compound_statement "{\n                iVar15 = 4;\n              }" { (expression_statement "iVar15 = 4;" (assignment_expression "iVar15 = 4" identifier = number_literal) ;) }))) (goto_statement "goto LAB_00137c65;" goto statement_identifier ;) })) (expression_statement "local_74 = 0;" (assignment_expression "local_74 = 0" identifier = number_literal) ;) })) })) (labeled_statement "LAB_00137584:\n        local_80 = (char *)0x0;" statement_identifier : (expression_statement "local_80 = (char *)0x0;" (assignment_expression "local_80 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "local_88 = (char *)0x0;" (assignment_expression "local_88 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar6 = pcVar7;" (assignment_expression "pcVar6 = pcVar7" identifier = identifier) ;) (if_statement "if (*pcVar7 == '/') {\n          local_88 = pcVar7 + 1;\n          pcVar6 = strpbrk(local_88,pcVar5 + 2);\n          local_80 = pcVar6;\n          if (pcVar6 == (char *)0x0) {\n            uVar13 = 0xffffffffffffffff;\n            pcVar6 = local_88;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');\n            pcVar6 = pcVar7 + ~uVar13;\n            local_80 = pcVar6;\n          }\n        }" if (parenthesized_expression "(*pcVar7 == '/')" ( (binary_expression "*pcVar7 == '/'" (pointer_expression "*pcVar7" * identifier) == (char_literal "'/'" ' character ')) )) (compound_statement "{\n          local_88 = pcVar7 + 1;\n          pcVar6 = strpbrk(local_88,pcVar5 + 2);\n          local_80 = pcVar6;\n          if (pcVar6 == (char *)0x0) {\n            uVar13 = 0xffffffffffffffff;\n            pcVar6 = local_88;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');\n            pcVar6 = pcVar7 + ~uVar13;\n            local_80 = pcVar6;\n          }\n        }" { (expression_statement "local_88 = pcVar7 + 1;" (assignment_expression "local_88 = pcVar7 + 1" identifier = (binary_expression "pcVar7 + 1" identifier + number_literal)) ;) (expression_statement "pcVar6 = strpbrk(local_88,pcVar5 + 2);" (assignment_expression "pcVar6 = strpbrk(local_88,pcVar5 + 2)" identifier = (call_expression "strpbrk(local_88,pcVar5 + 2)" identifier (argument_list "(local_88,pcVar5 + 2)" ( identifier , (binary_expression "pcVar5 + 2" identifier + number_literal) )))) ;) (expression_statement "local_80 = pcVar6;" (assignment_expression "local_80 = pcVar6" identifier = identifier) ;) (if_statement "if (pcVar6 == (char *)0x0) {\n            uVar13 = 0xffffffffffffffff;\n            pcVar6 = local_88;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');\n            pcVar6 = pcVar7 + ~uVar13;\n            local_80 = pcVar6;\n          }" if (parenthesized_expression "(pcVar6 == (char *)0x0)" ( (binary_expression "pcVar6 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            uVar13 = 0xffffffffffffffff;\n            pcVar6 = local_88;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');\n            pcVar6 = pcVar7 + ~uVar13;\n            local_80 = pcVar6;\n          }" { (expression_statement "uVar13 = 0xffffffffffffffff;" (assignment_expression "uVar13 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar6 = local_88;" (assignment_expression "pcVar6 = local_88" identifier = identifier) ;) (do_statement "do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');" do (compound_statement "{\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            }" { (if_statement "if (uVar13 == 0) break;" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar13 = uVar13 - 1;" (assignment_expression "uVar13 = uVar13 - 1" identifier = (binary_expression "uVar13 - 1" identifier - number_literal)) ;) (expression_statement "cVar3 = *pcVar6;" (assignment_expression "cVar3 = *pcVar6" identifier = (pointer_expression "*pcVar6" * identifier)) ;) (expression_statement "pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1" identifier = (binary_expression "pcVar6 + (ulong)bVar17 * -2 + 1" (binary_expression "pcVar6 + (ulong)bVar17 * -2" identifier + (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar3 != '\0')" ( (binary_expression "cVar3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "pcVar6 = pcVar7 + ~uVar13;" (assignment_expression "pcVar6 = pcVar7 + ~uVar13" identifier = (binary_expression "pcVar7 + ~uVar13" identifier + (unary_expression "~uVar13" ~ identifier))) ;) (expression_statement "local_80 = pcVar6;" (assignment_expression "local_80 = pcVar6" identifier = identifier) ;) })) })) (expression_statement "local_90 = pcVar5 + 3;" (assignment_expression "local_90 = pcVar5 + 3" identifier = (binary_expression "pcVar5 + 3" identifier + number_literal)) ;) (expression_statement "uVar2 = (&DAT_0016e354)[(ulong)uVar4 * 6];" (assignment_expression "uVar2 = (&DAT_0016e354)[(ulong)uVar4 * 6]" identifier = (subscript_expression "(&DAT_0016e354)[(ulong)uVar4 * 6]" (parenthesized_expression "(&DAT_0016e354)" ( (pointer_expression "&DAT_0016e354" & identifier) )) [ (binary_expression "(ulong)uVar4 * 6" (cast_expression "(ulong)uVar4" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal) ])) ;) (if_statement "if ((uVar2 & 2) == 0) {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n        }\n        else {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n          pcVar7 = pcVar6;\n          if (*pcVar6 == ';') {\n            local_70 = pcVar6 + 1;\n            pcVar7 = strpbrk(local_70,local_90);\n            local_60 = pcVar7;\n            if (pcVar7 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar7 = local_70;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar7;\n                pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar7 = pcVar6 + ~uVar13;\n              local_60 = pcVar7;\n            }\n          }\n          local_90 = pcVar5 + 4;\n          pcVar6 = pcVar7;\n        }" if (parenthesized_expression "((uVar2 & 2) == 0)" ( (binary_expression "(uVar2 & 2) == 0" (parenthesized_expression "(uVar2 & 2)" ( (binary_expression "uVar2 & 2" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n        }" { (expression_statement "local_60 = (char *)0x0;" (assignment_expression "local_60 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_70 = (char *)0x0;" (assignment_expression "local_70 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n          pcVar7 = pcVar6;\n          if (*pcVar6 == ';') {\n            local_70 = pcVar6 + 1;\n            pcVar7 = strpbrk(local_70,local_90);\n            local_60 = pcVar7;\n            if (pcVar7 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar7 = local_70;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar7;\n                pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar7 = pcVar6 + ~uVar13;\n              local_60 = pcVar7;\n            }\n          }\n          local_90 = pcVar5 + 4;\n          pcVar6 = pcVar7;\n        }" else (compound_statement "{\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n          pcVar7 = pcVar6;\n          if (*pcVar6 == ';') {\n            local_70 = pcVar6 + 1;\n            pcVar7 = strpbrk(local_70,local_90);\n            local_60 = pcVar7;\n            if (pcVar7 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar7 = local_70;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar7;\n                pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar7 = pcVar6 + ~uVar13;\n              local_60 = pcVar7;\n            }\n          }\n          local_90 = pcVar5 + 4;\n          pcVar6 = pcVar7;\n        }" { (expression_statement "local_60 = (char *)0x0;" (assignment_expression "local_60 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_70 = (char *)0x0;" (assignment_expression "local_70 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar7 = pcVar6;" (assignment_expression "pcVar7 = pcVar6" identifier = identifier) ;) (if_statement "if (*pcVar6 == ';') {\n            local_70 = pcVar6 + 1;\n            pcVar7 = strpbrk(local_70,local_90);\n            local_60 = pcVar7;\n            if (pcVar7 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar7 = local_70;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar7;\n                pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar7 = pcVar6 + ~uVar13;\n              local_60 = pcVar7;\n            }\n          }" if (parenthesized_expression "(*pcVar6 == ';')" ( (binary_expression "*pcVar6 == ';'" (pointer_expression "*pcVar6" * identifier) == (char_literal "';'" ' character ')) )) (compound_statement "{\n            local_70 = pcVar6 + 1;\n            pcVar7 = strpbrk(local_70,local_90);\n            local_60 = pcVar7;\n            if (pcVar7 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar7 = local_70;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar7;\n                pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar7 = pcVar6 + ~uVar13;\n              local_60 = pcVar7;\n            }\n          }" { (expression_statement "local_70 = pcVar6 + 1;" (assignment_expression "local_70 = pcVar6 + 1" identifier = (binary_expression "pcVar6 + 1" identifier + number_literal)) ;) (expression_statement "pcVar7 = strpbrk(local_70,local_90);" (assignment_expression "pcVar7 = strpbrk(local_70,local_90)" identifier = (call_expression "strpbrk(local_70,local_90)" identifier (argument_list "(local_70,local_90)" ( identifier , identifier )))) ;) (expression_statement "local_60 = pcVar7;" (assignment_expression "local_60 = pcVar7" identifier = identifier) ;) (if_statement "if (pcVar7 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar7 = local_70;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar7;\n                pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar7 = pcVar6 + ~uVar13;\n              local_60 = pcVar7;\n            }" if (parenthesized_expression "(pcVar7 == (char *)0x0)" ( (binary_expression "pcVar7 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              uVar13 = 0xffffffffffffffff;\n              pcVar7 = local_70;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar7;\n                pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar7 = pcVar6 + ~uVar13;\n              local_60 = pcVar7;\n            }" { (expression_statement "uVar13 = 0xffffffffffffffff;" (assignment_expression "uVar13 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar7 = local_70;" (assignment_expression "pcVar7 = local_70" identifier = identifier) ;) (do_statement "do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar7;\n                pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');" do (compound_statement "{\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar7;\n                pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n              }" { (if_statement "if (uVar13 == 0) break;" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar13 = uVar13 - 1;" (assignment_expression "uVar13 = uVar13 - 1" identifier = (binary_expression "uVar13 - 1" identifier - number_literal)) ;) (expression_statement "cVar3 = *pcVar7;" (assignment_expression "cVar3 = *pcVar7" identifier = (pointer_expression "*pcVar7" * identifier)) ;) (expression_statement "pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1" identifier = (binary_expression "pcVar7 + (ulong)bVar17 * -2 + 1" (binary_expression "pcVar7 + (ulong)bVar17 * -2" identifier + (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar3 != '\0')" ( (binary_expression "cVar3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "pcVar7 = pcVar6 + ~uVar13;" (assignment_expression "pcVar7 = pcVar6 + ~uVar13" identifier = (binary_expression "pcVar6 + ~uVar13" identifier + (unary_expression "~uVar13" ~ identifier))) ;) (expression_statement "local_60 = pcVar7;" (assignment_expression "local_60 = pcVar7" identifier = identifier) ;) })) })) (expression_statement "local_90 = pcVar5 + 4;" (assignment_expression "local_90 = pcVar5 + 4" identifier = (binary_expression "pcVar5 + 4" identifier + number_literal)) ;) (expression_statement "pcVar6 = pcVar7;" (assignment_expression "pcVar6 = pcVar7" identifier = identifier) ;) }))) (if_statement "if ((uVar2 & 4) == 0) {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n        }\n        else {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n          pcVar5 = pcVar6;\n          if (*pcVar6 == '?') {\n            local_b0 = pcVar6 + 1;\n            pcVar5 = strpbrk(local_b0,local_90);\n            local_58 = pcVar5;\n            if (pcVar5 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_b0;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar5 = pcVar6 + ~uVar13;\n              local_58 = pcVar5;\n            }\n          }\n          local_90 = local_90 + 1;\n          pcVar6 = pcVar5;\n        }" if (parenthesized_expression "((uVar2 & 4) == 0)" ( (binary_expression "(uVar2 & 4) == 0" (parenthesized_expression "(uVar2 & 4)" ( (binary_expression "uVar2 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n        }" { (expression_statement "local_58 = (char *)0x0;" (assignment_expression "local_58 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_b0 = (char *)0x0;" (assignment_expression "local_b0 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n          pcVar5 = pcVar6;\n          if (*pcVar6 == '?') {\n            local_b0 = pcVar6 + 1;\n            pcVar5 = strpbrk(local_b0,local_90);\n            local_58 = pcVar5;\n            if (pcVar5 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_b0;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar5 = pcVar6 + ~uVar13;\n              local_58 = pcVar5;\n            }\n          }\n          local_90 = local_90 + 1;\n          pcVar6 = pcVar5;\n        }" else (compound_statement "{\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n          pcVar5 = pcVar6;\n          if (*pcVar6 == '?') {\n            local_b0 = pcVar6 + 1;\n            pcVar5 = strpbrk(local_b0,local_90);\n            local_58 = pcVar5;\n            if (pcVar5 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_b0;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar5 = pcVar6 + ~uVar13;\n              local_58 = pcVar5;\n            }\n          }\n          local_90 = local_90 + 1;\n          pcVar6 = pcVar5;\n        }" { (expression_statement "local_58 = (char *)0x0;" (assignment_expression "local_58 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_b0 = (char *)0x0;" (assignment_expression "local_b0 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar5 = pcVar6;" (assignment_expression "pcVar5 = pcVar6" identifier = identifier) ;) (if_statement "if (*pcVar6 == '?') {\n            local_b0 = pcVar6 + 1;\n            pcVar5 = strpbrk(local_b0,local_90);\n            local_58 = pcVar5;\n            if (pcVar5 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_b0;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar5 = pcVar6 + ~uVar13;\n              local_58 = pcVar5;\n            }\n          }" if (parenthesized_expression "(*pcVar6 == '?')" ( (binary_expression "*pcVar6 == '?'" (pointer_expression "*pcVar6" * identifier) == (char_literal "'?'" ' character ')) )) (compound_statement "{\n            local_b0 = pcVar6 + 1;\n            pcVar5 = strpbrk(local_b0,local_90);\n            local_58 = pcVar5;\n            if (pcVar5 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_b0;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar5 = pcVar6 + ~uVar13;\n              local_58 = pcVar5;\n            }\n          }" { (expression_statement "local_b0 = pcVar6 + 1;" (assignment_expression "local_b0 = pcVar6 + 1" identifier = (binary_expression "pcVar6 + 1" identifier + number_literal)) ;) (expression_statement "pcVar5 = strpbrk(local_b0,local_90);" (assignment_expression "pcVar5 = strpbrk(local_b0,local_90)" identifier = (call_expression "strpbrk(local_b0,local_90)" identifier (argument_list "(local_b0,local_90)" ( identifier , identifier )))) ;) (expression_statement "local_58 = pcVar5;" (assignment_expression "local_58 = pcVar5" identifier = identifier) ;) (if_statement "if (pcVar5 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_b0;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar5 = pcVar6 + ~uVar13;\n              local_58 = pcVar5;\n            }" if (parenthesized_expression "(pcVar5 == (char *)0x0)" ( (binary_expression "pcVar5 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_b0;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar5 = pcVar6 + ~uVar13;\n              local_58 = pcVar5;\n            }" { (expression_statement "uVar13 = 0xffffffffffffffff;" (assignment_expression "uVar13 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar5 = local_b0;" (assignment_expression "pcVar5 = local_b0" identifier = identifier) ;) (do_statement "do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');" do (compound_statement "{\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              }" { (if_statement "if (uVar13 == 0) break;" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar13 = uVar13 - 1;" (assignment_expression "uVar13 = uVar13 - 1" identifier = (binary_expression "uVar13 - 1" identifier - number_literal)) ;) (expression_statement "cVar3 = *pcVar5;" (assignment_expression "cVar3 = *pcVar5" identifier = (pointer_expression "*pcVar5" * identifier)) ;) (expression_statement "pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1" identifier = (binary_expression "pcVar5 + (ulong)bVar17 * -2 + 1" (binary_expression "pcVar5 + (ulong)bVar17 * -2" identifier + (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar3 != '\0')" ( (binary_expression "cVar3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "pcVar5 = pcVar6 + ~uVar13;" (assignment_expression "pcVar5 = pcVar6 + ~uVar13" identifier = (binary_expression "pcVar6 + ~uVar13" identifier + (unary_expression "~uVar13" ~ identifier))) ;) (expression_statement "local_58 = pcVar5;" (assignment_expression "local_58 = pcVar5" identifier = identifier) ;) })) })) (expression_statement "local_90 = local_90 + 1;" (assignment_expression "local_90 = local_90 + 1" identifier = (binary_expression "local_90 + 1" identifier + number_literal)) ;) (expression_statement "pcVar6 = pcVar5;" (assignment_expression "pcVar6 = pcVar5" identifier = identifier) ;) }))) (if_statement "if ((uVar2 & 8) == 0) {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n        }\n        else {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n          if (*pcVar6 == '#') {\n            local_68 = pcVar6 + 1;\n            local_50 = strpbrk(local_68,local_90);\n            if (local_50 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_68;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              local_50 = pcVar6 + ~uVar13;\n            }\n          }\n        }" if (parenthesized_expression "((uVar2 & 8) == 0)" ( (binary_expression "(uVar2 & 8) == 0" (parenthesized_expression "(uVar2 & 8)" ( (binary_expression "uVar2 & 8" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n        }" { (expression_statement "local_50 = (char *)0x0;" (assignment_expression "local_50 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_68 = (char *)0x0;" (assignment_expression "local_68 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n          if (*pcVar6 == '#') {\n            local_68 = pcVar6 + 1;\n            local_50 = strpbrk(local_68,local_90);\n            if (local_50 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_68;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              local_50 = pcVar6 + ~uVar13;\n            }\n          }\n        }" else (compound_statement "{\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n          if (*pcVar6 == '#') {\n            local_68 = pcVar6 + 1;\n            local_50 = strpbrk(local_68,local_90);\n            if (local_50 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_68;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              local_50 = pcVar6 + ~uVar13;\n            }\n          }\n        }" { (expression_statement "local_50 = (char *)0x0;" (assignment_expression "local_50 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_68 = (char *)0x0;" (assignment_expression "local_68 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (*pcVar6 == '#') {\n            local_68 = pcVar6 + 1;\n            local_50 = strpbrk(local_68,local_90);\n            if (local_50 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_68;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              local_50 = pcVar6 + ~uVar13;\n            }\n          }" if (parenthesized_expression "(*pcVar6 == '#')" ( (binary_expression "*pcVar6 == '#'" (pointer_expression "*pcVar6" * identifier) == (char_literal "'#'" ' character ')) )) (compound_statement "{\n            local_68 = pcVar6 + 1;\n            local_50 = strpbrk(local_68,local_90);\n            if (local_50 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_68;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              local_50 = pcVar6 + ~uVar13;\n            }\n          }" { (expression_statement "local_68 = pcVar6 + 1;" (assignment_expression "local_68 = pcVar6 + 1" identifier = (binary_expression "pcVar6 + 1" identifier + number_literal)) ;) (expression_statement "local_50 = strpbrk(local_68,local_90);" (assignment_expression "local_50 = strpbrk(local_68,local_90)" identifier = (call_expression "strpbrk(local_68,local_90)" identifier (argument_list "(local_68,local_90)" ( identifier , identifier )))) ;) (if_statement "if (local_50 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_68;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              local_50 = pcVar6 + ~uVar13;\n            }" if (parenthesized_expression "(local_50 == (char *)0x0)" ( (binary_expression "local_50 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_68;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              local_50 = pcVar6 + ~uVar13;\n            }" { (expression_statement "uVar13 = 0xffffffffffffffff;" (assignment_expression "uVar13 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar5 = local_68;" (assignment_expression "pcVar5 = local_68" identifier = identifier) ;) (do_statement "do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');" do (compound_statement "{\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              }" { (if_statement "if (uVar13 == 0) break;" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar13 = uVar13 - 1;" (assignment_expression "uVar13 = uVar13 - 1" identifier = (binary_expression "uVar13 - 1" identifier - number_literal)) ;) (expression_statement "cVar3 = *pcVar5;" (assignment_expression "cVar3 = *pcVar5" identifier = (pointer_expression "*pcVar5" * identifier)) ;) (expression_statement "pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1" identifier = (binary_expression "pcVar5 + (ulong)bVar17 * -2 + 1" (binary_expression "pcVar5 + (ulong)bVar17 * -2" identifier + (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar3 != '\0')" ( (binary_expression "cVar3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "local_50 = pcVar6 + ~uVar13;" (assignment_expression "local_50 = pcVar6 + ~uVar13" identifier = (binary_expression "pcVar6 + ~uVar13" identifier + (unary_expression "~uVar13" ~ identifier))) ;) })) })) }))) (if_statement "if (pcVar11 == pcVar14) {\n          pcVar5 = (char *)0x0;\n          uVar8 = 0;\nLAB_001379c6:\n          piVar9 = (int *)FUN_0014967c(1,0x60);\n          piVar9[2] = uVar4;\n          uVar10 = FUN_0013a40c(local_a8,local_a0);\n          *(undefined8 *)(piVar9 + 4) = uVar10;\n          piVar9[6] = local_74;\n          *(undefined8 *)(piVar9 + 0x14) = uVar8;\n          *(char **)(piVar9 + 0x16) = pcVar5;\n          pcVar11 = (char *)FUN_0013a40c(local_88,local_80);\n          *(char **)(piVar9 + 8) = pcVar11;\n          uVar13 = 0xffffffffffffffff;\n          pcVar14 = pcVar11;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar3 = *pcVar14;\n            pcVar14 = pcVar14 + (ulong)bVar17 * -2 + 1;\n          } while (cVar3 != '\0');\n          pcVar14 = pcVar11 + (~uVar13 - 1);\n          pcVar5 = pcVar11;\n          if (pcVar11 < pcVar14) {\n            pcVar7 = pcVar11;\n            pcVar6 = pcVar11;\n            do {\n              cVar3 = *pcVar11;\n              if (cVar3 == '.') {\n                cVar1 = pcVar11[1];\n                if ((cVar1 == '/') || (cVar1 == '\0')) {\n                  pcVar11 = pcVar11 + 2;\n                }\n                else {\n                  if ((cVar1 != '.') || ((pcVar11[2] != '/' && (pcVar11[2] != '\0'))))\n                  goto LAB_00137e1d;\n                  if (pcVar6 < pcVar7) {\n                    pcVar5 = pcVar7 + -1;\n                    if (pcVar6 < pcVar5) {\n                      cVar3 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar3 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar3 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar5 = pcVar7;\n                    if (uVar4 - 2 < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }\n                  pcVar11 = pcVar11 + 3;\n                  pcVar7 = pcVar5;\n                }\n              }\n              else {\nLAB_00137e1d:\n                if (pcVar7 == pcVar11) {\n                  pcVar5 = pcVar7;\n                  if (pcVar14 <= pcVar7) break;\n                  cVar3 = *pcVar7;\n                  while (cVar3 != '/') {\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar14;\n                    if (pcVar14 == pcVar5) goto LAB_00137d7b;\n                    cVar3 = *pcVar5;\n                  }\n                  pcVar11 = pcVar5 + 1;\n                  pcVar7 = pcVar5 + 1;\n                }\n                else {\n                  pcVar5 = pcVar11;\n                  if (pcVar14 <= pcVar11) break;\n                  while (cVar3 != '/') {\n                    pcVar11 = pcVar11 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar3;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar14;\n                    if (pcVar14 == pcVar11) goto LAB_00137d7b;\n                    cVar3 = *pcVar11;\n                  }\n                  *pcVar7 = *pcVar11;\n                  pcVar11 = pcVar11 + 1;\n                  pcVar7 = pcVar7 + 1;\n                }\n              }\n              pcVar5 = pcVar11;\n            } while (pcVar11 < pcVar14);\nLAB_00137d7b:\n            pcVar11 = pcVar7;\n            if (pcVar5 != pcVar7) {\n              *pcVar7 = '\0';\n            }\n          }\n          pcVar14 = *(char **)(piVar9 + 8);\n          pcVar6 = strrchr(pcVar14,0x2f);\n          if (pcVar6 == (char *)0x0) {\n            uVar8 = FUN_001496d9(&DAT_0015ea35);\n            *(undefined8 *)(piVar9 + 0x10) = uVar8;\n            uVar8 = FUN_001496d9(pcVar14);\n            *(undefined8 *)(piVar9 + 0x12) = uVar8;\n          }\n          else {\n            uVar8 = FUN_0013a40c(pcVar14,pcVar6);\n            *(undefined8 *)(piVar9 + 0x10) = uVar8;\n            uVar8 = FUN_001496d9(pcVar6 + 1);\n            *(undefined8 *)(piVar9 + 0x12) = uVar8;\n          }\n          FUN_00135c58(*(undefined8 *)(piVar9 + 0x10));\n          FUN_00135c58(*(undefined8 *)(piVar9 + 0x12));\n          pcVar14 = *(char **)(piVar9 + 4);\n          cVar3 = *pcVar14;\n          if (cVar3 == '\0') {\n            bVar17 = 0;\n          }\n          else {\n            bVar17 = 0;\n            do {\n              if ((int)cVar3 - 0x41U < 0x1a) {\n                *pcVar14 = cVar3 + ' ';\n                bVar17 = 1;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            } while (cVar3 != '\0');\n          }\n          pcVar14 = *(char **)(piVar9 + 4);\n          pcVar6 = strchr(pcVar14,0x25);\n          if (pcVar6 != (char *)0x0) {\n            FUN_00135c58(pcVar14);\n            pcVar14 = *(char **)(piVar9 + 4);\n            cVar3 = *pcVar14;\n            while (cVar3 != '\0') {\n              if ((-1 < cVar3) && ((cVar3 < ' ' || (cVar3 == '\x7f')))) {\n                FUN_0013629a(piVar9);\n                iVar15 = 3;\n                goto LAB_00137c65;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            }\n            bVar17 = param_3 != 0 & DAT_00177606;\n            if (bVar17 == 0) {\n              bVar17 = 1;\n            }\n            else {\n              lVar12 = FUN_0013eaa4(param_3);\n              if (lVar12 != 0) {\n                free(*(void **)(piVar9 + 4));\n                *(long *)(piVar9 + 4) = lVar12;\n              }\n            }\n          }\n          if (local_70 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_70,local_60);\n            *(undefined8 *)(piVar9 + 10) = uVar8;\n          }\n          if (local_b0 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_b0,local_58);\n            *(undefined8 *)(piVar9 + 0xc) = uVar8;\n          }\n          if (local_68 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_68,local_50);\n            *(undefined8 *)(piVar9 + 0xe) = uVar8;\n          }\n          param_2 = piVar9;\n          if ((((DAT_00177606 == 0) && (pcVar5 == pcVar11)) && (*(long *)(piVar9 + 0xe) == 0)) &&\n             ((local_88 != local_80 && (bVar17 == 0)))) {\n            if (local_b8 == param_1) {\n              uVar8 = FUN_001496d9(param_1);\n              *(undefined8 *)piVar9 = uVar8;\n            }\n            else {\n              *(void **)piVar9 = local_b8;\n            }\n          }\n          else {\n            uVar8 = FUN_00137051(piVar9,0);\n            *(undefined8 *)piVar9 = uVar8;\n            if (local_b8 != param_1) {\n              free(local_b8);\n            }\n          }\n          goto LAB_00137c95;\n        }" if (parenthesized_expression "(pcVar11 == pcVar14)" ( (binary_expression "pcVar11 == pcVar14" identifier == identifier) )) (compound_statement "{\n          pcVar5 = (char *)0x0;\n          uVar8 = 0;\nLAB_001379c6:\n          piVar9 = (int *)FUN_0014967c(1,0x60);\n          piVar9[2] = uVar4;\n          uVar10 = FUN_0013a40c(local_a8,local_a0);\n          *(undefined8 *)(piVar9 + 4) = uVar10;\n          piVar9[6] = local_74;\n          *(undefined8 *)(piVar9 + 0x14) = uVar8;\n          *(char **)(piVar9 + 0x16) = pcVar5;\n          pcVar11 = (char *)FUN_0013a40c(local_88,local_80);\n          *(char **)(piVar9 + 8) = pcVar11;\n          uVar13 = 0xffffffffffffffff;\n          pcVar14 = pcVar11;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar3 = *pcVar14;\n            pcVar14 = pcVar14 + (ulong)bVar17 * -2 + 1;\n          } while (cVar3 != '\0');\n          pcVar14 = pcVar11 + (~uVar13 - 1);\n          pcVar5 = pcVar11;\n          if (pcVar11 < pcVar14) {\n            pcVar7 = pcVar11;\n            pcVar6 = pcVar11;\n            do {\n              cVar3 = *pcVar11;\n              if (cVar3 == '.') {\n                cVar1 = pcVar11[1];\n                if ((cVar1 == '/') || (cVar1 == '\0')) {\n                  pcVar11 = pcVar11 + 2;\n                }\n                else {\n                  if ((cVar1 != '.') || ((pcVar11[2] != '/' && (pcVar11[2] != '\0'))))\n                  goto LAB_00137e1d;\n                  if (pcVar6 < pcVar7) {\n                    pcVar5 = pcVar7 + -1;\n                    if (pcVar6 < pcVar5) {\n                      cVar3 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar3 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar3 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar5 = pcVar7;\n                    if (uVar4 - 2 < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }\n                  pcVar11 = pcVar11 + 3;\n                  pcVar7 = pcVar5;\n                }\n              }\n              else {\nLAB_00137e1d:\n                if (pcVar7 == pcVar11) {\n                  pcVar5 = pcVar7;\n                  if (pcVar14 <= pcVar7) break;\n                  cVar3 = *pcVar7;\n                  while (cVar3 != '/') {\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar14;\n                    if (pcVar14 == pcVar5) goto LAB_00137d7b;\n                    cVar3 = *pcVar5;\n                  }\n                  pcVar11 = pcVar5 + 1;\n                  pcVar7 = pcVar5 + 1;\n                }\n                else {\n                  pcVar5 = pcVar11;\n                  if (pcVar14 <= pcVar11) break;\n                  while (cVar3 != '/') {\n                    pcVar11 = pcVar11 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar3;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar14;\n                    if (pcVar14 == pcVar11) goto LAB_00137d7b;\n                    cVar3 = *pcVar11;\n                  }\n                  *pcVar7 = *pcVar11;\n                  pcVar11 = pcVar11 + 1;\n                  pcVar7 = pcVar7 + 1;\n                }\n              }\n              pcVar5 = pcVar11;\n            } while (pcVar11 < pcVar14);\nLAB_00137d7b:\n            pcVar11 = pcVar7;\n            if (pcVar5 != pcVar7) {\n              *pcVar7 = '\0';\n            }\n          }\n          pcVar14 = *(char **)(piVar9 + 8);\n          pcVar6 = strrchr(pcVar14,0x2f);\n          if (pcVar6 == (char *)0x0) {\n            uVar8 = FUN_001496d9(&DAT_0015ea35);\n            *(undefined8 *)(piVar9 + 0x10) = uVar8;\n            uVar8 = FUN_001496d9(pcVar14);\n            *(undefined8 *)(piVar9 + 0x12) = uVar8;\n          }\n          else {\n            uVar8 = FUN_0013a40c(pcVar14,pcVar6);\n            *(undefined8 *)(piVar9 + 0x10) = uVar8;\n            uVar8 = FUN_001496d9(pcVar6 + 1);\n            *(undefined8 *)(piVar9 + 0x12) = uVar8;\n          }\n          FUN_00135c58(*(undefined8 *)(piVar9 + 0x10));\n          FUN_00135c58(*(undefined8 *)(piVar9 + 0x12));\n          pcVar14 = *(char **)(piVar9 + 4);\n          cVar3 = *pcVar14;\n          if (cVar3 == '\0') {\n            bVar17 = 0;\n          }\n          else {\n            bVar17 = 0;\n            do {\n              if ((int)cVar3 - 0x41U < 0x1a) {\n                *pcVar14 = cVar3 + ' ';\n                bVar17 = 1;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            } while (cVar3 != '\0');\n          }\n          pcVar14 = *(char **)(piVar9 + 4);\n          pcVar6 = strchr(pcVar14,0x25);\n          if (pcVar6 != (char *)0x0) {\n            FUN_00135c58(pcVar14);\n            pcVar14 = *(char **)(piVar9 + 4);\n            cVar3 = *pcVar14;\n            while (cVar3 != '\0') {\n              if ((-1 < cVar3) && ((cVar3 < ' ' || (cVar3 == '\x7f')))) {\n                FUN_0013629a(piVar9);\n                iVar15 = 3;\n                goto LAB_00137c65;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            }\n            bVar17 = param_3 != 0 & DAT_00177606;\n            if (bVar17 == 0) {\n              bVar17 = 1;\n            }\n            else {\n              lVar12 = FUN_0013eaa4(param_3);\n              if (lVar12 != 0) {\n                free(*(void **)(piVar9 + 4));\n                *(long *)(piVar9 + 4) = lVar12;\n              }\n            }\n          }\n          if (local_70 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_70,local_60);\n            *(undefined8 *)(piVar9 + 10) = uVar8;\n          }\n          if (local_b0 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_b0,local_58);\n            *(undefined8 *)(piVar9 + 0xc) = uVar8;\n          }\n          if (local_68 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_68,local_50);\n            *(undefined8 *)(piVar9 + 0xe) = uVar8;\n          }\n          param_2 = piVar9;\n          if ((((DAT_00177606 == 0) && (pcVar5 == pcVar11)) && (*(long *)(piVar9 + 0xe) == 0)) &&\n             ((local_88 != local_80 && (bVar17 == 0)))) {\n            if (local_b8 == param_1) {\n              uVar8 = FUN_001496d9(param_1);\n              *(undefined8 *)piVar9 = uVar8;\n            }\n            else {\n              *(void **)piVar9 = local_b8;\n            }\n          }\n          else {\n            uVar8 = FUN_00137051(piVar9,0);\n            *(undefined8 *)piVar9 = uVar8;\n            if (local_b8 != param_1) {\n              free(local_b8);\n            }\n          }\n          goto LAB_00137c95;\n        }" { (expression_statement "pcVar5 = (char *)0x0;" (assignment_expression "pcVar5 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) (labeled_statement "LAB_001379c6:\n          piVar9 = (int *)FUN_0014967c(1,0x60);" statement_identifier : (expression_statement "piVar9 = (int *)FUN_0014967c(1,0x60);" (assignment_expression "piVar9 = (int *)FUN_0014967c(1,0x60)" identifier = (cast_expression "(int *)FUN_0014967c(1,0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0014967c(1,0x60)" identifier (argument_list "(1,0x60)" ( number_literal , number_literal ))))) ;)) (expression_statement "piVar9[2] = uVar4;" (assignment_expression "piVar9[2] = uVar4" (subscript_expression "piVar9[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar10 = FUN_0013a40c(local_a8,local_a0);" (assignment_expression "uVar10 = FUN_0013a40c(local_a8,local_a0)" identifier = (call_expression "FUN_0013a40c(local_a8,local_a0)" identifier (argument_list "(local_a8,local_a0)" ( identifier , identifier )))) ;) (expression_statement "*(undefined8 *)(piVar9 + 4) = uVar10;" (assignment_expression "*(undefined8 *)(piVar9 + 4) = uVar10" (pointer_expression "*(undefined8 *)(piVar9 + 4)" * (cast_expression "(undefined8 *)(piVar9 + 4)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar9 + 4)" ( (binary_expression "piVar9 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "piVar9[6] = local_74;" (assignment_expression "piVar9[6] = local_74" (subscript_expression "piVar9[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined8 *)(piVar9 + 0x14) = uVar8;" (assignment_expression "*(undefined8 *)(piVar9 + 0x14) = uVar8" (pointer_expression "*(undefined8 *)(piVar9 + 0x14)" * (cast_expression "(undefined8 *)(piVar9 + 0x14)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar9 + 0x14)" ( (binary_expression "piVar9 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(char **)(piVar9 + 0x16) = pcVar5;" (assignment_expression "*(char **)(piVar9 + 0x16) = pcVar5" (pointer_expression "*(char **)(piVar9 + 0x16)" * (cast_expression "(char **)(piVar9 + 0x16)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar9 + 0x16)" ( (binary_expression "piVar9 + 0x16" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar11 = (char *)FUN_0013a40c(local_88,local_80);" (assignment_expression "pcVar11 = (char *)FUN_0013a40c(local_88,local_80)" identifier = (cast_expression "(char *)FUN_0013a40c(local_88,local_80)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0013a40c(local_88,local_80)" identifier (argument_list "(local_88,local_80)" ( identifier , identifier ))))) ;) (expression_statement "*(char **)(piVar9 + 8) = pcVar11;" (assignment_expression "*(char **)(piVar9 + 8) = pcVar11" (pointer_expression "*(char **)(piVar9 + 8)" * (cast_expression "(char **)(piVar9 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar9 + 8)" ( (binary_expression "piVar9 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar13 = 0xffffffffffffffff;" (assignment_expression "uVar13 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar14 = pcVar11;" (assignment_expression "pcVar14 = pcVar11" identifier = identifier) ;) (do_statement "do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar3 = *pcVar14;\n            pcVar14 = pcVar14 + (ulong)bVar17 * -2 + 1;\n          } while (cVar3 != '\0');" do (compound_statement "{\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar3 = *pcVar14;\n            pcVar14 = pcVar14 + (ulong)bVar17 * -2 + 1;\n          }" { (if_statement "if (uVar13 == 0) break;" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar13 = uVar13 - 1;" (assignment_expression "uVar13 = uVar13 - 1" identifier = (binary_expression "uVar13 - 1" identifier - number_literal)) ;) (expression_statement "cVar3 = *pcVar14;" (assignment_expression "cVar3 = *pcVar14" identifier = (pointer_expression "*pcVar14" * identifier)) ;) (expression_statement "pcVar14 = pcVar14 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pcVar14 = pcVar14 + (ulong)bVar17 * -2 + 1" identifier = (binary_expression "pcVar14 + (ulong)bVar17 * -2 + 1" (binary_expression "pcVar14 + (ulong)bVar17 * -2" identifier + (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar3 != '\0')" ( (binary_expression "cVar3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "pcVar14 = pcVar11 + (~uVar13 - 1);" (assignment_expression "pcVar14 = pcVar11 + (~uVar13 - 1)" identifier = (binary_expression "pcVar11 + (~uVar13 - 1)" identifier + (parenthesized_expression "(~uVar13 - 1)" ( (binary_expression "~uVar13 - 1" (unary_expression "~uVar13" ~ identifier) - number_literal) )))) ;) (expression_statement "pcVar5 = pcVar11;" (assignment_expression "pcVar5 = pcVar11" identifier = identifier) ;) (if_statement "if (pcVar11 < pcVar14) {\n            pcVar7 = pcVar11;\n            pcVar6 = pcVar11;\n            do {\n              cVar3 = *pcVar11;\n              if (cVar3 == '.') {\n                cVar1 = pcVar11[1];\n                if ((cVar1 == '/') || (cVar1 == '\0')) {\n                  pcVar11 = pcVar11 + 2;\n                }\n                else {\n                  if ((cVar1 != '.') || ((pcVar11[2] != '/' && (pcVar11[2] != '\0'))))\n                  goto LAB_00137e1d;\n                  if (pcVar6 < pcVar7) {\n                    pcVar5 = pcVar7 + -1;\n                    if (pcVar6 < pcVar5) {\n                      cVar3 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar3 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar3 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar5 = pcVar7;\n                    if (uVar4 - 2 < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }\n                  pcVar11 = pcVar11 + 3;\n                  pcVar7 = pcVar5;\n                }\n              }\n              else {\nLAB_00137e1d:\n                if (pcVar7 == pcVar11) {\n                  pcVar5 = pcVar7;\n                  if (pcVar14 <= pcVar7) break;\n                  cVar3 = *pcVar7;\n                  while (cVar3 != '/') {\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar14;\n                    if (pcVar14 == pcVar5) goto LAB_00137d7b;\n                    cVar3 = *pcVar5;\n                  }\n                  pcVar11 = pcVar5 + 1;\n                  pcVar7 = pcVar5 + 1;\n                }\n                else {\n                  pcVar5 = pcVar11;\n                  if (pcVar14 <= pcVar11) break;\n                  while (cVar3 != '/') {\n                    pcVar11 = pcVar11 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar3;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar14;\n                    if (pcVar14 == pcVar11) goto LAB_00137d7b;\n                    cVar3 = *pcVar11;\n                  }\n                  *pcVar7 = *pcVar11;\n                  pcVar11 = pcVar11 + 1;\n                  pcVar7 = pcVar7 + 1;\n                }\n              }\n              pcVar5 = pcVar11;\n            } while (pcVar11 < pcVar14);\nLAB_00137d7b:\n            pcVar11 = pcVar7;\n            if (pcVar5 != pcVar7) {\n              *pcVar7 = '\0';\n            }\n          }" if (parenthesized_expression "(pcVar11 < pcVar14)" ( (binary_expression "pcVar11 < pcVar14" identifier < identifier) )) (compound_statement "{\n            pcVar7 = pcVar11;\n            pcVar6 = pcVar11;\n            do {\n              cVar3 = *pcVar11;\n              if (cVar3 == '.') {\n                cVar1 = pcVar11[1];\n                if ((cVar1 == '/') || (cVar1 == '\0')) {\n                  pcVar11 = pcVar11 + 2;\n                }\n                else {\n                  if ((cVar1 != '.') || ((pcVar11[2] != '/' && (pcVar11[2] != '\0'))))\n                  goto LAB_00137e1d;\n                  if (pcVar6 < pcVar7) {\n                    pcVar5 = pcVar7 + -1;\n                    if (pcVar6 < pcVar5) {\n                      cVar3 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar3 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar3 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar5 = pcVar7;\n                    if (uVar4 - 2 < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }\n                  pcVar11 = pcVar11 + 3;\n                  pcVar7 = pcVar5;\n                }\n              }\n              else {\nLAB_00137e1d:\n                if (pcVar7 == pcVar11) {\n                  pcVar5 = pcVar7;\n                  if (pcVar14 <= pcVar7) break;\n                  cVar3 = *pcVar7;\n                  while (cVar3 != '/') {\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar14;\n                    if (pcVar14 == pcVar5) goto LAB_00137d7b;\n                    cVar3 = *pcVar5;\n                  }\n                  pcVar11 = pcVar5 + 1;\n                  pcVar7 = pcVar5 + 1;\n                }\n                else {\n                  pcVar5 = pcVar11;\n                  if (pcVar14 <= pcVar11) break;\n                  while (cVar3 != '/') {\n                    pcVar11 = pcVar11 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar3;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar14;\n                    if (pcVar14 == pcVar11) goto LAB_00137d7b;\n                    cVar3 = *pcVar11;\n                  }\n                  *pcVar7 = *pcVar11;\n                  pcVar11 = pcVar11 + 1;\n                  pcVar7 = pcVar7 + 1;\n                }\n              }\n              pcVar5 = pcVar11;\n            } while (pcVar11 < pcVar14);\nLAB_00137d7b:\n            pcVar11 = pcVar7;\n            if (pcVar5 != pcVar7) {\n              *pcVar7 = '\0';\n            }\n          }" { (expression_statement "pcVar7 = pcVar11;" (assignment_expression "pcVar7 = pcVar11" identifier = identifier) ;) (expression_statement "pcVar6 = pcVar11;" (assignment_expression "pcVar6 = pcVar11" identifier = identifier) ;) (do_statement "do {\n              cVar3 = *pcVar11;\n              if (cVar3 == '.') {\n                cVar1 = pcVar11[1];\n                if ((cVar1 == '/') || (cVar1 == '\0')) {\n                  pcVar11 = pcVar11 + 2;\n                }\n                else {\n                  if ((cVar1 != '.') || ((pcVar11[2] != '/' && (pcVar11[2] != '\0'))))\n                  goto LAB_00137e1d;\n                  if (pcVar6 < pcVar7) {\n                    pcVar5 = pcVar7 + -1;\n                    if (pcVar6 < pcVar5) {\n                      cVar3 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar3 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar3 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar5 = pcVar7;\n                    if (uVar4 - 2 < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }\n                  pcVar11 = pcVar11 + 3;\n                  pcVar7 = pcVar5;\n                }\n              }\n              else {\nLAB_00137e1d:\n                if (pcVar7 == pcVar11) {\n                  pcVar5 = pcVar7;\n                  if (pcVar14 <= pcVar7) break;\n                  cVar3 = *pcVar7;\n                  while (cVar3 != '/') {\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar14;\n                    if (pcVar14 == pcVar5) goto LAB_00137d7b;\n                    cVar3 = *pcVar5;\n                  }\n                  pcVar11 = pcVar5 + 1;\n                  pcVar7 = pcVar5 + 1;\n                }\n                else {\n                  pcVar5 = pcVar11;\n                  if (pcVar14 <= pcVar11) break;\n                  while (cVar3 != '/') {\n                    pcVar11 = pcVar11 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar3;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar14;\n                    if (pcVar14 == pcVar11) goto LAB_00137d7b;\n                    cVar3 = *pcVar11;\n                  }\n                  *pcVar7 = *pcVar11;\n                  pcVar11 = pcVar11 + 1;\n                  pcVar7 = pcVar7 + 1;\n                }\n              }\n              pcVar5 = pcVar11;\n            } while (pcVar11 < pcVar14);" do (compound_statement "{\n              cVar3 = *pcVar11;\n              if (cVar3 == '.') {\n                cVar1 = pcVar11[1];\n                if ((cVar1 == '/') || (cVar1 == '\0')) {\n                  pcVar11 = pcVar11 + 2;\n                }\n                else {\n                  if ((cVar1 != '.') || ((pcVar11[2] != '/' && (pcVar11[2] != '\0'))))\n                  goto LAB_00137e1d;\n                  if (pcVar6 < pcVar7) {\n                    pcVar5 = pcVar7 + -1;\n                    if (pcVar6 < pcVar5) {\n                      cVar3 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar3 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar3 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar5 = pcVar7;\n                    if (uVar4 - 2 < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }\n                  pcVar11 = pcVar11 + 3;\n                  pcVar7 = pcVar5;\n                }\n              }\n              else {\nLAB_00137e1d:\n                if (pcVar7 == pcVar11) {\n                  pcVar5 = pcVar7;\n                  if (pcVar14 <= pcVar7) break;\n                  cVar3 = *pcVar7;\n                  while (cVar3 != '/') {\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar14;\n                    if (pcVar14 == pcVar5) goto LAB_00137d7b;\n                    cVar3 = *pcVar5;\n                  }\n                  pcVar11 = pcVar5 + 1;\n                  pcVar7 = pcVar5 + 1;\n                }\n                else {\n                  pcVar5 = pcVar11;\n                  if (pcVar14 <= pcVar11) break;\n                  while (cVar3 != '/') {\n                    pcVar11 = pcVar11 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar3;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar14;\n                    if (pcVar14 == pcVar11) goto LAB_00137d7b;\n                    cVar3 = *pcVar11;\n                  }\n                  *pcVar7 = *pcVar11;\n                  pcVar11 = pcVar11 + 1;\n                  pcVar7 = pcVar7 + 1;\n                }\n              }\n              pcVar5 = pcVar11;\n            }" { (expression_statement "cVar3 = *pcVar11;" (assignment_expression "cVar3 = *pcVar11" identifier = (pointer_expression "*pcVar11" * identifier)) ;) (if_statement "if (cVar3 == '.') {\n                cVar1 = pcVar11[1];\n                if ((cVar1 == '/') || (cVar1 == '\0')) {\n                  pcVar11 = pcVar11 + 2;\n                }\n                else {\n                  if ((cVar1 != '.') || ((pcVar11[2] != '/' && (pcVar11[2] != '\0'))))\n                  goto LAB_00137e1d;\n                  if (pcVar6 < pcVar7) {\n                    pcVar5 = pcVar7 + -1;\n                    if (pcVar6 < pcVar5) {\n                      cVar3 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar3 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar3 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar5 = pcVar7;\n                    if (uVar4 - 2 < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }\n                  pcVar11 = pcVar11 + 3;\n                  pcVar7 = pcVar5;\n                }\n              }\n              else {\nLAB_00137e1d:\n                if (pcVar7 == pcVar11) {\n                  pcVar5 = pcVar7;\n                  if (pcVar14 <= pcVar7) break;\n                  cVar3 = *pcVar7;\n                  while (cVar3 != '/') {\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar14;\n                    if (pcVar14 == pcVar5) goto LAB_00137d7b;\n                    cVar3 = *pcVar5;\n                  }\n                  pcVar11 = pcVar5 + 1;\n                  pcVar7 = pcVar5 + 1;\n                }\n                else {\n                  pcVar5 = pcVar11;\n                  if (pcVar14 <= pcVar11) break;\n                  while (cVar3 != '/') {\n                    pcVar11 = pcVar11 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar3;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar14;\n                    if (pcVar14 == pcVar11) goto LAB_00137d7b;\n                    cVar3 = *pcVar11;\n                  }\n                  *pcVar7 = *pcVar11;\n                  pcVar11 = pcVar11 + 1;\n                  pcVar7 = pcVar7 + 1;\n                }\n              }" if (parenthesized_expression "(cVar3 == '.')" ( (binary_expression "cVar3 == '.'" identifier == (char_literal "'.'" ' character ')) )) (compound_statement "{\n                cVar1 = pcVar11[1];\n                if ((cVar1 == '/') || (cVar1 == '\0')) {\n                  pcVar11 = pcVar11 + 2;\n                }\n                else {\n                  if ((cVar1 != '.') || ((pcVar11[2] != '/' && (pcVar11[2] != '\0'))))\n                  goto LAB_00137e1d;\n                  if (pcVar6 < pcVar7) {\n                    pcVar5 = pcVar7 + -1;\n                    if (pcVar6 < pcVar5) {\n                      cVar3 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar3 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar3 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar5 = pcVar7;\n                    if (uVar4 - 2 < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }\n                  pcVar11 = pcVar11 + 3;\n                  pcVar7 = pcVar5;\n                }\n              }" { (expression_statement "cVar1 = pcVar11[1];" (assignment_expression "cVar1 = pcVar11[1]" identifier = (subscript_expression "pcVar11[1]" identifier [ number_literal ])) ;) (if_statement "if ((cVar1 == '/') || (cVar1 == '\0')) {\n                  pcVar11 = pcVar11 + 2;\n                }\n                else {\n                  if ((cVar1 != '.') || ((pcVar11[2] != '/' && (pcVar11[2] != '\0'))))\n                  goto LAB_00137e1d;\n                  if (pcVar6 < pcVar7) {\n                    pcVar5 = pcVar7 + -1;\n                    if (pcVar6 < pcVar5) {\n                      cVar3 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar3 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar3 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar5 = pcVar7;\n                    if (uVar4 - 2 < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }\n                  pcVar11 = pcVar11 + 3;\n                  pcVar7 = pcVar5;\n                }" if (parenthesized_expression "((cVar1 == '/') || (cVar1 == '\0'))" ( (binary_expression "(cVar1 == '/') || (cVar1 == '\0')" (parenthesized_expression "(cVar1 == '/')" ( (binary_expression "cVar1 == '/'" identifier == (char_literal "'/'" ' character ')) )) || (parenthesized_expression "(cVar1 == '\0')" ( (binary_expression "cVar1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n                  pcVar11 = pcVar11 + 2;\n                }" { (expression_statement "pcVar11 = pcVar11 + 2;" (assignment_expression "pcVar11 = pcVar11 + 2" identifier = (binary_expression "pcVar11 + 2" identifier + number_literal)) ;) }) (else_clause "else {\n                  if ((cVar1 != '.') || ((pcVar11[2] != '/' && (pcVar11[2] != '\0'))))\n                  goto LAB_00137e1d;\n                  if (pcVar6 < pcVar7) {\n                    pcVar5 = pcVar7 + -1;\n                    if (pcVar6 < pcVar5) {\n                      cVar3 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar3 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar3 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar5 = pcVar7;\n                    if (uVar4 - 2 < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }\n                  pcVar11 = pcVar11 + 3;\n                  pcVar7 = pcVar5;\n                }" else (compound_statement "{\n                  if ((cVar1 != '.') || ((pcVar11[2] != '/' && (pcVar11[2] != '\0'))))\n                  goto LAB_00137e1d;\n                  if (pcVar6 < pcVar7) {\n                    pcVar5 = pcVar7 + -1;\n                    if (pcVar6 < pcVar5) {\n                      cVar3 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar3 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar3 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar5 = pcVar7;\n                    if (uVar4 - 2 < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }\n                  pcVar11 = pcVar11 + 3;\n                  pcVar7 = pcVar5;\n                }" { (if_statement "if ((cVar1 != '.') || ((pcVar11[2] != '/' && (pcVar11[2] != '\0'))))\n                  goto LAB_00137e1d;" if (parenthesized_expression "((cVar1 != '.') || ((pcVar11[2] != '/' && (pcVar11[2] != '\0'))))" ( (binary_expression "(cVar1 != '.') || ((pcVar11[2] != '/' && (pcVar11[2] != '\0')))" (parenthesized_expression "(cVar1 != '.')" ( (binary_expression "cVar1 != '.'" identifier != (char_literal "'.'" ' character ')) )) || (parenthesized_expression "((pcVar11[2] != '/' && (pcVar11[2] != '\0')))" ( (parenthesized_expression "(pcVar11[2] != '/' && (pcVar11[2] != '\0'))" ( (binary_expression "pcVar11[2] != '/' && (pcVar11[2] != '\0')" (binary_expression "pcVar11[2] != '/'" (subscript_expression "pcVar11[2]" identifier [ number_literal ]) != (char_literal "'/'" ' character ')) && (parenthesized_expression "(pcVar11[2] != '\0')" ( (binary_expression "pcVar11[2] != '\0'" (subscript_expression "pcVar11[2]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) ))) )) ))) )) (goto_statement "goto LAB_00137e1d;" goto statement_identifier ;)) (if_statement "if (pcVar6 < pcVar7) {\n                    pcVar5 = pcVar7 + -1;\n                    if (pcVar6 < pcVar5) {\n                      cVar3 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar3 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar3 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar5 = pcVar7;\n                    if (uVar4 - 2 < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }" if (parenthesized_expression "(pcVar6 < pcVar7)" ( (binary_expression "pcVar6 < pcVar7" identifier < identifier) )) (compound_statement "{\n                    pcVar5 = pcVar7 + -1;\n                    if (pcVar6 < pcVar5) {\n                      cVar3 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar3 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar3 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }\n                  }" { (expression_statement "pcVar5 = pcVar7 + -1;" (assignment_expression "pcVar5 = pcVar7 + -1" identifier = (binary_expression "pcVar7 + -1" identifier + number_literal)) ;) (if_statement "if (pcVar6 < pcVar5) {\n                      cVar3 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar3 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar3 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }" if (parenthesized_expression "(pcVar6 < pcVar5)" ( (binary_expression "pcVar6 < pcVar5" identifier < identifier) )) (compound_statement "{\n                      cVar3 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar3 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar3 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }" { (expression_statement "cVar3 = pcVar7[-2];" (assignment_expression "cVar3 = pcVar7[-2]" identifier = (subscript_expression "pcVar7[-2]" identifier [ number_literal ])) ;) (expression_statement "pcVar7 = pcVar5;" (assignment_expression "pcVar7 = pcVar5" identifier = identifier) ;) (while_statement "while ((pcVar5 = pcVar7, cVar3 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar3 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }" while (parenthesized_expression "((pcVar5 = pcVar7, cVar3 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5)))" ( (parenthesized_expression "(pcVar5 = pcVar7, cVar3 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))" ( (comma_expression "pcVar5 = pcVar7, cVar3 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5)" (assignment_expression "pcVar5 = pcVar7" identifier = identifier) , (binary_expression "cVar3 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5)" (binary_expression "cVar3 != '/'" identifier != (char_literal "'/'" ' character ')) && (parenthesized_expression "(pcVar5 = pcVar7 + -1, pcVar6 != pcVar5)" ( (comma_expression "pcVar5 = pcVar7 + -1, pcVar6 != pcVar5" (assignment_expression "pcVar5 = pcVar7 + -1" identifier = (binary_expression "pcVar7 + -1" identifier + number_literal)) , (binary_expression "pcVar6 != pcVar5" identifier != identifier)) )))) )) )) (compound_statement "{\n                        cVar3 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }" { (expression_statement "cVar3 = pcVar7[-2];" (assignment_expression "cVar3 = pcVar7[-2]" identifier = (subscript_expression "pcVar7[-2]" identifier [ number_literal ])) ;) (expression_statement "pcVar7 = pcVar5;" (assignment_expression "pcVar7 = pcVar5" identifier = identifier) ;) })) })) }) (else_clause "else {\n                    pcVar5 = pcVar7;\n                    if (uVar4 - 2 < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }" else (compound_statement "{\n                    pcVar5 = pcVar7;\n                    if (uVar4 - 2 < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }" { (expression_statement "pcVar5 = pcVar7;" (assignment_expression "pcVar5 = pcVar7" identifier = identifier) ;) (if_statement "if (uVar4 - 2 < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }" if (parenthesized_expression "(uVar4 - 2 < 2)" ( (binary_expression "uVar4 - 2 < 2" (binary_expression "uVar4 - 2" identifier - number_literal) < number_literal) )) (compound_statement "{\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }" { (expression_statement "pcVar6 = pcVar7 + 3;" (assignment_expression "pcVar6 = pcVar7 + 3" identifier = (binary_expression "pcVar7 + 3" identifier + number_literal)) ;) (goto_statement "goto LAB_00137e1d;" goto statement_identifier ;) })) }))) (expression_statement "pcVar11 = pcVar11 + 3;" (assignment_expression "pcVar11 = pcVar11 + 3" identifier = (binary_expression "pcVar11 + 3" identifier + number_literal)) ;) (expression_statement "pcVar7 = pcVar5;" (assignment_expression "pcVar7 = pcVar5" identifier = identifier) ;) }))) }) (else_clause "else {\nLAB_00137e1d:\n                if (pcVar7 == pcVar11) {\n                  pcVar5 = pcVar7;\n                  if (pcVar14 <= pcVar7) break;\n                  cVar3 = *pcVar7;\n                  while (cVar3 != '/') {\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar14;\n                    if (pcVar14 == pcVar5) goto LAB_00137d7b;\n                    cVar3 = *pcVar5;\n                  }\n                  pcVar11 = pcVar5 + 1;\n                  pcVar7 = pcVar5 + 1;\n                }\n                else {\n                  pcVar5 = pcVar11;\n                  if (pcVar14 <= pcVar11) break;\n                  while (cVar3 != '/') {\n                    pcVar11 = pcVar11 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar3;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar14;\n                    if (pcVar14 == pcVar11) goto LAB_00137d7b;\n                    cVar3 = *pcVar11;\n                  }\n                  *pcVar7 = *pcVar11;\n                  pcVar11 = pcVar11 + 1;\n                  pcVar7 = pcVar7 + 1;\n                }\n              }" else (compound_statement "{\nLAB_00137e1d:\n                if (pcVar7 == pcVar11) {\n                  pcVar5 = pcVar7;\n                  if (pcVar14 <= pcVar7) break;\n                  cVar3 = *pcVar7;\n                  while (cVar3 != '/') {\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar14;\n                    if (pcVar14 == pcVar5) goto LAB_00137d7b;\n                    cVar3 = *pcVar5;\n                  }\n                  pcVar11 = pcVar5 + 1;\n                  pcVar7 = pcVar5 + 1;\n                }\n                else {\n                  pcVar5 = pcVar11;\n                  if (pcVar14 <= pcVar11) break;\n                  while (cVar3 != '/') {\n                    pcVar11 = pcVar11 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar3;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar14;\n                    if (pcVar14 == pcVar11) goto LAB_00137d7b;\n                    cVar3 = *pcVar11;\n                  }\n                  *pcVar7 = *pcVar11;\n                  pcVar11 = pcVar11 + 1;\n                  pcVar7 = pcVar7 + 1;\n                }\n              }" { (labeled_statement "LAB_00137e1d:\n                if (pcVar7 == pcVar11) {\n                  pcVar5 = pcVar7;\n                  if (pcVar14 <= pcVar7) break;\n                  cVar3 = *pcVar7;\n                  while (cVar3 != '/') {\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar14;\n                    if (pcVar14 == pcVar5) goto LAB_00137d7b;\n                    cVar3 = *pcVar5;\n                  }\n                  pcVar11 = pcVar5 + 1;\n                  pcVar7 = pcVar5 + 1;\n                }\n                else {\n                  pcVar5 = pcVar11;\n                  if (pcVar14 <= pcVar11) break;\n                  while (cVar3 != '/') {\n                    pcVar11 = pcVar11 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar3;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar14;\n                    if (pcVar14 == pcVar11) goto LAB_00137d7b;\n                    cVar3 = *pcVar11;\n                  }\n                  *pcVar7 = *pcVar11;\n                  pcVar11 = pcVar11 + 1;\n                  pcVar7 = pcVar7 + 1;\n                }" statement_identifier : (if_statement "if (pcVar7 == pcVar11) {\n                  pcVar5 = pcVar7;\n                  if (pcVar14 <= pcVar7) break;\n                  cVar3 = *pcVar7;\n                  while (cVar3 != '/') {\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar14;\n                    if (pcVar14 == pcVar5) goto LAB_00137d7b;\n                    cVar3 = *pcVar5;\n                  }\n                  pcVar11 = pcVar5 + 1;\n                  pcVar7 = pcVar5 + 1;\n                }\n                else {\n                  pcVar5 = pcVar11;\n                  if (pcVar14 <= pcVar11) break;\n                  while (cVar3 != '/') {\n                    pcVar11 = pcVar11 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar3;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar14;\n                    if (pcVar14 == pcVar11) goto LAB_00137d7b;\n                    cVar3 = *pcVar11;\n                  }\n                  *pcVar7 = *pcVar11;\n                  pcVar11 = pcVar11 + 1;\n                  pcVar7 = pcVar7 + 1;\n                }" if (parenthesized_expression "(pcVar7 == pcVar11)" ( (binary_expression "pcVar7 == pcVar11" identifier == identifier) )) (compound_statement "{\n                  pcVar5 = pcVar7;\n                  if (pcVar14 <= pcVar7) break;\n                  cVar3 = *pcVar7;\n                  while (cVar3 != '/') {\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar14;\n                    if (pcVar14 == pcVar5) goto LAB_00137d7b;\n                    cVar3 = *pcVar5;\n                  }\n                  pcVar11 = pcVar5 + 1;\n                  pcVar7 = pcVar5 + 1;\n                }" { (expression_statement "pcVar5 = pcVar7;" (assignment_expression "pcVar5 = pcVar7" identifier = identifier) ;) (if_statement "if (pcVar14 <= pcVar7) break;" if (parenthesized_expression "(pcVar14 <= pcVar7)" ( (binary_expression "pcVar14 <= pcVar7" identifier <= identifier) )) (break_statement "break;" break ;)) (expression_statement "cVar3 = *pcVar7;" (assignment_expression "cVar3 = *pcVar7" identifier = (pointer_expression "*pcVar7" * identifier)) ;) (while_statement "while (cVar3 != '/') {\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar14;\n                    if (pcVar14 == pcVar5) goto LAB_00137d7b;\n                    cVar3 = *pcVar5;\n                  }" while (parenthesized_expression "(cVar3 != '/')" ( (binary_expression "cVar3 != '/'" identifier != (char_literal "'/'" ' character ')) )) (compound_statement "{\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar14;\n                    if (pcVar14 == pcVar5) goto LAB_00137d7b;\n                    cVar3 = *pcVar5;\n                  }" { (expression_statement "pcVar5 = pcVar5 + 1;" (assignment_expression "pcVar5 = pcVar5 + 1" identifier = (binary_expression "pcVar5 + 1" identifier + number_literal)) ;) (expression_statement "pcVar7 = pcVar14;" (assignment_expression "pcVar7 = pcVar14" identifier = identifier) ;) (if_statement "if (pcVar14 == pcVar5) goto LAB_00137d7b;" if (parenthesized_expression "(pcVar14 == pcVar5)" ( (binary_expression "pcVar14 == pcVar5" identifier == identifier) )) (goto_statement "goto LAB_00137d7b;" goto statement_identifier ;)) (expression_statement "cVar3 = *pcVar5;" (assignment_expression "cVar3 = *pcVar5" identifier = (pointer_expression "*pcVar5" * identifier)) ;) })) (expression_statement "pcVar11 = pcVar5 + 1;" (assignment_expression "pcVar11 = pcVar5 + 1" identifier = (binary_expression "pcVar5 + 1" identifier + number_literal)) ;) (expression_statement "pcVar7 = pcVar5 + 1;" (assignment_expression "pcVar7 = pcVar5 + 1" identifier = (binary_expression "pcVar5 + 1" identifier + number_literal)) ;) }) (else_clause "else {\n                  pcVar5 = pcVar11;\n                  if (pcVar14 <= pcVar11) break;\n                  while (cVar3 != '/') {\n                    pcVar11 = pcVar11 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar3;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar14;\n                    if (pcVar14 == pcVar11) goto LAB_00137d7b;\n                    cVar3 = *pcVar11;\n                  }\n                  *pcVar7 = *pcVar11;\n                  pcVar11 = pcVar11 + 1;\n                  pcVar7 = pcVar7 + 1;\n                }" else (compound_statement "{\n                  pcVar5 = pcVar11;\n                  if (pcVar14 <= pcVar11) break;\n                  while (cVar3 != '/') {\n                    pcVar11 = pcVar11 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar3;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar14;\n                    if (pcVar14 == pcVar11) goto LAB_00137d7b;\n                    cVar3 = *pcVar11;\n                  }\n                  *pcVar7 = *pcVar11;\n                  pcVar11 = pcVar11 + 1;\n                  pcVar7 = pcVar7 + 1;\n                }" { (expression_statement "pcVar5 = pcVar11;" (assignment_expression "pcVar5 = pcVar11" identifier = identifier) ;) (if_statement "if (pcVar14 <= pcVar11) break;" if (parenthesized_expression "(pcVar14 <= pcVar11)" ( (binary_expression "pcVar14 <= pcVar11" identifier <= identifier) )) (break_statement "break;" break ;)) (while_statement "while (cVar3 != '/') {\n                    pcVar11 = pcVar11 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar3;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar14;\n                    if (pcVar14 == pcVar11) goto LAB_00137d7b;\n                    cVar3 = *pcVar11;\n                  }" while (parenthesized_expression "(cVar3 != '/')" ( (binary_expression "cVar3 != '/'" identifier != (char_literal "'/'" ' character ')) )) (compound_statement "{\n                    pcVar11 = pcVar11 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar3;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar14;\n                    if (pcVar14 == pcVar11) goto LAB_00137d7b;\n                    cVar3 = *pcVar11;\n                  }" { (expression_statement "pcVar11 = pcVar11 + 1;" (assignment_expression "pcVar11 = pcVar11 + 1" identifier = (binary_expression "pcVar11 + 1" identifier + number_literal)) ;) (expression_statement "pcVar5 = pcVar7 + 1;" (assignment_expression "pcVar5 = pcVar7 + 1" identifier = (binary_expression "pcVar7 + 1" identifier + number_literal)) ;) (expression_statement "*pcVar7 = cVar3;" (assignment_expression "*pcVar7 = cVar3" (pointer_expression "*pcVar7" * identifier) = identifier) ;) (expression_statement "pcVar7 = pcVar5;" (assignment_expression "pcVar7 = pcVar5" identifier = identifier) ;) (expression_statement "pcVar5 = pcVar14;" (assignment_expression "pcVar5 = pcVar14" identifier = identifier) ;) (if_statement "if (pcVar14 == pcVar11) goto LAB_00137d7b;" if (parenthesized_expression "(pcVar14 == pcVar11)" ( (binary_expression "pcVar14 == pcVar11" identifier == identifier) )) (goto_statement "goto LAB_00137d7b;" goto statement_identifier ;)) (expression_statement "cVar3 = *pcVar11;" (assignment_expression "cVar3 = *pcVar11" identifier = (pointer_expression "*pcVar11" * identifier)) ;) })) (expression_statement "*pcVar7 = *pcVar11;" (assignment_expression "*pcVar7 = *pcVar11" (pointer_expression "*pcVar7" * identifier) = (pointer_expression "*pcVar11" * identifier)) ;) (expression_statement "pcVar11 = pcVar11 + 1;" (assignment_expression "pcVar11 = pcVar11 + 1" identifier = (binary_expression "pcVar11 + 1" identifier + number_literal)) ;) (expression_statement "pcVar7 = pcVar7 + 1;" (assignment_expression "pcVar7 = pcVar7 + 1" identifier = (binary_expression "pcVar7 + 1" identifier + number_literal)) ;) })))) }))) (expression_statement "pcVar5 = pcVar11;" (assignment_expression "pcVar5 = pcVar11" identifier = identifier) ;) }) while (parenthesized_expression "(pcVar11 < pcVar14)" ( (binary_expression "pcVar11 < pcVar14" identifier < identifier) )) ;) (labeled_statement "LAB_00137d7b:\n            pcVar11 = pcVar7;" statement_identifier : (expression_statement "pcVar11 = pcVar7;" (assignment_expression "pcVar11 = pcVar7" identifier = identifier) ;)) (if_statement "if (pcVar5 != pcVar7) {\n              *pcVar7 = '\0';\n            }" if (parenthesized_expression "(pcVar5 != pcVar7)" ( (binary_expression "pcVar5 != pcVar7" identifier != identifier) )) (compound_statement "{\n              *pcVar7 = '\0';\n            }" { (expression_statement "*pcVar7 = '\0';" (assignment_expression "*pcVar7 = '\0'" (pointer_expression "*pcVar7" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) })) })) (expression_statement "pcVar14 = *(char **)(piVar9 + 8);" (assignment_expression "pcVar14 = *(char **)(piVar9 + 8)" identifier = (pointer_expression "*(char **)(piVar9 + 8)" * (cast_expression "(char **)(piVar9 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar9 + 8)" ( (binary_expression "piVar9 + 8" identifier + number_literal) ))))) ;) (expression_statement "pcVar6 = strrchr(pcVar14,0x2f);" (assignment_expression "pcVar6 = strrchr(pcVar14,0x2f)" identifier = (call_expression "strrchr(pcVar14,0x2f)" identifier (argument_list "(pcVar14,0x2f)" ( identifier , number_literal )))) ;) (if_statement "if (pcVar6 == (char *)0x0) {\n            uVar8 = FUN_001496d9(&DAT_0015ea35);\n            *(undefined8 *)(piVar9 + 0x10) = uVar8;\n            uVar8 = FUN_001496d9(pcVar14);\n            *(undefined8 *)(piVar9 + 0x12) = uVar8;\n          }\n          else {\n            uVar8 = FUN_0013a40c(pcVar14,pcVar6);\n            *(undefined8 *)(piVar9 + 0x10) = uVar8;\n            uVar8 = FUN_001496d9(pcVar6 + 1);\n            *(undefined8 *)(piVar9 + 0x12) = uVar8;\n          }" if (parenthesized_expression "(pcVar6 == (char *)0x0)" ( (binary_expression "pcVar6 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            uVar8 = FUN_001496d9(&DAT_0015ea35);\n            *(undefined8 *)(piVar9 + 0x10) = uVar8;\n            uVar8 = FUN_001496d9(pcVar14);\n            *(undefined8 *)(piVar9 + 0x12) = uVar8;\n          }" { (expression_statement "uVar8 = FUN_001496d9(&DAT_0015ea35);" (assignment_expression "uVar8 = FUN_001496d9(&DAT_0015ea35)" identifier = (call_expression "FUN_001496d9(&DAT_0015ea35)" identifier (argument_list "(&DAT_0015ea35)" ( (pointer_expression "&DAT_0015ea35" & identifier) )))) ;) (expression_statement "*(undefined8 *)(piVar9 + 0x10) = uVar8;" (assignment_expression "*(undefined8 *)(piVar9 + 0x10) = uVar8" (pointer_expression "*(undefined8 *)(piVar9 + 0x10)" * (cast_expression "(undefined8 *)(piVar9 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar9 + 0x10)" ( (binary_expression "piVar9 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar8 = FUN_001496d9(pcVar14);" (assignment_expression "uVar8 = FUN_001496d9(pcVar14)" identifier = (call_expression "FUN_001496d9(pcVar14)" identifier (argument_list "(pcVar14)" ( identifier )))) ;) (expression_statement "*(undefined8 *)(piVar9 + 0x12) = uVar8;" (assignment_expression "*(undefined8 *)(piVar9 + 0x12) = uVar8" (pointer_expression "*(undefined8 *)(piVar9 + 0x12)" * (cast_expression "(undefined8 *)(piVar9 + 0x12)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar9 + 0x12)" ( (binary_expression "piVar9 + 0x12" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n            uVar8 = FUN_0013a40c(pcVar14,pcVar6);\n            *(undefined8 *)(piVar9 + 0x10) = uVar8;\n            uVar8 = FUN_001496d9(pcVar6 + 1);\n            *(undefined8 *)(piVar9 + 0x12) = uVar8;\n          }" else (compound_statement "{\n            uVar8 = FUN_0013a40c(pcVar14,pcVar6);\n            *(undefined8 *)(piVar9 + 0x10) = uVar8;\n            uVar8 = FUN_001496d9(pcVar6 + 1);\n            *(undefined8 *)(piVar9 + 0x12) = uVar8;\n          }" { (expression_statement "uVar8 = FUN_0013a40c(pcVar14,pcVar6);" (assignment_expression "uVar8 = FUN_0013a40c(pcVar14,pcVar6)" identifier = (call_expression "FUN_0013a40c(pcVar14,pcVar6)" identifier (argument_list "(pcVar14,pcVar6)" ( identifier , identifier )))) ;) (expression_statement "*(undefined8 *)(piVar9 + 0x10) = uVar8;" (assignment_expression "*(undefined8 *)(piVar9 + 0x10) = uVar8" (pointer_expression "*(undefined8 *)(piVar9 + 0x10)" * (cast_expression "(undefined8 *)(piVar9 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar9 + 0x10)" ( (binary_expression "piVar9 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar8 = FUN_001496d9(pcVar6 + 1);" (assignment_expression "uVar8 = FUN_001496d9(pcVar6 + 1)" identifier = (call_expression "FUN_001496d9(pcVar6 + 1)" identifier (argument_list "(pcVar6 + 1)" ( (binary_expression "pcVar6 + 1" identifier + number_literal) )))) ;) (expression_statement "*(undefined8 *)(piVar9 + 0x12) = uVar8;" (assignment_expression "*(undefined8 *)(piVar9 + 0x12) = uVar8" (pointer_expression "*(undefined8 *)(piVar9 + 0x12)" * (cast_expression "(undefined8 *)(piVar9 + 0x12)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar9 + 0x12)" ( (binary_expression "piVar9 + 0x12" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "FUN_00135c58(*(undefined8 *)(piVar9 + 0x10));" (call_expression "FUN_00135c58(*(undefined8 *)(piVar9 + 0x10))" identifier (argument_list "(*(undefined8 *)(piVar9 + 0x10))" ( (pointer_expression "*(undefined8 *)(piVar9 + 0x10)" * (cast_expression "(undefined8 *)(piVar9 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar9 + 0x10)" ( (binary_expression "piVar9 + 0x10" identifier + number_literal) )))) ))) ;) (expression_statement "FUN_00135c58(*(undefined8 *)(piVar9 + 0x12));" (call_expression "FUN_00135c58(*(undefined8 *)(piVar9 + 0x12))" identifier (argument_list "(*(undefined8 *)(piVar9 + 0x12))" ( (pointer_expression "*(undefined8 *)(piVar9 + 0x12)" * (cast_expression "(undefined8 *)(piVar9 + 0x12)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar9 + 0x12)" ( (binary_expression "piVar9 + 0x12" identifier + number_literal) )))) ))) ;) (expression_statement "pcVar14 = *(char **)(piVar9 + 4);" (assignment_expression "pcVar14 = *(char **)(piVar9 + 4)" identifier = (pointer_expression "*(char **)(piVar9 + 4)" * (cast_expression "(char **)(piVar9 + 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar9 + 4)" ( (binary_expression "piVar9 + 4" identifier + number_literal) ))))) ;) (expression_statement "cVar3 = *pcVar14;" (assignment_expression "cVar3 = *pcVar14" identifier = (pointer_expression "*pcVar14" * identifier)) ;) (if_statement "if (cVar3 == '\0') {\n            bVar17 = 0;\n          }\n          else {\n            bVar17 = 0;\n            do {\n              if ((int)cVar3 - 0x41U < 0x1a) {\n                *pcVar14 = cVar3 + ' ';\n                bVar17 = 1;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            } while (cVar3 != '\0');\n          }" if (parenthesized_expression "(cVar3 == '\0')" ( (binary_expression "cVar3 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            bVar17 = 0;\n          }" { (expression_statement "bVar17 = 0;" (assignment_expression "bVar17 = 0" identifier = number_literal) ;) }) (else_clause "else {\n            bVar17 = 0;\n            do {\n              if ((int)cVar3 - 0x41U < 0x1a) {\n                *pcVar14 = cVar3 + ' ';\n                bVar17 = 1;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            } while (cVar3 != '\0');\n          }" else (compound_statement "{\n            bVar17 = 0;\n            do {\n              if ((int)cVar3 - 0x41U < 0x1a) {\n                *pcVar14 = cVar3 + ' ';\n                bVar17 = 1;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            } while (cVar3 != '\0');\n          }" { (expression_statement "bVar17 = 0;" (assignment_expression "bVar17 = 0" identifier = number_literal) ;) (do_statement "do {\n              if ((int)cVar3 - 0x41U < 0x1a) {\n                *pcVar14 = cVar3 + ' ';\n                bVar17 = 1;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            } while (cVar3 != '\0');" do (compound_statement "{\n              if ((int)cVar3 - 0x41U < 0x1a) {\n                *pcVar14 = cVar3 + ' ';\n                bVar17 = 1;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            }" { (if_statement "if ((int)cVar3 - 0x41U < 0x1a) {\n                *pcVar14 = cVar3 + ' ';\n                bVar17 = 1;\n              }" if (parenthesized_expression "((int)cVar3 - 0x41U < 0x1a)" ( (binary_expression "(int)cVar3 - 0x41U < 0x1a" (binary_expression "(int)cVar3 - 0x41U" (cast_expression "(int)cVar3" ( (type_descriptor "int" primitive_type) ) identifier) - number_literal) < number_literal) )) (compound_statement "{\n                *pcVar14 = cVar3 + ' ';\n                bVar17 = 1;\n              }" { (expression_statement "*pcVar14 = cVar3 + ' ';" (assignment_expression "*pcVar14 = cVar3 + ' '" (pointer_expression "*pcVar14" * identifier) = (binary_expression "cVar3 + ' '" identifier + (char_literal "' '" ' character '))) ;) (expression_statement "bVar17 = 1;" (assignment_expression "bVar17 = 1" identifier = number_literal) ;) })) (expression_statement "pcVar14 = pcVar14 + 1;" (assignment_expression "pcVar14 = pcVar14 + 1" identifier = (binary_expression "pcVar14 + 1" identifier + number_literal)) ;) (expression_statement "cVar3 = *pcVar14;" (assignment_expression "cVar3 = *pcVar14" identifier = (pointer_expression "*pcVar14" * identifier)) ;) }) while (parenthesized_expression "(cVar3 != '\0')" ( (binary_expression "cVar3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) }))) (expression_statement "pcVar14 = *(char **)(piVar9 + 4);" (assignment_expression "pcVar14 = *(char **)(piVar9 + 4)" identifier = (pointer_expression "*(char **)(piVar9 + 4)" * (cast_expression "(char **)(piVar9 + 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar9 + 4)" ( (binary_expression "piVar9 + 4" identifier + number_literal) ))))) ;) (expression_statement "pcVar6 = strchr(pcVar14,0x25);" (assignment_expression "pcVar6 = strchr(pcVar14,0x25)" identifier = (call_expression "strchr(pcVar14,0x25)" identifier (argument_list "(pcVar14,0x25)" ( identifier , number_literal )))) ;) (if_statement "if (pcVar6 != (char *)0x0) {\n            FUN_00135c58(pcVar14);\n            pcVar14 = *(char **)(piVar9 + 4);\n            cVar3 = *pcVar14;\n            while (cVar3 != '\0') {\n              if ((-1 < cVar3) && ((cVar3 < ' ' || (cVar3 == '\x7f')))) {\n                FUN_0013629a(piVar9);\n                iVar15 = 3;\n                goto LAB_00137c65;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            }\n            bVar17 = param_3 != 0 & DAT_00177606;\n            if (bVar17 == 0) {\n              bVar17 = 1;\n            }\n            else {\n              lVar12 = FUN_0013eaa4(param_3);\n              if (lVar12 != 0) {\n                free(*(void **)(piVar9 + 4));\n                *(long *)(piVar9 + 4) = lVar12;\n              }\n            }\n          }" if (parenthesized_expression "(pcVar6 != (char *)0x0)" ( (binary_expression "pcVar6 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            FUN_00135c58(pcVar14);\n            pcVar14 = *(char **)(piVar9 + 4);\n            cVar3 = *pcVar14;\n            while (cVar3 != '\0') {\n              if ((-1 < cVar3) && ((cVar3 < ' ' || (cVar3 == '\x7f')))) {\n                FUN_0013629a(piVar9);\n                iVar15 = 3;\n                goto LAB_00137c65;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            }\n            bVar17 = param_3 != 0 & DAT_00177606;\n            if (bVar17 == 0) {\n              bVar17 = 1;\n            }\n            else {\n              lVar12 = FUN_0013eaa4(param_3);\n              if (lVar12 != 0) {\n                free(*(void **)(piVar9 + 4));\n                *(long *)(piVar9 + 4) = lVar12;\n              }\n            }\n          }" { (expression_statement "FUN_00135c58(pcVar14);" (call_expression "FUN_00135c58(pcVar14)" identifier (argument_list "(pcVar14)" ( identifier ))) ;) (expression_statement "pcVar14 = *(char **)(piVar9 + 4);" (assignment_expression "pcVar14 = *(char **)(piVar9 + 4)" identifier = (pointer_expression "*(char **)(piVar9 + 4)" * (cast_expression "(char **)(piVar9 + 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar9 + 4)" ( (binary_expression "piVar9 + 4" identifier + number_literal) ))))) ;) (expression_statement "cVar3 = *pcVar14;" (assignment_expression "cVar3 = *pcVar14" identifier = (pointer_expression "*pcVar14" * identifier)) ;) (while_statement "while (cVar3 != '\0') {\n              if ((-1 < cVar3) && ((cVar3 < ' ' || (cVar3 == '\x7f')))) {\n                FUN_0013629a(piVar9);\n                iVar15 = 3;\n                goto LAB_00137c65;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            }" while (parenthesized_expression "(cVar3 != '\0')" ( (binary_expression "cVar3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              if ((-1 < cVar3) && ((cVar3 < ' ' || (cVar3 == '\x7f')))) {\n                FUN_0013629a(piVar9);\n                iVar15 = 3;\n                goto LAB_00137c65;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            }" { (if_statement "if ((-1 < cVar3) && ((cVar3 < ' ' || (cVar3 == '\x7f')))) {\n                FUN_0013629a(piVar9);\n                iVar15 = 3;\n                goto LAB_00137c65;\n              }" if (parenthesized_expression "((-1 < cVar3) && ((cVar3 < ' ' || (cVar3 == '\x7f'))))" ( (binary_expression "(-1 < cVar3) && ((cVar3 < ' ' || (cVar3 == '\x7f')))" (parenthesized_expression "(-1 < cVar3)" ( (binary_expression "-1 < cVar3" number_literal < identifier) )) && (parenthesized_expression "((cVar3 < ' ' || (cVar3 == '\x7f')))" ( (parenthesized_expression "(cVar3 < ' ' || (cVar3 == '\x7f'))" ( (binary_expression "cVar3 < ' ' || (cVar3 == '\x7f')" (binary_expression "cVar3 < ' '" identifier < (char_literal "' '" ' character ')) || (parenthesized_expression "(cVar3 == '\x7f')" ( (binary_expression "cVar3 == '\x7f'" identifier == (char_literal "'\x7f'" ' escape_sequence ')) ))) )) ))) )) (compound_statement "{\n                FUN_0013629a(piVar9);\n                iVar15 = 3;\n                goto LAB_00137c65;\n              }" { (expression_statement "FUN_0013629a(piVar9);" (call_expression "FUN_0013629a(piVar9)" identifier (argument_list "(piVar9)" ( identifier ))) ;) (expression_statement "iVar15 = 3;" (assignment_expression "iVar15 = 3" identifier = number_literal) ;) (goto_statement "goto LAB_00137c65;" goto statement_identifier ;) })) (expression_statement "pcVar14 = pcVar14 + 1;" (assignment_expression "pcVar14 = pcVar14 + 1" identifier = (binary_expression "pcVar14 + 1" identifier + number_literal)) ;) (expression_statement "cVar3 = *pcVar14;" (assignment_expression "cVar3 = *pcVar14" identifier = (pointer_expression "*pcVar14" * identifier)) ;) })) (expression_statement "bVar17 = param_3 != 0 & DAT_00177606;" (assignment_expression "bVar17 = param_3 != 0 & DAT_00177606" identifier = (binary_expression "param_3 != 0 & DAT_00177606" (binary_expression "param_3 != 0" identifier != number_literal) & identifier)) ;) (if_statement "if (bVar17 == 0) {\n              bVar17 = 1;\n            }\n            else {\n              lVar12 = FUN_0013eaa4(param_3);\n              if (lVar12 != 0) {\n                free(*(void **)(piVar9 + 4));\n                *(long *)(piVar9 + 4) = lVar12;\n              }\n            }" if (parenthesized_expression "(bVar17 == 0)" ( (binary_expression "bVar17 == 0" identifier == number_literal) )) (compound_statement "{\n              bVar17 = 1;\n            }" { (expression_statement "bVar17 = 1;" (assignment_expression "bVar17 = 1" identifier = number_literal) ;) }) (else_clause "else {\n              lVar12 = FUN_0013eaa4(param_3);\n              if (lVar12 != 0) {\n                free(*(void **)(piVar9 + 4));\n                *(long *)(piVar9 + 4) = lVar12;\n              }\n            }" else (compound_statement "{\n              lVar12 = FUN_0013eaa4(param_3);\n              if (lVar12 != 0) {\n                free(*(void **)(piVar9 + 4));\n                *(long *)(piVar9 + 4) = lVar12;\n              }\n            }" { (expression_statement "lVar12 = FUN_0013eaa4(param_3);" (assignment_expression "lVar12 = FUN_0013eaa4(param_3)" identifier = (call_expression "FUN_0013eaa4(param_3)" identifier (argument_list "(param_3)" ( identifier )))) ;) (if_statement "if (lVar12 != 0) {\n                free(*(void **)(piVar9 + 4));\n                *(long *)(piVar9 + 4) = lVar12;\n              }" if (parenthesized_expression "(lVar12 != 0)" ( (binary_expression "lVar12 != 0" identifier != number_literal) )) (compound_statement "{\n                free(*(void **)(piVar9 + 4));\n                *(long *)(piVar9 + 4) = lVar12;\n              }" { (expression_statement "free(*(void **)(piVar9 + 4));" (call_expression "free(*(void **)(piVar9 + 4))" identifier (argument_list "(*(void **)(piVar9 + 4))" ( (pointer_expression "*(void **)(piVar9 + 4)" * (cast_expression "(void **)(piVar9 + 4)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar9 + 4)" ( (binary_expression "piVar9 + 4" identifier + number_literal) )))) ))) ;) (expression_statement "*(long *)(piVar9 + 4) = lVar12;" (assignment_expression "*(long *)(piVar9 + 4) = lVar12" (pointer_expression "*(long *)(piVar9 + 4)" * (cast_expression "(long *)(piVar9 + 4)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar9 + 4)" ( (binary_expression "piVar9 + 4" identifier + number_literal) )))) = identifier) ;) })) }))) })) (if_statement "if (local_70 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_70,local_60);\n            *(undefined8 *)(piVar9 + 10) = uVar8;\n          }" if (parenthesized_expression "(local_70 != (char *)0x0)" ( (binary_expression "local_70 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            uVar8 = FUN_0013a40c(local_70,local_60);\n            *(undefined8 *)(piVar9 + 10) = uVar8;\n          }" { (expression_statement "uVar8 = FUN_0013a40c(local_70,local_60);" (assignment_expression "uVar8 = FUN_0013a40c(local_70,local_60)" identifier = (call_expression "FUN_0013a40c(local_70,local_60)" identifier (argument_list "(local_70,local_60)" ( identifier , identifier )))) ;) (expression_statement "*(undefined8 *)(piVar9 + 10) = uVar8;" (assignment_expression "*(undefined8 *)(piVar9 + 10) = uVar8" (pointer_expression "*(undefined8 *)(piVar9 + 10)" * (cast_expression "(undefined8 *)(piVar9 + 10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar9 + 10)" ( (binary_expression "piVar9 + 10" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if (local_b0 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_b0,local_58);\n            *(undefined8 *)(piVar9 + 0xc) = uVar8;\n          }" if (parenthesized_expression "(local_b0 != (char *)0x0)" ( (binary_expression "local_b0 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            uVar8 = FUN_0013a40c(local_b0,local_58);\n            *(undefined8 *)(piVar9 + 0xc) = uVar8;\n          }" { (expression_statement "uVar8 = FUN_0013a40c(local_b0,local_58);" (assignment_expression "uVar8 = FUN_0013a40c(local_b0,local_58)" identifier = (call_expression "FUN_0013a40c(local_b0,local_58)" identifier (argument_list "(local_b0,local_58)" ( identifier , identifier )))) ;) (expression_statement "*(undefined8 *)(piVar9 + 0xc) = uVar8;" (assignment_expression "*(undefined8 *)(piVar9 + 0xc) = uVar8" (pointer_expression "*(undefined8 *)(piVar9 + 0xc)" * (cast_expression "(undefined8 *)(piVar9 + 0xc)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar9 + 0xc)" ( (binary_expression "piVar9 + 0xc" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if (local_68 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_68,local_50);\n            *(undefined8 *)(piVar9 + 0xe) = uVar8;\n          }" if (parenthesized_expression "(local_68 != (char *)0x0)" ( (binary_expression "local_68 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            uVar8 = FUN_0013a40c(local_68,local_50);\n            *(undefined8 *)(piVar9 + 0xe) = uVar8;\n          }" { (expression_statement "uVar8 = FUN_0013a40c(local_68,local_50);" (assignment_expression "uVar8 = FUN_0013a40c(local_68,local_50)" identifier = (call_expression "FUN_0013a40c(local_68,local_50)" identifier (argument_list "(local_68,local_50)" ( identifier , identifier )))) ;) (expression_statement "*(undefined8 *)(piVar9 + 0xe) = uVar8;" (assignment_expression "*(undefined8 *)(piVar9 + 0xe) = uVar8" (pointer_expression "*(undefined8 *)(piVar9 + 0xe)" * (cast_expression "(undefined8 *)(piVar9 + 0xe)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar9 + 0xe)" ( (binary_expression "piVar9 + 0xe" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "param_2 = piVar9;" (assignment_expression "param_2 = piVar9" identifier = identifier) ;) (if_statement "if ((((DAT_00177606 == 0) && (pcVar5 == pcVar11)) && (*(long *)(piVar9 + 0xe) == 0)) &&\n             ((local_88 != local_80 && (bVar17 == 0)))) {\n            if (local_b8 == param_1) {\n              uVar8 = FUN_001496d9(param_1);\n              *(undefined8 *)piVar9 = uVar8;\n            }\n            else {\n              *(void **)piVar9 = local_b8;\n            }\n          }\n          else {\n            uVar8 = FUN_00137051(piVar9,0);\n            *(undefined8 *)piVar9 = uVar8;\n            if (local_b8 != param_1) {\n              free(local_b8);\n            }\n          }" if (parenthesized_expression "((((DAT_00177606 == 0) && (pcVar5 == pcVar11)) && (*(long *)(piVar9 + 0xe) == 0)) &&\n             ((local_88 != local_80 && (bVar17 == 0))))" ( (binary_expression "(((DAT_00177606 == 0) && (pcVar5 == pcVar11)) && (*(long *)(piVar9 + 0xe) == 0)) &&\n             ((local_88 != local_80 && (bVar17 == 0)))" (parenthesized_expression "(((DAT_00177606 == 0) && (pcVar5 == pcVar11)) && (*(long *)(piVar9 + 0xe) == 0))" ( (binary_expression "((DAT_00177606 == 0) && (pcVar5 == pcVar11)) && (*(long *)(piVar9 + 0xe) == 0)" (parenthesized_expression "((DAT_00177606 == 0) && (pcVar5 == pcVar11))" ( (binary_expression "(DAT_00177606 == 0) && (pcVar5 == pcVar11)" (parenthesized_expression "(DAT_00177606 == 0)" ( (binary_expression "DAT_00177606 == 0" identifier == number_literal) )) && (parenthesized_expression "(pcVar5 == pcVar11)" ( (binary_expression "pcVar5 == pcVar11" identifier == identifier) ))) )) && (parenthesized_expression "(*(long *)(piVar9 + 0xe) == 0)" ( (binary_expression "*(long *)(piVar9 + 0xe) == 0" (pointer_expression "*(long *)(piVar9 + 0xe)" * (cast_expression "(long *)(piVar9 + 0xe)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar9 + 0xe)" ( (binary_expression "piVar9 + 0xe" identifier + number_literal) )))) == number_literal) ))) )) && (parenthesized_expression "((local_88 != local_80 && (bVar17 == 0)))" ( (parenthesized_expression "(local_88 != local_80 && (bVar17 == 0))" ( (binary_expression "local_88 != local_80 && (bVar17 == 0)" (binary_expression "local_88 != local_80" identifier != identifier) && (parenthesized_expression "(bVar17 == 0)" ( (binary_expression "bVar17 == 0" identifier == number_literal) ))) )) ))) )) (compound_statement "{\n            if (local_b8 == param_1) {\n              uVar8 = FUN_001496d9(param_1);\n              *(undefined8 *)piVar9 = uVar8;\n            }\n            else {\n              *(void **)piVar9 = local_b8;\n            }\n          }" { (if_statement "if (local_b8 == param_1) {\n              uVar8 = FUN_001496d9(param_1);\n              *(undefined8 *)piVar9 = uVar8;\n            }\n            else {\n              *(void **)piVar9 = local_b8;\n            }" if (parenthesized_expression "(local_b8 == param_1)" ( (binary_expression "local_b8 == param_1" identifier == identifier) )) (compound_statement "{\n              uVar8 = FUN_001496d9(param_1);\n              *(undefined8 *)piVar9 = uVar8;\n            }" { (expression_statement "uVar8 = FUN_001496d9(param_1);" (assignment_expression "uVar8 = FUN_001496d9(param_1)" identifier = (call_expression "FUN_001496d9(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "*(undefined8 *)piVar9 = uVar8;" (assignment_expression "*(undefined8 *)piVar9 = uVar8" (pointer_expression "*(undefined8 *)piVar9" * (cast_expression "(undefined8 *)piVar9" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) }) (else_clause "else {\n              *(void **)piVar9 = local_b8;\n            }" else (compound_statement "{\n              *(void **)piVar9 = local_b8;\n            }" { (expression_statement "*(void **)piVar9 = local_b8;" (assignment_expression "*(void **)piVar9 = local_b8" (pointer_expression "*(void **)piVar9" * (cast_expression "(void **)piVar9" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) }))) }) (else_clause "else {\n            uVar8 = FUN_00137051(piVar9,0);\n            *(undefined8 *)piVar9 = uVar8;\n            if (local_b8 != param_1) {\n              free(local_b8);\n            }\n          }" else (compound_statement "{\n            uVar8 = FUN_00137051(piVar9,0);\n            *(undefined8 *)piVar9 = uVar8;\n            if (local_b8 != param_1) {\n              free(local_b8);\n            }\n          }" { (expression_statement "uVar8 = FUN_00137051(piVar9,0);" (assignment_expression "uVar8 = FUN_00137051(piVar9,0)" identifier = (call_expression "FUN_00137051(piVar9,0)" identifier (argument_list "(piVar9,0)" ( identifier , number_literal )))) ;) (expression_statement "*(undefined8 *)piVar9 = uVar8;" (assignment_expression "*(undefined8 *)piVar9 = uVar8" (pointer_expression "*(undefined8 *)piVar9" * (cast_expression "(undefined8 *)piVar9" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (if_statement "if (local_b8 != param_1) {\n              free(local_b8);\n            }" if (parenthesized_expression "(local_b8 != param_1)" ( (binary_expression "local_b8 != param_1" identifier != identifier) )) (compound_statement "{\n              free(local_b8);\n            }" { (expression_statement "free(local_b8);" (call_expression "free(local_b8)" identifier (argument_list "(local_b8)" ( identifier ))) ;) })) }))) (goto_statement "goto LAB_00137c95;" goto statement_identifier ;) })) (expression_statement "pcVar14 = pcVar14 + -1;" (assignment_expression "pcVar14 = pcVar14 + -1" identifier = (binary_expression "pcVar14 + -1" identifier + number_literal)) ;) (if_statement "if (pcVar14 == pcVar11) {\n          iVar15 = 5;\n        }\n        else {\n          pcVar6 = (char *)memchr(pcVar11,0x3a,(long)pcVar14 - (long)pcVar11);\n          if (pcVar11 != pcVar6) {\n            pcVar5 = pcVar6;\n            if (pcVar6 != (char *)0x0) {\n              pcVar5 = (char *)FUN_0013a40c(pcVar6 + 1,pcVar14);\n              FUN_00135c58(pcVar5);\n              pcVar14 = pcVar6;\n            }\n            uVar8 = FUN_0013a40c(pcVar11,pcVar14);\n            FUN_00135c58(uVar8);\n            goto LAB_001379c6;\n          }\n          iVar15 = 5;\n        }" if (parenthesized_expression "(pcVar14 == pcVar11)" ( (binary_expression "pcVar14 == pcVar11" identifier == identifier) )) (compound_statement "{\n          iVar15 = 5;\n        }" { (expression_statement "iVar15 = 5;" (assignment_expression "iVar15 = 5" identifier = number_literal) ;) }) (else_clause "else {\n          pcVar6 = (char *)memchr(pcVar11,0x3a,(long)pcVar14 - (long)pcVar11);\n          if (pcVar11 != pcVar6) {\n            pcVar5 = pcVar6;\n            if (pcVar6 != (char *)0x0) {\n              pcVar5 = (char *)FUN_0013a40c(pcVar6 + 1,pcVar14);\n              FUN_00135c58(pcVar5);\n              pcVar14 = pcVar6;\n            }\n            uVar8 = FUN_0013a40c(pcVar11,pcVar14);\n            FUN_00135c58(uVar8);\n            goto LAB_001379c6;\n          }\n          iVar15 = 5;\n        }" else (compound_statement "{\n          pcVar6 = (char *)memchr(pcVar11,0x3a,(long)pcVar14 - (long)pcVar11);\n          if (pcVar11 != pcVar6) {\n            pcVar5 = pcVar6;\n            if (pcVar6 != (char *)0x0) {\n              pcVar5 = (char *)FUN_0013a40c(pcVar6 + 1,pcVar14);\n              FUN_00135c58(pcVar5);\n              pcVar14 = pcVar6;\n            }\n            uVar8 = FUN_0013a40c(pcVar11,pcVar14);\n            FUN_00135c58(uVar8);\n            goto LAB_001379c6;\n          }\n          iVar15 = 5;\n        }" { (expression_statement "pcVar6 = (char *)memchr(pcVar11,0x3a,(long)pcVar14 - (long)pcVar11);" (assignment_expression "pcVar6 = (char *)memchr(pcVar11,0x3a,(long)pcVar14 - (long)pcVar11)" identifier = (cast_expression "(char *)memchr(pcVar11,0x3a,(long)pcVar14 - (long)pcVar11)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "memchr(pcVar11,0x3a,(long)pcVar14 - (long)pcVar11)" identifier (argument_list "(pcVar11,0x3a,(long)pcVar14 - (long)pcVar11)" ( identifier , number_literal , (binary_expression "(long)pcVar14 - (long)pcVar11" (cast_expression "(long)pcVar14" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)pcVar11" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))))) ;) (if_statement "if (pcVar11 != pcVar6) {\n            pcVar5 = pcVar6;\n            if (pcVar6 != (char *)0x0) {\n              pcVar5 = (char *)FUN_0013a40c(pcVar6 + 1,pcVar14);\n              FUN_00135c58(pcVar5);\n              pcVar14 = pcVar6;\n            }\n            uVar8 = FUN_0013a40c(pcVar11,pcVar14);\n            FUN_00135c58(uVar8);\n            goto LAB_001379c6;\n          }" if (parenthesized_expression "(pcVar11 != pcVar6)" ( (binary_expression "pcVar11 != pcVar6" identifier != identifier) )) (compound_statement "{\n            pcVar5 = pcVar6;\n            if (pcVar6 != (char *)0x0) {\n              pcVar5 = (char *)FUN_0013a40c(pcVar6 + 1,pcVar14);\n              FUN_00135c58(pcVar5);\n              pcVar14 = pcVar6;\n            }\n            uVar8 = FUN_0013a40c(pcVar11,pcVar14);\n            FUN_00135c58(uVar8);\n            goto LAB_001379c6;\n          }" { (expression_statement "pcVar5 = pcVar6;" (assignment_expression "pcVar5 = pcVar6" identifier = identifier) ;) (if_statement "if (pcVar6 != (char *)0x0) {\n              pcVar5 = (char *)FUN_0013a40c(pcVar6 + 1,pcVar14);\n              FUN_00135c58(pcVar5);\n              pcVar14 = pcVar6;\n            }" if (parenthesized_expression "(pcVar6 != (char *)0x0)" ( (binary_expression "pcVar6 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              pcVar5 = (char *)FUN_0013a40c(pcVar6 + 1,pcVar14);\n              FUN_00135c58(pcVar5);\n              pcVar14 = pcVar6;\n            }" { (expression_statement "pcVar5 = (char *)FUN_0013a40c(pcVar6 + 1,pcVar14);" (assignment_expression "pcVar5 = (char *)FUN_0013a40c(pcVar6 + 1,pcVar14)" identifier = (cast_expression "(char *)FUN_0013a40c(pcVar6 + 1,pcVar14)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0013a40c(pcVar6 + 1,pcVar14)" identifier (argument_list "(pcVar6 + 1,pcVar14)" ( (binary_expression "pcVar6 + 1" identifier + number_literal) , identifier ))))) ;) (expression_statement "FUN_00135c58(pcVar5);" (call_expression "FUN_00135c58(pcVar5)" identifier (argument_list "(pcVar5)" ( identifier ))) ;) (expression_statement "pcVar14 = pcVar6;" (assignment_expression "pcVar14 = pcVar6" identifier = identifier) ;) })) (expression_statement "uVar8 = FUN_0013a40c(pcVar11,pcVar14);" (assignment_expression "uVar8 = FUN_0013a40c(pcVar11,pcVar14)" identifier = (call_expression "FUN_0013a40c(pcVar11,pcVar14)" identifier (argument_list "(pcVar11,pcVar14)" ( identifier , identifier )))) ;) (expression_statement "FUN_00135c58(uVar8);" (call_expression "FUN_00135c58(uVar8)" identifier (argument_list "(uVar8)" ( identifier ))) ;) (goto_statement "goto LAB_001379c6;" goto statement_identifier ;) })) (expression_statement "iVar15 = 5;" (assignment_expression "iVar15 = 5" identifier = number_literal) ;) }))) })))) }))) (labeled_statement "LAB_00137c65:\n    if ((local_b8 != (void *)0x0) && (local_b8 != param_1)) {\n      free(local_b8);\n    }" statement_identifier : (if_statement "if ((local_b8 != (void *)0x0) && (local_b8 != param_1)) {\n      free(local_b8);\n    }" if (parenthesized_expression "((local_b8 != (void *)0x0) && (local_b8 != param_1))" ( (binary_expression "(local_b8 != (void *)0x0) && (local_b8 != param_1)" (parenthesized_expression "(local_b8 != (void *)0x0)" ( (binary_expression "local_b8 != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(local_b8 != param_1)" ( (binary_expression "local_b8 != param_1" identifier != identifier) ))) )) (compound_statement "{\n      free(local_b8);\n    }" { (expression_statement "free(local_b8);" (call_expression "free(local_b8)" identifier (argument_list "(local_b8)" ( identifier ))) ;) }))) }))) (if_statement "if (param_2 != (int *)0x0) {\n    *param_2 = iVar15;\n    param_2 = (int *)0x0;\n  }" if (parenthesized_expression "(param_2 != (int *)0x0)" ( (binary_expression "param_2 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    *param_2 = iVar15;\n    param_2 = (int *)0x0;\n  }" { (expression_statement "*param_2 = iVar15;" (assignment_expression "*param_2 = iVar15" (pointer_expression "*param_2" * identifier) = identifier) ;) (expression_statement "param_2 = (int *)0x0;" (assignment_expression "param_2 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (labeled_statement "LAB_00137c95:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return param_2;\n  }" statement_identifier : (if_statement "if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return param_2;\n  }" if (parenthesized_expression "(local_40 == *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "local_40 == *(long *)(in_FS_OFFSET + 0x28)" identifier == (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n    return param_2;\n  }" { (return_statement "return param_2;" return identifier ;) }))) comment (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "/* WARNING: Enum "anon_enum_32": Some values do not have unique names */\n\nurl * url_parse(char *url,int *error,iri *iri,_Bool percent_encode)\n\n{\n  char cVar1;\n  uint uVar2;\n  _Bool _Var3;\n  char cVar4;\n  url_scheme scheme;\n  char *pcVar5;\n  char *pcVar6;\n  char *pcVar7;\n  char *pcVar8;\n  url *url_00;\n  ulong uVar9;\n  char *pcVar10;\n  int iVar11;\n  byte bVar12;\n  char *__s;\n  long in_FS_OFFSET;\n  char *local_b8;\n  char *local_b0;\n  char *local_a8;\n  char *local_a0;\n  char *local_90;\n  char *local_88;\n  char *local_80;\n  uint local_74;\n  char *local_70;\n  char *local_68;\n  char *local_60;\n  char *local_58;\n  char *local_50;\n  char *new_url;\n  long local_40;\n  \n  bVar12 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  scheme = url_scheme(url);\n  if (scheme == SCHEME_INVALID) {\n    _Var3 = url_has_scheme(url);\n    iVar11 = !_Var3 + 1;\n  }\n  else {\n    if ((iri == (iri *)0x0) || (iri->utf8_encode == false)) {\nLAB_001374b5:\n      local_b8 = url;\n      if (percent_encode) {\n        local_b8 = reencode_escapes(url);\n      }\n    }\n    else {\n      new_url = (char *)0x0;\n      pcVar8 = iri->orig_url;\n      if (iri->orig_url == (char *)0x0) {\n        pcVar8 = url;\n      }\n      _Var3 = remote_to_utf8(iri,pcVar8,&new_url);\n      iri->utf8_encode = _Var3;\n      if (!_Var3) goto LAB_001374b5;\n      free(iri->orig_url);\n      iri->orig_url = (char *)0x0;\n      pcVar8 = xstrdup(url);\n      iri->orig_url = pcVar8;\n      local_b8 = reencode_escapes(new_url);\n      if (new_url != local_b8) {\n        free(new_url);\n      }\n    }\n    uVar9 = 0xffffffffffffffff;\n    pcVar8 = supported_schemes[scheme].leading_string;\n    do {\n      if (uVar9 == 0) break;\n      uVar9 = uVar9 - 1;\n      cVar4 = *pcVar8;\n      pcVar8 = pcVar8 + (ulong)bVar12 * -2 + 1;\n    } while (cVar4 != '\0');\n    pcVar8 = local_b8 + (~uVar9 - 1);\n    pcVar5 = strpbrk(pcVar8,"@/?#;");\n    pcVar10 = pcVar8;\n    if ((pcVar5 != (char *)0x0) && (pcVar10 = pcVar5 + 1, *pcVar5 != '@')) {\n      pcVar10 = pcVar8;\n    }\n    pcVar5 = init_seps(scheme);\n    if (*pcVar10 == '[') {\n      local_a8 = pcVar10 + 1;\n      local_a0 = strchr(local_a8,0x5d);\n      if (local_a0 == (char *)0x0) {\n        iVar11 = 6;\n      }\n      else {\n        _Var3 = is_valid_ipv6_address(local_a8,local_a0);\n        if (_Var3) {\n          pcVar6 = local_a0 + 1;\n          pcVar7 = strchr(pcVar5,(int)local_a0[1]);\n          if (pcVar7 != (char *)0x0) goto LAB_00137554;\n          iVar11 = 3;\n        }\n        else {\n          iVar11 = 8;\n        }\n      }\n    }\n    else {\n      pcVar6 = strpbrk(pcVar10,pcVar5);\n      local_a8 = pcVar10;\n      local_a0 = pcVar6;\n      if (pcVar6 == (char *)0x0) {\n        uVar9 = 0xffffffffffffffff;\n        pcVar6 = pcVar10;\n        do {\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar4 = *pcVar6;\n          pcVar6 = pcVar6 + (ulong)bVar12 * -2 + 1;\n        } while (cVar4 != '\0');\n        pcVar6 = pcVar10 + (~uVar9 - 1);\n        local_a0 = pcVar6;\n      }\nLAB_00137554:\n      if (local_a8 == local_a0) {\n        iVar11 = 3;\n      }\n      else {\n        local_74 = supported_schemes[scheme].default_port;\n        pcVar7 = pcVar6;\n        if (*pcVar6 == ':') {\n          __s = pcVar6 + 1;\n          pcVar7 = strpbrk(__s,pcVar5 + 1);\n          if (pcVar7 == (char *)0x0) {\n            uVar9 = 0xffffffffffffffff;\n            pcVar7 = __s;\n            do {\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar4 = *pcVar7;\n              pcVar7 = pcVar7 + (ulong)bVar12 * -2 + 1;\n            } while (cVar4 != '\0');\n            pcVar7 = pcVar6 + ~uVar9;\n          }\n          if (__s != pcVar7) {\n            if (__s < pcVar7) {\n              local_74 = (int)pcVar6[1] - 0x30;\n              if (local_74 < 10) {\n                do {\n                  __s = __s + 1;\n                  if (__s == pcVar7) goto LAB_00137584;\n                  if (9 < (int)*__s - 0x30U) {\n                    iVar11 = 4;\n                    goto LAB_00137c65;\n                  }\n                  local_74 = *__s + -0x30 + local_74 * 10;\n                } while ((int)local_74 < 0x10000);\n                iVar11 = 4;\n              }\n              else {\n                iVar11 = 4;\n              }\n              goto LAB_00137c65;\n            }\n            local_74 = 0;\n          }\n        }\nLAB_00137584:\n        local_80 = (char *)0x0;\n        local_88 = (char *)0x0;\n        pcVar6 = pcVar7;\n        if (*pcVar7 == '/') {\n          local_88 = pcVar7 + 1;\n          pcVar6 = strpbrk(local_88,pcVar5 + 2);\n          local_80 = pcVar6;\n          if (pcVar6 == (char *)0x0) {\n            uVar9 = 0xffffffffffffffff;\n            pcVar6 = local_88;\n            do {\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar4 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar12 * -2 + 1;\n            } while (cVar4 != '\0');\n            pcVar6 = pcVar7 + ~uVar9;\n            local_80 = pcVar6;\n          }\n        }\n        local_90 = pcVar5 + 3;\n        uVar2 = supported_schemes[scheme].flags;\n        if ((uVar2 & 2) == 0) {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n        }\n        else {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n          pcVar7 = pcVar6;\n          if (*pcVar6 == ';') {\n            local_70 = pcVar6 + 1;\n            pcVar7 = strpbrk(local_70,local_90);\n            local_60 = pcVar7;\n            if (pcVar7 == (char *)0x0) {\n              uVar9 = 0xffffffffffffffff;\n              pcVar7 = local_70;\n              do {\n                if (uVar9 == 0) break;\n                uVar9 = uVar9 - 1;\n                cVar4 = *pcVar7;\n                pcVar7 = pcVar7 + (ulong)bVar12 * -2 + 1;\n              } while (cVar4 != '\0');\n              pcVar7 = pcVar6 + ~uVar9;\n              local_60 = pcVar7;\n            }\n          }\n          local_90 = pcVar5 + 4;\n          pcVar6 = pcVar7;\n        }\n        if ((uVar2 & 4) == 0) {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n        }\n        else {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n          pcVar5 = pcVar6;\n          if (*pcVar6 == '?') {\n            local_b0 = pcVar6 + 1;\n            pcVar5 = strpbrk(local_b0,local_90);\n            local_58 = pcVar5;\n            if (pcVar5 == (char *)0x0) {\n              uVar9 = 0xffffffffffffffff;\n              pcVar5 = local_b0;\n              do {\n                if (uVar9 == 0) break;\n                uVar9 = uVar9 - 1;\n                cVar4 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar12 * -2 + 1;\n              } while (cVar4 != '\0');\n              pcVar5 = pcVar6 + ~uVar9;\n              local_58 = pcVar5;\n            }\n          }\n          local_90 = local_90 + 1;\n          pcVar6 = pcVar5;\n        }\n        if ((uVar2 & 8) == 0) {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n        }\n        else {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n          if (*pcVar6 == '#') {\n            local_68 = pcVar6 + 1;\n            local_50 = strpbrk(local_68,local_90);\n            if (local_50 == (char *)0x0) {\n              uVar9 = 0xffffffffffffffff;\n              pcVar5 = local_68;\n              do {\n                if (uVar9 == 0) break;\n                uVar9 = uVar9 - 1;\n                cVar4 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar12 * -2 + 1;\n              } while (cVar4 != '\0');\n              local_50 = pcVar6 + ~uVar9;\n            }\n          }\n        }\n        if (pcVar8 == pcVar10) {\n          pcVar5 = (char *)0x0;\n          pcVar8 = (char *)0x0;\nLAB_001379c6:\n          url_00 = (url *)xcalloc(1,0x60);\n          url_00->scheme = scheme;\n          pcVar10 = strdupdelim(local_a8,local_a0);\n          url_00->host = pcVar10;\n          url_00->port = local_74;\n          url_00->user = pcVar8;\n          url_00->passwd = pcVar5;\n          pcVar8 = strdupdelim(local_88,local_80);\n          url_00->path = pcVar8;\n          uVar9 = 0xffffffffffffffff;\n          pcVar10 = pcVar8;\n          do {\n            if (uVar9 == 0) break;\n            uVar9 = uVar9 - 1;\n            cVar4 = *pcVar10;\n            pcVar10 = pcVar10 + (ulong)bVar12 * -2 + 1;\n          } while (cVar4 != '\0');\n          pcVar10 = pcVar8 + (~uVar9 - 1);\n          pcVar5 = pcVar8;\n          if (pcVar8 < pcVar10) {\n            pcVar7 = pcVar8;\n            pcVar6 = pcVar8;\n            do {\n              cVar4 = *pcVar8;\n              if (cVar4 == '.') {\n                cVar1 = pcVar8[1];\n                if ((cVar1 == '/') || (cVar1 == '\0')) {\n                  pcVar8 = pcVar8 + 2;\n                }\n                else {\n                  if ((cVar1 != '.') || ((pcVar8[2] != '/' && (pcVar8[2] != '\0'))))\n                  goto LAB_00137e1d;\n                  if (pcVar6 < pcVar7) {\n                    pcVar5 = pcVar7 + -1;\n                    if (pcVar6 < pcVar5) {\n                      cVar4 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar4 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar4 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar5 = pcVar7;\n                    if (scheme - SCHEME_FTP < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }\n                  pcVar8 = pcVar8 + 3;\n                  pcVar7 = pcVar5;\n                }\n              }\n              else {\nLAB_00137e1d:\n                if (pcVar7 == pcVar8) {\n                  pcVar5 = pcVar7;\n                  if (pcVar10 <= pcVar7) break;\n                  cVar4 = *pcVar7;\n                  while (cVar4 != '/') {\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar10;\n                    if (pcVar10 == pcVar5) goto LAB_00137d7b;\n                    cVar4 = *pcVar5;\n                  }\n                  pcVar8 = pcVar5 + 1;\n                  pcVar7 = pcVar5 + 1;\n                }\n                else {\n                  pcVar5 = pcVar8;\n                  if (pcVar10 <= pcVar8) break;\n                  while (cVar4 != '/') {\n                    pcVar8 = pcVar8 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar4;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar10;\n                    if (pcVar10 == pcVar8) goto LAB_00137d7b;\n                    cVar4 = *pcVar8;\n                  }\n                  *pcVar7 = *pcVar8;\n                  pcVar8 = pcVar8 + 1;\n                  pcVar7 = pcVar7 + 1;\n                }\n              }\n              pcVar5 = pcVar8;\n            } while (pcVar8 < pcVar10);\nLAB_00137d7b:\n            pcVar8 = pcVar7;\n            if (pcVar5 != pcVar7) {\n              *pcVar7 = '\0';\n            }\n          }\n          pcVar10 = url_00->path;\n          pcVar6 = strrchr(pcVar10,0x2f);\n          if (pcVar6 == (char *)0x0) {\n            pcVar6 = xstrdup("");\n            url_00->dir = pcVar6;\n            pcVar10 = xstrdup(pcVar10);\n            url_00->file = pcVar10;\n          }\n          else {\n            pcVar10 = strdupdelim(pcVar10,pcVar6);\n            url_00->dir = pcVar10;\n            pcVar10 = xstrdup(pcVar6 + 1);\n            url_00->file = pcVar10;\n          }\n          url_unescape(url_00->dir);\n          url_unescape(url_00->file);\n          pcVar10 = url_00->host;\n          cVar4 = *pcVar10;\n          if (cVar4 == '\0') {\n            bVar12 = 0;\n          }\n          else {\n            bVar12 = 0;\n            do {\n              if ((int)cVar4 - 0x41U < 0x1a) {\n                *pcVar10 = cVar4 + ' ';\n                bVar12 = 1;\n              }\n              pcVar10 = pcVar10 + 1;\n              cVar4 = *pcVar10;\n            } while (cVar4 != '\0');\n          }\n          pcVar10 = url_00->host;\n          pcVar6 = strchr(pcVar10,0x25);\n          if (pcVar6 != (char *)0x0) {\n            url_unescape(pcVar10);\n            pcVar10 = url_00->host;\n            cVar4 = *pcVar10;\n            pcVar6 = pcVar10;\n            while (cVar4 != '\0') {\n              if ((-1 < cVar4) && ((cVar4 < ' ' || (cVar4 == '\x7f')))) {\n                url_free(url_00);\n                iVar11 = 3;\n                goto LAB_00137c65;\n              }\n              pcVar6 = pcVar6 + 1;\n              cVar4 = *pcVar6;\n            }\n            bVar12 = iri != (iri *)0x0 & opt.enable_iri;\n            if (bVar12 == 0) {\n              bVar12 = 1;\n            }\n            else {\n              pcVar10 = idn_encode(iri,pcVar10);\n              if (pcVar10 != (char *)0x0) {\n                free(url_00->host);\n                url_00->host = pcVar10;\n              }\n            }\n          }\n          if (local_70 != (char *)0x0) {\n            pcVar10 = strdupdelim(local_70,local_60);\n            url_00->params = pcVar10;\n          }\n          if (local_b0 != (char *)0x0) {\n            pcVar10 = strdupdelim(local_b0,local_58);\n            url_00->query = pcVar10;\n          }\n          if (local_68 != (char *)0x0) {\n            pcVar10 = strdupdelim(local_68,local_50);\n            url_00->fragment = pcVar10;\n          }\n          error = (int *)url_00;\n          if ((((opt.enable_iri == false) && (pcVar5 == pcVar8)) &&\n              (url_00->fragment == (char *)0x0)) && ((local_88 != local_80 && (bVar12 == 0)))) {\n            if (local_b8 == url) {\n              pcVar8 = xstrdup(url);\n              url_00->url = pcVar8;\n            }\n            else {\n              url_00->url = local_b8;\n            }\n          }\n          else {\n            pcVar8 = url_string(url_00,URL_AUTH_SHOW);\n            url_00->url = pcVar8;\n            if (local_b8 != url) {\n              free(local_b8);\n            }\n          }\n          goto LAB_00137c95;\n        }\n        pcVar10 = pcVar10 + -1;\n        if (pcVar10 == pcVar8) {\n          iVar11 = 5;\n        }\n        else {\n          pcVar6 = (char *)memchr(pcVar8,0x3a,(long)pcVar10 - (long)pcVar8);\n          if (pcVar8 != pcVar6) {\n            pcVar5 = pcVar6;\n            if (pcVar6 != (char *)0x0) {\n              pcVar5 = strdupdelim(pcVar6 + 1,pcVar10);\n              url_unescape(pcVar5);\n              pcVar10 = pcVar6;\n            }\n            pcVar8 = strdupdelim(pcVar8,pcVar10);\n            url_unescape(pcVar8);\n            goto LAB_001379c6;\n          }\n          iVar11 = 5;\n        }\n      }\n    }\nLAB_00137c65:\n    if ((local_b8 != (char *)0x0) && (local_b8 != url)) {\n      free(local_b8);\n    }\n  }\n  if (error != (int *)0x0) {\n    *error = iVar11;\n    error = (int *)0x0;\n  }\nLAB_00137c95:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return (url *)error;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}\n\n" comment (function_definition "url * url_parse(char *url,int *error,iri *iri,_Bool percent_encode)\n\n{\n  char cVar1;\n  uint uVar2;\n  _Bool _Var3;\n  char cVar4;\n  url_scheme scheme;\n  char *pcVar5;\n  char *pcVar6;\n  char *pcVar7;\n  char *pcVar8;\n  url *url_00;\n  ulong uVar9;\n  char *pcVar10;\n  int iVar11;\n  byte bVar12;\n  char *__s;\n  long in_FS_OFFSET;\n  char *local_b8;\n  char *local_b0;\n  char *local_a8;\n  char *local_a0;\n  char *local_90;\n  char *local_88;\n  char *local_80;\n  uint local_74;\n  char *local_70;\n  char *local_68;\n  char *local_60;\n  char *local_58;\n  char *local_50;\n  char *new_url;\n  long local_40;\n  \n  bVar12 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  scheme = url_scheme(url);\n  if (scheme == SCHEME_INVALID) {\n    _Var3 = url_has_scheme(url);\n    iVar11 = !_Var3 + 1;\n  }\n  else {\n    if ((iri == (iri *)0x0) || (iri->utf8_encode == false)) {\nLAB_001374b5:\n      local_b8 = url;\n      if (percent_encode) {\n        local_b8 = reencode_escapes(url);\n      }\n    }\n    else {\n      new_url = (char *)0x0;\n      pcVar8 = iri->orig_url;\n      if (iri->orig_url == (char *)0x0) {\n        pcVar8 = url;\n      }\n      _Var3 = remote_to_utf8(iri,pcVar8,&new_url);\n      iri->utf8_encode = _Var3;\n      if (!_Var3) goto LAB_001374b5;\n      free(iri->orig_url);\n      iri->orig_url = (char *)0x0;\n      pcVar8 = xstrdup(url);\n      iri->orig_url = pcVar8;\n      local_b8 = reencode_escapes(new_url);\n      if (new_url != local_b8) {\n        free(new_url);\n      }\n    }\n    uVar9 = 0xffffffffffffffff;\n    pcVar8 = supported_schemes[scheme].leading_string;\n    do {\n      if (uVar9 == 0) break;\n      uVar9 = uVar9 - 1;\n      cVar4 = *pcVar8;\n      pcVar8 = pcVar8 + (ulong)bVar12 * -2 + 1;\n    } while (cVar4 != '\0');\n    pcVar8 = local_b8 + (~uVar9 - 1);\n    pcVar5 = strpbrk(pcVar8,"@/?#;");\n    pcVar10 = pcVar8;\n    if ((pcVar5 != (char *)0x0) && (pcVar10 = pcVar5 + 1, *pcVar5 != '@')) {\n      pcVar10 = pcVar8;\n    }\n    pcVar5 = init_seps(scheme);\n    if (*pcVar10 == '[') {\n      local_a8 = pcVar10 + 1;\n      local_a0 = strchr(local_a8,0x5d);\n      if (local_a0 == (char *)0x0) {\n        iVar11 = 6;\n      }\n      else {\n        _Var3 = is_valid_ipv6_address(local_a8,local_a0);\n        if (_Var3) {\n          pcVar6 = local_a0 + 1;\n          pcVar7 = strchr(pcVar5,(int)local_a0[1]);\n          if (pcVar7 != (char *)0x0) goto LAB_00137554;\n          iVar11 = 3;\n        }\n        else {\n          iVar11 = 8;\n        }\n      }\n    }\n    else {\n      pcVar6 = strpbrk(pcVar10,pcVar5);\n      local_a8 = pcVar10;\n      local_a0 = pcVar6;\n      if (pcVar6 == (char *)0x0) {\n        uVar9 = 0xffffffffffffffff;\n        pcVar6 = pcVar10;\n        do {\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar4 = *pcVar6;\n          pcVar6 = pcVar6 + (ulong)bVar12 * -2 + 1;\n        } while (cVar4 != '\0');\n        pcVar6 = pcVar10 + (~uVar9 - 1);\n        local_a0 = pcVar6;\n      }\nLAB_00137554:\n      if (local_a8 == local_a0) {\n        iVar11 = 3;\n      }\n      else {\n        local_74 = supported_schemes[scheme].default_port;\n        pcVar7 = pcVar6;\n        if (*pcVar6 == ':') {\n          __s = pcVar6 + 1;\n          pcVar7 = strpbrk(__s,pcVar5 + 1);\n          if (pcVar7 == (char *)0x0) {\n            uVar9 = 0xffffffffffffffff;\n            pcVar7 = __s;\n            do {\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar4 = *pcVar7;\n              pcVar7 = pcVar7 + (ulong)bVar12 * -2 + 1;\n            } while (cVar4 != '\0');\n            pcVar7 = pcVar6 + ~uVar9;\n          }\n          if (__s != pcVar7) {\n            if (__s < pcVar7) {\n              local_74 = (int)pcVar6[1] - 0x30;\n              if (local_74 < 10) {\n                do {\n                  __s = __s + 1;\n                  if (__s == pcVar7) goto LAB_00137584;\n                  if (9 < (int)*__s - 0x30U) {\n                    iVar11 = 4;\n                    goto LAB_00137c65;\n                  }\n                  local_74 = *__s + -0x30 + local_74 * 10;\n                } while ((int)local_74 < 0x10000);\n                iVar11 = 4;\n              }\n              else {\n                iVar11 = 4;\n              }\n              goto LAB_00137c65;\n            }\n            local_74 = 0;\n          }\n        }\nLAB_00137584:\n        local_80 = (char *)0x0;\n        local_88 = (char *)0x0;\n        pcVar6 = pcVar7;\n        if (*pcVar7 == '/') {\n          local_88 = pcVar7 + 1;\n          pcVar6 = strpbrk(local_88,pcVar5 + 2);\n          local_80 = pcVar6;\n          if (pcVar6 == (char *)0x0) {\n            uVar9 = 0xffffffffffffffff;\n            pcVar6 = local_88;\n            do {\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar4 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar12 * -2 + 1;\n            } while (cVar4 != '\0');\n            pcVar6 = pcVar7 + ~uVar9;\n            local_80 = pcVar6;\n          }\n        }\n        local_90 = pcVar5 + 3;\n        uVar2 = supported_schemes[scheme].flags;\n        if ((uVar2 & 2) == 0) {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n        }\n        else {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n          pcVar7 = pcVar6;\n          if (*pcVar6 == ';') {\n            local_70 = pcVar6 + 1;\n            pcVar7 = strpbrk(local_70,local_90);\n            local_60 = pcVar7;\n            if (pcVar7 == (char *)0x0) {\n              uVar9 = 0xffffffffffffffff;\n              pcVar7 = local_70;\n              do {\n                if (uVar9 == 0) break;\n                uVar9 = uVar9 - 1;\n                cVar4 = *pcVar7;\n                pcVar7 = pcVar7 + (ulong)bVar12 * -2 + 1;\n              } while (cVar4 != '\0');\n              pcVar7 = pcVar6 + ~uVar9;\n              local_60 = pcVar7;\n            }\n          }\n          local_90 = pcVar5 + 4;\n          pcVar6 = pcVar7;\n        }\n        if ((uVar2 & 4) == 0) {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n        }\n        else {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n          pcVar5 = pcVar6;\n          if (*pcVar6 == '?') {\n            local_b0 = pcVar6 + 1;\n            pcVar5 = strpbrk(local_b0,local_90);\n            local_58 = pcVar5;\n            if (pcVar5 == (char *)0x0) {\n              uVar9 = 0xffffffffffffffff;\n              pcVar5 = local_b0;\n              do {\n                if (uVar9 == 0) break;\n                uVar9 = uVar9 - 1;\n                cVar4 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar12 * -2 + 1;\n              } while (cVar4 != '\0');\n              pcVar5 = pcVar6 + ~uVar9;\n              local_58 = pcVar5;\n            }\n          }\n          local_90 = local_90 + 1;\n          pcVar6 = pcVar5;\n        }\n        if ((uVar2 & 8) == 0) {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n        }\n        else {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n          if (*pcVar6 == '#') {\n            local_68 = pcVar6 + 1;\n            local_50 = strpbrk(local_68,local_90);\n            if (local_50 == (char *)0x0) {\n              uVar9 = 0xffffffffffffffff;\n              pcVar5 = local_68;\n              do {\n                if (uVar9 == 0) break;\n                uVar9 = uVar9 - 1;\n                cVar4 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar12 * -2 + 1;\n              } while (cVar4 != '\0');\n              local_50 = pcVar6 + ~uVar9;\n            }\n          }\n        }\n        if (pcVar8 == pcVar10) {\n          pcVar5 = (char *)0x0;\n          pcVar8 = (char *)0x0;\nLAB_001379c6:\n          url_00 = (url *)xcalloc(1,0x60);\n          url_00->scheme = scheme;\n          pcVar10 = strdupdelim(local_a8,local_a0);\n          url_00->host = pcVar10;\n          url_00->port = local_74;\n          url_00->user = pcVar8;\n          url_00->passwd = pcVar5;\n          pcVar8 = strdupdelim(local_88,local_80);\n          url_00->path = pcVar8;\n          uVar9 = 0xffffffffffffffff;\n          pcVar10 = pcVar8;\n          do {\n            if (uVar9 == 0) break;\n            uVar9 = uVar9 - 1;\n            cVar4 = *pcVar10;\n            pcVar10 = pcVar10 + (ulong)bVar12 * -2 + 1;\n          } while (cVar4 != '\0');\n          pcVar10 = pcVar8 + (~uVar9 - 1);\n          pcVar5 = pcVar8;\n          if (pcVar8 < pcVar10) {\n            pcVar7 = pcVar8;\n            pcVar6 = pcVar8;\n            do {\n              cVar4 = *pcVar8;\n              if (cVar4 == '.') {\n                cVar1 = pcVar8[1];\n                if ((cVar1 == '/') || (cVar1 == '\0')) {\n                  pcVar8 = pcVar8 + 2;\n                }\n                else {\n                  if ((cVar1 != '.') || ((pcVar8[2] != '/' && (pcVar8[2] != '\0'))))\n                  goto LAB_00137e1d;\n                  if (pcVar6 < pcVar7) {\n                    pcVar5 = pcVar7 + -1;\n                    if (pcVar6 < pcVar5) {\n                      cVar4 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar4 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar4 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar5 = pcVar7;\n                    if (scheme - SCHEME_FTP < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }\n                  pcVar8 = pcVar8 + 3;\n                  pcVar7 = pcVar5;\n                }\n              }\n              else {\nLAB_00137e1d:\n                if (pcVar7 == pcVar8) {\n                  pcVar5 = pcVar7;\n                  if (pcVar10 <= pcVar7) break;\n                  cVar4 = *pcVar7;\n                  while (cVar4 != '/') {\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar10;\n                    if (pcVar10 == pcVar5) goto LAB_00137d7b;\n                    cVar4 = *pcVar5;\n                  }\n                  pcVar8 = pcVar5 + 1;\n                  pcVar7 = pcVar5 + 1;\n                }\n                else {\n                  pcVar5 = pcVar8;\n                  if (pcVar10 <= pcVar8) break;\n                  while (cVar4 != '/') {\n                    pcVar8 = pcVar8 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar4;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar10;\n                    if (pcVar10 == pcVar8) goto LAB_00137d7b;\n                    cVar4 = *pcVar8;\n                  }\n                  *pcVar7 = *pcVar8;\n                  pcVar8 = pcVar8 + 1;\n                  pcVar7 = pcVar7 + 1;\n                }\n              }\n              pcVar5 = pcVar8;\n            } while (pcVar8 < pcVar10);\nLAB_00137d7b:\n            pcVar8 = pcVar7;\n            if (pcVar5 != pcVar7) {\n              *pcVar7 = '\0';\n            }\n          }\n          pcVar10 = url_00->path;\n          pcVar6 = strrchr(pcVar10,0x2f);\n          if (pcVar6 == (char *)0x0) {\n            pcVar6 = xstrdup("");\n            url_00->dir = pcVar6;\n            pcVar10 = xstrdup(pcVar10);\n            url_00->file = pcVar10;\n          }\n          else {\n            pcVar10 = strdupdelim(pcVar10,pcVar6);\n            url_00->dir = pcVar10;\n            pcVar10 = xstrdup(pcVar6 + 1);\n            url_00->file = pcVar10;\n          }\n          url_unescape(url_00->dir);\n          url_unescape(url_00->file);\n          pcVar10 = url_00->host;\n          cVar4 = *pcVar10;\n          if (cVar4 == '\0') {\n            bVar12 = 0;\n          }\n          else {\n            bVar12 = 0;\n            do {\n              if ((int)cVar4 - 0x41U < 0x1a) {\n                *pcVar10 = cVar4 + ' ';\n                bVar12 = 1;\n              }\n              pcVar10 = pcVar10 + 1;\n              cVar4 = *pcVar10;\n            } while (cVar4 != '\0');\n          }\n          pcVar10 = url_00->host;\n          pcVar6 = strchr(pcVar10,0x25);\n          if (pcVar6 != (char *)0x0) {\n            url_unescape(pcVar10);\n            pcVar10 = url_00->host;\n            cVar4 = *pcVar10;\n            pcVar6 = pcVar10;\n            while (cVar4 != '\0') {\n              if ((-1 < cVar4) && ((cVar4 < ' ' || (cVar4 == '\x7f')))) {\n                url_free(url_00);\n                iVar11 = 3;\n                goto LAB_00137c65;\n              }\n              pcVar6 = pcVar6 + 1;\n              cVar4 = *pcVar6;\n            }\n            bVar12 = iri != (iri *)0x0 & opt.enable_iri;\n            if (bVar12 == 0) {\n              bVar12 = 1;\n            }\n            else {\n              pcVar10 = idn_encode(iri,pcVar10);\n              if (pcVar10 != (char *)0x0) {\n                free(url_00->host);\n                url_00->host = pcVar10;\n              }\n            }\n          }\n          if (local_70 != (char *)0x0) {\n            pcVar10 = strdupdelim(local_70,local_60);\n            url_00->params = pcVar10;\n          }\n          if (local_b0 != (char *)0x0) {\n            pcVar10 = strdupdelim(local_b0,local_58);\n            url_00->query = pcVar10;\n          }\n          if (local_68 != (char *)0x0) {\n            pcVar10 = strdupdelim(local_68,local_50);\n            url_00->fragment = pcVar10;\n          }\n          error = (int *)url_00;\n          if ((((opt.enable_iri == false) && (pcVar5 == pcVar8)) &&\n              (url_00->fragment == (char *)0x0)) && ((local_88 != local_80 && (bVar12 == 0)))) {\n            if (local_b8 == url) {\n              pcVar8 = xstrdup(url);\n              url_00->url = pcVar8;\n            }\n            else {\n              url_00->url = local_b8;\n            }\n          }\n          else {\n            pcVar8 = url_string(url_00,URL_AUTH_SHOW);\n            url_00->url = pcVar8;\n            if (local_b8 != url) {\n              free(local_b8);\n            }\n          }\n          goto LAB_00137c95;\n        }\n        pcVar10 = pcVar10 + -1;\n        if (pcVar10 == pcVar8) {\n          iVar11 = 5;\n        }\n        else {\n          pcVar6 = (char *)memchr(pcVar8,0x3a,(long)pcVar10 - (long)pcVar8);\n          if (pcVar8 != pcVar6) {\n            pcVar5 = pcVar6;\n            if (pcVar6 != (char *)0x0) {\n              pcVar5 = strdupdelim(pcVar6 + 1,pcVar10);\n              url_unescape(pcVar5);\n              pcVar10 = pcVar6;\n            }\n            pcVar8 = strdupdelim(pcVar8,pcVar10);\n            url_unescape(pcVar8);\n            goto LAB_001379c6;\n          }\n          iVar11 = 5;\n        }\n      }\n    }\nLAB_00137c65:\n    if ((local_b8 != (char *)0x0) && (local_b8 != url)) {\n      free(local_b8);\n    }\n  }\n  if (error != (int *)0x0) {\n    *error = iVar11;\n    error = (int *)0x0;\n  }\nLAB_00137c95:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return (url *)error;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}" type_identifier (pointer_declarator "* url_parse(char *url,int *error,iri *iri,_Bool percent_encode)" * (function_declarator "url_parse(char *url,int *error,iri *iri,_Bool percent_encode)" identifier (parameter_list "(char *url,int *error,iri *iri,_Bool percent_encode)" ( (parameter_declaration "char *url" primitive_type (pointer_declarator "*url" * identifier)) , (parameter_declaration "int *error" primitive_type (pointer_declarator "*error" * identifier)) , (parameter_declaration "iri *iri" type_identifier (pointer_declarator "*iri" * identifier)) , (parameter_declaration "_Bool percent_encode" type_identifier identifier) )))) (compound_statement "{\n  char cVar1;\n  uint uVar2;\n  _Bool _Var3;\n  char cVar4;\n  url_scheme scheme;\n  char *pcVar5;\n  char *pcVar6;\n  char *pcVar7;\n  char *pcVar8;\n  url *url_00;\n  ulong uVar9;\n  char *pcVar10;\n  int iVar11;\n  byte bVar12;\n  char *__s;\n  long in_FS_OFFSET;\n  char *local_b8;\n  char *local_b0;\n  char *local_a8;\n  char *local_a0;\n  char *local_90;\n  char *local_88;\n  char *local_80;\n  uint local_74;\n  char *local_70;\n  char *local_68;\n  char *local_60;\n  char *local_58;\n  char *local_50;\n  char *new_url;\n  long local_40;\n  \n  bVar12 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  scheme = url_scheme(url);\n  if (scheme == SCHEME_INVALID) {\n    _Var3 = url_has_scheme(url);\n    iVar11 = !_Var3 + 1;\n  }\n  else {\n    if ((iri == (iri *)0x0) || (iri->utf8_encode == false)) {\nLAB_001374b5:\n      local_b8 = url;\n      if (percent_encode) {\n        local_b8 = reencode_escapes(url);\n      }\n    }\n    else {\n      new_url = (char *)0x0;\n      pcVar8 = iri->orig_url;\n      if (iri->orig_url == (char *)0x0) {\n        pcVar8 = url;\n      }\n      _Var3 = remote_to_utf8(iri,pcVar8,&new_url);\n      iri->utf8_encode = _Var3;\n      if (!_Var3) goto LAB_001374b5;\n      free(iri->orig_url);\n      iri->orig_url = (char *)0x0;\n      pcVar8 = xstrdup(url);\n      iri->orig_url = pcVar8;\n      local_b8 = reencode_escapes(new_url);\n      if (new_url != local_b8) {\n        free(new_url);\n      }\n    }\n    uVar9 = 0xffffffffffffffff;\n    pcVar8 = supported_schemes[scheme].leading_string;\n    do {\n      if (uVar9 == 0) break;\n      uVar9 = uVar9 - 1;\n      cVar4 = *pcVar8;\n      pcVar8 = pcVar8 + (ulong)bVar12 * -2 + 1;\n    } while (cVar4 != '\0');\n    pcVar8 = local_b8 + (~uVar9 - 1);\n    pcVar5 = strpbrk(pcVar8,"@/?#;");\n    pcVar10 = pcVar8;\n    if ((pcVar5 != (char *)0x0) && (pcVar10 = pcVar5 + 1, *pcVar5 != '@')) {\n      pcVar10 = pcVar8;\n    }\n    pcVar5 = init_seps(scheme);\n    if (*pcVar10 == '[') {\n      local_a8 = pcVar10 + 1;\n      local_a0 = strchr(local_a8,0x5d);\n      if (local_a0 == (char *)0x0) {\n        iVar11 = 6;\n      }\n      else {\n        _Var3 = is_valid_ipv6_address(local_a8,local_a0);\n        if (_Var3) {\n          pcVar6 = local_a0 + 1;\n          pcVar7 = strchr(pcVar5,(int)local_a0[1]);\n          if (pcVar7 != (char *)0x0) goto LAB_00137554;\n          iVar11 = 3;\n        }\n        else {\n          iVar11 = 8;\n        }\n      }\n    }\n    else {\n      pcVar6 = strpbrk(pcVar10,pcVar5);\n      local_a8 = pcVar10;\n      local_a0 = pcVar6;\n      if (pcVar6 == (char *)0x0) {\n        uVar9 = 0xffffffffffffffff;\n        pcVar6 = pcVar10;\n        do {\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar4 = *pcVar6;\n          pcVar6 = pcVar6 + (ulong)bVar12 * -2 + 1;\n        } while (cVar4 != '\0');\n        pcVar6 = pcVar10 + (~uVar9 - 1);\n        local_a0 = pcVar6;\n      }\nLAB_00137554:\n      if (local_a8 == local_a0) {\n        iVar11 = 3;\n      }\n      else {\n        local_74 = supported_schemes[scheme].default_port;\n        pcVar7 = pcVar6;\n        if (*pcVar6 == ':') {\n          __s = pcVar6 + 1;\n          pcVar7 = strpbrk(__s,pcVar5 + 1);\n          if (pcVar7 == (char *)0x0) {\n            uVar9 = 0xffffffffffffffff;\n            pcVar7 = __s;\n            do {\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar4 = *pcVar7;\n              pcVar7 = pcVar7 + (ulong)bVar12 * -2 + 1;\n            } while (cVar4 != '\0');\n            pcVar7 = pcVar6 + ~uVar9;\n          }\n          if (__s != pcVar7) {\n            if (__s < pcVar7) {\n              local_74 = (int)pcVar6[1] - 0x30;\n              if (local_74 < 10) {\n                do {\n                  __s = __s + 1;\n                  if (__s == pcVar7) goto LAB_00137584;\n                  if (9 < (int)*__s - 0x30U) {\n                    iVar11 = 4;\n                    goto LAB_00137c65;\n                  }\n                  local_74 = *__s + -0x30 + local_74 * 10;\n                } while ((int)local_74 < 0x10000);\n                iVar11 = 4;\n              }\n              else {\n                iVar11 = 4;\n              }\n              goto LAB_00137c65;\n            }\n            local_74 = 0;\n          }\n        }\nLAB_00137584:\n        local_80 = (char *)0x0;\n        local_88 = (char *)0x0;\n        pcVar6 = pcVar7;\n        if (*pcVar7 == '/') {\n          local_88 = pcVar7 + 1;\n          pcVar6 = strpbrk(local_88,pcVar5 + 2);\n          local_80 = pcVar6;\n          if (pcVar6 == (char *)0x0) {\n            uVar9 = 0xffffffffffffffff;\n            pcVar6 = local_88;\n            do {\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar4 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar12 * -2 + 1;\n            } while (cVar4 != '\0');\n            pcVar6 = pcVar7 + ~uVar9;\n            local_80 = pcVar6;\n          }\n        }\n        local_90 = pcVar5 + 3;\n        uVar2 = supported_schemes[scheme].flags;\n        if ((uVar2 & 2) == 0) {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n        }\n        else {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n          pcVar7 = pcVar6;\n          if (*pcVar6 == ';') {\n            local_70 = pcVar6 + 1;\n            pcVar7 = strpbrk(local_70,local_90);\n            local_60 = pcVar7;\n            if (pcVar7 == (char *)0x0) {\n              uVar9 = 0xffffffffffffffff;\n              pcVar7 = local_70;\n              do {\n                if (uVar9 == 0) break;\n                uVar9 = uVar9 - 1;\n                cVar4 = *pcVar7;\n                pcVar7 = pcVar7 + (ulong)bVar12 * -2 + 1;\n              } while (cVar4 != '\0');\n              pcVar7 = pcVar6 + ~uVar9;\n              local_60 = pcVar7;\n            }\n          }\n          local_90 = pcVar5 + 4;\n          pcVar6 = pcVar7;\n        }\n        if ((uVar2 & 4) == 0) {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n        }\n        else {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n          pcVar5 = pcVar6;\n          if (*pcVar6 == '?') {\n            local_b0 = pcVar6 + 1;\n            pcVar5 = strpbrk(local_b0,local_90);\n            local_58 = pcVar5;\n            if (pcVar5 == (char *)0x0) {\n              uVar9 = 0xffffffffffffffff;\n              pcVar5 = local_b0;\n              do {\n                if (uVar9 == 0) break;\n                uVar9 = uVar9 - 1;\n                cVar4 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar12 * -2 + 1;\n              } while (cVar4 != '\0');\n              pcVar5 = pcVar6 + ~uVar9;\n              local_58 = pcVar5;\n            }\n          }\n          local_90 = local_90 + 1;\n          pcVar6 = pcVar5;\n        }\n        if ((uVar2 & 8) == 0) {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n        }\n        else {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n          if (*pcVar6 == '#') {\n            local_68 = pcVar6 + 1;\n            local_50 = strpbrk(local_68,local_90);\n            if (local_50 == (char *)0x0) {\n              uVar9 = 0xffffffffffffffff;\n              pcVar5 = local_68;\n              do {\n                if (uVar9 == 0) break;\n                uVar9 = uVar9 - 1;\n                cVar4 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar12 * -2 + 1;\n              } while (cVar4 != '\0');\n              local_50 = pcVar6 + ~uVar9;\n            }\n          }\n        }\n        if (pcVar8 == pcVar10) {\n          pcVar5 = (char *)0x0;\n          pcVar8 = (char *)0x0;\nLAB_001379c6:\n          url_00 = (url *)xcalloc(1,0x60);\n          url_00->scheme = scheme;\n          pcVar10 = strdupdelim(local_a8,local_a0);\n          url_00->host = pcVar10;\n          url_00->port = local_74;\n          url_00->user = pcVar8;\n          url_00->passwd = pcVar5;\n          pcVar8 = strdupdelim(local_88,local_80);\n          url_00->path = pcVar8;\n          uVar9 = 0xffffffffffffffff;\n          pcVar10 = pcVar8;\n          do {\n            if (uVar9 == 0) break;\n            uVar9 = uVar9 - 1;\n            cVar4 = *pcVar10;\n            pcVar10 = pcVar10 + (ulong)bVar12 * -2 + 1;\n          } while (cVar4 != '\0');\n          pcVar10 = pcVar8 + (~uVar9 - 1);\n          pcVar5 = pcVar8;\n          if (pcVar8 < pcVar10) {\n            pcVar7 = pcVar8;\n            pcVar6 = pcVar8;\n            do {\n              cVar4 = *pcVar8;\n              if (cVar4 == '.') {\n                cVar1 = pcVar8[1];\n                if ((cVar1 == '/') || (cVar1 == '\0')) {\n                  pcVar8 = pcVar8 + 2;\n                }\n                else {\n                  if ((cVar1 != '.') || ((pcVar8[2] != '/' && (pcVar8[2] != '\0'))))\n                  goto LAB_00137e1d;\n                  if (pcVar6 < pcVar7) {\n                    pcVar5 = pcVar7 + -1;\n                    if (pcVar6 < pcVar5) {\n                      cVar4 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar4 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar4 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar5 = pcVar7;\n                    if (scheme - SCHEME_FTP < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }\n                  pcVar8 = pcVar8 + 3;\n                  pcVar7 = pcVar5;\n                }\n              }\n              else {\nLAB_00137e1d:\n                if (pcVar7 == pcVar8) {\n                  pcVar5 = pcVar7;\n                  if (pcVar10 <= pcVar7) break;\n                  cVar4 = *pcVar7;\n                  while (cVar4 != '/') {\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar10;\n                    if (pcVar10 == pcVar5) goto LAB_00137d7b;\n                    cVar4 = *pcVar5;\n                  }\n                  pcVar8 = pcVar5 + 1;\n                  pcVar7 = pcVar5 + 1;\n                }\n                else {\n                  pcVar5 = pcVar8;\n                  if (pcVar10 <= pcVar8) break;\n                  while (cVar4 != '/') {\n                    pcVar8 = pcVar8 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar4;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar10;\n                    if (pcVar10 == pcVar8) goto LAB_00137d7b;\n                    cVar4 = *pcVar8;\n                  }\n                  *pcVar7 = *pcVar8;\n                  pcVar8 = pcVar8 + 1;\n                  pcVar7 = pcVar7 + 1;\n                }\n              }\n              pcVar5 = pcVar8;\n            } while (pcVar8 < pcVar10);\nLAB_00137d7b:\n            pcVar8 = pcVar7;\n            if (pcVar5 != pcVar7) {\n              *pcVar7 = '\0';\n            }\n          }\n          pcVar10 = url_00->path;\n          pcVar6 = strrchr(pcVar10,0x2f);\n          if (pcVar6 == (char *)0x0) {\n            pcVar6 = xstrdup("");\n            url_00->dir = pcVar6;\n            pcVar10 = xstrdup(pcVar10);\n            url_00->file = pcVar10;\n          }\n          else {\n            pcVar10 = strdupdelim(pcVar10,pcVar6);\n            url_00->dir = pcVar10;\n            pcVar10 = xstrdup(pcVar6 + 1);\n            url_00->file = pcVar10;\n          }\n          url_unescape(url_00->dir);\n          url_unescape(url_00->file);\n          pcVar10 = url_00->host;\n          cVar4 = *pcVar10;\n          if (cVar4 == '\0') {\n            bVar12 = 0;\n          }\n          else {\n            bVar12 = 0;\n            do {\n              if ((int)cVar4 - 0x41U < 0x1a) {\n                *pcVar10 = cVar4 + ' ';\n                bVar12 = 1;\n              }\n              pcVar10 = pcVar10 + 1;\n              cVar4 = *pcVar10;\n            } while (cVar4 != '\0');\n          }\n          pcVar10 = url_00->host;\n          pcVar6 = strchr(pcVar10,0x25);\n          if (pcVar6 != (char *)0x0) {\n            url_unescape(pcVar10);\n            pcVar10 = url_00->host;\n            cVar4 = *pcVar10;\n            pcVar6 = pcVar10;\n            while (cVar4 != '\0') {\n              if ((-1 < cVar4) && ((cVar4 < ' ' || (cVar4 == '\x7f')))) {\n                url_free(url_00);\n                iVar11 = 3;\n                goto LAB_00137c65;\n              }\n              pcVar6 = pcVar6 + 1;\n              cVar4 = *pcVar6;\n            }\n            bVar12 = iri != (iri *)0x0 & opt.enable_iri;\n            if (bVar12 == 0) {\n              bVar12 = 1;\n            }\n            else {\n              pcVar10 = idn_encode(iri,pcVar10);\n              if (pcVar10 != (char *)0x0) {\n                free(url_00->host);\n                url_00->host = pcVar10;\n              }\n            }\n          }\n          if (local_70 != (char *)0x0) {\n            pcVar10 = strdupdelim(local_70,local_60);\n            url_00->params = pcVar10;\n          }\n          if (local_b0 != (char *)0x0) {\n            pcVar10 = strdupdelim(local_b0,local_58);\n            url_00->query = pcVar10;\n          }\n          if (local_68 != (char *)0x0) {\n            pcVar10 = strdupdelim(local_68,local_50);\n            url_00->fragment = pcVar10;\n          }\n          error = (int *)url_00;\n          if ((((opt.enable_iri == false) && (pcVar5 == pcVar8)) &&\n              (url_00->fragment == (char *)0x0)) && ((local_88 != local_80 && (bVar12 == 0)))) {\n            if (local_b8 == url) {\n              pcVar8 = xstrdup(url);\n              url_00->url = pcVar8;\n            }\n            else {\n              url_00->url = local_b8;\n            }\n          }\n          else {\n            pcVar8 = url_string(url_00,URL_AUTH_SHOW);\n            url_00->url = pcVar8;\n            if (local_b8 != url) {\n              free(local_b8);\n            }\n          }\n          goto LAB_00137c95;\n        }\n        pcVar10 = pcVar10 + -1;\n        if (pcVar10 == pcVar8) {\n          iVar11 = 5;\n        }\n        else {\n          pcVar6 = (char *)memchr(pcVar8,0x3a,(long)pcVar10 - (long)pcVar8);\n          if (pcVar8 != pcVar6) {\n            pcVar5 = pcVar6;\n            if (pcVar6 != (char *)0x0) {\n              pcVar5 = strdupdelim(pcVar6 + 1,pcVar10);\n              url_unescape(pcVar5);\n              pcVar10 = pcVar6;\n            }\n            pcVar8 = strdupdelim(pcVar8,pcVar10);\n            url_unescape(pcVar8);\n            goto LAB_001379c6;\n          }\n          iVar11 = 5;\n        }\n      }\n    }\nLAB_00137c65:\n    if ((local_b8 != (char *)0x0) && (local_b8 != url)) {\n      free(local_b8);\n    }\n  }\n  if (error != (int *)0x0) {\n    *error = iVar11;\n    error = (int *)0x0;\n  }\nLAB_00137c95:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return (url *)error;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "_Bool _Var3;" type_identifier identifier ;) (declaration "char cVar4;" primitive_type identifier ;) (declaration "url_scheme scheme;" type_identifier identifier ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "char *pcVar8;" primitive_type (pointer_declarator "*pcVar8" * identifier) ;) (declaration "url *url_00;" type_identifier (pointer_declarator "*url_00" * identifier) ;) (declaration "ulong uVar9;" type_identifier identifier ;) (declaration "char *pcVar10;" primitive_type (pointer_declarator "*pcVar10" * identifier) ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "byte bVar12;" type_identifier identifier ;) (declaration "char *__s;" primitive_type (pointer_declarator "*__s" * identifier) ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "char *local_b8;" primitive_type (pointer_declarator "*local_b8" * identifier) ;) (declaration "char *local_b0;" primitive_type (pointer_declarator "*local_b0" * identifier) ;) (declaration "char *local_a8;" primitive_type (pointer_declarator "*local_a8" * identifier) ;) (declaration "char *local_a0;" primitive_type (pointer_declarator "*local_a0" * identifier) ;) (declaration "char *local_90;" primitive_type (pointer_declarator "*local_90" * identifier) ;) (declaration "char *local_88;" primitive_type (pointer_declarator "*local_88" * identifier) ;) (declaration "char *local_80;" primitive_type (pointer_declarator "*local_80" * identifier) ;) (declaration "uint local_74;" type_identifier identifier ;) (declaration "char *local_70;" primitive_type (pointer_declarator "*local_70" * identifier) ;) (declaration "char *local_68;" primitive_type (pointer_declarator "*local_68" * identifier) ;) (declaration "char *local_60;" primitive_type (pointer_declarator "*local_60" * identifier) ;) (declaration "char *local_58;" primitive_type (pointer_declarator "*local_58" * identifier) ;) (declaration "char *local_50;" primitive_type (pointer_declarator "*local_50" * identifier) ;) (declaration "char *new_url;" primitive_type (pointer_declarator "*new_url" * identifier) ;) (declaration "long local_40;" (sized_type_specifier "long" long) identifier ;) (expression_statement "bVar12 = 0;" (assignment_expression "bVar12 = 0" identifier = number_literal) ;) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (expression_statement "scheme = url_scheme(url);" (assignment_expression "scheme = url_scheme(url)" identifier = (call_expression "url_scheme(url)" identifier (argument_list "(url)" ( identifier )))) ;) (if_statement "if (scheme == SCHEME_INVALID) {\n    _Var3 = url_has_scheme(url);\n    iVar11 = !_Var3 + 1;\n  }\n  else {\n    if ((iri == (iri *)0x0) || (iri->utf8_encode == false)) {\nLAB_001374b5:\n      local_b8 = url;\n      if (percent_encode) {\n        local_b8 = reencode_escapes(url);\n      }\n    }\n    else {\n      new_url = (char *)0x0;\n      pcVar8 = iri->orig_url;\n      if (iri->orig_url == (char *)0x0) {\n        pcVar8 = url;\n      }\n      _Var3 = remote_to_utf8(iri,pcVar8,&new_url);\n      iri->utf8_encode = _Var3;\n      if (!_Var3) goto LAB_001374b5;\n      free(iri->orig_url);\n      iri->orig_url = (char *)0x0;\n      pcVar8 = xstrdup(url);\n      iri->orig_url = pcVar8;\n      local_b8 = reencode_escapes(new_url);\n      if (new_url != local_b8) {\n        free(new_url);\n      }\n    }\n    uVar9 = 0xffffffffffffffff;\n    pcVar8 = supported_schemes[scheme].leading_string;\n    do {\n      if (uVar9 == 0) break;\n      uVar9 = uVar9 - 1;\n      cVar4 = *pcVar8;\n      pcVar8 = pcVar8 + (ulong)bVar12 * -2 + 1;\n    } while (cVar4 != '\0');\n    pcVar8 = local_b8 + (~uVar9 - 1);\n    pcVar5 = strpbrk(pcVar8,"@/?#;");\n    pcVar10 = pcVar8;\n    if ((pcVar5 != (char *)0x0) && (pcVar10 = pcVar5 + 1, *pcVar5 != '@')) {\n      pcVar10 = pcVar8;\n    }\n    pcVar5 = init_seps(scheme);\n    if (*pcVar10 == '[') {\n      local_a8 = pcVar10 + 1;\n      local_a0 = strchr(local_a8,0x5d);\n      if (local_a0 == (char *)0x0) {\n        iVar11 = 6;\n      }\n      else {\n        _Var3 = is_valid_ipv6_address(local_a8,local_a0);\n        if (_Var3) {\n          pcVar6 = local_a0 + 1;\n          pcVar7 = strchr(pcVar5,(int)local_a0[1]);\n          if (pcVar7 != (char *)0x0) goto LAB_00137554;\n          iVar11 = 3;\n        }\n        else {\n          iVar11 = 8;\n        }\n      }\n    }\n    else {\n      pcVar6 = strpbrk(pcVar10,pcVar5);\n      local_a8 = pcVar10;\n      local_a0 = pcVar6;\n      if (pcVar6 == (char *)0x0) {\n        uVar9 = 0xffffffffffffffff;\n        pcVar6 = pcVar10;\n        do {\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar4 = *pcVar6;\n          pcVar6 = pcVar6 + (ulong)bVar12 * -2 + 1;\n        } while (cVar4 != '\0');\n        pcVar6 = pcVar10 + (~uVar9 - 1);\n        local_a0 = pcVar6;\n      }\nLAB_00137554:\n      if (local_a8 == local_a0) {\n        iVar11 = 3;\n      }\n      else {\n        local_74 = supported_schemes[scheme].default_port;\n        pcVar7 = pcVar6;\n        if (*pcVar6 == ':') {\n          __s = pcVar6 + 1;\n          pcVar7 = strpbrk(__s,pcVar5 + 1);\n          if (pcVar7 == (char *)0x0) {\n            uVar9 = 0xffffffffffffffff;\n            pcVar7 = __s;\n            do {\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar4 = *pcVar7;\n              pcVar7 = pcVar7 + (ulong)bVar12 * -2 + 1;\n            } while (cVar4 != '\0');\n            pcVar7 = pcVar6 + ~uVar9;\n          }\n          if (__s != pcVar7) {\n            if (__s < pcVar7) {\n              local_74 = (int)pcVar6[1] - 0x30;\n              if (local_74 < 10) {\n                do {\n                  __s = __s + 1;\n                  if (__s == pcVar7) goto LAB_00137584;\n                  if (9 < (int)*__s - 0x30U) {\n                    iVar11 = 4;\n                    goto LAB_00137c65;\n                  }\n                  local_74 = *__s + -0x30 + local_74 * 10;\n                } while ((int)local_74 < 0x10000);\n                iVar11 = 4;\n              }\n              else {\n                iVar11 = 4;\n              }\n              goto LAB_00137c65;\n            }\n            local_74 = 0;\n          }\n        }\nLAB_00137584:\n        local_80 = (char *)0x0;\n        local_88 = (char *)0x0;\n        pcVar6 = pcVar7;\n        if (*pcVar7 == '/') {\n          local_88 = pcVar7 + 1;\n          pcVar6 = strpbrk(local_88,pcVar5 + 2);\n          local_80 = pcVar6;\n          if (pcVar6 == (char *)0x0) {\n            uVar9 = 0xffffffffffffffff;\n            pcVar6 = local_88;\n            do {\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar4 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar12 * -2 + 1;\n            } while (cVar4 != '\0');\n            pcVar6 = pcVar7 + ~uVar9;\n            local_80 = pcVar6;\n          }\n        }\n        local_90 = pcVar5 + 3;\n        uVar2 = supported_schemes[scheme].flags;\n        if ((uVar2 & 2) == 0) {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n        }\n        else {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n          pcVar7 = pcVar6;\n          if (*pcVar6 == ';') {\n            local_70 = pcVar6 + 1;\n            pcVar7 = strpbrk(local_70,local_90);\n            local_60 = pcVar7;\n            if (pcVar7 == (char *)0x0) {\n              uVar9 = 0xffffffffffffffff;\n              pcVar7 = local_70;\n              do {\n                if (uVar9 == 0) break;\n                uVar9 = uVar9 - 1;\n                cVar4 = *pcVar7;\n                pcVar7 = pcVar7 + (ulong)bVar12 * -2 + 1;\n              } while (cVar4 != '\0');\n              pcVar7 = pcVar6 + ~uVar9;\n              local_60 = pcVar7;\n            }\n          }\n          local_90 = pcVar5 + 4;\n          pcVar6 = pcVar7;\n        }\n        if ((uVar2 & 4) == 0) {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n        }\n        else {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n          pcVar5 = pcVar6;\n          if (*pcVar6 == '?') {\n            local_b0 = pcVar6 + 1;\n            pcVar5 = strpbrk(local_b0,local_90);\n            local_58 = pcVar5;\n            if (pcVar5 == (char *)0x0) {\n              uVar9 = 0xffffffffffffffff;\n              pcVar5 = local_b0;\n              do {\n                if (uVar9 == 0) break;\n                uVar9 = uVar9 - 1;\n                cVar4 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar12 * -2 + 1;\n              } while (cVar4 != '\0');\n              pcVar5 = pcVar6 + ~uVar9;\n              local_58 = pcVar5;\n            }\n          }\n          local_90 = local_90 + 1;\n          pcVar6 = pcVar5;\n        }\n        if ((uVar2 & 8) == 0) {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n        }\n        else {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n          if (*pcVar6 == '#') {\n            local_68 = pcVar6 + 1;\n            local_50 = strpbrk(local_68,local_90);\n            if (local_50 == (char *)0x0) {\n              uVar9 = 0xffffffffffffffff;\n              pcVar5 = local_68;\n              do {\n                if (uVar9 == 0) break;\n                uVar9 = uVar9 - 1;\n                cVar4 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar12 * -2 + 1;\n              } while (cVar4 != '\0');\n              local_50 = pcVar6 + ~uVar9;\n            }\n          }\n        }\n        if (pcVar8 == pcVar10) {\n          pcVar5 = (char *)0x0;\n          pcVar8 = (char *)0x0;\nLAB_001379c6:\n          url_00 = (url *)xcalloc(1,0x60);\n          url_00->scheme = scheme;\n          pcVar10 = strdupdelim(local_a8,local_a0);\n          url_00->host = pcVar10;\n          url_00->port = local_74;\n          url_00->user = pcVar8;\n          url_00->passwd = pcVar5;\n          pcVar8 = strdupdelim(local_88,local_80);\n          url_00->path = pcVar8;\n          uVar9 = 0xffffffffffffffff;\n          pcVar10 = pcVar8;\n          do {\n            if (uVar9 == 0) break;\n            uVar9 = uVar9 - 1;\n            cVar4 = *pcVar10;\n            pcVar10 = pcVar10 + (ulong)bVar12 * -2 + 1;\n          } while (cVar4 != '\0');\n          pcVar10 = pcVar8 + (~uVar9 - 1);\n          pcVar5 = pcVar8;\n          if (pcVar8 < pcVar10) {\n            pcVar7 = pcVar8;\n            pcVar6 = pcVar8;\n            do {\n              cVar4 = *pcVar8;\n              if (cVar4 == '.') {\n                cVar1 = pcVar8[1];\n                if ((cVar1 == '/') || (cVar1 == '\0')) {\n                  pcVar8 = pcVar8 + 2;\n                }\n                else {\n                  if ((cVar1 != '.') || ((pcVar8[2] != '/' && (pcVar8[2] != '\0'))))\n                  goto LAB_00137e1d;\n                  if (pcVar6 < pcVar7) {\n                    pcVar5 = pcVar7 + -1;\n                    if (pcVar6 < pcVar5) {\n                      cVar4 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar4 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar4 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar5 = pcVar7;\n                    if (scheme - SCHEME_FTP < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }\n                  pcVar8 = pcVar8 + 3;\n                  pcVar7 = pcVar5;\n                }\n              }\n              else {\nLAB_00137e1d:\n                if (pcVar7 == pcVar8) {\n                  pcVar5 = pcVar7;\n                  if (pcVar10 <= pcVar7) break;\n                  cVar4 = *pcVar7;\n                  while (cVar4 != '/') {\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar10;\n                    if (pcVar10 == pcVar5) goto LAB_00137d7b;\n                    cVar4 = *pcVar5;\n                  }\n                  pcVar8 = pcVar5 + 1;\n                  pcVar7 = pcVar5 + 1;\n                }\n                else {\n                  pcVar5 = pcVar8;\n                  if (pcVar10 <= pcVar8) break;\n                  while (cVar4 != '/') {\n                    pcVar8 = pcVar8 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar4;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar10;\n                    if (pcVar10 == pcVar8) goto LAB_00137d7b;\n                    cVar4 = *pcVar8;\n                  }\n                  *pcVar7 = *pcVar8;\n                  pcVar8 = pcVar8 + 1;\n                  pcVar7 = pcVar7 + 1;\n                }\n              }\n              pcVar5 = pcVar8;\n            } while (pcVar8 < pcVar10);\nLAB_00137d7b:\n            pcVar8 = pcVar7;\n            if (pcVar5 != pcVar7) {\n              *pcVar7 = '\0';\n            }\n          }\n          pcVar10 = url_00->path;\n          pcVar6 = strrchr(pcVar10,0x2f);\n          if (pcVar6 == (char *)0x0) {\n            pcVar6 = xstrdup("");\n            url_00->dir = pcVar6;\n            pcVar10 = xstrdup(pcVar10);\n            url_00->file = pcVar10;\n          }\n          else {\n            pcVar10 = strdupdelim(pcVar10,pcVar6);\n            url_00->dir = pcVar10;\n            pcVar10 = xstrdup(pcVar6 + 1);\n            url_00->file = pcVar10;\n          }\n          url_unescape(url_00->dir);\n          url_unescape(url_00->file);\n          pcVar10 = url_00->host;\n          cVar4 = *pcVar10;\n          if (cVar4 == '\0') {\n            bVar12 = 0;\n          }\n          else {\n            bVar12 = 0;\n            do {\n              if ((int)cVar4 - 0x41U < 0x1a) {\n                *pcVar10 = cVar4 + ' ';\n                bVar12 = 1;\n              }\n              pcVar10 = pcVar10 + 1;\n              cVar4 = *pcVar10;\n            } while (cVar4 != '\0');\n          }\n          pcVar10 = url_00->host;\n          pcVar6 = strchr(pcVar10,0x25);\n          if (pcVar6 != (char *)0x0) {\n            url_unescape(pcVar10);\n            pcVar10 = url_00->host;\n            cVar4 = *pcVar10;\n            pcVar6 = pcVar10;\n            while (cVar4 != '\0') {\n              if ((-1 < cVar4) && ((cVar4 < ' ' || (cVar4 == '\x7f')))) {\n                url_free(url_00);\n                iVar11 = 3;\n                goto LAB_00137c65;\n              }\n              pcVar6 = pcVar6 + 1;\n              cVar4 = *pcVar6;\n            }\n            bVar12 = iri != (iri *)0x0 & opt.enable_iri;\n            if (bVar12 == 0) {\n              bVar12 = 1;\n            }\n            else {\n              pcVar10 = idn_encode(iri,pcVar10);\n              if (pcVar10 != (char *)0x0) {\n                free(url_00->host);\n                url_00->host = pcVar10;\n              }\n            }\n          }\n          if (local_70 != (char *)0x0) {\n            pcVar10 = strdupdelim(local_70,local_60);\n            url_00->params = pcVar10;\n          }\n          if (local_b0 != (char *)0x0) {\n            pcVar10 = strdupdelim(local_b0,local_58);\n            url_00->query = pcVar10;\n          }\n          if (local_68 != (char *)0x0) {\n            pcVar10 = strdupdelim(local_68,local_50);\n            url_00->fragment = pcVar10;\n          }\n          error = (int *)url_00;\n          if ((((opt.enable_iri == false) && (pcVar5 == pcVar8)) &&\n              (url_00->fragment == (char *)0x0)) && ((local_88 != local_80 && (bVar12 == 0)))) {\n            if (local_b8 == url) {\n              pcVar8 = xstrdup(url);\n              url_00->url = pcVar8;\n            }\n            else {\n              url_00->url = local_b8;\n            }\n          }\n          else {\n            pcVar8 = url_string(url_00,URL_AUTH_SHOW);\n            url_00->url = pcVar8;\n            if (local_b8 != url) {\n              free(local_b8);\n            }\n          }\n          goto LAB_00137c95;\n        }\n        pcVar10 = pcVar10 + -1;\n        if (pcVar10 == pcVar8) {\n          iVar11 = 5;\n        }\n        else {\n          pcVar6 = (char *)memchr(pcVar8,0x3a,(long)pcVar10 - (long)pcVar8);\n          if (pcVar8 != pcVar6) {\n            pcVar5 = pcVar6;\n            if (pcVar6 != (char *)0x0) {\n              pcVar5 = strdupdelim(pcVar6 + 1,pcVar10);\n              url_unescape(pcVar5);\n              pcVar10 = pcVar6;\n            }\n            pcVar8 = strdupdelim(pcVar8,pcVar10);\n            url_unescape(pcVar8);\n            goto LAB_001379c6;\n          }\n          iVar11 = 5;\n        }\n      }\n    }\nLAB_00137c65:\n    if ((local_b8 != (char *)0x0) && (local_b8 != url)) {\n      free(local_b8);\n    }\n  }" if (parenthesized_expression "(scheme == SCHEME_INVALID)" ( (binary_expression "scheme == SCHEME_INVALID" identifier == identifier) )) (compound_statement "{\n    _Var3 = url_has_scheme(url);\n    iVar11 = !_Var3 + 1;\n  }" { (expression_statement "_Var3 = url_has_scheme(url);" (assignment_expression "_Var3 = url_has_scheme(url)" identifier = (call_expression "url_has_scheme(url)" identifier (argument_list "(url)" ( identifier )))) ;) (expression_statement "iVar11 = !_Var3 + 1;" (assignment_expression "iVar11 = !_Var3 + 1" identifier = (binary_expression "!_Var3 + 1" (unary_expression "!_Var3" ! identifier) + number_literal)) ;) }) (else_clause "else {\n    if ((iri == (iri *)0x0) || (iri->utf8_encode == false)) {\nLAB_001374b5:\n      local_b8 = url;\n      if (percent_encode) {\n        local_b8 = reencode_escapes(url);\n      }\n    }\n    else {\n      new_url = (char *)0x0;\n      pcVar8 = iri->orig_url;\n      if (iri->orig_url == (char *)0x0) {\n        pcVar8 = url;\n      }\n      _Var3 = remote_to_utf8(iri,pcVar8,&new_url);\n      iri->utf8_encode = _Var3;\n      if (!_Var3) goto LAB_001374b5;\n      free(iri->orig_url);\n      iri->orig_url = (char *)0x0;\n      pcVar8 = xstrdup(url);\n      iri->orig_url = pcVar8;\n      local_b8 = reencode_escapes(new_url);\n      if (new_url != local_b8) {\n        free(new_url);\n      }\n    }\n    uVar9 = 0xffffffffffffffff;\n    pcVar8 = supported_schemes[scheme].leading_string;\n    do {\n      if (uVar9 == 0) break;\n      uVar9 = uVar9 - 1;\n      cVar4 = *pcVar8;\n      pcVar8 = pcVar8 + (ulong)bVar12 * -2 + 1;\n    } while (cVar4 != '\0');\n    pcVar8 = local_b8 + (~uVar9 - 1);\n    pcVar5 = strpbrk(pcVar8,"@/?#;");\n    pcVar10 = pcVar8;\n    if ((pcVar5 != (char *)0x0) && (pcVar10 = pcVar5 + 1, *pcVar5 != '@')) {\n      pcVar10 = pcVar8;\n    }\n    pcVar5 = init_seps(scheme);\n    if (*pcVar10 == '[') {\n      local_a8 = pcVar10 + 1;\n      local_a0 = strchr(local_a8,0x5d);\n      if (local_a0 == (char *)0x0) {\n        iVar11 = 6;\n      }\n      else {\n        _Var3 = is_valid_ipv6_address(local_a8,local_a0);\n        if (_Var3) {\n          pcVar6 = local_a0 + 1;\n          pcVar7 = strchr(pcVar5,(int)local_a0[1]);\n          if (pcVar7 != (char *)0x0) goto LAB_00137554;\n          iVar11 = 3;\n        }\n        else {\n          iVar11 = 8;\n        }\n      }\n    }\n    else {\n      pcVar6 = strpbrk(pcVar10,pcVar5);\n      local_a8 = pcVar10;\n      local_a0 = pcVar6;\n      if (pcVar6 == (char *)0x0) {\n        uVar9 = 0xffffffffffffffff;\n        pcVar6 = pcVar10;\n        do {\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar4 = *pcVar6;\n          pcVar6 = pcVar6 + (ulong)bVar12 * -2 + 1;\n        } while (cVar4 != '\0');\n        pcVar6 = pcVar10 + (~uVar9 - 1);\n        local_a0 = pcVar6;\n      }\nLAB_00137554:\n      if (local_a8 == local_a0) {\n        iVar11 = 3;\n      }\n      else {\n        local_74 = supported_schemes[scheme].default_port;\n        pcVar7 = pcVar6;\n        if (*pcVar6 == ':') {\n          __s = pcVar6 + 1;\n          pcVar7 = strpbrk(__s,pcVar5 + 1);\n          if (pcVar7 == (char *)0x0) {\n            uVar9 = 0xffffffffffffffff;\n            pcVar7 = __s;\n            do {\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar4 = *pcVar7;\n              pcVar7 = pcVar7 + (ulong)bVar12 * -2 + 1;\n            } while (cVar4 != '\0');\n            pcVar7 = pcVar6 + ~uVar9;\n          }\n          if (__s != pcVar7) {\n            if (__s < pcVar7) {\n              local_74 = (int)pcVar6[1] - 0x30;\n              if (local_74 < 10) {\n                do {\n                  __s = __s + 1;\n                  if (__s == pcVar7) goto LAB_00137584;\n                  if (9 < (int)*__s - 0x30U) {\n                    iVar11 = 4;\n                    goto LAB_00137c65;\n                  }\n                  local_74 = *__s + -0x30 + local_74 * 10;\n                } while ((int)local_74 < 0x10000);\n                iVar11 = 4;\n              }\n              else {\n                iVar11 = 4;\n              }\n              goto LAB_00137c65;\n            }\n            local_74 = 0;\n          }\n        }\nLAB_00137584:\n        local_80 = (char *)0x0;\n        local_88 = (char *)0x0;\n        pcVar6 = pcVar7;\n        if (*pcVar7 == '/') {\n          local_88 = pcVar7 + 1;\n          pcVar6 = strpbrk(local_88,pcVar5 + 2);\n          local_80 = pcVar6;\n          if (pcVar6 == (char *)0x0) {\n            uVar9 = 0xffffffffffffffff;\n            pcVar6 = local_88;\n            do {\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar4 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar12 * -2 + 1;\n            } while (cVar4 != '\0');\n            pcVar6 = pcVar7 + ~uVar9;\n            local_80 = pcVar6;\n          }\n        }\n        local_90 = pcVar5 + 3;\n        uVar2 = supported_schemes[scheme].flags;\n        if ((uVar2 & 2) == 0) {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n        }\n        else {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n          pcVar7 = pcVar6;\n          if (*pcVar6 == ';') {\n            local_70 = pcVar6 + 1;\n            pcVar7 = strpbrk(local_70,local_90);\n            local_60 = pcVar7;\n            if (pcVar7 == (char *)0x0) {\n              uVar9 = 0xffffffffffffffff;\n              pcVar7 = local_70;\n              do {\n                if (uVar9 == 0) break;\n                uVar9 = uVar9 - 1;\n                cVar4 = *pcVar7;\n                pcVar7 = pcVar7 + (ulong)bVar12 * -2 + 1;\n              } while (cVar4 != '\0');\n              pcVar7 = pcVar6 + ~uVar9;\n              local_60 = pcVar7;\n            }\n          }\n          local_90 = pcVar5 + 4;\n          pcVar6 = pcVar7;\n        }\n        if ((uVar2 & 4) == 0) {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n        }\n        else {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n          pcVar5 = pcVar6;\n          if (*pcVar6 == '?') {\n            local_b0 = pcVar6 + 1;\n            pcVar5 = strpbrk(local_b0,local_90);\n            local_58 = pcVar5;\n            if (pcVar5 == (char *)0x0) {\n              uVar9 = 0xffffffffffffffff;\n              pcVar5 = local_b0;\n              do {\n                if (uVar9 == 0) break;\n                uVar9 = uVar9 - 1;\n                cVar4 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar12 * -2 + 1;\n              } while (cVar4 != '\0');\n              pcVar5 = pcVar6 + ~uVar9;\n              local_58 = pcVar5;\n            }\n          }\n          local_90 = local_90 + 1;\n          pcVar6 = pcVar5;\n        }\n        if ((uVar2 & 8) == 0) {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n        }\n        else {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n          if (*pcVar6 == '#') {\n            local_68 = pcVar6 + 1;\n            local_50 = strpbrk(local_68,local_90);\n            if (local_50 == (char *)0x0) {\n              uVar9 = 0xffffffffffffffff;\n              pcVar5 = local_68;\n              do {\n                if (uVar9 == 0) break;\n                uVar9 = uVar9 - 1;\n                cVar4 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar12 * -2 + 1;\n              } while (cVar4 != '\0');\n              local_50 = pcVar6 + ~uVar9;\n            }\n          }\n        }\n        if (pcVar8 == pcVar10) {\n          pcVar5 = (char *)0x0;\n          pcVar8 = (char *)0x0;\nLAB_001379c6:\n          url_00 = (url *)xcalloc(1,0x60);\n          url_00->scheme = scheme;\n          pcVar10 = strdupdelim(local_a8,local_a0);\n          url_00->host = pcVar10;\n          url_00->port = local_74;\n          url_00->user = pcVar8;\n          url_00->passwd = pcVar5;\n          pcVar8 = strdupdelim(local_88,local_80);\n          url_00->path = pcVar8;\n          uVar9 = 0xffffffffffffffff;\n          pcVar10 = pcVar8;\n          do {\n            if (uVar9 == 0) break;\n            uVar9 = uVar9 - 1;\n            cVar4 = *pcVar10;\n            pcVar10 = pcVar10 + (ulong)bVar12 * -2 + 1;\n          } while (cVar4 != '\0');\n          pcVar10 = pcVar8 + (~uVar9 - 1);\n          pcVar5 = pcVar8;\n          if (pcVar8 < pcVar10) {\n            pcVar7 = pcVar8;\n            pcVar6 = pcVar8;\n            do {\n              cVar4 = *pcVar8;\n              if (cVar4 == '.') {\n                cVar1 = pcVar8[1];\n                if ((cVar1 == '/') || (cVar1 == '\0')) {\n                  pcVar8 = pcVar8 + 2;\n                }\n                else {\n                  if ((cVar1 != '.') || ((pcVar8[2] != '/' && (pcVar8[2] != '\0'))))\n                  goto LAB_00137e1d;\n                  if (pcVar6 < pcVar7) {\n                    pcVar5 = pcVar7 + -1;\n                    if (pcVar6 < pcVar5) {\n                      cVar4 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar4 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar4 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar5 = pcVar7;\n                    if (scheme - SCHEME_FTP < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }\n                  pcVar8 = pcVar8 + 3;\n                  pcVar7 = pcVar5;\n                }\n              }\n              else {\nLAB_00137e1d:\n                if (pcVar7 == pcVar8) {\n                  pcVar5 = pcVar7;\n                  if (pcVar10 <= pcVar7) break;\n                  cVar4 = *pcVar7;\n                  while (cVar4 != '/') {\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar10;\n                    if (pcVar10 == pcVar5) goto LAB_00137d7b;\n                    cVar4 = *pcVar5;\n                  }\n                  pcVar8 = pcVar5 + 1;\n                  pcVar7 = pcVar5 + 1;\n                }\n                else {\n                  pcVar5 = pcVar8;\n                  if (pcVar10 <= pcVar8) break;\n                  while (cVar4 != '/') {\n                    pcVar8 = pcVar8 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar4;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar10;\n                    if (pcVar10 == pcVar8) goto LAB_00137d7b;\n                    cVar4 = *pcVar8;\n                  }\n                  *pcVar7 = *pcVar8;\n                  pcVar8 = pcVar8 + 1;\n                  pcVar7 = pcVar7 + 1;\n                }\n              }\n              pcVar5 = pcVar8;\n            } while (pcVar8 < pcVar10);\nLAB_00137d7b:\n            pcVar8 = pcVar7;\n            if (pcVar5 != pcVar7) {\n              *pcVar7 = '\0';\n            }\n          }\n          pcVar10 = url_00->path;\n          pcVar6 = strrchr(pcVar10,0x2f);\n          if (pcVar6 == (char *)0x0) {\n            pcVar6 = xstrdup("");\n            url_00->dir = pcVar6;\n            pcVar10 = xstrdup(pcVar10);\n            url_00->file = pcVar10;\n          }\n          else {\n            pcVar10 = strdupdelim(pcVar10,pcVar6);\n            url_00->dir = pcVar10;\n            pcVar10 = xstrdup(pcVar6 + 1);\n            url_00->file = pcVar10;\n          }\n          url_unescape(url_00->dir);\n          url_unescape(url_00->file);\n          pcVar10 = url_00->host;\n          cVar4 = *pcVar10;\n          if (cVar4 == '\0') {\n            bVar12 = 0;\n          }\n          else {\n            bVar12 = 0;\n            do {\n              if ((int)cVar4 - 0x41U < 0x1a) {\n                *pcVar10 = cVar4 + ' ';\n                bVar12 = 1;\n              }\n              pcVar10 = pcVar10 + 1;\n              cVar4 = *pcVar10;\n            } while (cVar4 != '\0');\n          }\n          pcVar10 = url_00->host;\n          pcVar6 = strchr(pcVar10,0x25);\n          if (pcVar6 != (char *)0x0) {\n            url_unescape(pcVar10);\n            pcVar10 = url_00->host;\n            cVar4 = *pcVar10;\n            pcVar6 = pcVar10;\n            while (cVar4 != '\0') {\n              if ((-1 < cVar4) && ((cVar4 < ' ' || (cVar4 == '\x7f')))) {\n                url_free(url_00);\n                iVar11 = 3;\n                goto LAB_00137c65;\n              }\n              pcVar6 = pcVar6 + 1;\n              cVar4 = *pcVar6;\n            }\n            bVar12 = iri != (iri *)0x0 & opt.enable_iri;\n            if (bVar12 == 0) {\n              bVar12 = 1;\n            }\n            else {\n              pcVar10 = idn_encode(iri,pcVar10);\n              if (pcVar10 != (char *)0x0) {\n                free(url_00->host);\n                url_00->host = pcVar10;\n              }\n            }\n          }\n          if (local_70 != (char *)0x0) {\n            pcVar10 = strdupdelim(local_70,local_60);\n            url_00->params = pcVar10;\n          }\n          if (local_b0 != (char *)0x0) {\n            pcVar10 = strdupdelim(local_b0,local_58);\n            url_00->query = pcVar10;\n          }\n          if (local_68 != (char *)0x0) {\n            pcVar10 = strdupdelim(local_68,local_50);\n            url_00->fragment = pcVar10;\n          }\n          error = (int *)url_00;\n          if ((((opt.enable_iri == false) && (pcVar5 == pcVar8)) &&\n              (url_00->fragment == (char *)0x0)) && ((local_88 != local_80 && (bVar12 == 0)))) {\n            if (local_b8 == url) {\n              pcVar8 = xstrdup(url);\n              url_00->url = pcVar8;\n            }\n            else {\n              url_00->url = local_b8;\n            }\n          }\n          else {\n            pcVar8 = url_string(url_00,URL_AUTH_SHOW);\n            url_00->url = pcVar8;\n            if (local_b8 != url) {\n              free(local_b8);\n            }\n          }\n          goto LAB_00137c95;\n        }\n        pcVar10 = pcVar10 + -1;\n        if (pcVar10 == pcVar8) {\n          iVar11 = 5;\n        }\n        else {\n          pcVar6 = (char *)memchr(pcVar8,0x3a,(long)pcVar10 - (long)pcVar8);\n          if (pcVar8 != pcVar6) {\n            pcVar5 = pcVar6;\n            if (pcVar6 != (char *)0x0) {\n              pcVar5 = strdupdelim(pcVar6 + 1,pcVar10);\n              url_unescape(pcVar5);\n              pcVar10 = pcVar6;\n            }\n            pcVar8 = strdupdelim(pcVar8,pcVar10);\n            url_unescape(pcVar8);\n            goto LAB_001379c6;\n          }\n          iVar11 = 5;\n        }\n      }\n    }\nLAB_00137c65:\n    if ((local_b8 != (char *)0x0) && (local_b8 != url)) {\n      free(local_b8);\n    }\n  }" else (compound_statement "{\n    if ((iri == (iri *)0x0) || (iri->utf8_encode == false)) {\nLAB_001374b5:\n      local_b8 = url;\n      if (percent_encode) {\n        local_b8 = reencode_escapes(url);\n      }\n    }\n    else {\n      new_url = (char *)0x0;\n      pcVar8 = iri->orig_url;\n      if (iri->orig_url == (char *)0x0) {\n        pcVar8 = url;\n      }\n      _Var3 = remote_to_utf8(iri,pcVar8,&new_url);\n      iri->utf8_encode = _Var3;\n      if (!_Var3) goto LAB_001374b5;\n      free(iri->orig_url);\n      iri->orig_url = (char *)0x0;\n      pcVar8 = xstrdup(url);\n      iri->orig_url = pcVar8;\n      local_b8 = reencode_escapes(new_url);\n      if (new_url != local_b8) {\n        free(new_url);\n      }\n    }\n    uVar9 = 0xffffffffffffffff;\n    pcVar8 = supported_schemes[scheme].leading_string;\n    do {\n      if (uVar9 == 0) break;\n      uVar9 = uVar9 - 1;\n      cVar4 = *pcVar8;\n      pcVar8 = pcVar8 + (ulong)bVar12 * -2 + 1;\n    } while (cVar4 != '\0');\n    pcVar8 = local_b8 + (~uVar9 - 1);\n    pcVar5 = strpbrk(pcVar8,"@/?#;");\n    pcVar10 = pcVar8;\n    if ((pcVar5 != (char *)0x0) && (pcVar10 = pcVar5 + 1, *pcVar5 != '@')) {\n      pcVar10 = pcVar8;\n    }\n    pcVar5 = init_seps(scheme);\n    if (*pcVar10 == '[') {\n      local_a8 = pcVar10 + 1;\n      local_a0 = strchr(local_a8,0x5d);\n      if (local_a0 == (char *)0x0) {\n        iVar11 = 6;\n      }\n      else {\n        _Var3 = is_valid_ipv6_address(local_a8,local_a0);\n        if (_Var3) {\n          pcVar6 = local_a0 + 1;\n          pcVar7 = strchr(pcVar5,(int)local_a0[1]);\n          if (pcVar7 != (char *)0x0) goto LAB_00137554;\n          iVar11 = 3;\n        }\n        else {\n          iVar11 = 8;\n        }\n      }\n    }\n    else {\n      pcVar6 = strpbrk(pcVar10,pcVar5);\n      local_a8 = pcVar10;\n      local_a0 = pcVar6;\n      if (pcVar6 == (char *)0x0) {\n        uVar9 = 0xffffffffffffffff;\n        pcVar6 = pcVar10;\n        do {\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar4 = *pcVar6;\n          pcVar6 = pcVar6 + (ulong)bVar12 * -2 + 1;\n        } while (cVar4 != '\0');\n        pcVar6 = pcVar10 + (~uVar9 - 1);\n        local_a0 = pcVar6;\n      }\nLAB_00137554:\n      if (local_a8 == local_a0) {\n        iVar11 = 3;\n      }\n      else {\n        local_74 = supported_schemes[scheme].default_port;\n        pcVar7 = pcVar6;\n        if (*pcVar6 == ':') {\n          __s = pcVar6 + 1;\n          pcVar7 = strpbrk(__s,pcVar5 + 1);\n          if (pcVar7 == (char *)0x0) {\n            uVar9 = 0xffffffffffffffff;\n            pcVar7 = __s;\n            do {\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar4 = *pcVar7;\n              pcVar7 = pcVar7 + (ulong)bVar12 * -2 + 1;\n            } while (cVar4 != '\0');\n            pcVar7 = pcVar6 + ~uVar9;\n          }\n          if (__s != pcVar7) {\n            if (__s < pcVar7) {\n              local_74 = (int)pcVar6[1] - 0x30;\n              if (local_74 < 10) {\n                do {\n                  __s = __s + 1;\n                  if (__s == pcVar7) goto LAB_00137584;\n                  if (9 < (int)*__s - 0x30U) {\n                    iVar11 = 4;\n                    goto LAB_00137c65;\n                  }\n                  local_74 = *__s + -0x30 + local_74 * 10;\n                } while ((int)local_74 < 0x10000);\n                iVar11 = 4;\n              }\n              else {\n                iVar11 = 4;\n              }\n              goto LAB_00137c65;\n            }\n            local_74 = 0;\n          }\n        }\nLAB_00137584:\n        local_80 = (char *)0x0;\n        local_88 = (char *)0x0;\n        pcVar6 = pcVar7;\n        if (*pcVar7 == '/') {\n          local_88 = pcVar7 + 1;\n          pcVar6 = strpbrk(local_88,pcVar5 + 2);\n          local_80 = pcVar6;\n          if (pcVar6 == (char *)0x0) {\n            uVar9 = 0xffffffffffffffff;\n            pcVar6 = local_88;\n            do {\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar4 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar12 * -2 + 1;\n            } while (cVar4 != '\0');\n            pcVar6 = pcVar7 + ~uVar9;\n            local_80 = pcVar6;\n          }\n        }\n        local_90 = pcVar5 + 3;\n        uVar2 = supported_schemes[scheme].flags;\n        if ((uVar2 & 2) == 0) {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n        }\n        else {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n          pcVar7 = pcVar6;\n          if (*pcVar6 == ';') {\n            local_70 = pcVar6 + 1;\n            pcVar7 = strpbrk(local_70,local_90);\n            local_60 = pcVar7;\n            if (pcVar7 == (char *)0x0) {\n              uVar9 = 0xffffffffffffffff;\n              pcVar7 = local_70;\n              do {\n                if (uVar9 == 0) break;\n                uVar9 = uVar9 - 1;\n                cVar4 = *pcVar7;\n                pcVar7 = pcVar7 + (ulong)bVar12 * -2 + 1;\n              } while (cVar4 != '\0');\n              pcVar7 = pcVar6 + ~uVar9;\n              local_60 = pcVar7;\n            }\n          }\n          local_90 = pcVar5 + 4;\n          pcVar6 = pcVar7;\n        }\n        if ((uVar2 & 4) == 0) {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n        }\n        else {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n          pcVar5 = pcVar6;\n          if (*pcVar6 == '?') {\n            local_b0 = pcVar6 + 1;\n            pcVar5 = strpbrk(local_b0,local_90);\n            local_58 = pcVar5;\n            if (pcVar5 == (char *)0x0) {\n              uVar9 = 0xffffffffffffffff;\n              pcVar5 = local_b0;\n              do {\n                if (uVar9 == 0) break;\n                uVar9 = uVar9 - 1;\n                cVar4 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar12 * -2 + 1;\n              } while (cVar4 != '\0');\n              pcVar5 = pcVar6 + ~uVar9;\n              local_58 = pcVar5;\n            }\n          }\n          local_90 = local_90 + 1;\n          pcVar6 = pcVar5;\n        }\n        if ((uVar2 & 8) == 0) {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n        }\n        else {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n          if (*pcVar6 == '#') {\n            local_68 = pcVar6 + 1;\n            local_50 = strpbrk(local_68,local_90);\n            if (local_50 == (char *)0x0) {\n              uVar9 = 0xffffffffffffffff;\n              pcVar5 = local_68;\n              do {\n                if (uVar9 == 0) break;\n                uVar9 = uVar9 - 1;\n                cVar4 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar12 * -2 + 1;\n              } while (cVar4 != '\0');\n              local_50 = pcVar6 + ~uVar9;\n            }\n          }\n        }\n        if (pcVar8 == pcVar10) {\n          pcVar5 = (char *)0x0;\n          pcVar8 = (char *)0x0;\nLAB_001379c6:\n          url_00 = (url *)xcalloc(1,0x60);\n          url_00->scheme = scheme;\n          pcVar10 = strdupdelim(local_a8,local_a0);\n          url_00->host = pcVar10;\n          url_00->port = local_74;\n          url_00->user = pcVar8;\n          url_00->passwd = pcVar5;\n          pcVar8 = strdupdelim(local_88,local_80);\n          url_00->path = pcVar8;\n          uVar9 = 0xffffffffffffffff;\n          pcVar10 = pcVar8;\n          do {\n            if (uVar9 == 0) break;\n            uVar9 = uVar9 - 1;\n            cVar4 = *pcVar10;\n            pcVar10 = pcVar10 + (ulong)bVar12 * -2 + 1;\n          } while (cVar4 != '\0');\n          pcVar10 = pcVar8 + (~uVar9 - 1);\n          pcVar5 = pcVar8;\n          if (pcVar8 < pcVar10) {\n            pcVar7 = pcVar8;\n            pcVar6 = pcVar8;\n            do {\n              cVar4 = *pcVar8;\n              if (cVar4 == '.') {\n                cVar1 = pcVar8[1];\n                if ((cVar1 == '/') || (cVar1 == '\0')) {\n                  pcVar8 = pcVar8 + 2;\n                }\n                else {\n                  if ((cVar1 != '.') || ((pcVar8[2] != '/' && (pcVar8[2] != '\0'))))\n                  goto LAB_00137e1d;\n                  if (pcVar6 < pcVar7) {\n                    pcVar5 = pcVar7 + -1;\n                    if (pcVar6 < pcVar5) {\n                      cVar4 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar4 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar4 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar5 = pcVar7;\n                    if (scheme - SCHEME_FTP < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }\n                  pcVar8 = pcVar8 + 3;\n                  pcVar7 = pcVar5;\n                }\n              }\n              else {\nLAB_00137e1d:\n                if (pcVar7 == pcVar8) {\n                  pcVar5 = pcVar7;\n                  if (pcVar10 <= pcVar7) break;\n                  cVar4 = *pcVar7;\n                  while (cVar4 != '/') {\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar10;\n                    if (pcVar10 == pcVar5) goto LAB_00137d7b;\n                    cVar4 = *pcVar5;\n                  }\n                  pcVar8 = pcVar5 + 1;\n                  pcVar7 = pcVar5 + 1;\n                }\n                else {\n                  pcVar5 = pcVar8;\n                  if (pcVar10 <= pcVar8) break;\n                  while (cVar4 != '/') {\n                    pcVar8 = pcVar8 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar4;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar10;\n                    if (pcVar10 == pcVar8) goto LAB_00137d7b;\n                    cVar4 = *pcVar8;\n                  }\n                  *pcVar7 = *pcVar8;\n                  pcVar8 = pcVar8 + 1;\n                  pcVar7 = pcVar7 + 1;\n                }\n              }\n              pcVar5 = pcVar8;\n            } while (pcVar8 < pcVar10);\nLAB_00137d7b:\n            pcVar8 = pcVar7;\n            if (pcVar5 != pcVar7) {\n              *pcVar7 = '\0';\n            }\n          }\n          pcVar10 = url_00->path;\n          pcVar6 = strrchr(pcVar10,0x2f);\n          if (pcVar6 == (char *)0x0) {\n            pcVar6 = xstrdup("");\n            url_00->dir = pcVar6;\n            pcVar10 = xstrdup(pcVar10);\n            url_00->file = pcVar10;\n          }\n          else {\n            pcVar10 = strdupdelim(pcVar10,pcVar6);\n            url_00->dir = pcVar10;\n            pcVar10 = xstrdup(pcVar6 + 1);\n            url_00->file = pcVar10;\n          }\n          url_unescape(url_00->dir);\n          url_unescape(url_00->file);\n          pcVar10 = url_00->host;\n          cVar4 = *pcVar10;\n          if (cVar4 == '\0') {\n            bVar12 = 0;\n          }\n          else {\n            bVar12 = 0;\n            do {\n              if ((int)cVar4 - 0x41U < 0x1a) {\n                *pcVar10 = cVar4 + ' ';\n                bVar12 = 1;\n              }\n              pcVar10 = pcVar10 + 1;\n              cVar4 = *pcVar10;\n            } while (cVar4 != '\0');\n          }\n          pcVar10 = url_00->host;\n          pcVar6 = strchr(pcVar10,0x25);\n          if (pcVar6 != (char *)0x0) {\n            url_unescape(pcVar10);\n            pcVar10 = url_00->host;\n            cVar4 = *pcVar10;\n            pcVar6 = pcVar10;\n            while (cVar4 != '\0') {\n              if ((-1 < cVar4) && ((cVar4 < ' ' || (cVar4 == '\x7f')))) {\n                url_free(url_00);\n                iVar11 = 3;\n                goto LAB_00137c65;\n              }\n              pcVar6 = pcVar6 + 1;\n              cVar4 = *pcVar6;\n            }\n            bVar12 = iri != (iri *)0x0 & opt.enable_iri;\n            if (bVar12 == 0) {\n              bVar12 = 1;\n            }\n            else {\n              pcVar10 = idn_encode(iri,pcVar10);\n              if (pcVar10 != (char *)0x0) {\n                free(url_00->host);\n                url_00->host = pcVar10;\n              }\n            }\n          }\n          if (local_70 != (char *)0x0) {\n            pcVar10 = strdupdelim(local_70,local_60);\n            url_00->params = pcVar10;\n          }\n          if (local_b0 != (char *)0x0) {\n            pcVar10 = strdupdelim(local_b0,local_58);\n            url_00->query = pcVar10;\n          }\n          if (local_68 != (char *)0x0) {\n            pcVar10 = strdupdelim(local_68,local_50);\n            url_00->fragment = pcVar10;\n          }\n          error = (int *)url_00;\n          if ((((opt.enable_iri == false) && (pcVar5 == pcVar8)) &&\n              (url_00->fragment == (char *)0x0)) && ((local_88 != local_80 && (bVar12 == 0)))) {\n            if (local_b8 == url) {\n              pcVar8 = xstrdup(url);\n              url_00->url = pcVar8;\n            }\n            else {\n              url_00->url = local_b8;\n            }\n          }\n          else {\n            pcVar8 = url_string(url_00,URL_AUTH_SHOW);\n            url_00->url = pcVar8;\n            if (local_b8 != url) {\n              free(local_b8);\n            }\n          }\n          goto LAB_00137c95;\n        }\n        pcVar10 = pcVar10 + -1;\n        if (pcVar10 == pcVar8) {\n          iVar11 = 5;\n        }\n        else {\n          pcVar6 = (char *)memchr(pcVar8,0x3a,(long)pcVar10 - (long)pcVar8);\n          if (pcVar8 != pcVar6) {\n            pcVar5 = pcVar6;\n            if (pcVar6 != (char *)0x0) {\n              pcVar5 = strdupdelim(pcVar6 + 1,pcVar10);\n              url_unescape(pcVar5);\n              pcVar10 = pcVar6;\n            }\n            pcVar8 = strdupdelim(pcVar8,pcVar10);\n            url_unescape(pcVar8);\n            goto LAB_001379c6;\n          }\n          iVar11 = 5;\n        }\n      }\n    }\nLAB_00137c65:\n    if ((local_b8 != (char *)0x0) && (local_b8 != url)) {\n      free(local_b8);\n    }\n  }" { (if_statement "if ((iri == (iri *)0x0) || (iri->utf8_encode == false)) {\nLAB_001374b5:\n      local_b8 = url;\n      if (percent_encode) {\n        local_b8 = reencode_escapes(url);\n      }\n    }\n    else {\n      new_url = (char *)0x0;\n      pcVar8 = iri->orig_url;\n      if (iri->orig_url == (char *)0x0) {\n        pcVar8 = url;\n      }\n      _Var3 = remote_to_utf8(iri,pcVar8,&new_url);\n      iri->utf8_encode = _Var3;\n      if (!_Var3) goto LAB_001374b5;\n      free(iri->orig_url);\n      iri->orig_url = (char *)0x0;\n      pcVar8 = xstrdup(url);\n      iri->orig_url = pcVar8;\n      local_b8 = reencode_escapes(new_url);\n      if (new_url != local_b8) {\n        free(new_url);\n      }\n    }" if (parenthesized_expression "((iri == (iri *)0x0) || (iri->utf8_encode == false))" ( (binary_expression "(iri == (iri *)0x0) || (iri->utf8_encode == false)" (parenthesized_expression "(iri == (iri *)0x0)" ( (binary_expression "iri == (iri *)0x0" identifier == (cast_expression "(iri *)0x0" ( (type_descriptor "iri *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(iri->utf8_encode == false)" ( (binary_expression "iri->utf8_encode == false" (field_expression "iri->utf8_encode" identifier -> field_identifier) == false) ))) )) (compound_statement "{\nLAB_001374b5:\n      local_b8 = url;\n      if (percent_encode) {\n        local_b8 = reencode_escapes(url);\n      }\n    }" { (labeled_statement "LAB_001374b5:\n      local_b8 = url;" statement_identifier : (expression_statement "local_b8 = url;" (assignment_expression "local_b8 = url" identifier = identifier) ;)) (if_statement "if (percent_encode) {\n        local_b8 = reencode_escapes(url);\n      }" if (parenthesized_expression "(percent_encode)" ( identifier )) (compound_statement "{\n        local_b8 = reencode_escapes(url);\n      }" { (expression_statement "local_b8 = reencode_escapes(url);" (assignment_expression "local_b8 = reencode_escapes(url)" identifier = (call_expression "reencode_escapes(url)" identifier (argument_list "(url)" ( identifier )))) ;) })) }) (else_clause "else {\n      new_url = (char *)0x0;\n      pcVar8 = iri->orig_url;\n      if (iri->orig_url == (char *)0x0) {\n        pcVar8 = url;\n      }\n      _Var3 = remote_to_utf8(iri,pcVar8,&new_url);\n      iri->utf8_encode = _Var3;\n      if (!_Var3) goto LAB_001374b5;\n      free(iri->orig_url);\n      iri->orig_url = (char *)0x0;\n      pcVar8 = xstrdup(url);\n      iri->orig_url = pcVar8;\n      local_b8 = reencode_escapes(new_url);\n      if (new_url != local_b8) {\n        free(new_url);\n      }\n    }" else (compound_statement "{\n      new_url = (char *)0x0;\n      pcVar8 = iri->orig_url;\n      if (iri->orig_url == (char *)0x0) {\n        pcVar8 = url;\n      }\n      _Var3 = remote_to_utf8(iri,pcVar8,&new_url);\n      iri->utf8_encode = _Var3;\n      if (!_Var3) goto LAB_001374b5;\n      free(iri->orig_url);\n      iri->orig_url = (char *)0x0;\n      pcVar8 = xstrdup(url);\n      iri->orig_url = pcVar8;\n      local_b8 = reencode_escapes(new_url);\n      if (new_url != local_b8) {\n        free(new_url);\n      }\n    }" { (expression_statement "new_url = (char *)0x0;" (assignment_expression "new_url = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar8 = iri->orig_url;" (assignment_expression "pcVar8 = iri->orig_url" identifier = (field_expression "iri->orig_url" identifier -> field_identifier)) ;) (if_statement "if (iri->orig_url == (char *)0x0) {\n        pcVar8 = url;\n      }" if (parenthesized_expression "(iri->orig_url == (char *)0x0)" ( (binary_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)) )) (compound_statement "{\n        pcVar8 = url;\n      }" { (expression_statement "pcVar8 = url;" (assignment_expression "pcVar8 = url" identifier = identifier) ;) })) (expression_statement "_Var3 = remote_to_utf8(iri,pcVar8,&new_url);" (assignment_expression "_Var3 = remote_to_utf8(iri,pcVar8,&new_url)" identifier = (call_expression "remote_to_utf8(iri,pcVar8,&new_url)" identifier (argument_list "(iri,pcVar8,&new_url)" ( identifier , identifier , (pointer_expression "&new_url" & identifier) )))) ;) (expression_statement "iri->utf8_encode = _Var3;" (assignment_expression "iri->utf8_encode = _Var3" (field_expression "iri->utf8_encode" identifier -> field_identifier) = identifier) ;) (if_statement "if (!_Var3) goto LAB_001374b5;" if (parenthesized_expression "(!_Var3)" ( (unary_expression "!_Var3" ! identifier) )) (goto_statement "goto LAB_001374b5;" goto statement_identifier ;)) (expression_statement "free(iri->orig_url);" (call_expression "free(iri->orig_url)" 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 "pcVar8 = xstrdup(url);" (assignment_expression "pcVar8 = xstrdup(url)" identifier = (call_expression "xstrdup(url)" identifier (argument_list "(url)" ( identifier )))) ;) (expression_statement "iri->orig_url = pcVar8;" (assignment_expression "iri->orig_url = pcVar8" (field_expression "iri->orig_url" identifier -> field_identifier) = identifier) ;) (expression_statement "local_b8 = reencode_escapes(new_url);" (assignment_expression "local_b8 = reencode_escapes(new_url)" identifier = (call_expression "reencode_escapes(new_url)" identifier (argument_list "(new_url)" ( identifier )))) ;) (if_statement "if (new_url != local_b8) {\n        free(new_url);\n      }" if (parenthesized_expression "(new_url != local_b8)" ( (binary_expression "new_url != local_b8" identifier != identifier) )) (compound_statement "{\n        free(new_url);\n      }" { (expression_statement "free(new_url);" (call_expression "free(new_url)" identifier (argument_list "(new_url)" ( identifier ))) ;) })) }))) (expression_statement "uVar9 = 0xffffffffffffffff;" (assignment_expression "uVar9 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar8 = supported_schemes[scheme].leading_string;" (assignment_expression "pcVar8 = supported_schemes[scheme].leading_string" identifier = (field_expression "supported_schemes[scheme].leading_string" (subscript_expression "supported_schemes[scheme]" identifier [ identifier ]) . field_identifier)) ;) (do_statement "do {\n      if (uVar9 == 0) break;\n      uVar9 = uVar9 - 1;\n      cVar4 = *pcVar8;\n      pcVar8 = pcVar8 + (ulong)bVar12 * -2 + 1;\n    } while (cVar4 != '\0');" do (compound_statement "{\n      if (uVar9 == 0) break;\n      uVar9 = uVar9 - 1;\n      cVar4 = *pcVar8;\n      pcVar8 = pcVar8 + (ulong)bVar12 * -2 + 1;\n    }" { (if_statement "if (uVar9 == 0) break;" if (parenthesized_expression "(uVar9 == 0)" ( (binary_expression "uVar9 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar9 = uVar9 - 1;" (assignment_expression "uVar9 = uVar9 - 1" identifier = (binary_expression "uVar9 - 1" identifier - number_literal)) ;) (expression_statement "cVar4 = *pcVar8;" (assignment_expression "cVar4 = *pcVar8" identifier = (pointer_expression "*pcVar8" * identifier)) ;) (expression_statement "pcVar8 = pcVar8 + (ulong)bVar12 * -2 + 1;" (assignment_expression "pcVar8 = pcVar8 + (ulong)bVar12 * -2 + 1" identifier = (binary_expression "pcVar8 + (ulong)bVar12 * -2 + 1" (binary_expression "pcVar8 + (ulong)bVar12 * -2" identifier + (binary_expression "(ulong)bVar12 * -2" (cast_expression "(ulong)bVar12" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar4 != '\0')" ( (binary_expression "cVar4 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "pcVar8 = local_b8 + (~uVar9 - 1);" (assignment_expression "pcVar8 = local_b8 + (~uVar9 - 1)" identifier = (binary_expression "local_b8 + (~uVar9 - 1)" identifier + (parenthesized_expression "(~uVar9 - 1)" ( (binary_expression "~uVar9 - 1" (unary_expression "~uVar9" ~ identifier) - number_literal) )))) ;) (expression_statement "pcVar5 = strpbrk(pcVar8,"@/?#;");" (assignment_expression "pcVar5 = strpbrk(pcVar8,"@/?#;")" identifier = (call_expression "strpbrk(pcVar8,"@/?#;")" identifier (argument_list "(pcVar8,"@/?#;")" ( identifier , (string_literal ""@/?#;"" " string_content ") )))) ;) (expression_statement "pcVar10 = pcVar8;" (assignment_expression "pcVar10 = pcVar8" identifier = identifier) ;) (if_statement "if ((pcVar5 != (char *)0x0) && (pcVar10 = pcVar5 + 1, *pcVar5 != '@')) {\n      pcVar10 = pcVar8;\n    }" if (parenthesized_expression "((pcVar5 != (char *)0x0) && (pcVar10 = pcVar5 + 1, *pcVar5 != '@'))" ( (binary_expression "(pcVar5 != (char *)0x0) && (pcVar10 = pcVar5 + 1, *pcVar5 != '@')" (parenthesized_expression "(pcVar5 != (char *)0x0)" ( (binary_expression "pcVar5 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(pcVar10 = pcVar5 + 1, *pcVar5 != '@')" ( (comma_expression "pcVar10 = pcVar5 + 1, *pcVar5 != '@'" (assignment_expression "pcVar10 = pcVar5 + 1" identifier = (binary_expression "pcVar5 + 1" identifier + number_literal)) , (binary_expression "*pcVar5 != '@'" (pointer_expression "*pcVar5" * identifier) != (char_literal "'@'" ' character '))) ))) )) (compound_statement "{\n      pcVar10 = pcVar8;\n    }" { (expression_statement "pcVar10 = pcVar8;" (assignment_expression "pcVar10 = pcVar8" identifier = identifier) ;) })) (expression_statement "pcVar5 = init_seps(scheme);" (assignment_expression "pcVar5 = init_seps(scheme)" identifier = (call_expression "init_seps(scheme)" identifier (argument_list "(scheme)" ( identifier )))) ;) (if_statement "if (*pcVar10 == '[') {\n      local_a8 = pcVar10 + 1;\n      local_a0 = strchr(local_a8,0x5d);\n      if (local_a0 == (char *)0x0) {\n        iVar11 = 6;\n      }\n      else {\n        _Var3 = is_valid_ipv6_address(local_a8,local_a0);\n        if (_Var3) {\n          pcVar6 = local_a0 + 1;\n          pcVar7 = strchr(pcVar5,(int)local_a0[1]);\n          if (pcVar7 != (char *)0x0) goto LAB_00137554;\n          iVar11 = 3;\n        }\n        else {\n          iVar11 = 8;\n        }\n      }\n    }\n    else {\n      pcVar6 = strpbrk(pcVar10,pcVar5);\n      local_a8 = pcVar10;\n      local_a0 = pcVar6;\n      if (pcVar6 == (char *)0x0) {\n        uVar9 = 0xffffffffffffffff;\n        pcVar6 = pcVar10;\n        do {\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar4 = *pcVar6;\n          pcVar6 = pcVar6 + (ulong)bVar12 * -2 + 1;\n        } while (cVar4 != '\0');\n        pcVar6 = pcVar10 + (~uVar9 - 1);\n        local_a0 = pcVar6;\n      }\nLAB_00137554:\n      if (local_a8 == local_a0) {\n        iVar11 = 3;\n      }\n      else {\n        local_74 = supported_schemes[scheme].default_port;\n        pcVar7 = pcVar6;\n        if (*pcVar6 == ':') {\n          __s = pcVar6 + 1;\n          pcVar7 = strpbrk(__s,pcVar5 + 1);\n          if (pcVar7 == (char *)0x0) {\n            uVar9 = 0xffffffffffffffff;\n            pcVar7 = __s;\n            do {\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar4 = *pcVar7;\n              pcVar7 = pcVar7 + (ulong)bVar12 * -2 + 1;\n            } while (cVar4 != '\0');\n            pcVar7 = pcVar6 + ~uVar9;\n          }\n          if (__s != pcVar7) {\n            if (__s < pcVar7) {\n              local_74 = (int)pcVar6[1] - 0x30;\n              if (local_74 < 10) {\n                do {\n                  __s = __s + 1;\n                  if (__s == pcVar7) goto LAB_00137584;\n                  if (9 < (int)*__s - 0x30U) {\n                    iVar11 = 4;\n                    goto LAB_00137c65;\n                  }\n                  local_74 = *__s + -0x30 + local_74 * 10;\n                } while ((int)local_74 < 0x10000);\n                iVar11 = 4;\n              }\n              else {\n                iVar11 = 4;\n              }\n              goto LAB_00137c65;\n            }\n            local_74 = 0;\n          }\n        }\nLAB_00137584:\n        local_80 = (char *)0x0;\n        local_88 = (char *)0x0;\n        pcVar6 = pcVar7;\n        if (*pcVar7 == '/') {\n          local_88 = pcVar7 + 1;\n          pcVar6 = strpbrk(local_88,pcVar5 + 2);\n          local_80 = pcVar6;\n          if (pcVar6 == (char *)0x0) {\n            uVar9 = 0xffffffffffffffff;\n            pcVar6 = local_88;\n            do {\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar4 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar12 * -2 + 1;\n            } while (cVar4 != '\0');\n            pcVar6 = pcVar7 + ~uVar9;\n            local_80 = pcVar6;\n          }\n        }\n        local_90 = pcVar5 + 3;\n        uVar2 = supported_schemes[scheme].flags;\n        if ((uVar2 & 2) == 0) {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n        }\n        else {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n          pcVar7 = pcVar6;\n          if (*pcVar6 == ';') {\n            local_70 = pcVar6 + 1;\n            pcVar7 = strpbrk(local_70,local_90);\n            local_60 = pcVar7;\n            if (pcVar7 == (char *)0x0) {\n              uVar9 = 0xffffffffffffffff;\n              pcVar7 = local_70;\n              do {\n                if (uVar9 == 0) break;\n                uVar9 = uVar9 - 1;\n                cVar4 = *pcVar7;\n                pcVar7 = pcVar7 + (ulong)bVar12 * -2 + 1;\n              } while (cVar4 != '\0');\n              pcVar7 = pcVar6 + ~uVar9;\n              local_60 = pcVar7;\n            }\n          }\n          local_90 = pcVar5 + 4;\n          pcVar6 = pcVar7;\n        }\n        if ((uVar2 & 4) == 0) {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n        }\n        else {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n          pcVar5 = pcVar6;\n          if (*pcVar6 == '?') {\n            local_b0 = pcVar6 + 1;\n            pcVar5 = strpbrk(local_b0,local_90);\n            local_58 = pcVar5;\n            if (pcVar5 == (char *)0x0) {\n              uVar9 = 0xffffffffffffffff;\n              pcVar5 = local_b0;\n              do {\n                if (uVar9 == 0) break;\n                uVar9 = uVar9 - 1;\n                cVar4 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar12 * -2 + 1;\n              } while (cVar4 != '\0');\n              pcVar5 = pcVar6 + ~uVar9;\n              local_58 = pcVar5;\n            }\n          }\n          local_90 = local_90 + 1;\n          pcVar6 = pcVar5;\n        }\n        if ((uVar2 & 8) == 0) {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n        }\n        else {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n          if (*pcVar6 == '#') {\n            local_68 = pcVar6 + 1;\n            local_50 = strpbrk(local_68,local_90);\n            if (local_50 == (char *)0x0) {\n              uVar9 = 0xffffffffffffffff;\n              pcVar5 = local_68;\n              do {\n                if (uVar9 == 0) break;\n                uVar9 = uVar9 - 1;\n                cVar4 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar12 * -2 + 1;\n              } while (cVar4 != '\0');\n              local_50 = pcVar6 + ~uVar9;\n            }\n          }\n        }\n        if (pcVar8 == pcVar10) {\n          pcVar5 = (char *)0x0;\n          pcVar8 = (char *)0x0;\nLAB_001379c6:\n          url_00 = (url *)xcalloc(1,0x60);\n          url_00->scheme = scheme;\n          pcVar10 = strdupdelim(local_a8,local_a0);\n          url_00->host = pcVar10;\n          url_00->port = local_74;\n          url_00->user = pcVar8;\n          url_00->passwd = pcVar5;\n          pcVar8 = strdupdelim(local_88,local_80);\n          url_00->path = pcVar8;\n          uVar9 = 0xffffffffffffffff;\n          pcVar10 = pcVar8;\n          do {\n            if (uVar9 == 0) break;\n            uVar9 = uVar9 - 1;\n            cVar4 = *pcVar10;\n            pcVar10 = pcVar10 + (ulong)bVar12 * -2 + 1;\n          } while (cVar4 != '\0');\n          pcVar10 = pcVar8 + (~uVar9 - 1);\n          pcVar5 = pcVar8;\n          if (pcVar8 < pcVar10) {\n            pcVar7 = pcVar8;\n            pcVar6 = pcVar8;\n            do {\n              cVar4 = *pcVar8;\n              if (cVar4 == '.') {\n                cVar1 = pcVar8[1];\n                if ((cVar1 == '/') || (cVar1 == '\0')) {\n                  pcVar8 = pcVar8 + 2;\n                }\n                else {\n                  if ((cVar1 != '.') || ((pcVar8[2] != '/' && (pcVar8[2] != '\0'))))\n                  goto LAB_00137e1d;\n                  if (pcVar6 < pcVar7) {\n                    pcVar5 = pcVar7 + -1;\n                    if (pcVar6 < pcVar5) {\n                      cVar4 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar4 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar4 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar5 = pcVar7;\n                    if (scheme - SCHEME_FTP < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }\n                  pcVar8 = pcVar8 + 3;\n                  pcVar7 = pcVar5;\n                }\n              }\n              else {\nLAB_00137e1d:\n                if (pcVar7 == pcVar8) {\n                  pcVar5 = pcVar7;\n                  if (pcVar10 <= pcVar7) break;\n                  cVar4 = *pcVar7;\n                  while (cVar4 != '/') {\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar10;\n                    if (pcVar10 == pcVar5) goto LAB_00137d7b;\n                    cVar4 = *pcVar5;\n                  }\n                  pcVar8 = pcVar5 + 1;\n                  pcVar7 = pcVar5 + 1;\n                }\n                else {\n                  pcVar5 = pcVar8;\n                  if (pcVar10 <= pcVar8) break;\n                  while (cVar4 != '/') {\n                    pcVar8 = pcVar8 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar4;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar10;\n                    if (pcVar10 == pcVar8) goto LAB_00137d7b;\n                    cVar4 = *pcVar8;\n                  }\n                  *pcVar7 = *pcVar8;\n                  pcVar8 = pcVar8 + 1;\n                  pcVar7 = pcVar7 + 1;\n                }\n              }\n              pcVar5 = pcVar8;\n            } while (pcVar8 < pcVar10);\nLAB_00137d7b:\n            pcVar8 = pcVar7;\n            if (pcVar5 != pcVar7) {\n              *pcVar7 = '\0';\n            }\n          }\n          pcVar10 = url_00->path;\n          pcVar6 = strrchr(pcVar10,0x2f);\n          if (pcVar6 == (char *)0x0) {\n            pcVar6 = xstrdup("");\n            url_00->dir = pcVar6;\n            pcVar10 = xstrdup(pcVar10);\n            url_00->file = pcVar10;\n          }\n          else {\n            pcVar10 = strdupdelim(pcVar10,pcVar6);\n            url_00->dir = pcVar10;\n            pcVar10 = xstrdup(pcVar6 + 1);\n            url_00->file = pcVar10;\n          }\n          url_unescape(url_00->dir);\n          url_unescape(url_00->file);\n          pcVar10 = url_00->host;\n          cVar4 = *pcVar10;\n          if (cVar4 == '\0') {\n            bVar12 = 0;\n          }\n          else {\n            bVar12 = 0;\n            do {\n              if ((int)cVar4 - 0x41U < 0x1a) {\n                *pcVar10 = cVar4 + ' ';\n                bVar12 = 1;\n              }\n              pcVar10 = pcVar10 + 1;\n              cVar4 = *pcVar10;\n            } while (cVar4 != '\0');\n          }\n          pcVar10 = url_00->host;\n          pcVar6 = strchr(pcVar10,0x25);\n          if (pcVar6 != (char *)0x0) {\n            url_unescape(pcVar10);\n            pcVar10 = url_00->host;\n            cVar4 = *pcVar10;\n            pcVar6 = pcVar10;\n            while (cVar4 != '\0') {\n              if ((-1 < cVar4) && ((cVar4 < ' ' || (cVar4 == '\x7f')))) {\n                url_free(url_00);\n                iVar11 = 3;\n                goto LAB_00137c65;\n              }\n              pcVar6 = pcVar6 + 1;\n              cVar4 = *pcVar6;\n            }\n            bVar12 = iri != (iri *)0x0 & opt.enable_iri;\n            if (bVar12 == 0) {\n              bVar12 = 1;\n            }\n            else {\n              pcVar10 = idn_encode(iri,pcVar10);\n              if (pcVar10 != (char *)0x0) {\n                free(url_00->host);\n                url_00->host = pcVar10;\n              }\n            }\n          }\n          if (local_70 != (char *)0x0) {\n            pcVar10 = strdupdelim(local_70,local_60);\n            url_00->params = pcVar10;\n          }\n          if (local_b0 != (char *)0x0) {\n            pcVar10 = strdupdelim(local_b0,local_58);\n            url_00->query = pcVar10;\n          }\n          if (local_68 != (char *)0x0) {\n            pcVar10 = strdupdelim(local_68,local_50);\n            url_00->fragment = pcVar10;\n          }\n          error = (int *)url_00;\n          if ((((opt.enable_iri == false) && (pcVar5 == pcVar8)) &&\n              (url_00->fragment == (char *)0x0)) && ((local_88 != local_80 && (bVar12 == 0)))) {\n            if (local_b8 == url) {\n              pcVar8 = xstrdup(url);\n              url_00->url = pcVar8;\n            }\n            else {\n              url_00->url = local_b8;\n            }\n          }\n          else {\n            pcVar8 = url_string(url_00,URL_AUTH_SHOW);\n            url_00->url = pcVar8;\n            if (local_b8 != url) {\n              free(local_b8);\n            }\n          }\n          goto LAB_00137c95;\n        }\n        pcVar10 = pcVar10 + -1;\n        if (pcVar10 == pcVar8) {\n          iVar11 = 5;\n        }\n        else {\n          pcVar6 = (char *)memchr(pcVar8,0x3a,(long)pcVar10 - (long)pcVar8);\n          if (pcVar8 != pcVar6) {\n            pcVar5 = pcVar6;\n            if (pcVar6 != (char *)0x0) {\n              pcVar5 = strdupdelim(pcVar6 + 1,pcVar10);\n              url_unescape(pcVar5);\n              pcVar10 = pcVar6;\n            }\n            pcVar8 = strdupdelim(pcVar8,pcVar10);\n            url_unescape(pcVar8);\n            goto LAB_001379c6;\n          }\n          iVar11 = 5;\n        }\n      }\n    }" if (parenthesized_expression "(*pcVar10 == '[')" ( (binary_expression "*pcVar10 == '['" (pointer_expression "*pcVar10" * identifier) == (char_literal "'['" ' character ')) )) (compound_statement "{\n      local_a8 = pcVar10 + 1;\n      local_a0 = strchr(local_a8,0x5d);\n      if (local_a0 == (char *)0x0) {\n        iVar11 = 6;\n      }\n      else {\n        _Var3 = is_valid_ipv6_address(local_a8,local_a0);\n        if (_Var3) {\n          pcVar6 = local_a0 + 1;\n          pcVar7 = strchr(pcVar5,(int)local_a0[1]);\n          if (pcVar7 != (char *)0x0) goto LAB_00137554;\n          iVar11 = 3;\n        }\n        else {\n          iVar11 = 8;\n        }\n      }\n    }" { (expression_statement "local_a8 = pcVar10 + 1;" (assignment_expression "local_a8 = pcVar10 + 1" identifier = (binary_expression "pcVar10 + 1" identifier + number_literal)) ;) (expression_statement "local_a0 = strchr(local_a8,0x5d);" (assignment_expression "local_a0 = strchr(local_a8,0x5d)" identifier = (call_expression "strchr(local_a8,0x5d)" identifier (argument_list "(local_a8,0x5d)" ( identifier , number_literal )))) ;) (if_statement "if (local_a0 == (char *)0x0) {\n        iVar11 = 6;\n      }\n      else {\n        _Var3 = is_valid_ipv6_address(local_a8,local_a0);\n        if (_Var3) {\n          pcVar6 = local_a0 + 1;\n          pcVar7 = strchr(pcVar5,(int)local_a0[1]);\n          if (pcVar7 != (char *)0x0) goto LAB_00137554;\n          iVar11 = 3;\n        }\n        else {\n          iVar11 = 8;\n        }\n      }" if (parenthesized_expression "(local_a0 == (char *)0x0)" ( (binary_expression "local_a0 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        iVar11 = 6;\n      }" { (expression_statement "iVar11 = 6;" (assignment_expression "iVar11 = 6" identifier = number_literal) ;) }) (else_clause "else {\n        _Var3 = is_valid_ipv6_address(local_a8,local_a0);\n        if (_Var3) {\n          pcVar6 = local_a0 + 1;\n          pcVar7 = strchr(pcVar5,(int)local_a0[1]);\n          if (pcVar7 != (char *)0x0) goto LAB_00137554;\n          iVar11 = 3;\n        }\n        else {\n          iVar11 = 8;\n        }\n      }" else (compound_statement "{\n        _Var3 = is_valid_ipv6_address(local_a8,local_a0);\n        if (_Var3) {\n          pcVar6 = local_a0 + 1;\n          pcVar7 = strchr(pcVar5,(int)local_a0[1]);\n          if (pcVar7 != (char *)0x0) goto LAB_00137554;\n          iVar11 = 3;\n        }\n        else {\n          iVar11 = 8;\n        }\n      }" { (expression_statement "_Var3 = is_valid_ipv6_address(local_a8,local_a0);" (assignment_expression "_Var3 = is_valid_ipv6_address(local_a8,local_a0)" identifier = (call_expression "is_valid_ipv6_address(local_a8,local_a0)" identifier (argument_list "(local_a8,local_a0)" ( identifier , identifier )))) ;) (if_statement "if (_Var3) {\n          pcVar6 = local_a0 + 1;\n          pcVar7 = strchr(pcVar5,(int)local_a0[1]);\n          if (pcVar7 != (char *)0x0) goto LAB_00137554;\n          iVar11 = 3;\n        }\n        else {\n          iVar11 = 8;\n        }" if (parenthesized_expression "(_Var3)" ( identifier )) (compound_statement "{\n          pcVar6 = local_a0 + 1;\n          pcVar7 = strchr(pcVar5,(int)local_a0[1]);\n          if (pcVar7 != (char *)0x0) goto LAB_00137554;\n          iVar11 = 3;\n        }" { (expression_statement "pcVar6 = local_a0 + 1;" (assignment_expression "pcVar6 = local_a0 + 1" identifier = (binary_expression "local_a0 + 1" identifier + number_literal)) ;) (expression_statement "pcVar7 = strchr(pcVar5,(int)local_a0[1]);" (assignment_expression "pcVar7 = strchr(pcVar5,(int)local_a0[1])" identifier = (call_expression "strchr(pcVar5,(int)local_a0[1])" identifier (argument_list "(pcVar5,(int)local_a0[1])" ( identifier , (cast_expression "(int)local_a0[1]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "local_a0[1]" identifier [ number_literal ])) )))) ;) (if_statement "if (pcVar7 != (char *)0x0) goto LAB_00137554;" if (parenthesized_expression "(pcVar7 != (char *)0x0)" ( (binary_expression "pcVar7 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00137554;" goto statement_identifier ;)) (expression_statement "iVar11 = 3;" (assignment_expression "iVar11 = 3" identifier = number_literal) ;) }) (else_clause "else {\n          iVar11 = 8;\n        }" else (compound_statement "{\n          iVar11 = 8;\n        }" { (expression_statement "iVar11 = 8;" (assignment_expression "iVar11 = 8" identifier = number_literal) ;) }))) }))) }) (else_clause "else {\n      pcVar6 = strpbrk(pcVar10,pcVar5);\n      local_a8 = pcVar10;\n      local_a0 = pcVar6;\n      if (pcVar6 == (char *)0x0) {\n        uVar9 = 0xffffffffffffffff;\n        pcVar6 = pcVar10;\n        do {\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar4 = *pcVar6;\n          pcVar6 = pcVar6 + (ulong)bVar12 * -2 + 1;\n        } while (cVar4 != '\0');\n        pcVar6 = pcVar10 + (~uVar9 - 1);\n        local_a0 = pcVar6;\n      }\nLAB_00137554:\n      if (local_a8 == local_a0) {\n        iVar11 = 3;\n      }\n      else {\n        local_74 = supported_schemes[scheme].default_port;\n        pcVar7 = pcVar6;\n        if (*pcVar6 == ':') {\n          __s = pcVar6 + 1;\n          pcVar7 = strpbrk(__s,pcVar5 + 1);\n          if (pcVar7 == (char *)0x0) {\n            uVar9 = 0xffffffffffffffff;\n            pcVar7 = __s;\n            do {\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar4 = *pcVar7;\n              pcVar7 = pcVar7 + (ulong)bVar12 * -2 + 1;\n            } while (cVar4 != '\0');\n            pcVar7 = pcVar6 + ~uVar9;\n          }\n          if (__s != pcVar7) {\n            if (__s < pcVar7) {\n              local_74 = (int)pcVar6[1] - 0x30;\n              if (local_74 < 10) {\n                do {\n                  __s = __s + 1;\n                  if (__s == pcVar7) goto LAB_00137584;\n                  if (9 < (int)*__s - 0x30U) {\n                    iVar11 = 4;\n                    goto LAB_00137c65;\n                  }\n                  local_74 = *__s + -0x30 + local_74 * 10;\n                } while ((int)local_74 < 0x10000);\n                iVar11 = 4;\n              }\n              else {\n                iVar11 = 4;\n              }\n              goto LAB_00137c65;\n            }\n            local_74 = 0;\n          }\n        }\nLAB_00137584:\n        local_80 = (char *)0x0;\n        local_88 = (char *)0x0;\n        pcVar6 = pcVar7;\n        if (*pcVar7 == '/') {\n          local_88 = pcVar7 + 1;\n          pcVar6 = strpbrk(local_88,pcVar5 + 2);\n          local_80 = pcVar6;\n          if (pcVar6 == (char *)0x0) {\n            uVar9 = 0xffffffffffffffff;\n            pcVar6 = local_88;\n            do {\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar4 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar12 * -2 + 1;\n            } while (cVar4 != '\0');\n            pcVar6 = pcVar7 + ~uVar9;\n            local_80 = pcVar6;\n          }\n        }\n        local_90 = pcVar5 + 3;\n        uVar2 = supported_schemes[scheme].flags;\n        if ((uVar2 & 2) == 0) {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n        }\n        else {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n          pcVar7 = pcVar6;\n          if (*pcVar6 == ';') {\n            local_70 = pcVar6 + 1;\n            pcVar7 = strpbrk(local_70,local_90);\n            local_60 = pcVar7;\n            if (pcVar7 == (char *)0x0) {\n              uVar9 = 0xffffffffffffffff;\n              pcVar7 = local_70;\n              do {\n                if (uVar9 == 0) break;\n                uVar9 = uVar9 - 1;\n                cVar4 = *pcVar7;\n                pcVar7 = pcVar7 + (ulong)bVar12 * -2 + 1;\n              } while (cVar4 != '\0');\n              pcVar7 = pcVar6 + ~uVar9;\n              local_60 = pcVar7;\n            }\n          }\n          local_90 = pcVar5 + 4;\n          pcVar6 = pcVar7;\n        }\n        if ((uVar2 & 4) == 0) {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n        }\n        else {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n          pcVar5 = pcVar6;\n          if (*pcVar6 == '?') {\n            local_b0 = pcVar6 + 1;\n            pcVar5 = strpbrk(local_b0,local_90);\n            local_58 = pcVar5;\n            if (pcVar5 == (char *)0x0) {\n              uVar9 = 0xffffffffffffffff;\n              pcVar5 = local_b0;\n              do {\n                if (uVar9 == 0) break;\n                uVar9 = uVar9 - 1;\n                cVar4 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar12 * -2 + 1;\n              } while (cVar4 != '\0');\n              pcVar5 = pcVar6 + ~uVar9;\n              local_58 = pcVar5;\n            }\n          }\n          local_90 = local_90 + 1;\n          pcVar6 = pcVar5;\n        }\n        if ((uVar2 & 8) == 0) {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n        }\n        else {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n          if (*pcVar6 == '#') {\n            local_68 = pcVar6 + 1;\n            local_50 = strpbrk(local_68,local_90);\n            if (local_50 == (char *)0x0) {\n              uVar9 = 0xffffffffffffffff;\n              pcVar5 = local_68;\n              do {\n                if (uVar9 == 0) break;\n                uVar9 = uVar9 - 1;\n                cVar4 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar12 * -2 + 1;\n              } while (cVar4 != '\0');\n              local_50 = pcVar6 + ~uVar9;\n            }\n          }\n        }\n        if (pcVar8 == pcVar10) {\n          pcVar5 = (char *)0x0;\n          pcVar8 = (char *)0x0;\nLAB_001379c6:\n          url_00 = (url *)xcalloc(1,0x60);\n          url_00->scheme = scheme;\n          pcVar10 = strdupdelim(local_a8,local_a0);\n          url_00->host = pcVar10;\n          url_00->port = local_74;\n          url_00->user = pcVar8;\n          url_00->passwd = pcVar5;\n          pcVar8 = strdupdelim(local_88,local_80);\n          url_00->path = pcVar8;\n          uVar9 = 0xffffffffffffffff;\n          pcVar10 = pcVar8;\n          do {\n            if (uVar9 == 0) break;\n            uVar9 = uVar9 - 1;\n            cVar4 = *pcVar10;\n            pcVar10 = pcVar10 + (ulong)bVar12 * -2 + 1;\n          } while (cVar4 != '\0');\n          pcVar10 = pcVar8 + (~uVar9 - 1);\n          pcVar5 = pcVar8;\n          if (pcVar8 < pcVar10) {\n            pcVar7 = pcVar8;\n            pcVar6 = pcVar8;\n            do {\n              cVar4 = *pcVar8;\n              if (cVar4 == '.') {\n                cVar1 = pcVar8[1];\n                if ((cVar1 == '/') || (cVar1 == '\0')) {\n                  pcVar8 = pcVar8 + 2;\n                }\n                else {\n                  if ((cVar1 != '.') || ((pcVar8[2] != '/' && (pcVar8[2] != '\0'))))\n                  goto LAB_00137e1d;\n                  if (pcVar6 < pcVar7) {\n                    pcVar5 = pcVar7 + -1;\n                    if (pcVar6 < pcVar5) {\n                      cVar4 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar4 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar4 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar5 = pcVar7;\n                    if (scheme - SCHEME_FTP < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }\n                  pcVar8 = pcVar8 + 3;\n                  pcVar7 = pcVar5;\n                }\n              }\n              else {\nLAB_00137e1d:\n                if (pcVar7 == pcVar8) {\n                  pcVar5 = pcVar7;\n                  if (pcVar10 <= pcVar7) break;\n                  cVar4 = *pcVar7;\n                  while (cVar4 != '/') {\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar10;\n                    if (pcVar10 == pcVar5) goto LAB_00137d7b;\n                    cVar4 = *pcVar5;\n                  }\n                  pcVar8 = pcVar5 + 1;\n                  pcVar7 = pcVar5 + 1;\n                }\n                else {\n                  pcVar5 = pcVar8;\n                  if (pcVar10 <= pcVar8) break;\n                  while (cVar4 != '/') {\n                    pcVar8 = pcVar8 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar4;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar10;\n                    if (pcVar10 == pcVar8) goto LAB_00137d7b;\n                    cVar4 = *pcVar8;\n                  }\n                  *pcVar7 = *pcVar8;\n                  pcVar8 = pcVar8 + 1;\n                  pcVar7 = pcVar7 + 1;\n                }\n              }\n              pcVar5 = pcVar8;\n            } while (pcVar8 < pcVar10);\nLAB_00137d7b:\n            pcVar8 = pcVar7;\n            if (pcVar5 != pcVar7) {\n              *pcVar7 = '\0';\n            }\n          }\n          pcVar10 = url_00->path;\n          pcVar6 = strrchr(pcVar10,0x2f);\n          if (pcVar6 == (char *)0x0) {\n            pcVar6 = xstrdup("");\n            url_00->dir = pcVar6;\n            pcVar10 = xstrdup(pcVar10);\n            url_00->file = pcVar10;\n          }\n          else {\n            pcVar10 = strdupdelim(pcVar10,pcVar6);\n            url_00->dir = pcVar10;\n            pcVar10 = xstrdup(pcVar6 + 1);\n            url_00->file = pcVar10;\n          }\n          url_unescape(url_00->dir);\n          url_unescape(url_00->file);\n          pcVar10 = url_00->host;\n          cVar4 = *pcVar10;\n          if (cVar4 == '\0') {\n            bVar12 = 0;\n          }\n          else {\n            bVar12 = 0;\n            do {\n              if ((int)cVar4 - 0x41U < 0x1a) {\n                *pcVar10 = cVar4 + ' ';\n                bVar12 = 1;\n              }\n              pcVar10 = pcVar10 + 1;\n              cVar4 = *pcVar10;\n            } while (cVar4 != '\0');\n          }\n          pcVar10 = url_00->host;\n          pcVar6 = strchr(pcVar10,0x25);\n          if (pcVar6 != (char *)0x0) {\n            url_unescape(pcVar10);\n            pcVar10 = url_00->host;\n            cVar4 = *pcVar10;\n            pcVar6 = pcVar10;\n            while (cVar4 != '\0') {\n              if ((-1 < cVar4) && ((cVar4 < ' ' || (cVar4 == '\x7f')))) {\n                url_free(url_00);\n                iVar11 = 3;\n                goto LAB_00137c65;\n              }\n              pcVar6 = pcVar6 + 1;\n              cVar4 = *pcVar6;\n            }\n            bVar12 = iri != (iri *)0x0 & opt.enable_iri;\n            if (bVar12 == 0) {\n              bVar12 = 1;\n            }\n            else {\n              pcVar10 = idn_encode(iri,pcVar10);\n              if (pcVar10 != (char *)0x0) {\n                free(url_00->host);\n                url_00->host = pcVar10;\n              }\n            }\n          }\n          if (local_70 != (char *)0x0) {\n            pcVar10 = strdupdelim(local_70,local_60);\n            url_00->params = pcVar10;\n          }\n          if (local_b0 != (char *)0x0) {\n            pcVar10 = strdupdelim(local_b0,local_58);\n            url_00->query = pcVar10;\n          }\n          if (local_68 != (char *)0x0) {\n            pcVar10 = strdupdelim(local_68,local_50);\n            url_00->fragment = pcVar10;\n          }\n          error = (int *)url_00;\n          if ((((opt.enable_iri == false) && (pcVar5 == pcVar8)) &&\n              (url_00->fragment == (char *)0x0)) && ((local_88 != local_80 && (bVar12 == 0)))) {\n            if (local_b8 == url) {\n              pcVar8 = xstrdup(url);\n              url_00->url = pcVar8;\n            }\n            else {\n              url_00->url = local_b8;\n            }\n          }\n          else {\n            pcVar8 = url_string(url_00,URL_AUTH_SHOW);\n            url_00->url = pcVar8;\n            if (local_b8 != url) {\n              free(local_b8);\n            }\n          }\n          goto LAB_00137c95;\n        }\n        pcVar10 = pcVar10 + -1;\n        if (pcVar10 == pcVar8) {\n          iVar11 = 5;\n        }\n        else {\n          pcVar6 = (char *)memchr(pcVar8,0x3a,(long)pcVar10 - (long)pcVar8);\n          if (pcVar8 != pcVar6) {\n            pcVar5 = pcVar6;\n            if (pcVar6 != (char *)0x0) {\n              pcVar5 = strdupdelim(pcVar6 + 1,pcVar10);\n              url_unescape(pcVar5);\n              pcVar10 = pcVar6;\n            }\n            pcVar8 = strdupdelim(pcVar8,pcVar10);\n            url_unescape(pcVar8);\n            goto LAB_001379c6;\n          }\n          iVar11 = 5;\n        }\n      }\n    }" else (compound_statement "{\n      pcVar6 = strpbrk(pcVar10,pcVar5);\n      local_a8 = pcVar10;\n      local_a0 = pcVar6;\n      if (pcVar6 == (char *)0x0) {\n        uVar9 = 0xffffffffffffffff;\n        pcVar6 = pcVar10;\n        do {\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar4 = *pcVar6;\n          pcVar6 = pcVar6 + (ulong)bVar12 * -2 + 1;\n        } while (cVar4 != '\0');\n        pcVar6 = pcVar10 + (~uVar9 - 1);\n        local_a0 = pcVar6;\n      }\nLAB_00137554:\n      if (local_a8 == local_a0) {\n        iVar11 = 3;\n      }\n      else {\n        local_74 = supported_schemes[scheme].default_port;\n        pcVar7 = pcVar6;\n        if (*pcVar6 == ':') {\n          __s = pcVar6 + 1;\n          pcVar7 = strpbrk(__s,pcVar5 + 1);\n          if (pcVar7 == (char *)0x0) {\n            uVar9 = 0xffffffffffffffff;\n            pcVar7 = __s;\n            do {\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar4 = *pcVar7;\n              pcVar7 = pcVar7 + (ulong)bVar12 * -2 + 1;\n            } while (cVar4 != '\0');\n            pcVar7 = pcVar6 + ~uVar9;\n          }\n          if (__s != pcVar7) {\n            if (__s < pcVar7) {\n              local_74 = (int)pcVar6[1] - 0x30;\n              if (local_74 < 10) {\n                do {\n                  __s = __s + 1;\n                  if (__s == pcVar7) goto LAB_00137584;\n                  if (9 < (int)*__s - 0x30U) {\n                    iVar11 = 4;\n                    goto LAB_00137c65;\n                  }\n                  local_74 = *__s + -0x30 + local_74 * 10;\n                } while ((int)local_74 < 0x10000);\n                iVar11 = 4;\n              }\n              else {\n                iVar11 = 4;\n              }\n              goto LAB_00137c65;\n            }\n            local_74 = 0;\n          }\n        }\nLAB_00137584:\n        local_80 = (char *)0x0;\n        local_88 = (char *)0x0;\n        pcVar6 = pcVar7;\n        if (*pcVar7 == '/') {\n          local_88 = pcVar7 + 1;\n          pcVar6 = strpbrk(local_88,pcVar5 + 2);\n          local_80 = pcVar6;\n          if (pcVar6 == (char *)0x0) {\n            uVar9 = 0xffffffffffffffff;\n            pcVar6 = local_88;\n            do {\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar4 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar12 * -2 + 1;\n            } while (cVar4 != '\0');\n            pcVar6 = pcVar7 + ~uVar9;\n            local_80 = pcVar6;\n          }\n        }\n        local_90 = pcVar5 + 3;\n        uVar2 = supported_schemes[scheme].flags;\n        if ((uVar2 & 2) == 0) {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n        }\n        else {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n          pcVar7 = pcVar6;\n          if (*pcVar6 == ';') {\n            local_70 = pcVar6 + 1;\n            pcVar7 = strpbrk(local_70,local_90);\n            local_60 = pcVar7;\n            if (pcVar7 == (char *)0x0) {\n              uVar9 = 0xffffffffffffffff;\n              pcVar7 = local_70;\n              do {\n                if (uVar9 == 0) break;\n                uVar9 = uVar9 - 1;\n                cVar4 = *pcVar7;\n                pcVar7 = pcVar7 + (ulong)bVar12 * -2 + 1;\n              } while (cVar4 != '\0');\n              pcVar7 = pcVar6 + ~uVar9;\n              local_60 = pcVar7;\n            }\n          }\n          local_90 = pcVar5 + 4;\n          pcVar6 = pcVar7;\n        }\n        if ((uVar2 & 4) == 0) {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n        }\n        else {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n          pcVar5 = pcVar6;\n          if (*pcVar6 == '?') {\n            local_b0 = pcVar6 + 1;\n            pcVar5 = strpbrk(local_b0,local_90);\n            local_58 = pcVar5;\n            if (pcVar5 == (char *)0x0) {\n              uVar9 = 0xffffffffffffffff;\n              pcVar5 = local_b0;\n              do {\n                if (uVar9 == 0) break;\n                uVar9 = uVar9 - 1;\n                cVar4 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar12 * -2 + 1;\n              } while (cVar4 != '\0');\n              pcVar5 = pcVar6 + ~uVar9;\n              local_58 = pcVar5;\n            }\n          }\n          local_90 = local_90 + 1;\n          pcVar6 = pcVar5;\n        }\n        if ((uVar2 & 8) == 0) {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n        }\n        else {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n          if (*pcVar6 == '#') {\n            local_68 = pcVar6 + 1;\n            local_50 = strpbrk(local_68,local_90);\n            if (local_50 == (char *)0x0) {\n              uVar9 = 0xffffffffffffffff;\n              pcVar5 = local_68;\n              do {\n                if (uVar9 == 0) break;\n                uVar9 = uVar9 - 1;\n                cVar4 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar12 * -2 + 1;\n              } while (cVar4 != '\0');\n              local_50 = pcVar6 + ~uVar9;\n            }\n          }\n        }\n        if (pcVar8 == pcVar10) {\n          pcVar5 = (char *)0x0;\n          pcVar8 = (char *)0x0;\nLAB_001379c6:\n          url_00 = (url *)xcalloc(1,0x60);\n          url_00->scheme = scheme;\n          pcVar10 = strdupdelim(local_a8,local_a0);\n          url_00->host = pcVar10;\n          url_00->port = local_74;\n          url_00->user = pcVar8;\n          url_00->passwd = pcVar5;\n          pcVar8 = strdupdelim(local_88,local_80);\n          url_00->path = pcVar8;\n          uVar9 = 0xffffffffffffffff;\n          pcVar10 = pcVar8;\n          do {\n            if (uVar9 == 0) break;\n            uVar9 = uVar9 - 1;\n            cVar4 = *pcVar10;\n            pcVar10 = pcVar10 + (ulong)bVar12 * -2 + 1;\n          } while (cVar4 != '\0');\n          pcVar10 = pcVar8 + (~uVar9 - 1);\n          pcVar5 = pcVar8;\n          if (pcVar8 < pcVar10) {\n            pcVar7 = pcVar8;\n            pcVar6 = pcVar8;\n            do {\n              cVar4 = *pcVar8;\n              if (cVar4 == '.') {\n                cVar1 = pcVar8[1];\n                if ((cVar1 == '/') || (cVar1 == '\0')) {\n                  pcVar8 = pcVar8 + 2;\n                }\n                else {\n                  if ((cVar1 != '.') || ((pcVar8[2] != '/' && (pcVar8[2] != '\0'))))\n                  goto LAB_00137e1d;\n                  if (pcVar6 < pcVar7) {\n                    pcVar5 = pcVar7 + -1;\n                    if (pcVar6 < pcVar5) {\n                      cVar4 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar4 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar4 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar5 = pcVar7;\n                    if (scheme - SCHEME_FTP < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }\n                  pcVar8 = pcVar8 + 3;\n                  pcVar7 = pcVar5;\n                }\n              }\n              else {\nLAB_00137e1d:\n                if (pcVar7 == pcVar8) {\n                  pcVar5 = pcVar7;\n                  if (pcVar10 <= pcVar7) break;\n                  cVar4 = *pcVar7;\n                  while (cVar4 != '/') {\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar10;\n                    if (pcVar10 == pcVar5) goto LAB_00137d7b;\n                    cVar4 = *pcVar5;\n                  }\n                  pcVar8 = pcVar5 + 1;\n                  pcVar7 = pcVar5 + 1;\n                }\n                else {\n                  pcVar5 = pcVar8;\n                  if (pcVar10 <= pcVar8) break;\n                  while (cVar4 != '/') {\n                    pcVar8 = pcVar8 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar4;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar10;\n                    if (pcVar10 == pcVar8) goto LAB_00137d7b;\n                    cVar4 = *pcVar8;\n                  }\n                  *pcVar7 = *pcVar8;\n                  pcVar8 = pcVar8 + 1;\n                  pcVar7 = pcVar7 + 1;\n                }\n              }\n              pcVar5 = pcVar8;\n            } while (pcVar8 < pcVar10);\nLAB_00137d7b:\n            pcVar8 = pcVar7;\n            if (pcVar5 != pcVar7) {\n              *pcVar7 = '\0';\n            }\n          }\n          pcVar10 = url_00->path;\n          pcVar6 = strrchr(pcVar10,0x2f);\n          if (pcVar6 == (char *)0x0) {\n            pcVar6 = xstrdup("");\n            url_00->dir = pcVar6;\n            pcVar10 = xstrdup(pcVar10);\n            url_00->file = pcVar10;\n          }\n          else {\n            pcVar10 = strdupdelim(pcVar10,pcVar6);\n            url_00->dir = pcVar10;\n            pcVar10 = xstrdup(pcVar6 + 1);\n            url_00->file = pcVar10;\n          }\n          url_unescape(url_00->dir);\n          url_unescape(url_00->file);\n          pcVar10 = url_00->host;\n          cVar4 = *pcVar10;\n          if (cVar4 == '\0') {\n            bVar12 = 0;\n          }\n          else {\n            bVar12 = 0;\n            do {\n              if ((int)cVar4 - 0x41U < 0x1a) {\n                *pcVar10 = cVar4 + ' ';\n                bVar12 = 1;\n              }\n              pcVar10 = pcVar10 + 1;\n              cVar4 = *pcVar10;\n            } while (cVar4 != '\0');\n          }\n          pcVar10 = url_00->host;\n          pcVar6 = strchr(pcVar10,0x25);\n          if (pcVar6 != (char *)0x0) {\n            url_unescape(pcVar10);\n            pcVar10 = url_00->host;\n            cVar4 = *pcVar10;\n            pcVar6 = pcVar10;\n            while (cVar4 != '\0') {\n              if ((-1 < cVar4) && ((cVar4 < ' ' || (cVar4 == '\x7f')))) {\n                url_free(url_00);\n                iVar11 = 3;\n                goto LAB_00137c65;\n              }\n              pcVar6 = pcVar6 + 1;\n              cVar4 = *pcVar6;\n            }\n            bVar12 = iri != (iri *)0x0 & opt.enable_iri;\n            if (bVar12 == 0) {\n              bVar12 = 1;\n            }\n            else {\n              pcVar10 = idn_encode(iri,pcVar10);\n              if (pcVar10 != (char *)0x0) {\n                free(url_00->host);\n                url_00->host = pcVar10;\n              }\n            }\n          }\n          if (local_70 != (char *)0x0) {\n            pcVar10 = strdupdelim(local_70,local_60);\n            url_00->params = pcVar10;\n          }\n          if (local_b0 != (char *)0x0) {\n            pcVar10 = strdupdelim(local_b0,local_58);\n            url_00->query = pcVar10;\n          }\n          if (local_68 != (char *)0x0) {\n            pcVar10 = strdupdelim(local_68,local_50);\n            url_00->fragment = pcVar10;\n          }\n          error = (int *)url_00;\n          if ((((opt.enable_iri == false) && (pcVar5 == pcVar8)) &&\n              (url_00->fragment == (char *)0x0)) && ((local_88 != local_80 && (bVar12 == 0)))) {\n            if (local_b8 == url) {\n              pcVar8 = xstrdup(url);\n              url_00->url = pcVar8;\n            }\n            else {\n              url_00->url = local_b8;\n            }\n          }\n          else {\n            pcVar8 = url_string(url_00,URL_AUTH_SHOW);\n            url_00->url = pcVar8;\n            if (local_b8 != url) {\n              free(local_b8);\n            }\n          }\n          goto LAB_00137c95;\n        }\n        pcVar10 = pcVar10 + -1;\n        if (pcVar10 == pcVar8) {\n          iVar11 = 5;\n        }\n        else {\n          pcVar6 = (char *)memchr(pcVar8,0x3a,(long)pcVar10 - (long)pcVar8);\n          if (pcVar8 != pcVar6) {\n            pcVar5 = pcVar6;\n            if (pcVar6 != (char *)0x0) {\n              pcVar5 = strdupdelim(pcVar6 + 1,pcVar10);\n              url_unescape(pcVar5);\n              pcVar10 = pcVar6;\n            }\n            pcVar8 = strdupdelim(pcVar8,pcVar10);\n            url_unescape(pcVar8);\n            goto LAB_001379c6;\n          }\n          iVar11 = 5;\n        }\n      }\n    }" { (expression_statement "pcVar6 = strpbrk(pcVar10,pcVar5);" (assignment_expression "pcVar6 = strpbrk(pcVar10,pcVar5)" identifier = (call_expression "strpbrk(pcVar10,pcVar5)" identifier (argument_list "(pcVar10,pcVar5)" ( identifier , identifier )))) ;) (expression_statement "local_a8 = pcVar10;" (assignment_expression "local_a8 = pcVar10" identifier = identifier) ;) (expression_statement "local_a0 = pcVar6;" (assignment_expression "local_a0 = pcVar6" identifier = identifier) ;) (if_statement "if (pcVar6 == (char *)0x0) {\n        uVar9 = 0xffffffffffffffff;\n        pcVar6 = pcVar10;\n        do {\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar4 = *pcVar6;\n          pcVar6 = pcVar6 + (ulong)bVar12 * -2 + 1;\n        } while (cVar4 != '\0');\n        pcVar6 = pcVar10 + (~uVar9 - 1);\n        local_a0 = pcVar6;\n      }" if (parenthesized_expression "(pcVar6 == (char *)0x0)" ( (binary_expression "pcVar6 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar9 = 0xffffffffffffffff;\n        pcVar6 = pcVar10;\n        do {\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar4 = *pcVar6;\n          pcVar6 = pcVar6 + (ulong)bVar12 * -2 + 1;\n        } while (cVar4 != '\0');\n        pcVar6 = pcVar10 + (~uVar9 - 1);\n        local_a0 = pcVar6;\n      }" { (expression_statement "uVar9 = 0xffffffffffffffff;" (assignment_expression "uVar9 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar6 = pcVar10;" (assignment_expression "pcVar6 = pcVar10" identifier = identifier) ;) (do_statement "do {\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar4 = *pcVar6;\n          pcVar6 = pcVar6 + (ulong)bVar12 * -2 + 1;\n        } while (cVar4 != '\0');" do (compound_statement "{\n          if (uVar9 == 0) break;\n          uVar9 = uVar9 - 1;\n          cVar4 = *pcVar6;\n          pcVar6 = pcVar6 + (ulong)bVar12 * -2 + 1;\n        }" { (if_statement "if (uVar9 == 0) break;" if (parenthesized_expression "(uVar9 == 0)" ( (binary_expression "uVar9 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar9 = uVar9 - 1;" (assignment_expression "uVar9 = uVar9 - 1" identifier = (binary_expression "uVar9 - 1" identifier - number_literal)) ;) (expression_statement "cVar4 = *pcVar6;" (assignment_expression "cVar4 = *pcVar6" identifier = (pointer_expression "*pcVar6" * identifier)) ;) (expression_statement "pcVar6 = pcVar6 + (ulong)bVar12 * -2 + 1;" (assignment_expression "pcVar6 = pcVar6 + (ulong)bVar12 * -2 + 1" identifier = (binary_expression "pcVar6 + (ulong)bVar12 * -2 + 1" (binary_expression "pcVar6 + (ulong)bVar12 * -2" identifier + (binary_expression "(ulong)bVar12 * -2" (cast_expression "(ulong)bVar12" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar4 != '\0')" ( (binary_expression "cVar4 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "pcVar6 = pcVar10 + (~uVar9 - 1);" (assignment_expression "pcVar6 = pcVar10 + (~uVar9 - 1)" identifier = (binary_expression "pcVar10 + (~uVar9 - 1)" identifier + (parenthesized_expression "(~uVar9 - 1)" ( (binary_expression "~uVar9 - 1" (unary_expression "~uVar9" ~ identifier) - number_literal) )))) ;) (expression_statement "local_a0 = pcVar6;" (assignment_expression "local_a0 = pcVar6" identifier = identifier) ;) })) (labeled_statement "LAB_00137554:\n      if (local_a8 == local_a0) {\n        iVar11 = 3;\n      }\n      else {\n        local_74 = supported_schemes[scheme].default_port;\n        pcVar7 = pcVar6;\n        if (*pcVar6 == ':') {\n          __s = pcVar6 + 1;\n          pcVar7 = strpbrk(__s,pcVar5 + 1);\n          if (pcVar7 == (char *)0x0) {\n            uVar9 = 0xffffffffffffffff;\n            pcVar7 = __s;\n            do {\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar4 = *pcVar7;\n              pcVar7 = pcVar7 + (ulong)bVar12 * -2 + 1;\n            } while (cVar4 != '\0');\n            pcVar7 = pcVar6 + ~uVar9;\n          }\n          if (__s != pcVar7) {\n            if (__s < pcVar7) {\n              local_74 = (int)pcVar6[1] - 0x30;\n              if (local_74 < 10) {\n                do {\n                  __s = __s + 1;\n                  if (__s == pcVar7) goto LAB_00137584;\n                  if (9 < (int)*__s - 0x30U) {\n                    iVar11 = 4;\n                    goto LAB_00137c65;\n                  }\n                  local_74 = *__s + -0x30 + local_74 * 10;\n                } while ((int)local_74 < 0x10000);\n                iVar11 = 4;\n              }\n              else {\n                iVar11 = 4;\n              }\n              goto LAB_00137c65;\n            }\n            local_74 = 0;\n          }\n        }\nLAB_00137584:\n        local_80 = (char *)0x0;\n        local_88 = (char *)0x0;\n        pcVar6 = pcVar7;\n        if (*pcVar7 == '/') {\n          local_88 = pcVar7 + 1;\n          pcVar6 = strpbrk(local_88,pcVar5 + 2);\n          local_80 = pcVar6;\n          if (pcVar6 == (char *)0x0) {\n            uVar9 = 0xffffffffffffffff;\n            pcVar6 = local_88;\n            do {\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar4 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar12 * -2 + 1;\n            } while (cVar4 != '\0');\n            pcVar6 = pcVar7 + ~uVar9;\n            local_80 = pcVar6;\n          }\n        }\n        local_90 = pcVar5 + 3;\n        uVar2 = supported_schemes[scheme].flags;\n        if ((uVar2 & 2) == 0) {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n        }\n        else {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n          pcVar7 = pcVar6;\n          if (*pcVar6 == ';') {\n            local_70 = pcVar6 + 1;\n            pcVar7 = strpbrk(local_70,local_90);\n            local_60 = pcVar7;\n            if (pcVar7 == (char *)0x0) {\n              uVar9 = 0xffffffffffffffff;\n              pcVar7 = local_70;\n              do {\n                if (uVar9 == 0) break;\n                uVar9 = uVar9 - 1;\n                cVar4 = *pcVar7;\n                pcVar7 = pcVar7 + (ulong)bVar12 * -2 + 1;\n              } while (cVar4 != '\0');\n              pcVar7 = pcVar6 + ~uVar9;\n              local_60 = pcVar7;\n            }\n          }\n          local_90 = pcVar5 + 4;\n          pcVar6 = pcVar7;\n        }\n        if ((uVar2 & 4) == 0) {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n        }\n        else {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n          pcVar5 = pcVar6;\n          if (*pcVar6 == '?') {\n            local_b0 = pcVar6 + 1;\n            pcVar5 = strpbrk(local_b0,local_90);\n            local_58 = pcVar5;\n            if (pcVar5 == (char *)0x0) {\n              uVar9 = 0xffffffffffffffff;\n              pcVar5 = local_b0;\n              do {\n                if (uVar9 == 0) break;\n                uVar9 = uVar9 - 1;\n                cVar4 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar12 * -2 + 1;\n              } while (cVar4 != '\0');\n              pcVar5 = pcVar6 + ~uVar9;\n              local_58 = pcVar5;\n            }\n          }\n          local_90 = local_90 + 1;\n          pcVar6 = pcVar5;\n        }\n        if ((uVar2 & 8) == 0) {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n        }\n        else {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n          if (*pcVar6 == '#') {\n            local_68 = pcVar6 + 1;\n            local_50 = strpbrk(local_68,local_90);\n            if (local_50 == (char *)0x0) {\n              uVar9 = 0xffffffffffffffff;\n              pcVar5 = local_68;\n              do {\n                if (uVar9 == 0) break;\n                uVar9 = uVar9 - 1;\n                cVar4 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar12 * -2 + 1;\n              } while (cVar4 != '\0');\n              local_50 = pcVar6 + ~uVar9;\n            }\n          }\n        }\n        if (pcVar8 == pcVar10) {\n          pcVar5 = (char *)0x0;\n          pcVar8 = (char *)0x0;\nLAB_001379c6:\n          url_00 = (url *)xcalloc(1,0x60);\n          url_00->scheme = scheme;\n          pcVar10 = strdupdelim(local_a8,local_a0);\n          url_00->host = pcVar10;\n          url_00->port = local_74;\n          url_00->user = pcVar8;\n          url_00->passwd = pcVar5;\n          pcVar8 = strdupdelim(local_88,local_80);\n          url_00->path = pcVar8;\n          uVar9 = 0xffffffffffffffff;\n          pcVar10 = pcVar8;\n          do {\n            if (uVar9 == 0) break;\n            uVar9 = uVar9 - 1;\n            cVar4 = *pcVar10;\n            pcVar10 = pcVar10 + (ulong)bVar12 * -2 + 1;\n          } while (cVar4 != '\0');\n          pcVar10 = pcVar8 + (~uVar9 - 1);\n          pcVar5 = pcVar8;\n          if (pcVar8 < pcVar10) {\n            pcVar7 = pcVar8;\n            pcVar6 = pcVar8;\n            do {\n              cVar4 = *pcVar8;\n              if (cVar4 == '.') {\n                cVar1 = pcVar8[1];\n                if ((cVar1 == '/') || (cVar1 == '\0')) {\n                  pcVar8 = pcVar8 + 2;\n                }\n                else {\n                  if ((cVar1 != '.') || ((pcVar8[2] != '/' && (pcVar8[2] != '\0'))))\n                  goto LAB_00137e1d;\n                  if (pcVar6 < pcVar7) {\n                    pcVar5 = pcVar7 + -1;\n                    if (pcVar6 < pcVar5) {\n                      cVar4 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar4 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar4 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar5 = pcVar7;\n                    if (scheme - SCHEME_FTP < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }\n                  pcVar8 = pcVar8 + 3;\n                  pcVar7 = pcVar5;\n                }\n              }\n              else {\nLAB_00137e1d:\n                if (pcVar7 == pcVar8) {\n                  pcVar5 = pcVar7;\n                  if (pcVar10 <= pcVar7) break;\n                  cVar4 = *pcVar7;\n                  while (cVar4 != '/') {\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar10;\n                    if (pcVar10 == pcVar5) goto LAB_00137d7b;\n                    cVar4 = *pcVar5;\n                  }\n                  pcVar8 = pcVar5 + 1;\n                  pcVar7 = pcVar5 + 1;\n                }\n                else {\n                  pcVar5 = pcVar8;\n                  if (pcVar10 <= pcVar8) break;\n                  while (cVar4 != '/') {\n                    pcVar8 = pcVar8 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar4;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar10;\n                    if (pcVar10 == pcVar8) goto LAB_00137d7b;\n                    cVar4 = *pcVar8;\n                  }\n                  *pcVar7 = *pcVar8;\n                  pcVar8 = pcVar8 + 1;\n                  pcVar7 = pcVar7 + 1;\n                }\n              }\n              pcVar5 = pcVar8;\n            } while (pcVar8 < pcVar10);\nLAB_00137d7b:\n            pcVar8 = pcVar7;\n            if (pcVar5 != pcVar7) {\n              *pcVar7 = '\0';\n            }\n          }\n          pcVar10 = url_00->path;\n          pcVar6 = strrchr(pcVar10,0x2f);\n          if (pcVar6 == (char *)0x0) {\n            pcVar6 = xstrdup("");\n            url_00->dir = pcVar6;\n            pcVar10 = xstrdup(pcVar10);\n            url_00->file = pcVar10;\n          }\n          else {\n            pcVar10 = strdupdelim(pcVar10,pcVar6);\n            url_00->dir = pcVar10;\n            pcVar10 = xstrdup(pcVar6 + 1);\n            url_00->file = pcVar10;\n          }\n          url_unescape(url_00->dir);\n          url_unescape(url_00->file);\n          pcVar10 = url_00->host;\n          cVar4 = *pcVar10;\n          if (cVar4 == '\0') {\n            bVar12 = 0;\n          }\n          else {\n            bVar12 = 0;\n            do {\n              if ((int)cVar4 - 0x41U < 0x1a) {\n                *pcVar10 = cVar4 + ' ';\n                bVar12 = 1;\n              }\n              pcVar10 = pcVar10 + 1;\n              cVar4 = *pcVar10;\n            } while (cVar4 != '\0');\n          }\n          pcVar10 = url_00->host;\n          pcVar6 = strchr(pcVar10,0x25);\n          if (pcVar6 != (char *)0x0) {\n            url_unescape(pcVar10);\n            pcVar10 = url_00->host;\n            cVar4 = *pcVar10;\n            pcVar6 = pcVar10;\n            while (cVar4 != '\0') {\n              if ((-1 < cVar4) && ((cVar4 < ' ' || (cVar4 == '\x7f')))) {\n                url_free(url_00);\n                iVar11 = 3;\n                goto LAB_00137c65;\n              }\n              pcVar6 = pcVar6 + 1;\n              cVar4 = *pcVar6;\n            }\n            bVar12 = iri != (iri *)0x0 & opt.enable_iri;\n            if (bVar12 == 0) {\n              bVar12 = 1;\n            }\n            else {\n              pcVar10 = idn_encode(iri,pcVar10);\n              if (pcVar10 != (char *)0x0) {\n                free(url_00->host);\n                url_00->host = pcVar10;\n              }\n            }\n          }\n          if (local_70 != (char *)0x0) {\n            pcVar10 = strdupdelim(local_70,local_60);\n            url_00->params = pcVar10;\n          }\n          if (local_b0 != (char *)0x0) {\n            pcVar10 = strdupdelim(local_b0,local_58);\n            url_00->query = pcVar10;\n          }\n          if (local_68 != (char *)0x0) {\n            pcVar10 = strdupdelim(local_68,local_50);\n            url_00->fragment = pcVar10;\n          }\n          error = (int *)url_00;\n          if ((((opt.enable_iri == false) && (pcVar5 == pcVar8)) &&\n              (url_00->fragment == (char *)0x0)) && ((local_88 != local_80 && (bVar12 == 0)))) {\n            if (local_b8 == url) {\n              pcVar8 = xstrdup(url);\n              url_00->url = pcVar8;\n            }\n            else {\n              url_00->url = local_b8;\n            }\n          }\n          else {\n            pcVar8 = url_string(url_00,URL_AUTH_SHOW);\n            url_00->url = pcVar8;\n            if (local_b8 != url) {\n              free(local_b8);\n            }\n          }\n          goto LAB_00137c95;\n        }\n        pcVar10 = pcVar10 + -1;\n        if (pcVar10 == pcVar8) {\n          iVar11 = 5;\n        }\n        else {\n          pcVar6 = (char *)memchr(pcVar8,0x3a,(long)pcVar10 - (long)pcVar8);\n          if (pcVar8 != pcVar6) {\n            pcVar5 = pcVar6;\n            if (pcVar6 != (char *)0x0) {\n              pcVar5 = strdupdelim(pcVar6 + 1,pcVar10);\n              url_unescape(pcVar5);\n              pcVar10 = pcVar6;\n            }\n            pcVar8 = strdupdelim(pcVar8,pcVar10);\n            url_unescape(pcVar8);\n            goto LAB_001379c6;\n          }\n          iVar11 = 5;\n        }\n      }" statement_identifier : (if_statement "if (local_a8 == local_a0) {\n        iVar11 = 3;\n      }\n      else {\n        local_74 = supported_schemes[scheme].default_port;\n        pcVar7 = pcVar6;\n        if (*pcVar6 == ':') {\n          __s = pcVar6 + 1;\n          pcVar7 = strpbrk(__s,pcVar5 + 1);\n          if (pcVar7 == (char *)0x0) {\n            uVar9 = 0xffffffffffffffff;\n            pcVar7 = __s;\n            do {\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar4 = *pcVar7;\n              pcVar7 = pcVar7 + (ulong)bVar12 * -2 + 1;\n            } while (cVar4 != '\0');\n            pcVar7 = pcVar6 + ~uVar9;\n          }\n          if (__s != pcVar7) {\n            if (__s < pcVar7) {\n              local_74 = (int)pcVar6[1] - 0x30;\n              if (local_74 < 10) {\n                do {\n                  __s = __s + 1;\n                  if (__s == pcVar7) goto LAB_00137584;\n                  if (9 < (int)*__s - 0x30U) {\n                    iVar11 = 4;\n                    goto LAB_00137c65;\n                  }\n                  local_74 = *__s + -0x30 + local_74 * 10;\n                } while ((int)local_74 < 0x10000);\n                iVar11 = 4;\n              }\n              else {\n                iVar11 = 4;\n              }\n              goto LAB_00137c65;\n            }\n            local_74 = 0;\n          }\n        }\nLAB_00137584:\n        local_80 = (char *)0x0;\n        local_88 = (char *)0x0;\n        pcVar6 = pcVar7;\n        if (*pcVar7 == '/') {\n          local_88 = pcVar7 + 1;\n          pcVar6 = strpbrk(local_88,pcVar5 + 2);\n          local_80 = pcVar6;\n          if (pcVar6 == (char *)0x0) {\n            uVar9 = 0xffffffffffffffff;\n            pcVar6 = local_88;\n            do {\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar4 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar12 * -2 + 1;\n            } while (cVar4 != '\0');\n            pcVar6 = pcVar7 + ~uVar9;\n            local_80 = pcVar6;\n          }\n        }\n        local_90 = pcVar5 + 3;\n        uVar2 = supported_schemes[scheme].flags;\n        if ((uVar2 & 2) == 0) {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n        }\n        else {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n          pcVar7 = pcVar6;\n          if (*pcVar6 == ';') {\n            local_70 = pcVar6 + 1;\n            pcVar7 = strpbrk(local_70,local_90);\n            local_60 = pcVar7;\n            if (pcVar7 == (char *)0x0) {\n              uVar9 = 0xffffffffffffffff;\n              pcVar7 = local_70;\n              do {\n                if (uVar9 == 0) break;\n                uVar9 = uVar9 - 1;\n                cVar4 = *pcVar7;\n                pcVar7 = pcVar7 + (ulong)bVar12 * -2 + 1;\n              } while (cVar4 != '\0');\n              pcVar7 = pcVar6 + ~uVar9;\n              local_60 = pcVar7;\n            }\n          }\n          local_90 = pcVar5 + 4;\n          pcVar6 = pcVar7;\n        }\n        if ((uVar2 & 4) == 0) {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n        }\n        else {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n          pcVar5 = pcVar6;\n          if (*pcVar6 == '?') {\n            local_b0 = pcVar6 + 1;\n            pcVar5 = strpbrk(local_b0,local_90);\n            local_58 = pcVar5;\n            if (pcVar5 == (char *)0x0) {\n              uVar9 = 0xffffffffffffffff;\n              pcVar5 = local_b0;\n              do {\n                if (uVar9 == 0) break;\n                uVar9 = uVar9 - 1;\n                cVar4 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar12 * -2 + 1;\n              } while (cVar4 != '\0');\n              pcVar5 = pcVar6 + ~uVar9;\n              local_58 = pcVar5;\n            }\n          }\n          local_90 = local_90 + 1;\n          pcVar6 = pcVar5;\n        }\n        if ((uVar2 & 8) == 0) {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n        }\n        else {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n          if (*pcVar6 == '#') {\n            local_68 = pcVar6 + 1;\n            local_50 = strpbrk(local_68,local_90);\n            if (local_50 == (char *)0x0) {\n              uVar9 = 0xffffffffffffffff;\n              pcVar5 = local_68;\n              do {\n                if (uVar9 == 0) break;\n                uVar9 = uVar9 - 1;\n                cVar4 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar12 * -2 + 1;\n              } while (cVar4 != '\0');\n              local_50 = pcVar6 + ~uVar9;\n            }\n          }\n        }\n        if (pcVar8 == pcVar10) {\n          pcVar5 = (char *)0x0;\n          pcVar8 = (char *)0x0;\nLAB_001379c6:\n          url_00 = (url *)xcalloc(1,0x60);\n          url_00->scheme = scheme;\n          pcVar10 = strdupdelim(local_a8,local_a0);\n          url_00->host = pcVar10;\n          url_00->port = local_74;\n          url_00->user = pcVar8;\n          url_00->passwd = pcVar5;\n          pcVar8 = strdupdelim(local_88,local_80);\n          url_00->path = pcVar8;\n          uVar9 = 0xffffffffffffffff;\n          pcVar10 = pcVar8;\n          do {\n            if (uVar9 == 0) break;\n            uVar9 = uVar9 - 1;\n            cVar4 = *pcVar10;\n            pcVar10 = pcVar10 + (ulong)bVar12 * -2 + 1;\n          } while (cVar4 != '\0');\n          pcVar10 = pcVar8 + (~uVar9 - 1);\n          pcVar5 = pcVar8;\n          if (pcVar8 < pcVar10) {\n            pcVar7 = pcVar8;\n            pcVar6 = pcVar8;\n            do {\n              cVar4 = *pcVar8;\n              if (cVar4 == '.') {\n                cVar1 = pcVar8[1];\n                if ((cVar1 == '/') || (cVar1 == '\0')) {\n                  pcVar8 = pcVar8 + 2;\n                }\n                else {\n                  if ((cVar1 != '.') || ((pcVar8[2] != '/' && (pcVar8[2] != '\0'))))\n                  goto LAB_00137e1d;\n                  if (pcVar6 < pcVar7) {\n                    pcVar5 = pcVar7 + -1;\n                    if (pcVar6 < pcVar5) {\n                      cVar4 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar4 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar4 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar5 = pcVar7;\n                    if (scheme - SCHEME_FTP < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }\n                  pcVar8 = pcVar8 + 3;\n                  pcVar7 = pcVar5;\n                }\n              }\n              else {\nLAB_00137e1d:\n                if (pcVar7 == pcVar8) {\n                  pcVar5 = pcVar7;\n                  if (pcVar10 <= pcVar7) break;\n                  cVar4 = *pcVar7;\n                  while (cVar4 != '/') {\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar10;\n                    if (pcVar10 == pcVar5) goto LAB_00137d7b;\n                    cVar4 = *pcVar5;\n                  }\n                  pcVar8 = pcVar5 + 1;\n                  pcVar7 = pcVar5 + 1;\n                }\n                else {\n                  pcVar5 = pcVar8;\n                  if (pcVar10 <= pcVar8) break;\n                  while (cVar4 != '/') {\n                    pcVar8 = pcVar8 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar4;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar10;\n                    if (pcVar10 == pcVar8) goto LAB_00137d7b;\n                    cVar4 = *pcVar8;\n                  }\n                  *pcVar7 = *pcVar8;\n                  pcVar8 = pcVar8 + 1;\n                  pcVar7 = pcVar7 + 1;\n                }\n              }\n              pcVar5 = pcVar8;\n            } while (pcVar8 < pcVar10);\nLAB_00137d7b:\n            pcVar8 = pcVar7;\n            if (pcVar5 != pcVar7) {\n              *pcVar7 = '\0';\n            }\n          }\n          pcVar10 = url_00->path;\n          pcVar6 = strrchr(pcVar10,0x2f);\n          if (pcVar6 == (char *)0x0) {\n            pcVar6 = xstrdup("");\n            url_00->dir = pcVar6;\n            pcVar10 = xstrdup(pcVar10);\n            url_00->file = pcVar10;\n          }\n          else {\n            pcVar10 = strdupdelim(pcVar10,pcVar6);\n            url_00->dir = pcVar10;\n            pcVar10 = xstrdup(pcVar6 + 1);\n            url_00->file = pcVar10;\n          }\n          url_unescape(url_00->dir);\n          url_unescape(url_00->file);\n          pcVar10 = url_00->host;\n          cVar4 = *pcVar10;\n          if (cVar4 == '\0') {\n            bVar12 = 0;\n          }\n          else {\n            bVar12 = 0;\n            do {\n              if ((int)cVar4 - 0x41U < 0x1a) {\n                *pcVar10 = cVar4 + ' ';\n                bVar12 = 1;\n              }\n              pcVar10 = pcVar10 + 1;\n              cVar4 = *pcVar10;\n            } while (cVar4 != '\0');\n          }\n          pcVar10 = url_00->host;\n          pcVar6 = strchr(pcVar10,0x25);\n          if (pcVar6 != (char *)0x0) {\n            url_unescape(pcVar10);\n            pcVar10 = url_00->host;\n            cVar4 = *pcVar10;\n            pcVar6 = pcVar10;\n            while (cVar4 != '\0') {\n              if ((-1 < cVar4) && ((cVar4 < ' ' || (cVar4 == '\x7f')))) {\n                url_free(url_00);\n                iVar11 = 3;\n                goto LAB_00137c65;\n              }\n              pcVar6 = pcVar6 + 1;\n              cVar4 = *pcVar6;\n            }\n            bVar12 = iri != (iri *)0x0 & opt.enable_iri;\n            if (bVar12 == 0) {\n              bVar12 = 1;\n            }\n            else {\n              pcVar10 = idn_encode(iri,pcVar10);\n              if (pcVar10 != (char *)0x0) {\n                free(url_00->host);\n                url_00->host = pcVar10;\n              }\n            }\n          }\n          if (local_70 != (char *)0x0) {\n            pcVar10 = strdupdelim(local_70,local_60);\n            url_00->params = pcVar10;\n          }\n          if (local_b0 != (char *)0x0) {\n            pcVar10 = strdupdelim(local_b0,local_58);\n            url_00->query = pcVar10;\n          }\n          if (local_68 != (char *)0x0) {\n            pcVar10 = strdupdelim(local_68,local_50);\n            url_00->fragment = pcVar10;\n          }\n          error = (int *)url_00;\n          if ((((opt.enable_iri == false) && (pcVar5 == pcVar8)) &&\n              (url_00->fragment == (char *)0x0)) && ((local_88 != local_80 && (bVar12 == 0)))) {\n            if (local_b8 == url) {\n              pcVar8 = xstrdup(url);\n              url_00->url = pcVar8;\n            }\n            else {\n              url_00->url = local_b8;\n            }\n          }\n          else {\n            pcVar8 = url_string(url_00,URL_AUTH_SHOW);\n            url_00->url = pcVar8;\n            if (local_b8 != url) {\n              free(local_b8);\n            }\n          }\n          goto LAB_00137c95;\n        }\n        pcVar10 = pcVar10 + -1;\n        if (pcVar10 == pcVar8) {\n          iVar11 = 5;\n        }\n        else {\n          pcVar6 = (char *)memchr(pcVar8,0x3a,(long)pcVar10 - (long)pcVar8);\n          if (pcVar8 != pcVar6) {\n            pcVar5 = pcVar6;\n            if (pcVar6 != (char *)0x0) {\n              pcVar5 = strdupdelim(pcVar6 + 1,pcVar10);\n              url_unescape(pcVar5);\n              pcVar10 = pcVar6;\n            }\n            pcVar8 = strdupdelim(pcVar8,pcVar10);\n            url_unescape(pcVar8);\n            goto LAB_001379c6;\n          }\n          iVar11 = 5;\n        }\n      }" if (parenthesized_expression "(local_a8 == local_a0)" ( (binary_expression "local_a8 == local_a0" identifier == identifier) )) (compound_statement "{\n        iVar11 = 3;\n      }" { (expression_statement "iVar11 = 3;" (assignment_expression "iVar11 = 3" identifier = number_literal) ;) }) (else_clause "else {\n        local_74 = supported_schemes[scheme].default_port;\n        pcVar7 = pcVar6;\n        if (*pcVar6 == ':') {\n          __s = pcVar6 + 1;\n          pcVar7 = strpbrk(__s,pcVar5 + 1);\n          if (pcVar7 == (char *)0x0) {\n            uVar9 = 0xffffffffffffffff;\n            pcVar7 = __s;\n            do {\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar4 = *pcVar7;\n              pcVar7 = pcVar7 + (ulong)bVar12 * -2 + 1;\n            } while (cVar4 != '\0');\n            pcVar7 = pcVar6 + ~uVar9;\n          }\n          if (__s != pcVar7) {\n            if (__s < pcVar7) {\n              local_74 = (int)pcVar6[1] - 0x30;\n              if (local_74 < 10) {\n                do {\n                  __s = __s + 1;\n                  if (__s == pcVar7) goto LAB_00137584;\n                  if (9 < (int)*__s - 0x30U) {\n                    iVar11 = 4;\n                    goto LAB_00137c65;\n                  }\n                  local_74 = *__s + -0x30 + local_74 * 10;\n                } while ((int)local_74 < 0x10000);\n                iVar11 = 4;\n              }\n              else {\n                iVar11 = 4;\n              }\n              goto LAB_00137c65;\n            }\n            local_74 = 0;\n          }\n        }\nLAB_00137584:\n        local_80 = (char *)0x0;\n        local_88 = (char *)0x0;\n        pcVar6 = pcVar7;\n        if (*pcVar7 == '/') {\n          local_88 = pcVar7 + 1;\n          pcVar6 = strpbrk(local_88,pcVar5 + 2);\n          local_80 = pcVar6;\n          if (pcVar6 == (char *)0x0) {\n            uVar9 = 0xffffffffffffffff;\n            pcVar6 = local_88;\n            do {\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar4 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar12 * -2 + 1;\n            } while (cVar4 != '\0');\n            pcVar6 = pcVar7 + ~uVar9;\n            local_80 = pcVar6;\n          }\n        }\n        local_90 = pcVar5 + 3;\n        uVar2 = supported_schemes[scheme].flags;\n        if ((uVar2 & 2) == 0) {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n        }\n        else {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n          pcVar7 = pcVar6;\n          if (*pcVar6 == ';') {\n            local_70 = pcVar6 + 1;\n            pcVar7 = strpbrk(local_70,local_90);\n            local_60 = pcVar7;\n            if (pcVar7 == (char *)0x0) {\n              uVar9 = 0xffffffffffffffff;\n              pcVar7 = local_70;\n              do {\n                if (uVar9 == 0) break;\n                uVar9 = uVar9 - 1;\n                cVar4 = *pcVar7;\n                pcVar7 = pcVar7 + (ulong)bVar12 * -2 + 1;\n              } while (cVar4 != '\0');\n              pcVar7 = pcVar6 + ~uVar9;\n              local_60 = pcVar7;\n            }\n          }\n          local_90 = pcVar5 + 4;\n          pcVar6 = pcVar7;\n        }\n        if ((uVar2 & 4) == 0) {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n        }\n        else {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n          pcVar5 = pcVar6;\n          if (*pcVar6 == '?') {\n            local_b0 = pcVar6 + 1;\n            pcVar5 = strpbrk(local_b0,local_90);\n            local_58 = pcVar5;\n            if (pcVar5 == (char *)0x0) {\n              uVar9 = 0xffffffffffffffff;\n              pcVar5 = local_b0;\n              do {\n                if (uVar9 == 0) break;\n                uVar9 = uVar9 - 1;\n                cVar4 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar12 * -2 + 1;\n              } while (cVar4 != '\0');\n              pcVar5 = pcVar6 + ~uVar9;\n              local_58 = pcVar5;\n            }\n          }\n          local_90 = local_90 + 1;\n          pcVar6 = pcVar5;\n        }\n        if ((uVar2 & 8) == 0) {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n        }\n        else {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n          if (*pcVar6 == '#') {\n            local_68 = pcVar6 + 1;\n            local_50 = strpbrk(local_68,local_90);\n            if (local_50 == (char *)0x0) {\n              uVar9 = 0xffffffffffffffff;\n              pcVar5 = local_68;\n              do {\n                if (uVar9 == 0) break;\n                uVar9 = uVar9 - 1;\n                cVar4 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar12 * -2 + 1;\n              } while (cVar4 != '\0');\n              local_50 = pcVar6 + ~uVar9;\n            }\n          }\n        }\n        if (pcVar8 == pcVar10) {\n          pcVar5 = (char *)0x0;\n          pcVar8 = (char *)0x0;\nLAB_001379c6:\n          url_00 = (url *)xcalloc(1,0x60);\n          url_00->scheme = scheme;\n          pcVar10 = strdupdelim(local_a8,local_a0);\n          url_00->host = pcVar10;\n          url_00->port = local_74;\n          url_00->user = pcVar8;\n          url_00->passwd = pcVar5;\n          pcVar8 = strdupdelim(local_88,local_80);\n          url_00->path = pcVar8;\n          uVar9 = 0xffffffffffffffff;\n          pcVar10 = pcVar8;\n          do {\n            if (uVar9 == 0) break;\n            uVar9 = uVar9 - 1;\n            cVar4 = *pcVar10;\n            pcVar10 = pcVar10 + (ulong)bVar12 * -2 + 1;\n          } while (cVar4 != '\0');\n          pcVar10 = pcVar8 + (~uVar9 - 1);\n          pcVar5 = pcVar8;\n          if (pcVar8 < pcVar10) {\n            pcVar7 = pcVar8;\n            pcVar6 = pcVar8;\n            do {\n              cVar4 = *pcVar8;\n              if (cVar4 == '.') {\n                cVar1 = pcVar8[1];\n                if ((cVar1 == '/') || (cVar1 == '\0')) {\n                  pcVar8 = pcVar8 + 2;\n                }\n                else {\n                  if ((cVar1 != '.') || ((pcVar8[2] != '/' && (pcVar8[2] != '\0'))))\n                  goto LAB_00137e1d;\n                  if (pcVar6 < pcVar7) {\n                    pcVar5 = pcVar7 + -1;\n                    if (pcVar6 < pcVar5) {\n                      cVar4 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar4 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar4 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar5 = pcVar7;\n                    if (scheme - SCHEME_FTP < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }\n                  pcVar8 = pcVar8 + 3;\n                  pcVar7 = pcVar5;\n                }\n              }\n              else {\nLAB_00137e1d:\n                if (pcVar7 == pcVar8) {\n                  pcVar5 = pcVar7;\n                  if (pcVar10 <= pcVar7) break;\n                  cVar4 = *pcVar7;\n                  while (cVar4 != '/') {\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar10;\n                    if (pcVar10 == pcVar5) goto LAB_00137d7b;\n                    cVar4 = *pcVar5;\n                  }\n                  pcVar8 = pcVar5 + 1;\n                  pcVar7 = pcVar5 + 1;\n                }\n                else {\n                  pcVar5 = pcVar8;\n                  if (pcVar10 <= pcVar8) break;\n                  while (cVar4 != '/') {\n                    pcVar8 = pcVar8 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar4;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar10;\n                    if (pcVar10 == pcVar8) goto LAB_00137d7b;\n                    cVar4 = *pcVar8;\n                  }\n                  *pcVar7 = *pcVar8;\n                  pcVar8 = pcVar8 + 1;\n                  pcVar7 = pcVar7 + 1;\n                }\n              }\n              pcVar5 = pcVar8;\n            } while (pcVar8 < pcVar10);\nLAB_00137d7b:\n            pcVar8 = pcVar7;\n            if (pcVar5 != pcVar7) {\n              *pcVar7 = '\0';\n            }\n          }\n          pcVar10 = url_00->path;\n          pcVar6 = strrchr(pcVar10,0x2f);\n          if (pcVar6 == (char *)0x0) {\n            pcVar6 = xstrdup("");\n            url_00->dir = pcVar6;\n            pcVar10 = xstrdup(pcVar10);\n            url_00->file = pcVar10;\n          }\n          else {\n            pcVar10 = strdupdelim(pcVar10,pcVar6);\n            url_00->dir = pcVar10;\n            pcVar10 = xstrdup(pcVar6 + 1);\n            url_00->file = pcVar10;\n          }\n          url_unescape(url_00->dir);\n          url_unescape(url_00->file);\n          pcVar10 = url_00->host;\n          cVar4 = *pcVar10;\n          if (cVar4 == '\0') {\n            bVar12 = 0;\n          }\n          else {\n            bVar12 = 0;\n            do {\n              if ((int)cVar4 - 0x41U < 0x1a) {\n                *pcVar10 = cVar4 + ' ';\n                bVar12 = 1;\n              }\n              pcVar10 = pcVar10 + 1;\n              cVar4 = *pcVar10;\n            } while (cVar4 != '\0');\n          }\n          pcVar10 = url_00->host;\n          pcVar6 = strchr(pcVar10,0x25);\n          if (pcVar6 != (char *)0x0) {\n            url_unescape(pcVar10);\n            pcVar10 = url_00->host;\n            cVar4 = *pcVar10;\n            pcVar6 = pcVar10;\n            while (cVar4 != '\0') {\n              if ((-1 < cVar4) && ((cVar4 < ' ' || (cVar4 == '\x7f')))) {\n                url_free(url_00);\n                iVar11 = 3;\n                goto LAB_00137c65;\n              }\n              pcVar6 = pcVar6 + 1;\n              cVar4 = *pcVar6;\n            }\n            bVar12 = iri != (iri *)0x0 & opt.enable_iri;\n            if (bVar12 == 0) {\n              bVar12 = 1;\n            }\n            else {\n              pcVar10 = idn_encode(iri,pcVar10);\n              if (pcVar10 != (char *)0x0) {\n                free(url_00->host);\n                url_00->host = pcVar10;\n              }\n            }\n          }\n          if (local_70 != (char *)0x0) {\n            pcVar10 = strdupdelim(local_70,local_60);\n            url_00->params = pcVar10;\n          }\n          if (local_b0 != (char *)0x0) {\n            pcVar10 = strdupdelim(local_b0,local_58);\n            url_00->query = pcVar10;\n          }\n          if (local_68 != (char *)0x0) {\n            pcVar10 = strdupdelim(local_68,local_50);\n            url_00->fragment = pcVar10;\n          }\n          error = (int *)url_00;\n          if ((((opt.enable_iri == false) && (pcVar5 == pcVar8)) &&\n              (url_00->fragment == (char *)0x0)) && ((local_88 != local_80 && (bVar12 == 0)))) {\n            if (local_b8 == url) {\n              pcVar8 = xstrdup(url);\n              url_00->url = pcVar8;\n            }\n            else {\n              url_00->url = local_b8;\n            }\n          }\n          else {\n            pcVar8 = url_string(url_00,URL_AUTH_SHOW);\n            url_00->url = pcVar8;\n            if (local_b8 != url) {\n              free(local_b8);\n            }\n          }\n          goto LAB_00137c95;\n        }\n        pcVar10 = pcVar10 + -1;\n        if (pcVar10 == pcVar8) {\n          iVar11 = 5;\n        }\n        else {\n          pcVar6 = (char *)memchr(pcVar8,0x3a,(long)pcVar10 - (long)pcVar8);\n          if (pcVar8 != pcVar6) {\n            pcVar5 = pcVar6;\n            if (pcVar6 != (char *)0x0) {\n              pcVar5 = strdupdelim(pcVar6 + 1,pcVar10);\n              url_unescape(pcVar5);\n              pcVar10 = pcVar6;\n            }\n            pcVar8 = strdupdelim(pcVar8,pcVar10);\n            url_unescape(pcVar8);\n            goto LAB_001379c6;\n          }\n          iVar11 = 5;\n        }\n      }" else (compound_statement "{\n        local_74 = supported_schemes[scheme].default_port;\n        pcVar7 = pcVar6;\n        if (*pcVar6 == ':') {\n          __s = pcVar6 + 1;\n          pcVar7 = strpbrk(__s,pcVar5 + 1);\n          if (pcVar7 == (char *)0x0) {\n            uVar9 = 0xffffffffffffffff;\n            pcVar7 = __s;\n            do {\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar4 = *pcVar7;\n              pcVar7 = pcVar7 + (ulong)bVar12 * -2 + 1;\n            } while (cVar4 != '\0');\n            pcVar7 = pcVar6 + ~uVar9;\n          }\n          if (__s != pcVar7) {\n            if (__s < pcVar7) {\n              local_74 = (int)pcVar6[1] - 0x30;\n              if (local_74 < 10) {\n                do {\n                  __s = __s + 1;\n                  if (__s == pcVar7) goto LAB_00137584;\n                  if (9 < (int)*__s - 0x30U) {\n                    iVar11 = 4;\n                    goto LAB_00137c65;\n                  }\n                  local_74 = *__s + -0x30 + local_74 * 10;\n                } while ((int)local_74 < 0x10000);\n                iVar11 = 4;\n              }\n              else {\n                iVar11 = 4;\n              }\n              goto LAB_00137c65;\n            }\n            local_74 = 0;\n          }\n        }\nLAB_00137584:\n        local_80 = (char *)0x0;\n        local_88 = (char *)0x0;\n        pcVar6 = pcVar7;\n        if (*pcVar7 == '/') {\n          local_88 = pcVar7 + 1;\n          pcVar6 = strpbrk(local_88,pcVar5 + 2);\n          local_80 = pcVar6;\n          if (pcVar6 == (char *)0x0) {\n            uVar9 = 0xffffffffffffffff;\n            pcVar6 = local_88;\n            do {\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar4 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar12 * -2 + 1;\n            } while (cVar4 != '\0');\n            pcVar6 = pcVar7 + ~uVar9;\n            local_80 = pcVar6;\n          }\n        }\n        local_90 = pcVar5 + 3;\n        uVar2 = supported_schemes[scheme].flags;\n        if ((uVar2 & 2) == 0) {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n        }\n        else {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n          pcVar7 = pcVar6;\n          if (*pcVar6 == ';') {\n            local_70 = pcVar6 + 1;\n            pcVar7 = strpbrk(local_70,local_90);\n            local_60 = pcVar7;\n            if (pcVar7 == (char *)0x0) {\n              uVar9 = 0xffffffffffffffff;\n              pcVar7 = local_70;\n              do {\n                if (uVar9 == 0) break;\n                uVar9 = uVar9 - 1;\n                cVar4 = *pcVar7;\n                pcVar7 = pcVar7 + (ulong)bVar12 * -2 + 1;\n              } while (cVar4 != '\0');\n              pcVar7 = pcVar6 + ~uVar9;\n              local_60 = pcVar7;\n            }\n          }\n          local_90 = pcVar5 + 4;\n          pcVar6 = pcVar7;\n        }\n        if ((uVar2 & 4) == 0) {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n        }\n        else {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n          pcVar5 = pcVar6;\n          if (*pcVar6 == '?') {\n            local_b0 = pcVar6 + 1;\n            pcVar5 = strpbrk(local_b0,local_90);\n            local_58 = pcVar5;\n            if (pcVar5 == (char *)0x0) {\n              uVar9 = 0xffffffffffffffff;\n              pcVar5 = local_b0;\n              do {\n                if (uVar9 == 0) break;\n                uVar9 = uVar9 - 1;\n                cVar4 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar12 * -2 + 1;\n              } while (cVar4 != '\0');\n              pcVar5 = pcVar6 + ~uVar9;\n              local_58 = pcVar5;\n            }\n          }\n          local_90 = local_90 + 1;\n          pcVar6 = pcVar5;\n        }\n        if ((uVar2 & 8) == 0) {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n        }\n        else {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n          if (*pcVar6 == '#') {\n            local_68 = pcVar6 + 1;\n            local_50 = strpbrk(local_68,local_90);\n            if (local_50 == (char *)0x0) {\n              uVar9 = 0xffffffffffffffff;\n              pcVar5 = local_68;\n              do {\n                if (uVar9 == 0) break;\n                uVar9 = uVar9 - 1;\n                cVar4 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar12 * -2 + 1;\n              } while (cVar4 != '\0');\n              local_50 = pcVar6 + ~uVar9;\n            }\n          }\n        }\n        if (pcVar8 == pcVar10) {\n          pcVar5 = (char *)0x0;\n          pcVar8 = (char *)0x0;\nLAB_001379c6:\n          url_00 = (url *)xcalloc(1,0x60);\n          url_00->scheme = scheme;\n          pcVar10 = strdupdelim(local_a8,local_a0);\n          url_00->host = pcVar10;\n          url_00->port = local_74;\n          url_00->user = pcVar8;\n          url_00->passwd = pcVar5;\n          pcVar8 = strdupdelim(local_88,local_80);\n          url_00->path = pcVar8;\n          uVar9 = 0xffffffffffffffff;\n          pcVar10 = pcVar8;\n          do {\n            if (uVar9 == 0) break;\n            uVar9 = uVar9 - 1;\n            cVar4 = *pcVar10;\n            pcVar10 = pcVar10 + (ulong)bVar12 * -2 + 1;\n          } while (cVar4 != '\0');\n          pcVar10 = pcVar8 + (~uVar9 - 1);\n          pcVar5 = pcVar8;\n          if (pcVar8 < pcVar10) {\n            pcVar7 = pcVar8;\n            pcVar6 = pcVar8;\n            do {\n              cVar4 = *pcVar8;\n              if (cVar4 == '.') {\n                cVar1 = pcVar8[1];\n                if ((cVar1 == '/') || (cVar1 == '\0')) {\n                  pcVar8 = pcVar8 + 2;\n                }\n                else {\n                  if ((cVar1 != '.') || ((pcVar8[2] != '/' && (pcVar8[2] != '\0'))))\n                  goto LAB_00137e1d;\n                  if (pcVar6 < pcVar7) {\n                    pcVar5 = pcVar7 + -1;\n                    if (pcVar6 < pcVar5) {\n                      cVar4 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar4 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar4 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar5 = pcVar7;\n                    if (scheme - SCHEME_FTP < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }\n                  pcVar8 = pcVar8 + 3;\n                  pcVar7 = pcVar5;\n                }\n              }\n              else {\nLAB_00137e1d:\n                if (pcVar7 == pcVar8) {\n                  pcVar5 = pcVar7;\n                  if (pcVar10 <= pcVar7) break;\n                  cVar4 = *pcVar7;\n                  while (cVar4 != '/') {\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar10;\n                    if (pcVar10 == pcVar5) goto LAB_00137d7b;\n                    cVar4 = *pcVar5;\n                  }\n                  pcVar8 = pcVar5 + 1;\n                  pcVar7 = pcVar5 + 1;\n                }\n                else {\n                  pcVar5 = pcVar8;\n                  if (pcVar10 <= pcVar8) break;\n                  while (cVar4 != '/') {\n                    pcVar8 = pcVar8 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar4;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar10;\n                    if (pcVar10 == pcVar8) goto LAB_00137d7b;\n                    cVar4 = *pcVar8;\n                  }\n                  *pcVar7 = *pcVar8;\n                  pcVar8 = pcVar8 + 1;\n                  pcVar7 = pcVar7 + 1;\n                }\n              }\n              pcVar5 = pcVar8;\n            } while (pcVar8 < pcVar10);\nLAB_00137d7b:\n            pcVar8 = pcVar7;\n            if (pcVar5 != pcVar7) {\n              *pcVar7 = '\0';\n            }\n          }\n          pcVar10 = url_00->path;\n          pcVar6 = strrchr(pcVar10,0x2f);\n          if (pcVar6 == (char *)0x0) {\n            pcVar6 = xstrdup("");\n            url_00->dir = pcVar6;\n            pcVar10 = xstrdup(pcVar10);\n            url_00->file = pcVar10;\n          }\n          else {\n            pcVar10 = strdupdelim(pcVar10,pcVar6);\n            url_00->dir = pcVar10;\n            pcVar10 = xstrdup(pcVar6 + 1);\n            url_00->file = pcVar10;\n          }\n          url_unescape(url_00->dir);\n          url_unescape(url_00->file);\n          pcVar10 = url_00->host;\n          cVar4 = *pcVar10;\n          if (cVar4 == '\0') {\n            bVar12 = 0;\n          }\n          else {\n            bVar12 = 0;\n            do {\n              if ((int)cVar4 - 0x41U < 0x1a) {\n                *pcVar10 = cVar4 + ' ';\n                bVar12 = 1;\n              }\n              pcVar10 = pcVar10 + 1;\n              cVar4 = *pcVar10;\n            } while (cVar4 != '\0');\n          }\n          pcVar10 = url_00->host;\n          pcVar6 = strchr(pcVar10,0x25);\n          if (pcVar6 != (char *)0x0) {\n            url_unescape(pcVar10);\n            pcVar10 = url_00->host;\n            cVar4 = *pcVar10;\n            pcVar6 = pcVar10;\n            while (cVar4 != '\0') {\n              if ((-1 < cVar4) && ((cVar4 < ' ' || (cVar4 == '\x7f')))) {\n                url_free(url_00);\n                iVar11 = 3;\n                goto LAB_00137c65;\n              }\n              pcVar6 = pcVar6 + 1;\n              cVar4 = *pcVar6;\n            }\n            bVar12 = iri != (iri *)0x0 & opt.enable_iri;\n            if (bVar12 == 0) {\n              bVar12 = 1;\n            }\n            else {\n              pcVar10 = idn_encode(iri,pcVar10);\n              if (pcVar10 != (char *)0x0) {\n                free(url_00->host);\n                url_00->host = pcVar10;\n              }\n            }\n          }\n          if (local_70 != (char *)0x0) {\n            pcVar10 = strdupdelim(local_70,local_60);\n            url_00->params = pcVar10;\n          }\n          if (local_b0 != (char *)0x0) {\n            pcVar10 = strdupdelim(local_b0,local_58);\n            url_00->query = pcVar10;\n          }\n          if (local_68 != (char *)0x0) {\n            pcVar10 = strdupdelim(local_68,local_50);\n            url_00->fragment = pcVar10;\n          }\n          error = (int *)url_00;\n          if ((((opt.enable_iri == false) && (pcVar5 == pcVar8)) &&\n              (url_00->fragment == (char *)0x0)) && ((local_88 != local_80 && (bVar12 == 0)))) {\n            if (local_b8 == url) {\n              pcVar8 = xstrdup(url);\n              url_00->url = pcVar8;\n            }\n            else {\n              url_00->url = local_b8;\n            }\n          }\n          else {\n            pcVar8 = url_string(url_00,URL_AUTH_SHOW);\n            url_00->url = pcVar8;\n            if (local_b8 != url) {\n              free(local_b8);\n            }\n          }\n          goto LAB_00137c95;\n        }\n        pcVar10 = pcVar10 + -1;\n        if (pcVar10 == pcVar8) {\n          iVar11 = 5;\n        }\n        else {\n          pcVar6 = (char *)memchr(pcVar8,0x3a,(long)pcVar10 - (long)pcVar8);\n          if (pcVar8 != pcVar6) {\n            pcVar5 = pcVar6;\n            if (pcVar6 != (char *)0x0) {\n              pcVar5 = strdupdelim(pcVar6 + 1,pcVar10);\n              url_unescape(pcVar5);\n              pcVar10 = pcVar6;\n            }\n            pcVar8 = strdupdelim(pcVar8,pcVar10);\n            url_unescape(pcVar8);\n            goto LAB_001379c6;\n          }\n          iVar11 = 5;\n        }\n      }" { (expression_statement "local_74 = supported_schemes[scheme].default_port;" (assignment_expression "local_74 = supported_schemes[scheme].default_port" identifier = (field_expression "supported_schemes[scheme].default_port" (subscript_expression "supported_schemes[scheme]" identifier [ identifier ]) . field_identifier)) ;) (expression_statement "pcVar7 = pcVar6;" (assignment_expression "pcVar7 = pcVar6" identifier = identifier) ;) (if_statement "if (*pcVar6 == ':') {\n          __s = pcVar6 + 1;\n          pcVar7 = strpbrk(__s,pcVar5 + 1);\n          if (pcVar7 == (char *)0x0) {\n            uVar9 = 0xffffffffffffffff;\n            pcVar7 = __s;\n            do {\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar4 = *pcVar7;\n              pcVar7 = pcVar7 + (ulong)bVar12 * -2 + 1;\n            } while (cVar4 != '\0');\n            pcVar7 = pcVar6 + ~uVar9;\n          }\n          if (__s != pcVar7) {\n            if (__s < pcVar7) {\n              local_74 = (int)pcVar6[1] - 0x30;\n              if (local_74 < 10) {\n                do {\n                  __s = __s + 1;\n                  if (__s == pcVar7) goto LAB_00137584;\n                  if (9 < (int)*__s - 0x30U) {\n                    iVar11 = 4;\n                    goto LAB_00137c65;\n                  }\n                  local_74 = *__s + -0x30 + local_74 * 10;\n                } while ((int)local_74 < 0x10000);\n                iVar11 = 4;\n              }\n              else {\n                iVar11 = 4;\n              }\n              goto LAB_00137c65;\n            }\n            local_74 = 0;\n          }\n        }" if (parenthesized_expression "(*pcVar6 == ':')" ( (binary_expression "*pcVar6 == ':'" (pointer_expression "*pcVar6" * identifier) == (char_literal "':'" ' character ')) )) (compound_statement "{\n          __s = pcVar6 + 1;\n          pcVar7 = strpbrk(__s,pcVar5 + 1);\n          if (pcVar7 == (char *)0x0) {\n            uVar9 = 0xffffffffffffffff;\n            pcVar7 = __s;\n            do {\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar4 = *pcVar7;\n              pcVar7 = pcVar7 + (ulong)bVar12 * -2 + 1;\n            } while (cVar4 != '\0');\n            pcVar7 = pcVar6 + ~uVar9;\n          }\n          if (__s != pcVar7) {\n            if (__s < pcVar7) {\n              local_74 = (int)pcVar6[1] - 0x30;\n              if (local_74 < 10) {\n                do {\n                  __s = __s + 1;\n                  if (__s == pcVar7) goto LAB_00137584;\n                  if (9 < (int)*__s - 0x30U) {\n                    iVar11 = 4;\n                    goto LAB_00137c65;\n                  }\n                  local_74 = *__s + -0x30 + local_74 * 10;\n                } while ((int)local_74 < 0x10000);\n                iVar11 = 4;\n              }\n              else {\n                iVar11 = 4;\n              }\n              goto LAB_00137c65;\n            }\n            local_74 = 0;\n          }\n        }" { (expression_statement "__s = pcVar6 + 1;" (assignment_expression "__s = pcVar6 + 1" identifier = (binary_expression "pcVar6 + 1" identifier + number_literal)) ;) (expression_statement "pcVar7 = strpbrk(__s,pcVar5 + 1);" (assignment_expression "pcVar7 = strpbrk(__s,pcVar5 + 1)" identifier = (call_expression "strpbrk(__s,pcVar5 + 1)" identifier (argument_list "(__s,pcVar5 + 1)" ( identifier , (binary_expression "pcVar5 + 1" identifier + number_literal) )))) ;) (if_statement "if (pcVar7 == (char *)0x0) {\n            uVar9 = 0xffffffffffffffff;\n            pcVar7 = __s;\n            do {\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar4 = *pcVar7;\n              pcVar7 = pcVar7 + (ulong)bVar12 * -2 + 1;\n            } while (cVar4 != '\0');\n            pcVar7 = pcVar6 + ~uVar9;\n          }" if (parenthesized_expression "(pcVar7 == (char *)0x0)" ( (binary_expression "pcVar7 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            uVar9 = 0xffffffffffffffff;\n            pcVar7 = __s;\n            do {\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar4 = *pcVar7;\n              pcVar7 = pcVar7 + (ulong)bVar12 * -2 + 1;\n            } while (cVar4 != '\0');\n            pcVar7 = pcVar6 + ~uVar9;\n          }" { (expression_statement "uVar9 = 0xffffffffffffffff;" (assignment_expression "uVar9 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar7 = __s;" (assignment_expression "pcVar7 = __s" identifier = identifier) ;) (do_statement "do {\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar4 = *pcVar7;\n              pcVar7 = pcVar7 + (ulong)bVar12 * -2 + 1;\n            } while (cVar4 != '\0');" do (compound_statement "{\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar4 = *pcVar7;\n              pcVar7 = pcVar7 + (ulong)bVar12 * -2 + 1;\n            }" { (if_statement "if (uVar9 == 0) break;" if (parenthesized_expression "(uVar9 == 0)" ( (binary_expression "uVar9 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar9 = uVar9 - 1;" (assignment_expression "uVar9 = uVar9 - 1" identifier = (binary_expression "uVar9 - 1" identifier - number_literal)) ;) (expression_statement "cVar4 = *pcVar7;" (assignment_expression "cVar4 = *pcVar7" identifier = (pointer_expression "*pcVar7" * identifier)) ;) (expression_statement "pcVar7 = pcVar7 + (ulong)bVar12 * -2 + 1;" (assignment_expression "pcVar7 = pcVar7 + (ulong)bVar12 * -2 + 1" identifier = (binary_expression "pcVar7 + (ulong)bVar12 * -2 + 1" (binary_expression "pcVar7 + (ulong)bVar12 * -2" identifier + (binary_expression "(ulong)bVar12 * -2" (cast_expression "(ulong)bVar12" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar4 != '\0')" ( (binary_expression "cVar4 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "pcVar7 = pcVar6 + ~uVar9;" (assignment_expression "pcVar7 = pcVar6 + ~uVar9" identifier = (binary_expression "pcVar6 + ~uVar9" identifier + (unary_expression "~uVar9" ~ identifier))) ;) })) (if_statement "if (__s != pcVar7) {\n            if (__s < pcVar7) {\n              local_74 = (int)pcVar6[1] - 0x30;\n              if (local_74 < 10) {\n                do {\n                  __s = __s + 1;\n                  if (__s == pcVar7) goto LAB_00137584;\n                  if (9 < (int)*__s - 0x30U) {\n                    iVar11 = 4;\n                    goto LAB_00137c65;\n                  }\n                  local_74 = *__s + -0x30 + local_74 * 10;\n                } while ((int)local_74 < 0x10000);\n                iVar11 = 4;\n              }\n              else {\n                iVar11 = 4;\n              }\n              goto LAB_00137c65;\n            }\n            local_74 = 0;\n          }" if (parenthesized_expression "(__s != pcVar7)" ( (binary_expression "__s != pcVar7" identifier != identifier) )) (compound_statement "{\n            if (__s < pcVar7) {\n              local_74 = (int)pcVar6[1] - 0x30;\n              if (local_74 < 10) {\n                do {\n                  __s = __s + 1;\n                  if (__s == pcVar7) goto LAB_00137584;\n                  if (9 < (int)*__s - 0x30U) {\n                    iVar11 = 4;\n                    goto LAB_00137c65;\n                  }\n                  local_74 = *__s + -0x30 + local_74 * 10;\n                } while ((int)local_74 < 0x10000);\n                iVar11 = 4;\n              }\n              else {\n                iVar11 = 4;\n              }\n              goto LAB_00137c65;\n            }\n            local_74 = 0;\n          }" { (if_statement "if (__s < pcVar7) {\n              local_74 = (int)pcVar6[1] - 0x30;\n              if (local_74 < 10) {\n                do {\n                  __s = __s + 1;\n                  if (__s == pcVar7) goto LAB_00137584;\n                  if (9 < (int)*__s - 0x30U) {\n                    iVar11 = 4;\n                    goto LAB_00137c65;\n                  }\n                  local_74 = *__s + -0x30 + local_74 * 10;\n                } while ((int)local_74 < 0x10000);\n                iVar11 = 4;\n              }\n              else {\n                iVar11 = 4;\n              }\n              goto LAB_00137c65;\n            }" if (parenthesized_expression "(__s < pcVar7)" ( (binary_expression "__s < pcVar7" identifier < identifier) )) (compound_statement "{\n              local_74 = (int)pcVar6[1] - 0x30;\n              if (local_74 < 10) {\n                do {\n                  __s = __s + 1;\n                  if (__s == pcVar7) goto LAB_00137584;\n                  if (9 < (int)*__s - 0x30U) {\n                    iVar11 = 4;\n                    goto LAB_00137c65;\n                  }\n                  local_74 = *__s + -0x30 + local_74 * 10;\n                } while ((int)local_74 < 0x10000);\n                iVar11 = 4;\n              }\n              else {\n                iVar11 = 4;\n              }\n              goto LAB_00137c65;\n            }" { (expression_statement "local_74 = (int)pcVar6[1] - 0x30;" (assignment_expression "local_74 = (int)pcVar6[1] - 0x30" identifier = (binary_expression "(int)pcVar6[1] - 0x30" (cast_expression "(int)pcVar6[1]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pcVar6[1]" identifier [ number_literal ])) - number_literal)) ;) (if_statement "if (local_74 < 10) {\n                do {\n                  __s = __s + 1;\n                  if (__s == pcVar7) goto LAB_00137584;\n                  if (9 < (int)*__s - 0x30U) {\n                    iVar11 = 4;\n                    goto LAB_00137c65;\n                  }\n                  local_74 = *__s + -0x30 + local_74 * 10;\n                } while ((int)local_74 < 0x10000);\n                iVar11 = 4;\n              }\n              else {\n                iVar11 = 4;\n              }" if (parenthesized_expression "(local_74 < 10)" ( (binary_expression "local_74 < 10" identifier < number_literal) )) (compound_statement "{\n                do {\n                  __s = __s + 1;\n                  if (__s == pcVar7) goto LAB_00137584;\n                  if (9 < (int)*__s - 0x30U) {\n                    iVar11 = 4;\n                    goto LAB_00137c65;\n                  }\n                  local_74 = *__s + -0x30 + local_74 * 10;\n                } while ((int)local_74 < 0x10000);\n                iVar11 = 4;\n              }" { (do_statement "do {\n                  __s = __s + 1;\n                  if (__s == pcVar7) goto LAB_00137584;\n                  if (9 < (int)*__s - 0x30U) {\n                    iVar11 = 4;\n                    goto LAB_00137c65;\n                  }\n                  local_74 = *__s + -0x30 + local_74 * 10;\n                } while ((int)local_74 < 0x10000);" do (compound_statement "{\n                  __s = __s + 1;\n                  if (__s == pcVar7) goto LAB_00137584;\n                  if (9 < (int)*__s - 0x30U) {\n                    iVar11 = 4;\n                    goto LAB_00137c65;\n                  }\n                  local_74 = *__s + -0x30 + local_74 * 10;\n                }" { (expression_statement "__s = __s + 1;" (assignment_expression "__s = __s + 1" identifier = (binary_expression "__s + 1" identifier + number_literal)) ;) (if_statement "if (__s == pcVar7) goto LAB_00137584;" if (parenthesized_expression "(__s == pcVar7)" ( (binary_expression "__s == pcVar7" identifier == identifier) )) (goto_statement "goto LAB_00137584;" goto statement_identifier ;)) (if_statement "if (9 < (int)*__s - 0x30U) {\n                    iVar11 = 4;\n                    goto LAB_00137c65;\n                  }" if (parenthesized_expression "(9 < (int)*__s - 0x30U)" ( (binary_expression "9 < (int)*__s - 0x30U" number_literal < (binary_expression "(int)*__s - 0x30U" (cast_expression "(int)*__s" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*__s" * identifier)) - number_literal)) )) (compound_statement "{\n                    iVar11 = 4;\n                    goto LAB_00137c65;\n                  }" { (expression_statement "iVar11 = 4;" (assignment_expression "iVar11 = 4" identifier = number_literal) ;) (goto_statement "goto LAB_00137c65;" goto statement_identifier ;) })) (expression_statement "local_74 = *__s + -0x30 + local_74 * 10;" (assignment_expression "local_74 = *__s + -0x30 + local_74 * 10" identifier = (binary_expression "*__s + -0x30 + local_74 * 10" (binary_expression "*__s + -0x30" (pointer_expression "*__s" * identifier) + number_literal) + (binary_expression "local_74 * 10" identifier * number_literal))) ;) }) while (parenthesized_expression "((int)local_74 < 0x10000)" ( (binary_expression "(int)local_74 < 0x10000" (cast_expression "(int)local_74" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) ;) (expression_statement "iVar11 = 4;" (assignment_expression "iVar11 = 4" identifier = number_literal) ;) }) (else_clause "else {\n                iVar11 = 4;\n              }" else (compound_statement "{\n                iVar11 = 4;\n              }" { (expression_statement "iVar11 = 4;" (assignment_expression "iVar11 = 4" identifier = number_literal) ;) }))) (goto_statement "goto LAB_00137c65;" goto statement_identifier ;) })) (expression_statement "local_74 = 0;" (assignment_expression "local_74 = 0" identifier = number_literal) ;) })) })) (labeled_statement "LAB_00137584:\n        local_80 = (char *)0x0;" statement_identifier : (expression_statement "local_80 = (char *)0x0;" (assignment_expression "local_80 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "local_88 = (char *)0x0;" (assignment_expression "local_88 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar6 = pcVar7;" (assignment_expression "pcVar6 = pcVar7" identifier = identifier) ;) (if_statement "if (*pcVar7 == '/') {\n          local_88 = pcVar7 + 1;\n          pcVar6 = strpbrk(local_88,pcVar5 + 2);\n          local_80 = pcVar6;\n          if (pcVar6 == (char *)0x0) {\n            uVar9 = 0xffffffffffffffff;\n            pcVar6 = local_88;\n            do {\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar4 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar12 * -2 + 1;\n            } while (cVar4 != '\0');\n            pcVar6 = pcVar7 + ~uVar9;\n            local_80 = pcVar6;\n          }\n        }" if (parenthesized_expression "(*pcVar7 == '/')" ( (binary_expression "*pcVar7 == '/'" (pointer_expression "*pcVar7" * identifier) == (char_literal "'/'" ' character ')) )) (compound_statement "{\n          local_88 = pcVar7 + 1;\n          pcVar6 = strpbrk(local_88,pcVar5 + 2);\n          local_80 = pcVar6;\n          if (pcVar6 == (char *)0x0) {\n            uVar9 = 0xffffffffffffffff;\n            pcVar6 = local_88;\n            do {\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar4 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar12 * -2 + 1;\n            } while (cVar4 != '\0');\n            pcVar6 = pcVar7 + ~uVar9;\n            local_80 = pcVar6;\n          }\n        }" { (expression_statement "local_88 = pcVar7 + 1;" (assignment_expression "local_88 = pcVar7 + 1" identifier = (binary_expression "pcVar7 + 1" identifier + number_literal)) ;) (expression_statement "pcVar6 = strpbrk(local_88,pcVar5 + 2);" (assignment_expression "pcVar6 = strpbrk(local_88,pcVar5 + 2)" identifier = (call_expression "strpbrk(local_88,pcVar5 + 2)" identifier (argument_list "(local_88,pcVar5 + 2)" ( identifier , (binary_expression "pcVar5 + 2" identifier + number_literal) )))) ;) (expression_statement "local_80 = pcVar6;" (assignment_expression "local_80 = pcVar6" identifier = identifier) ;) (if_statement "if (pcVar6 == (char *)0x0) {\n            uVar9 = 0xffffffffffffffff;\n            pcVar6 = local_88;\n            do {\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar4 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar12 * -2 + 1;\n            } while (cVar4 != '\0');\n            pcVar6 = pcVar7 + ~uVar9;\n            local_80 = pcVar6;\n          }" if (parenthesized_expression "(pcVar6 == (char *)0x0)" ( (binary_expression "pcVar6 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            uVar9 = 0xffffffffffffffff;\n            pcVar6 = local_88;\n            do {\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar4 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar12 * -2 + 1;\n            } while (cVar4 != '\0');\n            pcVar6 = pcVar7 + ~uVar9;\n            local_80 = pcVar6;\n          }" { (expression_statement "uVar9 = 0xffffffffffffffff;" (assignment_expression "uVar9 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar6 = local_88;" (assignment_expression "pcVar6 = local_88" identifier = identifier) ;) (do_statement "do {\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar4 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar12 * -2 + 1;\n            } while (cVar4 != '\0');" do (compound_statement "{\n              if (uVar9 == 0) break;\n              uVar9 = uVar9 - 1;\n              cVar4 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar12 * -2 + 1;\n            }" { (if_statement "if (uVar9 == 0) break;" if (parenthesized_expression "(uVar9 == 0)" ( (binary_expression "uVar9 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar9 = uVar9 - 1;" (assignment_expression "uVar9 = uVar9 - 1" identifier = (binary_expression "uVar9 - 1" identifier - number_literal)) ;) (expression_statement "cVar4 = *pcVar6;" (assignment_expression "cVar4 = *pcVar6" identifier = (pointer_expression "*pcVar6" * identifier)) ;) (expression_statement "pcVar6 = pcVar6 + (ulong)bVar12 * -2 + 1;" (assignment_expression "pcVar6 = pcVar6 + (ulong)bVar12 * -2 + 1" identifier = (binary_expression "pcVar6 + (ulong)bVar12 * -2 + 1" (binary_expression "pcVar6 + (ulong)bVar12 * -2" identifier + (binary_expression "(ulong)bVar12 * -2" (cast_expression "(ulong)bVar12" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar4 != '\0')" ( (binary_expression "cVar4 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "pcVar6 = pcVar7 + ~uVar9;" (assignment_expression "pcVar6 = pcVar7 + ~uVar9" identifier = (binary_expression "pcVar7 + ~uVar9" identifier + (unary_expression "~uVar9" ~ identifier))) ;) (expression_statement "local_80 = pcVar6;" (assignment_expression "local_80 = pcVar6" identifier = identifier) ;) })) })) (expression_statement "local_90 = pcVar5 + 3;" (assignment_expression "local_90 = pcVar5 + 3" identifier = (binary_expression "pcVar5 + 3" identifier + number_literal)) ;) (expression_statement "uVar2 = supported_schemes[scheme].flags;" (assignment_expression "uVar2 = supported_schemes[scheme].flags" identifier = (field_expression "supported_schemes[scheme].flags" (subscript_expression "supported_schemes[scheme]" identifier [ identifier ]) . field_identifier)) ;) (if_statement "if ((uVar2 & 2) == 0) {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n        }\n        else {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n          pcVar7 = pcVar6;\n          if (*pcVar6 == ';') {\n            local_70 = pcVar6 + 1;\n            pcVar7 = strpbrk(local_70,local_90);\n            local_60 = pcVar7;\n            if (pcVar7 == (char *)0x0) {\n              uVar9 = 0xffffffffffffffff;\n              pcVar7 = local_70;\n              do {\n                if (uVar9 == 0) break;\n                uVar9 = uVar9 - 1;\n                cVar4 = *pcVar7;\n                pcVar7 = pcVar7 + (ulong)bVar12 * -2 + 1;\n              } while (cVar4 != '\0');\n              pcVar7 = pcVar6 + ~uVar9;\n              local_60 = pcVar7;\n            }\n          }\n          local_90 = pcVar5 + 4;\n          pcVar6 = pcVar7;\n        }" if (parenthesized_expression "((uVar2 & 2) == 0)" ( (binary_expression "(uVar2 & 2) == 0" (parenthesized_expression "(uVar2 & 2)" ( (binary_expression "uVar2 & 2" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n        }" { (expression_statement "local_60 = (char *)0x0;" (assignment_expression "local_60 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_70 = (char *)0x0;" (assignment_expression "local_70 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n          pcVar7 = pcVar6;\n          if (*pcVar6 == ';') {\n            local_70 = pcVar6 + 1;\n            pcVar7 = strpbrk(local_70,local_90);\n            local_60 = pcVar7;\n            if (pcVar7 == (char *)0x0) {\n              uVar9 = 0xffffffffffffffff;\n              pcVar7 = local_70;\n              do {\n                if (uVar9 == 0) break;\n                uVar9 = uVar9 - 1;\n                cVar4 = *pcVar7;\n                pcVar7 = pcVar7 + (ulong)bVar12 * -2 + 1;\n              } while (cVar4 != '\0');\n              pcVar7 = pcVar6 + ~uVar9;\n              local_60 = pcVar7;\n            }\n          }\n          local_90 = pcVar5 + 4;\n          pcVar6 = pcVar7;\n        }" else (compound_statement "{\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n          pcVar7 = pcVar6;\n          if (*pcVar6 == ';') {\n            local_70 = pcVar6 + 1;\n            pcVar7 = strpbrk(local_70,local_90);\n            local_60 = pcVar7;\n            if (pcVar7 == (char *)0x0) {\n              uVar9 = 0xffffffffffffffff;\n              pcVar7 = local_70;\n              do {\n                if (uVar9 == 0) break;\n                uVar9 = uVar9 - 1;\n                cVar4 = *pcVar7;\n                pcVar7 = pcVar7 + (ulong)bVar12 * -2 + 1;\n              } while (cVar4 != '\0');\n              pcVar7 = pcVar6 + ~uVar9;\n              local_60 = pcVar7;\n            }\n          }\n          local_90 = pcVar5 + 4;\n          pcVar6 = pcVar7;\n        }" { (expression_statement "local_60 = (char *)0x0;" (assignment_expression "local_60 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_70 = (char *)0x0;" (assignment_expression "local_70 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar7 = pcVar6;" (assignment_expression "pcVar7 = pcVar6" identifier = identifier) ;) (if_statement "if (*pcVar6 == ';') {\n            local_70 = pcVar6 + 1;\n            pcVar7 = strpbrk(local_70,local_90);\n            local_60 = pcVar7;\n            if (pcVar7 == (char *)0x0) {\n              uVar9 = 0xffffffffffffffff;\n              pcVar7 = local_70;\n              do {\n                if (uVar9 == 0) break;\n                uVar9 = uVar9 - 1;\n                cVar4 = *pcVar7;\n                pcVar7 = pcVar7 + (ulong)bVar12 * -2 + 1;\n              } while (cVar4 != '\0');\n              pcVar7 = pcVar6 + ~uVar9;\n              local_60 = pcVar7;\n            }\n          }" if (parenthesized_expression "(*pcVar6 == ';')" ( (binary_expression "*pcVar6 == ';'" (pointer_expression "*pcVar6" * identifier) == (char_literal "';'" ' character ')) )) (compound_statement "{\n            local_70 = pcVar6 + 1;\n            pcVar7 = strpbrk(local_70,local_90);\n            local_60 = pcVar7;\n            if (pcVar7 == (char *)0x0) {\n              uVar9 = 0xffffffffffffffff;\n              pcVar7 = local_70;\n              do {\n                if (uVar9 == 0) break;\n                uVar9 = uVar9 - 1;\n                cVar4 = *pcVar7;\n                pcVar7 = pcVar7 + (ulong)bVar12 * -2 + 1;\n              } while (cVar4 != '\0');\n              pcVar7 = pcVar6 + ~uVar9;\n              local_60 = pcVar7;\n            }\n          }" { (expression_statement "local_70 = pcVar6 + 1;" (assignment_expression "local_70 = pcVar6 + 1" identifier = (binary_expression "pcVar6 + 1" identifier + number_literal)) ;) (expression_statement "pcVar7 = strpbrk(local_70,local_90);" (assignment_expression "pcVar7 = strpbrk(local_70,local_90)" identifier = (call_expression "strpbrk(local_70,local_90)" identifier (argument_list "(local_70,local_90)" ( identifier , identifier )))) ;) (expression_statement "local_60 = pcVar7;" (assignment_expression "local_60 = pcVar7" identifier = identifier) ;) (if_statement "if (pcVar7 == (char *)0x0) {\n              uVar9 = 0xffffffffffffffff;\n              pcVar7 = local_70;\n              do {\n                if (uVar9 == 0) break;\n                uVar9 = uVar9 - 1;\n                cVar4 = *pcVar7;\n                pcVar7 = pcVar7 + (ulong)bVar12 * -2 + 1;\n              } while (cVar4 != '\0');\n              pcVar7 = pcVar6 + ~uVar9;\n              local_60 = pcVar7;\n            }" if (parenthesized_expression "(pcVar7 == (char *)0x0)" ( (binary_expression "pcVar7 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              uVar9 = 0xffffffffffffffff;\n              pcVar7 = local_70;\n              do {\n                if (uVar9 == 0) break;\n                uVar9 = uVar9 - 1;\n                cVar4 = *pcVar7;\n                pcVar7 = pcVar7 + (ulong)bVar12 * -2 + 1;\n              } while (cVar4 != '\0');\n              pcVar7 = pcVar6 + ~uVar9;\n              local_60 = pcVar7;\n            }" { (expression_statement "uVar9 = 0xffffffffffffffff;" (assignment_expression "uVar9 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar7 = local_70;" (assignment_expression "pcVar7 = local_70" identifier = identifier) ;) (do_statement "do {\n                if (uVar9 == 0) break;\n                uVar9 = uVar9 - 1;\n                cVar4 = *pcVar7;\n                pcVar7 = pcVar7 + (ulong)bVar12 * -2 + 1;\n              } while (cVar4 != '\0');" do (compound_statement "{\n                if (uVar9 == 0) break;\n                uVar9 = uVar9 - 1;\n                cVar4 = *pcVar7;\n                pcVar7 = pcVar7 + (ulong)bVar12 * -2 + 1;\n              }" { (if_statement "if (uVar9 == 0) break;" if (parenthesized_expression "(uVar9 == 0)" ( (binary_expression "uVar9 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar9 = uVar9 - 1;" (assignment_expression "uVar9 = uVar9 - 1" identifier = (binary_expression "uVar9 - 1" identifier - number_literal)) ;) (expression_statement "cVar4 = *pcVar7;" (assignment_expression "cVar4 = *pcVar7" identifier = (pointer_expression "*pcVar7" * identifier)) ;) (expression_statement "pcVar7 = pcVar7 + (ulong)bVar12 * -2 + 1;" (assignment_expression "pcVar7 = pcVar7 + (ulong)bVar12 * -2 + 1" identifier = (binary_expression "pcVar7 + (ulong)bVar12 * -2 + 1" (binary_expression "pcVar7 + (ulong)bVar12 * -2" identifier + (binary_expression "(ulong)bVar12 * -2" (cast_expression "(ulong)bVar12" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar4 != '\0')" ( (binary_expression "cVar4 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "pcVar7 = pcVar6 + ~uVar9;" (assignment_expression "pcVar7 = pcVar6 + ~uVar9" identifier = (binary_expression "pcVar6 + ~uVar9" identifier + (unary_expression "~uVar9" ~ identifier))) ;) (expression_statement "local_60 = pcVar7;" (assignment_expression "local_60 = pcVar7" identifier = identifier) ;) })) })) (expression_statement "local_90 = pcVar5 + 4;" (assignment_expression "local_90 = pcVar5 + 4" identifier = (binary_expression "pcVar5 + 4" identifier + number_literal)) ;) (expression_statement "pcVar6 = pcVar7;" (assignment_expression "pcVar6 = pcVar7" identifier = identifier) ;) }))) (if_statement "if ((uVar2 & 4) == 0) {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n        }\n        else {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n          pcVar5 = pcVar6;\n          if (*pcVar6 == '?') {\n            local_b0 = pcVar6 + 1;\n            pcVar5 = strpbrk(local_b0,local_90);\n            local_58 = pcVar5;\n            if (pcVar5 == (char *)0x0) {\n              uVar9 = 0xffffffffffffffff;\n              pcVar5 = local_b0;\n              do {\n                if (uVar9 == 0) break;\n                uVar9 = uVar9 - 1;\n                cVar4 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar12 * -2 + 1;\n              } while (cVar4 != '\0');\n              pcVar5 = pcVar6 + ~uVar9;\n              local_58 = pcVar5;\n            }\n          }\n          local_90 = local_90 + 1;\n          pcVar6 = pcVar5;\n        }" if (parenthesized_expression "((uVar2 & 4) == 0)" ( (binary_expression "(uVar2 & 4) == 0" (parenthesized_expression "(uVar2 & 4)" ( (binary_expression "uVar2 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n        }" { (expression_statement "local_58 = (char *)0x0;" (assignment_expression "local_58 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_b0 = (char *)0x0;" (assignment_expression "local_b0 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n          pcVar5 = pcVar6;\n          if (*pcVar6 == '?') {\n            local_b0 = pcVar6 + 1;\n            pcVar5 = strpbrk(local_b0,local_90);\n            local_58 = pcVar5;\n            if (pcVar5 == (char *)0x0) {\n              uVar9 = 0xffffffffffffffff;\n              pcVar5 = local_b0;\n              do {\n                if (uVar9 == 0) break;\n                uVar9 = uVar9 - 1;\n                cVar4 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar12 * -2 + 1;\n              } while (cVar4 != '\0');\n              pcVar5 = pcVar6 + ~uVar9;\n              local_58 = pcVar5;\n            }\n          }\n          local_90 = local_90 + 1;\n          pcVar6 = pcVar5;\n        }" else (compound_statement "{\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n          pcVar5 = pcVar6;\n          if (*pcVar6 == '?') {\n            local_b0 = pcVar6 + 1;\n            pcVar5 = strpbrk(local_b0,local_90);\n            local_58 = pcVar5;\n            if (pcVar5 == (char *)0x0) {\n              uVar9 = 0xffffffffffffffff;\n              pcVar5 = local_b0;\n              do {\n                if (uVar9 == 0) break;\n                uVar9 = uVar9 - 1;\n                cVar4 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar12 * -2 + 1;\n              } while (cVar4 != '\0');\n              pcVar5 = pcVar6 + ~uVar9;\n              local_58 = pcVar5;\n            }\n          }\n          local_90 = local_90 + 1;\n          pcVar6 = pcVar5;\n        }" { (expression_statement "local_58 = (char *)0x0;" (assignment_expression "local_58 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_b0 = (char *)0x0;" (assignment_expression "local_b0 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar5 = pcVar6;" (assignment_expression "pcVar5 = pcVar6" identifier = identifier) ;) (if_statement "if (*pcVar6 == '?') {\n            local_b0 = pcVar6 + 1;\n            pcVar5 = strpbrk(local_b0,local_90);\n            local_58 = pcVar5;\n            if (pcVar5 == (char *)0x0) {\n              uVar9 = 0xffffffffffffffff;\n              pcVar5 = local_b0;\n              do {\n                if (uVar9 == 0) break;\n                uVar9 = uVar9 - 1;\n                cVar4 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar12 * -2 + 1;\n              } while (cVar4 != '\0');\n              pcVar5 = pcVar6 + ~uVar9;\n              local_58 = pcVar5;\n            }\n          }" if (parenthesized_expression "(*pcVar6 == '?')" ( (binary_expression "*pcVar6 == '?'" (pointer_expression "*pcVar6" * identifier) == (char_literal "'?'" ' character ')) )) (compound_statement "{\n            local_b0 = pcVar6 + 1;\n            pcVar5 = strpbrk(local_b0,local_90);\n            local_58 = pcVar5;\n            if (pcVar5 == (char *)0x0) {\n              uVar9 = 0xffffffffffffffff;\n              pcVar5 = local_b0;\n              do {\n                if (uVar9 == 0) break;\n                uVar9 = uVar9 - 1;\n                cVar4 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar12 * -2 + 1;\n              } while (cVar4 != '\0');\n              pcVar5 = pcVar6 + ~uVar9;\n              local_58 = pcVar5;\n            }\n          }" { (expression_statement "local_b0 = pcVar6 + 1;" (assignment_expression "local_b0 = pcVar6 + 1" identifier = (binary_expression "pcVar6 + 1" identifier + number_literal)) ;) (expression_statement "pcVar5 = strpbrk(local_b0,local_90);" (assignment_expression "pcVar5 = strpbrk(local_b0,local_90)" identifier = (call_expression "strpbrk(local_b0,local_90)" identifier (argument_list "(local_b0,local_90)" ( identifier , identifier )))) ;) (expression_statement "local_58 = pcVar5;" (assignment_expression "local_58 = pcVar5" identifier = identifier) ;) (if_statement "if (pcVar5 == (char *)0x0) {\n              uVar9 = 0xffffffffffffffff;\n              pcVar5 = local_b0;\n              do {\n                if (uVar9 == 0) break;\n                uVar9 = uVar9 - 1;\n                cVar4 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar12 * -2 + 1;\n              } while (cVar4 != '\0');\n              pcVar5 = pcVar6 + ~uVar9;\n              local_58 = pcVar5;\n            }" if (parenthesized_expression "(pcVar5 == (char *)0x0)" ( (binary_expression "pcVar5 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              uVar9 = 0xffffffffffffffff;\n              pcVar5 = local_b0;\n              do {\n                if (uVar9 == 0) break;\n                uVar9 = uVar9 - 1;\n                cVar4 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar12 * -2 + 1;\n              } while (cVar4 != '\0');\n              pcVar5 = pcVar6 + ~uVar9;\n              local_58 = pcVar5;\n            }" { (expression_statement "uVar9 = 0xffffffffffffffff;" (assignment_expression "uVar9 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar5 = local_b0;" (assignment_expression "pcVar5 = local_b0" identifier = identifier) ;) (do_statement "do {\n                if (uVar9 == 0) break;\n                uVar9 = uVar9 - 1;\n                cVar4 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar12 * -2 + 1;\n              } while (cVar4 != '\0');" do (compound_statement "{\n                if (uVar9 == 0) break;\n                uVar9 = uVar9 - 1;\n                cVar4 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar12 * -2 + 1;\n              }" { (if_statement "if (uVar9 == 0) break;" if (parenthesized_expression "(uVar9 == 0)" ( (binary_expression "uVar9 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar9 = uVar9 - 1;" (assignment_expression "uVar9 = uVar9 - 1" identifier = (binary_expression "uVar9 - 1" identifier - number_literal)) ;) (expression_statement "cVar4 = *pcVar5;" (assignment_expression "cVar4 = *pcVar5" identifier = (pointer_expression "*pcVar5" * identifier)) ;) (expression_statement "pcVar5 = pcVar5 + (ulong)bVar12 * -2 + 1;" (assignment_expression "pcVar5 = pcVar5 + (ulong)bVar12 * -2 + 1" identifier = (binary_expression "pcVar5 + (ulong)bVar12 * -2 + 1" (binary_expression "pcVar5 + (ulong)bVar12 * -2" identifier + (binary_expression "(ulong)bVar12 * -2" (cast_expression "(ulong)bVar12" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar4 != '\0')" ( (binary_expression "cVar4 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "pcVar5 = pcVar6 + ~uVar9;" (assignment_expression "pcVar5 = pcVar6 + ~uVar9" identifier = (binary_expression "pcVar6 + ~uVar9" identifier + (unary_expression "~uVar9" ~ identifier))) ;) (expression_statement "local_58 = pcVar5;" (assignment_expression "local_58 = pcVar5" identifier = identifier) ;) })) })) (expression_statement "local_90 = local_90 + 1;" (assignment_expression "local_90 = local_90 + 1" identifier = (binary_expression "local_90 + 1" identifier + number_literal)) ;) (expression_statement "pcVar6 = pcVar5;" (assignment_expression "pcVar6 = pcVar5" identifier = identifier) ;) }))) (if_statement "if ((uVar2 & 8) == 0) {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n        }\n        else {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n          if (*pcVar6 == '#') {\n            local_68 = pcVar6 + 1;\n            local_50 = strpbrk(local_68,local_90);\n            if (local_50 == (char *)0x0) {\n              uVar9 = 0xffffffffffffffff;\n              pcVar5 = local_68;\n              do {\n                if (uVar9 == 0) break;\n                uVar9 = uVar9 - 1;\n                cVar4 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar12 * -2 + 1;\n              } while (cVar4 != '\0');\n              local_50 = pcVar6 + ~uVar9;\n            }\n          }\n        }" if (parenthesized_expression "((uVar2 & 8) == 0)" ( (binary_expression "(uVar2 & 8) == 0" (parenthesized_expression "(uVar2 & 8)" ( (binary_expression "uVar2 & 8" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n        }" { (expression_statement "local_50 = (char *)0x0;" (assignment_expression "local_50 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_68 = (char *)0x0;" (assignment_expression "local_68 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n          if (*pcVar6 == '#') {\n            local_68 = pcVar6 + 1;\n            local_50 = strpbrk(local_68,local_90);\n            if (local_50 == (char *)0x0) {\n              uVar9 = 0xffffffffffffffff;\n              pcVar5 = local_68;\n              do {\n                if (uVar9 == 0) break;\n                uVar9 = uVar9 - 1;\n                cVar4 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar12 * -2 + 1;\n              } while (cVar4 != '\0');\n              local_50 = pcVar6 + ~uVar9;\n            }\n          }\n        }" else (compound_statement "{\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n          if (*pcVar6 == '#') {\n            local_68 = pcVar6 + 1;\n            local_50 = strpbrk(local_68,local_90);\n            if (local_50 == (char *)0x0) {\n              uVar9 = 0xffffffffffffffff;\n              pcVar5 = local_68;\n              do {\n                if (uVar9 == 0) break;\n                uVar9 = uVar9 - 1;\n                cVar4 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar12 * -2 + 1;\n              } while (cVar4 != '\0');\n              local_50 = pcVar6 + ~uVar9;\n            }\n          }\n        }" { (expression_statement "local_50 = (char *)0x0;" (assignment_expression "local_50 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_68 = (char *)0x0;" (assignment_expression "local_68 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (*pcVar6 == '#') {\n            local_68 = pcVar6 + 1;\n            local_50 = strpbrk(local_68,local_90);\n            if (local_50 == (char *)0x0) {\n              uVar9 = 0xffffffffffffffff;\n              pcVar5 = local_68;\n              do {\n                if (uVar9 == 0) break;\n                uVar9 = uVar9 - 1;\n                cVar4 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar12 * -2 + 1;\n              } while (cVar4 != '\0');\n              local_50 = pcVar6 + ~uVar9;\n            }\n          }" if (parenthesized_expression "(*pcVar6 == '#')" ( (binary_expression "*pcVar6 == '#'" (pointer_expression "*pcVar6" * identifier) == (char_literal "'#'" ' character ')) )) (compound_statement "{\n            local_68 = pcVar6 + 1;\n            local_50 = strpbrk(local_68,local_90);\n            if (local_50 == (char *)0x0) {\n              uVar9 = 0xffffffffffffffff;\n              pcVar5 = local_68;\n              do {\n                if (uVar9 == 0) break;\n                uVar9 = uVar9 - 1;\n                cVar4 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar12 * -2 + 1;\n              } while (cVar4 != '\0');\n              local_50 = pcVar6 + ~uVar9;\n            }\n          }" { (expression_statement "local_68 = pcVar6 + 1;" (assignment_expression "local_68 = pcVar6 + 1" identifier = (binary_expression "pcVar6 + 1" identifier + number_literal)) ;) (expression_statement "local_50 = strpbrk(local_68,local_90);" (assignment_expression "local_50 = strpbrk(local_68,local_90)" identifier = (call_expression "strpbrk(local_68,local_90)" identifier (argument_list "(local_68,local_90)" ( identifier , identifier )))) ;) (if_statement "if (local_50 == (char *)0x0) {\n              uVar9 = 0xffffffffffffffff;\n              pcVar5 = local_68;\n              do {\n                if (uVar9 == 0) break;\n                uVar9 = uVar9 - 1;\n                cVar4 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar12 * -2 + 1;\n              } while (cVar4 != '\0');\n              local_50 = pcVar6 + ~uVar9;\n            }" if (parenthesized_expression "(local_50 == (char *)0x0)" ( (binary_expression "local_50 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              uVar9 = 0xffffffffffffffff;\n              pcVar5 = local_68;\n              do {\n                if (uVar9 == 0) break;\n                uVar9 = uVar9 - 1;\n                cVar4 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar12 * -2 + 1;\n              } while (cVar4 != '\0');\n              local_50 = pcVar6 + ~uVar9;\n            }" { (expression_statement "uVar9 = 0xffffffffffffffff;" (assignment_expression "uVar9 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar5 = local_68;" (assignment_expression "pcVar5 = local_68" identifier = identifier) ;) (do_statement "do {\n                if (uVar9 == 0) break;\n                uVar9 = uVar9 - 1;\n                cVar4 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar12 * -2 + 1;\n              } while (cVar4 != '\0');" do (compound_statement "{\n                if (uVar9 == 0) break;\n                uVar9 = uVar9 - 1;\n                cVar4 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar12 * -2 + 1;\n              }" { (if_statement "if (uVar9 == 0) break;" if (parenthesized_expression "(uVar9 == 0)" ( (binary_expression "uVar9 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar9 = uVar9 - 1;" (assignment_expression "uVar9 = uVar9 - 1" identifier = (binary_expression "uVar9 - 1" identifier - number_literal)) ;) (expression_statement "cVar4 = *pcVar5;" (assignment_expression "cVar4 = *pcVar5" identifier = (pointer_expression "*pcVar5" * identifier)) ;) (expression_statement "pcVar5 = pcVar5 + (ulong)bVar12 * -2 + 1;" (assignment_expression "pcVar5 = pcVar5 + (ulong)bVar12 * -2 + 1" identifier = (binary_expression "pcVar5 + (ulong)bVar12 * -2 + 1" (binary_expression "pcVar5 + (ulong)bVar12 * -2" identifier + (binary_expression "(ulong)bVar12 * -2" (cast_expression "(ulong)bVar12" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar4 != '\0')" ( (binary_expression "cVar4 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "local_50 = pcVar6 + ~uVar9;" (assignment_expression "local_50 = pcVar6 + ~uVar9" identifier = (binary_expression "pcVar6 + ~uVar9" identifier + (unary_expression "~uVar9" ~ identifier))) ;) })) })) }))) (if_statement "if (pcVar8 == pcVar10) {\n          pcVar5 = (char *)0x0;\n          pcVar8 = (char *)0x0;\nLAB_001379c6:\n          url_00 = (url *)xcalloc(1,0x60);\n          url_00->scheme = scheme;\n          pcVar10 = strdupdelim(local_a8,local_a0);\n          url_00->host = pcVar10;\n          url_00->port = local_74;\n          url_00->user = pcVar8;\n          url_00->passwd = pcVar5;\n          pcVar8 = strdupdelim(local_88,local_80);\n          url_00->path = pcVar8;\n          uVar9 = 0xffffffffffffffff;\n          pcVar10 = pcVar8;\n          do {\n            if (uVar9 == 0) break;\n            uVar9 = uVar9 - 1;\n            cVar4 = *pcVar10;\n            pcVar10 = pcVar10 + (ulong)bVar12 * -2 + 1;\n          } while (cVar4 != '\0');\n          pcVar10 = pcVar8 + (~uVar9 - 1);\n          pcVar5 = pcVar8;\n          if (pcVar8 < pcVar10) {\n            pcVar7 = pcVar8;\n            pcVar6 = pcVar8;\n            do {\n              cVar4 = *pcVar8;\n              if (cVar4 == '.') {\n                cVar1 = pcVar8[1];\n                if ((cVar1 == '/') || (cVar1 == '\0')) {\n                  pcVar8 = pcVar8 + 2;\n                }\n                else {\n                  if ((cVar1 != '.') || ((pcVar8[2] != '/' && (pcVar8[2] != '\0'))))\n                  goto LAB_00137e1d;\n                  if (pcVar6 < pcVar7) {\n                    pcVar5 = pcVar7 + -1;\n                    if (pcVar6 < pcVar5) {\n                      cVar4 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar4 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar4 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar5 = pcVar7;\n                    if (scheme - SCHEME_FTP < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }\n                  pcVar8 = pcVar8 + 3;\n                  pcVar7 = pcVar5;\n                }\n              }\n              else {\nLAB_00137e1d:\n                if (pcVar7 == pcVar8) {\n                  pcVar5 = pcVar7;\n                  if (pcVar10 <= pcVar7) break;\n                  cVar4 = *pcVar7;\n                  while (cVar4 != '/') {\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar10;\n                    if (pcVar10 == pcVar5) goto LAB_00137d7b;\n                    cVar4 = *pcVar5;\n                  }\n                  pcVar8 = pcVar5 + 1;\n                  pcVar7 = pcVar5 + 1;\n                }\n                else {\n                  pcVar5 = pcVar8;\n                  if (pcVar10 <= pcVar8) break;\n                  while (cVar4 != '/') {\n                    pcVar8 = pcVar8 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar4;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar10;\n                    if (pcVar10 == pcVar8) goto LAB_00137d7b;\n                    cVar4 = *pcVar8;\n                  }\n                  *pcVar7 = *pcVar8;\n                  pcVar8 = pcVar8 + 1;\n                  pcVar7 = pcVar7 + 1;\n                }\n              }\n              pcVar5 = pcVar8;\n            } while (pcVar8 < pcVar10);\nLAB_00137d7b:\n            pcVar8 = pcVar7;\n            if (pcVar5 != pcVar7) {\n              *pcVar7 = '\0';\n            }\n          }\n          pcVar10 = url_00->path;\n          pcVar6 = strrchr(pcVar10,0x2f);\n          if (pcVar6 == (char *)0x0) {\n            pcVar6 = xstrdup("");\n            url_00->dir = pcVar6;\n            pcVar10 = xstrdup(pcVar10);\n            url_00->file = pcVar10;\n          }\n          else {\n            pcVar10 = strdupdelim(pcVar10,pcVar6);\n            url_00->dir = pcVar10;\n            pcVar10 = xstrdup(pcVar6 + 1);\n            url_00->file = pcVar10;\n          }\n          url_unescape(url_00->dir);\n          url_unescape(url_00->file);\n          pcVar10 = url_00->host;\n          cVar4 = *pcVar10;\n          if (cVar4 == '\0') {\n            bVar12 = 0;\n          }\n          else {\n            bVar12 = 0;\n            do {\n              if ((int)cVar4 - 0x41U < 0x1a) {\n                *pcVar10 = cVar4 + ' ';\n                bVar12 = 1;\n              }\n              pcVar10 = pcVar10 + 1;\n              cVar4 = *pcVar10;\n            } while (cVar4 != '\0');\n          }\n          pcVar10 = url_00->host;\n          pcVar6 = strchr(pcVar10,0x25);\n          if (pcVar6 != (char *)0x0) {\n            url_unescape(pcVar10);\n            pcVar10 = url_00->host;\n            cVar4 = *pcVar10;\n            pcVar6 = pcVar10;\n            while (cVar4 != '\0') {\n              if ((-1 < cVar4) && ((cVar4 < ' ' || (cVar4 == '\x7f')))) {\n                url_free(url_00);\n                iVar11 = 3;\n                goto LAB_00137c65;\n              }\n              pcVar6 = pcVar6 + 1;\n              cVar4 = *pcVar6;\n            }\n            bVar12 = iri != (iri *)0x0 & opt.enable_iri;\n            if (bVar12 == 0) {\n              bVar12 = 1;\n            }\n            else {\n              pcVar10 = idn_encode(iri,pcVar10);\n              if (pcVar10 != (char *)0x0) {\n                free(url_00->host);\n                url_00->host = pcVar10;\n              }\n            }\n          }\n          if (local_70 != (char *)0x0) {\n            pcVar10 = strdupdelim(local_70,local_60);\n            url_00->params = pcVar10;\n          }\n          if (local_b0 != (char *)0x0) {\n            pcVar10 = strdupdelim(local_b0,local_58);\n            url_00->query = pcVar10;\n          }\n          if (local_68 != (char *)0x0) {\n            pcVar10 = strdupdelim(local_68,local_50);\n            url_00->fragment = pcVar10;\n          }\n          error = (int *)url_00;\n          if ((((opt.enable_iri == false) && (pcVar5 == pcVar8)) &&\n              (url_00->fragment == (char *)0x0)) && ((local_88 != local_80 && (bVar12 == 0)))) {\n            if (local_b8 == url) {\n              pcVar8 = xstrdup(url);\n              url_00->url = pcVar8;\n            }\n            else {\n              url_00->url = local_b8;\n            }\n          }\n          else {\n            pcVar8 = url_string(url_00,URL_AUTH_SHOW);\n            url_00->url = pcVar8;\n            if (local_b8 != url) {\n              free(local_b8);\n            }\n          }\n          goto LAB_00137c95;\n        }" if (parenthesized_expression "(pcVar8 == pcVar10)" ( (binary_expression "pcVar8 == pcVar10" identifier == identifier) )) (compound_statement "{\n          pcVar5 = (char *)0x0;\n          pcVar8 = (char *)0x0;\nLAB_001379c6:\n          url_00 = (url *)xcalloc(1,0x60);\n          url_00->scheme = scheme;\n          pcVar10 = strdupdelim(local_a8,local_a0);\n          url_00->host = pcVar10;\n          url_00->port = local_74;\n          url_00->user = pcVar8;\n          url_00->passwd = pcVar5;\n          pcVar8 = strdupdelim(local_88,local_80);\n          url_00->path = pcVar8;\n          uVar9 = 0xffffffffffffffff;\n          pcVar10 = pcVar8;\n          do {\n            if (uVar9 == 0) break;\n            uVar9 = uVar9 - 1;\n            cVar4 = *pcVar10;\n            pcVar10 = pcVar10 + (ulong)bVar12 * -2 + 1;\n          } while (cVar4 != '\0');\n          pcVar10 = pcVar8 + (~uVar9 - 1);\n          pcVar5 = pcVar8;\n          if (pcVar8 < pcVar10) {\n            pcVar7 = pcVar8;\n            pcVar6 = pcVar8;\n            do {\n              cVar4 = *pcVar8;\n              if (cVar4 == '.') {\n                cVar1 = pcVar8[1];\n                if ((cVar1 == '/') || (cVar1 == '\0')) {\n                  pcVar8 = pcVar8 + 2;\n                }\n                else {\n                  if ((cVar1 != '.') || ((pcVar8[2] != '/' && (pcVar8[2] != '\0'))))\n                  goto LAB_00137e1d;\n                  if (pcVar6 < pcVar7) {\n                    pcVar5 = pcVar7 + -1;\n                    if (pcVar6 < pcVar5) {\n                      cVar4 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar4 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar4 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar5 = pcVar7;\n                    if (scheme - SCHEME_FTP < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }\n                  pcVar8 = pcVar8 + 3;\n                  pcVar7 = pcVar5;\n                }\n              }\n              else {\nLAB_00137e1d:\n                if (pcVar7 == pcVar8) {\n                  pcVar5 = pcVar7;\n                  if (pcVar10 <= pcVar7) break;\n                  cVar4 = *pcVar7;\n                  while (cVar4 != '/') {\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar10;\n                    if (pcVar10 == pcVar5) goto LAB_00137d7b;\n                    cVar4 = *pcVar5;\n                  }\n                  pcVar8 = pcVar5 + 1;\n                  pcVar7 = pcVar5 + 1;\n                }\n                else {\n                  pcVar5 = pcVar8;\n                  if (pcVar10 <= pcVar8) break;\n                  while (cVar4 != '/') {\n                    pcVar8 = pcVar8 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar4;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar10;\n                    if (pcVar10 == pcVar8) goto LAB_00137d7b;\n                    cVar4 = *pcVar8;\n                  }\n                  *pcVar7 = *pcVar8;\n                  pcVar8 = pcVar8 + 1;\n                  pcVar7 = pcVar7 + 1;\n                }\n              }\n              pcVar5 = pcVar8;\n            } while (pcVar8 < pcVar10);\nLAB_00137d7b:\n            pcVar8 = pcVar7;\n            if (pcVar5 != pcVar7) {\n              *pcVar7 = '\0';\n            }\n          }\n          pcVar10 = url_00->path;\n          pcVar6 = strrchr(pcVar10,0x2f);\n          if (pcVar6 == (char *)0x0) {\n            pcVar6 = xstrdup("");\n            url_00->dir = pcVar6;\n            pcVar10 = xstrdup(pcVar10);\n            url_00->file = pcVar10;\n          }\n          else {\n            pcVar10 = strdupdelim(pcVar10,pcVar6);\n            url_00->dir = pcVar10;\n            pcVar10 = xstrdup(pcVar6 + 1);\n            url_00->file = pcVar10;\n          }\n          url_unescape(url_00->dir);\n          url_unescape(url_00->file);\n          pcVar10 = url_00->host;\n          cVar4 = *pcVar10;\n          if (cVar4 == '\0') {\n            bVar12 = 0;\n          }\n          else {\n            bVar12 = 0;\n            do {\n              if ((int)cVar4 - 0x41U < 0x1a) {\n                *pcVar10 = cVar4 + ' ';\n                bVar12 = 1;\n              }\n              pcVar10 = pcVar10 + 1;\n              cVar4 = *pcVar10;\n            } while (cVar4 != '\0');\n          }\n          pcVar10 = url_00->host;\n          pcVar6 = strchr(pcVar10,0x25);\n          if (pcVar6 != (char *)0x0) {\n            url_unescape(pcVar10);\n            pcVar10 = url_00->host;\n            cVar4 = *pcVar10;\n            pcVar6 = pcVar10;\n            while (cVar4 != '\0') {\n              if ((-1 < cVar4) && ((cVar4 < ' ' || (cVar4 == '\x7f')))) {\n                url_free(url_00);\n                iVar11 = 3;\n                goto LAB_00137c65;\n              }\n              pcVar6 = pcVar6 + 1;\n              cVar4 = *pcVar6;\n            }\n            bVar12 = iri != (iri *)0x0 & opt.enable_iri;\n            if (bVar12 == 0) {\n              bVar12 = 1;\n            }\n            else {\n              pcVar10 = idn_encode(iri,pcVar10);\n              if (pcVar10 != (char *)0x0) {\n                free(url_00->host);\n                url_00->host = pcVar10;\n              }\n            }\n          }\n          if (local_70 != (char *)0x0) {\n            pcVar10 = strdupdelim(local_70,local_60);\n            url_00->params = pcVar10;\n          }\n          if (local_b0 != (char *)0x0) {\n            pcVar10 = strdupdelim(local_b0,local_58);\n            url_00->query = pcVar10;\n          }\n          if (local_68 != (char *)0x0) {\n            pcVar10 = strdupdelim(local_68,local_50);\n            url_00->fragment = pcVar10;\n          }\n          error = (int *)url_00;\n          if ((((opt.enable_iri == false) && (pcVar5 == pcVar8)) &&\n              (url_00->fragment == (char *)0x0)) && ((local_88 != local_80 && (bVar12 == 0)))) {\n            if (local_b8 == url) {\n              pcVar8 = xstrdup(url);\n              url_00->url = pcVar8;\n            }\n            else {\n              url_00->url = local_b8;\n            }\n          }\n          else {\n            pcVar8 = url_string(url_00,URL_AUTH_SHOW);\n            url_00->url = pcVar8;\n            if (local_b8 != url) {\n              free(local_b8);\n            }\n          }\n          goto LAB_00137c95;\n        }" { (expression_statement "pcVar5 = (char *)0x0;" (assignment_expression "pcVar5 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar8 = (char *)0x0;" (assignment_expression "pcVar8 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_001379c6:\n          url_00 = (url *)xcalloc(1,0x60);" statement_identifier : (expression_statement "url_00 = (url *)xcalloc(1,0x60);" (assignment_expression "url_00 = (url *)xcalloc(1,0x60)" identifier = (cast_expression "(url *)xcalloc(1,0x60)" ( (type_descriptor "url *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xcalloc(1,0x60)" identifier (argument_list "(1,0x60)" ( number_literal , number_literal ))))) ;)) (expression_statement "url_00->scheme = scheme;" (assignment_expression "url_00->scheme = scheme" (field_expression "url_00->scheme" identifier -> field_identifier) = identifier) ;) (expression_statement "pcVar10 = strdupdelim(local_a8,local_a0);" (assignment_expression "pcVar10 = strdupdelim(local_a8,local_a0)" identifier = (call_expression "strdupdelim(local_a8,local_a0)" identifier (argument_list "(local_a8,local_a0)" ( identifier , identifier )))) ;) (expression_statement "url_00->host = pcVar10;" (assignment_expression "url_00->host = pcVar10" (field_expression "url_00->host" identifier -> field_identifier) = identifier) ;) (expression_statement "url_00->port = local_74;" (assignment_expression "url_00->port = local_74" (field_expression "url_00->port" identifier -> field_identifier) = identifier) ;) (expression_statement "url_00->user = pcVar8;" (assignment_expression "url_00->user = pcVar8" (field_expression "url_00->user" identifier -> field_identifier) = identifier) ;) (expression_statement "url_00->passwd = pcVar5;" (assignment_expression "url_00->passwd = pcVar5" (field_expression "url_00->passwd" identifier -> field_identifier) = identifier) ;) (expression_statement "pcVar8 = strdupdelim(local_88,local_80);" (assignment_expression "pcVar8 = strdupdelim(local_88,local_80)" identifier = (call_expression "strdupdelim(local_88,local_80)" identifier (argument_list "(local_88,local_80)" ( identifier , identifier )))) ;) (expression_statement "url_00->path = pcVar8;" (assignment_expression "url_00->path = pcVar8" (field_expression "url_00->path" identifier -> field_identifier) = identifier) ;) (expression_statement "uVar9 = 0xffffffffffffffff;" (assignment_expression "uVar9 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar10 = pcVar8;" (assignment_expression "pcVar10 = pcVar8" identifier = identifier) ;) (do_statement "do {\n            if (uVar9 == 0) break;\n            uVar9 = uVar9 - 1;\n            cVar4 = *pcVar10;\n            pcVar10 = pcVar10 + (ulong)bVar12 * -2 + 1;\n          } while (cVar4 != '\0');" do (compound_statement "{\n            if (uVar9 == 0) break;\n            uVar9 = uVar9 - 1;\n            cVar4 = *pcVar10;\n            pcVar10 = pcVar10 + (ulong)bVar12 * -2 + 1;\n          }" { (if_statement "if (uVar9 == 0) break;" if (parenthesized_expression "(uVar9 == 0)" ( (binary_expression "uVar9 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar9 = uVar9 - 1;" (assignment_expression "uVar9 = uVar9 - 1" identifier = (binary_expression "uVar9 - 1" identifier - number_literal)) ;) (expression_statement "cVar4 = *pcVar10;" (assignment_expression "cVar4 = *pcVar10" identifier = (pointer_expression "*pcVar10" * identifier)) ;) (expression_statement "pcVar10 = pcVar10 + (ulong)bVar12 * -2 + 1;" (assignment_expression "pcVar10 = pcVar10 + (ulong)bVar12 * -2 + 1" identifier = (binary_expression "pcVar10 + (ulong)bVar12 * -2 + 1" (binary_expression "pcVar10 + (ulong)bVar12 * -2" identifier + (binary_expression "(ulong)bVar12 * -2" (cast_expression "(ulong)bVar12" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar4 != '\0')" ( (binary_expression "cVar4 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "pcVar10 = pcVar8 + (~uVar9 - 1);" (assignment_expression "pcVar10 = pcVar8 + (~uVar9 - 1)" identifier = (binary_expression "pcVar8 + (~uVar9 - 1)" identifier + (parenthesized_expression "(~uVar9 - 1)" ( (binary_expression "~uVar9 - 1" (unary_expression "~uVar9" ~ identifier) - number_literal) )))) ;) (expression_statement "pcVar5 = pcVar8;" (assignment_expression "pcVar5 = pcVar8" identifier = identifier) ;) (if_statement "if (pcVar8 < pcVar10) {\n            pcVar7 = pcVar8;\n            pcVar6 = pcVar8;\n            do {\n              cVar4 = *pcVar8;\n              if (cVar4 == '.') {\n                cVar1 = pcVar8[1];\n                if ((cVar1 == '/') || (cVar1 == '\0')) {\n                  pcVar8 = pcVar8 + 2;\n                }\n                else {\n                  if ((cVar1 != '.') || ((pcVar8[2] != '/' && (pcVar8[2] != '\0'))))\n                  goto LAB_00137e1d;\n                  if (pcVar6 < pcVar7) {\n                    pcVar5 = pcVar7 + -1;\n                    if (pcVar6 < pcVar5) {\n                      cVar4 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar4 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar4 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar5 = pcVar7;\n                    if (scheme - SCHEME_FTP < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }\n                  pcVar8 = pcVar8 + 3;\n                  pcVar7 = pcVar5;\n                }\n              }\n              else {\nLAB_00137e1d:\n                if (pcVar7 == pcVar8) {\n                  pcVar5 = pcVar7;\n                  if (pcVar10 <= pcVar7) break;\n                  cVar4 = *pcVar7;\n                  while (cVar4 != '/') {\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar10;\n                    if (pcVar10 == pcVar5) goto LAB_00137d7b;\n                    cVar4 = *pcVar5;\n                  }\n                  pcVar8 = pcVar5 + 1;\n                  pcVar7 = pcVar5 + 1;\n                }\n                else {\n                  pcVar5 = pcVar8;\n                  if (pcVar10 <= pcVar8) break;\n                  while (cVar4 != '/') {\n                    pcVar8 = pcVar8 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar4;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar10;\n                    if (pcVar10 == pcVar8) goto LAB_00137d7b;\n                    cVar4 = *pcVar8;\n                  }\n                  *pcVar7 = *pcVar8;\n                  pcVar8 = pcVar8 + 1;\n                  pcVar7 = pcVar7 + 1;\n                }\n              }\n              pcVar5 = pcVar8;\n            } while (pcVar8 < pcVar10);\nLAB_00137d7b:\n            pcVar8 = pcVar7;\n            if (pcVar5 != pcVar7) {\n              *pcVar7 = '\0';\n            }\n          }" if (parenthesized_expression "(pcVar8 < pcVar10)" ( (binary_expression "pcVar8 < pcVar10" identifier < identifier) )) (compound_statement "{\n            pcVar7 = pcVar8;\n            pcVar6 = pcVar8;\n            do {\n              cVar4 = *pcVar8;\n              if (cVar4 == '.') {\n                cVar1 = pcVar8[1];\n                if ((cVar1 == '/') || (cVar1 == '\0')) {\n                  pcVar8 = pcVar8 + 2;\n                }\n                else {\n                  if ((cVar1 != '.') || ((pcVar8[2] != '/' && (pcVar8[2] != '\0'))))\n                  goto LAB_00137e1d;\n                  if (pcVar6 < pcVar7) {\n                    pcVar5 = pcVar7 + -1;\n                    if (pcVar6 < pcVar5) {\n                      cVar4 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar4 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar4 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar5 = pcVar7;\n                    if (scheme - SCHEME_FTP < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }\n                  pcVar8 = pcVar8 + 3;\n                  pcVar7 = pcVar5;\n                }\n              }\n              else {\nLAB_00137e1d:\n                if (pcVar7 == pcVar8) {\n                  pcVar5 = pcVar7;\n                  if (pcVar10 <= pcVar7) break;\n                  cVar4 = *pcVar7;\n                  while (cVar4 != '/') {\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar10;\n                    if (pcVar10 == pcVar5) goto LAB_00137d7b;\n                    cVar4 = *pcVar5;\n                  }\n                  pcVar8 = pcVar5 + 1;\n                  pcVar7 = pcVar5 + 1;\n                }\n                else {\n                  pcVar5 = pcVar8;\n                  if (pcVar10 <= pcVar8) break;\n                  while (cVar4 != '/') {\n                    pcVar8 = pcVar8 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar4;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar10;\n                    if (pcVar10 == pcVar8) goto LAB_00137d7b;\n                    cVar4 = *pcVar8;\n                  }\n                  *pcVar7 = *pcVar8;\n                  pcVar8 = pcVar8 + 1;\n                  pcVar7 = pcVar7 + 1;\n                }\n              }\n              pcVar5 = pcVar8;\n            } while (pcVar8 < pcVar10);\nLAB_00137d7b:\n            pcVar8 = pcVar7;\n            if (pcVar5 != pcVar7) {\n              *pcVar7 = '\0';\n            }\n          }" { (expression_statement "pcVar7 = pcVar8;" (assignment_expression "pcVar7 = pcVar8" identifier = identifier) ;) (expression_statement "pcVar6 = pcVar8;" (assignment_expression "pcVar6 = pcVar8" identifier = identifier) ;) (do_statement "do {\n              cVar4 = *pcVar8;\n              if (cVar4 == '.') {\n                cVar1 = pcVar8[1];\n                if ((cVar1 == '/') || (cVar1 == '\0')) {\n                  pcVar8 = pcVar8 + 2;\n                }\n                else {\n                  if ((cVar1 != '.') || ((pcVar8[2] != '/' && (pcVar8[2] != '\0'))))\n                  goto LAB_00137e1d;\n                  if (pcVar6 < pcVar7) {\n                    pcVar5 = pcVar7 + -1;\n                    if (pcVar6 < pcVar5) {\n                      cVar4 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar4 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar4 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar5 = pcVar7;\n                    if (scheme - SCHEME_FTP < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }\n                  pcVar8 = pcVar8 + 3;\n                  pcVar7 = pcVar5;\n                }\n              }\n              else {\nLAB_00137e1d:\n                if (pcVar7 == pcVar8) {\n                  pcVar5 = pcVar7;\n                  if (pcVar10 <= pcVar7) break;\n                  cVar4 = *pcVar7;\n                  while (cVar4 != '/') {\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar10;\n                    if (pcVar10 == pcVar5) goto LAB_00137d7b;\n                    cVar4 = *pcVar5;\n                  }\n                  pcVar8 = pcVar5 + 1;\n                  pcVar7 = pcVar5 + 1;\n                }\n                else {\n                  pcVar5 = pcVar8;\n                  if (pcVar10 <= pcVar8) break;\n                  while (cVar4 != '/') {\n                    pcVar8 = pcVar8 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar4;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar10;\n                    if (pcVar10 == pcVar8) goto LAB_00137d7b;\n                    cVar4 = *pcVar8;\n                  }\n                  *pcVar7 = *pcVar8;\n                  pcVar8 = pcVar8 + 1;\n                  pcVar7 = pcVar7 + 1;\n                }\n              }\n              pcVar5 = pcVar8;\n            } while (pcVar8 < pcVar10);" do (compound_statement "{\n              cVar4 = *pcVar8;\n              if (cVar4 == '.') {\n                cVar1 = pcVar8[1];\n                if ((cVar1 == '/') || (cVar1 == '\0')) {\n                  pcVar8 = pcVar8 + 2;\n                }\n                else {\n                  if ((cVar1 != '.') || ((pcVar8[2] != '/' && (pcVar8[2] != '\0'))))\n                  goto LAB_00137e1d;\n                  if (pcVar6 < pcVar7) {\n                    pcVar5 = pcVar7 + -1;\n                    if (pcVar6 < pcVar5) {\n                      cVar4 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar4 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar4 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar5 = pcVar7;\n                    if (scheme - SCHEME_FTP < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }\n                  pcVar8 = pcVar8 + 3;\n                  pcVar7 = pcVar5;\n                }\n              }\n              else {\nLAB_00137e1d:\n                if (pcVar7 == pcVar8) {\n                  pcVar5 = pcVar7;\n                  if (pcVar10 <= pcVar7) break;\n                  cVar4 = *pcVar7;\n                  while (cVar4 != '/') {\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar10;\n                    if (pcVar10 == pcVar5) goto LAB_00137d7b;\n                    cVar4 = *pcVar5;\n                  }\n                  pcVar8 = pcVar5 + 1;\n                  pcVar7 = pcVar5 + 1;\n                }\n                else {\n                  pcVar5 = pcVar8;\n                  if (pcVar10 <= pcVar8) break;\n                  while (cVar4 != '/') {\n                    pcVar8 = pcVar8 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar4;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar10;\n                    if (pcVar10 == pcVar8) goto LAB_00137d7b;\n                    cVar4 = *pcVar8;\n                  }\n                  *pcVar7 = *pcVar8;\n                  pcVar8 = pcVar8 + 1;\n                  pcVar7 = pcVar7 + 1;\n                }\n              }\n              pcVar5 = pcVar8;\n            }" { (expression_statement "cVar4 = *pcVar8;" (assignment_expression "cVar4 = *pcVar8" identifier = (pointer_expression "*pcVar8" * identifier)) ;) (if_statement "if (cVar4 == '.') {\n                cVar1 = pcVar8[1];\n                if ((cVar1 == '/') || (cVar1 == '\0')) {\n                  pcVar8 = pcVar8 + 2;\n                }\n                else {\n                  if ((cVar1 != '.') || ((pcVar8[2] != '/' && (pcVar8[2] != '\0'))))\n                  goto LAB_00137e1d;\n                  if (pcVar6 < pcVar7) {\n                    pcVar5 = pcVar7 + -1;\n                    if (pcVar6 < pcVar5) {\n                      cVar4 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar4 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar4 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar5 = pcVar7;\n                    if (scheme - SCHEME_FTP < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }\n                  pcVar8 = pcVar8 + 3;\n                  pcVar7 = pcVar5;\n                }\n              }\n              else {\nLAB_00137e1d:\n                if (pcVar7 == pcVar8) {\n                  pcVar5 = pcVar7;\n                  if (pcVar10 <= pcVar7) break;\n                  cVar4 = *pcVar7;\n                  while (cVar4 != '/') {\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar10;\n                    if (pcVar10 == pcVar5) goto LAB_00137d7b;\n                    cVar4 = *pcVar5;\n                  }\n                  pcVar8 = pcVar5 + 1;\n                  pcVar7 = pcVar5 + 1;\n                }\n                else {\n                  pcVar5 = pcVar8;\n                  if (pcVar10 <= pcVar8) break;\n                  while (cVar4 != '/') {\n                    pcVar8 = pcVar8 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar4;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar10;\n                    if (pcVar10 == pcVar8) goto LAB_00137d7b;\n                    cVar4 = *pcVar8;\n                  }\n                  *pcVar7 = *pcVar8;\n                  pcVar8 = pcVar8 + 1;\n                  pcVar7 = pcVar7 + 1;\n                }\n              }" if (parenthesized_expression "(cVar4 == '.')" ( (binary_expression "cVar4 == '.'" identifier == (char_literal "'.'" ' character ')) )) (compound_statement "{\n                cVar1 = pcVar8[1];\n                if ((cVar1 == '/') || (cVar1 == '\0')) {\n                  pcVar8 = pcVar8 + 2;\n                }\n                else {\n                  if ((cVar1 != '.') || ((pcVar8[2] != '/' && (pcVar8[2] != '\0'))))\n                  goto LAB_00137e1d;\n                  if (pcVar6 < pcVar7) {\n                    pcVar5 = pcVar7 + -1;\n                    if (pcVar6 < pcVar5) {\n                      cVar4 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar4 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar4 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar5 = pcVar7;\n                    if (scheme - SCHEME_FTP < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }\n                  pcVar8 = pcVar8 + 3;\n                  pcVar7 = pcVar5;\n                }\n              }" { (expression_statement "cVar1 = pcVar8[1];" (assignment_expression "cVar1 = pcVar8[1]" identifier = (subscript_expression "pcVar8[1]" identifier [ number_literal ])) ;) (if_statement "if ((cVar1 == '/') || (cVar1 == '\0')) {\n                  pcVar8 = pcVar8 + 2;\n                }\n                else {\n                  if ((cVar1 != '.') || ((pcVar8[2] != '/' && (pcVar8[2] != '\0'))))\n                  goto LAB_00137e1d;\n                  if (pcVar6 < pcVar7) {\n                    pcVar5 = pcVar7 + -1;\n                    if (pcVar6 < pcVar5) {\n                      cVar4 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar4 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar4 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar5 = pcVar7;\n                    if (scheme - SCHEME_FTP < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }\n                  pcVar8 = pcVar8 + 3;\n                  pcVar7 = pcVar5;\n                }" if (parenthesized_expression "((cVar1 == '/') || (cVar1 == '\0'))" ( (binary_expression "(cVar1 == '/') || (cVar1 == '\0')" (parenthesized_expression "(cVar1 == '/')" ( (binary_expression "cVar1 == '/'" identifier == (char_literal "'/'" ' character ')) )) || (parenthesized_expression "(cVar1 == '\0')" ( (binary_expression "cVar1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n                  pcVar8 = pcVar8 + 2;\n                }" { (expression_statement "pcVar8 = pcVar8 + 2;" (assignment_expression "pcVar8 = pcVar8 + 2" identifier = (binary_expression "pcVar8 + 2" identifier + number_literal)) ;) }) (else_clause "else {\n                  if ((cVar1 != '.') || ((pcVar8[2] != '/' && (pcVar8[2] != '\0'))))\n                  goto LAB_00137e1d;\n                  if (pcVar6 < pcVar7) {\n                    pcVar5 = pcVar7 + -1;\n                    if (pcVar6 < pcVar5) {\n                      cVar4 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar4 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar4 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar5 = pcVar7;\n                    if (scheme - SCHEME_FTP < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }\n                  pcVar8 = pcVar8 + 3;\n                  pcVar7 = pcVar5;\n                }" else (compound_statement "{\n                  if ((cVar1 != '.') || ((pcVar8[2] != '/' && (pcVar8[2] != '\0'))))\n                  goto LAB_00137e1d;\n                  if (pcVar6 < pcVar7) {\n                    pcVar5 = pcVar7 + -1;\n                    if (pcVar6 < pcVar5) {\n                      cVar4 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar4 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar4 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar5 = pcVar7;\n                    if (scheme - SCHEME_FTP < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }\n                  pcVar8 = pcVar8 + 3;\n                  pcVar7 = pcVar5;\n                }" { (if_statement "if ((cVar1 != '.') || ((pcVar8[2] != '/' && (pcVar8[2] != '\0'))))\n                  goto LAB_00137e1d;" if (parenthesized_expression "((cVar1 != '.') || ((pcVar8[2] != '/' && (pcVar8[2] != '\0'))))" ( (binary_expression "(cVar1 != '.') || ((pcVar8[2] != '/' && (pcVar8[2] != '\0')))" (parenthesized_expression "(cVar1 != '.')" ( (binary_expression "cVar1 != '.'" identifier != (char_literal "'.'" ' character ')) )) || (parenthesized_expression "((pcVar8[2] != '/' && (pcVar8[2] != '\0')))" ( (parenthesized_expression "(pcVar8[2] != '/' && (pcVar8[2] != '\0'))" ( (binary_expression "pcVar8[2] != '/' && (pcVar8[2] != '\0')" (binary_expression "pcVar8[2] != '/'" (subscript_expression "pcVar8[2]" identifier [ number_literal ]) != (char_literal "'/'" ' character ')) && (parenthesized_expression "(pcVar8[2] != '\0')" ( (binary_expression "pcVar8[2] != '\0'" (subscript_expression "pcVar8[2]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) ))) )) ))) )) (goto_statement "goto LAB_00137e1d;" goto statement_identifier ;)) (if_statement "if (pcVar6 < pcVar7) {\n                    pcVar5 = pcVar7 + -1;\n                    if (pcVar6 < pcVar5) {\n                      cVar4 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar4 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar4 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar5 = pcVar7;\n                    if (scheme - SCHEME_FTP < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }" if (parenthesized_expression "(pcVar6 < pcVar7)" ( (binary_expression "pcVar6 < pcVar7" identifier < identifier) )) (compound_statement "{\n                    pcVar5 = pcVar7 + -1;\n                    if (pcVar6 < pcVar5) {\n                      cVar4 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar4 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar4 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }\n                  }" { (expression_statement "pcVar5 = pcVar7 + -1;" (assignment_expression "pcVar5 = pcVar7 + -1" identifier = (binary_expression "pcVar7 + -1" identifier + number_literal)) ;) (if_statement "if (pcVar6 < pcVar5) {\n                      cVar4 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar4 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar4 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }" if (parenthesized_expression "(pcVar6 < pcVar5)" ( (binary_expression "pcVar6 < pcVar5" identifier < identifier) )) (compound_statement "{\n                      cVar4 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar4 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar4 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }" { (expression_statement "cVar4 = pcVar7[-2];" (assignment_expression "cVar4 = pcVar7[-2]" identifier = (subscript_expression "pcVar7[-2]" identifier [ number_literal ])) ;) (expression_statement "pcVar7 = pcVar5;" (assignment_expression "pcVar7 = pcVar5" identifier = identifier) ;) (while_statement "while ((pcVar5 = pcVar7, cVar4 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar4 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }" while (parenthesized_expression "((pcVar5 = pcVar7, cVar4 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5)))" ( (parenthesized_expression "(pcVar5 = pcVar7, cVar4 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))" ( (comma_expression "pcVar5 = pcVar7, cVar4 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5)" (assignment_expression "pcVar5 = pcVar7" identifier = identifier) , (binary_expression "cVar4 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5)" (binary_expression "cVar4 != '/'" identifier != (char_literal "'/'" ' character ')) && (parenthesized_expression "(pcVar5 = pcVar7 + -1, pcVar6 != pcVar5)" ( (comma_expression "pcVar5 = pcVar7 + -1, pcVar6 != pcVar5" (assignment_expression "pcVar5 = pcVar7 + -1" identifier = (binary_expression "pcVar7 + -1" identifier + number_literal)) , (binary_expression "pcVar6 != pcVar5" identifier != identifier)) )))) )) )) (compound_statement "{\n                        cVar4 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }" { (expression_statement "cVar4 = pcVar7[-2];" (assignment_expression "cVar4 = pcVar7[-2]" identifier = (subscript_expression "pcVar7[-2]" identifier [ number_literal ])) ;) (expression_statement "pcVar7 = pcVar5;" (assignment_expression "pcVar7 = pcVar5" identifier = identifier) ;) })) })) }) (else_clause "else {\n                    pcVar5 = pcVar7;\n                    if (scheme - SCHEME_FTP < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }" else (compound_statement "{\n                    pcVar5 = pcVar7;\n                    if (scheme - SCHEME_FTP < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }" { (expression_statement "pcVar5 = pcVar7;" (assignment_expression "pcVar5 = pcVar7" identifier = identifier) ;) (if_statement "if (scheme - SCHEME_FTP < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }" if (parenthesized_expression "(scheme - SCHEME_FTP < 2)" ( (binary_expression "scheme - SCHEME_FTP < 2" (binary_expression "scheme - SCHEME_FTP" identifier - identifier) < number_literal) )) (compound_statement "{\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }" { (expression_statement "pcVar6 = pcVar7 + 3;" (assignment_expression "pcVar6 = pcVar7 + 3" identifier = (binary_expression "pcVar7 + 3" identifier + number_literal)) ;) (goto_statement "goto LAB_00137e1d;" goto statement_identifier ;) })) }))) (expression_statement "pcVar8 = pcVar8 + 3;" (assignment_expression "pcVar8 = pcVar8 + 3" identifier = (binary_expression "pcVar8 + 3" identifier + number_literal)) ;) (expression_statement "pcVar7 = pcVar5;" (assignment_expression "pcVar7 = pcVar5" identifier = identifier) ;) }))) }) (else_clause "else {\nLAB_00137e1d:\n                if (pcVar7 == pcVar8) {\n                  pcVar5 = pcVar7;\n                  if (pcVar10 <= pcVar7) break;\n                  cVar4 = *pcVar7;\n                  while (cVar4 != '/') {\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar10;\n                    if (pcVar10 == pcVar5) goto LAB_00137d7b;\n                    cVar4 = *pcVar5;\n                  }\n                  pcVar8 = pcVar5 + 1;\n                  pcVar7 = pcVar5 + 1;\n                }\n                else {\n                  pcVar5 = pcVar8;\n                  if (pcVar10 <= pcVar8) break;\n                  while (cVar4 != '/') {\n                    pcVar8 = pcVar8 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar4;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar10;\n                    if (pcVar10 == pcVar8) goto LAB_00137d7b;\n                    cVar4 = *pcVar8;\n                  }\n                  *pcVar7 = *pcVar8;\n                  pcVar8 = pcVar8 + 1;\n                  pcVar7 = pcVar7 + 1;\n                }\n              }" else (compound_statement "{\nLAB_00137e1d:\n                if (pcVar7 == pcVar8) {\n                  pcVar5 = pcVar7;\n                  if (pcVar10 <= pcVar7) break;\n                  cVar4 = *pcVar7;\n                  while (cVar4 != '/') {\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar10;\n                    if (pcVar10 == pcVar5) goto LAB_00137d7b;\n                    cVar4 = *pcVar5;\n                  }\n                  pcVar8 = pcVar5 + 1;\n                  pcVar7 = pcVar5 + 1;\n                }\n                else {\n                  pcVar5 = pcVar8;\n                  if (pcVar10 <= pcVar8) break;\n                  while (cVar4 != '/') {\n                    pcVar8 = pcVar8 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar4;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar10;\n                    if (pcVar10 == pcVar8) goto LAB_00137d7b;\n                    cVar4 = *pcVar8;\n                  }\n                  *pcVar7 = *pcVar8;\n                  pcVar8 = pcVar8 + 1;\n                  pcVar7 = pcVar7 + 1;\n                }\n              }" { (labeled_statement "LAB_00137e1d:\n                if (pcVar7 == pcVar8) {\n                  pcVar5 = pcVar7;\n                  if (pcVar10 <= pcVar7) break;\n                  cVar4 = *pcVar7;\n                  while (cVar4 != '/') {\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar10;\n                    if (pcVar10 == pcVar5) goto LAB_00137d7b;\n                    cVar4 = *pcVar5;\n                  }\n                  pcVar8 = pcVar5 + 1;\n                  pcVar7 = pcVar5 + 1;\n                }\n                else {\n                  pcVar5 = pcVar8;\n                  if (pcVar10 <= pcVar8) break;\n                  while (cVar4 != '/') {\n                    pcVar8 = pcVar8 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar4;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar10;\n                    if (pcVar10 == pcVar8) goto LAB_00137d7b;\n                    cVar4 = *pcVar8;\n                  }\n                  *pcVar7 = *pcVar8;\n                  pcVar8 = pcVar8 + 1;\n                  pcVar7 = pcVar7 + 1;\n                }" statement_identifier : (if_statement "if (pcVar7 == pcVar8) {\n                  pcVar5 = pcVar7;\n                  if (pcVar10 <= pcVar7) break;\n                  cVar4 = *pcVar7;\n                  while (cVar4 != '/') {\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar10;\n                    if (pcVar10 == pcVar5) goto LAB_00137d7b;\n                    cVar4 = *pcVar5;\n                  }\n                  pcVar8 = pcVar5 + 1;\n                  pcVar7 = pcVar5 + 1;\n                }\n                else {\n                  pcVar5 = pcVar8;\n                  if (pcVar10 <= pcVar8) break;\n                  while (cVar4 != '/') {\n                    pcVar8 = pcVar8 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar4;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar10;\n                    if (pcVar10 == pcVar8) goto LAB_00137d7b;\n                    cVar4 = *pcVar8;\n                  }\n                  *pcVar7 = *pcVar8;\n                  pcVar8 = pcVar8 + 1;\n                  pcVar7 = pcVar7 + 1;\n                }" if (parenthesized_expression "(pcVar7 == pcVar8)" ( (binary_expression "pcVar7 == pcVar8" identifier == identifier) )) (compound_statement "{\n                  pcVar5 = pcVar7;\n                  if (pcVar10 <= pcVar7) break;\n                  cVar4 = *pcVar7;\n                  while (cVar4 != '/') {\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar10;\n                    if (pcVar10 == pcVar5) goto LAB_00137d7b;\n                    cVar4 = *pcVar5;\n                  }\n                  pcVar8 = pcVar5 + 1;\n                  pcVar7 = pcVar5 + 1;\n                }" { (expression_statement "pcVar5 = pcVar7;" (assignment_expression "pcVar5 = pcVar7" identifier = identifier) ;) (if_statement "if (pcVar10 <= pcVar7) break;" if (parenthesized_expression "(pcVar10 <= pcVar7)" ( (binary_expression "pcVar10 <= pcVar7" identifier <= identifier) )) (break_statement "break;" break ;)) (expression_statement "cVar4 = *pcVar7;" (assignment_expression "cVar4 = *pcVar7" identifier = (pointer_expression "*pcVar7" * identifier)) ;) (while_statement "while (cVar4 != '/') {\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar10;\n                    if (pcVar10 == pcVar5) goto LAB_00137d7b;\n                    cVar4 = *pcVar5;\n                  }" while (parenthesized_expression "(cVar4 != '/')" ( (binary_expression "cVar4 != '/'" identifier != (char_literal "'/'" ' character ')) )) (compound_statement "{\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar10;\n                    if (pcVar10 == pcVar5) goto LAB_00137d7b;\n                    cVar4 = *pcVar5;\n                  }" { (expression_statement "pcVar5 = pcVar5 + 1;" (assignment_expression "pcVar5 = pcVar5 + 1" identifier = (binary_expression "pcVar5 + 1" identifier + number_literal)) ;) (expression_statement "pcVar7 = pcVar10;" (assignment_expression "pcVar7 = pcVar10" identifier = identifier) ;) (if_statement "if (pcVar10 == pcVar5) goto LAB_00137d7b;" if (parenthesized_expression "(pcVar10 == pcVar5)" ( (binary_expression "pcVar10 == pcVar5" identifier == identifier) )) (goto_statement "goto LAB_00137d7b;" goto statement_identifier ;)) (expression_statement "cVar4 = *pcVar5;" (assignment_expression "cVar4 = *pcVar5" identifier = (pointer_expression "*pcVar5" * identifier)) ;) })) (expression_statement "pcVar8 = pcVar5 + 1;" (assignment_expression "pcVar8 = pcVar5 + 1" identifier = (binary_expression "pcVar5 + 1" identifier + number_literal)) ;) (expression_statement "pcVar7 = pcVar5 + 1;" (assignment_expression "pcVar7 = pcVar5 + 1" identifier = (binary_expression "pcVar5 + 1" identifier + number_literal)) ;) }) (else_clause "else {\n                  pcVar5 = pcVar8;\n                  if (pcVar10 <= pcVar8) break;\n                  while (cVar4 != '/') {\n                    pcVar8 = pcVar8 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar4;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar10;\n                    if (pcVar10 == pcVar8) goto LAB_00137d7b;\n                    cVar4 = *pcVar8;\n                  }\n                  *pcVar7 = *pcVar8;\n                  pcVar8 = pcVar8 + 1;\n                  pcVar7 = pcVar7 + 1;\n                }" else (compound_statement "{\n                  pcVar5 = pcVar8;\n                  if (pcVar10 <= pcVar8) break;\n                  while (cVar4 != '/') {\n                    pcVar8 = pcVar8 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar4;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar10;\n                    if (pcVar10 == pcVar8) goto LAB_00137d7b;\n                    cVar4 = *pcVar8;\n                  }\n                  *pcVar7 = *pcVar8;\n                  pcVar8 = pcVar8 + 1;\n                  pcVar7 = pcVar7 + 1;\n                }" { (expression_statement "pcVar5 = pcVar8;" (assignment_expression "pcVar5 = pcVar8" identifier = identifier) ;) (if_statement "if (pcVar10 <= pcVar8) break;" if (parenthesized_expression "(pcVar10 <= pcVar8)" ( (binary_expression "pcVar10 <= pcVar8" identifier <= identifier) )) (break_statement "break;" break ;)) (while_statement "while (cVar4 != '/') {\n                    pcVar8 = pcVar8 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar4;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar10;\n                    if (pcVar10 == pcVar8) goto LAB_00137d7b;\n                    cVar4 = *pcVar8;\n                  }" while (parenthesized_expression "(cVar4 != '/')" ( (binary_expression "cVar4 != '/'" identifier != (char_literal "'/'" ' character ')) )) (compound_statement "{\n                    pcVar8 = pcVar8 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar4;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar10;\n                    if (pcVar10 == pcVar8) goto LAB_00137d7b;\n                    cVar4 = *pcVar8;\n                  }" { (expression_statement "pcVar8 = pcVar8 + 1;" (assignment_expression "pcVar8 = pcVar8 + 1" identifier = (binary_expression "pcVar8 + 1" identifier + number_literal)) ;) (expression_statement "pcVar5 = pcVar7 + 1;" (assignment_expression "pcVar5 = pcVar7 + 1" identifier = (binary_expression "pcVar7 + 1" identifier + number_literal)) ;) (expression_statement "*pcVar7 = cVar4;" (assignment_expression "*pcVar7 = cVar4" (pointer_expression "*pcVar7" * identifier) = identifier) ;) (expression_statement "pcVar7 = pcVar5;" (assignment_expression "pcVar7 = pcVar5" identifier = identifier) ;) (expression_statement "pcVar5 = pcVar10;" (assignment_expression "pcVar5 = pcVar10" identifier = identifier) ;) (if_statement "if (pcVar10 == pcVar8) goto LAB_00137d7b;" if (parenthesized_expression "(pcVar10 == pcVar8)" ( (binary_expression "pcVar10 == pcVar8" identifier == identifier) )) (goto_statement "goto LAB_00137d7b;" goto statement_identifier ;)) (expression_statement "cVar4 = *pcVar8;" (assignment_expression "cVar4 = *pcVar8" identifier = (pointer_expression "*pcVar8" * identifier)) ;) })) (expression_statement "*pcVar7 = *pcVar8;" (assignment_expression "*pcVar7 = *pcVar8" (pointer_expression "*pcVar7" * identifier) = (pointer_expression "*pcVar8" * identifier)) ;) (expression_statement "pcVar8 = pcVar8 + 1;" (assignment_expression "pcVar8 = pcVar8 + 1" identifier = (binary_expression "pcVar8 + 1" identifier + number_literal)) ;) (expression_statement "pcVar7 = pcVar7 + 1;" (assignment_expression "pcVar7 = pcVar7 + 1" identifier = (binary_expression "pcVar7 + 1" identifier + number_literal)) ;) })))) }))) (expression_statement "pcVar5 = pcVar8;" (assignment_expression "pcVar5 = pcVar8" identifier = identifier) ;) }) while (parenthesized_expression "(pcVar8 < pcVar10)" ( (binary_expression "pcVar8 < pcVar10" identifier < identifier) )) ;) (labeled_statement "LAB_00137d7b:\n            pcVar8 = pcVar7;" statement_identifier : (expression_statement "pcVar8 = pcVar7;" (assignment_expression "pcVar8 = pcVar7" identifier = identifier) ;)) (if_statement "if (pcVar5 != pcVar7) {\n              *pcVar7 = '\0';\n            }" if (parenthesized_expression "(pcVar5 != pcVar7)" ( (binary_expression "pcVar5 != pcVar7" identifier != identifier) )) (compound_statement "{\n              *pcVar7 = '\0';\n            }" { (expression_statement "*pcVar7 = '\0';" (assignment_expression "*pcVar7 = '\0'" (pointer_expression "*pcVar7" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) })) })) (expression_statement "pcVar10 = url_00->path;" (assignment_expression "pcVar10 = url_00->path" identifier = (field_expression "url_00->path" identifier -> field_identifier)) ;) (expression_statement "pcVar6 = strrchr(pcVar10,0x2f);" (assignment_expression "pcVar6 = strrchr(pcVar10,0x2f)" identifier = (call_expression "strrchr(pcVar10,0x2f)" identifier (argument_list "(pcVar10,0x2f)" ( identifier , number_literal )))) ;) (if_statement "if (pcVar6 == (char *)0x0) {\n            pcVar6 = xstrdup("");\n            url_00->dir = pcVar6;\n            pcVar10 = xstrdup(pcVar10);\n            url_00->file = pcVar10;\n          }\n          else {\n            pcVar10 = strdupdelim(pcVar10,pcVar6);\n            url_00->dir = pcVar10;\n            pcVar10 = xstrdup(pcVar6 + 1);\n            url_00->file = pcVar10;\n          }" if (parenthesized_expression "(pcVar6 == (char *)0x0)" ( (binary_expression "pcVar6 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            pcVar6 = xstrdup("");\n            url_00->dir = pcVar6;\n            pcVar10 = xstrdup(pcVar10);\n            url_00->file = pcVar10;\n          }" { (expression_statement "pcVar6 = xstrdup("");" (assignment_expression "pcVar6 = xstrdup("")" identifier = (call_expression "xstrdup("")" identifier (argument_list "("")" ( (string_literal """" " ") )))) ;) (expression_statement "url_00->dir = pcVar6;" (assignment_expression "url_00->dir = pcVar6" (field_expression "url_00->dir" identifier -> field_identifier) = identifier) ;) (expression_statement "pcVar10 = xstrdup(pcVar10);" (assignment_expression "pcVar10 = xstrdup(pcVar10)" identifier = (call_expression "xstrdup(pcVar10)" identifier (argument_list "(pcVar10)" ( identifier )))) ;) (expression_statement "url_00->file = pcVar10;" (assignment_expression "url_00->file = pcVar10" (field_expression "url_00->file" identifier -> field_identifier) = identifier) ;) }) (else_clause "else {\n            pcVar10 = strdupdelim(pcVar10,pcVar6);\n            url_00->dir = pcVar10;\n            pcVar10 = xstrdup(pcVar6 + 1);\n            url_00->file = pcVar10;\n          }" else (compound_statement "{\n            pcVar10 = strdupdelim(pcVar10,pcVar6);\n            url_00->dir = pcVar10;\n            pcVar10 = xstrdup(pcVar6 + 1);\n            url_00->file = pcVar10;\n          }" { (expression_statement "pcVar10 = strdupdelim(pcVar10,pcVar6);" (assignment_expression "pcVar10 = strdupdelim(pcVar10,pcVar6)" identifier = (call_expression "strdupdelim(pcVar10,pcVar6)" identifier (argument_list "(pcVar10,pcVar6)" ( identifier , identifier )))) ;) (expression_statement "url_00->dir = pcVar10;" (assignment_expression "url_00->dir = pcVar10" (field_expression "url_00->dir" identifier -> field_identifier) = identifier) ;) (expression_statement "pcVar10 = xstrdup(pcVar6 + 1);" (assignment_expression "pcVar10 = xstrdup(pcVar6 + 1)" identifier = (call_expression "xstrdup(pcVar6 + 1)" identifier (argument_list "(pcVar6 + 1)" ( (binary_expression "pcVar6 + 1" identifier + number_literal) )))) ;) (expression_statement "url_00->file = pcVar10;" (assignment_expression "url_00->file = pcVar10" (field_expression "url_00->file" identifier -> field_identifier) = identifier) ;) }))) (expression_statement "url_unescape(url_00->dir);" (call_expression "url_unescape(url_00->dir)" identifier (argument_list "(url_00->dir)" ( (field_expression "url_00->dir" identifier -> field_identifier) ))) ;) (expression_statement "url_unescape(url_00->file);" (call_expression "url_unescape(url_00->file)" identifier (argument_list "(url_00->file)" ( (field_expression "url_00->file" identifier -> field_identifier) ))) ;) (expression_statement "pcVar10 = url_00->host;" (assignment_expression "pcVar10 = url_00->host" identifier = (field_expression "url_00->host" identifier -> field_identifier)) ;) (expression_statement "cVar4 = *pcVar10;" (assignment_expression "cVar4 = *pcVar10" identifier = (pointer_expression "*pcVar10" * identifier)) ;) (if_statement "if (cVar4 == '\0') {\n            bVar12 = 0;\n          }\n          else {\n            bVar12 = 0;\n            do {\n              if ((int)cVar4 - 0x41U < 0x1a) {\n                *pcVar10 = cVar4 + ' ';\n                bVar12 = 1;\n              }\n              pcVar10 = pcVar10 + 1;\n              cVar4 = *pcVar10;\n            } while (cVar4 != '\0');\n          }" if (parenthesized_expression "(cVar4 == '\0')" ( (binary_expression "cVar4 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            bVar12 = 0;\n          }" { (expression_statement "bVar12 = 0;" (assignment_expression "bVar12 = 0" identifier = number_literal) ;) }) (else_clause "else {\n            bVar12 = 0;\n            do {\n              if ((int)cVar4 - 0x41U < 0x1a) {\n                *pcVar10 = cVar4 + ' ';\n                bVar12 = 1;\n              }\n              pcVar10 = pcVar10 + 1;\n              cVar4 = *pcVar10;\n            } while (cVar4 != '\0');\n          }" else (compound_statement "{\n            bVar12 = 0;\n            do {\n              if ((int)cVar4 - 0x41U < 0x1a) {\n                *pcVar10 = cVar4 + ' ';\n                bVar12 = 1;\n              }\n              pcVar10 = pcVar10 + 1;\n              cVar4 = *pcVar10;\n            } while (cVar4 != '\0');\n          }" { (expression_statement "bVar12 = 0;" (assignment_expression "bVar12 = 0" identifier = number_literal) ;) (do_statement "do {\n              if ((int)cVar4 - 0x41U < 0x1a) {\n                *pcVar10 = cVar4 + ' ';\n                bVar12 = 1;\n              }\n              pcVar10 = pcVar10 + 1;\n              cVar4 = *pcVar10;\n            } while (cVar4 != '\0');" do (compound_statement "{\n              if ((int)cVar4 - 0x41U < 0x1a) {\n                *pcVar10 = cVar4 + ' ';\n                bVar12 = 1;\n              }\n              pcVar10 = pcVar10 + 1;\n              cVar4 = *pcVar10;\n            }" { (if_statement "if ((int)cVar4 - 0x41U < 0x1a) {\n                *pcVar10 = cVar4 + ' ';\n                bVar12 = 1;\n              }" if (parenthesized_expression "((int)cVar4 - 0x41U < 0x1a)" ( (binary_expression "(int)cVar4 - 0x41U < 0x1a" (binary_expression "(int)cVar4 - 0x41U" (cast_expression "(int)cVar4" ( (type_descriptor "int" primitive_type) ) identifier) - number_literal) < number_literal) )) (compound_statement "{\n                *pcVar10 = cVar4 + ' ';\n                bVar12 = 1;\n              }" { (expression_statement "*pcVar10 = cVar4 + ' ';" (assignment_expression "*pcVar10 = cVar4 + ' '" (pointer_expression "*pcVar10" * identifier) = (binary_expression "cVar4 + ' '" identifier + (char_literal "' '" ' character '))) ;) (expression_statement "bVar12 = 1;" (assignment_expression "bVar12 = 1" identifier = number_literal) ;) })) (expression_statement "pcVar10 = pcVar10 + 1;" (assignment_expression "pcVar10 = pcVar10 + 1" identifier = (binary_expression "pcVar10 + 1" identifier + number_literal)) ;) (expression_statement "cVar4 = *pcVar10;" (assignment_expression "cVar4 = *pcVar10" identifier = (pointer_expression "*pcVar10" * identifier)) ;) }) while (parenthesized_expression "(cVar4 != '\0')" ( (binary_expression "cVar4 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) }))) (expression_statement "pcVar10 = url_00->host;" (assignment_expression "pcVar10 = url_00->host" identifier = (field_expression "url_00->host" identifier -> field_identifier)) ;) (expression_statement "pcVar6 = strchr(pcVar10,0x25);" (assignment_expression "pcVar6 = strchr(pcVar10,0x25)" identifier = (call_expression "strchr(pcVar10,0x25)" identifier (argument_list "(pcVar10,0x25)" ( identifier , number_literal )))) ;) (if_statement "if (pcVar6 != (char *)0x0) {\n            url_unescape(pcVar10);\n            pcVar10 = url_00->host;\n            cVar4 = *pcVar10;\n            pcVar6 = pcVar10;\n            while (cVar4 != '\0') {\n              if ((-1 < cVar4) && ((cVar4 < ' ' || (cVar4 == '\x7f')))) {\n                url_free(url_00);\n                iVar11 = 3;\n                goto LAB_00137c65;\n              }\n              pcVar6 = pcVar6 + 1;\n              cVar4 = *pcVar6;\n            }\n            bVar12 = iri != (iri *)0x0 & opt.enable_iri;\n            if (bVar12 == 0) {\n              bVar12 = 1;\n            }\n            else {\n              pcVar10 = idn_encode(iri,pcVar10);\n              if (pcVar10 != (char *)0x0) {\n                free(url_00->host);\n                url_00->host = pcVar10;\n              }\n            }\n          }" if (parenthesized_expression "(pcVar6 != (char *)0x0)" ( (binary_expression "pcVar6 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            url_unescape(pcVar10);\n            pcVar10 = url_00->host;\n            cVar4 = *pcVar10;\n            pcVar6 = pcVar10;\n            while (cVar4 != '\0') {\n              if ((-1 < cVar4) && ((cVar4 < ' ' || (cVar4 == '\x7f')))) {\n                url_free(url_00);\n                iVar11 = 3;\n                goto LAB_00137c65;\n              }\n              pcVar6 = pcVar6 + 1;\n              cVar4 = *pcVar6;\n            }\n            bVar12 = iri != (iri *)0x0 & opt.enable_iri;\n            if (bVar12 == 0) {\n              bVar12 = 1;\n            }\n            else {\n              pcVar10 = idn_encode(iri,pcVar10);\n              if (pcVar10 != (char *)0x0) {\n                free(url_00->host);\n                url_00->host = pcVar10;\n              }\n            }\n          }" { (expression_statement "url_unescape(pcVar10);" (call_expression "url_unescape(pcVar10)" identifier (argument_list "(pcVar10)" ( identifier ))) ;) (expression_statement "pcVar10 = url_00->host;" (assignment_expression "pcVar10 = url_00->host" identifier = (field_expression "url_00->host" identifier -> field_identifier)) ;) (expression_statement "cVar4 = *pcVar10;" (assignment_expression "cVar4 = *pcVar10" identifier = (pointer_expression "*pcVar10" * identifier)) ;) (expression_statement "pcVar6 = pcVar10;" (assignment_expression "pcVar6 = pcVar10" identifier = identifier) ;) (while_statement "while (cVar4 != '\0') {\n              if ((-1 < cVar4) && ((cVar4 < ' ' || (cVar4 == '\x7f')))) {\n                url_free(url_00);\n                iVar11 = 3;\n                goto LAB_00137c65;\n              }\n              pcVar6 = pcVar6 + 1;\n              cVar4 = *pcVar6;\n            }" while (parenthesized_expression "(cVar4 != '\0')" ( (binary_expression "cVar4 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              if ((-1 < cVar4) && ((cVar4 < ' ' || (cVar4 == '\x7f')))) {\n                url_free(url_00);\n                iVar11 = 3;\n                goto LAB_00137c65;\n              }\n              pcVar6 = pcVar6 + 1;\n              cVar4 = *pcVar6;\n            }" { (if_statement "if ((-1 < cVar4) && ((cVar4 < ' ' || (cVar4 == '\x7f')))) {\n                url_free(url_00);\n                iVar11 = 3;\n                goto LAB_00137c65;\n              }" if (parenthesized_expression "((-1 < cVar4) && ((cVar4 < ' ' || (cVar4 == '\x7f'))))" ( (binary_expression "(-1 < cVar4) && ((cVar4 < ' ' || (cVar4 == '\x7f')))" (parenthesized_expression "(-1 < cVar4)" ( (binary_expression "-1 < cVar4" number_literal < identifier) )) && (parenthesized_expression "((cVar4 < ' ' || (cVar4 == '\x7f')))" ( (parenthesized_expression "(cVar4 < ' ' || (cVar4 == '\x7f'))" ( (binary_expression "cVar4 < ' ' || (cVar4 == '\x7f')" (binary_expression "cVar4 < ' '" identifier < (char_literal "' '" ' character ')) || (parenthesized_expression "(cVar4 == '\x7f')" ( (binary_expression "cVar4 == '\x7f'" identifier == (char_literal "'\x7f'" ' escape_sequence ')) ))) )) ))) )) (compound_statement "{\n                url_free(url_00);\n                iVar11 = 3;\n                goto LAB_00137c65;\n              }" { (expression_statement "url_free(url_00);" (call_expression "url_free(url_00)" identifier (argument_list "(url_00)" ( identifier ))) ;) (expression_statement "iVar11 = 3;" (assignment_expression "iVar11 = 3" identifier = number_literal) ;) (goto_statement "goto LAB_00137c65;" goto statement_identifier ;) })) (expression_statement "pcVar6 = pcVar6 + 1;" (assignment_expression "pcVar6 = pcVar6 + 1" identifier = (binary_expression "pcVar6 + 1" identifier + number_literal)) ;) (expression_statement "cVar4 = *pcVar6;" (assignment_expression "cVar4 = *pcVar6" identifier = (pointer_expression "*pcVar6" * identifier)) ;) })) (expression_statement "bVar12 = iri != (iri *)0x0 & opt.enable_iri;" (assignment_expression "bVar12 = iri != (iri *)0x0 & opt.enable_iri" identifier = (binary_expression "iri != (iri *)0x0 & opt.enable_iri" (binary_expression "iri != (iri *)0x0" identifier != (cast_expression "(iri *)0x0" ( (type_descriptor "iri *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) & (field_expression "opt.enable_iri" identifier . field_identifier))) ;) (if_statement "if (bVar12 == 0) {\n              bVar12 = 1;\n            }\n            else {\n              pcVar10 = idn_encode(iri,pcVar10);\n              if (pcVar10 != (char *)0x0) {\n                free(url_00->host);\n                url_00->host = pcVar10;\n              }\n            }" if (parenthesized_expression "(bVar12 == 0)" ( (binary_expression "bVar12 == 0" identifier == number_literal) )) (compound_statement "{\n              bVar12 = 1;\n            }" { (expression_statement "bVar12 = 1;" (assignment_expression "bVar12 = 1" identifier = number_literal) ;) }) (else_clause "else {\n              pcVar10 = idn_encode(iri,pcVar10);\n              if (pcVar10 != (char *)0x0) {\n                free(url_00->host);\n                url_00->host = pcVar10;\n              }\n            }" else (compound_statement "{\n              pcVar10 = idn_encode(iri,pcVar10);\n              if (pcVar10 != (char *)0x0) {\n                free(url_00->host);\n                url_00->host = pcVar10;\n              }\n            }" { (expression_statement "pcVar10 = idn_encode(iri,pcVar10);" (assignment_expression "pcVar10 = idn_encode(iri,pcVar10)" identifier = (call_expression "idn_encode(iri,pcVar10)" identifier (argument_list "(iri,pcVar10)" ( identifier , identifier )))) ;) (if_statement "if (pcVar10 != (char *)0x0) {\n                free(url_00->host);\n                url_00->host = pcVar10;\n              }" if (parenthesized_expression "(pcVar10 != (char *)0x0)" ( (binary_expression "pcVar10 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                free(url_00->host);\n                url_00->host = pcVar10;\n              }" { (expression_statement "free(url_00->host);" (call_expression "free(url_00->host)" identifier (argument_list "(url_00->host)" ( (field_expression "url_00->host" identifier -> field_identifier) ))) ;) (expression_statement "url_00->host = pcVar10;" (assignment_expression "url_00->host = pcVar10" (field_expression "url_00->host" identifier -> field_identifier) = identifier) ;) })) }))) })) (if_statement "if (local_70 != (char *)0x0) {\n            pcVar10 = strdupdelim(local_70,local_60);\n            url_00->params = pcVar10;\n          }" if (parenthesized_expression "(local_70 != (char *)0x0)" ( (binary_expression "local_70 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            pcVar10 = strdupdelim(local_70,local_60);\n            url_00->params = pcVar10;\n          }" { (expression_statement "pcVar10 = strdupdelim(local_70,local_60);" (assignment_expression "pcVar10 = strdupdelim(local_70,local_60)" identifier = (call_expression "strdupdelim(local_70,local_60)" identifier (argument_list "(local_70,local_60)" ( identifier , identifier )))) ;) (expression_statement "url_00->params = pcVar10;" (assignment_expression "url_00->params = pcVar10" (field_expression "url_00->params" identifier -> field_identifier) = identifier) ;) })) (if_statement "if (local_b0 != (char *)0x0) {\n            pcVar10 = strdupdelim(local_b0,local_58);\n            url_00->query = pcVar10;\n          }" if (parenthesized_expression "(local_b0 != (char *)0x0)" ( (binary_expression "local_b0 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            pcVar10 = strdupdelim(local_b0,local_58);\n            url_00->query = pcVar10;\n          }" { (expression_statement "pcVar10 = strdupdelim(local_b0,local_58);" (assignment_expression "pcVar10 = strdupdelim(local_b0,local_58)" identifier = (call_expression "strdupdelim(local_b0,local_58)" identifier (argument_list "(local_b0,local_58)" ( identifier , identifier )))) ;) (expression_statement "url_00->query = pcVar10;" (assignment_expression "url_00->query = pcVar10" (field_expression "url_00->query" identifier -> field_identifier) = identifier) ;) })) (if_statement "if (local_68 != (char *)0x0) {\n            pcVar10 = strdupdelim(local_68,local_50);\n            url_00->fragment = pcVar10;\n          }" if (parenthesized_expression "(local_68 != (char *)0x0)" ( (binary_expression "local_68 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            pcVar10 = strdupdelim(local_68,local_50);\n            url_00->fragment = pcVar10;\n          }" { (expression_statement "pcVar10 = strdupdelim(local_68,local_50);" (assignment_expression "pcVar10 = strdupdelim(local_68,local_50)" identifier = (call_expression "strdupdelim(local_68,local_50)" identifier (argument_list "(local_68,local_50)" ( identifier , identifier )))) ;) (expression_statement "url_00->fragment = pcVar10;" (assignment_expression "url_00->fragment = pcVar10" (field_expression "url_00->fragment" identifier -> field_identifier) = identifier) ;) })) (expression_statement "error = (int *)url_00;" (assignment_expression "error = (int *)url_00" identifier = (cast_expression "(int *)url_00" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if ((((opt.enable_iri == false) && (pcVar5 == pcVar8)) &&\n              (url_00->fragment == (char *)0x0)) && ((local_88 != local_80 && (bVar12 == 0)))) {\n            if (local_b8 == url) {\n              pcVar8 = xstrdup(url);\n              url_00->url = pcVar8;\n            }\n            else {\n              url_00->url = local_b8;\n            }\n          }\n          else {\n            pcVar8 = url_string(url_00,URL_AUTH_SHOW);\n            url_00->url = pcVar8;\n            if (local_b8 != url) {\n              free(local_b8);\n            }\n          }" if (parenthesized_expression "((((opt.enable_iri == false) && (pcVar5 == pcVar8)) &&\n              (url_00->fragment == (char *)0x0)) && ((local_88 != local_80 && (bVar12 == 0))))" ( (binary_expression "(((opt.enable_iri == false) && (pcVar5 == pcVar8)) &&\n              (url_00->fragment == (char *)0x0)) && ((local_88 != local_80 && (bVar12 == 0)))" (parenthesized_expression "(((opt.enable_iri == false) && (pcVar5 == pcVar8)) &&\n              (url_00->fragment == (char *)0x0))" ( (binary_expression "((opt.enable_iri == false) && (pcVar5 == pcVar8)) &&\n              (url_00->fragment == (char *)0x0)" (parenthesized_expression "((opt.enable_iri == false) && (pcVar5 == pcVar8))" ( (binary_expression "(opt.enable_iri == false) && (pcVar5 == pcVar8)" (parenthesized_expression "(opt.enable_iri == false)" ( (binary_expression "opt.enable_iri == false" (field_expression "opt.enable_iri" identifier . field_identifier) == false) )) && (parenthesized_expression "(pcVar5 == pcVar8)" ( (binary_expression "pcVar5 == pcVar8" identifier == identifier) ))) )) && (parenthesized_expression "(url_00->fragment == (char *)0x0)" ( (binary_expression "url_00->fragment == (char *)0x0" (field_expression "url_00->fragment" identifier -> field_identifier) == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) && (parenthesized_expression "((local_88 != local_80 && (bVar12 == 0)))" ( (parenthesized_expression "(local_88 != local_80 && (bVar12 == 0))" ( (binary_expression "local_88 != local_80 && (bVar12 == 0)" (binary_expression "local_88 != local_80" identifier != identifier) && (parenthesized_expression "(bVar12 == 0)" ( (binary_expression "bVar12 == 0" identifier == number_literal) ))) )) ))) )) (compound_statement "{\n            if (local_b8 == url) {\n              pcVar8 = xstrdup(url);\n              url_00->url = pcVar8;\n            }\n            else {\n              url_00->url = local_b8;\n            }\n          }" { (if_statement "if (local_b8 == url) {\n              pcVar8 = xstrdup(url);\n              url_00->url = pcVar8;\n            }\n            else {\n              url_00->url = local_b8;\n            }" if (parenthesized_expression "(local_b8 == url)" ( (binary_expression "local_b8 == url" identifier == identifier) )) (compound_statement "{\n              pcVar8 = xstrdup(url);\n              url_00->url = pcVar8;\n            }" { (expression_statement "pcVar8 = xstrdup(url);" (assignment_expression "pcVar8 = xstrdup(url)" identifier = (call_expression "xstrdup(url)" identifier (argument_list "(url)" ( identifier )))) ;) (expression_statement "url_00->url = pcVar8;" (assignment_expression "url_00->url = pcVar8" (field_expression "url_00->url" identifier -> field_identifier) = identifier) ;) }) (else_clause "else {\n              url_00->url = local_b8;\n            }" else (compound_statement "{\n              url_00->url = local_b8;\n            }" { (expression_statement "url_00->url = local_b8;" (assignment_expression "url_00->url = local_b8" (field_expression "url_00->url" identifier -> field_identifier) = identifier) ;) }))) }) (else_clause "else {\n            pcVar8 = url_string(url_00,URL_AUTH_SHOW);\n            url_00->url = pcVar8;\n            if (local_b8 != url) {\n              free(local_b8);\n            }\n          }" else (compound_statement "{\n            pcVar8 = url_string(url_00,URL_AUTH_SHOW);\n            url_00->url = pcVar8;\n            if (local_b8 != url) {\n              free(local_b8);\n            }\n          }" { (expression_statement "pcVar8 = url_string(url_00,URL_AUTH_SHOW);" (assignment_expression "pcVar8 = url_string(url_00,URL_AUTH_SHOW)" identifier = (call_expression "url_string(url_00,URL_AUTH_SHOW)" identifier (argument_list "(url_00,URL_AUTH_SHOW)" ( identifier , identifier )))) ;) (expression_statement "url_00->url = pcVar8;" (assignment_expression "url_00->url = pcVar8" (field_expression "url_00->url" identifier -> field_identifier) = identifier) ;) (if_statement "if (local_b8 != url) {\n              free(local_b8);\n            }" if (parenthesized_expression "(local_b8 != url)" ( (binary_expression "local_b8 != url" identifier != identifier) )) (compound_statement "{\n              free(local_b8);\n            }" { (expression_statement "free(local_b8);" (call_expression "free(local_b8)" identifier (argument_list "(local_b8)" ( identifier ))) ;) })) }))) (goto_statement "goto LAB_00137c95;" goto statement_identifier ;) })) (expression_statement "pcVar10 = pcVar10 + -1;" (assignment_expression "pcVar10 = pcVar10 + -1" identifier = (binary_expression "pcVar10 + -1" identifier + number_literal)) ;) (if_statement "if (pcVar10 == pcVar8) {\n          iVar11 = 5;\n        }\n        else {\n          pcVar6 = (char *)memchr(pcVar8,0x3a,(long)pcVar10 - (long)pcVar8);\n          if (pcVar8 != pcVar6) {\n            pcVar5 = pcVar6;\n            if (pcVar6 != (char *)0x0) {\n              pcVar5 = strdupdelim(pcVar6 + 1,pcVar10);\n              url_unescape(pcVar5);\n              pcVar10 = pcVar6;\n            }\n            pcVar8 = strdupdelim(pcVar8,pcVar10);\n            url_unescape(pcVar8);\n            goto LAB_001379c6;\n          }\n          iVar11 = 5;\n        }" if (parenthesized_expression "(pcVar10 == pcVar8)" ( (binary_expression "pcVar10 == pcVar8" identifier == identifier) )) (compound_statement "{\n          iVar11 = 5;\n        }" { (expression_statement "iVar11 = 5;" (assignment_expression "iVar11 = 5" identifier = number_literal) ;) }) (else_clause "else {\n          pcVar6 = (char *)memchr(pcVar8,0x3a,(long)pcVar10 - (long)pcVar8);\n          if (pcVar8 != pcVar6) {\n            pcVar5 = pcVar6;\n            if (pcVar6 != (char *)0x0) {\n              pcVar5 = strdupdelim(pcVar6 + 1,pcVar10);\n              url_unescape(pcVar5);\n              pcVar10 = pcVar6;\n            }\n            pcVar8 = strdupdelim(pcVar8,pcVar10);\n            url_unescape(pcVar8);\n            goto LAB_001379c6;\n          }\n          iVar11 = 5;\n        }" else (compound_statement "{\n          pcVar6 = (char *)memchr(pcVar8,0x3a,(long)pcVar10 - (long)pcVar8);\n          if (pcVar8 != pcVar6) {\n            pcVar5 = pcVar6;\n            if (pcVar6 != (char *)0x0) {\n              pcVar5 = strdupdelim(pcVar6 + 1,pcVar10);\n              url_unescape(pcVar5);\n              pcVar10 = pcVar6;\n            }\n            pcVar8 = strdupdelim(pcVar8,pcVar10);\n            url_unescape(pcVar8);\n            goto LAB_001379c6;\n          }\n          iVar11 = 5;\n        }" { (expression_statement "pcVar6 = (char *)memchr(pcVar8,0x3a,(long)pcVar10 - (long)pcVar8);" (assignment_expression "pcVar6 = (char *)memchr(pcVar8,0x3a,(long)pcVar10 - (long)pcVar8)" identifier = (cast_expression "(char *)memchr(pcVar8,0x3a,(long)pcVar10 - (long)pcVar8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "memchr(pcVar8,0x3a,(long)pcVar10 - (long)pcVar8)" identifier (argument_list "(pcVar8,0x3a,(long)pcVar10 - (long)pcVar8)" ( identifier , number_literal , (binary_expression "(long)pcVar10 - (long)pcVar8" (cast_expression "(long)pcVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)pcVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))))) ;) (if_statement "if (pcVar8 != pcVar6) {\n            pcVar5 = pcVar6;\n            if (pcVar6 != (char *)0x0) {\n              pcVar5 = strdupdelim(pcVar6 + 1,pcVar10);\n              url_unescape(pcVar5);\n              pcVar10 = pcVar6;\n            }\n            pcVar8 = strdupdelim(pcVar8,pcVar10);\n            url_unescape(pcVar8);\n            goto LAB_001379c6;\n          }" if (parenthesized_expression "(pcVar8 != pcVar6)" ( (binary_expression "pcVar8 != pcVar6" identifier != identifier) )) (compound_statement "{\n            pcVar5 = pcVar6;\n            if (pcVar6 != (char *)0x0) {\n              pcVar5 = strdupdelim(pcVar6 + 1,pcVar10);\n              url_unescape(pcVar5);\n              pcVar10 = pcVar6;\n            }\n            pcVar8 = strdupdelim(pcVar8,pcVar10);\n            url_unescape(pcVar8);\n            goto LAB_001379c6;\n          }" { (expression_statement "pcVar5 = pcVar6;" (assignment_expression "pcVar5 = pcVar6" identifier = identifier) ;) (if_statement "if (pcVar6 != (char *)0x0) {\n              pcVar5 = strdupdelim(pcVar6 + 1,pcVar10);\n              url_unescape(pcVar5);\n              pcVar10 = pcVar6;\n            }" if (parenthesized_expression "(pcVar6 != (char *)0x0)" ( (binary_expression "pcVar6 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              pcVar5 = strdupdelim(pcVar6 + 1,pcVar10);\n              url_unescape(pcVar5);\n              pcVar10 = pcVar6;\n            }" { (expression_statement "pcVar5 = strdupdelim(pcVar6 + 1,pcVar10);" (assignment_expression "pcVar5 = strdupdelim(pcVar6 + 1,pcVar10)" identifier = (call_expression "strdupdelim(pcVar6 + 1,pcVar10)" identifier (argument_list "(pcVar6 + 1,pcVar10)" ( (binary_expression "pcVar6 + 1" identifier + number_literal) , identifier )))) ;) (expression_statement "url_unescape(pcVar5);" (call_expression "url_unescape(pcVar5)" identifier (argument_list "(pcVar5)" ( identifier ))) ;) (expression_statement "pcVar10 = pcVar6;" (assignment_expression "pcVar10 = pcVar6" identifier = identifier) ;) })) (expression_statement "pcVar8 = strdupdelim(pcVar8,pcVar10);" (assignment_expression "pcVar8 = strdupdelim(pcVar8,pcVar10)" identifier = (call_expression "strdupdelim(pcVar8,pcVar10)" identifier (argument_list "(pcVar8,pcVar10)" ( identifier , identifier )))) ;) (expression_statement "url_unescape(pcVar8);" (call_expression "url_unescape(pcVar8)" identifier (argument_list "(pcVar8)" ( identifier ))) ;) (goto_statement "goto LAB_001379c6;" goto statement_identifier ;) })) (expression_statement "iVar11 = 5;" (assignment_expression "iVar11 = 5" identifier = number_literal) ;) }))) })))) }))) (labeled_statement "LAB_00137c65:\n    if ((local_b8 != (char *)0x0) && (local_b8 != url)) {\n      free(local_b8);\n    }" statement_identifier : (if_statement "if ((local_b8 != (char *)0x0) && (local_b8 != url)) {\n      free(local_b8);\n    }" if (parenthesized_expression "((local_b8 != (char *)0x0) && (local_b8 != url))" ( (binary_expression "(local_b8 != (char *)0x0) && (local_b8 != url)" (parenthesized_expression "(local_b8 != (char *)0x0)" ( (binary_expression "local_b8 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(local_b8 != url)" ( (binary_expression "local_b8 != url" identifier != identifier) ))) )) (compound_statement "{\n      free(local_b8);\n    }" { (expression_statement "free(local_b8);" (call_expression "free(local_b8)" identifier (argument_list "(local_b8)" ( identifier ))) ;) }))) }))) (if_statement "if (error != (int *)0x0) {\n    *error = iVar11;\n    error = (int *)0x0;\n  }" if (parenthesized_expression "(error != (int *)0x0)" ( (binary_expression "error != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    *error = iVar11;\n    error = (int *)0x0;\n  }" { (expression_statement "*error = iVar11;" (assignment_expression "*error = iVar11" (pointer_expression "*error" * identifier) = identifier) ;) (expression_statement "error = (int *)0x0;" (assignment_expression "error = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (labeled_statement "LAB_00137c95:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return (url *)error;\n  }" statement_identifier : (if_statement "if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return (url *)error;\n  }" if (parenthesized_expression "(local_40 == *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "local_40 == *(long *)(in_FS_OFFSET + 0x28)" identifier == (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n    return (url *)error;\n  }" { (return_statement "return (url *)error;" return (cast_expression "(url *)error" ( (type_descriptor "url *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ;) }))) comment (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "int * FUN_00137430(void *param_1,int *param_2,long param_3,char param_4)\n\n{\n  char cVar1;\n  uint uVar2;\n  char cVar3;\n  uint uVar4;\n  char *pcVar5;\n  char *pcVar6;\n  char *pcVar7;\n  undefined8 uVar8;\n  int *piVar9;\n  undefined8 uVar10;\n  char *pcVar11;\n  long lVar12;\n  ulong uVar13;\n  char *pcVar14;\n  int iVar15;\n  void *pvVar16;\n  byte bVar17;\n  char *__s;\n  long in_FS_OFFSET;\n  void *local_b8;\n  char *local_b0;\n  char *local_a8;\n  char *local_a0;\n  char *local_90;\n  char *local_88;\n  char *local_80;\n  uint local_74;\n  char *local_70;\n  char *local_68;\n  char *local_60;\n  char *local_58;\n  char *local_50;\n  void *local_48;\n  long local_40;\n  \n  bVar17 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  uVar4 = FUN_00135f73();\n  if (uVar4 == 4) {\n    cVar3 = FUN_00136004(param_1);\n    iVar15 = (cVar3 == '\0') + 1;\n  }\n  else {\n    if ((param_3 == 0) || (*(char *)(param_3 + 0x18) == '\0')) {\nLAB_001374b5:\n      local_b8 = param_1;\n      if (param_4 != '\0') {\n        local_b8 = (void *)FUN_00135ae4(param_1);\n      }\n    }\n    else {\n      local_48 = (void *)0x0;\n      pvVar16 = *(void **)(param_3 + 0x10);\n      if (*(void **)(param_3 + 0x10) == (void *)0x0) {\n        pvVar16 = param_1;\n      }\n      cVar3 = FUN_0013e9b4(param_3,pvVar16,&local_48);\n      *(char *)(param_3 + 0x18) = cVar3;\n      if (cVar3 == '\0') goto LAB_001374b5;\n      free(*(void **)(param_3 + 0x10));\n      *(undefined8 *)(param_3 + 0x10) = 0;\n      uVar8 = FUN_001496d9(param_1);\n      *(undefined8 *)(param_3 + 0x10) = uVar8;\n      local_b8 = (void *)FUN_00135ae4(local_48);\n      if (local_48 != local_b8) {\n        free(local_48);\n      }\n    }\n    uVar13 = 0xffffffffffffffff;\n    pcVar11 = (&PTR_s_http____0016e348)[(ulong)uVar4 * 3];\n    do {\n      if (uVar13 == 0) break;\n      uVar13 = uVar13 - 1;\n      cVar3 = *pcVar11;\n      pcVar11 = pcVar11 + (ulong)bVar17 * -2 + 1;\n    } while (cVar3 != '\0');\n    pcVar11 = (char *)((long)local_b8 + (~uVar13 - 1));\n    pcVar5 = strpbrk(pcVar11,"@/?#;");\n    pcVar14 = pcVar11;\n    if ((pcVar5 != (char *)0x0) && (pcVar14 = pcVar5 + 1, *pcVar5 != '@')) {\n      pcVar14 = pcVar11;\n    }\n    pcVar5 = (char *)FUN_00135653(uVar4);\n    if (*pcVar14 == '[') {\n      local_a8 = pcVar14 + 1;\n      local_a0 = strchr(local_a8,0x5d);\n      if (local_a0 == (char *)0x0) {\n        iVar15 = 6;\n      }\n      else {\n        cVar3 = FUN_0011c7c7(local_a8,local_a0);\n        if (cVar3 == '\0') {\n          iVar15 = 8;\n        }\n        else {\n          pcVar6 = local_a0 + 1;\n          pcVar7 = strchr(pcVar5,(int)local_a0[1]);\n          if (pcVar7 != (char *)0x0) goto LAB_00137554;\n          iVar15 = 3;\n        }\n      }\n    }\n    else {\n      pcVar6 = strpbrk(pcVar14,pcVar5);\n      local_a8 = pcVar14;\n      local_a0 = pcVar6;\n      if (pcVar6 == (char *)0x0) {\n        uVar13 = 0xffffffffffffffff;\n        pcVar6 = pcVar14;\n        do {\n          if (uVar13 == 0) break;\n          uVar13 = uVar13 - 1;\n          cVar3 = *pcVar6;\n          pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n        } while (cVar3 != '\0');\n        pcVar6 = pcVar14 + (~uVar13 - 1);\n        local_a0 = pcVar6;\n      }\nLAB_00137554:\n      if (local_a8 == local_a0) {\n        iVar15 = 3;\n      }\n      else {\n        local_74 = *(uint *)(&DAT_0016e350 + (ulong)uVar4 * 0x18);\n        pcVar7 = pcVar6;\n        if (*pcVar6 == ':') {\n          __s = pcVar6 + 1;\n          pcVar7 = strpbrk(__s,pcVar5 + 1);\n          if (pcVar7 == (char *)0x0) {\n            uVar13 = 0xffffffffffffffff;\n            pcVar7 = __s;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar7;\n              pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');\n            pcVar7 = pcVar6 + ~uVar13;\n          }\n          if (__s != pcVar7) {\n            if (__s < pcVar7) {\n              local_74 = (int)pcVar6[1] - 0x30;\n              if (local_74 < 10) {\n                do {\n                  __s = __s + 1;\n                  if (__s == pcVar7) goto LAB_00137584;\n                  if (9 < (int)*__s - 0x30U) {\n                    iVar15 = 4;\n                    goto LAB_00137c65;\n                  }\n                  local_74 = *__s + -0x30 + local_74 * 10;\n                } while ((int)local_74 < 0x10000);\n                iVar15 = 4;\n              }\n              else {\n                iVar15 = 4;\n              }\n              goto LAB_00137c65;\n            }\n            local_74 = 0;\n          }\n        }\nLAB_00137584:\n        local_80 = (char *)0x0;\n        local_88 = (char *)0x0;\n        pcVar6 = pcVar7;\n        if (*pcVar7 == '/') {\n          local_88 = pcVar7 + 1;\n          pcVar6 = strpbrk(local_88,pcVar5 + 2);\n          local_80 = pcVar6;\n          if (pcVar6 == (char *)0x0) {\n            uVar13 = 0xffffffffffffffff;\n            pcVar6 = local_88;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');\n            pcVar6 = pcVar7 + ~uVar13;\n            local_80 = pcVar6;\n          }\n        }\n        local_90 = pcVar5 + 3;\n        uVar2 = (&DAT_0016e354)[(ulong)uVar4 * 6];\n        if ((uVar2 & 2) == 0) {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n        }\n        else {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n          pcVar7 = pcVar6;\n          if (*pcVar6 == ';') {\n            local_70 = pcVar6 + 1;\n            pcVar7 = strpbrk(local_70,local_90);\n            local_60 = pcVar7;\n            if (pcVar7 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar7 = local_70;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar7;\n                pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar7 = pcVar6 + ~uVar13;\n              local_60 = pcVar7;\n            }\n          }\n          local_90 = pcVar5 + 4;\n          pcVar6 = pcVar7;\n        }\n        if ((uVar2 & 4) == 0) {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n        }\n        else {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n          pcVar5 = pcVar6;\n          if (*pcVar6 == '?') {\n            local_b0 = pcVar6 + 1;\n            pcVar5 = strpbrk(local_b0,local_90);\n            local_58 = pcVar5;\n            if (pcVar5 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_b0;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar5 = pcVar6 + ~uVar13;\n              local_58 = pcVar5;\n            }\n          }\n          local_90 = local_90 + 1;\n          pcVar6 = pcVar5;\n        }\n        if ((uVar2 & 8) == 0) {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n        }\n        else {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n          if (*pcVar6 == '#') {\n            local_68 = pcVar6 + 1;\n            local_50 = strpbrk(local_68,local_90);\n            if (local_50 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_68;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              local_50 = pcVar6 + ~uVar13;\n            }\n          }\n        }\n        if (pcVar11 == pcVar14) {\n          pcVar5 = (char *)0x0;\n          uVar8 = 0;\nLAB_001379c6:\n          piVar9 = (int *)FUN_0014967c(1,0x60);\n          piVar9[2] = uVar4;\n          uVar10 = FUN_0013a40c(local_a8,local_a0);\n          *(undefined8 *)(piVar9 + 4) = uVar10;\n          piVar9[6] = local_74;\n          *(undefined8 *)(piVar9 + 0x14) = uVar8;\n          *(char **)(piVar9 + 0x16) = pcVar5;\n          pcVar11 = (char *)FUN_0013a40c(local_88,local_80);\n          *(char **)(piVar9 + 8) = pcVar11;\n          uVar13 = 0xffffffffffffffff;\n          pcVar14 = pcVar11;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar3 = *pcVar14;\n            pcVar14 = pcVar14 + (ulong)bVar17 * -2 + 1;\n          } while (cVar3 != '\0');\n          pcVar14 = pcVar11 + (~uVar13 - 1);\n          pcVar5 = pcVar11;\n          if (pcVar11 < pcVar14) {\n            pcVar7 = pcVar11;\n            pcVar6 = pcVar11;\n            do {\n              cVar3 = *pcVar11;\n              if (cVar3 == '.') {\n                cVar1 = pcVar11[1];\n                if ((cVar1 == '/') || (cVar1 == '\0')) {\n                  pcVar11 = pcVar11 + 2;\n                }\n                else {\n                  if ((cVar1 != '.') || ((pcVar11[2] != '/' && (pcVar11[2] != '\0'))))\n                  goto LAB_00137e1d;\n                  if (pcVar6 < pcVar7) {\n                    pcVar5 = pcVar7 + -1;\n                    if (pcVar6 < pcVar5) {\n                      cVar3 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar3 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar3 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar5 = pcVar7;\n                    if (uVar4 - 2 < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }\n                  pcVar11 = pcVar11 + 3;\n                  pcVar7 = pcVar5;\n                }\n              }\n              else {\nLAB_00137e1d:\n                if (pcVar7 == pcVar11) {\n                  pcVar5 = pcVar7;\n                  if (pcVar14 <= pcVar7) break;\n                  cVar3 = *pcVar7;\n                  while (cVar3 != '/') {\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar14;\n                    if (pcVar14 == pcVar5) goto LAB_00137d7b;\n                    cVar3 = *pcVar5;\n                  }\n                  pcVar11 = pcVar5 + 1;\n                  pcVar7 = pcVar5 + 1;\n                }\n                else {\n                  pcVar5 = pcVar11;\n                  if (pcVar14 <= pcVar11) break;\n                  while (cVar3 != '/') {\n                    pcVar11 = pcVar11 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar3;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar14;\n                    if (pcVar14 == pcVar11) goto LAB_00137d7b;\n                    cVar3 = *pcVar11;\n                  }\n                  *pcVar7 = *pcVar11;\n                  pcVar11 = pcVar11 + 1;\n                  pcVar7 = pcVar7 + 1;\n                }\n              }\n              pcVar5 = pcVar11;\n            } while (pcVar11 < pcVar14);\nLAB_00137d7b:\n            pcVar11 = pcVar7;\n            if (pcVar5 != pcVar7) {\n              *pcVar7 = '\0';\n            }\n          }\n          pcVar14 = *(char **)(piVar9 + 8);\n          pcVar6 = strrchr(pcVar14,0x2f);\n          if (pcVar6 == (char *)0x0) {\n            uVar8 = FUN_001496d9(&DAT_0015ea35);\n            *(undefined8 *)(piVar9 + 0x10) = uVar8;\n            uVar8 = FUN_001496d9(pcVar14);\n            *(undefined8 *)(piVar9 + 0x12) = uVar8;\n          }\n          else {\n            uVar8 = FUN_0013a40c(pcVar14,pcVar6);\n            *(undefined8 *)(piVar9 + 0x10) = uVar8;\n            uVar8 = FUN_001496d9(pcVar6 + 1);\n            *(undefined8 *)(piVar9 + 0x12) = uVar8;\n          }\n          FUN_00135c58(*(undefined8 *)(piVar9 + 0x10));\n          FUN_00135c58(*(undefined8 *)(piVar9 + 0x12));\n          pcVar14 = *(char **)(piVar9 + 4);\n          cVar3 = *pcVar14;\n          if (cVar3 == '\0') {\n            bVar17 = 0;\n          }\n          else {\n            bVar17 = 0;\n            do {\n              if ((int)cVar3 - 0x41U < 0x1a) {\n                *pcVar14 = cVar3 + ' ';\n                bVar17 = 1;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            } while (cVar3 != '\0');\n          }\n          pcVar14 = *(char **)(piVar9 + 4);\n          pcVar6 = strchr(pcVar14,0x25);\n          if (pcVar6 != (char *)0x0) {\n            FUN_00135c58(pcVar14);\n            pcVar14 = *(char **)(piVar9 + 4);\n            cVar3 = *pcVar14;\n            while (cVar3 != '\0') {\n              if ((-1 < cVar3) && ((cVar3 < ' ' || (cVar3 == '\x7f')))) {\n                FUN_0013629a(piVar9);\n                iVar15 = 3;\n                goto LAB_00137c65;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            }\n            bVar17 = param_3 != 0 & DAT_00177606;\n            if (bVar17 == 0) {\n              bVar17 = 1;\n            }\n            else {\n              lVar12 = FUN_0013eaa4(param_3);\n              if (lVar12 != 0) {\n                free(*(void **)(piVar9 + 4));\n                *(long *)(piVar9 + 4) = lVar12;\n              }\n            }\n          }\n          if (local_70 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_70,local_60);\n            *(undefined8 *)(piVar9 + 10) = uVar8;\n          }\n          if (local_b0 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_b0,local_58);\n            *(undefined8 *)(piVar9 + 0xc) = uVar8;\n          }\n          if (local_68 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_68,local_50);\n            *(undefined8 *)(piVar9 + 0xe) = uVar8;\n          }\n          param_2 = piVar9;\n          if ((((DAT_00177606 == 0) && (pcVar5 == pcVar11)) && (*(long *)(piVar9 + 0xe) == 0)) &&\n             ((local_88 != local_80 && (bVar17 == 0)))) {\n            if (local_b8 == param_1) {\n              uVar8 = FUN_001496d9(param_1);\n              *(undefined8 *)piVar9 = uVar8;\n            }\n            else {\n              *(void **)piVar9 = local_b8;\n            }\n          }\n          else {\n            uVar8 = FUN_00137051(piVar9,0);\n            *(undefined8 *)piVar9 = uVar8;\n            if (local_b8 != param_1) {\n              free(local_b8);\n            }\n          }\n          goto LAB_00137c95;\n        }\n        pcVar14 = pcVar14 + -1;\n        if (pcVar14 == pcVar11) {\n          iVar15 = 5;\n        }\n        else {\n          pcVar6 = (char *)memchr(pcVar11,0x3a,(long)pcVar14 - (long)pcVar11);\n          if (pcVar11 != pcVar6) {\n            pcVar5 = pcVar6;\n            if (pcVar6 != (char *)0x0) {\n              pcVar5 = (char *)FUN_0013a40c(pcVar6 + 1,pcVar14);\n              FUN_00135c58(pcVar5);\n              pcVar14 = pcVar6;\n            }\n            uVar8 = FUN_0013a40c(pcVar11,pcVar14);\n            FUN_00135c58(uVar8);\n            goto LAB_001379c6;\n          }\n          iVar15 = 5;\n        }\n      }\n    }\nLAB_00137c65:\n    if ((local_b8 != (void *)0x0) && (local_b8 != param_1)) {\n      free(local_b8);\n    }\n  }\n  if (param_2 != (int *)0x0) {\n    *param_2 = iVar15;\n    param_2 = (int *)0x0;\n  }\nLAB_00137c95:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return param_2;\n  }\n                    \n  __stack_chk_fail();\n}\n\n" (function_definition "int * FUN_00137430(void *param_1,int *param_2,long param_3,char param_4)\n\n{\n  char cVar1;\n  uint uVar2;\n  char cVar3;\n  uint uVar4;\n  char *pcVar5;\n  char *pcVar6;\n  char *pcVar7;\n  undefined8 uVar8;\n  int *piVar9;\n  undefined8 uVar10;\n  char *pcVar11;\n  long lVar12;\n  ulong uVar13;\n  char *pcVar14;\n  int iVar15;\n  void *pvVar16;\n  byte bVar17;\n  char *__s;\n  long in_FS_OFFSET;\n  void *local_b8;\n  char *local_b0;\n  char *local_a8;\n  char *local_a0;\n  char *local_90;\n  char *local_88;\n  char *local_80;\n  uint local_74;\n  char *local_70;\n  char *local_68;\n  char *local_60;\n  char *local_58;\n  char *local_50;\n  void *local_48;\n  long local_40;\n  \n  bVar17 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  uVar4 = FUN_00135f73();\n  if (uVar4 == 4) {\n    cVar3 = FUN_00136004(param_1);\n    iVar15 = (cVar3 == '\0') + 1;\n  }\n  else {\n    if ((param_3 == 0) || (*(char *)(param_3 + 0x18) == '\0')) {\nLAB_001374b5:\n      local_b8 = param_1;\n      if (param_4 != '\0') {\n        local_b8 = (void *)FUN_00135ae4(param_1);\n      }\n    }\n    else {\n      local_48 = (void *)0x0;\n      pvVar16 = *(void **)(param_3 + 0x10);\n      if (*(void **)(param_3 + 0x10) == (void *)0x0) {\n        pvVar16 = param_1;\n      }\n      cVar3 = FUN_0013e9b4(param_3,pvVar16,&local_48);\n      *(char *)(param_3 + 0x18) = cVar3;\n      if (cVar3 == '\0') goto LAB_001374b5;\n      free(*(void **)(param_3 + 0x10));\n      *(undefined8 *)(param_3 + 0x10) = 0;\n      uVar8 = FUN_001496d9(param_1);\n      *(undefined8 *)(param_3 + 0x10) = uVar8;\n      local_b8 = (void *)FUN_00135ae4(local_48);\n      if (local_48 != local_b8) {\n        free(local_48);\n      }\n    }\n    uVar13 = 0xffffffffffffffff;\n    pcVar11 = (&PTR_s_http____0016e348)[(ulong)uVar4 * 3];\n    do {\n      if (uVar13 == 0) break;\n      uVar13 = uVar13 - 1;\n      cVar3 = *pcVar11;\n      pcVar11 = pcVar11 + (ulong)bVar17 * -2 + 1;\n    } while (cVar3 != '\0');\n    pcVar11 = (char *)((long)local_b8 + (~uVar13 - 1));\n    pcVar5 = strpbrk(pcVar11,"@/?#;");\n    pcVar14 = pcVar11;\n    if ((pcVar5 != (char *)0x0) && (pcVar14 = pcVar5 + 1, *pcVar5 != '@')) {\n      pcVar14 = pcVar11;\n    }\n    pcVar5 = (char *)FUN_00135653(uVar4);\n    if (*pcVar14 == '[') {\n      local_a8 = pcVar14 + 1;\n      local_a0 = strchr(local_a8,0x5d);\n      if (local_a0 == (char *)0x0) {\n        iVar15 = 6;\n      }\n      else {\n        cVar3 = FUN_0011c7c7(local_a8,local_a0);\n        if (cVar3 == '\0') {\n          iVar15 = 8;\n        }\n        else {\n          pcVar6 = local_a0 + 1;\n          pcVar7 = strchr(pcVar5,(int)local_a0[1]);\n          if (pcVar7 != (char *)0x0) goto LAB_00137554;\n          iVar15 = 3;\n        }\n      }\n    }\n    else {\n      pcVar6 = strpbrk(pcVar14,pcVar5);\n      local_a8 = pcVar14;\n      local_a0 = pcVar6;\n      if (pcVar6 == (char *)0x0) {\n        uVar13 = 0xffffffffffffffff;\n        pcVar6 = pcVar14;\n        do {\n          if (uVar13 == 0) break;\n          uVar13 = uVar13 - 1;\n          cVar3 = *pcVar6;\n          pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n        } while (cVar3 != '\0');\n        pcVar6 = pcVar14 + (~uVar13 - 1);\n        local_a0 = pcVar6;\n      }\nLAB_00137554:\n      if (local_a8 == local_a0) {\n        iVar15 = 3;\n      }\n      else {\n        local_74 = *(uint *)(&DAT_0016e350 + (ulong)uVar4 * 0x18);\n        pcVar7 = pcVar6;\n        if (*pcVar6 == ':') {\n          __s = pcVar6 + 1;\n          pcVar7 = strpbrk(__s,pcVar5 + 1);\n          if (pcVar7 == (char *)0x0) {\n            uVar13 = 0xffffffffffffffff;\n            pcVar7 = __s;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar7;\n              pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');\n            pcVar7 = pcVar6 + ~uVar13;\n          }\n          if (__s != pcVar7) {\n            if (__s < pcVar7) {\n              local_74 = (int)pcVar6[1] - 0x30;\n              if (local_74 < 10) {\n                do {\n                  __s = __s + 1;\n                  if (__s == pcVar7) goto LAB_00137584;\n                  if (9 < (int)*__s - 0x30U) {\n                    iVar15 = 4;\n                    goto LAB_00137c65;\n                  }\n                  local_74 = *__s + -0x30 + local_74 * 10;\n                } while ((int)local_74 < 0x10000);\n                iVar15 = 4;\n              }\n              else {\n                iVar15 = 4;\n              }\n              goto LAB_00137c65;\n            }\n            local_74 = 0;\n          }\n        }\nLAB_00137584:\n        local_80 = (char *)0x0;\n        local_88 = (char *)0x0;\n        pcVar6 = pcVar7;\n        if (*pcVar7 == '/') {\n          local_88 = pcVar7 + 1;\n          pcVar6 = strpbrk(local_88,pcVar5 + 2);\n          local_80 = pcVar6;\n          if (pcVar6 == (char *)0x0) {\n            uVar13 = 0xffffffffffffffff;\n            pcVar6 = local_88;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');\n            pcVar6 = pcVar7 + ~uVar13;\n            local_80 = pcVar6;\n          }\n        }\n        local_90 = pcVar5 + 3;\n        uVar2 = (&DAT_0016e354)[(ulong)uVar4 * 6];\n        if ((uVar2 & 2) == 0) {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n        }\n        else {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n          pcVar7 = pcVar6;\n          if (*pcVar6 == ';') {\n            local_70 = pcVar6 + 1;\n            pcVar7 = strpbrk(local_70,local_90);\n            local_60 = pcVar7;\n            if (pcVar7 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar7 = local_70;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar7;\n                pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar7 = pcVar6 + ~uVar13;\n              local_60 = pcVar7;\n            }\n          }\n          local_90 = pcVar5 + 4;\n          pcVar6 = pcVar7;\n        }\n        if ((uVar2 & 4) == 0) {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n        }\n        else {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n          pcVar5 = pcVar6;\n          if (*pcVar6 == '?') {\n            local_b0 = pcVar6 + 1;\n            pcVar5 = strpbrk(local_b0,local_90);\n            local_58 = pcVar5;\n            if (pcVar5 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_b0;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar5 = pcVar6 + ~uVar13;\n              local_58 = pcVar5;\n            }\n          }\n          local_90 = local_90 + 1;\n          pcVar6 = pcVar5;\n        }\n        if ((uVar2 & 8) == 0) {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n        }\n        else {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n          if (*pcVar6 == '#') {\n            local_68 = pcVar6 + 1;\n            local_50 = strpbrk(local_68,local_90);\n            if (local_50 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_68;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              local_50 = pcVar6 + ~uVar13;\n            }\n          }\n        }\n        if (pcVar11 == pcVar14) {\n          pcVar5 = (char *)0x0;\n          uVar8 = 0;\nLAB_001379c6:\n          piVar9 = (int *)FUN_0014967c(1,0x60);\n          piVar9[2] = uVar4;\n          uVar10 = FUN_0013a40c(local_a8,local_a0);\n          *(undefined8 *)(piVar9 + 4) = uVar10;\n          piVar9[6] = local_74;\n          *(undefined8 *)(piVar9 + 0x14) = uVar8;\n          *(char **)(piVar9 + 0x16) = pcVar5;\n          pcVar11 = (char *)FUN_0013a40c(local_88,local_80);\n          *(char **)(piVar9 + 8) = pcVar11;\n          uVar13 = 0xffffffffffffffff;\n          pcVar14 = pcVar11;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar3 = *pcVar14;\n            pcVar14 = pcVar14 + (ulong)bVar17 * -2 + 1;\n          } while (cVar3 != '\0');\n          pcVar14 = pcVar11 + (~uVar13 - 1);\n          pcVar5 = pcVar11;\n          if (pcVar11 < pcVar14) {\n            pcVar7 = pcVar11;\n            pcVar6 = pcVar11;\n            do {\n              cVar3 = *pcVar11;\n              if (cVar3 == '.') {\n                cVar1 = pcVar11[1];\n                if ((cVar1 == '/') || (cVar1 == '\0')) {\n                  pcVar11 = pcVar11 + 2;\n                }\n                else {\n                  if ((cVar1 != '.') || ((pcVar11[2] != '/' && (pcVar11[2] != '\0'))))\n                  goto LAB_00137e1d;\n                  if (pcVar6 < pcVar7) {\n                    pcVar5 = pcVar7 + -1;\n                    if (pcVar6 < pcVar5) {\n                      cVar3 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar3 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar3 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar5 = pcVar7;\n                    if (uVar4 - 2 < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }\n                  pcVar11 = pcVar11 + 3;\n                  pcVar7 = pcVar5;\n                }\n              }\n              else {\nLAB_00137e1d:\n                if (pcVar7 == pcVar11) {\n                  pcVar5 = pcVar7;\n                  if (pcVar14 <= pcVar7) break;\n                  cVar3 = *pcVar7;\n                  while (cVar3 != '/') {\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar14;\n                    if (pcVar14 == pcVar5) goto LAB_00137d7b;\n                    cVar3 = *pcVar5;\n                  }\n                  pcVar11 = pcVar5 + 1;\n                  pcVar7 = pcVar5 + 1;\n                }\n                else {\n                  pcVar5 = pcVar11;\n                  if (pcVar14 <= pcVar11) break;\n                  while (cVar3 != '/') {\n                    pcVar11 = pcVar11 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar3;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar14;\n                    if (pcVar14 == pcVar11) goto LAB_00137d7b;\n                    cVar3 = *pcVar11;\n                  }\n                  *pcVar7 = *pcVar11;\n                  pcVar11 = pcVar11 + 1;\n                  pcVar7 = pcVar7 + 1;\n                }\n              }\n              pcVar5 = pcVar11;\n            } while (pcVar11 < pcVar14);\nLAB_00137d7b:\n            pcVar11 = pcVar7;\n            if (pcVar5 != pcVar7) {\n              *pcVar7 = '\0';\n            }\n          }\n          pcVar14 = *(char **)(piVar9 + 8);\n          pcVar6 = strrchr(pcVar14,0x2f);\n          if (pcVar6 == (char *)0x0) {\n            uVar8 = FUN_001496d9(&DAT_0015ea35);\n            *(undefined8 *)(piVar9 + 0x10) = uVar8;\n            uVar8 = FUN_001496d9(pcVar14);\n            *(undefined8 *)(piVar9 + 0x12) = uVar8;\n          }\n          else {\n            uVar8 = FUN_0013a40c(pcVar14,pcVar6);\n            *(undefined8 *)(piVar9 + 0x10) = uVar8;\n            uVar8 = FUN_001496d9(pcVar6 + 1);\n            *(undefined8 *)(piVar9 + 0x12) = uVar8;\n          }\n          FUN_00135c58(*(undefined8 *)(piVar9 + 0x10));\n          FUN_00135c58(*(undefined8 *)(piVar9 + 0x12));\n          pcVar14 = *(char **)(piVar9 + 4);\n          cVar3 = *pcVar14;\n          if (cVar3 == '\0') {\n            bVar17 = 0;\n          }\n          else {\n            bVar17 = 0;\n            do {\n              if ((int)cVar3 - 0x41U < 0x1a) {\n                *pcVar14 = cVar3 + ' ';\n                bVar17 = 1;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            } while (cVar3 != '\0');\n          }\n          pcVar14 = *(char **)(piVar9 + 4);\n          pcVar6 = strchr(pcVar14,0x25);\n          if (pcVar6 != (char *)0x0) {\n            FUN_00135c58(pcVar14);\n            pcVar14 = *(char **)(piVar9 + 4);\n            cVar3 = *pcVar14;\n            while (cVar3 != '\0') {\n              if ((-1 < cVar3) && ((cVar3 < ' ' || (cVar3 == '\x7f')))) {\n                FUN_0013629a(piVar9);\n                iVar15 = 3;\n                goto LAB_00137c65;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            }\n            bVar17 = param_3 != 0 & DAT_00177606;\n            if (bVar17 == 0) {\n              bVar17 = 1;\n            }\n            else {\n              lVar12 = FUN_0013eaa4(param_3);\n              if (lVar12 != 0) {\n                free(*(void **)(piVar9 + 4));\n                *(long *)(piVar9 + 4) = lVar12;\n              }\n            }\n          }\n          if (local_70 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_70,local_60);\n            *(undefined8 *)(piVar9 + 10) = uVar8;\n          }\n          if (local_b0 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_b0,local_58);\n            *(undefined8 *)(piVar9 + 0xc) = uVar8;\n          }\n          if (local_68 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_68,local_50);\n            *(undefined8 *)(piVar9 + 0xe) = uVar8;\n          }\n          param_2 = piVar9;\n          if ((((DAT_00177606 == 0) && (pcVar5 == pcVar11)) && (*(long *)(piVar9 + 0xe) == 0)) &&\n             ((local_88 != local_80 && (bVar17 == 0)))) {\n            if (local_b8 == param_1) {\n              uVar8 = FUN_001496d9(param_1);\n              *(undefined8 *)piVar9 = uVar8;\n            }\n            else {\n              *(void **)piVar9 = local_b8;\n            }\n          }\n          else {\n            uVar8 = FUN_00137051(piVar9,0);\n            *(undefined8 *)piVar9 = uVar8;\n            if (local_b8 != param_1) {\n              free(local_b8);\n            }\n          }\n          goto LAB_00137c95;\n        }\n        pcVar14 = pcVar14 + -1;\n        if (pcVar14 == pcVar11) {\n          iVar15 = 5;\n        }\n        else {\n          pcVar6 = (char *)memchr(pcVar11,0x3a,(long)pcVar14 - (long)pcVar11);\n          if (pcVar11 != pcVar6) {\n            pcVar5 = pcVar6;\n            if (pcVar6 != (char *)0x0) {\n              pcVar5 = (char *)FUN_0013a40c(pcVar6 + 1,pcVar14);\n              FUN_00135c58(pcVar5);\n              pcVar14 = pcVar6;\n            }\n            uVar8 = FUN_0013a40c(pcVar11,pcVar14);\n            FUN_00135c58(uVar8);\n            goto LAB_001379c6;\n          }\n          iVar15 = 5;\n        }\n      }\n    }\nLAB_00137c65:\n    if ((local_b8 != (void *)0x0) && (local_b8 != param_1)) {\n      free(local_b8);\n    }\n  }\n  if (param_2 != (int *)0x0) {\n    *param_2 = iVar15;\n    param_2 = (int *)0x0;\n  }\nLAB_00137c95:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return param_2;\n  }\n                    \n  __stack_chk_fail();\n}" primitive_type (pointer_declarator "* FUN_00137430(void *param_1,int *param_2,long param_3,char param_4)" * (function_declarator "FUN_00137430(void *param_1,int *param_2,long param_3,char param_4)" identifier (parameter_list "(void *param_1,int *param_2,long param_3,char param_4)" ( (parameter_declaration "void *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "long param_3" (sized_type_specifier "long" long) identifier) , (parameter_declaration "char param_4" primitive_type identifier) )))) (compound_statement "{\n  char cVar1;\n  uint uVar2;\n  char cVar3;\n  uint uVar4;\n  char *pcVar5;\n  char *pcVar6;\n  char *pcVar7;\n  undefined8 uVar8;\n  int *piVar9;\n  undefined8 uVar10;\n  char *pcVar11;\n  long lVar12;\n  ulong uVar13;\n  char *pcVar14;\n  int iVar15;\n  void *pvVar16;\n  byte bVar17;\n  char *__s;\n  long in_FS_OFFSET;\n  void *local_b8;\n  char *local_b0;\n  char *local_a8;\n  char *local_a0;\n  char *local_90;\n  char *local_88;\n  char *local_80;\n  uint local_74;\n  char *local_70;\n  char *local_68;\n  char *local_60;\n  char *local_58;\n  char *local_50;\n  void *local_48;\n  long local_40;\n  \n  bVar17 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  uVar4 = FUN_00135f73();\n  if (uVar4 == 4) {\n    cVar3 = FUN_00136004(param_1);\n    iVar15 = (cVar3 == '\0') + 1;\n  }\n  else {\n    if ((param_3 == 0) || (*(char *)(param_3 + 0x18) == '\0')) {\nLAB_001374b5:\n      local_b8 = param_1;\n      if (param_4 != '\0') {\n        local_b8 = (void *)FUN_00135ae4(param_1);\n      }\n    }\n    else {\n      local_48 = (void *)0x0;\n      pvVar16 = *(void **)(param_3 + 0x10);\n      if (*(void **)(param_3 + 0x10) == (void *)0x0) {\n        pvVar16 = param_1;\n      }\n      cVar3 = FUN_0013e9b4(param_3,pvVar16,&local_48);\n      *(char *)(param_3 + 0x18) = cVar3;\n      if (cVar3 == '\0') goto LAB_001374b5;\n      free(*(void **)(param_3 + 0x10));\n      *(undefined8 *)(param_3 + 0x10) = 0;\n      uVar8 = FUN_001496d9(param_1);\n      *(undefined8 *)(param_3 + 0x10) = uVar8;\n      local_b8 = (void *)FUN_00135ae4(local_48);\n      if (local_48 != local_b8) {\n        free(local_48);\n      }\n    }\n    uVar13 = 0xffffffffffffffff;\n    pcVar11 = (&PTR_s_http____0016e348)[(ulong)uVar4 * 3];\n    do {\n      if (uVar13 == 0) break;\n      uVar13 = uVar13 - 1;\n      cVar3 = *pcVar11;\n      pcVar11 = pcVar11 + (ulong)bVar17 * -2 + 1;\n    } while (cVar3 != '\0');\n    pcVar11 = (char *)((long)local_b8 + (~uVar13 - 1));\n    pcVar5 = strpbrk(pcVar11,"@/?#;");\n    pcVar14 = pcVar11;\n    if ((pcVar5 != (char *)0x0) && (pcVar14 = pcVar5 + 1, *pcVar5 != '@')) {\n      pcVar14 = pcVar11;\n    }\n    pcVar5 = (char *)FUN_00135653(uVar4);\n    if (*pcVar14 == '[') {\n      local_a8 = pcVar14 + 1;\n      local_a0 = strchr(local_a8,0x5d);\n      if (local_a0 == (char *)0x0) {\n        iVar15 = 6;\n      }\n      else {\n        cVar3 = FUN_0011c7c7(local_a8,local_a0);\n        if (cVar3 == '\0') {\n          iVar15 = 8;\n        }\n        else {\n          pcVar6 = local_a0 + 1;\n          pcVar7 = strchr(pcVar5,(int)local_a0[1]);\n          if (pcVar7 != (char *)0x0) goto LAB_00137554;\n          iVar15 = 3;\n        }\n      }\n    }\n    else {\n      pcVar6 = strpbrk(pcVar14,pcVar5);\n      local_a8 = pcVar14;\n      local_a0 = pcVar6;\n      if (pcVar6 == (char *)0x0) {\n        uVar13 = 0xffffffffffffffff;\n        pcVar6 = pcVar14;\n        do {\n          if (uVar13 == 0) break;\n          uVar13 = uVar13 - 1;\n          cVar3 = *pcVar6;\n          pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n        } while (cVar3 != '\0');\n        pcVar6 = pcVar14 + (~uVar13 - 1);\n        local_a0 = pcVar6;\n      }\nLAB_00137554:\n      if (local_a8 == local_a0) {\n        iVar15 = 3;\n      }\n      else {\n        local_74 = *(uint *)(&DAT_0016e350 + (ulong)uVar4 * 0x18);\n        pcVar7 = pcVar6;\n        if (*pcVar6 == ':') {\n          __s = pcVar6 + 1;\n          pcVar7 = strpbrk(__s,pcVar5 + 1);\n          if (pcVar7 == (char *)0x0) {\n            uVar13 = 0xffffffffffffffff;\n            pcVar7 = __s;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar7;\n              pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');\n            pcVar7 = pcVar6 + ~uVar13;\n          }\n          if (__s != pcVar7) {\n            if (__s < pcVar7) {\n              local_74 = (int)pcVar6[1] - 0x30;\n              if (local_74 < 10) {\n                do {\n                  __s = __s + 1;\n                  if (__s == pcVar7) goto LAB_00137584;\n                  if (9 < (int)*__s - 0x30U) {\n                    iVar15 = 4;\n                    goto LAB_00137c65;\n                  }\n                  local_74 = *__s + -0x30 + local_74 * 10;\n                } while ((int)local_74 < 0x10000);\n                iVar15 = 4;\n              }\n              else {\n                iVar15 = 4;\n              }\n              goto LAB_00137c65;\n            }\n            local_74 = 0;\n          }\n        }\nLAB_00137584:\n        local_80 = (char *)0x0;\n        local_88 = (char *)0x0;\n        pcVar6 = pcVar7;\n        if (*pcVar7 == '/') {\n          local_88 = pcVar7 + 1;\n          pcVar6 = strpbrk(local_88,pcVar5 + 2);\n          local_80 = pcVar6;\n          if (pcVar6 == (char *)0x0) {\n            uVar13 = 0xffffffffffffffff;\n            pcVar6 = local_88;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');\n            pcVar6 = pcVar7 + ~uVar13;\n            local_80 = pcVar6;\n          }\n        }\n        local_90 = pcVar5 + 3;\n        uVar2 = (&DAT_0016e354)[(ulong)uVar4 * 6];\n        if ((uVar2 & 2) == 0) {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n        }\n        else {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n          pcVar7 = pcVar6;\n          if (*pcVar6 == ';') {\n            local_70 = pcVar6 + 1;\n            pcVar7 = strpbrk(local_70,local_90);\n            local_60 = pcVar7;\n            if (pcVar7 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar7 = local_70;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar7;\n                pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar7 = pcVar6 + ~uVar13;\n              local_60 = pcVar7;\n            }\n          }\n          local_90 = pcVar5 + 4;\n          pcVar6 = pcVar7;\n        }\n        if ((uVar2 & 4) == 0) {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n        }\n        else {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n          pcVar5 = pcVar6;\n          if (*pcVar6 == '?') {\n            local_b0 = pcVar6 + 1;\n            pcVar5 = strpbrk(local_b0,local_90);\n            local_58 = pcVar5;\n            if (pcVar5 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_b0;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar5 = pcVar6 + ~uVar13;\n              local_58 = pcVar5;\n            }\n          }\n          local_90 = local_90 + 1;\n          pcVar6 = pcVar5;\n        }\n        if ((uVar2 & 8) == 0) {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n        }\n        else {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n          if (*pcVar6 == '#') {\n            local_68 = pcVar6 + 1;\n            local_50 = strpbrk(local_68,local_90);\n            if (local_50 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_68;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              local_50 = pcVar6 + ~uVar13;\n            }\n          }\n        }\n        if (pcVar11 == pcVar14) {\n          pcVar5 = (char *)0x0;\n          uVar8 = 0;\nLAB_001379c6:\n          piVar9 = (int *)FUN_0014967c(1,0x60);\n          piVar9[2] = uVar4;\n          uVar10 = FUN_0013a40c(local_a8,local_a0);\n          *(undefined8 *)(piVar9 + 4) = uVar10;\n          piVar9[6] = local_74;\n          *(undefined8 *)(piVar9 + 0x14) = uVar8;\n          *(char **)(piVar9 + 0x16) = pcVar5;\n          pcVar11 = (char *)FUN_0013a40c(local_88,local_80);\n          *(char **)(piVar9 + 8) = pcVar11;\n          uVar13 = 0xffffffffffffffff;\n          pcVar14 = pcVar11;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar3 = *pcVar14;\n            pcVar14 = pcVar14 + (ulong)bVar17 * -2 + 1;\n          } while (cVar3 != '\0');\n          pcVar14 = pcVar11 + (~uVar13 - 1);\n          pcVar5 = pcVar11;\n          if (pcVar11 < pcVar14) {\n            pcVar7 = pcVar11;\n            pcVar6 = pcVar11;\n            do {\n              cVar3 = *pcVar11;\n              if (cVar3 == '.') {\n                cVar1 = pcVar11[1];\n                if ((cVar1 == '/') || (cVar1 == '\0')) {\n                  pcVar11 = pcVar11 + 2;\n                }\n                else {\n                  if ((cVar1 != '.') || ((pcVar11[2] != '/' && (pcVar11[2] != '\0'))))\n                  goto LAB_00137e1d;\n                  if (pcVar6 < pcVar7) {\n                    pcVar5 = pcVar7 + -1;\n                    if (pcVar6 < pcVar5) {\n                      cVar3 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar3 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar3 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar5 = pcVar7;\n                    if (uVar4 - 2 < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }\n                  pcVar11 = pcVar11 + 3;\n                  pcVar7 = pcVar5;\n                }\n              }\n              else {\nLAB_00137e1d:\n                if (pcVar7 == pcVar11) {\n                  pcVar5 = pcVar7;\n                  if (pcVar14 <= pcVar7) break;\n                  cVar3 = *pcVar7;\n                  while (cVar3 != '/') {\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar14;\n                    if (pcVar14 == pcVar5) goto LAB_00137d7b;\n                    cVar3 = *pcVar5;\n                  }\n                  pcVar11 = pcVar5 + 1;\n                  pcVar7 = pcVar5 + 1;\n                }\n                else {\n                  pcVar5 = pcVar11;\n                  if (pcVar14 <= pcVar11) break;\n                  while (cVar3 != '/') {\n                    pcVar11 = pcVar11 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar3;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar14;\n                    if (pcVar14 == pcVar11) goto LAB_00137d7b;\n                    cVar3 = *pcVar11;\n                  }\n                  *pcVar7 = *pcVar11;\n                  pcVar11 = pcVar11 + 1;\n                  pcVar7 = pcVar7 + 1;\n                }\n              }\n              pcVar5 = pcVar11;\n            } while (pcVar11 < pcVar14);\nLAB_00137d7b:\n            pcVar11 = pcVar7;\n            if (pcVar5 != pcVar7) {\n              *pcVar7 = '\0';\n            }\n          }\n          pcVar14 = *(char **)(piVar9 + 8);\n          pcVar6 = strrchr(pcVar14,0x2f);\n          if (pcVar6 == (char *)0x0) {\n            uVar8 = FUN_001496d9(&DAT_0015ea35);\n            *(undefined8 *)(piVar9 + 0x10) = uVar8;\n            uVar8 = FUN_001496d9(pcVar14);\n            *(undefined8 *)(piVar9 + 0x12) = uVar8;\n          }\n          else {\n            uVar8 = FUN_0013a40c(pcVar14,pcVar6);\n            *(undefined8 *)(piVar9 + 0x10) = uVar8;\n            uVar8 = FUN_001496d9(pcVar6 + 1);\n            *(undefined8 *)(piVar9 + 0x12) = uVar8;\n          }\n          FUN_00135c58(*(undefined8 *)(piVar9 + 0x10));\n          FUN_00135c58(*(undefined8 *)(piVar9 + 0x12));\n          pcVar14 = *(char **)(piVar9 + 4);\n          cVar3 = *pcVar14;\n          if (cVar3 == '\0') {\n            bVar17 = 0;\n          }\n          else {\n            bVar17 = 0;\n            do {\n              if ((int)cVar3 - 0x41U < 0x1a) {\n                *pcVar14 = cVar3 + ' ';\n                bVar17 = 1;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            } while (cVar3 != '\0');\n          }\n          pcVar14 = *(char **)(piVar9 + 4);\n          pcVar6 = strchr(pcVar14,0x25);\n          if (pcVar6 != (char *)0x0) {\n            FUN_00135c58(pcVar14);\n            pcVar14 = *(char **)(piVar9 + 4);\n            cVar3 = *pcVar14;\n            while (cVar3 != '\0') {\n              if ((-1 < cVar3) && ((cVar3 < ' ' || (cVar3 == '\x7f')))) {\n                FUN_0013629a(piVar9);\n                iVar15 = 3;\n                goto LAB_00137c65;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            }\n            bVar17 = param_3 != 0 & DAT_00177606;\n            if (bVar17 == 0) {\n              bVar17 = 1;\n            }\n            else {\n              lVar12 = FUN_0013eaa4(param_3);\n              if (lVar12 != 0) {\n                free(*(void **)(piVar9 + 4));\n                *(long *)(piVar9 + 4) = lVar12;\n              }\n            }\n          }\n          if (local_70 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_70,local_60);\n            *(undefined8 *)(piVar9 + 10) = uVar8;\n          }\n          if (local_b0 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_b0,local_58);\n            *(undefined8 *)(piVar9 + 0xc) = uVar8;\n          }\n          if (local_68 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_68,local_50);\n            *(undefined8 *)(piVar9 + 0xe) = uVar8;\n          }\n          param_2 = piVar9;\n          if ((((DAT_00177606 == 0) && (pcVar5 == pcVar11)) && (*(long *)(piVar9 + 0xe) == 0)) &&\n             ((local_88 != local_80 && (bVar17 == 0)))) {\n            if (local_b8 == param_1) {\n              uVar8 = FUN_001496d9(param_1);\n              *(undefined8 *)piVar9 = uVar8;\n            }\n            else {\n              *(void **)piVar9 = local_b8;\n            }\n          }\n          else {\n            uVar8 = FUN_00137051(piVar9,0);\n            *(undefined8 *)piVar9 = uVar8;\n            if (local_b8 != param_1) {\n              free(local_b8);\n            }\n          }\n          goto LAB_00137c95;\n        }\n        pcVar14 = pcVar14 + -1;\n        if (pcVar14 == pcVar11) {\n          iVar15 = 5;\n        }\n        else {\n          pcVar6 = (char *)memchr(pcVar11,0x3a,(long)pcVar14 - (long)pcVar11);\n          if (pcVar11 != pcVar6) {\n            pcVar5 = pcVar6;\n            if (pcVar6 != (char *)0x0) {\n              pcVar5 = (char *)FUN_0013a40c(pcVar6 + 1,pcVar14);\n              FUN_00135c58(pcVar5);\n              pcVar14 = pcVar6;\n            }\n            uVar8 = FUN_0013a40c(pcVar11,pcVar14);\n            FUN_00135c58(uVar8);\n            goto LAB_001379c6;\n          }\n          iVar15 = 5;\n        }\n      }\n    }\nLAB_00137c65:\n    if ((local_b8 != (void *)0x0) && (local_b8 != param_1)) {\n      free(local_b8);\n    }\n  }\n  if (param_2 != (int *)0x0) {\n    *param_2 = iVar15;\n    param_2 = (int *)0x0;\n  }\nLAB_00137c95:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return param_2;\n  }\n                    \n  __stack_chk_fail();\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "char cVar3;" primitive_type identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "undefined8 uVar8;" type_identifier identifier ;) (declaration "int *piVar9;" primitive_type (pointer_declarator "*piVar9" * identifier) ;) (declaration "undefined8 uVar10;" type_identifier identifier ;) (declaration "char *pcVar11;" primitive_type (pointer_declarator "*pcVar11" * identifier) ;) (declaration "long lVar12;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong uVar13;" type_identifier identifier ;) (declaration "char *pcVar14;" primitive_type (pointer_declarator "*pcVar14" * identifier) ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "void *pvVar16;" primitive_type (pointer_declarator "*pvVar16" * identifier) ;) (declaration "byte bVar17;" type_identifier identifier ;) (declaration "char *__s;" primitive_type (pointer_declarator "*__s" * identifier) ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "void *local_b8;" primitive_type (pointer_declarator "*local_b8" * identifier) ;) (declaration "char *local_b0;" primitive_type (pointer_declarator "*local_b0" * identifier) ;) (declaration "char *local_a8;" primitive_type (pointer_declarator "*local_a8" * identifier) ;) (declaration "char *local_a0;" primitive_type (pointer_declarator "*local_a0" * identifier) ;) (declaration "char *local_90;" primitive_type (pointer_declarator "*local_90" * identifier) ;) (declaration "char *local_88;" primitive_type (pointer_declarator "*local_88" * identifier) ;) (declaration "char *local_80;" primitive_type (pointer_declarator "*local_80" * identifier) ;) (declaration "uint local_74;" type_identifier identifier ;) (declaration "char *local_70;" primitive_type (pointer_declarator "*local_70" * identifier) ;) (declaration "char *local_68;" primitive_type (pointer_declarator "*local_68" * identifier) ;) (declaration "char *local_60;" primitive_type (pointer_declarator "*local_60" * identifier) ;) (declaration "char *local_58;" primitive_type (pointer_declarator "*local_58" * identifier) ;) (declaration "char *local_50;" primitive_type (pointer_declarator "*local_50" * identifier) ;) (declaration "void *local_48;" primitive_type (pointer_declarator "*local_48" * identifier) ;) (declaration "long local_40;" (sized_type_specifier "long" long) identifier ;) (expression_statement "bVar17 = 0;" (assignment_expression "bVar17 = 0" identifier = number_literal) ;) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (expression_statement "uVar4 = FUN_00135f73();" (assignment_expression "uVar4 = FUN_00135f73()" identifier = (call_expression "FUN_00135f73()" identifier (argument_list "()" ( )))) ;) (if_statement "if (uVar4 == 4) {\n    cVar3 = FUN_00136004(param_1);\n    iVar15 = (cVar3 == '\0') + 1;\n  }\n  else {\n    if ((param_3 == 0) || (*(char *)(param_3 + 0x18) == '\0')) {\nLAB_001374b5:\n      local_b8 = param_1;\n      if (param_4 != '\0') {\n        local_b8 = (void *)FUN_00135ae4(param_1);\n      }\n    }\n    else {\n      local_48 = (void *)0x0;\n      pvVar16 = *(void **)(param_3 + 0x10);\n      if (*(void **)(param_3 + 0x10) == (void *)0x0) {\n        pvVar16 = param_1;\n      }\n      cVar3 = FUN_0013e9b4(param_3,pvVar16,&local_48);\n      *(char *)(param_3 + 0x18) = cVar3;\n      if (cVar3 == '\0') goto LAB_001374b5;\n      free(*(void **)(param_3 + 0x10));\n      *(undefined8 *)(param_3 + 0x10) = 0;\n      uVar8 = FUN_001496d9(param_1);\n      *(undefined8 *)(param_3 + 0x10) = uVar8;\n      local_b8 = (void *)FUN_00135ae4(local_48);\n      if (local_48 != local_b8) {\n        free(local_48);\n      }\n    }\n    uVar13 = 0xffffffffffffffff;\n    pcVar11 = (&PTR_s_http____0016e348)[(ulong)uVar4 * 3];\n    do {\n      if (uVar13 == 0) break;\n      uVar13 = uVar13 - 1;\n      cVar3 = *pcVar11;\n      pcVar11 = pcVar11 + (ulong)bVar17 * -2 + 1;\n    } while (cVar3 != '\0');\n    pcVar11 = (char *)((long)local_b8 + (~uVar13 - 1));\n    pcVar5 = strpbrk(pcVar11,"@/?#;");\n    pcVar14 = pcVar11;\n    if ((pcVar5 != (char *)0x0) && (pcVar14 = pcVar5 + 1, *pcVar5 != '@')) {\n      pcVar14 = pcVar11;\n    }\n    pcVar5 = (char *)FUN_00135653(uVar4);\n    if (*pcVar14 == '[') {\n      local_a8 = pcVar14 + 1;\n      local_a0 = strchr(local_a8,0x5d);\n      if (local_a0 == (char *)0x0) {\n        iVar15 = 6;\n      }\n      else {\n        cVar3 = FUN_0011c7c7(local_a8,local_a0);\n        if (cVar3 == '\0') {\n          iVar15 = 8;\n        }\n        else {\n          pcVar6 = local_a0 + 1;\n          pcVar7 = strchr(pcVar5,(int)local_a0[1]);\n          if (pcVar7 != (char *)0x0) goto LAB_00137554;\n          iVar15 = 3;\n        }\n      }\n    }\n    else {\n      pcVar6 = strpbrk(pcVar14,pcVar5);\n      local_a8 = pcVar14;\n      local_a0 = pcVar6;\n      if (pcVar6 == (char *)0x0) {\n        uVar13 = 0xffffffffffffffff;\n        pcVar6 = pcVar14;\n        do {\n          if (uVar13 == 0) break;\n          uVar13 = uVar13 - 1;\n          cVar3 = *pcVar6;\n          pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n        } while (cVar3 != '\0');\n        pcVar6 = pcVar14 + (~uVar13 - 1);\n        local_a0 = pcVar6;\n      }\nLAB_00137554:\n      if (local_a8 == local_a0) {\n        iVar15 = 3;\n      }\n      else {\n        local_74 = *(uint *)(&DAT_0016e350 + (ulong)uVar4 * 0x18);\n        pcVar7 = pcVar6;\n        if (*pcVar6 == ':') {\n          __s = pcVar6 + 1;\n          pcVar7 = strpbrk(__s,pcVar5 + 1);\n          if (pcVar7 == (char *)0x0) {\n            uVar13 = 0xffffffffffffffff;\n            pcVar7 = __s;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar7;\n              pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');\n            pcVar7 = pcVar6 + ~uVar13;\n          }\n          if (__s != pcVar7) {\n            if (__s < pcVar7) {\n              local_74 = (int)pcVar6[1] - 0x30;\n              if (local_74 < 10) {\n                do {\n                  __s = __s + 1;\n                  if (__s == pcVar7) goto LAB_00137584;\n                  if (9 < (int)*__s - 0x30U) {\n                    iVar15 = 4;\n                    goto LAB_00137c65;\n                  }\n                  local_74 = *__s + -0x30 + local_74 * 10;\n                } while ((int)local_74 < 0x10000);\n                iVar15 = 4;\n              }\n              else {\n                iVar15 = 4;\n              }\n              goto LAB_00137c65;\n            }\n            local_74 = 0;\n          }\n        }\nLAB_00137584:\n        local_80 = (char *)0x0;\n        local_88 = (char *)0x0;\n        pcVar6 = pcVar7;\n        if (*pcVar7 == '/') {\n          local_88 = pcVar7 + 1;\n          pcVar6 = strpbrk(local_88,pcVar5 + 2);\n          local_80 = pcVar6;\n          if (pcVar6 == (char *)0x0) {\n            uVar13 = 0xffffffffffffffff;\n            pcVar6 = local_88;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');\n            pcVar6 = pcVar7 + ~uVar13;\n            local_80 = pcVar6;\n          }\n        }\n        local_90 = pcVar5 + 3;\n        uVar2 = (&DAT_0016e354)[(ulong)uVar4 * 6];\n        if ((uVar2 & 2) == 0) {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n        }\n        else {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n          pcVar7 = pcVar6;\n          if (*pcVar6 == ';') {\n            local_70 = pcVar6 + 1;\n            pcVar7 = strpbrk(local_70,local_90);\n            local_60 = pcVar7;\n            if (pcVar7 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar7 = local_70;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar7;\n                pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar7 = pcVar6 + ~uVar13;\n              local_60 = pcVar7;\n            }\n          }\n          local_90 = pcVar5 + 4;\n          pcVar6 = pcVar7;\n        }\n        if ((uVar2 & 4) == 0) {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n        }\n        else {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n          pcVar5 = pcVar6;\n          if (*pcVar6 == '?') {\n            local_b0 = pcVar6 + 1;\n            pcVar5 = strpbrk(local_b0,local_90);\n            local_58 = pcVar5;\n            if (pcVar5 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_b0;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar5 = pcVar6 + ~uVar13;\n              local_58 = pcVar5;\n            }\n          }\n          local_90 = local_90 + 1;\n          pcVar6 = pcVar5;\n        }\n        if ((uVar2 & 8) == 0) {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n        }\n        else {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n          if (*pcVar6 == '#') {\n            local_68 = pcVar6 + 1;\n            local_50 = strpbrk(local_68,local_90);\n            if (local_50 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_68;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              local_50 = pcVar6 + ~uVar13;\n            }\n          }\n        }\n        if (pcVar11 == pcVar14) {\n          pcVar5 = (char *)0x0;\n          uVar8 = 0;\nLAB_001379c6:\n          piVar9 = (int *)FUN_0014967c(1,0x60);\n          piVar9[2] = uVar4;\n          uVar10 = FUN_0013a40c(local_a8,local_a0);\n          *(undefined8 *)(piVar9 + 4) = uVar10;\n          piVar9[6] = local_74;\n          *(undefined8 *)(piVar9 + 0x14) = uVar8;\n          *(char **)(piVar9 + 0x16) = pcVar5;\n          pcVar11 = (char *)FUN_0013a40c(local_88,local_80);\n          *(char **)(piVar9 + 8) = pcVar11;\n          uVar13 = 0xffffffffffffffff;\n          pcVar14 = pcVar11;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar3 = *pcVar14;\n            pcVar14 = pcVar14 + (ulong)bVar17 * -2 + 1;\n          } while (cVar3 != '\0');\n          pcVar14 = pcVar11 + (~uVar13 - 1);\n          pcVar5 = pcVar11;\n          if (pcVar11 < pcVar14) {\n            pcVar7 = pcVar11;\n            pcVar6 = pcVar11;\n            do {\n              cVar3 = *pcVar11;\n              if (cVar3 == '.') {\n                cVar1 = pcVar11[1];\n                if ((cVar1 == '/') || (cVar1 == '\0')) {\n                  pcVar11 = pcVar11 + 2;\n                }\n                else {\n                  if ((cVar1 != '.') || ((pcVar11[2] != '/' && (pcVar11[2] != '\0'))))\n                  goto LAB_00137e1d;\n                  if (pcVar6 < pcVar7) {\n                    pcVar5 = pcVar7 + -1;\n                    if (pcVar6 < pcVar5) {\n                      cVar3 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar3 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar3 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar5 = pcVar7;\n                    if (uVar4 - 2 < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }\n                  pcVar11 = pcVar11 + 3;\n                  pcVar7 = pcVar5;\n                }\n              }\n              else {\nLAB_00137e1d:\n                if (pcVar7 == pcVar11) {\n                  pcVar5 = pcVar7;\n                  if (pcVar14 <= pcVar7) break;\n                  cVar3 = *pcVar7;\n                  while (cVar3 != '/') {\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar14;\n                    if (pcVar14 == pcVar5) goto LAB_00137d7b;\n                    cVar3 = *pcVar5;\n                  }\n                  pcVar11 = pcVar5 + 1;\n                  pcVar7 = pcVar5 + 1;\n                }\n                else {\n                  pcVar5 = pcVar11;\n                  if (pcVar14 <= pcVar11) break;\n                  while (cVar3 != '/') {\n                    pcVar11 = pcVar11 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar3;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar14;\n                    if (pcVar14 == pcVar11) goto LAB_00137d7b;\n                    cVar3 = *pcVar11;\n                  }\n                  *pcVar7 = *pcVar11;\n                  pcVar11 = pcVar11 + 1;\n                  pcVar7 = pcVar7 + 1;\n                }\n              }\n              pcVar5 = pcVar11;\n            } while (pcVar11 < pcVar14);\nLAB_00137d7b:\n            pcVar11 = pcVar7;\n            if (pcVar5 != pcVar7) {\n              *pcVar7 = '\0';\n            }\n          }\n          pcVar14 = *(char **)(piVar9 + 8);\n          pcVar6 = strrchr(pcVar14,0x2f);\n          if (pcVar6 == (char *)0x0) {\n            uVar8 = FUN_001496d9(&DAT_0015ea35);\n            *(undefined8 *)(piVar9 + 0x10) = uVar8;\n            uVar8 = FUN_001496d9(pcVar14);\n            *(undefined8 *)(piVar9 + 0x12) = uVar8;\n          }\n          else {\n            uVar8 = FUN_0013a40c(pcVar14,pcVar6);\n            *(undefined8 *)(piVar9 + 0x10) = uVar8;\n            uVar8 = FUN_001496d9(pcVar6 + 1);\n            *(undefined8 *)(piVar9 + 0x12) = uVar8;\n          }\n          FUN_00135c58(*(undefined8 *)(piVar9 + 0x10));\n          FUN_00135c58(*(undefined8 *)(piVar9 + 0x12));\n          pcVar14 = *(char **)(piVar9 + 4);\n          cVar3 = *pcVar14;\n          if (cVar3 == '\0') {\n            bVar17 = 0;\n          }\n          else {\n            bVar17 = 0;\n            do {\n              if ((int)cVar3 - 0x41U < 0x1a) {\n                *pcVar14 = cVar3 + ' ';\n                bVar17 = 1;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            } while (cVar3 != '\0');\n          }\n          pcVar14 = *(char **)(piVar9 + 4);\n          pcVar6 = strchr(pcVar14,0x25);\n          if (pcVar6 != (char *)0x0) {\n            FUN_00135c58(pcVar14);\n            pcVar14 = *(char **)(piVar9 + 4);\n            cVar3 = *pcVar14;\n            while (cVar3 != '\0') {\n              if ((-1 < cVar3) && ((cVar3 < ' ' || (cVar3 == '\x7f')))) {\n                FUN_0013629a(piVar9);\n                iVar15 = 3;\n                goto LAB_00137c65;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            }\n            bVar17 = param_3 != 0 & DAT_00177606;\n            if (bVar17 == 0) {\n              bVar17 = 1;\n            }\n            else {\n              lVar12 = FUN_0013eaa4(param_3);\n              if (lVar12 != 0) {\n                free(*(void **)(piVar9 + 4));\n                *(long *)(piVar9 + 4) = lVar12;\n              }\n            }\n          }\n          if (local_70 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_70,local_60);\n            *(undefined8 *)(piVar9 + 10) = uVar8;\n          }\n          if (local_b0 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_b0,local_58);\n            *(undefined8 *)(piVar9 + 0xc) = uVar8;\n          }\n          if (local_68 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_68,local_50);\n            *(undefined8 *)(piVar9 + 0xe) = uVar8;\n          }\n          param_2 = piVar9;\n          if ((((DAT_00177606 == 0) && (pcVar5 == pcVar11)) && (*(long *)(piVar9 + 0xe) == 0)) &&\n             ((local_88 != local_80 && (bVar17 == 0)))) {\n            if (local_b8 == param_1) {\n              uVar8 = FUN_001496d9(param_1);\n              *(undefined8 *)piVar9 = uVar8;\n            }\n            else {\n              *(void **)piVar9 = local_b8;\n            }\n          }\n          else {\n            uVar8 = FUN_00137051(piVar9,0);\n            *(undefined8 *)piVar9 = uVar8;\n            if (local_b8 != param_1) {\n              free(local_b8);\n            }\n          }\n          goto LAB_00137c95;\n        }\n        pcVar14 = pcVar14 + -1;\n        if (pcVar14 == pcVar11) {\n          iVar15 = 5;\n        }\n        else {\n          pcVar6 = (char *)memchr(pcVar11,0x3a,(long)pcVar14 - (long)pcVar11);\n          if (pcVar11 != pcVar6) {\n            pcVar5 = pcVar6;\n            if (pcVar6 != (char *)0x0) {\n              pcVar5 = (char *)FUN_0013a40c(pcVar6 + 1,pcVar14);\n              FUN_00135c58(pcVar5);\n              pcVar14 = pcVar6;\n            }\n            uVar8 = FUN_0013a40c(pcVar11,pcVar14);\n            FUN_00135c58(uVar8);\n            goto LAB_001379c6;\n          }\n          iVar15 = 5;\n        }\n      }\n    }\nLAB_00137c65:\n    if ((local_b8 != (void *)0x0) && (local_b8 != param_1)) {\n      free(local_b8);\n    }\n  }" if (parenthesized_expression "(uVar4 == 4)" ( (binary_expression "uVar4 == 4" identifier == number_literal) )) (compound_statement "{\n    cVar3 = FUN_00136004(param_1);\n    iVar15 = (cVar3 == '\0') + 1;\n  }" { (expression_statement "cVar3 = FUN_00136004(param_1);" (assignment_expression "cVar3 = FUN_00136004(param_1)" identifier = (call_expression "FUN_00136004(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "iVar15 = (cVar3 == '\0') + 1;" (assignment_expression "iVar15 = (cVar3 == '\0') + 1" identifier = (binary_expression "(cVar3 == '\0') + 1" (parenthesized_expression "(cVar3 == '\0')" ( (binary_expression "cVar3 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) + number_literal)) ;) }) (else_clause "else {\n    if ((param_3 == 0) || (*(char *)(param_3 + 0x18) == '\0')) {\nLAB_001374b5:\n      local_b8 = param_1;\n      if (param_4 != '\0') {\n        local_b8 = (void *)FUN_00135ae4(param_1);\n      }\n    }\n    else {\n      local_48 = (void *)0x0;\n      pvVar16 = *(void **)(param_3 + 0x10);\n      if (*(void **)(param_3 + 0x10) == (void *)0x0) {\n        pvVar16 = param_1;\n      }\n      cVar3 = FUN_0013e9b4(param_3,pvVar16,&local_48);\n      *(char *)(param_3 + 0x18) = cVar3;\n      if (cVar3 == '\0') goto LAB_001374b5;\n      free(*(void **)(param_3 + 0x10));\n      *(undefined8 *)(param_3 + 0x10) = 0;\n      uVar8 = FUN_001496d9(param_1);\n      *(undefined8 *)(param_3 + 0x10) = uVar8;\n      local_b8 = (void *)FUN_00135ae4(local_48);\n      if (local_48 != local_b8) {\n        free(local_48);\n      }\n    }\n    uVar13 = 0xffffffffffffffff;\n    pcVar11 = (&PTR_s_http____0016e348)[(ulong)uVar4 * 3];\n    do {\n      if (uVar13 == 0) break;\n      uVar13 = uVar13 - 1;\n      cVar3 = *pcVar11;\n      pcVar11 = pcVar11 + (ulong)bVar17 * -2 + 1;\n    } while (cVar3 != '\0');\n    pcVar11 = (char *)((long)local_b8 + (~uVar13 - 1));\n    pcVar5 = strpbrk(pcVar11,"@/?#;");\n    pcVar14 = pcVar11;\n    if ((pcVar5 != (char *)0x0) && (pcVar14 = pcVar5 + 1, *pcVar5 != '@')) {\n      pcVar14 = pcVar11;\n    }\n    pcVar5 = (char *)FUN_00135653(uVar4);\n    if (*pcVar14 == '[') {\n      local_a8 = pcVar14 + 1;\n      local_a0 = strchr(local_a8,0x5d);\n      if (local_a0 == (char *)0x0) {\n        iVar15 = 6;\n      }\n      else {\n        cVar3 = FUN_0011c7c7(local_a8,local_a0);\n        if (cVar3 == '\0') {\n          iVar15 = 8;\n        }\n        else {\n          pcVar6 = local_a0 + 1;\n          pcVar7 = strchr(pcVar5,(int)local_a0[1]);\n          if (pcVar7 != (char *)0x0) goto LAB_00137554;\n          iVar15 = 3;\n        }\n      }\n    }\n    else {\n      pcVar6 = strpbrk(pcVar14,pcVar5);\n      local_a8 = pcVar14;\n      local_a0 = pcVar6;\n      if (pcVar6 == (char *)0x0) {\n        uVar13 = 0xffffffffffffffff;\n        pcVar6 = pcVar14;\n        do {\n          if (uVar13 == 0) break;\n          uVar13 = uVar13 - 1;\n          cVar3 = *pcVar6;\n          pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n        } while (cVar3 != '\0');\n        pcVar6 = pcVar14 + (~uVar13 - 1);\n        local_a0 = pcVar6;\n      }\nLAB_00137554:\n      if (local_a8 == local_a0) {\n        iVar15 = 3;\n      }\n      else {\n        local_74 = *(uint *)(&DAT_0016e350 + (ulong)uVar4 * 0x18);\n        pcVar7 = pcVar6;\n        if (*pcVar6 == ':') {\n          __s = pcVar6 + 1;\n          pcVar7 = strpbrk(__s,pcVar5 + 1);\n          if (pcVar7 == (char *)0x0) {\n            uVar13 = 0xffffffffffffffff;\n            pcVar7 = __s;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar7;\n              pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');\n            pcVar7 = pcVar6 + ~uVar13;\n          }\n          if (__s != pcVar7) {\n            if (__s < pcVar7) {\n              local_74 = (int)pcVar6[1] - 0x30;\n              if (local_74 < 10) {\n                do {\n                  __s = __s + 1;\n                  if (__s == pcVar7) goto LAB_00137584;\n                  if (9 < (int)*__s - 0x30U) {\n                    iVar15 = 4;\n                    goto LAB_00137c65;\n                  }\n                  local_74 = *__s + -0x30 + local_74 * 10;\n                } while ((int)local_74 < 0x10000);\n                iVar15 = 4;\n              }\n              else {\n                iVar15 = 4;\n              }\n              goto LAB_00137c65;\n            }\n            local_74 = 0;\n          }\n        }\nLAB_00137584:\n        local_80 = (char *)0x0;\n        local_88 = (char *)0x0;\n        pcVar6 = pcVar7;\n        if (*pcVar7 == '/') {\n          local_88 = pcVar7 + 1;\n          pcVar6 = strpbrk(local_88,pcVar5 + 2);\n          local_80 = pcVar6;\n          if (pcVar6 == (char *)0x0) {\n            uVar13 = 0xffffffffffffffff;\n            pcVar6 = local_88;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');\n            pcVar6 = pcVar7 + ~uVar13;\n            local_80 = pcVar6;\n          }\n        }\n        local_90 = pcVar5 + 3;\n        uVar2 = (&DAT_0016e354)[(ulong)uVar4 * 6];\n        if ((uVar2 & 2) == 0) {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n        }\n        else {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n          pcVar7 = pcVar6;\n          if (*pcVar6 == ';') {\n            local_70 = pcVar6 + 1;\n            pcVar7 = strpbrk(local_70,local_90);\n            local_60 = pcVar7;\n            if (pcVar7 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar7 = local_70;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar7;\n                pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar7 = pcVar6 + ~uVar13;\n              local_60 = pcVar7;\n            }\n          }\n          local_90 = pcVar5 + 4;\n          pcVar6 = pcVar7;\n        }\n        if ((uVar2 & 4) == 0) {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n        }\n        else {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n          pcVar5 = pcVar6;\n          if (*pcVar6 == '?') {\n            local_b0 = pcVar6 + 1;\n            pcVar5 = strpbrk(local_b0,local_90);\n            local_58 = pcVar5;\n            if (pcVar5 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_b0;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar5 = pcVar6 + ~uVar13;\n              local_58 = pcVar5;\n            }\n          }\n          local_90 = local_90 + 1;\n          pcVar6 = pcVar5;\n        }\n        if ((uVar2 & 8) == 0) {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n        }\n        else {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n          if (*pcVar6 == '#') {\n            local_68 = pcVar6 + 1;\n            local_50 = strpbrk(local_68,local_90);\n            if (local_50 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_68;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              local_50 = pcVar6 + ~uVar13;\n            }\n          }\n        }\n        if (pcVar11 == pcVar14) {\n          pcVar5 = (char *)0x0;\n          uVar8 = 0;\nLAB_001379c6:\n          piVar9 = (int *)FUN_0014967c(1,0x60);\n          piVar9[2] = uVar4;\n          uVar10 = FUN_0013a40c(local_a8,local_a0);\n          *(undefined8 *)(piVar9 + 4) = uVar10;\n          piVar9[6] = local_74;\n          *(undefined8 *)(piVar9 + 0x14) = uVar8;\n          *(char **)(piVar9 + 0x16) = pcVar5;\n          pcVar11 = (char *)FUN_0013a40c(local_88,local_80);\n          *(char **)(piVar9 + 8) = pcVar11;\n          uVar13 = 0xffffffffffffffff;\n          pcVar14 = pcVar11;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar3 = *pcVar14;\n            pcVar14 = pcVar14 + (ulong)bVar17 * -2 + 1;\n          } while (cVar3 != '\0');\n          pcVar14 = pcVar11 + (~uVar13 - 1);\n          pcVar5 = pcVar11;\n          if (pcVar11 < pcVar14) {\n            pcVar7 = pcVar11;\n            pcVar6 = pcVar11;\n            do {\n              cVar3 = *pcVar11;\n              if (cVar3 == '.') {\n                cVar1 = pcVar11[1];\n                if ((cVar1 == '/') || (cVar1 == '\0')) {\n                  pcVar11 = pcVar11 + 2;\n                }\n                else {\n                  if ((cVar1 != '.') || ((pcVar11[2] != '/' && (pcVar11[2] != '\0'))))\n                  goto LAB_00137e1d;\n                  if (pcVar6 < pcVar7) {\n                    pcVar5 = pcVar7 + -1;\n                    if (pcVar6 < pcVar5) {\n                      cVar3 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar3 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar3 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar5 = pcVar7;\n                    if (uVar4 - 2 < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }\n                  pcVar11 = pcVar11 + 3;\n                  pcVar7 = pcVar5;\n                }\n              }\n              else {\nLAB_00137e1d:\n                if (pcVar7 == pcVar11) {\n                  pcVar5 = pcVar7;\n                  if (pcVar14 <= pcVar7) break;\n                  cVar3 = *pcVar7;\n                  while (cVar3 != '/') {\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar14;\n                    if (pcVar14 == pcVar5) goto LAB_00137d7b;\n                    cVar3 = *pcVar5;\n                  }\n                  pcVar11 = pcVar5 + 1;\n                  pcVar7 = pcVar5 + 1;\n                }\n                else {\n                  pcVar5 = pcVar11;\n                  if (pcVar14 <= pcVar11) break;\n                  while (cVar3 != '/') {\n                    pcVar11 = pcVar11 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar3;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar14;\n                    if (pcVar14 == pcVar11) goto LAB_00137d7b;\n                    cVar3 = *pcVar11;\n                  }\n                  *pcVar7 = *pcVar11;\n                  pcVar11 = pcVar11 + 1;\n                  pcVar7 = pcVar7 + 1;\n                }\n              }\n              pcVar5 = pcVar11;\n            } while (pcVar11 < pcVar14);\nLAB_00137d7b:\n            pcVar11 = pcVar7;\n            if (pcVar5 != pcVar7) {\n              *pcVar7 = '\0';\n            }\n          }\n          pcVar14 = *(char **)(piVar9 + 8);\n          pcVar6 = strrchr(pcVar14,0x2f);\n          if (pcVar6 == (char *)0x0) {\n            uVar8 = FUN_001496d9(&DAT_0015ea35);\n            *(undefined8 *)(piVar9 + 0x10) = uVar8;\n            uVar8 = FUN_001496d9(pcVar14);\n            *(undefined8 *)(piVar9 + 0x12) = uVar8;\n          }\n          else {\n            uVar8 = FUN_0013a40c(pcVar14,pcVar6);\n            *(undefined8 *)(piVar9 + 0x10) = uVar8;\n            uVar8 = FUN_001496d9(pcVar6 + 1);\n            *(undefined8 *)(piVar9 + 0x12) = uVar8;\n          }\n          FUN_00135c58(*(undefined8 *)(piVar9 + 0x10));\n          FUN_00135c58(*(undefined8 *)(piVar9 + 0x12));\n          pcVar14 = *(char **)(piVar9 + 4);\n          cVar3 = *pcVar14;\n          if (cVar3 == '\0') {\n            bVar17 = 0;\n          }\n          else {\n            bVar17 = 0;\n            do {\n              if ((int)cVar3 - 0x41U < 0x1a) {\n                *pcVar14 = cVar3 + ' ';\n                bVar17 = 1;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            } while (cVar3 != '\0');\n          }\n          pcVar14 = *(char **)(piVar9 + 4);\n          pcVar6 = strchr(pcVar14,0x25);\n          if (pcVar6 != (char *)0x0) {\n            FUN_00135c58(pcVar14);\n            pcVar14 = *(char **)(piVar9 + 4);\n            cVar3 = *pcVar14;\n            while (cVar3 != '\0') {\n              if ((-1 < cVar3) && ((cVar3 < ' ' || (cVar3 == '\x7f')))) {\n                FUN_0013629a(piVar9);\n                iVar15 = 3;\n                goto LAB_00137c65;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            }\n            bVar17 = param_3 != 0 & DAT_00177606;\n            if (bVar17 == 0) {\n              bVar17 = 1;\n            }\n            else {\n              lVar12 = FUN_0013eaa4(param_3);\n              if (lVar12 != 0) {\n                free(*(void **)(piVar9 + 4));\n                *(long *)(piVar9 + 4) = lVar12;\n              }\n            }\n          }\n          if (local_70 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_70,local_60);\n            *(undefined8 *)(piVar9 + 10) = uVar8;\n          }\n          if (local_b0 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_b0,local_58);\n            *(undefined8 *)(piVar9 + 0xc) = uVar8;\n          }\n          if (local_68 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_68,local_50);\n            *(undefined8 *)(piVar9 + 0xe) = uVar8;\n          }\n          param_2 = piVar9;\n          if ((((DAT_00177606 == 0) && (pcVar5 == pcVar11)) && (*(long *)(piVar9 + 0xe) == 0)) &&\n             ((local_88 != local_80 && (bVar17 == 0)))) {\n            if (local_b8 == param_1) {\n              uVar8 = FUN_001496d9(param_1);\n              *(undefined8 *)piVar9 = uVar8;\n            }\n            else {\n              *(void **)piVar9 = local_b8;\n            }\n          }\n          else {\n            uVar8 = FUN_00137051(piVar9,0);\n            *(undefined8 *)piVar9 = uVar8;\n            if (local_b8 != param_1) {\n              free(local_b8);\n            }\n          }\n          goto LAB_00137c95;\n        }\n        pcVar14 = pcVar14 + -1;\n        if (pcVar14 == pcVar11) {\n          iVar15 = 5;\n        }\n        else {\n          pcVar6 = (char *)memchr(pcVar11,0x3a,(long)pcVar14 - (long)pcVar11);\n          if (pcVar11 != pcVar6) {\n            pcVar5 = pcVar6;\n            if (pcVar6 != (char *)0x0) {\n              pcVar5 = (char *)FUN_0013a40c(pcVar6 + 1,pcVar14);\n              FUN_00135c58(pcVar5);\n              pcVar14 = pcVar6;\n            }\n            uVar8 = FUN_0013a40c(pcVar11,pcVar14);\n            FUN_00135c58(uVar8);\n            goto LAB_001379c6;\n          }\n          iVar15 = 5;\n        }\n      }\n    }\nLAB_00137c65:\n    if ((local_b8 != (void *)0x0) && (local_b8 != param_1)) {\n      free(local_b8);\n    }\n  }" else (compound_statement "{\n    if ((param_3 == 0) || (*(char *)(param_3 + 0x18) == '\0')) {\nLAB_001374b5:\n      local_b8 = param_1;\n      if (param_4 != '\0') {\n        local_b8 = (void *)FUN_00135ae4(param_1);\n      }\n    }\n    else {\n      local_48 = (void *)0x0;\n      pvVar16 = *(void **)(param_3 + 0x10);\n      if (*(void **)(param_3 + 0x10) == (void *)0x0) {\n        pvVar16 = param_1;\n      }\n      cVar3 = FUN_0013e9b4(param_3,pvVar16,&local_48);\n      *(char *)(param_3 + 0x18) = cVar3;\n      if (cVar3 == '\0') goto LAB_001374b5;\n      free(*(void **)(param_3 + 0x10));\n      *(undefined8 *)(param_3 + 0x10) = 0;\n      uVar8 = FUN_001496d9(param_1);\n      *(undefined8 *)(param_3 + 0x10) = uVar8;\n      local_b8 = (void *)FUN_00135ae4(local_48);\n      if (local_48 != local_b8) {\n        free(local_48);\n      }\n    }\n    uVar13 = 0xffffffffffffffff;\n    pcVar11 = (&PTR_s_http____0016e348)[(ulong)uVar4 * 3];\n    do {\n      if (uVar13 == 0) break;\n      uVar13 = uVar13 - 1;\n      cVar3 = *pcVar11;\n      pcVar11 = pcVar11 + (ulong)bVar17 * -2 + 1;\n    } while (cVar3 != '\0');\n    pcVar11 = (char *)((long)local_b8 + (~uVar13 - 1));\n    pcVar5 = strpbrk(pcVar11,"@/?#;");\n    pcVar14 = pcVar11;\n    if ((pcVar5 != (char *)0x0) && (pcVar14 = pcVar5 + 1, *pcVar5 != '@')) {\n      pcVar14 = pcVar11;\n    }\n    pcVar5 = (char *)FUN_00135653(uVar4);\n    if (*pcVar14 == '[') {\n      local_a8 = pcVar14 + 1;\n      local_a0 = strchr(local_a8,0x5d);\n      if (local_a0 == (char *)0x0) {\n        iVar15 = 6;\n      }\n      else {\n        cVar3 = FUN_0011c7c7(local_a8,local_a0);\n        if (cVar3 == '\0') {\n          iVar15 = 8;\n        }\n        else {\n          pcVar6 = local_a0 + 1;\n          pcVar7 = strchr(pcVar5,(int)local_a0[1]);\n          if (pcVar7 != (char *)0x0) goto LAB_00137554;\n          iVar15 = 3;\n        }\n      }\n    }\n    else {\n      pcVar6 = strpbrk(pcVar14,pcVar5);\n      local_a8 = pcVar14;\n      local_a0 = pcVar6;\n      if (pcVar6 == (char *)0x0) {\n        uVar13 = 0xffffffffffffffff;\n        pcVar6 = pcVar14;\n        do {\n          if (uVar13 == 0) break;\n          uVar13 = uVar13 - 1;\n          cVar3 = *pcVar6;\n          pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n        } while (cVar3 != '\0');\n        pcVar6 = pcVar14 + (~uVar13 - 1);\n        local_a0 = pcVar6;\n      }\nLAB_00137554:\n      if (local_a8 == local_a0) {\n        iVar15 = 3;\n      }\n      else {\n        local_74 = *(uint *)(&DAT_0016e350 + (ulong)uVar4 * 0x18);\n        pcVar7 = pcVar6;\n        if (*pcVar6 == ':') {\n          __s = pcVar6 + 1;\n          pcVar7 = strpbrk(__s,pcVar5 + 1);\n          if (pcVar7 == (char *)0x0) {\n            uVar13 = 0xffffffffffffffff;\n            pcVar7 = __s;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar7;\n              pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');\n            pcVar7 = pcVar6 + ~uVar13;\n          }\n          if (__s != pcVar7) {\n            if (__s < pcVar7) {\n              local_74 = (int)pcVar6[1] - 0x30;\n              if (local_74 < 10) {\n                do {\n                  __s = __s + 1;\n                  if (__s == pcVar7) goto LAB_00137584;\n                  if (9 < (int)*__s - 0x30U) {\n                    iVar15 = 4;\n                    goto LAB_00137c65;\n                  }\n                  local_74 = *__s + -0x30 + local_74 * 10;\n                } while ((int)local_74 < 0x10000);\n                iVar15 = 4;\n              }\n              else {\n                iVar15 = 4;\n              }\n              goto LAB_00137c65;\n            }\n            local_74 = 0;\n          }\n        }\nLAB_00137584:\n        local_80 = (char *)0x0;\n        local_88 = (char *)0x0;\n        pcVar6 = pcVar7;\n        if (*pcVar7 == '/') {\n          local_88 = pcVar7 + 1;\n          pcVar6 = strpbrk(local_88,pcVar5 + 2);\n          local_80 = pcVar6;\n          if (pcVar6 == (char *)0x0) {\n            uVar13 = 0xffffffffffffffff;\n            pcVar6 = local_88;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');\n            pcVar6 = pcVar7 + ~uVar13;\n            local_80 = pcVar6;\n          }\n        }\n        local_90 = pcVar5 + 3;\n        uVar2 = (&DAT_0016e354)[(ulong)uVar4 * 6];\n        if ((uVar2 & 2) == 0) {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n        }\n        else {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n          pcVar7 = pcVar6;\n          if (*pcVar6 == ';') {\n            local_70 = pcVar6 + 1;\n            pcVar7 = strpbrk(local_70,local_90);\n            local_60 = pcVar7;\n            if (pcVar7 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar7 = local_70;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar7;\n                pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar7 = pcVar6 + ~uVar13;\n              local_60 = pcVar7;\n            }\n          }\n          local_90 = pcVar5 + 4;\n          pcVar6 = pcVar7;\n        }\n        if ((uVar2 & 4) == 0) {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n        }\n        else {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n          pcVar5 = pcVar6;\n          if (*pcVar6 == '?') {\n            local_b0 = pcVar6 + 1;\n            pcVar5 = strpbrk(local_b0,local_90);\n            local_58 = pcVar5;\n            if (pcVar5 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_b0;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar5 = pcVar6 + ~uVar13;\n              local_58 = pcVar5;\n            }\n          }\n          local_90 = local_90 + 1;\n          pcVar6 = pcVar5;\n        }\n        if ((uVar2 & 8) == 0) {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n        }\n        else {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n          if (*pcVar6 == '#') {\n            local_68 = pcVar6 + 1;\n            local_50 = strpbrk(local_68,local_90);\n            if (local_50 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_68;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              local_50 = pcVar6 + ~uVar13;\n            }\n          }\n        }\n        if (pcVar11 == pcVar14) {\n          pcVar5 = (char *)0x0;\n          uVar8 = 0;\nLAB_001379c6:\n          piVar9 = (int *)FUN_0014967c(1,0x60);\n          piVar9[2] = uVar4;\n          uVar10 = FUN_0013a40c(local_a8,local_a0);\n          *(undefined8 *)(piVar9 + 4) = uVar10;\n          piVar9[6] = local_74;\n          *(undefined8 *)(piVar9 + 0x14) = uVar8;\n          *(char **)(piVar9 + 0x16) = pcVar5;\n          pcVar11 = (char *)FUN_0013a40c(local_88,local_80);\n          *(char **)(piVar9 + 8) = pcVar11;\n          uVar13 = 0xffffffffffffffff;\n          pcVar14 = pcVar11;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar3 = *pcVar14;\n            pcVar14 = pcVar14 + (ulong)bVar17 * -2 + 1;\n          } while (cVar3 != '\0');\n          pcVar14 = pcVar11 + (~uVar13 - 1);\n          pcVar5 = pcVar11;\n          if (pcVar11 < pcVar14) {\n            pcVar7 = pcVar11;\n            pcVar6 = pcVar11;\n            do {\n              cVar3 = *pcVar11;\n              if (cVar3 == '.') {\n                cVar1 = pcVar11[1];\n                if ((cVar1 == '/') || (cVar1 == '\0')) {\n                  pcVar11 = pcVar11 + 2;\n                }\n                else {\n                  if ((cVar1 != '.') || ((pcVar11[2] != '/' && (pcVar11[2] != '\0'))))\n                  goto LAB_00137e1d;\n                  if (pcVar6 < pcVar7) {\n                    pcVar5 = pcVar7 + -1;\n                    if (pcVar6 < pcVar5) {\n                      cVar3 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar3 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar3 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar5 = pcVar7;\n                    if (uVar4 - 2 < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }\n                  pcVar11 = pcVar11 + 3;\n                  pcVar7 = pcVar5;\n                }\n              }\n              else {\nLAB_00137e1d:\n                if (pcVar7 == pcVar11) {\n                  pcVar5 = pcVar7;\n                  if (pcVar14 <= pcVar7) break;\n                  cVar3 = *pcVar7;\n                  while (cVar3 != '/') {\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar14;\n                    if (pcVar14 == pcVar5) goto LAB_00137d7b;\n                    cVar3 = *pcVar5;\n                  }\n                  pcVar11 = pcVar5 + 1;\n                  pcVar7 = pcVar5 + 1;\n                }\n                else {\n                  pcVar5 = pcVar11;\n                  if (pcVar14 <= pcVar11) break;\n                  while (cVar3 != '/') {\n                    pcVar11 = pcVar11 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar3;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar14;\n                    if (pcVar14 == pcVar11) goto LAB_00137d7b;\n                    cVar3 = *pcVar11;\n                  }\n                  *pcVar7 = *pcVar11;\n                  pcVar11 = pcVar11 + 1;\n                  pcVar7 = pcVar7 + 1;\n                }\n              }\n              pcVar5 = pcVar11;\n            } while (pcVar11 < pcVar14);\nLAB_00137d7b:\n            pcVar11 = pcVar7;\n            if (pcVar5 != pcVar7) {\n              *pcVar7 = '\0';\n            }\n          }\n          pcVar14 = *(char **)(piVar9 + 8);\n          pcVar6 = strrchr(pcVar14,0x2f);\n          if (pcVar6 == (char *)0x0) {\n            uVar8 = FUN_001496d9(&DAT_0015ea35);\n            *(undefined8 *)(piVar9 + 0x10) = uVar8;\n            uVar8 = FUN_001496d9(pcVar14);\n            *(undefined8 *)(piVar9 + 0x12) = uVar8;\n          }\n          else {\n            uVar8 = FUN_0013a40c(pcVar14,pcVar6);\n            *(undefined8 *)(piVar9 + 0x10) = uVar8;\n            uVar8 = FUN_001496d9(pcVar6 + 1);\n            *(undefined8 *)(piVar9 + 0x12) = uVar8;\n          }\n          FUN_00135c58(*(undefined8 *)(piVar9 + 0x10));\n          FUN_00135c58(*(undefined8 *)(piVar9 + 0x12));\n          pcVar14 = *(char **)(piVar9 + 4);\n          cVar3 = *pcVar14;\n          if (cVar3 == '\0') {\n            bVar17 = 0;\n          }\n          else {\n            bVar17 = 0;\n            do {\n              if ((int)cVar3 - 0x41U < 0x1a) {\n                *pcVar14 = cVar3 + ' ';\n                bVar17 = 1;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            } while (cVar3 != '\0');\n          }\n          pcVar14 = *(char **)(piVar9 + 4);\n          pcVar6 = strchr(pcVar14,0x25);\n          if (pcVar6 != (char *)0x0) {\n            FUN_00135c58(pcVar14);\n            pcVar14 = *(char **)(piVar9 + 4);\n            cVar3 = *pcVar14;\n            while (cVar3 != '\0') {\n              if ((-1 < cVar3) && ((cVar3 < ' ' || (cVar3 == '\x7f')))) {\n                FUN_0013629a(piVar9);\n                iVar15 = 3;\n                goto LAB_00137c65;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            }\n            bVar17 = param_3 != 0 & DAT_00177606;\n            if (bVar17 == 0) {\n              bVar17 = 1;\n            }\n            else {\n              lVar12 = FUN_0013eaa4(param_3);\n              if (lVar12 != 0) {\n                free(*(void **)(piVar9 + 4));\n                *(long *)(piVar9 + 4) = lVar12;\n              }\n            }\n          }\n          if (local_70 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_70,local_60);\n            *(undefined8 *)(piVar9 + 10) = uVar8;\n          }\n          if (local_b0 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_b0,local_58);\n            *(undefined8 *)(piVar9 + 0xc) = uVar8;\n          }\n          if (local_68 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_68,local_50);\n            *(undefined8 *)(piVar9 + 0xe) = uVar8;\n          }\n          param_2 = piVar9;\n          if ((((DAT_00177606 == 0) && (pcVar5 == pcVar11)) && (*(long *)(piVar9 + 0xe) == 0)) &&\n             ((local_88 != local_80 && (bVar17 == 0)))) {\n            if (local_b8 == param_1) {\n              uVar8 = FUN_001496d9(param_1);\n              *(undefined8 *)piVar9 = uVar8;\n            }\n            else {\n              *(void **)piVar9 = local_b8;\n            }\n          }\n          else {\n            uVar8 = FUN_00137051(piVar9,0);\n            *(undefined8 *)piVar9 = uVar8;\n            if (local_b8 != param_1) {\n              free(local_b8);\n            }\n          }\n          goto LAB_00137c95;\n        }\n        pcVar14 = pcVar14 + -1;\n        if (pcVar14 == pcVar11) {\n          iVar15 = 5;\n        }\n        else {\n          pcVar6 = (char *)memchr(pcVar11,0x3a,(long)pcVar14 - (long)pcVar11);\n          if (pcVar11 != pcVar6) {\n            pcVar5 = pcVar6;\n            if (pcVar6 != (char *)0x0) {\n              pcVar5 = (char *)FUN_0013a40c(pcVar6 + 1,pcVar14);\n              FUN_00135c58(pcVar5);\n              pcVar14 = pcVar6;\n            }\n            uVar8 = FUN_0013a40c(pcVar11,pcVar14);\n            FUN_00135c58(uVar8);\n            goto LAB_001379c6;\n          }\n          iVar15 = 5;\n        }\n      }\n    }\nLAB_00137c65:\n    if ((local_b8 != (void *)0x0) && (local_b8 != param_1)) {\n      free(local_b8);\n    }\n  }" { (if_statement "if ((param_3 == 0) || (*(char *)(param_3 + 0x18) == '\0')) {\nLAB_001374b5:\n      local_b8 = param_1;\n      if (param_4 != '\0') {\n        local_b8 = (void *)FUN_00135ae4(param_1);\n      }\n    }\n    else {\n      local_48 = (void *)0x0;\n      pvVar16 = *(void **)(param_3 + 0x10);\n      if (*(void **)(param_3 + 0x10) == (void *)0x0) {\n        pvVar16 = param_1;\n      }\n      cVar3 = FUN_0013e9b4(param_3,pvVar16,&local_48);\n      *(char *)(param_3 + 0x18) = cVar3;\n      if (cVar3 == '\0') goto LAB_001374b5;\n      free(*(void **)(param_3 + 0x10));\n      *(undefined8 *)(param_3 + 0x10) = 0;\n      uVar8 = FUN_001496d9(param_1);\n      *(undefined8 *)(param_3 + 0x10) = uVar8;\n      local_b8 = (void *)FUN_00135ae4(local_48);\n      if (local_48 != local_b8) {\n        free(local_48);\n      }\n    }" if (parenthesized_expression "((param_3 == 0) || (*(char *)(param_3 + 0x18) == '\0'))" ( (binary_expression "(param_3 == 0) || (*(char *)(param_3 + 0x18) == '\0')" (parenthesized_expression "(param_3 == 0)" ( (binary_expression "param_3 == 0" identifier == number_literal) )) || (parenthesized_expression "(*(char *)(param_3 + 0x18) == '\0')" ( (binary_expression "*(char *)(param_3 + 0x18) == '\0'" (pointer_expression "*(char *)(param_3 + 0x18)" * (cast_expression "(char *)(param_3 + 0x18)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x18)" ( (binary_expression "param_3 + 0x18" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\nLAB_001374b5:\n      local_b8 = param_1;\n      if (param_4 != '\0') {\n        local_b8 = (void *)FUN_00135ae4(param_1);\n      }\n    }" { (labeled_statement "LAB_001374b5:\n      local_b8 = param_1;" statement_identifier : (expression_statement "local_b8 = param_1;" (assignment_expression "local_b8 = param_1" identifier = identifier) ;)) (if_statement "if (param_4 != '\0') {\n        local_b8 = (void *)FUN_00135ae4(param_1);\n      }" if (parenthesized_expression "(param_4 != '\0')" ( (binary_expression "param_4 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        local_b8 = (void *)FUN_00135ae4(param_1);\n      }" { (expression_statement "local_b8 = (void *)FUN_00135ae4(param_1);" (assignment_expression "local_b8 = (void *)FUN_00135ae4(param_1)" identifier = (cast_expression "(void *)FUN_00135ae4(param_1)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00135ae4(param_1)" identifier (argument_list "(param_1)" ( identifier ))))) ;) })) }) (else_clause "else {\n      local_48 = (void *)0x0;\n      pvVar16 = *(void **)(param_3 + 0x10);\n      if (*(void **)(param_3 + 0x10) == (void *)0x0) {\n        pvVar16 = param_1;\n      }\n      cVar3 = FUN_0013e9b4(param_3,pvVar16,&local_48);\n      *(char *)(param_3 + 0x18) = cVar3;\n      if (cVar3 == '\0') goto LAB_001374b5;\n      free(*(void **)(param_3 + 0x10));\n      *(undefined8 *)(param_3 + 0x10) = 0;\n      uVar8 = FUN_001496d9(param_1);\n      *(undefined8 *)(param_3 + 0x10) = uVar8;\n      local_b8 = (void *)FUN_00135ae4(local_48);\n      if (local_48 != local_b8) {\n        free(local_48);\n      }\n    }" else (compound_statement "{\n      local_48 = (void *)0x0;\n      pvVar16 = *(void **)(param_3 + 0x10);\n      if (*(void **)(param_3 + 0x10) == (void *)0x0) {\n        pvVar16 = param_1;\n      }\n      cVar3 = FUN_0013e9b4(param_3,pvVar16,&local_48);\n      *(char *)(param_3 + 0x18) = cVar3;\n      if (cVar3 == '\0') goto LAB_001374b5;\n      free(*(void **)(param_3 + 0x10));\n      *(undefined8 *)(param_3 + 0x10) = 0;\n      uVar8 = FUN_001496d9(param_1);\n      *(undefined8 *)(param_3 + 0x10) = uVar8;\n      local_b8 = (void *)FUN_00135ae4(local_48);\n      if (local_48 != local_b8) {\n        free(local_48);\n      }\n    }" { (expression_statement "local_48 = (void *)0x0;" (assignment_expression "local_48 = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pvVar16 = *(void **)(param_3 + 0x10);" (assignment_expression "pvVar16 = *(void **)(param_3 + 0x10)" identifier = (pointer_expression "*(void **)(param_3 + 0x10)" * (cast_expression "(void **)(param_3 + 0x10)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_3 + 0x10)" ( (binary_expression "param_3 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if (*(void **)(param_3 + 0x10) == (void *)0x0) {\n        pvVar16 = param_1;\n      }" if (parenthesized_expression "(*(void **)(param_3 + 0x10) == (void *)0x0)" ( (binary_expression "*(void **)(param_3 + 0x10) == (void *)0x0" (pointer_expression "*(void **)(param_3 + 0x10)" * (cast_expression "(void **)(param_3 + 0x10)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_3 + 0x10)" ( (binary_expression "param_3 + 0x10" identifier + number_literal) )))) == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pvVar16 = param_1;\n      }" { (expression_statement "pvVar16 = param_1;" (assignment_expression "pvVar16 = param_1" identifier = identifier) ;) })) (expression_statement "cVar3 = FUN_0013e9b4(param_3,pvVar16,&local_48);" (assignment_expression "cVar3 = FUN_0013e9b4(param_3,pvVar16,&local_48)" identifier = (call_expression "FUN_0013e9b4(param_3,pvVar16,&local_48)" identifier (argument_list "(param_3,pvVar16,&local_48)" ( identifier , identifier , (pointer_expression "&local_48" & identifier) )))) ;) (expression_statement "*(char *)(param_3 + 0x18) = cVar3;" (assignment_expression "*(char *)(param_3 + 0x18) = cVar3" (pointer_expression "*(char *)(param_3 + 0x18)" * (cast_expression "(char *)(param_3 + 0x18)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x18)" ( (binary_expression "param_3 + 0x18" identifier + number_literal) )))) = identifier) ;) (if_statement "if (cVar3 == '\0') goto LAB_001374b5;" if (parenthesized_expression "(cVar3 == '\0')" ( (binary_expression "cVar3 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_001374b5;" goto statement_identifier ;)) (expression_statement "free(*(void **)(param_3 + 0x10));" (call_expression "free(*(void **)(param_3 + 0x10))" identifier (argument_list "(*(void **)(param_3 + 0x10))" ( (pointer_expression "*(void **)(param_3 + 0x10)" * (cast_expression "(void **)(param_3 + 0x10)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_3 + 0x10)" ( (binary_expression "param_3 + 0x10" identifier + number_literal) )))) ))) ;) (expression_statement "*(undefined8 *)(param_3 + 0x10) = 0;" (assignment_expression "*(undefined8 *)(param_3 + 0x10) = 0" (pointer_expression "*(undefined8 *)(param_3 + 0x10)" * (cast_expression "(undefined8 *)(param_3 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x10)" ( (binary_expression "param_3 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar8 = FUN_001496d9(param_1);" (assignment_expression "uVar8 = FUN_001496d9(param_1)" identifier = (call_expression "FUN_001496d9(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "*(undefined8 *)(param_3 + 0x10) = uVar8;" (assignment_expression "*(undefined8 *)(param_3 + 0x10) = uVar8" (pointer_expression "*(undefined8 *)(param_3 + 0x10)" * (cast_expression "(undefined8 *)(param_3 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x10)" ( (binary_expression "param_3 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "local_b8 = (void *)FUN_00135ae4(local_48);" (assignment_expression "local_b8 = (void *)FUN_00135ae4(local_48)" identifier = (cast_expression "(void *)FUN_00135ae4(local_48)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00135ae4(local_48)" identifier (argument_list "(local_48)" ( identifier ))))) ;) (if_statement "if (local_48 != local_b8) {\n        free(local_48);\n      }" if (parenthesized_expression "(local_48 != local_b8)" ( (binary_expression "local_48 != local_b8" identifier != identifier) )) (compound_statement "{\n        free(local_48);\n      }" { (expression_statement "free(local_48);" (call_expression "free(local_48)" identifier (argument_list "(local_48)" ( identifier ))) ;) })) }))) (expression_statement "uVar13 = 0xffffffffffffffff;" (assignment_expression "uVar13 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar11 = (&PTR_s_http____0016e348)[(ulong)uVar4 * 3];" (assignment_expression "pcVar11 = (&PTR_s_http____0016e348)[(ulong)uVar4 * 3]" identifier = (subscript_expression "(&PTR_s_http____0016e348)[(ulong)uVar4 * 3]" (parenthesized_expression "(&PTR_s_http____0016e348)" ( (pointer_expression "&PTR_s_http____0016e348" & identifier) )) [ (binary_expression "(ulong)uVar4 * 3" (cast_expression "(ulong)uVar4" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal) ])) ;) (do_statement "do {\n      if (uVar13 == 0) break;\n      uVar13 = uVar13 - 1;\n      cVar3 = *pcVar11;\n      pcVar11 = pcVar11 + (ulong)bVar17 * -2 + 1;\n    } while (cVar3 != '\0');" do (compound_statement "{\n      if (uVar13 == 0) break;\n      uVar13 = uVar13 - 1;\n      cVar3 = *pcVar11;\n      pcVar11 = pcVar11 + (ulong)bVar17 * -2 + 1;\n    }" { (if_statement "if (uVar13 == 0) break;" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar13 = uVar13 - 1;" (assignment_expression "uVar13 = uVar13 - 1" identifier = (binary_expression "uVar13 - 1" identifier - number_literal)) ;) (expression_statement "cVar3 = *pcVar11;" (assignment_expression "cVar3 = *pcVar11" identifier = (pointer_expression "*pcVar11" * identifier)) ;) (expression_statement "pcVar11 = pcVar11 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pcVar11 = pcVar11 + (ulong)bVar17 * -2 + 1" identifier = (binary_expression "pcVar11 + (ulong)bVar17 * -2 + 1" (binary_expression "pcVar11 + (ulong)bVar17 * -2" identifier + (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar3 != '\0')" ( (binary_expression "cVar3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "pcVar11 = (char *)((long)local_b8 + (~uVar13 - 1));" (assignment_expression "pcVar11 = (char *)((long)local_b8 + (~uVar13 - 1))" identifier = (cast_expression "(char *)((long)local_b8 + (~uVar13 - 1))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_b8 + (~uVar13 - 1))" ( (binary_expression "(long)local_b8 + (~uVar13 - 1)" (cast_expression "(long)local_b8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (parenthesized_expression "(~uVar13 - 1)" ( (binary_expression "~uVar13 - 1" (unary_expression "~uVar13" ~ identifier) - number_literal) ))) )))) ;) (expression_statement "pcVar5 = strpbrk(pcVar11,"@/?#;");" (assignment_expression "pcVar5 = strpbrk(pcVar11,"@/?#;")" identifier = (call_expression "strpbrk(pcVar11,"@/?#;")" identifier (argument_list "(pcVar11,"@/?#;")" ( identifier , (string_literal ""@/?#;"" " string_content ") )))) ;) (expression_statement "pcVar14 = pcVar11;" (assignment_expression "pcVar14 = pcVar11" identifier = identifier) ;) (if_statement "if ((pcVar5 != (char *)0x0) && (pcVar14 = pcVar5 + 1, *pcVar5 != '@')) {\n      pcVar14 = pcVar11;\n    }" if (parenthesized_expression "((pcVar5 != (char *)0x0) && (pcVar14 = pcVar5 + 1, *pcVar5 != '@'))" ( (binary_expression "(pcVar5 != (char *)0x0) && (pcVar14 = pcVar5 + 1, *pcVar5 != '@')" (parenthesized_expression "(pcVar5 != (char *)0x0)" ( (binary_expression "pcVar5 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(pcVar14 = pcVar5 + 1, *pcVar5 != '@')" ( (comma_expression "pcVar14 = pcVar5 + 1, *pcVar5 != '@'" (assignment_expression "pcVar14 = pcVar5 + 1" identifier = (binary_expression "pcVar5 + 1" identifier + number_literal)) , (binary_expression "*pcVar5 != '@'" (pointer_expression "*pcVar5" * identifier) != (char_literal "'@'" ' character '))) ))) )) (compound_statement "{\n      pcVar14 = pcVar11;\n    }" { (expression_statement "pcVar14 = pcVar11;" (assignment_expression "pcVar14 = pcVar11" identifier = identifier) ;) })) (expression_statement "pcVar5 = (char *)FUN_00135653(uVar4);" (assignment_expression "pcVar5 = (char *)FUN_00135653(uVar4)" identifier = (cast_expression "(char *)FUN_00135653(uVar4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00135653(uVar4)" identifier (argument_list "(uVar4)" ( identifier ))))) ;) (if_statement "if (*pcVar14 == '[') {\n      local_a8 = pcVar14 + 1;\n      local_a0 = strchr(local_a8,0x5d);\n      if (local_a0 == (char *)0x0) {\n        iVar15 = 6;\n      }\n      else {\n        cVar3 = FUN_0011c7c7(local_a8,local_a0);\n        if (cVar3 == '\0') {\n          iVar15 = 8;\n        }\n        else {\n          pcVar6 = local_a0 + 1;\n          pcVar7 = strchr(pcVar5,(int)local_a0[1]);\n          if (pcVar7 != (char *)0x0) goto LAB_00137554;\n          iVar15 = 3;\n        }\n      }\n    }\n    else {\n      pcVar6 = strpbrk(pcVar14,pcVar5);\n      local_a8 = pcVar14;\n      local_a0 = pcVar6;\n      if (pcVar6 == (char *)0x0) {\n        uVar13 = 0xffffffffffffffff;\n        pcVar6 = pcVar14;\n        do {\n          if (uVar13 == 0) break;\n          uVar13 = uVar13 - 1;\n          cVar3 = *pcVar6;\n          pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n        } while (cVar3 != '\0');\n        pcVar6 = pcVar14 + (~uVar13 - 1);\n        local_a0 = pcVar6;\n      }\nLAB_00137554:\n      if (local_a8 == local_a0) {\n        iVar15 = 3;\n      }\n      else {\n        local_74 = *(uint *)(&DAT_0016e350 + (ulong)uVar4 * 0x18);\n        pcVar7 = pcVar6;\n        if (*pcVar6 == ':') {\n          __s = pcVar6 + 1;\n          pcVar7 = strpbrk(__s,pcVar5 + 1);\n          if (pcVar7 == (char *)0x0) {\n            uVar13 = 0xffffffffffffffff;\n            pcVar7 = __s;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar7;\n              pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');\n            pcVar7 = pcVar6 + ~uVar13;\n          }\n          if (__s != pcVar7) {\n            if (__s < pcVar7) {\n              local_74 = (int)pcVar6[1] - 0x30;\n              if (local_74 < 10) {\n                do {\n                  __s = __s + 1;\n                  if (__s == pcVar7) goto LAB_00137584;\n                  if (9 < (int)*__s - 0x30U) {\n                    iVar15 = 4;\n                    goto LAB_00137c65;\n                  }\n                  local_74 = *__s + -0x30 + local_74 * 10;\n                } while ((int)local_74 < 0x10000);\n                iVar15 = 4;\n              }\n              else {\n                iVar15 = 4;\n              }\n              goto LAB_00137c65;\n            }\n            local_74 = 0;\n          }\n        }\nLAB_00137584:\n        local_80 = (char *)0x0;\n        local_88 = (char *)0x0;\n        pcVar6 = pcVar7;\n        if (*pcVar7 == '/') {\n          local_88 = pcVar7 + 1;\n          pcVar6 = strpbrk(local_88,pcVar5 + 2);\n          local_80 = pcVar6;\n          if (pcVar6 == (char *)0x0) {\n            uVar13 = 0xffffffffffffffff;\n            pcVar6 = local_88;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');\n            pcVar6 = pcVar7 + ~uVar13;\n            local_80 = pcVar6;\n          }\n        }\n        local_90 = pcVar5 + 3;\n        uVar2 = (&DAT_0016e354)[(ulong)uVar4 * 6];\n        if ((uVar2 & 2) == 0) {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n        }\n        else {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n          pcVar7 = pcVar6;\n          if (*pcVar6 == ';') {\n            local_70 = pcVar6 + 1;\n            pcVar7 = strpbrk(local_70,local_90);\n            local_60 = pcVar7;\n            if (pcVar7 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar7 = local_70;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar7;\n                pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar7 = pcVar6 + ~uVar13;\n              local_60 = pcVar7;\n            }\n          }\n          local_90 = pcVar5 + 4;\n          pcVar6 = pcVar7;\n        }\n        if ((uVar2 & 4) == 0) {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n        }\n        else {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n          pcVar5 = pcVar6;\n          if (*pcVar6 == '?') {\n            local_b0 = pcVar6 + 1;\n            pcVar5 = strpbrk(local_b0,local_90);\n            local_58 = pcVar5;\n            if (pcVar5 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_b0;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar5 = pcVar6 + ~uVar13;\n              local_58 = pcVar5;\n            }\n          }\n          local_90 = local_90 + 1;\n          pcVar6 = pcVar5;\n        }\n        if ((uVar2 & 8) == 0) {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n        }\n        else {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n          if (*pcVar6 == '#') {\n            local_68 = pcVar6 + 1;\n            local_50 = strpbrk(local_68,local_90);\n            if (local_50 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_68;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              local_50 = pcVar6 + ~uVar13;\n            }\n          }\n        }\n        if (pcVar11 == pcVar14) {\n          pcVar5 = (char *)0x0;\n          uVar8 = 0;\nLAB_001379c6:\n          piVar9 = (int *)FUN_0014967c(1,0x60);\n          piVar9[2] = uVar4;\n          uVar10 = FUN_0013a40c(local_a8,local_a0);\n          *(undefined8 *)(piVar9 + 4) = uVar10;\n          piVar9[6] = local_74;\n          *(undefined8 *)(piVar9 + 0x14) = uVar8;\n          *(char **)(piVar9 + 0x16) = pcVar5;\n          pcVar11 = (char *)FUN_0013a40c(local_88,local_80);\n          *(char **)(piVar9 + 8) = pcVar11;\n          uVar13 = 0xffffffffffffffff;\n          pcVar14 = pcVar11;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar3 = *pcVar14;\n            pcVar14 = pcVar14 + (ulong)bVar17 * -2 + 1;\n          } while (cVar3 != '\0');\n          pcVar14 = pcVar11 + (~uVar13 - 1);\n          pcVar5 = pcVar11;\n          if (pcVar11 < pcVar14) {\n            pcVar7 = pcVar11;\n            pcVar6 = pcVar11;\n            do {\n              cVar3 = *pcVar11;\n              if (cVar3 == '.') {\n                cVar1 = pcVar11[1];\n                if ((cVar1 == '/') || (cVar1 == '\0')) {\n                  pcVar11 = pcVar11 + 2;\n                }\n                else {\n                  if ((cVar1 != '.') || ((pcVar11[2] != '/' && (pcVar11[2] != '\0'))))\n                  goto LAB_00137e1d;\n                  if (pcVar6 < pcVar7) {\n                    pcVar5 = pcVar7 + -1;\n                    if (pcVar6 < pcVar5) {\n                      cVar3 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar3 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar3 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar5 = pcVar7;\n                    if (uVar4 - 2 < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }\n                  pcVar11 = pcVar11 + 3;\n                  pcVar7 = pcVar5;\n                }\n              }\n              else {\nLAB_00137e1d:\n                if (pcVar7 == pcVar11) {\n                  pcVar5 = pcVar7;\n                  if (pcVar14 <= pcVar7) break;\n                  cVar3 = *pcVar7;\n                  while (cVar3 != '/') {\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar14;\n                    if (pcVar14 == pcVar5) goto LAB_00137d7b;\n                    cVar3 = *pcVar5;\n                  }\n                  pcVar11 = pcVar5 + 1;\n                  pcVar7 = pcVar5 + 1;\n                }\n                else {\n                  pcVar5 = pcVar11;\n                  if (pcVar14 <= pcVar11) break;\n                  while (cVar3 != '/') {\n                    pcVar11 = pcVar11 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar3;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar14;\n                    if (pcVar14 == pcVar11) goto LAB_00137d7b;\n                    cVar3 = *pcVar11;\n                  }\n                  *pcVar7 = *pcVar11;\n                  pcVar11 = pcVar11 + 1;\n                  pcVar7 = pcVar7 + 1;\n                }\n              }\n              pcVar5 = pcVar11;\n            } while (pcVar11 < pcVar14);\nLAB_00137d7b:\n            pcVar11 = pcVar7;\n            if (pcVar5 != pcVar7) {\n              *pcVar7 = '\0';\n            }\n          }\n          pcVar14 = *(char **)(piVar9 + 8);\n          pcVar6 = strrchr(pcVar14,0x2f);\n          if (pcVar6 == (char *)0x0) {\n            uVar8 = FUN_001496d9(&DAT_0015ea35);\n            *(undefined8 *)(piVar9 + 0x10) = uVar8;\n            uVar8 = FUN_001496d9(pcVar14);\n            *(undefined8 *)(piVar9 + 0x12) = uVar8;\n          }\n          else {\n            uVar8 = FUN_0013a40c(pcVar14,pcVar6);\n            *(undefined8 *)(piVar9 + 0x10) = uVar8;\n            uVar8 = FUN_001496d9(pcVar6 + 1);\n            *(undefined8 *)(piVar9 + 0x12) = uVar8;\n          }\n          FUN_00135c58(*(undefined8 *)(piVar9 + 0x10));\n          FUN_00135c58(*(undefined8 *)(piVar9 + 0x12));\n          pcVar14 = *(char **)(piVar9 + 4);\n          cVar3 = *pcVar14;\n          if (cVar3 == '\0') {\n            bVar17 = 0;\n          }\n          else {\n            bVar17 = 0;\n            do {\n              if ((int)cVar3 - 0x41U < 0x1a) {\n                *pcVar14 = cVar3 + ' ';\n                bVar17 = 1;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            } while (cVar3 != '\0');\n          }\n          pcVar14 = *(char **)(piVar9 + 4);\n          pcVar6 = strchr(pcVar14,0x25);\n          if (pcVar6 != (char *)0x0) {\n            FUN_00135c58(pcVar14);\n            pcVar14 = *(char **)(piVar9 + 4);\n            cVar3 = *pcVar14;\n            while (cVar3 != '\0') {\n              if ((-1 < cVar3) && ((cVar3 < ' ' || (cVar3 == '\x7f')))) {\n                FUN_0013629a(piVar9);\n                iVar15 = 3;\n                goto LAB_00137c65;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            }\n            bVar17 = param_3 != 0 & DAT_00177606;\n            if (bVar17 == 0) {\n              bVar17 = 1;\n            }\n            else {\n              lVar12 = FUN_0013eaa4(param_3);\n              if (lVar12 != 0) {\n                free(*(void **)(piVar9 + 4));\n                *(long *)(piVar9 + 4) = lVar12;\n              }\n            }\n          }\n          if (local_70 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_70,local_60);\n            *(undefined8 *)(piVar9 + 10) = uVar8;\n          }\n          if (local_b0 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_b0,local_58);\n            *(undefined8 *)(piVar9 + 0xc) = uVar8;\n          }\n          if (local_68 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_68,local_50);\n            *(undefined8 *)(piVar9 + 0xe) = uVar8;\n          }\n          param_2 = piVar9;\n          if ((((DAT_00177606 == 0) && (pcVar5 == pcVar11)) && (*(long *)(piVar9 + 0xe) == 0)) &&\n             ((local_88 != local_80 && (bVar17 == 0)))) {\n            if (local_b8 == param_1) {\n              uVar8 = FUN_001496d9(param_1);\n              *(undefined8 *)piVar9 = uVar8;\n            }\n            else {\n              *(void **)piVar9 = local_b8;\n            }\n          }\n          else {\n            uVar8 = FUN_00137051(piVar9,0);\n            *(undefined8 *)piVar9 = uVar8;\n            if (local_b8 != param_1) {\n              free(local_b8);\n            }\n          }\n          goto LAB_00137c95;\n        }\n        pcVar14 = pcVar14 + -1;\n        if (pcVar14 == pcVar11) {\n          iVar15 = 5;\n        }\n        else {\n          pcVar6 = (char *)memchr(pcVar11,0x3a,(long)pcVar14 - (long)pcVar11);\n          if (pcVar11 != pcVar6) {\n            pcVar5 = pcVar6;\n            if (pcVar6 != (char *)0x0) {\n              pcVar5 = (char *)FUN_0013a40c(pcVar6 + 1,pcVar14);\n              FUN_00135c58(pcVar5);\n              pcVar14 = pcVar6;\n            }\n            uVar8 = FUN_0013a40c(pcVar11,pcVar14);\n            FUN_00135c58(uVar8);\n            goto LAB_001379c6;\n          }\n          iVar15 = 5;\n        }\n      }\n    }" if (parenthesized_expression "(*pcVar14 == '[')" ( (binary_expression "*pcVar14 == '['" (pointer_expression "*pcVar14" * identifier) == (char_literal "'['" ' character ')) )) (compound_statement "{\n      local_a8 = pcVar14 + 1;\n      local_a0 = strchr(local_a8,0x5d);\n      if (local_a0 == (char *)0x0) {\n        iVar15 = 6;\n      }\n      else {\n        cVar3 = FUN_0011c7c7(local_a8,local_a0);\n        if (cVar3 == '\0') {\n          iVar15 = 8;\n        }\n        else {\n          pcVar6 = local_a0 + 1;\n          pcVar7 = strchr(pcVar5,(int)local_a0[1]);\n          if (pcVar7 != (char *)0x0) goto LAB_00137554;\n          iVar15 = 3;\n        }\n      }\n    }" { (expression_statement "local_a8 = pcVar14 + 1;" (assignment_expression "local_a8 = pcVar14 + 1" identifier = (binary_expression "pcVar14 + 1" identifier + number_literal)) ;) (expression_statement "local_a0 = strchr(local_a8,0x5d);" (assignment_expression "local_a0 = strchr(local_a8,0x5d)" identifier = (call_expression "strchr(local_a8,0x5d)" identifier (argument_list "(local_a8,0x5d)" ( identifier , number_literal )))) ;) (if_statement "if (local_a0 == (char *)0x0) {\n        iVar15 = 6;\n      }\n      else {\n        cVar3 = FUN_0011c7c7(local_a8,local_a0);\n        if (cVar3 == '\0') {\n          iVar15 = 8;\n        }\n        else {\n          pcVar6 = local_a0 + 1;\n          pcVar7 = strchr(pcVar5,(int)local_a0[1]);\n          if (pcVar7 != (char *)0x0) goto LAB_00137554;\n          iVar15 = 3;\n        }\n      }" if (parenthesized_expression "(local_a0 == (char *)0x0)" ( (binary_expression "local_a0 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        iVar15 = 6;\n      }" { (expression_statement "iVar15 = 6;" (assignment_expression "iVar15 = 6" identifier = number_literal) ;) }) (else_clause "else {\n        cVar3 = FUN_0011c7c7(local_a8,local_a0);\n        if (cVar3 == '\0') {\n          iVar15 = 8;\n        }\n        else {\n          pcVar6 = local_a0 + 1;\n          pcVar7 = strchr(pcVar5,(int)local_a0[1]);\n          if (pcVar7 != (char *)0x0) goto LAB_00137554;\n          iVar15 = 3;\n        }\n      }" else (compound_statement "{\n        cVar3 = FUN_0011c7c7(local_a8,local_a0);\n        if (cVar3 == '\0') {\n          iVar15 = 8;\n        }\n        else {\n          pcVar6 = local_a0 + 1;\n          pcVar7 = strchr(pcVar5,(int)local_a0[1]);\n          if (pcVar7 != (char *)0x0) goto LAB_00137554;\n          iVar15 = 3;\n        }\n      }" { (expression_statement "cVar3 = FUN_0011c7c7(local_a8,local_a0);" (assignment_expression "cVar3 = FUN_0011c7c7(local_a8,local_a0)" identifier = (call_expression "FUN_0011c7c7(local_a8,local_a0)" identifier (argument_list "(local_a8,local_a0)" ( identifier , identifier )))) ;) (if_statement "if (cVar3 == '\0') {\n          iVar15 = 8;\n        }\n        else {\n          pcVar6 = local_a0 + 1;\n          pcVar7 = strchr(pcVar5,(int)local_a0[1]);\n          if (pcVar7 != (char *)0x0) goto LAB_00137554;\n          iVar15 = 3;\n        }" if (parenthesized_expression "(cVar3 == '\0')" ( (binary_expression "cVar3 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          iVar15 = 8;\n        }" { (expression_statement "iVar15 = 8;" (assignment_expression "iVar15 = 8" identifier = number_literal) ;) }) (else_clause "else {\n          pcVar6 = local_a0 + 1;\n          pcVar7 = strchr(pcVar5,(int)local_a0[1]);\n          if (pcVar7 != (char *)0x0) goto LAB_00137554;\n          iVar15 = 3;\n        }" else (compound_statement "{\n          pcVar6 = local_a0 + 1;\n          pcVar7 = strchr(pcVar5,(int)local_a0[1]);\n          if (pcVar7 != (char *)0x0) goto LAB_00137554;\n          iVar15 = 3;\n        }" { (expression_statement "pcVar6 = local_a0 + 1;" (assignment_expression "pcVar6 = local_a0 + 1" identifier = (binary_expression "local_a0 + 1" identifier + number_literal)) ;) (expression_statement "pcVar7 = strchr(pcVar5,(int)local_a0[1]);" (assignment_expression "pcVar7 = strchr(pcVar5,(int)local_a0[1])" identifier = (call_expression "strchr(pcVar5,(int)local_a0[1])" identifier (argument_list "(pcVar5,(int)local_a0[1])" ( identifier , (cast_expression "(int)local_a0[1]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "local_a0[1]" identifier [ number_literal ])) )))) ;) (if_statement "if (pcVar7 != (char *)0x0) goto LAB_00137554;" if (parenthesized_expression "(pcVar7 != (char *)0x0)" ( (binary_expression "pcVar7 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00137554;" goto statement_identifier ;)) (expression_statement "iVar15 = 3;" (assignment_expression "iVar15 = 3" identifier = number_literal) ;) }))) }))) }) (else_clause "else {\n      pcVar6 = strpbrk(pcVar14,pcVar5);\n      local_a8 = pcVar14;\n      local_a0 = pcVar6;\n      if (pcVar6 == (char *)0x0) {\n        uVar13 = 0xffffffffffffffff;\n        pcVar6 = pcVar14;\n        do {\n          if (uVar13 == 0) break;\n          uVar13 = uVar13 - 1;\n          cVar3 = *pcVar6;\n          pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n        } while (cVar3 != '\0');\n        pcVar6 = pcVar14 + (~uVar13 - 1);\n        local_a0 = pcVar6;\n      }\nLAB_00137554:\n      if (local_a8 == local_a0) {\n        iVar15 = 3;\n      }\n      else {\n        local_74 = *(uint *)(&DAT_0016e350 + (ulong)uVar4 * 0x18);\n        pcVar7 = pcVar6;\n        if (*pcVar6 == ':') {\n          __s = pcVar6 + 1;\n          pcVar7 = strpbrk(__s,pcVar5 + 1);\n          if (pcVar7 == (char *)0x0) {\n            uVar13 = 0xffffffffffffffff;\n            pcVar7 = __s;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar7;\n              pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');\n            pcVar7 = pcVar6 + ~uVar13;\n          }\n          if (__s != pcVar7) {\n            if (__s < pcVar7) {\n              local_74 = (int)pcVar6[1] - 0x30;\n              if (local_74 < 10) {\n                do {\n                  __s = __s + 1;\n                  if (__s == pcVar7) goto LAB_00137584;\n                  if (9 < (int)*__s - 0x30U) {\n                    iVar15 = 4;\n                    goto LAB_00137c65;\n                  }\n                  local_74 = *__s + -0x30 + local_74 * 10;\n                } while ((int)local_74 < 0x10000);\n                iVar15 = 4;\n              }\n              else {\n                iVar15 = 4;\n              }\n              goto LAB_00137c65;\n            }\n            local_74 = 0;\n          }\n        }\nLAB_00137584:\n        local_80 = (char *)0x0;\n        local_88 = (char *)0x0;\n        pcVar6 = pcVar7;\n        if (*pcVar7 == '/') {\n          local_88 = pcVar7 + 1;\n          pcVar6 = strpbrk(local_88,pcVar5 + 2);\n          local_80 = pcVar6;\n          if (pcVar6 == (char *)0x0) {\n            uVar13 = 0xffffffffffffffff;\n            pcVar6 = local_88;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');\n            pcVar6 = pcVar7 + ~uVar13;\n            local_80 = pcVar6;\n          }\n        }\n        local_90 = pcVar5 + 3;\n        uVar2 = (&DAT_0016e354)[(ulong)uVar4 * 6];\n        if ((uVar2 & 2) == 0) {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n        }\n        else {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n          pcVar7 = pcVar6;\n          if (*pcVar6 == ';') {\n            local_70 = pcVar6 + 1;\n            pcVar7 = strpbrk(local_70,local_90);\n            local_60 = pcVar7;\n            if (pcVar7 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar7 = local_70;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar7;\n                pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar7 = pcVar6 + ~uVar13;\n              local_60 = pcVar7;\n            }\n          }\n          local_90 = pcVar5 + 4;\n          pcVar6 = pcVar7;\n        }\n        if ((uVar2 & 4) == 0) {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n        }\n        else {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n          pcVar5 = pcVar6;\n          if (*pcVar6 == '?') {\n            local_b0 = pcVar6 + 1;\n            pcVar5 = strpbrk(local_b0,local_90);\n            local_58 = pcVar5;\n            if (pcVar5 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_b0;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar5 = pcVar6 + ~uVar13;\n              local_58 = pcVar5;\n            }\n          }\n          local_90 = local_90 + 1;\n          pcVar6 = pcVar5;\n        }\n        if ((uVar2 & 8) == 0) {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n        }\n        else {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n          if (*pcVar6 == '#') {\n            local_68 = pcVar6 + 1;\n            local_50 = strpbrk(local_68,local_90);\n            if (local_50 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_68;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              local_50 = pcVar6 + ~uVar13;\n            }\n          }\n        }\n        if (pcVar11 == pcVar14) {\n          pcVar5 = (char *)0x0;\n          uVar8 = 0;\nLAB_001379c6:\n          piVar9 = (int *)FUN_0014967c(1,0x60);\n          piVar9[2] = uVar4;\n          uVar10 = FUN_0013a40c(local_a8,local_a0);\n          *(undefined8 *)(piVar9 + 4) = uVar10;\n          piVar9[6] = local_74;\n          *(undefined8 *)(piVar9 + 0x14) = uVar8;\n          *(char **)(piVar9 + 0x16) = pcVar5;\n          pcVar11 = (char *)FUN_0013a40c(local_88,local_80);\n          *(char **)(piVar9 + 8) = pcVar11;\n          uVar13 = 0xffffffffffffffff;\n          pcVar14 = pcVar11;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar3 = *pcVar14;\n            pcVar14 = pcVar14 + (ulong)bVar17 * -2 + 1;\n          } while (cVar3 != '\0');\n          pcVar14 = pcVar11 + (~uVar13 - 1);\n          pcVar5 = pcVar11;\n          if (pcVar11 < pcVar14) {\n            pcVar7 = pcVar11;\n            pcVar6 = pcVar11;\n            do {\n              cVar3 = *pcVar11;\n              if (cVar3 == '.') {\n                cVar1 = pcVar11[1];\n                if ((cVar1 == '/') || (cVar1 == '\0')) {\n                  pcVar11 = pcVar11 + 2;\n                }\n                else {\n                  if ((cVar1 != '.') || ((pcVar11[2] != '/' && (pcVar11[2] != '\0'))))\n                  goto LAB_00137e1d;\n                  if (pcVar6 < pcVar7) {\n                    pcVar5 = pcVar7 + -1;\n                    if (pcVar6 < pcVar5) {\n                      cVar3 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar3 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar3 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar5 = pcVar7;\n                    if (uVar4 - 2 < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }\n                  pcVar11 = pcVar11 + 3;\n                  pcVar7 = pcVar5;\n                }\n              }\n              else {\nLAB_00137e1d:\n                if (pcVar7 == pcVar11) {\n                  pcVar5 = pcVar7;\n                  if (pcVar14 <= pcVar7) break;\n                  cVar3 = *pcVar7;\n                  while (cVar3 != '/') {\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar14;\n                    if (pcVar14 == pcVar5) goto LAB_00137d7b;\n                    cVar3 = *pcVar5;\n                  }\n                  pcVar11 = pcVar5 + 1;\n                  pcVar7 = pcVar5 + 1;\n                }\n                else {\n                  pcVar5 = pcVar11;\n                  if (pcVar14 <= pcVar11) break;\n                  while (cVar3 != '/') {\n                    pcVar11 = pcVar11 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar3;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar14;\n                    if (pcVar14 == pcVar11) goto LAB_00137d7b;\n                    cVar3 = *pcVar11;\n                  }\n                  *pcVar7 = *pcVar11;\n                  pcVar11 = pcVar11 + 1;\n                  pcVar7 = pcVar7 + 1;\n                }\n              }\n              pcVar5 = pcVar11;\n            } while (pcVar11 < pcVar14);\nLAB_00137d7b:\n            pcVar11 = pcVar7;\n            if (pcVar5 != pcVar7) {\n              *pcVar7 = '\0';\n            }\n          }\n          pcVar14 = *(char **)(piVar9 + 8);\n          pcVar6 = strrchr(pcVar14,0x2f);\n          if (pcVar6 == (char *)0x0) {\n            uVar8 = FUN_001496d9(&DAT_0015ea35);\n            *(undefined8 *)(piVar9 + 0x10) = uVar8;\n            uVar8 = FUN_001496d9(pcVar14);\n            *(undefined8 *)(piVar9 + 0x12) = uVar8;\n          }\n          else {\n            uVar8 = FUN_0013a40c(pcVar14,pcVar6);\n            *(undefined8 *)(piVar9 + 0x10) = uVar8;\n            uVar8 = FUN_001496d9(pcVar6 + 1);\n            *(undefined8 *)(piVar9 + 0x12) = uVar8;\n          }\n          FUN_00135c58(*(undefined8 *)(piVar9 + 0x10));\n          FUN_00135c58(*(undefined8 *)(piVar9 + 0x12));\n          pcVar14 = *(char **)(piVar9 + 4);\n          cVar3 = *pcVar14;\n          if (cVar3 == '\0') {\n            bVar17 = 0;\n          }\n          else {\n            bVar17 = 0;\n            do {\n              if ((int)cVar3 - 0x41U < 0x1a) {\n                *pcVar14 = cVar3 + ' ';\n                bVar17 = 1;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            } while (cVar3 != '\0');\n          }\n          pcVar14 = *(char **)(piVar9 + 4);\n          pcVar6 = strchr(pcVar14,0x25);\n          if (pcVar6 != (char *)0x0) {\n            FUN_00135c58(pcVar14);\n            pcVar14 = *(char **)(piVar9 + 4);\n            cVar3 = *pcVar14;\n            while (cVar3 != '\0') {\n              if ((-1 < cVar3) && ((cVar3 < ' ' || (cVar3 == '\x7f')))) {\n                FUN_0013629a(piVar9);\n                iVar15 = 3;\n                goto LAB_00137c65;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            }\n            bVar17 = param_3 != 0 & DAT_00177606;\n            if (bVar17 == 0) {\n              bVar17 = 1;\n            }\n            else {\n              lVar12 = FUN_0013eaa4(param_3);\n              if (lVar12 != 0) {\n                free(*(void **)(piVar9 + 4));\n                *(long *)(piVar9 + 4) = lVar12;\n              }\n            }\n          }\n          if (local_70 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_70,local_60);\n            *(undefined8 *)(piVar9 + 10) = uVar8;\n          }\n          if (local_b0 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_b0,local_58);\n            *(undefined8 *)(piVar9 + 0xc) = uVar8;\n          }\n          if (local_68 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_68,local_50);\n            *(undefined8 *)(piVar9 + 0xe) = uVar8;\n          }\n          param_2 = piVar9;\n          if ((((DAT_00177606 == 0) && (pcVar5 == pcVar11)) && (*(long *)(piVar9 + 0xe) == 0)) &&\n             ((local_88 != local_80 && (bVar17 == 0)))) {\n            if (local_b8 == param_1) {\n              uVar8 = FUN_001496d9(param_1);\n              *(undefined8 *)piVar9 = uVar8;\n            }\n            else {\n              *(void **)piVar9 = local_b8;\n            }\n          }\n          else {\n            uVar8 = FUN_00137051(piVar9,0);\n            *(undefined8 *)piVar9 = uVar8;\n            if (local_b8 != param_1) {\n              free(local_b8);\n            }\n          }\n          goto LAB_00137c95;\n        }\n        pcVar14 = pcVar14 + -1;\n        if (pcVar14 == pcVar11) {\n          iVar15 = 5;\n        }\n        else {\n          pcVar6 = (char *)memchr(pcVar11,0x3a,(long)pcVar14 - (long)pcVar11);\n          if (pcVar11 != pcVar6) {\n            pcVar5 = pcVar6;\n            if (pcVar6 != (char *)0x0) {\n              pcVar5 = (char *)FUN_0013a40c(pcVar6 + 1,pcVar14);\n              FUN_00135c58(pcVar5);\n              pcVar14 = pcVar6;\n            }\n            uVar8 = FUN_0013a40c(pcVar11,pcVar14);\n            FUN_00135c58(uVar8);\n            goto LAB_001379c6;\n          }\n          iVar15 = 5;\n        }\n      }\n    }" else (compound_statement "{\n      pcVar6 = strpbrk(pcVar14,pcVar5);\n      local_a8 = pcVar14;\n      local_a0 = pcVar6;\n      if (pcVar6 == (char *)0x0) {\n        uVar13 = 0xffffffffffffffff;\n        pcVar6 = pcVar14;\n        do {\n          if (uVar13 == 0) break;\n          uVar13 = uVar13 - 1;\n          cVar3 = *pcVar6;\n          pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n        } while (cVar3 != '\0');\n        pcVar6 = pcVar14 + (~uVar13 - 1);\n        local_a0 = pcVar6;\n      }\nLAB_00137554:\n      if (local_a8 == local_a0) {\n        iVar15 = 3;\n      }\n      else {\n        local_74 = *(uint *)(&DAT_0016e350 + (ulong)uVar4 * 0x18);\n        pcVar7 = pcVar6;\n        if (*pcVar6 == ':') {\n          __s = pcVar6 + 1;\n          pcVar7 = strpbrk(__s,pcVar5 + 1);\n          if (pcVar7 == (char *)0x0) {\n            uVar13 = 0xffffffffffffffff;\n            pcVar7 = __s;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar7;\n              pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');\n            pcVar7 = pcVar6 + ~uVar13;\n          }\n          if (__s != pcVar7) {\n            if (__s < pcVar7) {\n              local_74 = (int)pcVar6[1] - 0x30;\n              if (local_74 < 10) {\n                do {\n                  __s = __s + 1;\n                  if (__s == pcVar7) goto LAB_00137584;\n                  if (9 < (int)*__s - 0x30U) {\n                    iVar15 = 4;\n                    goto LAB_00137c65;\n                  }\n                  local_74 = *__s + -0x30 + local_74 * 10;\n                } while ((int)local_74 < 0x10000);\n                iVar15 = 4;\n              }\n              else {\n                iVar15 = 4;\n              }\n              goto LAB_00137c65;\n            }\n            local_74 = 0;\n          }\n        }\nLAB_00137584:\n        local_80 = (char *)0x0;\n        local_88 = (char *)0x0;\n        pcVar6 = pcVar7;\n        if (*pcVar7 == '/') {\n          local_88 = pcVar7 + 1;\n          pcVar6 = strpbrk(local_88,pcVar5 + 2);\n          local_80 = pcVar6;\n          if (pcVar6 == (char *)0x0) {\n            uVar13 = 0xffffffffffffffff;\n            pcVar6 = local_88;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');\n            pcVar6 = pcVar7 + ~uVar13;\n            local_80 = pcVar6;\n          }\n        }\n        local_90 = pcVar5 + 3;\n        uVar2 = (&DAT_0016e354)[(ulong)uVar4 * 6];\n        if ((uVar2 & 2) == 0) {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n        }\n        else {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n          pcVar7 = pcVar6;\n          if (*pcVar6 == ';') {\n            local_70 = pcVar6 + 1;\n            pcVar7 = strpbrk(local_70,local_90);\n            local_60 = pcVar7;\n            if (pcVar7 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar7 = local_70;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar7;\n                pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar7 = pcVar6 + ~uVar13;\n              local_60 = pcVar7;\n            }\n          }\n          local_90 = pcVar5 + 4;\n          pcVar6 = pcVar7;\n        }\n        if ((uVar2 & 4) == 0) {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n        }\n        else {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n          pcVar5 = pcVar6;\n          if (*pcVar6 == '?') {\n            local_b0 = pcVar6 + 1;\n            pcVar5 = strpbrk(local_b0,local_90);\n            local_58 = pcVar5;\n            if (pcVar5 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_b0;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar5 = pcVar6 + ~uVar13;\n              local_58 = pcVar5;\n            }\n          }\n          local_90 = local_90 + 1;\n          pcVar6 = pcVar5;\n        }\n        if ((uVar2 & 8) == 0) {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n        }\n        else {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n          if (*pcVar6 == '#') {\n            local_68 = pcVar6 + 1;\n            local_50 = strpbrk(local_68,local_90);\n            if (local_50 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_68;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              local_50 = pcVar6 + ~uVar13;\n            }\n          }\n        }\n        if (pcVar11 == pcVar14) {\n          pcVar5 = (char *)0x0;\n          uVar8 = 0;\nLAB_001379c6:\n          piVar9 = (int *)FUN_0014967c(1,0x60);\n          piVar9[2] = uVar4;\n          uVar10 = FUN_0013a40c(local_a8,local_a0);\n          *(undefined8 *)(piVar9 + 4) = uVar10;\n          piVar9[6] = local_74;\n          *(undefined8 *)(piVar9 + 0x14) = uVar8;\n          *(char **)(piVar9 + 0x16) = pcVar5;\n          pcVar11 = (char *)FUN_0013a40c(local_88,local_80);\n          *(char **)(piVar9 + 8) = pcVar11;\n          uVar13 = 0xffffffffffffffff;\n          pcVar14 = pcVar11;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar3 = *pcVar14;\n            pcVar14 = pcVar14 + (ulong)bVar17 * -2 + 1;\n          } while (cVar3 != '\0');\n          pcVar14 = pcVar11 + (~uVar13 - 1);\n          pcVar5 = pcVar11;\n          if (pcVar11 < pcVar14) {\n            pcVar7 = pcVar11;\n            pcVar6 = pcVar11;\n            do {\n              cVar3 = *pcVar11;\n              if (cVar3 == '.') {\n                cVar1 = pcVar11[1];\n                if ((cVar1 == '/') || (cVar1 == '\0')) {\n                  pcVar11 = pcVar11 + 2;\n                }\n                else {\n                  if ((cVar1 != '.') || ((pcVar11[2] != '/' && (pcVar11[2] != '\0'))))\n                  goto LAB_00137e1d;\n                  if (pcVar6 < pcVar7) {\n                    pcVar5 = pcVar7 + -1;\n                    if (pcVar6 < pcVar5) {\n                      cVar3 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar3 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar3 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar5 = pcVar7;\n                    if (uVar4 - 2 < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }\n                  pcVar11 = pcVar11 + 3;\n                  pcVar7 = pcVar5;\n                }\n              }\n              else {\nLAB_00137e1d:\n                if (pcVar7 == pcVar11) {\n                  pcVar5 = pcVar7;\n                  if (pcVar14 <= pcVar7) break;\n                  cVar3 = *pcVar7;\n                  while (cVar3 != '/') {\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar14;\n                    if (pcVar14 == pcVar5) goto LAB_00137d7b;\n                    cVar3 = *pcVar5;\n                  }\n                  pcVar11 = pcVar5 + 1;\n                  pcVar7 = pcVar5 + 1;\n                }\n                else {\n                  pcVar5 = pcVar11;\n                  if (pcVar14 <= pcVar11) break;\n                  while (cVar3 != '/') {\n                    pcVar11 = pcVar11 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar3;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar14;\n                    if (pcVar14 == pcVar11) goto LAB_00137d7b;\n                    cVar3 = *pcVar11;\n                  }\n                  *pcVar7 = *pcVar11;\n                  pcVar11 = pcVar11 + 1;\n                  pcVar7 = pcVar7 + 1;\n                }\n              }\n              pcVar5 = pcVar11;\n            } while (pcVar11 < pcVar14);\nLAB_00137d7b:\n            pcVar11 = pcVar7;\n            if (pcVar5 != pcVar7) {\n              *pcVar7 = '\0';\n            }\n          }\n          pcVar14 = *(char **)(piVar9 + 8);\n          pcVar6 = strrchr(pcVar14,0x2f);\n          if (pcVar6 == (char *)0x0) {\n            uVar8 = FUN_001496d9(&DAT_0015ea35);\n            *(undefined8 *)(piVar9 + 0x10) = uVar8;\n            uVar8 = FUN_001496d9(pcVar14);\n            *(undefined8 *)(piVar9 + 0x12) = uVar8;\n          }\n          else {\n            uVar8 = FUN_0013a40c(pcVar14,pcVar6);\n            *(undefined8 *)(piVar9 + 0x10) = uVar8;\n            uVar8 = FUN_001496d9(pcVar6 + 1);\n            *(undefined8 *)(piVar9 + 0x12) = uVar8;\n          }\n          FUN_00135c58(*(undefined8 *)(piVar9 + 0x10));\n          FUN_00135c58(*(undefined8 *)(piVar9 + 0x12));\n          pcVar14 = *(char **)(piVar9 + 4);\n          cVar3 = *pcVar14;\n          if (cVar3 == '\0') {\n            bVar17 = 0;\n          }\n          else {\n            bVar17 = 0;\n            do {\n              if ((int)cVar3 - 0x41U < 0x1a) {\n                *pcVar14 = cVar3 + ' ';\n                bVar17 = 1;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            } while (cVar3 != '\0');\n          }\n          pcVar14 = *(char **)(piVar9 + 4);\n          pcVar6 = strchr(pcVar14,0x25);\n          if (pcVar6 != (char *)0x0) {\n            FUN_00135c58(pcVar14);\n            pcVar14 = *(char **)(piVar9 + 4);\n            cVar3 = *pcVar14;\n            while (cVar3 != '\0') {\n              if ((-1 < cVar3) && ((cVar3 < ' ' || (cVar3 == '\x7f')))) {\n                FUN_0013629a(piVar9);\n                iVar15 = 3;\n                goto LAB_00137c65;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            }\n            bVar17 = param_3 != 0 & DAT_00177606;\n            if (bVar17 == 0) {\n              bVar17 = 1;\n            }\n            else {\n              lVar12 = FUN_0013eaa4(param_3);\n              if (lVar12 != 0) {\n                free(*(void **)(piVar9 + 4));\n                *(long *)(piVar9 + 4) = lVar12;\n              }\n            }\n          }\n          if (local_70 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_70,local_60);\n            *(undefined8 *)(piVar9 + 10) = uVar8;\n          }\n          if (local_b0 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_b0,local_58);\n            *(undefined8 *)(piVar9 + 0xc) = uVar8;\n          }\n          if (local_68 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_68,local_50);\n            *(undefined8 *)(piVar9 + 0xe) = uVar8;\n          }\n          param_2 = piVar9;\n          if ((((DAT_00177606 == 0) && (pcVar5 == pcVar11)) && (*(long *)(piVar9 + 0xe) == 0)) &&\n             ((local_88 != local_80 && (bVar17 == 0)))) {\n            if (local_b8 == param_1) {\n              uVar8 = FUN_001496d9(param_1);\n              *(undefined8 *)piVar9 = uVar8;\n            }\n            else {\n              *(void **)piVar9 = local_b8;\n            }\n          }\n          else {\n            uVar8 = FUN_00137051(piVar9,0);\n            *(undefined8 *)piVar9 = uVar8;\n            if (local_b8 != param_1) {\n              free(local_b8);\n            }\n          }\n          goto LAB_00137c95;\n        }\n        pcVar14 = pcVar14 + -1;\n        if (pcVar14 == pcVar11) {\n          iVar15 = 5;\n        }\n        else {\n          pcVar6 = (char *)memchr(pcVar11,0x3a,(long)pcVar14 - (long)pcVar11);\n          if (pcVar11 != pcVar6) {\n            pcVar5 = pcVar6;\n            if (pcVar6 != (char *)0x0) {\n              pcVar5 = (char *)FUN_0013a40c(pcVar6 + 1,pcVar14);\n              FUN_00135c58(pcVar5);\n              pcVar14 = pcVar6;\n            }\n            uVar8 = FUN_0013a40c(pcVar11,pcVar14);\n            FUN_00135c58(uVar8);\n            goto LAB_001379c6;\n          }\n          iVar15 = 5;\n        }\n      }\n    }" { (expression_statement "pcVar6 = strpbrk(pcVar14,pcVar5);" (assignment_expression "pcVar6 = strpbrk(pcVar14,pcVar5)" identifier = (call_expression "strpbrk(pcVar14,pcVar5)" identifier (argument_list "(pcVar14,pcVar5)" ( identifier , identifier )))) ;) (expression_statement "local_a8 = pcVar14;" (assignment_expression "local_a8 = pcVar14" identifier = identifier) ;) (expression_statement "local_a0 = pcVar6;" (assignment_expression "local_a0 = pcVar6" identifier = identifier) ;) (if_statement "if (pcVar6 == (char *)0x0) {\n        uVar13 = 0xffffffffffffffff;\n        pcVar6 = pcVar14;\n        do {\n          if (uVar13 == 0) break;\n          uVar13 = uVar13 - 1;\n          cVar3 = *pcVar6;\n          pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n        } while (cVar3 != '\0');\n        pcVar6 = pcVar14 + (~uVar13 - 1);\n        local_a0 = pcVar6;\n      }" if (parenthesized_expression "(pcVar6 == (char *)0x0)" ( (binary_expression "pcVar6 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar13 = 0xffffffffffffffff;\n        pcVar6 = pcVar14;\n        do {\n          if (uVar13 == 0) break;\n          uVar13 = uVar13 - 1;\n          cVar3 = *pcVar6;\n          pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n        } while (cVar3 != '\0');\n        pcVar6 = pcVar14 + (~uVar13 - 1);\n        local_a0 = pcVar6;\n      }" { (expression_statement "uVar13 = 0xffffffffffffffff;" (assignment_expression "uVar13 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar6 = pcVar14;" (assignment_expression "pcVar6 = pcVar14" identifier = identifier) ;) (do_statement "do {\n          if (uVar13 == 0) break;\n          uVar13 = uVar13 - 1;\n          cVar3 = *pcVar6;\n          pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n        } while (cVar3 != '\0');" do (compound_statement "{\n          if (uVar13 == 0) break;\n          uVar13 = uVar13 - 1;\n          cVar3 = *pcVar6;\n          pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n        }" { (if_statement "if (uVar13 == 0) break;" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar13 = uVar13 - 1;" (assignment_expression "uVar13 = uVar13 - 1" identifier = (binary_expression "uVar13 - 1" identifier - number_literal)) ;) (expression_statement "cVar3 = *pcVar6;" (assignment_expression "cVar3 = *pcVar6" identifier = (pointer_expression "*pcVar6" * identifier)) ;) (expression_statement "pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1" identifier = (binary_expression "pcVar6 + (ulong)bVar17 * -2 + 1" (binary_expression "pcVar6 + (ulong)bVar17 * -2" identifier + (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar3 != '\0')" ( (binary_expression "cVar3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "pcVar6 = pcVar14 + (~uVar13 - 1);" (assignment_expression "pcVar6 = pcVar14 + (~uVar13 - 1)" identifier = (binary_expression "pcVar14 + (~uVar13 - 1)" identifier + (parenthesized_expression "(~uVar13 - 1)" ( (binary_expression "~uVar13 - 1" (unary_expression "~uVar13" ~ identifier) - number_literal) )))) ;) (expression_statement "local_a0 = pcVar6;" (assignment_expression "local_a0 = pcVar6" identifier = identifier) ;) })) (labeled_statement "LAB_00137554:\n      if (local_a8 == local_a0) {\n        iVar15 = 3;\n      }\n      else {\n        local_74 = *(uint *)(&DAT_0016e350 + (ulong)uVar4 * 0x18);\n        pcVar7 = pcVar6;\n        if (*pcVar6 == ':') {\n          __s = pcVar6 + 1;\n          pcVar7 = strpbrk(__s,pcVar5 + 1);\n          if (pcVar7 == (char *)0x0) {\n            uVar13 = 0xffffffffffffffff;\n            pcVar7 = __s;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar7;\n              pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');\n            pcVar7 = pcVar6 + ~uVar13;\n          }\n          if (__s != pcVar7) {\n            if (__s < pcVar7) {\n              local_74 = (int)pcVar6[1] - 0x30;\n              if (local_74 < 10) {\n                do {\n                  __s = __s + 1;\n                  if (__s == pcVar7) goto LAB_00137584;\n                  if (9 < (int)*__s - 0x30U) {\n                    iVar15 = 4;\n                    goto LAB_00137c65;\n                  }\n                  local_74 = *__s + -0x30 + local_74 * 10;\n                } while ((int)local_74 < 0x10000);\n                iVar15 = 4;\n              }\n              else {\n                iVar15 = 4;\n              }\n              goto LAB_00137c65;\n            }\n            local_74 = 0;\n          }\n        }\nLAB_00137584:\n        local_80 = (char *)0x0;\n        local_88 = (char *)0x0;\n        pcVar6 = pcVar7;\n        if (*pcVar7 == '/') {\n          local_88 = pcVar7 + 1;\n          pcVar6 = strpbrk(local_88,pcVar5 + 2);\n          local_80 = pcVar6;\n          if (pcVar6 == (char *)0x0) {\n            uVar13 = 0xffffffffffffffff;\n            pcVar6 = local_88;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');\n            pcVar6 = pcVar7 + ~uVar13;\n            local_80 = pcVar6;\n          }\n        }\n        local_90 = pcVar5 + 3;\n        uVar2 = (&DAT_0016e354)[(ulong)uVar4 * 6];\n        if ((uVar2 & 2) == 0) {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n        }\n        else {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n          pcVar7 = pcVar6;\n          if (*pcVar6 == ';') {\n            local_70 = pcVar6 + 1;\n            pcVar7 = strpbrk(local_70,local_90);\n            local_60 = pcVar7;\n            if (pcVar7 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar7 = local_70;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar7;\n                pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar7 = pcVar6 + ~uVar13;\n              local_60 = pcVar7;\n            }\n          }\n          local_90 = pcVar5 + 4;\n          pcVar6 = pcVar7;\n        }\n        if ((uVar2 & 4) == 0) {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n        }\n        else {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n          pcVar5 = pcVar6;\n          if (*pcVar6 == '?') {\n            local_b0 = pcVar6 + 1;\n            pcVar5 = strpbrk(local_b0,local_90);\n            local_58 = pcVar5;\n            if (pcVar5 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_b0;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar5 = pcVar6 + ~uVar13;\n              local_58 = pcVar5;\n            }\n          }\n          local_90 = local_90 + 1;\n          pcVar6 = pcVar5;\n        }\n        if ((uVar2 & 8) == 0) {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n        }\n        else {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n          if (*pcVar6 == '#') {\n            local_68 = pcVar6 + 1;\n            local_50 = strpbrk(local_68,local_90);\n            if (local_50 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_68;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              local_50 = pcVar6 + ~uVar13;\n            }\n          }\n        }\n        if (pcVar11 == pcVar14) {\n          pcVar5 = (char *)0x0;\n          uVar8 = 0;\nLAB_001379c6:\n          piVar9 = (int *)FUN_0014967c(1,0x60);\n          piVar9[2] = uVar4;\n          uVar10 = FUN_0013a40c(local_a8,local_a0);\n          *(undefined8 *)(piVar9 + 4) = uVar10;\n          piVar9[6] = local_74;\n          *(undefined8 *)(piVar9 + 0x14) = uVar8;\n          *(char **)(piVar9 + 0x16) = pcVar5;\n          pcVar11 = (char *)FUN_0013a40c(local_88,local_80);\n          *(char **)(piVar9 + 8) = pcVar11;\n          uVar13 = 0xffffffffffffffff;\n          pcVar14 = pcVar11;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar3 = *pcVar14;\n            pcVar14 = pcVar14 + (ulong)bVar17 * -2 + 1;\n          } while (cVar3 != '\0');\n          pcVar14 = pcVar11 + (~uVar13 - 1);\n          pcVar5 = pcVar11;\n          if (pcVar11 < pcVar14) {\n            pcVar7 = pcVar11;\n            pcVar6 = pcVar11;\n            do {\n              cVar3 = *pcVar11;\n              if (cVar3 == '.') {\n                cVar1 = pcVar11[1];\n                if ((cVar1 == '/') || (cVar1 == '\0')) {\n                  pcVar11 = pcVar11 + 2;\n                }\n                else {\n                  if ((cVar1 != '.') || ((pcVar11[2] != '/' && (pcVar11[2] != '\0'))))\n                  goto LAB_00137e1d;\n                  if (pcVar6 < pcVar7) {\n                    pcVar5 = pcVar7 + -1;\n                    if (pcVar6 < pcVar5) {\n                      cVar3 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar3 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar3 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar5 = pcVar7;\n                    if (uVar4 - 2 < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }\n                  pcVar11 = pcVar11 + 3;\n                  pcVar7 = pcVar5;\n                }\n              }\n              else {\nLAB_00137e1d:\n                if (pcVar7 == pcVar11) {\n                  pcVar5 = pcVar7;\n                  if (pcVar14 <= pcVar7) break;\n                  cVar3 = *pcVar7;\n                  while (cVar3 != '/') {\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar14;\n                    if (pcVar14 == pcVar5) goto LAB_00137d7b;\n                    cVar3 = *pcVar5;\n                  }\n                  pcVar11 = pcVar5 + 1;\n                  pcVar7 = pcVar5 + 1;\n                }\n                else {\n                  pcVar5 = pcVar11;\n                  if (pcVar14 <= pcVar11) break;\n                  while (cVar3 != '/') {\n                    pcVar11 = pcVar11 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar3;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar14;\n                    if (pcVar14 == pcVar11) goto LAB_00137d7b;\n                    cVar3 = *pcVar11;\n                  }\n                  *pcVar7 = *pcVar11;\n                  pcVar11 = pcVar11 + 1;\n                  pcVar7 = pcVar7 + 1;\n                }\n              }\n              pcVar5 = pcVar11;\n            } while (pcVar11 < pcVar14);\nLAB_00137d7b:\n            pcVar11 = pcVar7;\n            if (pcVar5 != pcVar7) {\n              *pcVar7 = '\0';\n            }\n          }\n          pcVar14 = *(char **)(piVar9 + 8);\n          pcVar6 = strrchr(pcVar14,0x2f);\n          if (pcVar6 == (char *)0x0) {\n            uVar8 = FUN_001496d9(&DAT_0015ea35);\n            *(undefined8 *)(piVar9 + 0x10) = uVar8;\n            uVar8 = FUN_001496d9(pcVar14);\n            *(undefined8 *)(piVar9 + 0x12) = uVar8;\n          }\n          else {\n            uVar8 = FUN_0013a40c(pcVar14,pcVar6);\n            *(undefined8 *)(piVar9 + 0x10) = uVar8;\n            uVar8 = FUN_001496d9(pcVar6 + 1);\n            *(undefined8 *)(piVar9 + 0x12) = uVar8;\n          }\n          FUN_00135c58(*(undefined8 *)(piVar9 + 0x10));\n          FUN_00135c58(*(undefined8 *)(piVar9 + 0x12));\n          pcVar14 = *(char **)(piVar9 + 4);\n          cVar3 = *pcVar14;\n          if (cVar3 == '\0') {\n            bVar17 = 0;\n          }\n          else {\n            bVar17 = 0;\n            do {\n              if ((int)cVar3 - 0x41U < 0x1a) {\n                *pcVar14 = cVar3 + ' ';\n                bVar17 = 1;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            } while (cVar3 != '\0');\n          }\n          pcVar14 = *(char **)(piVar9 + 4);\n          pcVar6 = strchr(pcVar14,0x25);\n          if (pcVar6 != (char *)0x0) {\n            FUN_00135c58(pcVar14);\n            pcVar14 = *(char **)(piVar9 + 4);\n            cVar3 = *pcVar14;\n            while (cVar3 != '\0') {\n              if ((-1 < cVar3) && ((cVar3 < ' ' || (cVar3 == '\x7f')))) {\n                FUN_0013629a(piVar9);\n                iVar15 = 3;\n                goto LAB_00137c65;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            }\n            bVar17 = param_3 != 0 & DAT_00177606;\n            if (bVar17 == 0) {\n              bVar17 = 1;\n            }\n            else {\n              lVar12 = FUN_0013eaa4(param_3);\n              if (lVar12 != 0) {\n                free(*(void **)(piVar9 + 4));\n                *(long *)(piVar9 + 4) = lVar12;\n              }\n            }\n          }\n          if (local_70 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_70,local_60);\n            *(undefined8 *)(piVar9 + 10) = uVar8;\n          }\n          if (local_b0 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_b0,local_58);\n            *(undefined8 *)(piVar9 + 0xc) = uVar8;\n          }\n          if (local_68 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_68,local_50);\n            *(undefined8 *)(piVar9 + 0xe) = uVar8;\n          }\n          param_2 = piVar9;\n          if ((((DAT_00177606 == 0) && (pcVar5 == pcVar11)) && (*(long *)(piVar9 + 0xe) == 0)) &&\n             ((local_88 != local_80 && (bVar17 == 0)))) {\n            if (local_b8 == param_1) {\n              uVar8 = FUN_001496d9(param_1);\n              *(undefined8 *)piVar9 = uVar8;\n            }\n            else {\n              *(void **)piVar9 = local_b8;\n            }\n          }\n          else {\n            uVar8 = FUN_00137051(piVar9,0);\n            *(undefined8 *)piVar9 = uVar8;\n            if (local_b8 != param_1) {\n              free(local_b8);\n            }\n          }\n          goto LAB_00137c95;\n        }\n        pcVar14 = pcVar14 + -1;\n        if (pcVar14 == pcVar11) {\n          iVar15 = 5;\n        }\n        else {\n          pcVar6 = (char *)memchr(pcVar11,0x3a,(long)pcVar14 - (long)pcVar11);\n          if (pcVar11 != pcVar6) {\n            pcVar5 = pcVar6;\n            if (pcVar6 != (char *)0x0) {\n              pcVar5 = (char *)FUN_0013a40c(pcVar6 + 1,pcVar14);\n              FUN_00135c58(pcVar5);\n              pcVar14 = pcVar6;\n            }\n            uVar8 = FUN_0013a40c(pcVar11,pcVar14);\n            FUN_00135c58(uVar8);\n            goto LAB_001379c6;\n          }\n          iVar15 = 5;\n        }\n      }" statement_identifier : (if_statement "if (local_a8 == local_a0) {\n        iVar15 = 3;\n      }\n      else {\n        local_74 = *(uint *)(&DAT_0016e350 + (ulong)uVar4 * 0x18);\n        pcVar7 = pcVar6;\n        if (*pcVar6 == ':') {\n          __s = pcVar6 + 1;\n          pcVar7 = strpbrk(__s,pcVar5 + 1);\n          if (pcVar7 == (char *)0x0) {\n            uVar13 = 0xffffffffffffffff;\n            pcVar7 = __s;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar7;\n              pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');\n            pcVar7 = pcVar6 + ~uVar13;\n          }\n          if (__s != pcVar7) {\n            if (__s < pcVar7) {\n              local_74 = (int)pcVar6[1] - 0x30;\n              if (local_74 < 10) {\n                do {\n                  __s = __s + 1;\n                  if (__s == pcVar7) goto LAB_00137584;\n                  if (9 < (int)*__s - 0x30U) {\n                    iVar15 = 4;\n                    goto LAB_00137c65;\n                  }\n                  local_74 = *__s + -0x30 + local_74 * 10;\n                } while ((int)local_74 < 0x10000);\n                iVar15 = 4;\n              }\n              else {\n                iVar15 = 4;\n              }\n              goto LAB_00137c65;\n            }\n            local_74 = 0;\n          }\n        }\nLAB_00137584:\n        local_80 = (char *)0x0;\n        local_88 = (char *)0x0;\n        pcVar6 = pcVar7;\n        if (*pcVar7 == '/') {\n          local_88 = pcVar7 + 1;\n          pcVar6 = strpbrk(local_88,pcVar5 + 2);\n          local_80 = pcVar6;\n          if (pcVar6 == (char *)0x0) {\n            uVar13 = 0xffffffffffffffff;\n            pcVar6 = local_88;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');\n            pcVar6 = pcVar7 + ~uVar13;\n            local_80 = pcVar6;\n          }\n        }\n        local_90 = pcVar5 + 3;\n        uVar2 = (&DAT_0016e354)[(ulong)uVar4 * 6];\n        if ((uVar2 & 2) == 0) {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n        }\n        else {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n          pcVar7 = pcVar6;\n          if (*pcVar6 == ';') {\n            local_70 = pcVar6 + 1;\n            pcVar7 = strpbrk(local_70,local_90);\n            local_60 = pcVar7;\n            if (pcVar7 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar7 = local_70;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar7;\n                pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar7 = pcVar6 + ~uVar13;\n              local_60 = pcVar7;\n            }\n          }\n          local_90 = pcVar5 + 4;\n          pcVar6 = pcVar7;\n        }\n        if ((uVar2 & 4) == 0) {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n        }\n        else {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n          pcVar5 = pcVar6;\n          if (*pcVar6 == '?') {\n            local_b0 = pcVar6 + 1;\n            pcVar5 = strpbrk(local_b0,local_90);\n            local_58 = pcVar5;\n            if (pcVar5 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_b0;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar5 = pcVar6 + ~uVar13;\n              local_58 = pcVar5;\n            }\n          }\n          local_90 = local_90 + 1;\n          pcVar6 = pcVar5;\n        }\n        if ((uVar2 & 8) == 0) {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n        }\n        else {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n          if (*pcVar6 == '#') {\n            local_68 = pcVar6 + 1;\n            local_50 = strpbrk(local_68,local_90);\n            if (local_50 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_68;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              local_50 = pcVar6 + ~uVar13;\n            }\n          }\n        }\n        if (pcVar11 == pcVar14) {\n          pcVar5 = (char *)0x0;\n          uVar8 = 0;\nLAB_001379c6:\n          piVar9 = (int *)FUN_0014967c(1,0x60);\n          piVar9[2] = uVar4;\n          uVar10 = FUN_0013a40c(local_a8,local_a0);\n          *(undefined8 *)(piVar9 + 4) = uVar10;\n          piVar9[6] = local_74;\n          *(undefined8 *)(piVar9 + 0x14) = uVar8;\n          *(char **)(piVar9 + 0x16) = pcVar5;\n          pcVar11 = (char *)FUN_0013a40c(local_88,local_80);\n          *(char **)(piVar9 + 8) = pcVar11;\n          uVar13 = 0xffffffffffffffff;\n          pcVar14 = pcVar11;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar3 = *pcVar14;\n            pcVar14 = pcVar14 + (ulong)bVar17 * -2 + 1;\n          } while (cVar3 != '\0');\n          pcVar14 = pcVar11 + (~uVar13 - 1);\n          pcVar5 = pcVar11;\n          if (pcVar11 < pcVar14) {\n            pcVar7 = pcVar11;\n            pcVar6 = pcVar11;\n            do {\n              cVar3 = *pcVar11;\n              if (cVar3 == '.') {\n                cVar1 = pcVar11[1];\n                if ((cVar1 == '/') || (cVar1 == '\0')) {\n                  pcVar11 = pcVar11 + 2;\n                }\n                else {\n                  if ((cVar1 != '.') || ((pcVar11[2] != '/' && (pcVar11[2] != '\0'))))\n                  goto LAB_00137e1d;\n                  if (pcVar6 < pcVar7) {\n                    pcVar5 = pcVar7 + -1;\n                    if (pcVar6 < pcVar5) {\n                      cVar3 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar3 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar3 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar5 = pcVar7;\n                    if (uVar4 - 2 < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }\n                  pcVar11 = pcVar11 + 3;\n                  pcVar7 = pcVar5;\n                }\n              }\n              else {\nLAB_00137e1d:\n                if (pcVar7 == pcVar11) {\n                  pcVar5 = pcVar7;\n                  if (pcVar14 <= pcVar7) break;\n                  cVar3 = *pcVar7;\n                  while (cVar3 != '/') {\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar14;\n                    if (pcVar14 == pcVar5) goto LAB_00137d7b;\n                    cVar3 = *pcVar5;\n                  }\n                  pcVar11 = pcVar5 + 1;\n                  pcVar7 = pcVar5 + 1;\n                }\n                else {\n                  pcVar5 = pcVar11;\n                  if (pcVar14 <= pcVar11) break;\n                  while (cVar3 != '/') {\n                    pcVar11 = pcVar11 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar3;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar14;\n                    if (pcVar14 == pcVar11) goto LAB_00137d7b;\n                    cVar3 = *pcVar11;\n                  }\n                  *pcVar7 = *pcVar11;\n                  pcVar11 = pcVar11 + 1;\n                  pcVar7 = pcVar7 + 1;\n                }\n              }\n              pcVar5 = pcVar11;\n            } while (pcVar11 < pcVar14);\nLAB_00137d7b:\n            pcVar11 = pcVar7;\n            if (pcVar5 != pcVar7) {\n              *pcVar7 = '\0';\n            }\n          }\n          pcVar14 = *(char **)(piVar9 + 8);\n          pcVar6 = strrchr(pcVar14,0x2f);\n          if (pcVar6 == (char *)0x0) {\n            uVar8 = FUN_001496d9(&DAT_0015ea35);\n            *(undefined8 *)(piVar9 + 0x10) = uVar8;\n            uVar8 = FUN_001496d9(pcVar14);\n            *(undefined8 *)(piVar9 + 0x12) = uVar8;\n          }\n          else {\n            uVar8 = FUN_0013a40c(pcVar14,pcVar6);\n            *(undefined8 *)(piVar9 + 0x10) = uVar8;\n            uVar8 = FUN_001496d9(pcVar6 + 1);\n            *(undefined8 *)(piVar9 + 0x12) = uVar8;\n          }\n          FUN_00135c58(*(undefined8 *)(piVar9 + 0x10));\n          FUN_00135c58(*(undefined8 *)(piVar9 + 0x12));\n          pcVar14 = *(char **)(piVar9 + 4);\n          cVar3 = *pcVar14;\n          if (cVar3 == '\0') {\n            bVar17 = 0;\n          }\n          else {\n            bVar17 = 0;\n            do {\n              if ((int)cVar3 - 0x41U < 0x1a) {\n                *pcVar14 = cVar3 + ' ';\n                bVar17 = 1;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            } while (cVar3 != '\0');\n          }\n          pcVar14 = *(char **)(piVar9 + 4);\n          pcVar6 = strchr(pcVar14,0x25);\n          if (pcVar6 != (char *)0x0) {\n            FUN_00135c58(pcVar14);\n            pcVar14 = *(char **)(piVar9 + 4);\n            cVar3 = *pcVar14;\n            while (cVar3 != '\0') {\n              if ((-1 < cVar3) && ((cVar3 < ' ' || (cVar3 == '\x7f')))) {\n                FUN_0013629a(piVar9);\n                iVar15 = 3;\n                goto LAB_00137c65;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            }\n            bVar17 = param_3 != 0 & DAT_00177606;\n            if (bVar17 == 0) {\n              bVar17 = 1;\n            }\n            else {\n              lVar12 = FUN_0013eaa4(param_3);\n              if (lVar12 != 0) {\n                free(*(void **)(piVar9 + 4));\n                *(long *)(piVar9 + 4) = lVar12;\n              }\n            }\n          }\n          if (local_70 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_70,local_60);\n            *(undefined8 *)(piVar9 + 10) = uVar8;\n          }\n          if (local_b0 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_b0,local_58);\n            *(undefined8 *)(piVar9 + 0xc) = uVar8;\n          }\n          if (local_68 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_68,local_50);\n            *(undefined8 *)(piVar9 + 0xe) = uVar8;\n          }\n          param_2 = piVar9;\n          if ((((DAT_00177606 == 0) && (pcVar5 == pcVar11)) && (*(long *)(piVar9 + 0xe) == 0)) &&\n             ((local_88 != local_80 && (bVar17 == 0)))) {\n            if (local_b8 == param_1) {\n              uVar8 = FUN_001496d9(param_1);\n              *(undefined8 *)piVar9 = uVar8;\n            }\n            else {\n              *(void **)piVar9 = local_b8;\n            }\n          }\n          else {\n            uVar8 = FUN_00137051(piVar9,0);\n            *(undefined8 *)piVar9 = uVar8;\n            if (local_b8 != param_1) {\n              free(local_b8);\n            }\n          }\n          goto LAB_00137c95;\n        }\n        pcVar14 = pcVar14 + -1;\n        if (pcVar14 == pcVar11) {\n          iVar15 = 5;\n        }\n        else {\n          pcVar6 = (char *)memchr(pcVar11,0x3a,(long)pcVar14 - (long)pcVar11);\n          if (pcVar11 != pcVar6) {\n            pcVar5 = pcVar6;\n            if (pcVar6 != (char *)0x0) {\n              pcVar5 = (char *)FUN_0013a40c(pcVar6 + 1,pcVar14);\n              FUN_00135c58(pcVar5);\n              pcVar14 = pcVar6;\n            }\n            uVar8 = FUN_0013a40c(pcVar11,pcVar14);\n            FUN_00135c58(uVar8);\n            goto LAB_001379c6;\n          }\n          iVar15 = 5;\n        }\n      }" if (parenthesized_expression "(local_a8 == local_a0)" ( (binary_expression "local_a8 == local_a0" identifier == identifier) )) (compound_statement "{\n        iVar15 = 3;\n      }" { (expression_statement "iVar15 = 3;" (assignment_expression "iVar15 = 3" identifier = number_literal) ;) }) (else_clause "else {\n        local_74 = *(uint *)(&DAT_0016e350 + (ulong)uVar4 * 0x18);\n        pcVar7 = pcVar6;\n        if (*pcVar6 == ':') {\n          __s = pcVar6 + 1;\n          pcVar7 = strpbrk(__s,pcVar5 + 1);\n          if (pcVar7 == (char *)0x0) {\n            uVar13 = 0xffffffffffffffff;\n            pcVar7 = __s;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar7;\n              pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');\n            pcVar7 = pcVar6 + ~uVar13;\n          }\n          if (__s != pcVar7) {\n            if (__s < pcVar7) {\n              local_74 = (int)pcVar6[1] - 0x30;\n              if (local_74 < 10) {\n                do {\n                  __s = __s + 1;\n                  if (__s == pcVar7) goto LAB_00137584;\n                  if (9 < (int)*__s - 0x30U) {\n                    iVar15 = 4;\n                    goto LAB_00137c65;\n                  }\n                  local_74 = *__s + -0x30 + local_74 * 10;\n                } while ((int)local_74 < 0x10000);\n                iVar15 = 4;\n              }\n              else {\n                iVar15 = 4;\n              }\n              goto LAB_00137c65;\n            }\n            local_74 = 0;\n          }\n        }\nLAB_00137584:\n        local_80 = (char *)0x0;\n        local_88 = (char *)0x0;\n        pcVar6 = pcVar7;\n        if (*pcVar7 == '/') {\n          local_88 = pcVar7 + 1;\n          pcVar6 = strpbrk(local_88,pcVar5 + 2);\n          local_80 = pcVar6;\n          if (pcVar6 == (char *)0x0) {\n            uVar13 = 0xffffffffffffffff;\n            pcVar6 = local_88;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');\n            pcVar6 = pcVar7 + ~uVar13;\n            local_80 = pcVar6;\n          }\n        }\n        local_90 = pcVar5 + 3;\n        uVar2 = (&DAT_0016e354)[(ulong)uVar4 * 6];\n        if ((uVar2 & 2) == 0) {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n        }\n        else {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n          pcVar7 = pcVar6;\n          if (*pcVar6 == ';') {\n            local_70 = pcVar6 + 1;\n            pcVar7 = strpbrk(local_70,local_90);\n            local_60 = pcVar7;\n            if (pcVar7 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar7 = local_70;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar7;\n                pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar7 = pcVar6 + ~uVar13;\n              local_60 = pcVar7;\n            }\n          }\n          local_90 = pcVar5 + 4;\n          pcVar6 = pcVar7;\n        }\n        if ((uVar2 & 4) == 0) {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n        }\n        else {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n          pcVar5 = pcVar6;\n          if (*pcVar6 == '?') {\n            local_b0 = pcVar6 + 1;\n            pcVar5 = strpbrk(local_b0,local_90);\n            local_58 = pcVar5;\n            if (pcVar5 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_b0;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar5 = pcVar6 + ~uVar13;\n              local_58 = pcVar5;\n            }\n          }\n          local_90 = local_90 + 1;\n          pcVar6 = pcVar5;\n        }\n        if ((uVar2 & 8) == 0) {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n        }\n        else {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n          if (*pcVar6 == '#') {\n            local_68 = pcVar6 + 1;\n            local_50 = strpbrk(local_68,local_90);\n            if (local_50 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_68;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              local_50 = pcVar6 + ~uVar13;\n            }\n          }\n        }\n        if (pcVar11 == pcVar14) {\n          pcVar5 = (char *)0x0;\n          uVar8 = 0;\nLAB_001379c6:\n          piVar9 = (int *)FUN_0014967c(1,0x60);\n          piVar9[2] = uVar4;\n          uVar10 = FUN_0013a40c(local_a8,local_a0);\n          *(undefined8 *)(piVar9 + 4) = uVar10;\n          piVar9[6] = local_74;\n          *(undefined8 *)(piVar9 + 0x14) = uVar8;\n          *(char **)(piVar9 + 0x16) = pcVar5;\n          pcVar11 = (char *)FUN_0013a40c(local_88,local_80);\n          *(char **)(piVar9 + 8) = pcVar11;\n          uVar13 = 0xffffffffffffffff;\n          pcVar14 = pcVar11;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar3 = *pcVar14;\n            pcVar14 = pcVar14 + (ulong)bVar17 * -2 + 1;\n          } while (cVar3 != '\0');\n          pcVar14 = pcVar11 + (~uVar13 - 1);\n          pcVar5 = pcVar11;\n          if (pcVar11 < pcVar14) {\n            pcVar7 = pcVar11;\n            pcVar6 = pcVar11;\n            do {\n              cVar3 = *pcVar11;\n              if (cVar3 == '.') {\n                cVar1 = pcVar11[1];\n                if ((cVar1 == '/') || (cVar1 == '\0')) {\n                  pcVar11 = pcVar11 + 2;\n                }\n                else {\n                  if ((cVar1 != '.') || ((pcVar11[2] != '/' && (pcVar11[2] != '\0'))))\n                  goto LAB_00137e1d;\n                  if (pcVar6 < pcVar7) {\n                    pcVar5 = pcVar7 + -1;\n                    if (pcVar6 < pcVar5) {\n                      cVar3 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar3 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar3 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar5 = pcVar7;\n                    if (uVar4 - 2 < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }\n                  pcVar11 = pcVar11 + 3;\n                  pcVar7 = pcVar5;\n                }\n              }\n              else {\nLAB_00137e1d:\n                if (pcVar7 == pcVar11) {\n                  pcVar5 = pcVar7;\n                  if (pcVar14 <= pcVar7) break;\n                  cVar3 = *pcVar7;\n                  while (cVar3 != '/') {\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar14;\n                    if (pcVar14 == pcVar5) goto LAB_00137d7b;\n                    cVar3 = *pcVar5;\n                  }\n                  pcVar11 = pcVar5 + 1;\n                  pcVar7 = pcVar5 + 1;\n                }\n                else {\n                  pcVar5 = pcVar11;\n                  if (pcVar14 <= pcVar11) break;\n                  while (cVar3 != '/') {\n                    pcVar11 = pcVar11 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar3;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar14;\n                    if (pcVar14 == pcVar11) goto LAB_00137d7b;\n                    cVar3 = *pcVar11;\n                  }\n                  *pcVar7 = *pcVar11;\n                  pcVar11 = pcVar11 + 1;\n                  pcVar7 = pcVar7 + 1;\n                }\n              }\n              pcVar5 = pcVar11;\n            } while (pcVar11 < pcVar14);\nLAB_00137d7b:\n            pcVar11 = pcVar7;\n            if (pcVar5 != pcVar7) {\n              *pcVar7 = '\0';\n            }\n          }\n          pcVar14 = *(char **)(piVar9 + 8);\n          pcVar6 = strrchr(pcVar14,0x2f);\n          if (pcVar6 == (char *)0x0) {\n            uVar8 = FUN_001496d9(&DAT_0015ea35);\n            *(undefined8 *)(piVar9 + 0x10) = uVar8;\n            uVar8 = FUN_001496d9(pcVar14);\n            *(undefined8 *)(piVar9 + 0x12) = uVar8;\n          }\n          else {\n            uVar8 = FUN_0013a40c(pcVar14,pcVar6);\n            *(undefined8 *)(piVar9 + 0x10) = uVar8;\n            uVar8 = FUN_001496d9(pcVar6 + 1);\n            *(undefined8 *)(piVar9 + 0x12) = uVar8;\n          }\n          FUN_00135c58(*(undefined8 *)(piVar9 + 0x10));\n          FUN_00135c58(*(undefined8 *)(piVar9 + 0x12));\n          pcVar14 = *(char **)(piVar9 + 4);\n          cVar3 = *pcVar14;\n          if (cVar3 == '\0') {\n            bVar17 = 0;\n          }\n          else {\n            bVar17 = 0;\n            do {\n              if ((int)cVar3 - 0x41U < 0x1a) {\n                *pcVar14 = cVar3 + ' ';\n                bVar17 = 1;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            } while (cVar3 != '\0');\n          }\n          pcVar14 = *(char **)(piVar9 + 4);\n          pcVar6 = strchr(pcVar14,0x25);\n          if (pcVar6 != (char *)0x0) {\n            FUN_00135c58(pcVar14);\n            pcVar14 = *(char **)(piVar9 + 4);\n            cVar3 = *pcVar14;\n            while (cVar3 != '\0') {\n              if ((-1 < cVar3) && ((cVar3 < ' ' || (cVar3 == '\x7f')))) {\n                FUN_0013629a(piVar9);\n                iVar15 = 3;\n                goto LAB_00137c65;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            }\n            bVar17 = param_3 != 0 & DAT_00177606;\n            if (bVar17 == 0) {\n              bVar17 = 1;\n            }\n            else {\n              lVar12 = FUN_0013eaa4(param_3);\n              if (lVar12 != 0) {\n                free(*(void **)(piVar9 + 4));\n                *(long *)(piVar9 + 4) = lVar12;\n              }\n            }\n          }\n          if (local_70 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_70,local_60);\n            *(undefined8 *)(piVar9 + 10) = uVar8;\n          }\n          if (local_b0 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_b0,local_58);\n            *(undefined8 *)(piVar9 + 0xc) = uVar8;\n          }\n          if (local_68 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_68,local_50);\n            *(undefined8 *)(piVar9 + 0xe) = uVar8;\n          }\n          param_2 = piVar9;\n          if ((((DAT_00177606 == 0) && (pcVar5 == pcVar11)) && (*(long *)(piVar9 + 0xe) == 0)) &&\n             ((local_88 != local_80 && (bVar17 == 0)))) {\n            if (local_b8 == param_1) {\n              uVar8 = FUN_001496d9(param_1);\n              *(undefined8 *)piVar9 = uVar8;\n            }\n            else {\n              *(void **)piVar9 = local_b8;\n            }\n          }\n          else {\n            uVar8 = FUN_00137051(piVar9,0);\n            *(undefined8 *)piVar9 = uVar8;\n            if (local_b8 != param_1) {\n              free(local_b8);\n            }\n          }\n          goto LAB_00137c95;\n        }\n        pcVar14 = pcVar14 + -1;\n        if (pcVar14 == pcVar11) {\n          iVar15 = 5;\n        }\n        else {\n          pcVar6 = (char *)memchr(pcVar11,0x3a,(long)pcVar14 - (long)pcVar11);\n          if (pcVar11 != pcVar6) {\n            pcVar5 = pcVar6;\n            if (pcVar6 != (char *)0x0) {\n              pcVar5 = (char *)FUN_0013a40c(pcVar6 + 1,pcVar14);\n              FUN_00135c58(pcVar5);\n              pcVar14 = pcVar6;\n            }\n            uVar8 = FUN_0013a40c(pcVar11,pcVar14);\n            FUN_00135c58(uVar8);\n            goto LAB_001379c6;\n          }\n          iVar15 = 5;\n        }\n      }" else (compound_statement "{\n        local_74 = *(uint *)(&DAT_0016e350 + (ulong)uVar4 * 0x18);\n        pcVar7 = pcVar6;\n        if (*pcVar6 == ':') {\n          __s = pcVar6 + 1;\n          pcVar7 = strpbrk(__s,pcVar5 + 1);\n          if (pcVar7 == (char *)0x0) {\n            uVar13 = 0xffffffffffffffff;\n            pcVar7 = __s;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar7;\n              pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');\n            pcVar7 = pcVar6 + ~uVar13;\n          }\n          if (__s != pcVar7) {\n            if (__s < pcVar7) {\n              local_74 = (int)pcVar6[1] - 0x30;\n              if (local_74 < 10) {\n                do {\n                  __s = __s + 1;\n                  if (__s == pcVar7) goto LAB_00137584;\n                  if (9 < (int)*__s - 0x30U) {\n                    iVar15 = 4;\n                    goto LAB_00137c65;\n                  }\n                  local_74 = *__s + -0x30 + local_74 * 10;\n                } while ((int)local_74 < 0x10000);\n                iVar15 = 4;\n              }\n              else {\n                iVar15 = 4;\n              }\n              goto LAB_00137c65;\n            }\n            local_74 = 0;\n          }\n        }\nLAB_00137584:\n        local_80 = (char *)0x0;\n        local_88 = (char *)0x0;\n        pcVar6 = pcVar7;\n        if (*pcVar7 == '/') {\n          local_88 = pcVar7 + 1;\n          pcVar6 = strpbrk(local_88,pcVar5 + 2);\n          local_80 = pcVar6;\n          if (pcVar6 == (char *)0x0) {\n            uVar13 = 0xffffffffffffffff;\n            pcVar6 = local_88;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');\n            pcVar6 = pcVar7 + ~uVar13;\n            local_80 = pcVar6;\n          }\n        }\n        local_90 = pcVar5 + 3;\n        uVar2 = (&DAT_0016e354)[(ulong)uVar4 * 6];\n        if ((uVar2 & 2) == 0) {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n        }\n        else {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n          pcVar7 = pcVar6;\n          if (*pcVar6 == ';') {\n            local_70 = pcVar6 + 1;\n            pcVar7 = strpbrk(local_70,local_90);\n            local_60 = pcVar7;\n            if (pcVar7 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar7 = local_70;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar7;\n                pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar7 = pcVar6 + ~uVar13;\n              local_60 = pcVar7;\n            }\n          }\n          local_90 = pcVar5 + 4;\n          pcVar6 = pcVar7;\n        }\n        if ((uVar2 & 4) == 0) {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n        }\n        else {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n          pcVar5 = pcVar6;\n          if (*pcVar6 == '?') {\n            local_b0 = pcVar6 + 1;\n            pcVar5 = strpbrk(local_b0,local_90);\n            local_58 = pcVar5;\n            if (pcVar5 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_b0;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar5 = pcVar6 + ~uVar13;\n              local_58 = pcVar5;\n            }\n          }\n          local_90 = local_90 + 1;\n          pcVar6 = pcVar5;\n        }\n        if ((uVar2 & 8) == 0) {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n        }\n        else {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n          if (*pcVar6 == '#') {\n            local_68 = pcVar6 + 1;\n            local_50 = strpbrk(local_68,local_90);\n            if (local_50 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_68;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              local_50 = pcVar6 + ~uVar13;\n            }\n          }\n        }\n        if (pcVar11 == pcVar14) {\n          pcVar5 = (char *)0x0;\n          uVar8 = 0;\nLAB_001379c6:\n          piVar9 = (int *)FUN_0014967c(1,0x60);\n          piVar9[2] = uVar4;\n          uVar10 = FUN_0013a40c(local_a8,local_a0);\n          *(undefined8 *)(piVar9 + 4) = uVar10;\n          piVar9[6] = local_74;\n          *(undefined8 *)(piVar9 + 0x14) = uVar8;\n          *(char **)(piVar9 + 0x16) = pcVar5;\n          pcVar11 = (char *)FUN_0013a40c(local_88,local_80);\n          *(char **)(piVar9 + 8) = pcVar11;\n          uVar13 = 0xffffffffffffffff;\n          pcVar14 = pcVar11;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar3 = *pcVar14;\n            pcVar14 = pcVar14 + (ulong)bVar17 * -2 + 1;\n          } while (cVar3 != '\0');\n          pcVar14 = pcVar11 + (~uVar13 - 1);\n          pcVar5 = pcVar11;\n          if (pcVar11 < pcVar14) {\n            pcVar7 = pcVar11;\n            pcVar6 = pcVar11;\n            do {\n              cVar3 = *pcVar11;\n              if (cVar3 == '.') {\n                cVar1 = pcVar11[1];\n                if ((cVar1 == '/') || (cVar1 == '\0')) {\n                  pcVar11 = pcVar11 + 2;\n                }\n                else {\n                  if ((cVar1 != '.') || ((pcVar11[2] != '/' && (pcVar11[2] != '\0'))))\n                  goto LAB_00137e1d;\n                  if (pcVar6 < pcVar7) {\n                    pcVar5 = pcVar7 + -1;\n                    if (pcVar6 < pcVar5) {\n                      cVar3 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar3 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar3 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar5 = pcVar7;\n                    if (uVar4 - 2 < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }\n                  pcVar11 = pcVar11 + 3;\n                  pcVar7 = pcVar5;\n                }\n              }\n              else {\nLAB_00137e1d:\n                if (pcVar7 == pcVar11) {\n                  pcVar5 = pcVar7;\n                  if (pcVar14 <= pcVar7) break;\n                  cVar3 = *pcVar7;\n                  while (cVar3 != '/') {\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar14;\n                    if (pcVar14 == pcVar5) goto LAB_00137d7b;\n                    cVar3 = *pcVar5;\n                  }\n                  pcVar11 = pcVar5 + 1;\n                  pcVar7 = pcVar5 + 1;\n                }\n                else {\n                  pcVar5 = pcVar11;\n                  if (pcVar14 <= pcVar11) break;\n                  while (cVar3 != '/') {\n                    pcVar11 = pcVar11 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar3;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar14;\n                    if (pcVar14 == pcVar11) goto LAB_00137d7b;\n                    cVar3 = *pcVar11;\n                  }\n                  *pcVar7 = *pcVar11;\n                  pcVar11 = pcVar11 + 1;\n                  pcVar7 = pcVar7 + 1;\n                }\n              }\n              pcVar5 = pcVar11;\n            } while (pcVar11 < pcVar14);\nLAB_00137d7b:\n            pcVar11 = pcVar7;\n            if (pcVar5 != pcVar7) {\n              *pcVar7 = '\0';\n            }\n          }\n          pcVar14 = *(char **)(piVar9 + 8);\n          pcVar6 = strrchr(pcVar14,0x2f);\n          if (pcVar6 == (char *)0x0) {\n            uVar8 = FUN_001496d9(&DAT_0015ea35);\n            *(undefined8 *)(piVar9 + 0x10) = uVar8;\n            uVar8 = FUN_001496d9(pcVar14);\n            *(undefined8 *)(piVar9 + 0x12) = uVar8;\n          }\n          else {\n            uVar8 = FUN_0013a40c(pcVar14,pcVar6);\n            *(undefined8 *)(piVar9 + 0x10) = uVar8;\n            uVar8 = FUN_001496d9(pcVar6 + 1);\n            *(undefined8 *)(piVar9 + 0x12) = uVar8;\n          }\n          FUN_00135c58(*(undefined8 *)(piVar9 + 0x10));\n          FUN_00135c58(*(undefined8 *)(piVar9 + 0x12));\n          pcVar14 = *(char **)(piVar9 + 4);\n          cVar3 = *pcVar14;\n          if (cVar3 == '\0') {\n            bVar17 = 0;\n          }\n          else {\n            bVar17 = 0;\n            do {\n              if ((int)cVar3 - 0x41U < 0x1a) {\n                *pcVar14 = cVar3 + ' ';\n                bVar17 = 1;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            } while (cVar3 != '\0');\n          }\n          pcVar14 = *(char **)(piVar9 + 4);\n          pcVar6 = strchr(pcVar14,0x25);\n          if (pcVar6 != (char *)0x0) {\n            FUN_00135c58(pcVar14);\n            pcVar14 = *(char **)(piVar9 + 4);\n            cVar3 = *pcVar14;\n            while (cVar3 != '\0') {\n              if ((-1 < cVar3) && ((cVar3 < ' ' || (cVar3 == '\x7f')))) {\n                FUN_0013629a(piVar9);\n                iVar15 = 3;\n                goto LAB_00137c65;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            }\n            bVar17 = param_3 != 0 & DAT_00177606;\n            if (bVar17 == 0) {\n              bVar17 = 1;\n            }\n            else {\n              lVar12 = FUN_0013eaa4(param_3);\n              if (lVar12 != 0) {\n                free(*(void **)(piVar9 + 4));\n                *(long *)(piVar9 + 4) = lVar12;\n              }\n            }\n          }\n          if (local_70 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_70,local_60);\n            *(undefined8 *)(piVar9 + 10) = uVar8;\n          }\n          if (local_b0 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_b0,local_58);\n            *(undefined8 *)(piVar9 + 0xc) = uVar8;\n          }\n          if (local_68 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_68,local_50);\n            *(undefined8 *)(piVar9 + 0xe) = uVar8;\n          }\n          param_2 = piVar9;\n          if ((((DAT_00177606 == 0) && (pcVar5 == pcVar11)) && (*(long *)(piVar9 + 0xe) == 0)) &&\n             ((local_88 != local_80 && (bVar17 == 0)))) {\n            if (local_b8 == param_1) {\n              uVar8 = FUN_001496d9(param_1);\n              *(undefined8 *)piVar9 = uVar8;\n            }\n            else {\n              *(void **)piVar9 = local_b8;\n            }\n          }\n          else {\n            uVar8 = FUN_00137051(piVar9,0);\n            *(undefined8 *)piVar9 = uVar8;\n            if (local_b8 != param_1) {\n              free(local_b8);\n            }\n          }\n          goto LAB_00137c95;\n        }\n        pcVar14 = pcVar14 + -1;\n        if (pcVar14 == pcVar11) {\n          iVar15 = 5;\n        }\n        else {\n          pcVar6 = (char *)memchr(pcVar11,0x3a,(long)pcVar14 - (long)pcVar11);\n          if (pcVar11 != pcVar6) {\n            pcVar5 = pcVar6;\n            if (pcVar6 != (char *)0x0) {\n              pcVar5 = (char *)FUN_0013a40c(pcVar6 + 1,pcVar14);\n              FUN_00135c58(pcVar5);\n              pcVar14 = pcVar6;\n            }\n            uVar8 = FUN_0013a40c(pcVar11,pcVar14);\n            FUN_00135c58(uVar8);\n            goto LAB_001379c6;\n          }\n          iVar15 = 5;\n        }\n      }" { (expression_statement "local_74 = *(uint *)(&DAT_0016e350 + (ulong)uVar4 * 0x18);" (assignment_expression "local_74 = *(uint *)(&DAT_0016e350 + (ulong)uVar4 * 0x18)" identifier = (pointer_expression "*(uint *)(&DAT_0016e350 + (ulong)uVar4 * 0x18)" * (cast_expression "(uint *)(&DAT_0016e350 + (ulong)uVar4 * 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_0016e350 + (ulong)uVar4 * 0x18)" ( (binary_expression "&DAT_0016e350 + (ulong)uVar4 * 0x18" (pointer_expression "&DAT_0016e350" & identifier) + (binary_expression "(ulong)uVar4 * 0x18" (cast_expression "(ulong)uVar4" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) ))))) ;) (expression_statement "pcVar7 = pcVar6;" (assignment_expression "pcVar7 = pcVar6" identifier = identifier) ;) (if_statement "if (*pcVar6 == ':') {\n          __s = pcVar6 + 1;\n          pcVar7 = strpbrk(__s,pcVar5 + 1);\n          if (pcVar7 == (char *)0x0) {\n            uVar13 = 0xffffffffffffffff;\n            pcVar7 = __s;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar7;\n              pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');\n            pcVar7 = pcVar6 + ~uVar13;\n          }\n          if (__s != pcVar7) {\n            if (__s < pcVar7) {\n              local_74 = (int)pcVar6[1] - 0x30;\n              if (local_74 < 10) {\n                do {\n                  __s = __s + 1;\n                  if (__s == pcVar7) goto LAB_00137584;\n                  if (9 < (int)*__s - 0x30U) {\n                    iVar15 = 4;\n                    goto LAB_00137c65;\n                  }\n                  local_74 = *__s + -0x30 + local_74 * 10;\n                } while ((int)local_74 < 0x10000);\n                iVar15 = 4;\n              }\n              else {\n                iVar15 = 4;\n              }\n              goto LAB_00137c65;\n            }\n            local_74 = 0;\n          }\n        }" if (parenthesized_expression "(*pcVar6 == ':')" ( (binary_expression "*pcVar6 == ':'" (pointer_expression "*pcVar6" * identifier) == (char_literal "':'" ' character ')) )) (compound_statement "{\n          __s = pcVar6 + 1;\n          pcVar7 = strpbrk(__s,pcVar5 + 1);\n          if (pcVar7 == (char *)0x0) {\n            uVar13 = 0xffffffffffffffff;\n            pcVar7 = __s;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar7;\n              pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');\n            pcVar7 = pcVar6 + ~uVar13;\n          }\n          if (__s != pcVar7) {\n            if (__s < pcVar7) {\n              local_74 = (int)pcVar6[1] - 0x30;\n              if (local_74 < 10) {\n                do {\n                  __s = __s + 1;\n                  if (__s == pcVar7) goto LAB_00137584;\n                  if (9 < (int)*__s - 0x30U) {\n                    iVar15 = 4;\n                    goto LAB_00137c65;\n                  }\n                  local_74 = *__s + -0x30 + local_74 * 10;\n                } while ((int)local_74 < 0x10000);\n                iVar15 = 4;\n              }\n              else {\n                iVar15 = 4;\n              }\n              goto LAB_00137c65;\n            }\n            local_74 = 0;\n          }\n        }" { (expression_statement "__s = pcVar6 + 1;" (assignment_expression "__s = pcVar6 + 1" identifier = (binary_expression "pcVar6 + 1" identifier + number_literal)) ;) (expression_statement "pcVar7 = strpbrk(__s,pcVar5 + 1);" (assignment_expression "pcVar7 = strpbrk(__s,pcVar5 + 1)" identifier = (call_expression "strpbrk(__s,pcVar5 + 1)" identifier (argument_list "(__s,pcVar5 + 1)" ( identifier , (binary_expression "pcVar5 + 1" identifier + number_literal) )))) ;) (if_statement "if (pcVar7 == (char *)0x0) {\n            uVar13 = 0xffffffffffffffff;\n            pcVar7 = __s;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar7;\n              pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');\n            pcVar7 = pcVar6 + ~uVar13;\n          }" if (parenthesized_expression "(pcVar7 == (char *)0x0)" ( (binary_expression "pcVar7 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            uVar13 = 0xffffffffffffffff;\n            pcVar7 = __s;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar7;\n              pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');\n            pcVar7 = pcVar6 + ~uVar13;\n          }" { (expression_statement "uVar13 = 0xffffffffffffffff;" (assignment_expression "uVar13 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar7 = __s;" (assignment_expression "pcVar7 = __s" identifier = identifier) ;) (do_statement "do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar7;\n              pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');" do (compound_statement "{\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar7;\n              pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n            }" { (if_statement "if (uVar13 == 0) break;" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar13 = uVar13 - 1;" (assignment_expression "uVar13 = uVar13 - 1" identifier = (binary_expression "uVar13 - 1" identifier - number_literal)) ;) (expression_statement "cVar3 = *pcVar7;" (assignment_expression "cVar3 = *pcVar7" identifier = (pointer_expression "*pcVar7" * identifier)) ;) (expression_statement "pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1" identifier = (binary_expression "pcVar7 + (ulong)bVar17 * -2 + 1" (binary_expression "pcVar7 + (ulong)bVar17 * -2" identifier + (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar3 != '\0')" ( (binary_expression "cVar3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "pcVar7 = pcVar6 + ~uVar13;" (assignment_expression "pcVar7 = pcVar6 + ~uVar13" identifier = (binary_expression "pcVar6 + ~uVar13" identifier + (unary_expression "~uVar13" ~ identifier))) ;) })) (if_statement "if (__s != pcVar7) {\n            if (__s < pcVar7) {\n              local_74 = (int)pcVar6[1] - 0x30;\n              if (local_74 < 10) {\n                do {\n                  __s = __s + 1;\n                  if (__s == pcVar7) goto LAB_00137584;\n                  if (9 < (int)*__s - 0x30U) {\n                    iVar15 = 4;\n                    goto LAB_00137c65;\n                  }\n                  local_74 = *__s + -0x30 + local_74 * 10;\n                } while ((int)local_74 < 0x10000);\n                iVar15 = 4;\n              }\n              else {\n                iVar15 = 4;\n              }\n              goto LAB_00137c65;\n            }\n            local_74 = 0;\n          }" if (parenthesized_expression "(__s != pcVar7)" ( (binary_expression "__s != pcVar7" identifier != identifier) )) (compound_statement "{\n            if (__s < pcVar7) {\n              local_74 = (int)pcVar6[1] - 0x30;\n              if (local_74 < 10) {\n                do {\n                  __s = __s + 1;\n                  if (__s == pcVar7) goto LAB_00137584;\n                  if (9 < (int)*__s - 0x30U) {\n                    iVar15 = 4;\n                    goto LAB_00137c65;\n                  }\n                  local_74 = *__s + -0x30 + local_74 * 10;\n                } while ((int)local_74 < 0x10000);\n                iVar15 = 4;\n              }\n              else {\n                iVar15 = 4;\n              }\n              goto LAB_00137c65;\n            }\n            local_74 = 0;\n          }" { (if_statement "if (__s < pcVar7) {\n              local_74 = (int)pcVar6[1] - 0x30;\n              if (local_74 < 10) {\n                do {\n                  __s = __s + 1;\n                  if (__s == pcVar7) goto LAB_00137584;\n                  if (9 < (int)*__s - 0x30U) {\n                    iVar15 = 4;\n                    goto LAB_00137c65;\n                  }\n                  local_74 = *__s + -0x30 + local_74 * 10;\n                } while ((int)local_74 < 0x10000);\n                iVar15 = 4;\n              }\n              else {\n                iVar15 = 4;\n              }\n              goto LAB_00137c65;\n            }" if (parenthesized_expression "(__s < pcVar7)" ( (binary_expression "__s < pcVar7" identifier < identifier) )) (compound_statement "{\n              local_74 = (int)pcVar6[1] - 0x30;\n              if (local_74 < 10) {\n                do {\n                  __s = __s + 1;\n                  if (__s == pcVar7) goto LAB_00137584;\n                  if (9 < (int)*__s - 0x30U) {\n                    iVar15 = 4;\n                    goto LAB_00137c65;\n                  }\n                  local_74 = *__s + -0x30 + local_74 * 10;\n                } while ((int)local_74 < 0x10000);\n                iVar15 = 4;\n              }\n              else {\n                iVar15 = 4;\n              }\n              goto LAB_00137c65;\n            }" { (expression_statement "local_74 = (int)pcVar6[1] - 0x30;" (assignment_expression "local_74 = (int)pcVar6[1] - 0x30" identifier = (binary_expression "(int)pcVar6[1] - 0x30" (cast_expression "(int)pcVar6[1]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pcVar6[1]" identifier [ number_literal ])) - number_literal)) ;) (if_statement "if (local_74 < 10) {\n                do {\n                  __s = __s + 1;\n                  if (__s == pcVar7) goto LAB_00137584;\n                  if (9 < (int)*__s - 0x30U) {\n                    iVar15 = 4;\n                    goto LAB_00137c65;\n                  }\n                  local_74 = *__s + -0x30 + local_74 * 10;\n                } while ((int)local_74 < 0x10000);\n                iVar15 = 4;\n              }\n              else {\n                iVar15 = 4;\n              }" if (parenthesized_expression "(local_74 < 10)" ( (binary_expression "local_74 < 10" identifier < number_literal) )) (compound_statement "{\n                do {\n                  __s = __s + 1;\n                  if (__s == pcVar7) goto LAB_00137584;\n                  if (9 < (int)*__s - 0x30U) {\n                    iVar15 = 4;\n                    goto LAB_00137c65;\n                  }\n                  local_74 = *__s + -0x30 + local_74 * 10;\n                } while ((int)local_74 < 0x10000);\n                iVar15 = 4;\n              }" { (do_statement "do {\n                  __s = __s + 1;\n                  if (__s == pcVar7) goto LAB_00137584;\n                  if (9 < (int)*__s - 0x30U) {\n                    iVar15 = 4;\n                    goto LAB_00137c65;\n                  }\n                  local_74 = *__s + -0x30 + local_74 * 10;\n                } while ((int)local_74 < 0x10000);" do (compound_statement "{\n                  __s = __s + 1;\n                  if (__s == pcVar7) goto LAB_00137584;\n                  if (9 < (int)*__s - 0x30U) {\n                    iVar15 = 4;\n                    goto LAB_00137c65;\n                  }\n                  local_74 = *__s + -0x30 + local_74 * 10;\n                }" { (expression_statement "__s = __s + 1;" (assignment_expression "__s = __s + 1" identifier = (binary_expression "__s + 1" identifier + number_literal)) ;) (if_statement "if (__s == pcVar7) goto LAB_00137584;" if (parenthesized_expression "(__s == pcVar7)" ( (binary_expression "__s == pcVar7" identifier == identifier) )) (goto_statement "goto LAB_00137584;" goto statement_identifier ;)) (if_statement "if (9 < (int)*__s - 0x30U) {\n                    iVar15 = 4;\n                    goto LAB_00137c65;\n                  }" if (parenthesized_expression "(9 < (int)*__s - 0x30U)" ( (binary_expression "9 < (int)*__s - 0x30U" number_literal < (binary_expression "(int)*__s - 0x30U" (cast_expression "(int)*__s" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*__s" * identifier)) - number_literal)) )) (compound_statement "{\n                    iVar15 = 4;\n                    goto LAB_00137c65;\n                  }" { (expression_statement "iVar15 = 4;" (assignment_expression "iVar15 = 4" identifier = number_literal) ;) (goto_statement "goto LAB_00137c65;" goto statement_identifier ;) })) (expression_statement "local_74 = *__s + -0x30 + local_74 * 10;" (assignment_expression "local_74 = *__s + -0x30 + local_74 * 10" identifier = (binary_expression "*__s + -0x30 + local_74 * 10" (binary_expression "*__s + -0x30" (pointer_expression "*__s" * identifier) + number_literal) + (binary_expression "local_74 * 10" identifier * number_literal))) ;) }) while (parenthesized_expression "((int)local_74 < 0x10000)" ( (binary_expression "(int)local_74 < 0x10000" (cast_expression "(int)local_74" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) ;) (expression_statement "iVar15 = 4;" (assignment_expression "iVar15 = 4" identifier = number_literal) ;) }) (else_clause "else {\n                iVar15 = 4;\n              }" else (compound_statement "{\n                iVar15 = 4;\n              }" { (expression_statement "iVar15 = 4;" (assignment_expression "iVar15 = 4" identifier = number_literal) ;) }))) (goto_statement "goto LAB_00137c65;" goto statement_identifier ;) })) (expression_statement "local_74 = 0;" (assignment_expression "local_74 = 0" identifier = number_literal) ;) })) })) (labeled_statement "LAB_00137584:\n        local_80 = (char *)0x0;" statement_identifier : (expression_statement "local_80 = (char *)0x0;" (assignment_expression "local_80 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "local_88 = (char *)0x0;" (assignment_expression "local_88 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar6 = pcVar7;" (assignment_expression "pcVar6 = pcVar7" identifier = identifier) ;) (if_statement "if (*pcVar7 == '/') {\n          local_88 = pcVar7 + 1;\n          pcVar6 = strpbrk(local_88,pcVar5 + 2);\n          local_80 = pcVar6;\n          if (pcVar6 == (char *)0x0) {\n            uVar13 = 0xffffffffffffffff;\n            pcVar6 = local_88;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');\n            pcVar6 = pcVar7 + ~uVar13;\n            local_80 = pcVar6;\n          }\n        }" if (parenthesized_expression "(*pcVar7 == '/')" ( (binary_expression "*pcVar7 == '/'" (pointer_expression "*pcVar7" * identifier) == (char_literal "'/'" ' character ')) )) (compound_statement "{\n          local_88 = pcVar7 + 1;\n          pcVar6 = strpbrk(local_88,pcVar5 + 2);\n          local_80 = pcVar6;\n          if (pcVar6 == (char *)0x0) {\n            uVar13 = 0xffffffffffffffff;\n            pcVar6 = local_88;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');\n            pcVar6 = pcVar7 + ~uVar13;\n            local_80 = pcVar6;\n          }\n        }" { (expression_statement "local_88 = pcVar7 + 1;" (assignment_expression "local_88 = pcVar7 + 1" identifier = (binary_expression "pcVar7 + 1" identifier + number_literal)) ;) (expression_statement "pcVar6 = strpbrk(local_88,pcVar5 + 2);" (assignment_expression "pcVar6 = strpbrk(local_88,pcVar5 + 2)" identifier = (call_expression "strpbrk(local_88,pcVar5 + 2)" identifier (argument_list "(local_88,pcVar5 + 2)" ( identifier , (binary_expression "pcVar5 + 2" identifier + number_literal) )))) ;) (expression_statement "local_80 = pcVar6;" (assignment_expression "local_80 = pcVar6" identifier = identifier) ;) (if_statement "if (pcVar6 == (char *)0x0) {\n            uVar13 = 0xffffffffffffffff;\n            pcVar6 = local_88;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');\n            pcVar6 = pcVar7 + ~uVar13;\n            local_80 = pcVar6;\n          }" if (parenthesized_expression "(pcVar6 == (char *)0x0)" ( (binary_expression "pcVar6 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            uVar13 = 0xffffffffffffffff;\n            pcVar6 = local_88;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');\n            pcVar6 = pcVar7 + ~uVar13;\n            local_80 = pcVar6;\n          }" { (expression_statement "uVar13 = 0xffffffffffffffff;" (assignment_expression "uVar13 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar6 = local_88;" (assignment_expression "pcVar6 = local_88" identifier = identifier) ;) (do_statement "do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');" do (compound_statement "{\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            }" { (if_statement "if (uVar13 == 0) break;" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar13 = uVar13 - 1;" (assignment_expression "uVar13 = uVar13 - 1" identifier = (binary_expression "uVar13 - 1" identifier - number_literal)) ;) (expression_statement "cVar3 = *pcVar6;" (assignment_expression "cVar3 = *pcVar6" identifier = (pointer_expression "*pcVar6" * identifier)) ;) (expression_statement "pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1" identifier = (binary_expression "pcVar6 + (ulong)bVar17 * -2 + 1" (binary_expression "pcVar6 + (ulong)bVar17 * -2" identifier + (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar3 != '\0')" ( (binary_expression "cVar3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "pcVar6 = pcVar7 + ~uVar13;" (assignment_expression "pcVar6 = pcVar7 + ~uVar13" identifier = (binary_expression "pcVar7 + ~uVar13" identifier + (unary_expression "~uVar13" ~ identifier))) ;) (expression_statement "local_80 = pcVar6;" (assignment_expression "local_80 = pcVar6" identifier = identifier) ;) })) })) (expression_statement "local_90 = pcVar5 + 3;" (assignment_expression "local_90 = pcVar5 + 3" identifier = (binary_expression "pcVar5 + 3" identifier + number_literal)) ;) (expression_statement "uVar2 = (&DAT_0016e354)[(ulong)uVar4 * 6];" (assignment_expression "uVar2 = (&DAT_0016e354)[(ulong)uVar4 * 6]" identifier = (subscript_expression "(&DAT_0016e354)[(ulong)uVar4 * 6]" (parenthesized_expression "(&DAT_0016e354)" ( (pointer_expression "&DAT_0016e354" & identifier) )) [ (binary_expression "(ulong)uVar4 * 6" (cast_expression "(ulong)uVar4" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal) ])) ;) (if_statement "if ((uVar2 & 2) == 0) {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n        }\n        else {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n          pcVar7 = pcVar6;\n          if (*pcVar6 == ';') {\n            local_70 = pcVar6 + 1;\n            pcVar7 = strpbrk(local_70,local_90);\n            local_60 = pcVar7;\n            if (pcVar7 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar7 = local_70;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar7;\n                pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar7 = pcVar6 + ~uVar13;\n              local_60 = pcVar7;\n            }\n          }\n          local_90 = pcVar5 + 4;\n          pcVar6 = pcVar7;\n        }" if (parenthesized_expression "((uVar2 & 2) == 0)" ( (binary_expression "(uVar2 & 2) == 0" (parenthesized_expression "(uVar2 & 2)" ( (binary_expression "uVar2 & 2" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n        }" { (expression_statement "local_60 = (char *)0x0;" (assignment_expression "local_60 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_70 = (char *)0x0;" (assignment_expression "local_70 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n          pcVar7 = pcVar6;\n          if (*pcVar6 == ';') {\n            local_70 = pcVar6 + 1;\n            pcVar7 = strpbrk(local_70,local_90);\n            local_60 = pcVar7;\n            if (pcVar7 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar7 = local_70;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar7;\n                pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar7 = pcVar6 + ~uVar13;\n              local_60 = pcVar7;\n            }\n          }\n          local_90 = pcVar5 + 4;\n          pcVar6 = pcVar7;\n        }" else (compound_statement "{\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n          pcVar7 = pcVar6;\n          if (*pcVar6 == ';') {\n            local_70 = pcVar6 + 1;\n            pcVar7 = strpbrk(local_70,local_90);\n            local_60 = pcVar7;\n            if (pcVar7 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar7 = local_70;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar7;\n                pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar7 = pcVar6 + ~uVar13;\n              local_60 = pcVar7;\n            }\n          }\n          local_90 = pcVar5 + 4;\n          pcVar6 = pcVar7;\n        }" { (expression_statement "local_60 = (char *)0x0;" (assignment_expression "local_60 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_70 = (char *)0x0;" (assignment_expression "local_70 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar7 = pcVar6;" (assignment_expression "pcVar7 = pcVar6" identifier = identifier) ;) (if_statement "if (*pcVar6 == ';') {\n            local_70 = pcVar6 + 1;\n            pcVar7 = strpbrk(local_70,local_90);\n            local_60 = pcVar7;\n            if (pcVar7 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar7 = local_70;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar7;\n                pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar7 = pcVar6 + ~uVar13;\n              local_60 = pcVar7;\n            }\n          }" if (parenthesized_expression "(*pcVar6 == ';')" ( (binary_expression "*pcVar6 == ';'" (pointer_expression "*pcVar6" * identifier) == (char_literal "';'" ' character ')) )) (compound_statement "{\n            local_70 = pcVar6 + 1;\n            pcVar7 = strpbrk(local_70,local_90);\n            local_60 = pcVar7;\n            if (pcVar7 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar7 = local_70;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar7;\n                pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar7 = pcVar6 + ~uVar13;\n              local_60 = pcVar7;\n            }\n          }" { (expression_statement "local_70 = pcVar6 + 1;" (assignment_expression "local_70 = pcVar6 + 1" identifier = (binary_expression "pcVar6 + 1" identifier + number_literal)) ;) (expression_statement "pcVar7 = strpbrk(local_70,local_90);" (assignment_expression "pcVar7 = strpbrk(local_70,local_90)" identifier = (call_expression "strpbrk(local_70,local_90)" identifier (argument_list "(local_70,local_90)" ( identifier , identifier )))) ;) (expression_statement "local_60 = pcVar7;" (assignment_expression "local_60 = pcVar7" identifier = identifier) ;) (if_statement "if (pcVar7 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar7 = local_70;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar7;\n                pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar7 = pcVar6 + ~uVar13;\n              local_60 = pcVar7;\n            }" if (parenthesized_expression "(pcVar7 == (char *)0x0)" ( (binary_expression "pcVar7 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              uVar13 = 0xffffffffffffffff;\n              pcVar7 = local_70;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar7;\n                pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar7 = pcVar6 + ~uVar13;\n              local_60 = pcVar7;\n            }" { (expression_statement "uVar13 = 0xffffffffffffffff;" (assignment_expression "uVar13 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar7 = local_70;" (assignment_expression "pcVar7 = local_70" identifier = identifier) ;) (do_statement "do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar7;\n                pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');" do (compound_statement "{\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar7;\n                pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n              }" { (if_statement "if (uVar13 == 0) break;" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar13 = uVar13 - 1;" (assignment_expression "uVar13 = uVar13 - 1" identifier = (binary_expression "uVar13 - 1" identifier - number_literal)) ;) (expression_statement "cVar3 = *pcVar7;" (assignment_expression "cVar3 = *pcVar7" identifier = (pointer_expression "*pcVar7" * identifier)) ;) (expression_statement "pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1" identifier = (binary_expression "pcVar7 + (ulong)bVar17 * -2 + 1" (binary_expression "pcVar7 + (ulong)bVar17 * -2" identifier + (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar3 != '\0')" ( (binary_expression "cVar3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "pcVar7 = pcVar6 + ~uVar13;" (assignment_expression "pcVar7 = pcVar6 + ~uVar13" identifier = (binary_expression "pcVar6 + ~uVar13" identifier + (unary_expression "~uVar13" ~ identifier))) ;) (expression_statement "local_60 = pcVar7;" (assignment_expression "local_60 = pcVar7" identifier = identifier) ;) })) })) (expression_statement "local_90 = pcVar5 + 4;" (assignment_expression "local_90 = pcVar5 + 4" identifier = (binary_expression "pcVar5 + 4" identifier + number_literal)) ;) (expression_statement "pcVar6 = pcVar7;" (assignment_expression "pcVar6 = pcVar7" identifier = identifier) ;) }))) (if_statement "if ((uVar2 & 4) == 0) {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n        }\n        else {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n          pcVar5 = pcVar6;\n          if (*pcVar6 == '?') {\n            local_b0 = pcVar6 + 1;\n            pcVar5 = strpbrk(local_b0,local_90);\n            local_58 = pcVar5;\n            if (pcVar5 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_b0;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar5 = pcVar6 + ~uVar13;\n              local_58 = pcVar5;\n            }\n          }\n          local_90 = local_90 + 1;\n          pcVar6 = pcVar5;\n        }" if (parenthesized_expression "((uVar2 & 4) == 0)" ( (binary_expression "(uVar2 & 4) == 0" (parenthesized_expression "(uVar2 & 4)" ( (binary_expression "uVar2 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n        }" { (expression_statement "local_58 = (char *)0x0;" (assignment_expression "local_58 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_b0 = (char *)0x0;" (assignment_expression "local_b0 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n          pcVar5 = pcVar6;\n          if (*pcVar6 == '?') {\n            local_b0 = pcVar6 + 1;\n            pcVar5 = strpbrk(local_b0,local_90);\n            local_58 = pcVar5;\n            if (pcVar5 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_b0;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar5 = pcVar6 + ~uVar13;\n              local_58 = pcVar5;\n            }\n          }\n          local_90 = local_90 + 1;\n          pcVar6 = pcVar5;\n        }" else (compound_statement "{\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n          pcVar5 = pcVar6;\n          if (*pcVar6 == '?') {\n            local_b0 = pcVar6 + 1;\n            pcVar5 = strpbrk(local_b0,local_90);\n            local_58 = pcVar5;\n            if (pcVar5 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_b0;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar5 = pcVar6 + ~uVar13;\n              local_58 = pcVar5;\n            }\n          }\n          local_90 = local_90 + 1;\n          pcVar6 = pcVar5;\n        }" { (expression_statement "local_58 = (char *)0x0;" (assignment_expression "local_58 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_b0 = (char *)0x0;" (assignment_expression "local_b0 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar5 = pcVar6;" (assignment_expression "pcVar5 = pcVar6" identifier = identifier) ;) (if_statement "if (*pcVar6 == '?') {\n            local_b0 = pcVar6 + 1;\n            pcVar5 = strpbrk(local_b0,local_90);\n            local_58 = pcVar5;\n            if (pcVar5 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_b0;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar5 = pcVar6 + ~uVar13;\n              local_58 = pcVar5;\n            }\n          }" if (parenthesized_expression "(*pcVar6 == '?')" ( (binary_expression "*pcVar6 == '?'" (pointer_expression "*pcVar6" * identifier) == (char_literal "'?'" ' character ')) )) (compound_statement "{\n            local_b0 = pcVar6 + 1;\n            pcVar5 = strpbrk(local_b0,local_90);\n            local_58 = pcVar5;\n            if (pcVar5 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_b0;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar5 = pcVar6 + ~uVar13;\n              local_58 = pcVar5;\n            }\n          }" { (expression_statement "local_b0 = pcVar6 + 1;" (assignment_expression "local_b0 = pcVar6 + 1" identifier = (binary_expression "pcVar6 + 1" identifier + number_literal)) ;) (expression_statement "pcVar5 = strpbrk(local_b0,local_90);" (assignment_expression "pcVar5 = strpbrk(local_b0,local_90)" identifier = (call_expression "strpbrk(local_b0,local_90)" identifier (argument_list "(local_b0,local_90)" ( identifier , identifier )))) ;) (expression_statement "local_58 = pcVar5;" (assignment_expression "local_58 = pcVar5" identifier = identifier) ;) (if_statement "if (pcVar5 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_b0;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar5 = pcVar6 + ~uVar13;\n              local_58 = pcVar5;\n            }" if (parenthesized_expression "(pcVar5 == (char *)0x0)" ( (binary_expression "pcVar5 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_b0;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar5 = pcVar6 + ~uVar13;\n              local_58 = pcVar5;\n            }" { (expression_statement "uVar13 = 0xffffffffffffffff;" (assignment_expression "uVar13 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar5 = local_b0;" (assignment_expression "pcVar5 = local_b0" identifier = identifier) ;) (do_statement "do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');" do (compound_statement "{\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              }" { (if_statement "if (uVar13 == 0) break;" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar13 = uVar13 - 1;" (assignment_expression "uVar13 = uVar13 - 1" identifier = (binary_expression "uVar13 - 1" identifier - number_literal)) ;) (expression_statement "cVar3 = *pcVar5;" (assignment_expression "cVar3 = *pcVar5" identifier = (pointer_expression "*pcVar5" * identifier)) ;) (expression_statement "pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1" identifier = (binary_expression "pcVar5 + (ulong)bVar17 * -2 + 1" (binary_expression "pcVar5 + (ulong)bVar17 * -2" identifier + (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar3 != '\0')" ( (binary_expression "cVar3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "pcVar5 = pcVar6 + ~uVar13;" (assignment_expression "pcVar5 = pcVar6 + ~uVar13" identifier = (binary_expression "pcVar6 + ~uVar13" identifier + (unary_expression "~uVar13" ~ identifier))) ;) (expression_statement "local_58 = pcVar5;" (assignment_expression "local_58 = pcVar5" identifier = identifier) ;) })) })) (expression_statement "local_90 = local_90 + 1;" (assignment_expression "local_90 = local_90 + 1" identifier = (binary_expression "local_90 + 1" identifier + number_literal)) ;) (expression_statement "pcVar6 = pcVar5;" (assignment_expression "pcVar6 = pcVar5" identifier = identifier) ;) }))) (if_statement "if ((uVar2 & 8) == 0) {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n        }\n        else {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n          if (*pcVar6 == '#') {\n            local_68 = pcVar6 + 1;\n            local_50 = strpbrk(local_68,local_90);\n            if (local_50 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_68;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              local_50 = pcVar6 + ~uVar13;\n            }\n          }\n        }" if (parenthesized_expression "((uVar2 & 8) == 0)" ( (binary_expression "(uVar2 & 8) == 0" (parenthesized_expression "(uVar2 & 8)" ( (binary_expression "uVar2 & 8" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n        }" { (expression_statement "local_50 = (char *)0x0;" (assignment_expression "local_50 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_68 = (char *)0x0;" (assignment_expression "local_68 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n          if (*pcVar6 == '#') {\n            local_68 = pcVar6 + 1;\n            local_50 = strpbrk(local_68,local_90);\n            if (local_50 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_68;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              local_50 = pcVar6 + ~uVar13;\n            }\n          }\n        }" else (compound_statement "{\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n          if (*pcVar6 == '#') {\n            local_68 = pcVar6 + 1;\n            local_50 = strpbrk(local_68,local_90);\n            if (local_50 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_68;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              local_50 = pcVar6 + ~uVar13;\n            }\n          }\n        }" { (expression_statement "local_50 = (char *)0x0;" (assignment_expression "local_50 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_68 = (char *)0x0;" (assignment_expression "local_68 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (*pcVar6 == '#') {\n            local_68 = pcVar6 + 1;\n            local_50 = strpbrk(local_68,local_90);\n            if (local_50 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_68;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              local_50 = pcVar6 + ~uVar13;\n            }\n          }" if (parenthesized_expression "(*pcVar6 == '#')" ( (binary_expression "*pcVar6 == '#'" (pointer_expression "*pcVar6" * identifier) == (char_literal "'#'" ' character ')) )) (compound_statement "{\n            local_68 = pcVar6 + 1;\n            local_50 = strpbrk(local_68,local_90);\n            if (local_50 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_68;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              local_50 = pcVar6 + ~uVar13;\n            }\n          }" { (expression_statement "local_68 = pcVar6 + 1;" (assignment_expression "local_68 = pcVar6 + 1" identifier = (binary_expression "pcVar6 + 1" identifier + number_literal)) ;) (expression_statement "local_50 = strpbrk(local_68,local_90);" (assignment_expression "local_50 = strpbrk(local_68,local_90)" identifier = (call_expression "strpbrk(local_68,local_90)" identifier (argument_list "(local_68,local_90)" ( identifier , identifier )))) ;) (if_statement "if (local_50 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_68;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              local_50 = pcVar6 + ~uVar13;\n            }" if (parenthesized_expression "(local_50 == (char *)0x0)" ( (binary_expression "local_50 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_68;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              local_50 = pcVar6 + ~uVar13;\n            }" { (expression_statement "uVar13 = 0xffffffffffffffff;" (assignment_expression "uVar13 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar5 = local_68;" (assignment_expression "pcVar5 = local_68" identifier = identifier) ;) (do_statement "do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');" do (compound_statement "{\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              }" { (if_statement "if (uVar13 == 0) break;" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar13 = uVar13 - 1;" (assignment_expression "uVar13 = uVar13 - 1" identifier = (binary_expression "uVar13 - 1" identifier - number_literal)) ;) (expression_statement "cVar3 = *pcVar5;" (assignment_expression "cVar3 = *pcVar5" identifier = (pointer_expression "*pcVar5" * identifier)) ;) (expression_statement "pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1" identifier = (binary_expression "pcVar5 + (ulong)bVar17 * -2 + 1" (binary_expression "pcVar5 + (ulong)bVar17 * -2" identifier + (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar3 != '\0')" ( (binary_expression "cVar3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "local_50 = pcVar6 + ~uVar13;" (assignment_expression "local_50 = pcVar6 + ~uVar13" identifier = (binary_expression "pcVar6 + ~uVar13" identifier + (unary_expression "~uVar13" ~ identifier))) ;) })) })) }))) (if_statement "if (pcVar11 == pcVar14) {\n          pcVar5 = (char *)0x0;\n          uVar8 = 0;\nLAB_001379c6:\n          piVar9 = (int *)FUN_0014967c(1,0x60);\n          piVar9[2] = uVar4;\n          uVar10 = FUN_0013a40c(local_a8,local_a0);\n          *(undefined8 *)(piVar9 + 4) = uVar10;\n          piVar9[6] = local_74;\n          *(undefined8 *)(piVar9 + 0x14) = uVar8;\n          *(char **)(piVar9 + 0x16) = pcVar5;\n          pcVar11 = (char *)FUN_0013a40c(local_88,local_80);\n          *(char **)(piVar9 + 8) = pcVar11;\n          uVar13 = 0xffffffffffffffff;\n          pcVar14 = pcVar11;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar3 = *pcVar14;\n            pcVar14 = pcVar14 + (ulong)bVar17 * -2 + 1;\n          } while (cVar3 != '\0');\n          pcVar14 = pcVar11 + (~uVar13 - 1);\n          pcVar5 = pcVar11;\n          if (pcVar11 < pcVar14) {\n            pcVar7 = pcVar11;\n            pcVar6 = pcVar11;\n            do {\n              cVar3 = *pcVar11;\n              if (cVar3 == '.') {\n                cVar1 = pcVar11[1];\n                if ((cVar1 == '/') || (cVar1 == '\0')) {\n                  pcVar11 = pcVar11 + 2;\n                }\n                else {\n                  if ((cVar1 != '.') || ((pcVar11[2] != '/' && (pcVar11[2] != '\0'))))\n                  goto LAB_00137e1d;\n                  if (pcVar6 < pcVar7) {\n                    pcVar5 = pcVar7 + -1;\n                    if (pcVar6 < pcVar5) {\n                      cVar3 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar3 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar3 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar5 = pcVar7;\n                    if (uVar4 - 2 < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }\n                  pcVar11 = pcVar11 + 3;\n                  pcVar7 = pcVar5;\n                }\n              }\n              else {\nLAB_00137e1d:\n                if (pcVar7 == pcVar11) {\n                  pcVar5 = pcVar7;\n                  if (pcVar14 <= pcVar7) break;\n                  cVar3 = *pcVar7;\n                  while (cVar3 != '/') {\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar14;\n                    if (pcVar14 == pcVar5) goto LAB_00137d7b;\n                    cVar3 = *pcVar5;\n                  }\n                  pcVar11 = pcVar5 + 1;\n                  pcVar7 = pcVar5 + 1;\n                }\n                else {\n                  pcVar5 = pcVar11;\n                  if (pcVar14 <= pcVar11) break;\n                  while (cVar3 != '/') {\n                    pcVar11 = pcVar11 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar3;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar14;\n                    if (pcVar14 == pcVar11) goto LAB_00137d7b;\n                    cVar3 = *pcVar11;\n                  }\n                  *pcVar7 = *pcVar11;\n                  pcVar11 = pcVar11 + 1;\n                  pcVar7 = pcVar7 + 1;\n                }\n              }\n              pcVar5 = pcVar11;\n            } while (pcVar11 < pcVar14);\nLAB_00137d7b:\n            pcVar11 = pcVar7;\n            if (pcVar5 != pcVar7) {\n              *pcVar7 = '\0';\n            }\n          }\n          pcVar14 = *(char **)(piVar9 + 8);\n          pcVar6 = strrchr(pcVar14,0x2f);\n          if (pcVar6 == (char *)0x0) {\n            uVar8 = FUN_001496d9(&DAT_0015ea35);\n            *(undefined8 *)(piVar9 + 0x10) = uVar8;\n            uVar8 = FUN_001496d9(pcVar14);\n            *(undefined8 *)(piVar9 + 0x12) = uVar8;\n          }\n          else {\n            uVar8 = FUN_0013a40c(pcVar14,pcVar6);\n            *(undefined8 *)(piVar9 + 0x10) = uVar8;\n            uVar8 = FUN_001496d9(pcVar6 + 1);\n            *(undefined8 *)(piVar9 + 0x12) = uVar8;\n          }\n          FUN_00135c58(*(undefined8 *)(piVar9 + 0x10));\n          FUN_00135c58(*(undefined8 *)(piVar9 + 0x12));\n          pcVar14 = *(char **)(piVar9 + 4);\n          cVar3 = *pcVar14;\n          if (cVar3 == '\0') {\n            bVar17 = 0;\n          }\n          else {\n            bVar17 = 0;\n            do {\n              if ((int)cVar3 - 0x41U < 0x1a) {\n                *pcVar14 = cVar3 + ' ';\n                bVar17 = 1;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            } while (cVar3 != '\0');\n          }\n          pcVar14 = *(char **)(piVar9 + 4);\n          pcVar6 = strchr(pcVar14,0x25);\n          if (pcVar6 != (char *)0x0) {\n            FUN_00135c58(pcVar14);\n            pcVar14 = *(char **)(piVar9 + 4);\n            cVar3 = *pcVar14;\n            while (cVar3 != '\0') {\n              if ((-1 < cVar3) && ((cVar3 < ' ' || (cVar3 == '\x7f')))) {\n                FUN_0013629a(piVar9);\n                iVar15 = 3;\n                goto LAB_00137c65;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            }\n            bVar17 = param_3 != 0 & DAT_00177606;\n            if (bVar17 == 0) {\n              bVar17 = 1;\n            }\n            else {\n              lVar12 = FUN_0013eaa4(param_3);\n              if (lVar12 != 0) {\n                free(*(void **)(piVar9 + 4));\n                *(long *)(piVar9 + 4) = lVar12;\n              }\n            }\n          }\n          if (local_70 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_70,local_60);\n            *(undefined8 *)(piVar9 + 10) = uVar8;\n          }\n          if (local_b0 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_b0,local_58);\n            *(undefined8 *)(piVar9 + 0xc) = uVar8;\n          }\n          if (local_68 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_68,local_50);\n            *(undefined8 *)(piVar9 + 0xe) = uVar8;\n          }\n          param_2 = piVar9;\n          if ((((DAT_00177606 == 0) && (pcVar5 == pcVar11)) && (*(long *)(piVar9 + 0xe) == 0)) &&\n             ((local_88 != local_80 && (bVar17 == 0)))) {\n            if (local_b8 == param_1) {\n              uVar8 = FUN_001496d9(param_1);\n              *(undefined8 *)piVar9 = uVar8;\n            }\n            else {\n              *(void **)piVar9 = local_b8;\n            }\n          }\n          else {\n            uVar8 = FUN_00137051(piVar9,0);\n            *(undefined8 *)piVar9 = uVar8;\n            if (local_b8 != param_1) {\n              free(local_b8);\n            }\n          }\n          goto LAB_00137c95;\n        }" if (parenthesized_expression "(pcVar11 == pcVar14)" ( (binary_expression "pcVar11 == pcVar14" identifier == identifier) )) (compound_statement "{\n          pcVar5 = (char *)0x0;\n          uVar8 = 0;\nLAB_001379c6:\n          piVar9 = (int *)FUN_0014967c(1,0x60);\n          piVar9[2] = uVar4;\n          uVar10 = FUN_0013a40c(local_a8,local_a0);\n          *(undefined8 *)(piVar9 + 4) = uVar10;\n          piVar9[6] = local_74;\n          *(undefined8 *)(piVar9 + 0x14) = uVar8;\n          *(char **)(piVar9 + 0x16) = pcVar5;\n          pcVar11 = (char *)FUN_0013a40c(local_88,local_80);\n          *(char **)(piVar9 + 8) = pcVar11;\n          uVar13 = 0xffffffffffffffff;\n          pcVar14 = pcVar11;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar3 = *pcVar14;\n            pcVar14 = pcVar14 + (ulong)bVar17 * -2 + 1;\n          } while (cVar3 != '\0');\n          pcVar14 = pcVar11 + (~uVar13 - 1);\n          pcVar5 = pcVar11;\n          if (pcVar11 < pcVar14) {\n            pcVar7 = pcVar11;\n            pcVar6 = pcVar11;\n            do {\n              cVar3 = *pcVar11;\n              if (cVar3 == '.') {\n                cVar1 = pcVar11[1];\n                if ((cVar1 == '/') || (cVar1 == '\0')) {\n                  pcVar11 = pcVar11 + 2;\n                }\n                else {\n                  if ((cVar1 != '.') || ((pcVar11[2] != '/' && (pcVar11[2] != '\0'))))\n                  goto LAB_00137e1d;\n                  if (pcVar6 < pcVar7) {\n                    pcVar5 = pcVar7 + -1;\n                    if (pcVar6 < pcVar5) {\n                      cVar3 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar3 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar3 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar5 = pcVar7;\n                    if (uVar4 - 2 < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }\n                  pcVar11 = pcVar11 + 3;\n                  pcVar7 = pcVar5;\n                }\n              }\n              else {\nLAB_00137e1d:\n                if (pcVar7 == pcVar11) {\n                  pcVar5 = pcVar7;\n                  if (pcVar14 <= pcVar7) break;\n                  cVar3 = *pcVar7;\n                  while (cVar3 != '/') {\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar14;\n                    if (pcVar14 == pcVar5) goto LAB_00137d7b;\n                    cVar3 = *pcVar5;\n                  }\n                  pcVar11 = pcVar5 + 1;\n                  pcVar7 = pcVar5 + 1;\n                }\n                else {\n                  pcVar5 = pcVar11;\n                  if (pcVar14 <= pcVar11) break;\n                  while (cVar3 != '/') {\n                    pcVar11 = pcVar11 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar3;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar14;\n                    if (pcVar14 == pcVar11) goto LAB_00137d7b;\n                    cVar3 = *pcVar11;\n                  }\n                  *pcVar7 = *pcVar11;\n                  pcVar11 = pcVar11 + 1;\n                  pcVar7 = pcVar7 + 1;\n                }\n              }\n              pcVar5 = pcVar11;\n            } while (pcVar11 < pcVar14);\nLAB_00137d7b:\n            pcVar11 = pcVar7;\n            if (pcVar5 != pcVar7) {\n              *pcVar7 = '\0';\n            }\n          }\n          pcVar14 = *(char **)(piVar9 + 8);\n          pcVar6 = strrchr(pcVar14,0x2f);\n          if (pcVar6 == (char *)0x0) {\n            uVar8 = FUN_001496d9(&DAT_0015ea35);\n            *(undefined8 *)(piVar9 + 0x10) = uVar8;\n            uVar8 = FUN_001496d9(pcVar14);\n            *(undefined8 *)(piVar9 + 0x12) = uVar8;\n          }\n          else {\n            uVar8 = FUN_0013a40c(pcVar14,pcVar6);\n            *(undefined8 *)(piVar9 + 0x10) = uVar8;\n            uVar8 = FUN_001496d9(pcVar6 + 1);\n            *(undefined8 *)(piVar9 + 0x12) = uVar8;\n          }\n          FUN_00135c58(*(undefined8 *)(piVar9 + 0x10));\n          FUN_00135c58(*(undefined8 *)(piVar9 + 0x12));\n          pcVar14 = *(char **)(piVar9 + 4);\n          cVar3 = *pcVar14;\n          if (cVar3 == '\0') {\n            bVar17 = 0;\n          }\n          else {\n            bVar17 = 0;\n            do {\n              if ((int)cVar3 - 0x41U < 0x1a) {\n                *pcVar14 = cVar3 + ' ';\n                bVar17 = 1;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            } while (cVar3 != '\0');\n          }\n          pcVar14 = *(char **)(piVar9 + 4);\n          pcVar6 = strchr(pcVar14,0x25);\n          if (pcVar6 != (char *)0x0) {\n            FUN_00135c58(pcVar14);\n            pcVar14 = *(char **)(piVar9 + 4);\n            cVar3 = *pcVar14;\n            while (cVar3 != '\0') {\n              if ((-1 < cVar3) && ((cVar3 < ' ' || (cVar3 == '\x7f')))) {\n                FUN_0013629a(piVar9);\n                iVar15 = 3;\n                goto LAB_00137c65;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            }\n            bVar17 = param_3 != 0 & DAT_00177606;\n            if (bVar17 == 0) {\n              bVar17 = 1;\n            }\n            else {\n              lVar12 = FUN_0013eaa4(param_3);\n              if (lVar12 != 0) {\n                free(*(void **)(piVar9 + 4));\n                *(long *)(piVar9 + 4) = lVar12;\n              }\n            }\n          }\n          if (local_70 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_70,local_60);\n            *(undefined8 *)(piVar9 + 10) = uVar8;\n          }\n          if (local_b0 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_b0,local_58);\n            *(undefined8 *)(piVar9 + 0xc) = uVar8;\n          }\n          if (local_68 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_68,local_50);\n            *(undefined8 *)(piVar9 + 0xe) = uVar8;\n          }\n          param_2 = piVar9;\n          if ((((DAT_00177606 == 0) && (pcVar5 == pcVar11)) && (*(long *)(piVar9 + 0xe) == 0)) &&\n             ((local_88 != local_80 && (bVar17 == 0)))) {\n            if (local_b8 == param_1) {\n              uVar8 = FUN_001496d9(param_1);\n              *(undefined8 *)piVar9 = uVar8;\n            }\n            else {\n              *(void **)piVar9 = local_b8;\n            }\n          }\n          else {\n            uVar8 = FUN_00137051(piVar9,0);\n            *(undefined8 *)piVar9 = uVar8;\n            if (local_b8 != param_1) {\n              free(local_b8);\n            }\n          }\n          goto LAB_00137c95;\n        }" { (expression_statement "pcVar5 = (char *)0x0;" (assignment_expression "pcVar5 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) (labeled_statement "LAB_001379c6:\n          piVar9 = (int *)FUN_0014967c(1,0x60);" statement_identifier : (expression_statement "piVar9 = (int *)FUN_0014967c(1,0x60);" (assignment_expression "piVar9 = (int *)FUN_0014967c(1,0x60)" identifier = (cast_expression "(int *)FUN_0014967c(1,0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0014967c(1,0x60)" identifier (argument_list "(1,0x60)" ( number_literal , number_literal ))))) ;)) (expression_statement "piVar9[2] = uVar4;" (assignment_expression "piVar9[2] = uVar4" (subscript_expression "piVar9[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar10 = FUN_0013a40c(local_a8,local_a0);" (assignment_expression "uVar10 = FUN_0013a40c(local_a8,local_a0)" identifier = (call_expression "FUN_0013a40c(local_a8,local_a0)" identifier (argument_list "(local_a8,local_a0)" ( identifier , identifier )))) ;) (expression_statement "*(undefined8 *)(piVar9 + 4) = uVar10;" (assignment_expression "*(undefined8 *)(piVar9 + 4) = uVar10" (pointer_expression "*(undefined8 *)(piVar9 + 4)" * (cast_expression "(undefined8 *)(piVar9 + 4)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar9 + 4)" ( (binary_expression "piVar9 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "piVar9[6] = local_74;" (assignment_expression "piVar9[6] = local_74" (subscript_expression "piVar9[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined8 *)(piVar9 + 0x14) = uVar8;" (assignment_expression "*(undefined8 *)(piVar9 + 0x14) = uVar8" (pointer_expression "*(undefined8 *)(piVar9 + 0x14)" * (cast_expression "(undefined8 *)(piVar9 + 0x14)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar9 + 0x14)" ( (binary_expression "piVar9 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(char **)(piVar9 + 0x16) = pcVar5;" (assignment_expression "*(char **)(piVar9 + 0x16) = pcVar5" (pointer_expression "*(char **)(piVar9 + 0x16)" * (cast_expression "(char **)(piVar9 + 0x16)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar9 + 0x16)" ( (binary_expression "piVar9 + 0x16" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar11 = (char *)FUN_0013a40c(local_88,local_80);" (assignment_expression "pcVar11 = (char *)FUN_0013a40c(local_88,local_80)" identifier = (cast_expression "(char *)FUN_0013a40c(local_88,local_80)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0013a40c(local_88,local_80)" identifier (argument_list "(local_88,local_80)" ( identifier , identifier ))))) ;) (expression_statement "*(char **)(piVar9 + 8) = pcVar11;" (assignment_expression "*(char **)(piVar9 + 8) = pcVar11" (pointer_expression "*(char **)(piVar9 + 8)" * (cast_expression "(char **)(piVar9 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar9 + 8)" ( (binary_expression "piVar9 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar13 = 0xffffffffffffffff;" (assignment_expression "uVar13 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar14 = pcVar11;" (assignment_expression "pcVar14 = pcVar11" identifier = identifier) ;) (do_statement "do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar3 = *pcVar14;\n            pcVar14 = pcVar14 + (ulong)bVar17 * -2 + 1;\n          } while (cVar3 != '\0');" do (compound_statement "{\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar3 = *pcVar14;\n            pcVar14 = pcVar14 + (ulong)bVar17 * -2 + 1;\n          }" { (if_statement "if (uVar13 == 0) break;" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar13 = uVar13 - 1;" (assignment_expression "uVar13 = uVar13 - 1" identifier = (binary_expression "uVar13 - 1" identifier - number_literal)) ;) (expression_statement "cVar3 = *pcVar14;" (assignment_expression "cVar3 = *pcVar14" identifier = (pointer_expression "*pcVar14" * identifier)) ;) (expression_statement "pcVar14 = pcVar14 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pcVar14 = pcVar14 + (ulong)bVar17 * -2 + 1" identifier = (binary_expression "pcVar14 + (ulong)bVar17 * -2 + 1" (binary_expression "pcVar14 + (ulong)bVar17 * -2" identifier + (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar3 != '\0')" ( (binary_expression "cVar3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "pcVar14 = pcVar11 + (~uVar13 - 1);" (assignment_expression "pcVar14 = pcVar11 + (~uVar13 - 1)" identifier = (binary_expression "pcVar11 + (~uVar13 - 1)" identifier + (parenthesized_expression "(~uVar13 - 1)" ( (binary_expression "~uVar13 - 1" (unary_expression "~uVar13" ~ identifier) - number_literal) )))) ;) (expression_statement "pcVar5 = pcVar11;" (assignment_expression "pcVar5 = pcVar11" identifier = identifier) ;) (if_statement "if (pcVar11 < pcVar14) {\n            pcVar7 = pcVar11;\n            pcVar6 = pcVar11;\n            do {\n              cVar3 = *pcVar11;\n              if (cVar3 == '.') {\n                cVar1 = pcVar11[1];\n                if ((cVar1 == '/') || (cVar1 == '\0')) {\n                  pcVar11 = pcVar11 + 2;\n                }\n                else {\n                  if ((cVar1 != '.') || ((pcVar11[2] != '/' && (pcVar11[2] != '\0'))))\n                  goto LAB_00137e1d;\n                  if (pcVar6 < pcVar7) {\n                    pcVar5 = pcVar7 + -1;\n                    if (pcVar6 < pcVar5) {\n                      cVar3 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar3 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar3 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar5 = pcVar7;\n                    if (uVar4 - 2 < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }\n                  pcVar11 = pcVar11 + 3;\n                  pcVar7 = pcVar5;\n                }\n              }\n              else {\nLAB_00137e1d:\n                if (pcVar7 == pcVar11) {\n                  pcVar5 = pcVar7;\n                  if (pcVar14 <= pcVar7) break;\n                  cVar3 = *pcVar7;\n                  while (cVar3 != '/') {\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar14;\n                    if (pcVar14 == pcVar5) goto LAB_00137d7b;\n                    cVar3 = *pcVar5;\n                  }\n                  pcVar11 = pcVar5 + 1;\n                  pcVar7 = pcVar5 + 1;\n                }\n                else {\n                  pcVar5 = pcVar11;\n                  if (pcVar14 <= pcVar11) break;\n                  while (cVar3 != '/') {\n                    pcVar11 = pcVar11 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar3;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar14;\n                    if (pcVar14 == pcVar11) goto LAB_00137d7b;\n                    cVar3 = *pcVar11;\n                  }\n                  *pcVar7 = *pcVar11;\n                  pcVar11 = pcVar11 + 1;\n                  pcVar7 = pcVar7 + 1;\n                }\n              }\n              pcVar5 = pcVar11;\n            } while (pcVar11 < pcVar14);\nLAB_00137d7b:\n            pcVar11 = pcVar7;\n            if (pcVar5 != pcVar7) {\n              *pcVar7 = '\0';\n            }\n          }" if (parenthesized_expression "(pcVar11 < pcVar14)" ( (binary_expression "pcVar11 < pcVar14" identifier < identifier) )) (compound_statement "{\n            pcVar7 = pcVar11;\n            pcVar6 = pcVar11;\n            do {\n              cVar3 = *pcVar11;\n              if (cVar3 == '.') {\n                cVar1 = pcVar11[1];\n                if ((cVar1 == '/') || (cVar1 == '\0')) {\n                  pcVar11 = pcVar11 + 2;\n                }\n                else {\n                  if ((cVar1 != '.') || ((pcVar11[2] != '/' && (pcVar11[2] != '\0'))))\n                  goto LAB_00137e1d;\n                  if (pcVar6 < pcVar7) {\n                    pcVar5 = pcVar7 + -1;\n                    if (pcVar6 < pcVar5) {\n                      cVar3 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar3 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar3 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar5 = pcVar7;\n                    if (uVar4 - 2 < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }\n                  pcVar11 = pcVar11 + 3;\n                  pcVar7 = pcVar5;\n                }\n              }\n              else {\nLAB_00137e1d:\n                if (pcVar7 == pcVar11) {\n                  pcVar5 = pcVar7;\n                  if (pcVar14 <= pcVar7) break;\n                  cVar3 = *pcVar7;\n                  while (cVar3 != '/') {\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar14;\n                    if (pcVar14 == pcVar5) goto LAB_00137d7b;\n                    cVar3 = *pcVar5;\n                  }\n                  pcVar11 = pcVar5 + 1;\n                  pcVar7 = pcVar5 + 1;\n                }\n                else {\n                  pcVar5 = pcVar11;\n                  if (pcVar14 <= pcVar11) break;\n                  while (cVar3 != '/') {\n                    pcVar11 = pcVar11 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar3;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar14;\n                    if (pcVar14 == pcVar11) goto LAB_00137d7b;\n                    cVar3 = *pcVar11;\n                  }\n                  *pcVar7 = *pcVar11;\n                  pcVar11 = pcVar11 + 1;\n                  pcVar7 = pcVar7 + 1;\n                }\n              }\n              pcVar5 = pcVar11;\n            } while (pcVar11 < pcVar14);\nLAB_00137d7b:\n            pcVar11 = pcVar7;\n            if (pcVar5 != pcVar7) {\n              *pcVar7 = '\0';\n            }\n          }" { (expression_statement "pcVar7 = pcVar11;" (assignment_expression "pcVar7 = pcVar11" identifier = identifier) ;) (expression_statement "pcVar6 = pcVar11;" (assignment_expression "pcVar6 = pcVar11" identifier = identifier) ;) (do_statement "do {\n              cVar3 = *pcVar11;\n              if (cVar3 == '.') {\n                cVar1 = pcVar11[1];\n                if ((cVar1 == '/') || (cVar1 == '\0')) {\n                  pcVar11 = pcVar11 + 2;\n                }\n                else {\n                  if ((cVar1 != '.') || ((pcVar11[2] != '/' && (pcVar11[2] != '\0'))))\n                  goto LAB_00137e1d;\n                  if (pcVar6 < pcVar7) {\n                    pcVar5 = pcVar7 + -1;\n                    if (pcVar6 < pcVar5) {\n                      cVar3 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar3 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar3 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar5 = pcVar7;\n                    if (uVar4 - 2 < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }\n                  pcVar11 = pcVar11 + 3;\n                  pcVar7 = pcVar5;\n                }\n              }\n              else {\nLAB_00137e1d:\n                if (pcVar7 == pcVar11) {\n                  pcVar5 = pcVar7;\n                  if (pcVar14 <= pcVar7) break;\n                  cVar3 = *pcVar7;\n                  while (cVar3 != '/') {\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar14;\n                    if (pcVar14 == pcVar5) goto LAB_00137d7b;\n                    cVar3 = *pcVar5;\n                  }\n                  pcVar11 = pcVar5 + 1;\n                  pcVar7 = pcVar5 + 1;\n                }\n                else {\n                  pcVar5 = pcVar11;\n                  if (pcVar14 <= pcVar11) break;\n                  while (cVar3 != '/') {\n                    pcVar11 = pcVar11 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar3;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar14;\n                    if (pcVar14 == pcVar11) goto LAB_00137d7b;\n                    cVar3 = *pcVar11;\n                  }\n                  *pcVar7 = *pcVar11;\n                  pcVar11 = pcVar11 + 1;\n                  pcVar7 = pcVar7 + 1;\n                }\n              }\n              pcVar5 = pcVar11;\n            } while (pcVar11 < pcVar14);" do (compound_statement "{\n              cVar3 = *pcVar11;\n              if (cVar3 == '.') {\n                cVar1 = pcVar11[1];\n                if ((cVar1 == '/') || (cVar1 == '\0')) {\n                  pcVar11 = pcVar11 + 2;\n                }\n                else {\n                  if ((cVar1 != '.') || ((pcVar11[2] != '/' && (pcVar11[2] != '\0'))))\n                  goto LAB_00137e1d;\n                  if (pcVar6 < pcVar7) {\n                    pcVar5 = pcVar7 + -1;\n                    if (pcVar6 < pcVar5) {\n                      cVar3 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar3 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar3 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar5 = pcVar7;\n                    if (uVar4 - 2 < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }\n                  pcVar11 = pcVar11 + 3;\n                  pcVar7 = pcVar5;\n                }\n              }\n              else {\nLAB_00137e1d:\n                if (pcVar7 == pcVar11) {\n                  pcVar5 = pcVar7;\n                  if (pcVar14 <= pcVar7) break;\n                  cVar3 = *pcVar7;\n                  while (cVar3 != '/') {\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar14;\n                    if (pcVar14 == pcVar5) goto LAB_00137d7b;\n                    cVar3 = *pcVar5;\n                  }\n                  pcVar11 = pcVar5 + 1;\n                  pcVar7 = pcVar5 + 1;\n                }\n                else {\n                  pcVar5 = pcVar11;\n                  if (pcVar14 <= pcVar11) break;\n                  while (cVar3 != '/') {\n                    pcVar11 = pcVar11 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar3;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar14;\n                    if (pcVar14 == pcVar11) goto LAB_00137d7b;\n                    cVar3 = *pcVar11;\n                  }\n                  *pcVar7 = *pcVar11;\n                  pcVar11 = pcVar11 + 1;\n                  pcVar7 = pcVar7 + 1;\n                }\n              }\n              pcVar5 = pcVar11;\n            }" { (expression_statement "cVar3 = *pcVar11;" (assignment_expression "cVar3 = *pcVar11" identifier = (pointer_expression "*pcVar11" * identifier)) ;) (if_statement "if (cVar3 == '.') {\n                cVar1 = pcVar11[1];\n                if ((cVar1 == '/') || (cVar1 == '\0')) {\n                  pcVar11 = pcVar11 + 2;\n                }\n                else {\n                  if ((cVar1 != '.') || ((pcVar11[2] != '/' && (pcVar11[2] != '\0'))))\n                  goto LAB_00137e1d;\n                  if (pcVar6 < pcVar7) {\n                    pcVar5 = pcVar7 + -1;\n                    if (pcVar6 < pcVar5) {\n                      cVar3 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar3 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar3 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar5 = pcVar7;\n                    if (uVar4 - 2 < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }\n                  pcVar11 = pcVar11 + 3;\n                  pcVar7 = pcVar5;\n                }\n              }\n              else {\nLAB_00137e1d:\n                if (pcVar7 == pcVar11) {\n                  pcVar5 = pcVar7;\n                  if (pcVar14 <= pcVar7) break;\n                  cVar3 = *pcVar7;\n                  while (cVar3 != '/') {\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar14;\n                    if (pcVar14 == pcVar5) goto LAB_00137d7b;\n                    cVar3 = *pcVar5;\n                  }\n                  pcVar11 = pcVar5 + 1;\n                  pcVar7 = pcVar5 + 1;\n                }\n                else {\n                  pcVar5 = pcVar11;\n                  if (pcVar14 <= pcVar11) break;\n                  while (cVar3 != '/') {\n                    pcVar11 = pcVar11 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar3;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar14;\n                    if (pcVar14 == pcVar11) goto LAB_00137d7b;\n                    cVar3 = *pcVar11;\n                  }\n                  *pcVar7 = *pcVar11;\n                  pcVar11 = pcVar11 + 1;\n                  pcVar7 = pcVar7 + 1;\n                }\n              }" if (parenthesized_expression "(cVar3 == '.')" ( (binary_expression "cVar3 == '.'" identifier == (char_literal "'.'" ' character ')) )) (compound_statement "{\n                cVar1 = pcVar11[1];\n                if ((cVar1 == '/') || (cVar1 == '\0')) {\n                  pcVar11 = pcVar11 + 2;\n                }\n                else {\n                  if ((cVar1 != '.') || ((pcVar11[2] != '/' && (pcVar11[2] != '\0'))))\n                  goto LAB_00137e1d;\n                  if (pcVar6 < pcVar7) {\n                    pcVar5 = pcVar7 + -1;\n                    if (pcVar6 < pcVar5) {\n                      cVar3 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar3 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar3 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar5 = pcVar7;\n                    if (uVar4 - 2 < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }\n                  pcVar11 = pcVar11 + 3;\n                  pcVar7 = pcVar5;\n                }\n              }" { (expression_statement "cVar1 = pcVar11[1];" (assignment_expression "cVar1 = pcVar11[1]" identifier = (subscript_expression "pcVar11[1]" identifier [ number_literal ])) ;) (if_statement "if ((cVar1 == '/') || (cVar1 == '\0')) {\n                  pcVar11 = pcVar11 + 2;\n                }\n                else {\n                  if ((cVar1 != '.') || ((pcVar11[2] != '/' && (pcVar11[2] != '\0'))))\n                  goto LAB_00137e1d;\n                  if (pcVar6 < pcVar7) {\n                    pcVar5 = pcVar7 + -1;\n                    if (pcVar6 < pcVar5) {\n                      cVar3 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar3 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar3 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar5 = pcVar7;\n                    if (uVar4 - 2 < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }\n                  pcVar11 = pcVar11 + 3;\n                  pcVar7 = pcVar5;\n                }" if (parenthesized_expression "((cVar1 == '/') || (cVar1 == '\0'))" ( (binary_expression "(cVar1 == '/') || (cVar1 == '\0')" (parenthesized_expression "(cVar1 == '/')" ( (binary_expression "cVar1 == '/'" identifier == (char_literal "'/'" ' character ')) )) || (parenthesized_expression "(cVar1 == '\0')" ( (binary_expression "cVar1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n                  pcVar11 = pcVar11 + 2;\n                }" { (expression_statement "pcVar11 = pcVar11 + 2;" (assignment_expression "pcVar11 = pcVar11 + 2" identifier = (binary_expression "pcVar11 + 2" identifier + number_literal)) ;) }) (else_clause "else {\n                  if ((cVar1 != '.') || ((pcVar11[2] != '/' && (pcVar11[2] != '\0'))))\n                  goto LAB_00137e1d;\n                  if (pcVar6 < pcVar7) {\n                    pcVar5 = pcVar7 + -1;\n                    if (pcVar6 < pcVar5) {\n                      cVar3 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar3 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar3 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar5 = pcVar7;\n                    if (uVar4 - 2 < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }\n                  pcVar11 = pcVar11 + 3;\n                  pcVar7 = pcVar5;\n                }" else (compound_statement "{\n                  if ((cVar1 != '.') || ((pcVar11[2] != '/' && (pcVar11[2] != '\0'))))\n                  goto LAB_00137e1d;\n                  if (pcVar6 < pcVar7) {\n                    pcVar5 = pcVar7 + -1;\n                    if (pcVar6 < pcVar5) {\n                      cVar3 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar3 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar3 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar5 = pcVar7;\n                    if (uVar4 - 2 < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }\n                  pcVar11 = pcVar11 + 3;\n                  pcVar7 = pcVar5;\n                }" { (if_statement "if ((cVar1 != '.') || ((pcVar11[2] != '/' && (pcVar11[2] != '\0'))))\n                  goto LAB_00137e1d;" if (parenthesized_expression "((cVar1 != '.') || ((pcVar11[2] != '/' && (pcVar11[2] != '\0'))))" ( (binary_expression "(cVar1 != '.') || ((pcVar11[2] != '/' && (pcVar11[2] != '\0')))" (parenthesized_expression "(cVar1 != '.')" ( (binary_expression "cVar1 != '.'" identifier != (char_literal "'.'" ' character ')) )) || (parenthesized_expression "((pcVar11[2] != '/' && (pcVar11[2] != '\0')))" ( (parenthesized_expression "(pcVar11[2] != '/' && (pcVar11[2] != '\0'))" ( (binary_expression "pcVar11[2] != '/' && (pcVar11[2] != '\0')" (binary_expression "pcVar11[2] != '/'" (subscript_expression "pcVar11[2]" identifier [ number_literal ]) != (char_literal "'/'" ' character ')) && (parenthesized_expression "(pcVar11[2] != '\0')" ( (binary_expression "pcVar11[2] != '\0'" (subscript_expression "pcVar11[2]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) ))) )) ))) )) (goto_statement "goto LAB_00137e1d;" goto statement_identifier ;)) (if_statement "if (pcVar6 < pcVar7) {\n                    pcVar5 = pcVar7 + -1;\n                    if (pcVar6 < pcVar5) {\n                      cVar3 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar3 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar3 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar5 = pcVar7;\n                    if (uVar4 - 2 < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }" if (parenthesized_expression "(pcVar6 < pcVar7)" ( (binary_expression "pcVar6 < pcVar7" identifier < identifier) )) (compound_statement "{\n                    pcVar5 = pcVar7 + -1;\n                    if (pcVar6 < pcVar5) {\n                      cVar3 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar3 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar3 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }\n                  }" { (expression_statement "pcVar5 = pcVar7 + -1;" (assignment_expression "pcVar5 = pcVar7 + -1" identifier = (binary_expression "pcVar7 + -1" identifier + number_literal)) ;) (if_statement "if (pcVar6 < pcVar5) {\n                      cVar3 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar3 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar3 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }" if (parenthesized_expression "(pcVar6 < pcVar5)" ( (binary_expression "pcVar6 < pcVar5" identifier < identifier) )) (compound_statement "{\n                      cVar3 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar3 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar3 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }" { (expression_statement "cVar3 = pcVar7[-2];" (assignment_expression "cVar3 = pcVar7[-2]" identifier = (subscript_expression "pcVar7[-2]" identifier [ number_literal ])) ;) (expression_statement "pcVar7 = pcVar5;" (assignment_expression "pcVar7 = pcVar5" identifier = identifier) ;) (while_statement "while ((pcVar5 = pcVar7, cVar3 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar3 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }" while (parenthesized_expression "((pcVar5 = pcVar7, cVar3 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5)))" ( (parenthesized_expression "(pcVar5 = pcVar7, cVar3 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))" ( (comma_expression "pcVar5 = pcVar7, cVar3 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5)" (assignment_expression "pcVar5 = pcVar7" identifier = identifier) , (binary_expression "cVar3 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5)" (binary_expression "cVar3 != '/'" identifier != (char_literal "'/'" ' character ')) && (parenthesized_expression "(pcVar5 = pcVar7 + -1, pcVar6 != pcVar5)" ( (comma_expression "pcVar5 = pcVar7 + -1, pcVar6 != pcVar5" (assignment_expression "pcVar5 = pcVar7 + -1" identifier = (binary_expression "pcVar7 + -1" identifier + number_literal)) , (binary_expression "pcVar6 != pcVar5" identifier != identifier)) )))) )) )) (compound_statement "{\n                        cVar3 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }" { (expression_statement "cVar3 = pcVar7[-2];" (assignment_expression "cVar3 = pcVar7[-2]" identifier = (subscript_expression "pcVar7[-2]" identifier [ number_literal ])) ;) (expression_statement "pcVar7 = pcVar5;" (assignment_expression "pcVar7 = pcVar5" identifier = identifier) ;) })) })) }) (else_clause "else {\n                    pcVar5 = pcVar7;\n                    if (uVar4 - 2 < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }" else (compound_statement "{\n                    pcVar5 = pcVar7;\n                    if (uVar4 - 2 < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }" { (expression_statement "pcVar5 = pcVar7;" (assignment_expression "pcVar5 = pcVar7" identifier = identifier) ;) (if_statement "if (uVar4 - 2 < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }" if (parenthesized_expression "(uVar4 - 2 < 2)" ( (binary_expression "uVar4 - 2 < 2" (binary_expression "uVar4 - 2" identifier - number_literal) < number_literal) )) (compound_statement "{\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }" { (expression_statement "pcVar6 = pcVar7 + 3;" (assignment_expression "pcVar6 = pcVar7 + 3" identifier = (binary_expression "pcVar7 + 3" identifier + number_literal)) ;) (goto_statement "goto LAB_00137e1d;" goto statement_identifier ;) })) }))) (expression_statement "pcVar11 = pcVar11 + 3;" (assignment_expression "pcVar11 = pcVar11 + 3" identifier = (binary_expression "pcVar11 + 3" identifier + number_literal)) ;) (expression_statement "pcVar7 = pcVar5;" (assignment_expression "pcVar7 = pcVar5" identifier = identifier) ;) }))) }) (else_clause "else {\nLAB_00137e1d:\n                if (pcVar7 == pcVar11) {\n                  pcVar5 = pcVar7;\n                  if (pcVar14 <= pcVar7) break;\n                  cVar3 = *pcVar7;\n                  while (cVar3 != '/') {\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar14;\n                    if (pcVar14 == pcVar5) goto LAB_00137d7b;\n                    cVar3 = *pcVar5;\n                  }\n                  pcVar11 = pcVar5 + 1;\n                  pcVar7 = pcVar5 + 1;\n                }\n                else {\n                  pcVar5 = pcVar11;\n                  if (pcVar14 <= pcVar11) break;\n                  while (cVar3 != '/') {\n                    pcVar11 = pcVar11 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar3;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar14;\n                    if (pcVar14 == pcVar11) goto LAB_00137d7b;\n                    cVar3 = *pcVar11;\n                  }\n                  *pcVar7 = *pcVar11;\n                  pcVar11 = pcVar11 + 1;\n                  pcVar7 = pcVar7 + 1;\n                }\n              }" else (compound_statement "{\nLAB_00137e1d:\n                if (pcVar7 == pcVar11) {\n                  pcVar5 = pcVar7;\n                  if (pcVar14 <= pcVar7) break;\n                  cVar3 = *pcVar7;\n                  while (cVar3 != '/') {\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar14;\n                    if (pcVar14 == pcVar5) goto LAB_00137d7b;\n                    cVar3 = *pcVar5;\n                  }\n                  pcVar11 = pcVar5 + 1;\n                  pcVar7 = pcVar5 + 1;\n                }\n                else {\n                  pcVar5 = pcVar11;\n                  if (pcVar14 <= pcVar11) break;\n                  while (cVar3 != '/') {\n                    pcVar11 = pcVar11 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar3;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar14;\n                    if (pcVar14 == pcVar11) goto LAB_00137d7b;\n                    cVar3 = *pcVar11;\n                  }\n                  *pcVar7 = *pcVar11;\n                  pcVar11 = pcVar11 + 1;\n                  pcVar7 = pcVar7 + 1;\n                }\n              }" { (labeled_statement "LAB_00137e1d:\n                if (pcVar7 == pcVar11) {\n                  pcVar5 = pcVar7;\n                  if (pcVar14 <= pcVar7) break;\n                  cVar3 = *pcVar7;\n                  while (cVar3 != '/') {\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar14;\n                    if (pcVar14 == pcVar5) goto LAB_00137d7b;\n                    cVar3 = *pcVar5;\n                  }\n                  pcVar11 = pcVar5 + 1;\n                  pcVar7 = pcVar5 + 1;\n                }\n                else {\n                  pcVar5 = pcVar11;\n                  if (pcVar14 <= pcVar11) break;\n                  while (cVar3 != '/') {\n                    pcVar11 = pcVar11 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar3;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar14;\n                    if (pcVar14 == pcVar11) goto LAB_00137d7b;\n                    cVar3 = *pcVar11;\n                  }\n                  *pcVar7 = *pcVar11;\n                  pcVar11 = pcVar11 + 1;\n                  pcVar7 = pcVar7 + 1;\n                }" statement_identifier : (if_statement "if (pcVar7 == pcVar11) {\n                  pcVar5 = pcVar7;\n                  if (pcVar14 <= pcVar7) break;\n                  cVar3 = *pcVar7;\n                  while (cVar3 != '/') {\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar14;\n                    if (pcVar14 == pcVar5) goto LAB_00137d7b;\n                    cVar3 = *pcVar5;\n                  }\n                  pcVar11 = pcVar5 + 1;\n                  pcVar7 = pcVar5 + 1;\n                }\n                else {\n                  pcVar5 = pcVar11;\n                  if (pcVar14 <= pcVar11) break;\n                  while (cVar3 != '/') {\n                    pcVar11 = pcVar11 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar3;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar14;\n                    if (pcVar14 == pcVar11) goto LAB_00137d7b;\n                    cVar3 = *pcVar11;\n                  }\n                  *pcVar7 = *pcVar11;\n                  pcVar11 = pcVar11 + 1;\n                  pcVar7 = pcVar7 + 1;\n                }" if (parenthesized_expression "(pcVar7 == pcVar11)" ( (binary_expression "pcVar7 == pcVar11" identifier == identifier) )) (compound_statement "{\n                  pcVar5 = pcVar7;\n                  if (pcVar14 <= pcVar7) break;\n                  cVar3 = *pcVar7;\n                  while (cVar3 != '/') {\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar14;\n                    if (pcVar14 == pcVar5) goto LAB_00137d7b;\n                    cVar3 = *pcVar5;\n                  }\n                  pcVar11 = pcVar5 + 1;\n                  pcVar7 = pcVar5 + 1;\n                }" { (expression_statement "pcVar5 = pcVar7;" (assignment_expression "pcVar5 = pcVar7" identifier = identifier) ;) (if_statement "if (pcVar14 <= pcVar7) break;" if (parenthesized_expression "(pcVar14 <= pcVar7)" ( (binary_expression "pcVar14 <= pcVar7" identifier <= identifier) )) (break_statement "break;" break ;)) (expression_statement "cVar3 = *pcVar7;" (assignment_expression "cVar3 = *pcVar7" identifier = (pointer_expression "*pcVar7" * identifier)) ;) (while_statement "while (cVar3 != '/') {\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar14;\n                    if (pcVar14 == pcVar5) goto LAB_00137d7b;\n                    cVar3 = *pcVar5;\n                  }" while (parenthesized_expression "(cVar3 != '/')" ( (binary_expression "cVar3 != '/'" identifier != (char_literal "'/'" ' character ')) )) (compound_statement "{\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar14;\n                    if (pcVar14 == pcVar5) goto LAB_00137d7b;\n                    cVar3 = *pcVar5;\n                  }" { (expression_statement "pcVar5 = pcVar5 + 1;" (assignment_expression "pcVar5 = pcVar5 + 1" identifier = (binary_expression "pcVar5 + 1" identifier + number_literal)) ;) (expression_statement "pcVar7 = pcVar14;" (assignment_expression "pcVar7 = pcVar14" identifier = identifier) ;) (if_statement "if (pcVar14 == pcVar5) goto LAB_00137d7b;" if (parenthesized_expression "(pcVar14 == pcVar5)" ( (binary_expression "pcVar14 == pcVar5" identifier == identifier) )) (goto_statement "goto LAB_00137d7b;" goto statement_identifier ;)) (expression_statement "cVar3 = *pcVar5;" (assignment_expression "cVar3 = *pcVar5" identifier = (pointer_expression "*pcVar5" * identifier)) ;) })) (expression_statement "pcVar11 = pcVar5 + 1;" (assignment_expression "pcVar11 = pcVar5 + 1" identifier = (binary_expression "pcVar5 + 1" identifier + number_literal)) ;) (expression_statement "pcVar7 = pcVar5 + 1;" (assignment_expression "pcVar7 = pcVar5 + 1" identifier = (binary_expression "pcVar5 + 1" identifier + number_literal)) ;) }) (else_clause "else {\n                  pcVar5 = pcVar11;\n                  if (pcVar14 <= pcVar11) break;\n                  while (cVar3 != '/') {\n                    pcVar11 = pcVar11 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar3;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar14;\n                    if (pcVar14 == pcVar11) goto LAB_00137d7b;\n                    cVar3 = *pcVar11;\n                  }\n                  *pcVar7 = *pcVar11;\n                  pcVar11 = pcVar11 + 1;\n                  pcVar7 = pcVar7 + 1;\n                }" else (compound_statement "{\n                  pcVar5 = pcVar11;\n                  if (pcVar14 <= pcVar11) break;\n                  while (cVar3 != '/') {\n                    pcVar11 = pcVar11 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar3;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar14;\n                    if (pcVar14 == pcVar11) goto LAB_00137d7b;\n                    cVar3 = *pcVar11;\n                  }\n                  *pcVar7 = *pcVar11;\n                  pcVar11 = pcVar11 + 1;\n                  pcVar7 = pcVar7 + 1;\n                }" { (expression_statement "pcVar5 = pcVar11;" (assignment_expression "pcVar5 = pcVar11" identifier = identifier) ;) (if_statement "if (pcVar14 <= pcVar11) break;" if (parenthesized_expression "(pcVar14 <= pcVar11)" ( (binary_expression "pcVar14 <= pcVar11" identifier <= identifier) )) (break_statement "break;" break ;)) (while_statement "while (cVar3 != '/') {\n                    pcVar11 = pcVar11 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar3;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar14;\n                    if (pcVar14 == pcVar11) goto LAB_00137d7b;\n                    cVar3 = *pcVar11;\n                  }" while (parenthesized_expression "(cVar3 != '/')" ( (binary_expression "cVar3 != '/'" identifier != (char_literal "'/'" ' character ')) )) (compound_statement "{\n                    pcVar11 = pcVar11 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar3;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar14;\n                    if (pcVar14 == pcVar11) goto LAB_00137d7b;\n                    cVar3 = *pcVar11;\n                  }" { (expression_statement "pcVar11 = pcVar11 + 1;" (assignment_expression "pcVar11 = pcVar11 + 1" identifier = (binary_expression "pcVar11 + 1" identifier + number_literal)) ;) (expression_statement "pcVar5 = pcVar7 + 1;" (assignment_expression "pcVar5 = pcVar7 + 1" identifier = (binary_expression "pcVar7 + 1" identifier + number_literal)) ;) (expression_statement "*pcVar7 = cVar3;" (assignment_expression "*pcVar7 = cVar3" (pointer_expression "*pcVar7" * identifier) = identifier) ;) (expression_statement "pcVar7 = pcVar5;" (assignment_expression "pcVar7 = pcVar5" identifier = identifier) ;) (expression_statement "pcVar5 = pcVar14;" (assignment_expression "pcVar5 = pcVar14" identifier = identifier) ;) (if_statement "if (pcVar14 == pcVar11) goto LAB_00137d7b;" if (parenthesized_expression "(pcVar14 == pcVar11)" ( (binary_expression "pcVar14 == pcVar11" identifier == identifier) )) (goto_statement "goto LAB_00137d7b;" goto statement_identifier ;)) (expression_statement "cVar3 = *pcVar11;" (assignment_expression "cVar3 = *pcVar11" identifier = (pointer_expression "*pcVar11" * identifier)) ;) })) (expression_statement "*pcVar7 = *pcVar11;" (assignment_expression "*pcVar7 = *pcVar11" (pointer_expression "*pcVar7" * identifier) = (pointer_expression "*pcVar11" * identifier)) ;) (expression_statement "pcVar11 = pcVar11 + 1;" (assignment_expression "pcVar11 = pcVar11 + 1" identifier = (binary_expression "pcVar11 + 1" identifier + number_literal)) ;) (expression_statement "pcVar7 = pcVar7 + 1;" (assignment_expression "pcVar7 = pcVar7 + 1" identifier = (binary_expression "pcVar7 + 1" identifier + number_literal)) ;) })))) }))) (expression_statement "pcVar5 = pcVar11;" (assignment_expression "pcVar5 = pcVar11" identifier = identifier) ;) }) while (parenthesized_expression "(pcVar11 < pcVar14)" ( (binary_expression "pcVar11 < pcVar14" identifier < identifier) )) ;) (labeled_statement "LAB_00137d7b:\n            pcVar11 = pcVar7;" statement_identifier : (expression_statement "pcVar11 = pcVar7;" (assignment_expression "pcVar11 = pcVar7" identifier = identifier) ;)) (if_statement "if (pcVar5 != pcVar7) {\n              *pcVar7 = '\0';\n            }" if (parenthesized_expression "(pcVar5 != pcVar7)" ( (binary_expression "pcVar5 != pcVar7" identifier != identifier) )) (compound_statement "{\n              *pcVar7 = '\0';\n            }" { (expression_statement "*pcVar7 = '\0';" (assignment_expression "*pcVar7 = '\0'" (pointer_expression "*pcVar7" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) })) })) (expression_statement "pcVar14 = *(char **)(piVar9 + 8);" (assignment_expression "pcVar14 = *(char **)(piVar9 + 8)" identifier = (pointer_expression "*(char **)(piVar9 + 8)" * (cast_expression "(char **)(piVar9 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar9 + 8)" ( (binary_expression "piVar9 + 8" identifier + number_literal) ))))) ;) (expression_statement "pcVar6 = strrchr(pcVar14,0x2f);" (assignment_expression "pcVar6 = strrchr(pcVar14,0x2f)" identifier = (call_expression "strrchr(pcVar14,0x2f)" identifier (argument_list "(pcVar14,0x2f)" ( identifier , number_literal )))) ;) (if_statement "if (pcVar6 == (char *)0x0) {\n            uVar8 = FUN_001496d9(&DAT_0015ea35);\n            *(undefined8 *)(piVar9 + 0x10) = uVar8;\n            uVar8 = FUN_001496d9(pcVar14);\n            *(undefined8 *)(piVar9 + 0x12) = uVar8;\n          }\n          else {\n            uVar8 = FUN_0013a40c(pcVar14,pcVar6);\n            *(undefined8 *)(piVar9 + 0x10) = uVar8;\n            uVar8 = FUN_001496d9(pcVar6 + 1);\n            *(undefined8 *)(piVar9 + 0x12) = uVar8;\n          }" if (parenthesized_expression "(pcVar6 == (char *)0x0)" ( (binary_expression "pcVar6 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            uVar8 = FUN_001496d9(&DAT_0015ea35);\n            *(undefined8 *)(piVar9 + 0x10) = uVar8;\n            uVar8 = FUN_001496d9(pcVar14);\n            *(undefined8 *)(piVar9 + 0x12) = uVar8;\n          }" { (expression_statement "uVar8 = FUN_001496d9(&DAT_0015ea35);" (assignment_expression "uVar8 = FUN_001496d9(&DAT_0015ea35)" identifier = (call_expression "FUN_001496d9(&DAT_0015ea35)" identifier (argument_list "(&DAT_0015ea35)" ( (pointer_expression "&DAT_0015ea35" & identifier) )))) ;) (expression_statement "*(undefined8 *)(piVar9 + 0x10) = uVar8;" (assignment_expression "*(undefined8 *)(piVar9 + 0x10) = uVar8" (pointer_expression "*(undefined8 *)(piVar9 + 0x10)" * (cast_expression "(undefined8 *)(piVar9 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar9 + 0x10)" ( (binary_expression "piVar9 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar8 = FUN_001496d9(pcVar14);" (assignment_expression "uVar8 = FUN_001496d9(pcVar14)" identifier = (call_expression "FUN_001496d9(pcVar14)" identifier (argument_list "(pcVar14)" ( identifier )))) ;) (expression_statement "*(undefined8 *)(piVar9 + 0x12) = uVar8;" (assignment_expression "*(undefined8 *)(piVar9 + 0x12) = uVar8" (pointer_expression "*(undefined8 *)(piVar9 + 0x12)" * (cast_expression "(undefined8 *)(piVar9 + 0x12)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar9 + 0x12)" ( (binary_expression "piVar9 + 0x12" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n            uVar8 = FUN_0013a40c(pcVar14,pcVar6);\n            *(undefined8 *)(piVar9 + 0x10) = uVar8;\n            uVar8 = FUN_001496d9(pcVar6 + 1);\n            *(undefined8 *)(piVar9 + 0x12) = uVar8;\n          }" else (compound_statement "{\n            uVar8 = FUN_0013a40c(pcVar14,pcVar6);\n            *(undefined8 *)(piVar9 + 0x10) = uVar8;\n            uVar8 = FUN_001496d9(pcVar6 + 1);\n            *(undefined8 *)(piVar9 + 0x12) = uVar8;\n          }" { (expression_statement "uVar8 = FUN_0013a40c(pcVar14,pcVar6);" (assignment_expression "uVar8 = FUN_0013a40c(pcVar14,pcVar6)" identifier = (call_expression "FUN_0013a40c(pcVar14,pcVar6)" identifier (argument_list "(pcVar14,pcVar6)" ( identifier , identifier )))) ;) (expression_statement "*(undefined8 *)(piVar9 + 0x10) = uVar8;" (assignment_expression "*(undefined8 *)(piVar9 + 0x10) = uVar8" (pointer_expression "*(undefined8 *)(piVar9 + 0x10)" * (cast_expression "(undefined8 *)(piVar9 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar9 + 0x10)" ( (binary_expression "piVar9 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar8 = FUN_001496d9(pcVar6 + 1);" (assignment_expression "uVar8 = FUN_001496d9(pcVar6 + 1)" identifier = (call_expression "FUN_001496d9(pcVar6 + 1)" identifier (argument_list "(pcVar6 + 1)" ( (binary_expression "pcVar6 + 1" identifier + number_literal) )))) ;) (expression_statement "*(undefined8 *)(piVar9 + 0x12) = uVar8;" (assignment_expression "*(undefined8 *)(piVar9 + 0x12) = uVar8" (pointer_expression "*(undefined8 *)(piVar9 + 0x12)" * (cast_expression "(undefined8 *)(piVar9 + 0x12)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar9 + 0x12)" ( (binary_expression "piVar9 + 0x12" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "FUN_00135c58(*(undefined8 *)(piVar9 + 0x10));" (call_expression "FUN_00135c58(*(undefined8 *)(piVar9 + 0x10))" identifier (argument_list "(*(undefined8 *)(piVar9 + 0x10))" ( (pointer_expression "*(undefined8 *)(piVar9 + 0x10)" * (cast_expression "(undefined8 *)(piVar9 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar9 + 0x10)" ( (binary_expression "piVar9 + 0x10" identifier + number_literal) )))) ))) ;) (expression_statement "FUN_00135c58(*(undefined8 *)(piVar9 + 0x12));" (call_expression "FUN_00135c58(*(undefined8 *)(piVar9 + 0x12))" identifier (argument_list "(*(undefined8 *)(piVar9 + 0x12))" ( (pointer_expression "*(undefined8 *)(piVar9 + 0x12)" * (cast_expression "(undefined8 *)(piVar9 + 0x12)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar9 + 0x12)" ( (binary_expression "piVar9 + 0x12" identifier + number_literal) )))) ))) ;) (expression_statement "pcVar14 = *(char **)(piVar9 + 4);" (assignment_expression "pcVar14 = *(char **)(piVar9 + 4)" identifier = (pointer_expression "*(char **)(piVar9 + 4)" * (cast_expression "(char **)(piVar9 + 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar9 + 4)" ( (binary_expression "piVar9 + 4" identifier + number_literal) ))))) ;) (expression_statement "cVar3 = *pcVar14;" (assignment_expression "cVar3 = *pcVar14" identifier = (pointer_expression "*pcVar14" * identifier)) ;) (if_statement "if (cVar3 == '\0') {\n            bVar17 = 0;\n          }\n          else {\n            bVar17 = 0;\n            do {\n              if ((int)cVar3 - 0x41U < 0x1a) {\n                *pcVar14 = cVar3 + ' ';\n                bVar17 = 1;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            } while (cVar3 != '\0');\n          }" if (parenthesized_expression "(cVar3 == '\0')" ( (binary_expression "cVar3 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            bVar17 = 0;\n          }" { (expression_statement "bVar17 = 0;" (assignment_expression "bVar17 = 0" identifier = number_literal) ;) }) (else_clause "else {\n            bVar17 = 0;\n            do {\n              if ((int)cVar3 - 0x41U < 0x1a) {\n                *pcVar14 = cVar3 + ' ';\n                bVar17 = 1;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            } while (cVar3 != '\0');\n          }" else (compound_statement "{\n            bVar17 = 0;\n            do {\n              if ((int)cVar3 - 0x41U < 0x1a) {\n                *pcVar14 = cVar3 + ' ';\n                bVar17 = 1;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            } while (cVar3 != '\0');\n          }" { (expression_statement "bVar17 = 0;" (assignment_expression "bVar17 = 0" identifier = number_literal) ;) (do_statement "do {\n              if ((int)cVar3 - 0x41U < 0x1a) {\n                *pcVar14 = cVar3 + ' ';\n                bVar17 = 1;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            } while (cVar3 != '\0');" do (compound_statement "{\n              if ((int)cVar3 - 0x41U < 0x1a) {\n                *pcVar14 = cVar3 + ' ';\n                bVar17 = 1;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            }" { (if_statement "if ((int)cVar3 - 0x41U < 0x1a) {\n                *pcVar14 = cVar3 + ' ';\n                bVar17 = 1;\n              }" if (parenthesized_expression "((int)cVar3 - 0x41U < 0x1a)" ( (binary_expression "(int)cVar3 - 0x41U < 0x1a" (binary_expression "(int)cVar3 - 0x41U" (cast_expression "(int)cVar3" ( (type_descriptor "int" primitive_type) ) identifier) - number_literal) < number_literal) )) (compound_statement "{\n                *pcVar14 = cVar3 + ' ';\n                bVar17 = 1;\n              }" { (expression_statement "*pcVar14 = cVar3 + ' ';" (assignment_expression "*pcVar14 = cVar3 + ' '" (pointer_expression "*pcVar14" * identifier) = (binary_expression "cVar3 + ' '" identifier + (char_literal "' '" ' character '))) ;) (expression_statement "bVar17 = 1;" (assignment_expression "bVar17 = 1" identifier = number_literal) ;) })) (expression_statement "pcVar14 = pcVar14 + 1;" (assignment_expression "pcVar14 = pcVar14 + 1" identifier = (binary_expression "pcVar14 + 1" identifier + number_literal)) ;) (expression_statement "cVar3 = *pcVar14;" (assignment_expression "cVar3 = *pcVar14" identifier = (pointer_expression "*pcVar14" * identifier)) ;) }) while (parenthesized_expression "(cVar3 != '\0')" ( (binary_expression "cVar3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) }))) (expression_statement "pcVar14 = *(char **)(piVar9 + 4);" (assignment_expression "pcVar14 = *(char **)(piVar9 + 4)" identifier = (pointer_expression "*(char **)(piVar9 + 4)" * (cast_expression "(char **)(piVar9 + 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar9 + 4)" ( (binary_expression "piVar9 + 4" identifier + number_literal) ))))) ;) (expression_statement "pcVar6 = strchr(pcVar14,0x25);" (assignment_expression "pcVar6 = strchr(pcVar14,0x25)" identifier = (call_expression "strchr(pcVar14,0x25)" identifier (argument_list "(pcVar14,0x25)" ( identifier , number_literal )))) ;) (if_statement "if (pcVar6 != (char *)0x0) {\n            FUN_00135c58(pcVar14);\n            pcVar14 = *(char **)(piVar9 + 4);\n            cVar3 = *pcVar14;\n            while (cVar3 != '\0') {\n              if ((-1 < cVar3) && ((cVar3 < ' ' || (cVar3 == '\x7f')))) {\n                FUN_0013629a(piVar9);\n                iVar15 = 3;\n                goto LAB_00137c65;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            }\n            bVar17 = param_3 != 0 & DAT_00177606;\n            if (bVar17 == 0) {\n              bVar17 = 1;\n            }\n            else {\n              lVar12 = FUN_0013eaa4(param_3);\n              if (lVar12 != 0) {\n                free(*(void **)(piVar9 + 4));\n                *(long *)(piVar9 + 4) = lVar12;\n              }\n            }\n          }" if (parenthesized_expression "(pcVar6 != (char *)0x0)" ( (binary_expression "pcVar6 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            FUN_00135c58(pcVar14);\n            pcVar14 = *(char **)(piVar9 + 4);\n            cVar3 = *pcVar14;\n            while (cVar3 != '\0') {\n              if ((-1 < cVar3) && ((cVar3 < ' ' || (cVar3 == '\x7f')))) {\n                FUN_0013629a(piVar9);\n                iVar15 = 3;\n                goto LAB_00137c65;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            }\n            bVar17 = param_3 != 0 & DAT_00177606;\n            if (bVar17 == 0) {\n              bVar17 = 1;\n            }\n            else {\n              lVar12 = FUN_0013eaa4(param_3);\n              if (lVar12 != 0) {\n                free(*(void **)(piVar9 + 4));\n                *(long *)(piVar9 + 4) = lVar12;\n              }\n            }\n          }" { (expression_statement "FUN_00135c58(pcVar14);" (call_expression "FUN_00135c58(pcVar14)" identifier (argument_list "(pcVar14)" ( identifier ))) ;) (expression_statement "pcVar14 = *(char **)(piVar9 + 4);" (assignment_expression "pcVar14 = *(char **)(piVar9 + 4)" identifier = (pointer_expression "*(char **)(piVar9 + 4)" * (cast_expression "(char **)(piVar9 + 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar9 + 4)" ( (binary_expression "piVar9 + 4" identifier + number_literal) ))))) ;) (expression_statement "cVar3 = *pcVar14;" (assignment_expression "cVar3 = *pcVar14" identifier = (pointer_expression "*pcVar14" * identifier)) ;) (while_statement "while (cVar3 != '\0') {\n              if ((-1 < cVar3) && ((cVar3 < ' ' || (cVar3 == '\x7f')))) {\n                FUN_0013629a(piVar9);\n                iVar15 = 3;\n                goto LAB_00137c65;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            }" while (parenthesized_expression "(cVar3 != '\0')" ( (binary_expression "cVar3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              if ((-1 < cVar3) && ((cVar3 < ' ' || (cVar3 == '\x7f')))) {\n                FUN_0013629a(piVar9);\n                iVar15 = 3;\n                goto LAB_00137c65;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            }" { (if_statement "if ((-1 < cVar3) && ((cVar3 < ' ' || (cVar3 == '\x7f')))) {\n                FUN_0013629a(piVar9);\n                iVar15 = 3;\n                goto LAB_00137c65;\n              }" if (parenthesized_expression "((-1 < cVar3) && ((cVar3 < ' ' || (cVar3 == '\x7f'))))" ( (binary_expression "(-1 < cVar3) && ((cVar3 < ' ' || (cVar3 == '\x7f')))" (parenthesized_expression "(-1 < cVar3)" ( (binary_expression "-1 < cVar3" number_literal < identifier) )) && (parenthesized_expression "((cVar3 < ' ' || (cVar3 == '\x7f')))" ( (parenthesized_expression "(cVar3 < ' ' || (cVar3 == '\x7f'))" ( (binary_expression "cVar3 < ' ' || (cVar3 == '\x7f')" (binary_expression "cVar3 < ' '" identifier < (char_literal "' '" ' character ')) || (parenthesized_expression "(cVar3 == '\x7f')" ( (binary_expression "cVar3 == '\x7f'" identifier == (char_literal "'\x7f'" ' escape_sequence ')) ))) )) ))) )) (compound_statement "{\n                FUN_0013629a(piVar9);\n                iVar15 = 3;\n                goto LAB_00137c65;\n              }" { (expression_statement "FUN_0013629a(piVar9);" (call_expression "FUN_0013629a(piVar9)" identifier (argument_list "(piVar9)" ( identifier ))) ;) (expression_statement "iVar15 = 3;" (assignment_expression "iVar15 = 3" identifier = number_literal) ;) (goto_statement "goto LAB_00137c65;" goto statement_identifier ;) })) (expression_statement "pcVar14 = pcVar14 + 1;" (assignment_expression "pcVar14 = pcVar14 + 1" identifier = (binary_expression "pcVar14 + 1" identifier + number_literal)) ;) (expression_statement "cVar3 = *pcVar14;" (assignment_expression "cVar3 = *pcVar14" identifier = (pointer_expression "*pcVar14" * identifier)) ;) })) (expression_statement "bVar17 = param_3 != 0 & DAT_00177606;" (assignment_expression "bVar17 = param_3 != 0 & DAT_00177606" identifier = (binary_expression "param_3 != 0 & DAT_00177606" (binary_expression "param_3 != 0" identifier != number_literal) & identifier)) ;) (if_statement "if (bVar17 == 0) {\n              bVar17 = 1;\n            }\n            else {\n              lVar12 = FUN_0013eaa4(param_3);\n              if (lVar12 != 0) {\n                free(*(void **)(piVar9 + 4));\n                *(long *)(piVar9 + 4) = lVar12;\n              }\n            }" if (parenthesized_expression "(bVar17 == 0)" ( (binary_expression "bVar17 == 0" identifier == number_literal) )) (compound_statement "{\n              bVar17 = 1;\n            }" { (expression_statement "bVar17 = 1;" (assignment_expression "bVar17 = 1" identifier = number_literal) ;) }) (else_clause "else {\n              lVar12 = FUN_0013eaa4(param_3);\n              if (lVar12 != 0) {\n                free(*(void **)(piVar9 + 4));\n                *(long *)(piVar9 + 4) = lVar12;\n              }\n            }" else (compound_statement "{\n              lVar12 = FUN_0013eaa4(param_3);\n              if (lVar12 != 0) {\n                free(*(void **)(piVar9 + 4));\n                *(long *)(piVar9 + 4) = lVar12;\n              }\n            }" { (expression_statement "lVar12 = FUN_0013eaa4(param_3);" (assignment_expression "lVar12 = FUN_0013eaa4(param_3)" identifier = (call_expression "FUN_0013eaa4(param_3)" identifier (argument_list "(param_3)" ( identifier )))) ;) (if_statement "if (lVar12 != 0) {\n                free(*(void **)(piVar9 + 4));\n                *(long *)(piVar9 + 4) = lVar12;\n              }" if (parenthesized_expression "(lVar12 != 0)" ( (binary_expression "lVar12 != 0" identifier != number_literal) )) (compound_statement "{\n                free(*(void **)(piVar9 + 4));\n                *(long *)(piVar9 + 4) = lVar12;\n              }" { (expression_statement "free(*(void **)(piVar9 + 4));" (call_expression "free(*(void **)(piVar9 + 4))" identifier (argument_list "(*(void **)(piVar9 + 4))" ( (pointer_expression "*(void **)(piVar9 + 4)" * (cast_expression "(void **)(piVar9 + 4)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar9 + 4)" ( (binary_expression "piVar9 + 4" identifier + number_literal) )))) ))) ;) (expression_statement "*(long *)(piVar9 + 4) = lVar12;" (assignment_expression "*(long *)(piVar9 + 4) = lVar12" (pointer_expression "*(long *)(piVar9 + 4)" * (cast_expression "(long *)(piVar9 + 4)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar9 + 4)" ( (binary_expression "piVar9 + 4" identifier + number_literal) )))) = identifier) ;) })) }))) })) (if_statement "if (local_70 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_70,local_60);\n            *(undefined8 *)(piVar9 + 10) = uVar8;\n          }" if (parenthesized_expression "(local_70 != (char *)0x0)" ( (binary_expression "local_70 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            uVar8 = FUN_0013a40c(local_70,local_60);\n            *(undefined8 *)(piVar9 + 10) = uVar8;\n          }" { (expression_statement "uVar8 = FUN_0013a40c(local_70,local_60);" (assignment_expression "uVar8 = FUN_0013a40c(local_70,local_60)" identifier = (call_expression "FUN_0013a40c(local_70,local_60)" identifier (argument_list "(local_70,local_60)" ( identifier , identifier )))) ;) (expression_statement "*(undefined8 *)(piVar9 + 10) = uVar8;" (assignment_expression "*(undefined8 *)(piVar9 + 10) = uVar8" (pointer_expression "*(undefined8 *)(piVar9 + 10)" * (cast_expression "(undefined8 *)(piVar9 + 10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar9 + 10)" ( (binary_expression "piVar9 + 10" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if (local_b0 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_b0,local_58);\n            *(undefined8 *)(piVar9 + 0xc) = uVar8;\n          }" if (parenthesized_expression "(local_b0 != (char *)0x0)" ( (binary_expression "local_b0 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            uVar8 = FUN_0013a40c(local_b0,local_58);\n            *(undefined8 *)(piVar9 + 0xc) = uVar8;\n          }" { (expression_statement "uVar8 = FUN_0013a40c(local_b0,local_58);" (assignment_expression "uVar8 = FUN_0013a40c(local_b0,local_58)" identifier = (call_expression "FUN_0013a40c(local_b0,local_58)" identifier (argument_list "(local_b0,local_58)" ( identifier , identifier )))) ;) (expression_statement "*(undefined8 *)(piVar9 + 0xc) = uVar8;" (assignment_expression "*(undefined8 *)(piVar9 + 0xc) = uVar8" (pointer_expression "*(undefined8 *)(piVar9 + 0xc)" * (cast_expression "(undefined8 *)(piVar9 + 0xc)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar9 + 0xc)" ( (binary_expression "piVar9 + 0xc" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if (local_68 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_68,local_50);\n            *(undefined8 *)(piVar9 + 0xe) = uVar8;\n          }" if (parenthesized_expression "(local_68 != (char *)0x0)" ( (binary_expression "local_68 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            uVar8 = FUN_0013a40c(local_68,local_50);\n            *(undefined8 *)(piVar9 + 0xe) = uVar8;\n          }" { (expression_statement "uVar8 = FUN_0013a40c(local_68,local_50);" (assignment_expression "uVar8 = FUN_0013a40c(local_68,local_50)" identifier = (call_expression "FUN_0013a40c(local_68,local_50)" identifier (argument_list "(local_68,local_50)" ( identifier , identifier )))) ;) (expression_statement "*(undefined8 *)(piVar9 + 0xe) = uVar8;" (assignment_expression "*(undefined8 *)(piVar9 + 0xe) = uVar8" (pointer_expression "*(undefined8 *)(piVar9 + 0xe)" * (cast_expression "(undefined8 *)(piVar9 + 0xe)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar9 + 0xe)" ( (binary_expression "piVar9 + 0xe" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "param_2 = piVar9;" (assignment_expression "param_2 = piVar9" identifier = identifier) ;) (if_statement "if ((((DAT_00177606 == 0) && (pcVar5 == pcVar11)) && (*(long *)(piVar9 + 0xe) == 0)) &&\n             ((local_88 != local_80 && (bVar17 == 0)))) {\n            if (local_b8 == param_1) {\n              uVar8 = FUN_001496d9(param_1);\n              *(undefined8 *)piVar9 = uVar8;\n            }\n            else {\n              *(void **)piVar9 = local_b8;\n            }\n          }\n          else {\n            uVar8 = FUN_00137051(piVar9,0);\n            *(undefined8 *)piVar9 = uVar8;\n            if (local_b8 != param_1) {\n              free(local_b8);\n            }\n          }" if (parenthesized_expression "((((DAT_00177606 == 0) && (pcVar5 == pcVar11)) && (*(long *)(piVar9 + 0xe) == 0)) &&\n             ((local_88 != local_80 && (bVar17 == 0))))" ( (binary_expression "(((DAT_00177606 == 0) && (pcVar5 == pcVar11)) && (*(long *)(piVar9 + 0xe) == 0)) &&\n             ((local_88 != local_80 && (bVar17 == 0)))" (parenthesized_expression "(((DAT_00177606 == 0) && (pcVar5 == pcVar11)) && (*(long *)(piVar9 + 0xe) == 0))" ( (binary_expression "((DAT_00177606 == 0) && (pcVar5 == pcVar11)) && (*(long *)(piVar9 + 0xe) == 0)" (parenthesized_expression "((DAT_00177606 == 0) && (pcVar5 == pcVar11))" ( (binary_expression "(DAT_00177606 == 0) && (pcVar5 == pcVar11)" (parenthesized_expression "(DAT_00177606 == 0)" ( (binary_expression "DAT_00177606 == 0" identifier == number_literal) )) && (parenthesized_expression "(pcVar5 == pcVar11)" ( (binary_expression "pcVar5 == pcVar11" identifier == identifier) ))) )) && (parenthesized_expression "(*(long *)(piVar9 + 0xe) == 0)" ( (binary_expression "*(long *)(piVar9 + 0xe) == 0" (pointer_expression "*(long *)(piVar9 + 0xe)" * (cast_expression "(long *)(piVar9 + 0xe)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar9 + 0xe)" ( (binary_expression "piVar9 + 0xe" identifier + number_literal) )))) == number_literal) ))) )) && (parenthesized_expression "((local_88 != local_80 && (bVar17 == 0)))" ( (parenthesized_expression "(local_88 != local_80 && (bVar17 == 0))" ( (binary_expression "local_88 != local_80 && (bVar17 == 0)" (binary_expression "local_88 != local_80" identifier != identifier) && (parenthesized_expression "(bVar17 == 0)" ( (binary_expression "bVar17 == 0" identifier == number_literal) ))) )) ))) )) (compound_statement "{\n            if (local_b8 == param_1) {\n              uVar8 = FUN_001496d9(param_1);\n              *(undefined8 *)piVar9 = uVar8;\n            }\n            else {\n              *(void **)piVar9 = local_b8;\n            }\n          }" { (if_statement "if (local_b8 == param_1) {\n              uVar8 = FUN_001496d9(param_1);\n              *(undefined8 *)piVar9 = uVar8;\n            }\n            else {\n              *(void **)piVar9 = local_b8;\n            }" if (parenthesized_expression "(local_b8 == param_1)" ( (binary_expression "local_b8 == param_1" identifier == identifier) )) (compound_statement "{\n              uVar8 = FUN_001496d9(param_1);\n              *(undefined8 *)piVar9 = uVar8;\n            }" { (expression_statement "uVar8 = FUN_001496d9(param_1);" (assignment_expression "uVar8 = FUN_001496d9(param_1)" identifier = (call_expression "FUN_001496d9(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "*(undefined8 *)piVar9 = uVar8;" (assignment_expression "*(undefined8 *)piVar9 = uVar8" (pointer_expression "*(undefined8 *)piVar9" * (cast_expression "(undefined8 *)piVar9" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) }) (else_clause "else {\n              *(void **)piVar9 = local_b8;\n            }" else (compound_statement "{\n              *(void **)piVar9 = local_b8;\n            }" { (expression_statement "*(void **)piVar9 = local_b8;" (assignment_expression "*(void **)piVar9 = local_b8" (pointer_expression "*(void **)piVar9" * (cast_expression "(void **)piVar9" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) }))) }) (else_clause "else {\n            uVar8 = FUN_00137051(piVar9,0);\n            *(undefined8 *)piVar9 = uVar8;\n            if (local_b8 != param_1) {\n              free(local_b8);\n            }\n          }" else (compound_statement "{\n            uVar8 = FUN_00137051(piVar9,0);\n            *(undefined8 *)piVar9 = uVar8;\n            if (local_b8 != param_1) {\n              free(local_b8);\n            }\n          }" { (expression_statement "uVar8 = FUN_00137051(piVar9,0);" (assignment_expression "uVar8 = FUN_00137051(piVar9,0)" identifier = (call_expression "FUN_00137051(piVar9,0)" identifier (argument_list "(piVar9,0)" ( identifier , number_literal )))) ;) (expression_statement "*(undefined8 *)piVar9 = uVar8;" (assignment_expression "*(undefined8 *)piVar9 = uVar8" (pointer_expression "*(undefined8 *)piVar9" * (cast_expression "(undefined8 *)piVar9" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (if_statement "if (local_b8 != param_1) {\n              free(local_b8);\n            }" if (parenthesized_expression "(local_b8 != param_1)" ( (binary_expression "local_b8 != param_1" identifier != identifier) )) (compound_statement "{\n              free(local_b8);\n            }" { (expression_statement "free(local_b8);" (call_expression "free(local_b8)" identifier (argument_list "(local_b8)" ( identifier ))) ;) })) }))) (goto_statement "goto LAB_00137c95;" goto statement_identifier ;) })) (expression_statement "pcVar14 = pcVar14 + -1;" (assignment_expression "pcVar14 = pcVar14 + -1" identifier = (binary_expression "pcVar14 + -1" identifier + number_literal)) ;) (if_statement "if (pcVar14 == pcVar11) {\n          iVar15 = 5;\n        }\n        else {\n          pcVar6 = (char *)memchr(pcVar11,0x3a,(long)pcVar14 - (long)pcVar11);\n          if (pcVar11 != pcVar6) {\n            pcVar5 = pcVar6;\n            if (pcVar6 != (char *)0x0) {\n              pcVar5 = (char *)FUN_0013a40c(pcVar6 + 1,pcVar14);\n              FUN_00135c58(pcVar5);\n              pcVar14 = pcVar6;\n            }\n            uVar8 = FUN_0013a40c(pcVar11,pcVar14);\n            FUN_00135c58(uVar8);\n            goto LAB_001379c6;\n          }\n          iVar15 = 5;\n        }" if (parenthesized_expression "(pcVar14 == pcVar11)" ( (binary_expression "pcVar14 == pcVar11" identifier == identifier) )) (compound_statement "{\n          iVar15 = 5;\n        }" { (expression_statement "iVar15 = 5;" (assignment_expression "iVar15 = 5" identifier = number_literal) ;) }) (else_clause "else {\n          pcVar6 = (char *)memchr(pcVar11,0x3a,(long)pcVar14 - (long)pcVar11);\n          if (pcVar11 != pcVar6) {\n            pcVar5 = pcVar6;\n            if (pcVar6 != (char *)0x0) {\n              pcVar5 = (char *)FUN_0013a40c(pcVar6 + 1,pcVar14);\n              FUN_00135c58(pcVar5);\n              pcVar14 = pcVar6;\n            }\n            uVar8 = FUN_0013a40c(pcVar11,pcVar14);\n            FUN_00135c58(uVar8);\n            goto LAB_001379c6;\n          }\n          iVar15 = 5;\n        }" else (compound_statement "{\n          pcVar6 = (char *)memchr(pcVar11,0x3a,(long)pcVar14 - (long)pcVar11);\n          if (pcVar11 != pcVar6) {\n            pcVar5 = pcVar6;\n            if (pcVar6 != (char *)0x0) {\n              pcVar5 = (char *)FUN_0013a40c(pcVar6 + 1,pcVar14);\n              FUN_00135c58(pcVar5);\n              pcVar14 = pcVar6;\n            }\n            uVar8 = FUN_0013a40c(pcVar11,pcVar14);\n            FUN_00135c58(uVar8);\n            goto LAB_001379c6;\n          }\n          iVar15 = 5;\n        }" { (expression_statement "pcVar6 = (char *)memchr(pcVar11,0x3a,(long)pcVar14 - (long)pcVar11);" (assignment_expression "pcVar6 = (char *)memchr(pcVar11,0x3a,(long)pcVar14 - (long)pcVar11)" identifier = (cast_expression "(char *)memchr(pcVar11,0x3a,(long)pcVar14 - (long)pcVar11)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "memchr(pcVar11,0x3a,(long)pcVar14 - (long)pcVar11)" identifier (argument_list "(pcVar11,0x3a,(long)pcVar14 - (long)pcVar11)" ( identifier , number_literal , (binary_expression "(long)pcVar14 - (long)pcVar11" (cast_expression "(long)pcVar14" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)pcVar11" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))))) ;) (if_statement "if (pcVar11 != pcVar6) {\n            pcVar5 = pcVar6;\n            if (pcVar6 != (char *)0x0) {\n              pcVar5 = (char *)FUN_0013a40c(pcVar6 + 1,pcVar14);\n              FUN_00135c58(pcVar5);\n              pcVar14 = pcVar6;\n            }\n            uVar8 = FUN_0013a40c(pcVar11,pcVar14);\n            FUN_00135c58(uVar8);\n            goto LAB_001379c6;\n          }" if (parenthesized_expression "(pcVar11 != pcVar6)" ( (binary_expression "pcVar11 != pcVar6" identifier != identifier) )) (compound_statement "{\n            pcVar5 = pcVar6;\n            if (pcVar6 != (char *)0x0) {\n              pcVar5 = (char *)FUN_0013a40c(pcVar6 + 1,pcVar14);\n              FUN_00135c58(pcVar5);\n              pcVar14 = pcVar6;\n            }\n            uVar8 = FUN_0013a40c(pcVar11,pcVar14);\n            FUN_00135c58(uVar8);\n            goto LAB_001379c6;\n          }" { (expression_statement "pcVar5 = pcVar6;" (assignment_expression "pcVar5 = pcVar6" identifier = identifier) ;) (if_statement "if (pcVar6 != (char *)0x0) {\n              pcVar5 = (char *)FUN_0013a40c(pcVar6 + 1,pcVar14);\n              FUN_00135c58(pcVar5);\n              pcVar14 = pcVar6;\n            }" if (parenthesized_expression "(pcVar6 != (char *)0x0)" ( (binary_expression "pcVar6 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              pcVar5 = (char *)FUN_0013a40c(pcVar6 + 1,pcVar14);\n              FUN_00135c58(pcVar5);\n              pcVar14 = pcVar6;\n            }" { (expression_statement "pcVar5 = (char *)FUN_0013a40c(pcVar6 + 1,pcVar14);" (assignment_expression "pcVar5 = (char *)FUN_0013a40c(pcVar6 + 1,pcVar14)" identifier = (cast_expression "(char *)FUN_0013a40c(pcVar6 + 1,pcVar14)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0013a40c(pcVar6 + 1,pcVar14)" identifier (argument_list "(pcVar6 + 1,pcVar14)" ( (binary_expression "pcVar6 + 1" identifier + number_literal) , identifier ))))) ;) (expression_statement "FUN_00135c58(pcVar5);" (call_expression "FUN_00135c58(pcVar5)" identifier (argument_list "(pcVar5)" ( identifier ))) ;) (expression_statement "pcVar14 = pcVar6;" (assignment_expression "pcVar14 = pcVar6" identifier = identifier) ;) })) (expression_statement "uVar8 = FUN_0013a40c(pcVar11,pcVar14);" (assignment_expression "uVar8 = FUN_0013a40c(pcVar11,pcVar14)" identifier = (call_expression "FUN_0013a40c(pcVar11,pcVar14)" identifier (argument_list "(pcVar11,pcVar14)" ( identifier , identifier )))) ;) (expression_statement "FUN_00135c58(uVar8);" (call_expression "FUN_00135c58(uVar8)" identifier (argument_list "(uVar8)" ( identifier ))) ;) (goto_statement "goto LAB_001379c6;" goto statement_identifier ;) })) (expression_statement "iVar15 = 5;" (assignment_expression "iVar15 = 5" identifier = number_literal) ;) }))) })))) }))) (labeled_statement "LAB_00137c65:\n    if ((local_b8 != (void *)0x0) && (local_b8 != param_1)) {\n      free(local_b8);\n    }" statement_identifier : (if_statement "if ((local_b8 != (void *)0x0) && (local_b8 != param_1)) {\n      free(local_b8);\n    }" if (parenthesized_expression "((local_b8 != (void *)0x0) && (local_b8 != param_1))" ( (binary_expression "(local_b8 != (void *)0x0) && (local_b8 != param_1)" (parenthesized_expression "(local_b8 != (void *)0x0)" ( (binary_expression "local_b8 != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(local_b8 != param_1)" ( (binary_expression "local_b8 != param_1" identifier != identifier) ))) )) (compound_statement "{\n      free(local_b8);\n    }" { (expression_statement "free(local_b8);" (call_expression "free(local_b8)" identifier (argument_list "(local_b8)" ( identifier ))) ;) }))) }))) (if_statement "if (param_2 != (int *)0x0) {\n    *param_2 = iVar15;\n    param_2 = (int *)0x0;\n  }" if (parenthesized_expression "(param_2 != (int *)0x0)" ( (binary_expression "param_2 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    *param_2 = iVar15;\n    param_2 = (int *)0x0;\n  }" { (expression_statement "*param_2 = iVar15;" (assignment_expression "*param_2 = iVar15" (pointer_expression "*param_2" * identifier) = identifier) ;) (expression_statement "param_2 = (int *)0x0;" (assignment_expression "param_2 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (labeled_statement "LAB_00137c95:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return param_2;\n  }" statement_identifier : (if_statement "if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return param_2;\n  }" if (parenthesized_expression "(local_40 == *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "local_40 == *(long *)(in_FS_OFFSET + 0x28)" identifier == (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n    return param_2;\n  }" { (return_statement "return param_2;" return identifier ;) }))) (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration (sized_type_specifier long) 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 IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) + LIT)) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (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 = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (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 != IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) }))) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) ])) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + (parenthesized_expression ( (binary_expression (unary_expression ~ IDENT) - LIT) ))) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") )))) ;) (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 = (binary_expression IDENT + LIT)) , (binary_expression (pointer_expression * IDENT) != (char_literal ' character '))) ))) )) (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 ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) }))) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (parenthesized_expression ( (binary_expression (unary_expression ~ IDENT) - LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (unary_expression ~ IDENT))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) - LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression LIT < (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT)) - LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (pointer_expression * IDENT) + LIT) + (binary_expression IDENT * LIT))) ;) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) })) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (binary_expression 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 { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (unary_expression ~ IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (unary_expression ~ IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (unary_expression ~ IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (unary_expression ~ IDENT))) ;) })) })) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT , LIT ))))) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , 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 (subscript_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 * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (parenthesized_expression ( (binary_expression (unary_expression ~ IDENT) - LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) || (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (char_literal ' character ')) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) != (char_literal ' character ')) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (char_literal ' escape_sequence ')) ))) )) ))) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (binary_expression IDENT != (char_literal ' character ')) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT + LIT)) , (binary_expression IDENT != IDENT)) )))) )) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (goto_statement goto statement_identifier ;) })) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT != (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (break_statement break ;)) (while_statement while (parenthesized_expression ( (binary_expression IDENT != (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })))) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (char_literal ' escape_sequence ')) ;) })) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( 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 ( (pointer_expression & 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 IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , 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 IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }))) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - LIT) < LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT + (char_literal ' character '))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < IDENT) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT < (char_literal ' character ')) || (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) ))) )) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT != LIT) & IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) })) }))) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (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 IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (binary_expression IDENT == IDENT) ))) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) ))) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT != IDENT) && (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) = IDENT) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) }))) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , LIT , (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) - (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) }))) })))) }))) (labeled_statement statement_identifier : (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 IDENT != IDENT) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) }))) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (return_statement return IDENT ;) }))) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })))
(function_definition "int * FUN_00137430(void *param_1,int *param_2,long param_3,char param_4)\n\n{\n  char cVar1;\n  uint uVar2;\n  char cVar3;\n  uint uVar4;\n  char *pcVar5;\n  char *pcVar6;\n  char *pcVar7;\n  undefined8 uVar8;\n  int *piVar9;\n  undefined8 uVar10;\n  char *pcVar11;\n  long lVar12;\n  ulong uVar13;\n  char *pcVar14;\n  int iVar15;\n  void *pvVar16;\n  byte bVar17;\n  char *__s;\n  long in_FS_OFFSET;\n  void *local_b8;\n  char *local_b0;\n  char *local_a8;\n  char *local_a0;\n  char *local_90;\n  char *local_88;\n  char *local_80;\n  uint local_74;\n  char *local_70;\n  char *local_68;\n  char *local_60;\n  char *local_58;\n  char *local_50;\n  void *local_48;\n  long local_40;\n  \n  bVar17 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  uVar4 = FUN_00135f73();\n  if (uVar4 == 4) {\n    cVar3 = FUN_00136004(param_1);\n    iVar15 = (cVar3 == '\0') + 1;\n  }\n  else {\n    if ((param_3 == 0) || (*(char *)(param_3 + 0x18) == '\0')) {\nLAB_001374b5:\n      local_b8 = param_1;\n      if (param_4 != '\0') {\n        local_b8 = (void *)FUN_00135ae4(param_1);\n      }\n    }\n    else {\n      local_48 = (void *)0x0;\n      pvVar16 = *(void **)(param_3 + 0x10);\n      if (*(void **)(param_3 + 0x10) == (void *)0x0) {\n        pvVar16 = param_1;\n      }\n      cVar3 = FUN_0013e9b4(param_3,pvVar16,&local_48);\n      *(char *)(param_3 + 0x18) = cVar3;\n      if (cVar3 == '\0') goto LAB_001374b5;\n      free(*(void **)(param_3 + 0x10));\n      *(undefined8 *)(param_3 + 0x10) = 0;\n      uVar8 = FUN_001496d9(param_1);\n      *(undefined8 *)(param_3 + 0x10) = uVar8;\n      local_b8 = (void *)FUN_00135ae4(local_48);\n      if (local_48 != local_b8) {\n        free(local_48);\n      }\n    }\n    uVar13 = 0xffffffffffffffff;\n    pcVar11 = (&PTR_s_http____0016e348)[(ulong)uVar4 * 3];\n    do {\n      if (uVar13 == 0) break;\n      uVar13 = uVar13 - 1;\n      cVar3 = *pcVar11;\n      pcVar11 = pcVar11 + (ulong)bVar17 * -2 + 1;\n    } while (cVar3 != '\0');\n    pcVar11 = (char *)((long)local_b8 + (~uVar13 - 1));\n    pcVar5 = strpbrk(pcVar11,"@/?#;");\n    pcVar14 = pcVar11;\n    if ((pcVar5 != (char *)0x0) && (pcVar14 = pcVar5 + 1, *pcVar5 != '@')) {\n      pcVar14 = pcVar11;\n    }\n    pcVar5 = (char *)FUN_00135653(uVar4);\n    if (*pcVar14 == '[') {\n      local_a8 = pcVar14 + 1;\n      local_a0 = strchr(local_a8,0x5d);\n      if (local_a0 == (char *)0x0) {\n        iVar15 = 6;\n      }\n      else {\n        cVar3 = FUN_0011c7c7(local_a8,local_a0);\n        if (cVar3 == '\0') {\n          iVar15 = 8;\n        }\n        else {\n          pcVar6 = local_a0 + 1;\n          pcVar7 = strchr(pcVar5,(int)local_a0[1]);\n          if (pcVar7 != (char *)0x0) goto LAB_00137554;\n          iVar15 = 3;\n        }\n      }\n    }\n    else {\n      pcVar6 = strpbrk(pcVar14,pcVar5);\n      local_a8 = pcVar14;\n      local_a0 = pcVar6;\n      if (pcVar6 == (char *)0x0) {\n        uVar13 = 0xffffffffffffffff;\n        pcVar6 = pcVar14;\n        do {\n          if (uVar13 == 0) break;\n          uVar13 = uVar13 - 1;\n          cVar3 = *pcVar6;\n          pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n        } while (cVar3 != '\0');\n        pcVar6 = pcVar14 + (~uVar13 - 1);\n        local_a0 = pcVar6;\n      }\nLAB_00137554:\n      if (local_a8 == local_a0) {\n        iVar15 = 3;\n      }\n      else {\n        local_74 = *(uint *)(&DAT_0016e350 + (ulong)uVar4 * 0x18);\n        pcVar7 = pcVar6;\n        if (*pcVar6 == ':') {\n          __s = pcVar6 + 1;\n          pcVar7 = strpbrk(__s,pcVar5 + 1);\n          if (pcVar7 == (char *)0x0) {\n            uVar13 = 0xffffffffffffffff;\n            pcVar7 = __s;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar7;\n              pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');\n            pcVar7 = pcVar6 + ~uVar13;\n          }\n          if (__s != pcVar7) {\n            if (__s < pcVar7) {\n              local_74 = (int)pcVar6[1] - 0x30;\n              if (local_74 < 10) {\n                do {\n                  __s = __s + 1;\n                  if (__s == pcVar7) goto LAB_00137584;\n                  if (9 < (int)*__s - 0x30U) {\n                    iVar15 = 4;\n                    goto LAB_00137c65;\n                  }\n                  local_74 = *__s + -0x30 + local_74 * 10;\n                } while ((int)local_74 < 0x10000);\n                iVar15 = 4;\n              }\n              else {\n                iVar15 = 4;\n              }\n              goto LAB_00137c65;\n            }\n            local_74 = 0;\n          }\n        }\nLAB_00137584:\n        local_80 = (char *)0x0;\n        local_88 = (char *)0x0;\n        pcVar6 = pcVar7;\n        if (*pcVar7 == '/') {\n          local_88 = pcVar7 + 1;\n          pcVar6 = strpbrk(local_88,pcVar5 + 2);\n          local_80 = pcVar6;\n          if (pcVar6 == (char *)0x0) {\n            uVar13 = 0xffffffffffffffff;\n            pcVar6 = local_88;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');\n            pcVar6 = pcVar7 + ~uVar13;\n            local_80 = pcVar6;\n          }\n        }\n        local_90 = pcVar5 + 3;\n        uVar2 = (&DAT_0016e354)[(ulong)uVar4 * 6];\n        if ((uVar2 & 2) == 0) {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n        }\n        else {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n          pcVar7 = pcVar6;\n          if (*pcVar6 == ';') {\n            local_70 = pcVar6 + 1;\n            pcVar7 = strpbrk(local_70,local_90);\n            local_60 = pcVar7;\n            if (pcVar7 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar7 = local_70;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar7;\n                pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar7 = pcVar6 + ~uVar13;\n              local_60 = pcVar7;\n            }\n          }\n          local_90 = pcVar5 + 4;\n          pcVar6 = pcVar7;\n        }\n        if ((uVar2 & 4) == 0) {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n        }\n        else {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n          pcVar5 = pcVar6;\n          if (*pcVar6 == '?') {\n            local_b0 = pcVar6 + 1;\n            pcVar5 = strpbrk(local_b0,local_90);\n            local_58 = pcVar5;\n            if (pcVar5 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_b0;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar5 = pcVar6 + ~uVar13;\n              local_58 = pcVar5;\n            }\n          }\n          local_90 = local_90 + 1;\n          pcVar6 = pcVar5;\n        }\n        if ((uVar2 & 8) == 0) {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n        }\n        else {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n          if (*pcVar6 == '#') {\n            local_68 = pcVar6 + 1;\n            local_50 = strpbrk(local_68,local_90);\n            if (local_50 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_68;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              local_50 = pcVar6 + ~uVar13;\n            }\n          }\n        }\n        if (pcVar11 == pcVar14) {\n          pcVar5 = (char *)0x0;\n          uVar8 = 0;\nLAB_001379c6:\n          piVar9 = (int *)FUN_0014967c(1,0x60);\n          piVar9[2] = uVar4;\n          uVar10 = FUN_0013a40c(local_a8,local_a0);\n          *(undefined8 *)(piVar9 + 4) = uVar10;\n          piVar9[6] = local_74;\n          *(undefined8 *)(piVar9 + 0x14) = uVar8;\n          *(char **)(piVar9 + 0x16) = pcVar5;\n          pcVar11 = (char *)FUN_0013a40c(local_88,local_80);\n          *(char **)(piVar9 + 8) = pcVar11;\n          uVar13 = 0xffffffffffffffff;\n          pcVar14 = pcVar11;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar3 = *pcVar14;\n            pcVar14 = pcVar14 + (ulong)bVar17 * -2 + 1;\n          } while (cVar3 != '\0');\n          pcVar14 = pcVar11 + (~uVar13 - 1);\n          pcVar5 = pcVar11;\n          if (pcVar11 < pcVar14) {\n            pcVar7 = pcVar11;\n            pcVar6 = pcVar11;\n            do {\n              cVar3 = *pcVar11;\n              if (cVar3 == '.') {\n                cVar1 = pcVar11[1];\n                if ((cVar1 == '/') || (cVar1 == '\0')) {\n                  pcVar11 = pcVar11 + 2;\n                }\n                else {\n                  if ((cVar1 != '.') || ((pcVar11[2] != '/' && (pcVar11[2] != '\0'))))\n                  goto LAB_00137e1d;\n                  if (pcVar6 < pcVar7) {\n                    pcVar5 = pcVar7 + -1;\n                    if (pcVar6 < pcVar5) {\n                      cVar3 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar3 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar3 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar5 = pcVar7;\n                    if (uVar4 - 2 < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }\n                  pcVar11 = pcVar11 + 3;\n                  pcVar7 = pcVar5;\n                }\n              }\n              else {\nLAB_00137e1d:\n                if (pcVar7 == pcVar11) {\n                  pcVar5 = pcVar7;\n                  if (pcVar14 <= pcVar7) break;\n                  cVar3 = *pcVar7;\n                  while (cVar3 != '/') {\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar14;\n                    if (pcVar14 == pcVar5) goto LAB_00137d7b;\n                    cVar3 = *pcVar5;\n                  }\n                  pcVar11 = pcVar5 + 1;\n                  pcVar7 = pcVar5 + 1;\n                }\n                else {\n                  pcVar5 = pcVar11;\n                  if (pcVar14 <= pcVar11) break;\n                  while (cVar3 != '/') {\n                    pcVar11 = pcVar11 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar3;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar14;\n                    if (pcVar14 == pcVar11) goto LAB_00137d7b;\n                    cVar3 = *pcVar11;\n                  }\n                  *pcVar7 = *pcVar11;\n                  pcVar11 = pcVar11 + 1;\n                  pcVar7 = pcVar7 + 1;\n                }\n              }\n              pcVar5 = pcVar11;\n            } while (pcVar11 < pcVar14);\nLAB_00137d7b:\n            pcVar11 = pcVar7;\n            if (pcVar5 != pcVar7) {\n              *pcVar7 = '\0';\n            }\n          }\n          pcVar14 = *(char **)(piVar9 + 8);\n          pcVar6 = strrchr(pcVar14,0x2f);\n          if (pcVar6 == (char *)0x0) {\n            uVar8 = FUN_001496d9(&DAT_0015ea35);\n            *(undefined8 *)(piVar9 + 0x10) = uVar8;\n            uVar8 = FUN_001496d9(pcVar14);\n            *(undefined8 *)(piVar9 + 0x12) = uVar8;\n          }\n          else {\n            uVar8 = FUN_0013a40c(pcVar14,pcVar6);\n            *(undefined8 *)(piVar9 + 0x10) = uVar8;\n            uVar8 = FUN_001496d9(pcVar6 + 1);\n            *(undefined8 *)(piVar9 + 0x12) = uVar8;\n          }\n          FUN_00135c58(*(undefined8 *)(piVar9 + 0x10));\n          FUN_00135c58(*(undefined8 *)(piVar9 + 0x12));\n          pcVar14 = *(char **)(piVar9 + 4);\n          cVar3 = *pcVar14;\n          if (cVar3 == '\0') {\n            bVar17 = 0;\n          }\n          else {\n            bVar17 = 0;\n            do {\n              if ((int)cVar3 - 0x41U < 0x1a) {\n                *pcVar14 = cVar3 + ' ';\n                bVar17 = 1;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            } while (cVar3 != '\0');\n          }\n          pcVar14 = *(char **)(piVar9 + 4);\n          pcVar6 = strchr(pcVar14,0x25);\n          if (pcVar6 != (char *)0x0) {\n            FUN_00135c58(pcVar14);\n            pcVar14 = *(char **)(piVar9 + 4);\n            cVar3 = *pcVar14;\n            while (cVar3 != '\0') {\n              if ((-1 < cVar3) && ((cVar3 < ' ' || (cVar3 == '\x7f')))) {\n                FUN_0013629a(piVar9);\n                iVar15 = 3;\n                goto LAB_00137c65;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            }\n            bVar17 = param_3 != 0 & DAT_00177606;\n            if (bVar17 == 0) {\n              bVar17 = 1;\n            }\n            else {\n              lVar12 = FUN_0013eaa4(param_3);\n              if (lVar12 != 0) {\n                free(*(void **)(piVar9 + 4));\n                *(long *)(piVar9 + 4) = lVar12;\n              }\n            }\n          }\n          if (local_70 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_70,local_60);\n            *(undefined8 *)(piVar9 + 10) = uVar8;\n          }\n          if (local_b0 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_b0,local_58);\n            *(undefined8 *)(piVar9 + 0xc) = uVar8;\n          }\n          if (local_68 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_68,local_50);\n            *(undefined8 *)(piVar9 + 0xe) = uVar8;\n          }\n          param_2 = piVar9;\n          if ((((DAT_00177606 == 0) && (pcVar5 == pcVar11)) && (*(long *)(piVar9 + 0xe) == 0)) &&\n             ((local_88 != local_80 && (bVar17 == 0)))) {\n            if (local_b8 == param_1) {\n              uVar8 = FUN_001496d9(param_1);\n              *(undefined8 *)piVar9 = uVar8;\n            }\n            else {\n              *(void **)piVar9 = local_b8;\n            }\n          }\n          else {\n            uVar8 = FUN_00137051(piVar9,0);\n            *(undefined8 *)piVar9 = uVar8;\n            if (local_b8 != param_1) {\n              free(local_b8);\n            }\n          }\n          goto LAB_00137c95;\n        }\n        pcVar14 = pcVar14 + -1;\n        if (pcVar14 == pcVar11) {\n          iVar15 = 5;\n        }\n        else {\n          pcVar6 = (char *)memchr(pcVar11,0x3a,(long)pcVar14 - (long)pcVar11);\n          if (pcVar11 != pcVar6) {\n            pcVar5 = pcVar6;\n            if (pcVar6 != (char *)0x0) {\n              pcVar5 = (char *)FUN_0013a40c(pcVar6 + 1,pcVar14);\n              FUN_00135c58(pcVar5);\n              pcVar14 = pcVar6;\n            }\n            uVar8 = FUN_0013a40c(pcVar11,pcVar14);\n            FUN_00135c58(uVar8);\n            goto LAB_001379c6;\n          }\n          iVar15 = 5;\n        }\n      }\n    }\nLAB_00137c65:\n    if ((local_b8 != (void *)0x0) && (local_b8 != param_1)) {\n      free(local_b8);\n    }\n  }\n  if (param_2 != (int *)0x0) {\n    *param_2 = iVar15;\n    param_2 = (int *)0x0;\n  }\nLAB_00137c95:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return param_2;\n  }\n                    \n  __stack_chk_fail();\n}" (primitive_type "int") (pointer_declarator "* FUN_00137430(void *param_1,int *param_2,long param_3,char param_4)" (* "*") (function_declarator "FUN_00137430(void *param_1,int *param_2,long param_3,char param_4)" (identifier "FUN_00137430") (parameter_list "(void *param_1,int *param_2,long param_3,char param_4)" (( "(") (parameter_declaration "void *param_1" (primitive_type "void") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "int *param_2" (primitive_type "int") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "long param_3" (sized_type_specifier "long" (long "long")) (identifier "param_3")) (, ",") (parameter_declaration "char param_4" (primitive_type "char") (identifier "param_4")) () ")")))) (compound_statement "{\n  char cVar1;\n  uint uVar2;\n  char cVar3;\n  uint uVar4;\n  char *pcVar5;\n  char *pcVar6;\n  char *pcVar7;\n  undefined8 uVar8;\n  int *piVar9;\n  undefined8 uVar10;\n  char *pcVar11;\n  long lVar12;\n  ulong uVar13;\n  char *pcVar14;\n  int iVar15;\n  void *pvVar16;\n  byte bVar17;\n  char *__s;\n  long in_FS_OFFSET;\n  void *local_b8;\n  char *local_b0;\n  char *local_a8;\n  char *local_a0;\n  char *local_90;\n  char *local_88;\n  char *local_80;\n  uint local_74;\n  char *local_70;\n  char *local_68;\n  char *local_60;\n  char *local_58;\n  char *local_50;\n  void *local_48;\n  long local_40;\n  \n  bVar17 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  uVar4 = FUN_00135f73();\n  if (uVar4 == 4) {\n    cVar3 = FUN_00136004(param_1);\n    iVar15 = (cVar3 == '\0') + 1;\n  }\n  else {\n    if ((param_3 == 0) || (*(char *)(param_3 + 0x18) == '\0')) {\nLAB_001374b5:\n      local_b8 = param_1;\n      if (param_4 != '\0') {\n        local_b8 = (void *)FUN_00135ae4(param_1);\n      }\n    }\n    else {\n      local_48 = (void *)0x0;\n      pvVar16 = *(void **)(param_3 + 0x10);\n      if (*(void **)(param_3 + 0x10) == (void *)0x0) {\n        pvVar16 = param_1;\n      }\n      cVar3 = FUN_0013e9b4(param_3,pvVar16,&local_48);\n      *(char *)(param_3 + 0x18) = cVar3;\n      if (cVar3 == '\0') goto LAB_001374b5;\n      free(*(void **)(param_3 + 0x10));\n      *(undefined8 *)(param_3 + 0x10) = 0;\n      uVar8 = FUN_001496d9(param_1);\n      *(undefined8 *)(param_3 + 0x10) = uVar8;\n      local_b8 = (void *)FUN_00135ae4(local_48);\n      if (local_48 != local_b8) {\n        free(local_48);\n      }\n    }\n    uVar13 = 0xffffffffffffffff;\n    pcVar11 = (&PTR_s_http____0016e348)[(ulong)uVar4 * 3];\n    do {\n      if (uVar13 == 0) break;\n      uVar13 = uVar13 - 1;\n      cVar3 = *pcVar11;\n      pcVar11 = pcVar11 + (ulong)bVar17 * -2 + 1;\n    } while (cVar3 != '\0');\n    pcVar11 = (char *)((long)local_b8 + (~uVar13 - 1));\n    pcVar5 = strpbrk(pcVar11,"@/?#;");\n    pcVar14 = pcVar11;\n    if ((pcVar5 != (char *)0x0) && (pcVar14 = pcVar5 + 1, *pcVar5 != '@')) {\n      pcVar14 = pcVar11;\n    }\n    pcVar5 = (char *)FUN_00135653(uVar4);\n    if (*pcVar14 == '[') {\n      local_a8 = pcVar14 + 1;\n      local_a0 = strchr(local_a8,0x5d);\n      if (local_a0 == (char *)0x0) {\n        iVar15 = 6;\n      }\n      else {\n        cVar3 = FUN_0011c7c7(local_a8,local_a0);\n        if (cVar3 == '\0') {\n          iVar15 = 8;\n        }\n        else {\n          pcVar6 = local_a0 + 1;\n          pcVar7 = strchr(pcVar5,(int)local_a0[1]);\n          if (pcVar7 != (char *)0x0) goto LAB_00137554;\n          iVar15 = 3;\n        }\n      }\n    }\n    else {\n      pcVar6 = strpbrk(pcVar14,pcVar5);\n      local_a8 = pcVar14;\n      local_a0 = pcVar6;\n      if (pcVar6 == (char *)0x0) {\n        uVar13 = 0xffffffffffffffff;\n        pcVar6 = pcVar14;\n        do {\n          if (uVar13 == 0) break;\n          uVar13 = uVar13 - 1;\n          cVar3 = *pcVar6;\n          pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n        } while (cVar3 != '\0');\n        pcVar6 = pcVar14 + (~uVar13 - 1);\n        local_a0 = pcVar6;\n      }\nLAB_00137554:\n      if (local_a8 == local_a0) {\n        iVar15 = 3;\n      }\n      else {\n        local_74 = *(uint *)(&DAT_0016e350 + (ulong)uVar4 * 0x18);\n        pcVar7 = pcVar6;\n        if (*pcVar6 == ':') {\n          __s = pcVar6 + 1;\n          pcVar7 = strpbrk(__s,pcVar5 + 1);\n          if (pcVar7 == (char *)0x0) {\n            uVar13 = 0xffffffffffffffff;\n            pcVar7 = __s;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar7;\n              pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');\n            pcVar7 = pcVar6 + ~uVar13;\n          }\n          if (__s != pcVar7) {\n            if (__s < pcVar7) {\n              local_74 = (int)pcVar6[1] - 0x30;\n              if (local_74 < 10) {\n                do {\n                  __s = __s + 1;\n                  if (__s == pcVar7) goto LAB_00137584;\n                  if (9 < (int)*__s - 0x30U) {\n                    iVar15 = 4;\n                    goto LAB_00137c65;\n                  }\n                  local_74 = *__s + -0x30 + local_74 * 10;\n                } while ((int)local_74 < 0x10000);\n                iVar15 = 4;\n              }\n              else {\n                iVar15 = 4;\n              }\n              goto LAB_00137c65;\n            }\n            local_74 = 0;\n          }\n        }\nLAB_00137584:\n        local_80 = (char *)0x0;\n        local_88 = (char *)0x0;\n        pcVar6 = pcVar7;\n        if (*pcVar7 == '/') {\n          local_88 = pcVar7 + 1;\n          pcVar6 = strpbrk(local_88,pcVar5 + 2);\n          local_80 = pcVar6;\n          if (pcVar6 == (char *)0x0) {\n            uVar13 = 0xffffffffffffffff;\n            pcVar6 = local_88;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');\n            pcVar6 = pcVar7 + ~uVar13;\n            local_80 = pcVar6;\n          }\n        }\n        local_90 = pcVar5 + 3;\n        uVar2 = (&DAT_0016e354)[(ulong)uVar4 * 6];\n        if ((uVar2 & 2) == 0) {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n        }\n        else {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n          pcVar7 = pcVar6;\n          if (*pcVar6 == ';') {\n            local_70 = pcVar6 + 1;\n            pcVar7 = strpbrk(local_70,local_90);\n            local_60 = pcVar7;\n            if (pcVar7 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar7 = local_70;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar7;\n                pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar7 = pcVar6 + ~uVar13;\n              local_60 = pcVar7;\n            }\n          }\n          local_90 = pcVar5 + 4;\n          pcVar6 = pcVar7;\n        }\n        if ((uVar2 & 4) == 0) {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n        }\n        else {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n          pcVar5 = pcVar6;\n          if (*pcVar6 == '?') {\n            local_b0 = pcVar6 + 1;\n            pcVar5 = strpbrk(local_b0,local_90);\n            local_58 = pcVar5;\n            if (pcVar5 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_b0;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar5 = pcVar6 + ~uVar13;\n              local_58 = pcVar5;\n            }\n          }\n          local_90 = local_90 + 1;\n          pcVar6 = pcVar5;\n        }\n        if ((uVar2 & 8) == 0) {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n        }\n        else {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n          if (*pcVar6 == '#') {\n            local_68 = pcVar6 + 1;\n            local_50 = strpbrk(local_68,local_90);\n            if (local_50 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_68;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              local_50 = pcVar6 + ~uVar13;\n            }\n          }\n        }\n        if (pcVar11 == pcVar14) {\n          pcVar5 = (char *)0x0;\n          uVar8 = 0;\nLAB_001379c6:\n          piVar9 = (int *)FUN_0014967c(1,0x60);\n          piVar9[2] = uVar4;\n          uVar10 = FUN_0013a40c(local_a8,local_a0);\n          *(undefined8 *)(piVar9 + 4) = uVar10;\n          piVar9[6] = local_74;\n          *(undefined8 *)(piVar9 + 0x14) = uVar8;\n          *(char **)(piVar9 + 0x16) = pcVar5;\n          pcVar11 = (char *)FUN_0013a40c(local_88,local_80);\n          *(char **)(piVar9 + 8) = pcVar11;\n          uVar13 = 0xffffffffffffffff;\n          pcVar14 = pcVar11;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar3 = *pcVar14;\n            pcVar14 = pcVar14 + (ulong)bVar17 * -2 + 1;\n          } while (cVar3 != '\0');\n          pcVar14 = pcVar11 + (~uVar13 - 1);\n          pcVar5 = pcVar11;\n          if (pcVar11 < pcVar14) {\n            pcVar7 = pcVar11;\n            pcVar6 = pcVar11;\n            do {\n              cVar3 = *pcVar11;\n              if (cVar3 == '.') {\n                cVar1 = pcVar11[1];\n                if ((cVar1 == '/') || (cVar1 == '\0')) {\n                  pcVar11 = pcVar11 + 2;\n                }\n                else {\n                  if ((cVar1 != '.') || ((pcVar11[2] != '/' && (pcVar11[2] != '\0'))))\n                  goto LAB_00137e1d;\n                  if (pcVar6 < pcVar7) {\n                    pcVar5 = pcVar7 + -1;\n                    if (pcVar6 < pcVar5) {\n                      cVar3 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar3 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar3 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar5 = pcVar7;\n                    if (uVar4 - 2 < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }\n                  pcVar11 = pcVar11 + 3;\n                  pcVar7 = pcVar5;\n                }\n              }\n              else {\nLAB_00137e1d:\n                if (pcVar7 == pcVar11) {\n                  pcVar5 = pcVar7;\n                  if (pcVar14 <= pcVar7) break;\n                  cVar3 = *pcVar7;\n                  while (cVar3 != '/') {\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar14;\n                    if (pcVar14 == pcVar5) goto LAB_00137d7b;\n                    cVar3 = *pcVar5;\n                  }\n                  pcVar11 = pcVar5 + 1;\n                  pcVar7 = pcVar5 + 1;\n                }\n                else {\n                  pcVar5 = pcVar11;\n                  if (pcVar14 <= pcVar11) break;\n                  while (cVar3 != '/') {\n                    pcVar11 = pcVar11 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar3;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar14;\n                    if (pcVar14 == pcVar11) goto LAB_00137d7b;\n                    cVar3 = *pcVar11;\n                  }\n                  *pcVar7 = *pcVar11;\n                  pcVar11 = pcVar11 + 1;\n                  pcVar7 = pcVar7 + 1;\n                }\n              }\n              pcVar5 = pcVar11;\n            } while (pcVar11 < pcVar14);\nLAB_00137d7b:\n            pcVar11 = pcVar7;\n            if (pcVar5 != pcVar7) {\n              *pcVar7 = '\0';\n            }\n          }\n          pcVar14 = *(char **)(piVar9 + 8);\n          pcVar6 = strrchr(pcVar14,0x2f);\n          if (pcVar6 == (char *)0x0) {\n            uVar8 = FUN_001496d9(&DAT_0015ea35);\n            *(undefined8 *)(piVar9 + 0x10) = uVar8;\n            uVar8 = FUN_001496d9(pcVar14);\n            *(undefined8 *)(piVar9 + 0x12) = uVar8;\n          }\n          else {\n            uVar8 = FUN_0013a40c(pcVar14,pcVar6);\n            *(undefined8 *)(piVar9 + 0x10) = uVar8;\n            uVar8 = FUN_001496d9(pcVar6 + 1);\n            *(undefined8 *)(piVar9 + 0x12) = uVar8;\n          }\n          FUN_00135c58(*(undefined8 *)(piVar9 + 0x10));\n          FUN_00135c58(*(undefined8 *)(piVar9 + 0x12));\n          pcVar14 = *(char **)(piVar9 + 4);\n          cVar3 = *pcVar14;\n          if (cVar3 == '\0') {\n            bVar17 = 0;\n          }\n          else {\n            bVar17 = 0;\n            do {\n              if ((int)cVar3 - 0x41U < 0x1a) {\n                *pcVar14 = cVar3 + ' ';\n                bVar17 = 1;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            } while (cVar3 != '\0');\n          }\n          pcVar14 = *(char **)(piVar9 + 4);\n          pcVar6 = strchr(pcVar14,0x25);\n          if (pcVar6 != (char *)0x0) {\n            FUN_00135c58(pcVar14);\n            pcVar14 = *(char **)(piVar9 + 4);\n            cVar3 = *pcVar14;\n            while (cVar3 != '\0') {\n              if ((-1 < cVar3) && ((cVar3 < ' ' || (cVar3 == '\x7f')))) {\n                FUN_0013629a(piVar9);\n                iVar15 = 3;\n                goto LAB_00137c65;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            }\n            bVar17 = param_3 != 0 & DAT_00177606;\n            if (bVar17 == 0) {\n              bVar17 = 1;\n            }\n            else {\n              lVar12 = FUN_0013eaa4(param_3);\n              if (lVar12 != 0) {\n                free(*(void **)(piVar9 + 4));\n                *(long *)(piVar9 + 4) = lVar12;\n              }\n            }\n          }\n          if (local_70 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_70,local_60);\n            *(undefined8 *)(piVar9 + 10) = uVar8;\n          }\n          if (local_b0 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_b0,local_58);\n            *(undefined8 *)(piVar9 + 0xc) = uVar8;\n          }\n          if (local_68 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_68,local_50);\n            *(undefined8 *)(piVar9 + 0xe) = uVar8;\n          }\n          param_2 = piVar9;\n          if ((((DAT_00177606 == 0) && (pcVar5 == pcVar11)) && (*(long *)(piVar9 + 0xe) == 0)) &&\n             ((local_88 != local_80 && (bVar17 == 0)))) {\n            if (local_b8 == param_1) {\n              uVar8 = FUN_001496d9(param_1);\n              *(undefined8 *)piVar9 = uVar8;\n            }\n            else {\n              *(void **)piVar9 = local_b8;\n            }\n          }\n          else {\n            uVar8 = FUN_00137051(piVar9,0);\n            *(undefined8 *)piVar9 = uVar8;\n            if (local_b8 != param_1) {\n              free(local_b8);\n            }\n          }\n          goto LAB_00137c95;\n        }\n        pcVar14 = pcVar14 + -1;\n        if (pcVar14 == pcVar11) {\n          iVar15 = 5;\n        }\n        else {\n          pcVar6 = (char *)memchr(pcVar11,0x3a,(long)pcVar14 - (long)pcVar11);\n          if (pcVar11 != pcVar6) {\n            pcVar5 = pcVar6;\n            if (pcVar6 != (char *)0x0) {\n              pcVar5 = (char *)FUN_0013a40c(pcVar6 + 1,pcVar14);\n              FUN_00135c58(pcVar5);\n              pcVar14 = pcVar6;\n            }\n            uVar8 = FUN_0013a40c(pcVar11,pcVar14);\n            FUN_00135c58(uVar8);\n            goto LAB_001379c6;\n          }\n          iVar15 = 5;\n        }\n      }\n    }\nLAB_00137c65:\n    if ((local_b8 != (void *)0x0) && (local_b8 != param_1)) {\n      free(local_b8);\n    }\n  }\n  if (param_2 != (int *)0x0) {\n    *param_2 = iVar15;\n    param_2 = (int *)0x0;\n  }\nLAB_00137c95:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return param_2;\n  }\n                    \n  __stack_chk_fail();\n}" ({ "{") (declaration "char cVar1;" (primitive_type "char") (identifier "cVar1") (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "char cVar3;" (primitive_type "char") (identifier "cVar3") (; ";")) (declaration "uint uVar4;" (type_identifier "uint") (identifier "uVar4") (; ";")) (declaration "char *pcVar5;" (primitive_type "char") (pointer_declarator "*pcVar5" (* "*") (identifier "pcVar5")) (; ";")) (declaration "char *pcVar6;" (primitive_type "char") (pointer_declarator "*pcVar6" (* "*") (identifier "pcVar6")) (; ";")) (declaration "char *pcVar7;" (primitive_type "char") (pointer_declarator "*pcVar7" (* "*") (identifier "pcVar7")) (; ";")) (declaration "undefined8 uVar8;" (type_identifier "undefined8") (identifier "uVar8") (; ";")) (declaration "int *piVar9;" (primitive_type "int") (pointer_declarator "*piVar9" (* "*") (identifier "piVar9")) (; ";")) (declaration "undefined8 uVar10;" (type_identifier "undefined8") (identifier "uVar10") (; ";")) (declaration "char *pcVar11;" (primitive_type "char") (pointer_declarator "*pcVar11" (* "*") (identifier "pcVar11")) (; ";")) (declaration "long lVar12;" (sized_type_specifier "long" (long "long")) (identifier "lVar12") (; ";")) (declaration "ulong uVar13;" (type_identifier "ulong") (identifier "uVar13") (; ";")) (declaration "char *pcVar14;" (primitive_type "char") (pointer_declarator "*pcVar14" (* "*") (identifier "pcVar14")) (; ";")) (declaration "int iVar15;" (primitive_type "int") (identifier "iVar15") (; ";")) (declaration "void *pvVar16;" (primitive_type "void") (pointer_declarator "*pvVar16" (* "*") (identifier "pvVar16")) (; ";")) (declaration "byte bVar17;" (type_identifier "byte") (identifier "bVar17") (; ";")) (declaration "char *__s;" (primitive_type "char") (pointer_declarator "*__s" (* "*") (identifier "__s")) (; ";")) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" (long "long")) (identifier "in_FS_OFFSET") (; ";")) (declaration "void *local_b8;" (primitive_type "void") (pointer_declarator "*local_b8" (* "*") (identifier "local_b8")) (; ";")) (declaration "char *local_b0;" (primitive_type "char") (pointer_declarator "*local_b0" (* "*") (identifier "local_b0")) (; ";")) (declaration "char *local_a8;" (primitive_type "char") (pointer_declarator "*local_a8" (* "*") (identifier "local_a8")) (; ";")) (declaration "char *local_a0;" (primitive_type "char") (pointer_declarator "*local_a0" (* "*") (identifier "local_a0")) (; ";")) (declaration "char *local_90;" (primitive_type "char") (pointer_declarator "*local_90" (* "*") (identifier "local_90")) (; ";")) (declaration "char *local_88;" (primitive_type "char") (pointer_declarator "*local_88" (* "*") (identifier "local_88")) (; ";")) (declaration "char *local_80;" (primitive_type "char") (pointer_declarator "*local_80" (* "*") (identifier "local_80")) (; ";")) (declaration "uint local_74;" (type_identifier "uint") (identifier "local_74") (; ";")) (declaration "char *local_70;" (primitive_type "char") (pointer_declarator "*local_70" (* "*") (identifier "local_70")) (; ";")) (declaration "char *local_68;" (primitive_type "char") (pointer_declarator "*local_68" (* "*") (identifier "local_68")) (; ";")) (declaration "char *local_60;" (primitive_type "char") (pointer_declarator "*local_60" (* "*") (identifier "local_60")) (; ";")) (declaration "char *local_58;" (primitive_type "char") (pointer_declarator "*local_58" (* "*") (identifier "local_58")) (; ";")) (declaration "char *local_50;" (primitive_type "char") (pointer_declarator "*local_50" (* "*") (identifier "local_50")) (; ";")) (declaration "void *local_48;" (primitive_type "void") (pointer_declarator "*local_48" (* "*") (identifier "local_48")) (; ";")) (declaration "long local_40;" (sized_type_specifier "long" (long "long")) (identifier "local_40") (; ";")) (expression_statement "bVar17 = 0;" (assignment_expression "bVar17 = 0" (identifier "bVar17") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(long *)(in_FS_OFFSET + 0x28)" (identifier "local_40") (= "=") (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" (* "*") (cast_expression "(long *)(in_FS_OFFSET + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_FS_OFFSET + 0x28)" (( "(") (binary_expression "in_FS_OFFSET + 0x28" (identifier "in_FS_OFFSET") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "uVar4 = FUN_00135f73();" (assignment_expression "uVar4 = FUN_00135f73()" (identifier "uVar4") (= "=") (call_expression "FUN_00135f73()" (identifier "FUN_00135f73") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (uVar4 == 4) {\n    cVar3 = FUN_00136004(param_1);\n    iVar15 = (cVar3 == '\0') + 1;\n  }\n  else {\n    if ((param_3 == 0) || (*(char *)(param_3 + 0x18) == '\0')) {\nLAB_001374b5:\n      local_b8 = param_1;\n      if (param_4 != '\0') {\n        local_b8 = (void *)FUN_00135ae4(param_1);\n      }\n    }\n    else {\n      local_48 = (void *)0x0;\n      pvVar16 = *(void **)(param_3 + 0x10);\n      if (*(void **)(param_3 + 0x10) == (void *)0x0) {\n        pvVar16 = param_1;\n      }\n      cVar3 = FUN_0013e9b4(param_3,pvVar16,&local_48);\n      *(char *)(param_3 + 0x18) = cVar3;\n      if (cVar3 == '\0') goto LAB_001374b5;\n      free(*(void **)(param_3 + 0x10));\n      *(undefined8 *)(param_3 + 0x10) = 0;\n      uVar8 = FUN_001496d9(param_1);\n      *(undefined8 *)(param_3 + 0x10) = uVar8;\n      local_b8 = (void *)FUN_00135ae4(local_48);\n      if (local_48 != local_b8) {\n        free(local_48);\n      }\n    }\n    uVar13 = 0xffffffffffffffff;\n    pcVar11 = (&PTR_s_http____0016e348)[(ulong)uVar4 * 3];\n    do {\n      if (uVar13 == 0) break;\n      uVar13 = uVar13 - 1;\n      cVar3 = *pcVar11;\n      pcVar11 = pcVar11 + (ulong)bVar17 * -2 + 1;\n    } while (cVar3 != '\0');\n    pcVar11 = (char *)((long)local_b8 + (~uVar13 - 1));\n    pcVar5 = strpbrk(pcVar11,"@/?#;");\n    pcVar14 = pcVar11;\n    if ((pcVar5 != (char *)0x0) && (pcVar14 = pcVar5 + 1, *pcVar5 != '@')) {\n      pcVar14 = pcVar11;\n    }\n    pcVar5 = (char *)FUN_00135653(uVar4);\n    if (*pcVar14 == '[') {\n      local_a8 = pcVar14 + 1;\n      local_a0 = strchr(local_a8,0x5d);\n      if (local_a0 == (char *)0x0) {\n        iVar15 = 6;\n      }\n      else {\n        cVar3 = FUN_0011c7c7(local_a8,local_a0);\n        if (cVar3 == '\0') {\n          iVar15 = 8;\n        }\n        else {\n          pcVar6 = local_a0 + 1;\n          pcVar7 = strchr(pcVar5,(int)local_a0[1]);\n          if (pcVar7 != (char *)0x0) goto LAB_00137554;\n          iVar15 = 3;\n        }\n      }\n    }\n    else {\n      pcVar6 = strpbrk(pcVar14,pcVar5);\n      local_a8 = pcVar14;\n      local_a0 = pcVar6;\n      if (pcVar6 == (char *)0x0) {\n        uVar13 = 0xffffffffffffffff;\n        pcVar6 = pcVar14;\n        do {\n          if (uVar13 == 0) break;\n          uVar13 = uVar13 - 1;\n          cVar3 = *pcVar6;\n          pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n        } while (cVar3 != '\0');\n        pcVar6 = pcVar14 + (~uVar13 - 1);\n        local_a0 = pcVar6;\n      }\nLAB_00137554:\n      if (local_a8 == local_a0) {\n        iVar15 = 3;\n      }\n      else {\n        local_74 = *(uint *)(&DAT_0016e350 + (ulong)uVar4 * 0x18);\n        pcVar7 = pcVar6;\n        if (*pcVar6 == ':') {\n          __s = pcVar6 + 1;\n          pcVar7 = strpbrk(__s,pcVar5 + 1);\n          if (pcVar7 == (char *)0x0) {\n            uVar13 = 0xffffffffffffffff;\n            pcVar7 = __s;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar7;\n              pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');\n            pcVar7 = pcVar6 + ~uVar13;\n          }\n          if (__s != pcVar7) {\n            if (__s < pcVar7) {\n              local_74 = (int)pcVar6[1] - 0x30;\n              if (local_74 < 10) {\n                do {\n                  __s = __s + 1;\n                  if (__s == pcVar7) goto LAB_00137584;\n                  if (9 < (int)*__s - 0x30U) {\n                    iVar15 = 4;\n                    goto LAB_00137c65;\n                  }\n                  local_74 = *__s + -0x30 + local_74 * 10;\n                } while ((int)local_74 < 0x10000);\n                iVar15 = 4;\n              }\n              else {\n                iVar15 = 4;\n              }\n              goto LAB_00137c65;\n            }\n            local_74 = 0;\n          }\n        }\nLAB_00137584:\n        local_80 = (char *)0x0;\n        local_88 = (char *)0x0;\n        pcVar6 = pcVar7;\n        if (*pcVar7 == '/') {\n          local_88 = pcVar7 + 1;\n          pcVar6 = strpbrk(local_88,pcVar5 + 2);\n          local_80 = pcVar6;\n          if (pcVar6 == (char *)0x0) {\n            uVar13 = 0xffffffffffffffff;\n            pcVar6 = local_88;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');\n            pcVar6 = pcVar7 + ~uVar13;\n            local_80 = pcVar6;\n          }\n        }\n        local_90 = pcVar5 + 3;\n        uVar2 = (&DAT_0016e354)[(ulong)uVar4 * 6];\n        if ((uVar2 & 2) == 0) {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n        }\n        else {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n          pcVar7 = pcVar6;\n          if (*pcVar6 == ';') {\n            local_70 = pcVar6 + 1;\n            pcVar7 = strpbrk(local_70,local_90);\n            local_60 = pcVar7;\n            if (pcVar7 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar7 = local_70;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar7;\n                pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar7 = pcVar6 + ~uVar13;\n              local_60 = pcVar7;\n            }\n          }\n          local_90 = pcVar5 + 4;\n          pcVar6 = pcVar7;\n        }\n        if ((uVar2 & 4) == 0) {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n        }\n        else {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n          pcVar5 = pcVar6;\n          if (*pcVar6 == '?') {\n            local_b0 = pcVar6 + 1;\n            pcVar5 = strpbrk(local_b0,local_90);\n            local_58 = pcVar5;\n            if (pcVar5 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_b0;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar5 = pcVar6 + ~uVar13;\n              local_58 = pcVar5;\n            }\n          }\n          local_90 = local_90 + 1;\n          pcVar6 = pcVar5;\n        }\n        if ((uVar2 & 8) == 0) {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n        }\n        else {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n          if (*pcVar6 == '#') {\n            local_68 = pcVar6 + 1;\n            local_50 = strpbrk(local_68,local_90);\n            if (local_50 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_68;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              local_50 = pcVar6 + ~uVar13;\n            }\n          }\n        }\n        if (pcVar11 == pcVar14) {\n          pcVar5 = (char *)0x0;\n          uVar8 = 0;\nLAB_001379c6:\n          piVar9 = (int *)FUN_0014967c(1,0x60);\n          piVar9[2] = uVar4;\n          uVar10 = FUN_0013a40c(local_a8,local_a0);\n          *(undefined8 *)(piVar9 + 4) = uVar10;\n          piVar9[6] = local_74;\n          *(undefined8 *)(piVar9 + 0x14) = uVar8;\n          *(char **)(piVar9 + 0x16) = pcVar5;\n          pcVar11 = (char *)FUN_0013a40c(local_88,local_80);\n          *(char **)(piVar9 + 8) = pcVar11;\n          uVar13 = 0xffffffffffffffff;\n          pcVar14 = pcVar11;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar3 = *pcVar14;\n            pcVar14 = pcVar14 + (ulong)bVar17 * -2 + 1;\n          } while (cVar3 != '\0');\n          pcVar14 = pcVar11 + (~uVar13 - 1);\n          pcVar5 = pcVar11;\n          if (pcVar11 < pcVar14) {\n            pcVar7 = pcVar11;\n            pcVar6 = pcVar11;\n            do {\n              cVar3 = *pcVar11;\n              if (cVar3 == '.') {\n                cVar1 = pcVar11[1];\n                if ((cVar1 == '/') || (cVar1 == '\0')) {\n                  pcVar11 = pcVar11 + 2;\n                }\n                else {\n                  if ((cVar1 != '.') || ((pcVar11[2] != '/' && (pcVar11[2] != '\0'))))\n                  goto LAB_00137e1d;\n                  if (pcVar6 < pcVar7) {\n                    pcVar5 = pcVar7 + -1;\n                    if (pcVar6 < pcVar5) {\n                      cVar3 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar3 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar3 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar5 = pcVar7;\n                    if (uVar4 - 2 < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }\n                  pcVar11 = pcVar11 + 3;\n                  pcVar7 = pcVar5;\n                }\n              }\n              else {\nLAB_00137e1d:\n                if (pcVar7 == pcVar11) {\n                  pcVar5 = pcVar7;\n                  if (pcVar14 <= pcVar7) break;\n                  cVar3 = *pcVar7;\n                  while (cVar3 != '/') {\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar14;\n                    if (pcVar14 == pcVar5) goto LAB_00137d7b;\n                    cVar3 = *pcVar5;\n                  }\n                  pcVar11 = pcVar5 + 1;\n                  pcVar7 = pcVar5 + 1;\n                }\n                else {\n                  pcVar5 = pcVar11;\n                  if (pcVar14 <= pcVar11) break;\n                  while (cVar3 != '/') {\n                    pcVar11 = pcVar11 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar3;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar14;\n                    if (pcVar14 == pcVar11) goto LAB_00137d7b;\n                    cVar3 = *pcVar11;\n                  }\n                  *pcVar7 = *pcVar11;\n                  pcVar11 = pcVar11 + 1;\n                  pcVar7 = pcVar7 + 1;\n                }\n              }\n              pcVar5 = pcVar11;\n            } while (pcVar11 < pcVar14);\nLAB_00137d7b:\n            pcVar11 = pcVar7;\n            if (pcVar5 != pcVar7) {\n              *pcVar7 = '\0';\n            }\n          }\n          pcVar14 = *(char **)(piVar9 + 8);\n          pcVar6 = strrchr(pcVar14,0x2f);\n          if (pcVar6 == (char *)0x0) {\n            uVar8 = FUN_001496d9(&DAT_0015ea35);\n            *(undefined8 *)(piVar9 + 0x10) = uVar8;\n            uVar8 = FUN_001496d9(pcVar14);\n            *(undefined8 *)(piVar9 + 0x12) = uVar8;\n          }\n          else {\n            uVar8 = FUN_0013a40c(pcVar14,pcVar6);\n            *(undefined8 *)(piVar9 + 0x10) = uVar8;\n            uVar8 = FUN_001496d9(pcVar6 + 1);\n            *(undefined8 *)(piVar9 + 0x12) = uVar8;\n          }\n          FUN_00135c58(*(undefined8 *)(piVar9 + 0x10));\n          FUN_00135c58(*(undefined8 *)(piVar9 + 0x12));\n          pcVar14 = *(char **)(piVar9 + 4);\n          cVar3 = *pcVar14;\n          if (cVar3 == '\0') {\n            bVar17 = 0;\n          }\n          else {\n            bVar17 = 0;\n            do {\n              if ((int)cVar3 - 0x41U < 0x1a) {\n                *pcVar14 = cVar3 + ' ';\n                bVar17 = 1;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            } while (cVar3 != '\0');\n          }\n          pcVar14 = *(char **)(piVar9 + 4);\n          pcVar6 = strchr(pcVar14,0x25);\n          if (pcVar6 != (char *)0x0) {\n            FUN_00135c58(pcVar14);\n            pcVar14 = *(char **)(piVar9 + 4);\n            cVar3 = *pcVar14;\n            while (cVar3 != '\0') {\n              if ((-1 < cVar3) && ((cVar3 < ' ' || (cVar3 == '\x7f')))) {\n                FUN_0013629a(piVar9);\n                iVar15 = 3;\n                goto LAB_00137c65;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            }\n            bVar17 = param_3 != 0 & DAT_00177606;\n            if (bVar17 == 0) {\n              bVar17 = 1;\n            }\n            else {\n              lVar12 = FUN_0013eaa4(param_3);\n              if (lVar12 != 0) {\n                free(*(void **)(piVar9 + 4));\n                *(long *)(piVar9 + 4) = lVar12;\n              }\n            }\n          }\n          if (local_70 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_70,local_60);\n            *(undefined8 *)(piVar9 + 10) = uVar8;\n          }\n          if (local_b0 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_b0,local_58);\n            *(undefined8 *)(piVar9 + 0xc) = uVar8;\n          }\n          if (local_68 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_68,local_50);\n            *(undefined8 *)(piVar9 + 0xe) = uVar8;\n          }\n          param_2 = piVar9;\n          if ((((DAT_00177606 == 0) && (pcVar5 == pcVar11)) && (*(long *)(piVar9 + 0xe) == 0)) &&\n             ((local_88 != local_80 && (bVar17 == 0)))) {\n            if (local_b8 == param_1) {\n              uVar8 = FUN_001496d9(param_1);\n              *(undefined8 *)piVar9 = uVar8;\n            }\n            else {\n              *(void **)piVar9 = local_b8;\n            }\n          }\n          else {\n            uVar8 = FUN_00137051(piVar9,0);\n            *(undefined8 *)piVar9 = uVar8;\n            if (local_b8 != param_1) {\n              free(local_b8);\n            }\n          }\n          goto LAB_00137c95;\n        }\n        pcVar14 = pcVar14 + -1;\n        if (pcVar14 == pcVar11) {\n          iVar15 = 5;\n        }\n        else {\n          pcVar6 = (char *)memchr(pcVar11,0x3a,(long)pcVar14 - (long)pcVar11);\n          if (pcVar11 != pcVar6) {\n            pcVar5 = pcVar6;\n            if (pcVar6 != (char *)0x0) {\n              pcVar5 = (char *)FUN_0013a40c(pcVar6 + 1,pcVar14);\n              FUN_00135c58(pcVar5);\n              pcVar14 = pcVar6;\n            }\n            uVar8 = FUN_0013a40c(pcVar11,pcVar14);\n            FUN_00135c58(uVar8);\n            goto LAB_001379c6;\n          }\n          iVar15 = 5;\n        }\n      }\n    }\nLAB_00137c65:\n    if ((local_b8 != (void *)0x0) && (local_b8 != param_1)) {\n      free(local_b8);\n    }\n  }" (if "if") (parenthesized_expression "(uVar4 == 4)" (( "(") (binary_expression "uVar4 == 4" (identifier "uVar4") (== "==") (number_literal "4")) () ")")) (compound_statement "{\n    cVar3 = FUN_00136004(param_1);\n    iVar15 = (cVar3 == '\0') + 1;\n  }" ({ "{") (expression_statement "cVar3 = FUN_00136004(param_1);" (assignment_expression "cVar3 = FUN_00136004(param_1)" (identifier "cVar3") (= "=") (call_expression "FUN_00136004(param_1)" (identifier "FUN_00136004") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (expression_statement "iVar15 = (cVar3 == '\0') + 1;" (assignment_expression "iVar15 = (cVar3 == '\0') + 1" (identifier "iVar15") (= "=") (binary_expression "(cVar3 == '\0') + 1" (parenthesized_expression "(cVar3 == '\0')" (( "(") (binary_expression "cVar3 == '\0'" (identifier "cVar3") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (else_clause "else {\n    if ((param_3 == 0) || (*(char *)(param_3 + 0x18) == '\0')) {\nLAB_001374b5:\n      local_b8 = param_1;\n      if (param_4 != '\0') {\n        local_b8 = (void *)FUN_00135ae4(param_1);\n      }\n    }\n    else {\n      local_48 = (void *)0x0;\n      pvVar16 = *(void **)(param_3 + 0x10);\n      if (*(void **)(param_3 + 0x10) == (void *)0x0) {\n        pvVar16 = param_1;\n      }\n      cVar3 = FUN_0013e9b4(param_3,pvVar16,&local_48);\n      *(char *)(param_3 + 0x18) = cVar3;\n      if (cVar3 == '\0') goto LAB_001374b5;\n      free(*(void **)(param_3 + 0x10));\n      *(undefined8 *)(param_3 + 0x10) = 0;\n      uVar8 = FUN_001496d9(param_1);\n      *(undefined8 *)(param_3 + 0x10) = uVar8;\n      local_b8 = (void *)FUN_00135ae4(local_48);\n      if (local_48 != local_b8) {\n        free(local_48);\n      }\n    }\n    uVar13 = 0xffffffffffffffff;\n    pcVar11 = (&PTR_s_http____0016e348)[(ulong)uVar4 * 3];\n    do {\n      if (uVar13 == 0) break;\n      uVar13 = uVar13 - 1;\n      cVar3 = *pcVar11;\n      pcVar11 = pcVar11 + (ulong)bVar17 * -2 + 1;\n    } while (cVar3 != '\0');\n    pcVar11 = (char *)((long)local_b8 + (~uVar13 - 1));\n    pcVar5 = strpbrk(pcVar11,"@/?#;");\n    pcVar14 = pcVar11;\n    if ((pcVar5 != (char *)0x0) && (pcVar14 = pcVar5 + 1, *pcVar5 != '@')) {\n      pcVar14 = pcVar11;\n    }\n    pcVar5 = (char *)FUN_00135653(uVar4);\n    if (*pcVar14 == '[') {\n      local_a8 = pcVar14 + 1;\n      local_a0 = strchr(local_a8,0x5d);\n      if (local_a0 == (char *)0x0) {\n        iVar15 = 6;\n      }\n      else {\n        cVar3 = FUN_0011c7c7(local_a8,local_a0);\n        if (cVar3 == '\0') {\n          iVar15 = 8;\n        }\n        else {\n          pcVar6 = local_a0 + 1;\n          pcVar7 = strchr(pcVar5,(int)local_a0[1]);\n          if (pcVar7 != (char *)0x0) goto LAB_00137554;\n          iVar15 = 3;\n        }\n      }\n    }\n    else {\n      pcVar6 = strpbrk(pcVar14,pcVar5);\n      local_a8 = pcVar14;\n      local_a0 = pcVar6;\n      if (pcVar6 == (char *)0x0) {\n        uVar13 = 0xffffffffffffffff;\n        pcVar6 = pcVar14;\n        do {\n          if (uVar13 == 0) break;\n          uVar13 = uVar13 - 1;\n          cVar3 = *pcVar6;\n          pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n        } while (cVar3 != '\0');\n        pcVar6 = pcVar14 + (~uVar13 - 1);\n        local_a0 = pcVar6;\n      }\nLAB_00137554:\n      if (local_a8 == local_a0) {\n        iVar15 = 3;\n      }\n      else {\n        local_74 = *(uint *)(&DAT_0016e350 + (ulong)uVar4 * 0x18);\n        pcVar7 = pcVar6;\n        if (*pcVar6 == ':') {\n          __s = pcVar6 + 1;\n          pcVar7 = strpbrk(__s,pcVar5 + 1);\n          if (pcVar7 == (char *)0x0) {\n            uVar13 = 0xffffffffffffffff;\n            pcVar7 = __s;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar7;\n              pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');\n            pcVar7 = pcVar6 + ~uVar13;\n          }\n          if (__s != pcVar7) {\n            if (__s < pcVar7) {\n              local_74 = (int)pcVar6[1] - 0x30;\n              if (local_74 < 10) {\n                do {\n                  __s = __s + 1;\n                  if (__s == pcVar7) goto LAB_00137584;\n                  if (9 < (int)*__s - 0x30U) {\n                    iVar15 = 4;\n                    goto LAB_00137c65;\n                  }\n                  local_74 = *__s + -0x30 + local_74 * 10;\n                } while ((int)local_74 < 0x10000);\n                iVar15 = 4;\n              }\n              else {\n                iVar15 = 4;\n              }\n              goto LAB_00137c65;\n            }\n            local_74 = 0;\n          }\n        }\nLAB_00137584:\n        local_80 = (char *)0x0;\n        local_88 = (char *)0x0;\n        pcVar6 = pcVar7;\n        if (*pcVar7 == '/') {\n          local_88 = pcVar7 + 1;\n          pcVar6 = strpbrk(local_88,pcVar5 + 2);\n          local_80 = pcVar6;\n          if (pcVar6 == (char *)0x0) {\n            uVar13 = 0xffffffffffffffff;\n            pcVar6 = local_88;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');\n            pcVar6 = pcVar7 + ~uVar13;\n            local_80 = pcVar6;\n          }\n        }\n        local_90 = pcVar5 + 3;\n        uVar2 = (&DAT_0016e354)[(ulong)uVar4 * 6];\n        if ((uVar2 & 2) == 0) {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n        }\n        else {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n          pcVar7 = pcVar6;\n          if (*pcVar6 == ';') {\n            local_70 = pcVar6 + 1;\n            pcVar7 = strpbrk(local_70,local_90);\n            local_60 = pcVar7;\n            if (pcVar7 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar7 = local_70;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar7;\n                pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar7 = pcVar6 + ~uVar13;\n              local_60 = pcVar7;\n            }\n          }\n          local_90 = pcVar5 + 4;\n          pcVar6 = pcVar7;\n        }\n        if ((uVar2 & 4) == 0) {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n        }\n        else {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n          pcVar5 = pcVar6;\n          if (*pcVar6 == '?') {\n            local_b0 = pcVar6 + 1;\n            pcVar5 = strpbrk(local_b0,local_90);\n            local_58 = pcVar5;\n            if (pcVar5 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_b0;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar5 = pcVar6 + ~uVar13;\n              local_58 = pcVar5;\n            }\n          }\n          local_90 = local_90 + 1;\n          pcVar6 = pcVar5;\n        }\n        if ((uVar2 & 8) == 0) {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n        }\n        else {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n          if (*pcVar6 == '#') {\n            local_68 = pcVar6 + 1;\n            local_50 = strpbrk(local_68,local_90);\n            if (local_50 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_68;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              local_50 = pcVar6 + ~uVar13;\n            }\n          }\n        }\n        if (pcVar11 == pcVar14) {\n          pcVar5 = (char *)0x0;\n          uVar8 = 0;\nLAB_001379c6:\n          piVar9 = (int *)FUN_0014967c(1,0x60);\n          piVar9[2] = uVar4;\n          uVar10 = FUN_0013a40c(local_a8,local_a0);\n          *(undefined8 *)(piVar9 + 4) = uVar10;\n          piVar9[6] = local_74;\n          *(undefined8 *)(piVar9 + 0x14) = uVar8;\n          *(char **)(piVar9 + 0x16) = pcVar5;\n          pcVar11 = (char *)FUN_0013a40c(local_88,local_80);\n          *(char **)(piVar9 + 8) = pcVar11;\n          uVar13 = 0xffffffffffffffff;\n          pcVar14 = pcVar11;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar3 = *pcVar14;\n            pcVar14 = pcVar14 + (ulong)bVar17 * -2 + 1;\n          } while (cVar3 != '\0');\n          pcVar14 = pcVar11 + (~uVar13 - 1);\n          pcVar5 = pcVar11;\n          if (pcVar11 < pcVar14) {\n            pcVar7 = pcVar11;\n            pcVar6 = pcVar11;\n            do {\n              cVar3 = *pcVar11;\n              if (cVar3 == '.') {\n                cVar1 = pcVar11[1];\n                if ((cVar1 == '/') || (cVar1 == '\0')) {\n                  pcVar11 = pcVar11 + 2;\n                }\n                else {\n                  if ((cVar1 != '.') || ((pcVar11[2] != '/' && (pcVar11[2] != '\0'))))\n                  goto LAB_00137e1d;\n                  if (pcVar6 < pcVar7) {\n                    pcVar5 = pcVar7 + -1;\n                    if (pcVar6 < pcVar5) {\n                      cVar3 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar3 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar3 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar5 = pcVar7;\n                    if (uVar4 - 2 < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }\n                  pcVar11 = pcVar11 + 3;\n                  pcVar7 = pcVar5;\n                }\n              }\n              else {\nLAB_00137e1d:\n                if (pcVar7 == pcVar11) {\n                  pcVar5 = pcVar7;\n                  if (pcVar14 <= pcVar7) break;\n                  cVar3 = *pcVar7;\n                  while (cVar3 != '/') {\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar14;\n                    if (pcVar14 == pcVar5) goto LAB_00137d7b;\n                    cVar3 = *pcVar5;\n                  }\n                  pcVar11 = pcVar5 + 1;\n                  pcVar7 = pcVar5 + 1;\n                }\n                else {\n                  pcVar5 = pcVar11;\n                  if (pcVar14 <= pcVar11) break;\n                  while (cVar3 != '/') {\n                    pcVar11 = pcVar11 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar3;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar14;\n                    if (pcVar14 == pcVar11) goto LAB_00137d7b;\n                    cVar3 = *pcVar11;\n                  }\n                  *pcVar7 = *pcVar11;\n                  pcVar11 = pcVar11 + 1;\n                  pcVar7 = pcVar7 + 1;\n                }\n              }\n              pcVar5 = pcVar11;\n            } while (pcVar11 < pcVar14);\nLAB_00137d7b:\n            pcVar11 = pcVar7;\n            if (pcVar5 != pcVar7) {\n              *pcVar7 = '\0';\n            }\n          }\n          pcVar14 = *(char **)(piVar9 + 8);\n          pcVar6 = strrchr(pcVar14,0x2f);\n          if (pcVar6 == (char *)0x0) {\n            uVar8 = FUN_001496d9(&DAT_0015ea35);\n            *(undefined8 *)(piVar9 + 0x10) = uVar8;\n            uVar8 = FUN_001496d9(pcVar14);\n            *(undefined8 *)(piVar9 + 0x12) = uVar8;\n          }\n          else {\n            uVar8 = FUN_0013a40c(pcVar14,pcVar6);\n            *(undefined8 *)(piVar9 + 0x10) = uVar8;\n            uVar8 = FUN_001496d9(pcVar6 + 1);\n            *(undefined8 *)(piVar9 + 0x12) = uVar8;\n          }\n          FUN_00135c58(*(undefined8 *)(piVar9 + 0x10));\n          FUN_00135c58(*(undefined8 *)(piVar9 + 0x12));\n          pcVar14 = *(char **)(piVar9 + 4);\n          cVar3 = *pcVar14;\n          if (cVar3 == '\0') {\n            bVar17 = 0;\n          }\n          else {\n            bVar17 = 0;\n            do {\n              if ((int)cVar3 - 0x41U < 0x1a) {\n                *pcVar14 = cVar3 + ' ';\n                bVar17 = 1;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            } while (cVar3 != '\0');\n          }\n          pcVar14 = *(char **)(piVar9 + 4);\n          pcVar6 = strchr(pcVar14,0x25);\n          if (pcVar6 != (char *)0x0) {\n            FUN_00135c58(pcVar14);\n            pcVar14 = *(char **)(piVar9 + 4);\n            cVar3 = *pcVar14;\n            while (cVar3 != '\0') {\n              if ((-1 < cVar3) && ((cVar3 < ' ' || (cVar3 == '\x7f')))) {\n                FUN_0013629a(piVar9);\n                iVar15 = 3;\n                goto LAB_00137c65;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            }\n            bVar17 = param_3 != 0 & DAT_00177606;\n            if (bVar17 == 0) {\n              bVar17 = 1;\n            }\n            else {\n              lVar12 = FUN_0013eaa4(param_3);\n              if (lVar12 != 0) {\n                free(*(void **)(piVar9 + 4));\n                *(long *)(piVar9 + 4) = lVar12;\n              }\n            }\n          }\n          if (local_70 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_70,local_60);\n            *(undefined8 *)(piVar9 + 10) = uVar8;\n          }\n          if (local_b0 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_b0,local_58);\n            *(undefined8 *)(piVar9 + 0xc) = uVar8;\n          }\n          if (local_68 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_68,local_50);\n            *(undefined8 *)(piVar9 + 0xe) = uVar8;\n          }\n          param_2 = piVar9;\n          if ((((DAT_00177606 == 0) && (pcVar5 == pcVar11)) && (*(long *)(piVar9 + 0xe) == 0)) &&\n             ((local_88 != local_80 && (bVar17 == 0)))) {\n            if (local_b8 == param_1) {\n              uVar8 = FUN_001496d9(param_1);\n              *(undefined8 *)piVar9 = uVar8;\n            }\n            else {\n              *(void **)piVar9 = local_b8;\n            }\n          }\n          else {\n            uVar8 = FUN_00137051(piVar9,0);\n            *(undefined8 *)piVar9 = uVar8;\n            if (local_b8 != param_1) {\n              free(local_b8);\n            }\n          }\n          goto LAB_00137c95;\n        }\n        pcVar14 = pcVar14 + -1;\n        if (pcVar14 == pcVar11) {\n          iVar15 = 5;\n        }\n        else {\n          pcVar6 = (char *)memchr(pcVar11,0x3a,(long)pcVar14 - (long)pcVar11);\n          if (pcVar11 != pcVar6) {\n            pcVar5 = pcVar6;\n            if (pcVar6 != (char *)0x0) {\n              pcVar5 = (char *)FUN_0013a40c(pcVar6 + 1,pcVar14);\n              FUN_00135c58(pcVar5);\n              pcVar14 = pcVar6;\n            }\n            uVar8 = FUN_0013a40c(pcVar11,pcVar14);\n            FUN_00135c58(uVar8);\n            goto LAB_001379c6;\n          }\n          iVar15 = 5;\n        }\n      }\n    }\nLAB_00137c65:\n    if ((local_b8 != (void *)0x0) && (local_b8 != param_1)) {\n      free(local_b8);\n    }\n  }" (else "else") (compound_statement "{\n    if ((param_3 == 0) || (*(char *)(param_3 + 0x18) == '\0')) {\nLAB_001374b5:\n      local_b8 = param_1;\n      if (param_4 != '\0') {\n        local_b8 = (void *)FUN_00135ae4(param_1);\n      }\n    }\n    else {\n      local_48 = (void *)0x0;\n      pvVar16 = *(void **)(param_3 + 0x10);\n      if (*(void **)(param_3 + 0x10) == (void *)0x0) {\n        pvVar16 = param_1;\n      }\n      cVar3 = FUN_0013e9b4(param_3,pvVar16,&local_48);\n      *(char *)(param_3 + 0x18) = cVar3;\n      if (cVar3 == '\0') goto LAB_001374b5;\n      free(*(void **)(param_3 + 0x10));\n      *(undefined8 *)(param_3 + 0x10) = 0;\n      uVar8 = FUN_001496d9(param_1);\n      *(undefined8 *)(param_3 + 0x10) = uVar8;\n      local_b8 = (void *)FUN_00135ae4(local_48);\n      if (local_48 != local_b8) {\n        free(local_48);\n      }\n    }\n    uVar13 = 0xffffffffffffffff;\n    pcVar11 = (&PTR_s_http____0016e348)[(ulong)uVar4 * 3];\n    do {\n      if (uVar13 == 0) break;\n      uVar13 = uVar13 - 1;\n      cVar3 = *pcVar11;\n      pcVar11 = pcVar11 + (ulong)bVar17 * -2 + 1;\n    } while (cVar3 != '\0');\n    pcVar11 = (char *)((long)local_b8 + (~uVar13 - 1));\n    pcVar5 = strpbrk(pcVar11,"@/?#;");\n    pcVar14 = pcVar11;\n    if ((pcVar5 != (char *)0x0) && (pcVar14 = pcVar5 + 1, *pcVar5 != '@')) {\n      pcVar14 = pcVar11;\n    }\n    pcVar5 = (char *)FUN_00135653(uVar4);\n    if (*pcVar14 == '[') {\n      local_a8 = pcVar14 + 1;\n      local_a0 = strchr(local_a8,0x5d);\n      if (local_a0 == (char *)0x0) {\n        iVar15 = 6;\n      }\n      else {\n        cVar3 = FUN_0011c7c7(local_a8,local_a0);\n        if (cVar3 == '\0') {\n          iVar15 = 8;\n        }\n        else {\n          pcVar6 = local_a0 + 1;\n          pcVar7 = strchr(pcVar5,(int)local_a0[1]);\n          if (pcVar7 != (char *)0x0) goto LAB_00137554;\n          iVar15 = 3;\n        }\n      }\n    }\n    else {\n      pcVar6 = strpbrk(pcVar14,pcVar5);\n      local_a8 = pcVar14;\n      local_a0 = pcVar6;\n      if (pcVar6 == (char *)0x0) {\n        uVar13 = 0xffffffffffffffff;\n        pcVar6 = pcVar14;\n        do {\n          if (uVar13 == 0) break;\n          uVar13 = uVar13 - 1;\n          cVar3 = *pcVar6;\n          pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n        } while (cVar3 != '\0');\n        pcVar6 = pcVar14 + (~uVar13 - 1);\n        local_a0 = pcVar6;\n      }\nLAB_00137554:\n      if (local_a8 == local_a0) {\n        iVar15 = 3;\n      }\n      else {\n        local_74 = *(uint *)(&DAT_0016e350 + (ulong)uVar4 * 0x18);\n        pcVar7 = pcVar6;\n        if (*pcVar6 == ':') {\n          __s = pcVar6 + 1;\n          pcVar7 = strpbrk(__s,pcVar5 + 1);\n          if (pcVar7 == (char *)0x0) {\n            uVar13 = 0xffffffffffffffff;\n            pcVar7 = __s;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar7;\n              pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');\n            pcVar7 = pcVar6 + ~uVar13;\n          }\n          if (__s != pcVar7) {\n            if (__s < pcVar7) {\n              local_74 = (int)pcVar6[1] - 0x30;\n              if (local_74 < 10) {\n                do {\n                  __s = __s + 1;\n                  if (__s == pcVar7) goto LAB_00137584;\n                  if (9 < (int)*__s - 0x30U) {\n                    iVar15 = 4;\n                    goto LAB_00137c65;\n                  }\n                  local_74 = *__s + -0x30 + local_74 * 10;\n                } while ((int)local_74 < 0x10000);\n                iVar15 = 4;\n              }\n              else {\n                iVar15 = 4;\n              }\n              goto LAB_00137c65;\n            }\n            local_74 = 0;\n          }\n        }\nLAB_00137584:\n        local_80 = (char *)0x0;\n        local_88 = (char *)0x0;\n        pcVar6 = pcVar7;\n        if (*pcVar7 == '/') {\n          local_88 = pcVar7 + 1;\n          pcVar6 = strpbrk(local_88,pcVar5 + 2);\n          local_80 = pcVar6;\n          if (pcVar6 == (char *)0x0) {\n            uVar13 = 0xffffffffffffffff;\n            pcVar6 = local_88;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');\n            pcVar6 = pcVar7 + ~uVar13;\n            local_80 = pcVar6;\n          }\n        }\n        local_90 = pcVar5 + 3;\n        uVar2 = (&DAT_0016e354)[(ulong)uVar4 * 6];\n        if ((uVar2 & 2) == 0) {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n        }\n        else {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n          pcVar7 = pcVar6;\n          if (*pcVar6 == ';') {\n            local_70 = pcVar6 + 1;\n            pcVar7 = strpbrk(local_70,local_90);\n            local_60 = pcVar7;\n            if (pcVar7 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar7 = local_70;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar7;\n                pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar7 = pcVar6 + ~uVar13;\n              local_60 = pcVar7;\n            }\n          }\n          local_90 = pcVar5 + 4;\n          pcVar6 = pcVar7;\n        }\n        if ((uVar2 & 4) == 0) {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n        }\n        else {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n          pcVar5 = pcVar6;\n          if (*pcVar6 == '?') {\n            local_b0 = pcVar6 + 1;\n            pcVar5 = strpbrk(local_b0,local_90);\n            local_58 = pcVar5;\n            if (pcVar5 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_b0;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar5 = pcVar6 + ~uVar13;\n              local_58 = pcVar5;\n            }\n          }\n          local_90 = local_90 + 1;\n          pcVar6 = pcVar5;\n        }\n        if ((uVar2 & 8) == 0) {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n        }\n        else {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n          if (*pcVar6 == '#') {\n            local_68 = pcVar6 + 1;\n            local_50 = strpbrk(local_68,local_90);\n            if (local_50 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_68;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              local_50 = pcVar6 + ~uVar13;\n            }\n          }\n        }\n        if (pcVar11 == pcVar14) {\n          pcVar5 = (char *)0x0;\n          uVar8 = 0;\nLAB_001379c6:\n          piVar9 = (int *)FUN_0014967c(1,0x60);\n          piVar9[2] = uVar4;\n          uVar10 = FUN_0013a40c(local_a8,local_a0);\n          *(undefined8 *)(piVar9 + 4) = uVar10;\n          piVar9[6] = local_74;\n          *(undefined8 *)(piVar9 + 0x14) = uVar8;\n          *(char **)(piVar9 + 0x16) = pcVar5;\n          pcVar11 = (char *)FUN_0013a40c(local_88,local_80);\n          *(char **)(piVar9 + 8) = pcVar11;\n          uVar13 = 0xffffffffffffffff;\n          pcVar14 = pcVar11;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar3 = *pcVar14;\n            pcVar14 = pcVar14 + (ulong)bVar17 * -2 + 1;\n          } while (cVar3 != '\0');\n          pcVar14 = pcVar11 + (~uVar13 - 1);\n          pcVar5 = pcVar11;\n          if (pcVar11 < pcVar14) {\n            pcVar7 = pcVar11;\n            pcVar6 = pcVar11;\n            do {\n              cVar3 = *pcVar11;\n              if (cVar3 == '.') {\n                cVar1 = pcVar11[1];\n                if ((cVar1 == '/') || (cVar1 == '\0')) {\n                  pcVar11 = pcVar11 + 2;\n                }\n                else {\n                  if ((cVar1 != '.') || ((pcVar11[2] != '/' && (pcVar11[2] != '\0'))))\n                  goto LAB_00137e1d;\n                  if (pcVar6 < pcVar7) {\n                    pcVar5 = pcVar7 + -1;\n                    if (pcVar6 < pcVar5) {\n                      cVar3 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar3 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar3 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar5 = pcVar7;\n                    if (uVar4 - 2 < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }\n                  pcVar11 = pcVar11 + 3;\n                  pcVar7 = pcVar5;\n                }\n              }\n              else {\nLAB_00137e1d:\n                if (pcVar7 == pcVar11) {\n                  pcVar5 = pcVar7;\n                  if (pcVar14 <= pcVar7) break;\n                  cVar3 = *pcVar7;\n                  while (cVar3 != '/') {\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar14;\n                    if (pcVar14 == pcVar5) goto LAB_00137d7b;\n                    cVar3 = *pcVar5;\n                  }\n                  pcVar11 = pcVar5 + 1;\n                  pcVar7 = pcVar5 + 1;\n                }\n                else {\n                  pcVar5 = pcVar11;\n                  if (pcVar14 <= pcVar11) break;\n                  while (cVar3 != '/') {\n                    pcVar11 = pcVar11 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar3;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar14;\n                    if (pcVar14 == pcVar11) goto LAB_00137d7b;\n                    cVar3 = *pcVar11;\n                  }\n                  *pcVar7 = *pcVar11;\n                  pcVar11 = pcVar11 + 1;\n                  pcVar7 = pcVar7 + 1;\n                }\n              }\n              pcVar5 = pcVar11;\n            } while (pcVar11 < pcVar14);\nLAB_00137d7b:\n            pcVar11 = pcVar7;\n            if (pcVar5 != pcVar7) {\n              *pcVar7 = '\0';\n            }\n          }\n          pcVar14 = *(char **)(piVar9 + 8);\n          pcVar6 = strrchr(pcVar14,0x2f);\n          if (pcVar6 == (char *)0x0) {\n            uVar8 = FUN_001496d9(&DAT_0015ea35);\n            *(undefined8 *)(piVar9 + 0x10) = uVar8;\n            uVar8 = FUN_001496d9(pcVar14);\n            *(undefined8 *)(piVar9 + 0x12) = uVar8;\n          }\n          else {\n            uVar8 = FUN_0013a40c(pcVar14,pcVar6);\n            *(undefined8 *)(piVar9 + 0x10) = uVar8;\n            uVar8 = FUN_001496d9(pcVar6 + 1);\n            *(undefined8 *)(piVar9 + 0x12) = uVar8;\n          }\n          FUN_00135c58(*(undefined8 *)(piVar9 + 0x10));\n          FUN_00135c58(*(undefined8 *)(piVar9 + 0x12));\n          pcVar14 = *(char **)(piVar9 + 4);\n          cVar3 = *pcVar14;\n          if (cVar3 == '\0') {\n            bVar17 = 0;\n          }\n          else {\n            bVar17 = 0;\n            do {\n              if ((int)cVar3 - 0x41U < 0x1a) {\n                *pcVar14 = cVar3 + ' ';\n                bVar17 = 1;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            } while (cVar3 != '\0');\n          }\n          pcVar14 = *(char **)(piVar9 + 4);\n          pcVar6 = strchr(pcVar14,0x25);\n          if (pcVar6 != (char *)0x0) {\n            FUN_00135c58(pcVar14);\n            pcVar14 = *(char **)(piVar9 + 4);\n            cVar3 = *pcVar14;\n            while (cVar3 != '\0') {\n              if ((-1 < cVar3) && ((cVar3 < ' ' || (cVar3 == '\x7f')))) {\n                FUN_0013629a(piVar9);\n                iVar15 = 3;\n                goto LAB_00137c65;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            }\n            bVar17 = param_3 != 0 & DAT_00177606;\n            if (bVar17 == 0) {\n              bVar17 = 1;\n            }\n            else {\n              lVar12 = FUN_0013eaa4(param_3);\n              if (lVar12 != 0) {\n                free(*(void **)(piVar9 + 4));\n                *(long *)(piVar9 + 4) = lVar12;\n              }\n            }\n          }\n          if (local_70 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_70,local_60);\n            *(undefined8 *)(piVar9 + 10) = uVar8;\n          }\n          if (local_b0 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_b0,local_58);\n            *(undefined8 *)(piVar9 + 0xc) = uVar8;\n          }\n          if (local_68 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_68,local_50);\n            *(undefined8 *)(piVar9 + 0xe) = uVar8;\n          }\n          param_2 = piVar9;\n          if ((((DAT_00177606 == 0) && (pcVar5 == pcVar11)) && (*(long *)(piVar9 + 0xe) == 0)) &&\n             ((local_88 != local_80 && (bVar17 == 0)))) {\n            if (local_b8 == param_1) {\n              uVar8 = FUN_001496d9(param_1);\n              *(undefined8 *)piVar9 = uVar8;\n            }\n            else {\n              *(void **)piVar9 = local_b8;\n            }\n          }\n          else {\n            uVar8 = FUN_00137051(piVar9,0);\n            *(undefined8 *)piVar9 = uVar8;\n            if (local_b8 != param_1) {\n              free(local_b8);\n            }\n          }\n          goto LAB_00137c95;\n        }\n        pcVar14 = pcVar14 + -1;\n        if (pcVar14 == pcVar11) {\n          iVar15 = 5;\n        }\n        else {\n          pcVar6 = (char *)memchr(pcVar11,0x3a,(long)pcVar14 - (long)pcVar11);\n          if (pcVar11 != pcVar6) {\n            pcVar5 = pcVar6;\n            if (pcVar6 != (char *)0x0) {\n              pcVar5 = (char *)FUN_0013a40c(pcVar6 + 1,pcVar14);\n              FUN_00135c58(pcVar5);\n              pcVar14 = pcVar6;\n            }\n            uVar8 = FUN_0013a40c(pcVar11,pcVar14);\n            FUN_00135c58(uVar8);\n            goto LAB_001379c6;\n          }\n          iVar15 = 5;\n        }\n      }\n    }\nLAB_00137c65:\n    if ((local_b8 != (void *)0x0) && (local_b8 != param_1)) {\n      free(local_b8);\n    }\n  }" ({ "{") (if_statement "if ((param_3 == 0) || (*(char *)(param_3 + 0x18) == '\0')) {\nLAB_001374b5:\n      local_b8 = param_1;\n      if (param_4 != '\0') {\n        local_b8 = (void *)FUN_00135ae4(param_1);\n      }\n    }\n    else {\n      local_48 = (void *)0x0;\n      pvVar16 = *(void **)(param_3 + 0x10);\n      if (*(void **)(param_3 + 0x10) == (void *)0x0) {\n        pvVar16 = param_1;\n      }\n      cVar3 = FUN_0013e9b4(param_3,pvVar16,&local_48);\n      *(char *)(param_3 + 0x18) = cVar3;\n      if (cVar3 == '\0') goto LAB_001374b5;\n      free(*(void **)(param_3 + 0x10));\n      *(undefined8 *)(param_3 + 0x10) = 0;\n      uVar8 = FUN_001496d9(param_1);\n      *(undefined8 *)(param_3 + 0x10) = uVar8;\n      local_b8 = (void *)FUN_00135ae4(local_48);\n      if (local_48 != local_b8) {\n        free(local_48);\n      }\n    }" (if "if") (parenthesized_expression "((param_3 == 0) || (*(char *)(param_3 + 0x18) == '\0'))" (( "(") (binary_expression "(param_3 == 0) || (*(char *)(param_3 + 0x18) == '\0')" (parenthesized_expression "(param_3 == 0)" (( "(") (binary_expression "param_3 == 0" (identifier "param_3") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(*(char *)(param_3 + 0x18) == '\0')" (( "(") (binary_expression "*(char *)(param_3 + 0x18) == '\0'" (pointer_expression "*(char *)(param_3 + 0x18)" (* "*") (cast_expression "(char *)(param_3 + 0x18)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x18)" (( "(") (binary_expression "param_3 + 0x18" (identifier "param_3") (+ "+") (number_literal "0x18")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\nLAB_001374b5:\n      local_b8 = param_1;\n      if (param_4 != '\0') {\n        local_b8 = (void *)FUN_00135ae4(param_1);\n      }\n    }" ({ "{") (labeled_statement "LAB_001374b5:\n      local_b8 = param_1;" (statement_identifier "LAB_001374b5") (: ":") (expression_statement "local_b8 = param_1;" (assignment_expression "local_b8 = param_1" (identifier "local_b8") (= "=") (identifier "param_1")) (; ";"))) (if_statement "if (param_4 != '\0') {\n        local_b8 = (void *)FUN_00135ae4(param_1);\n      }" (if "if") (parenthesized_expression "(param_4 != '\0')" (( "(") (binary_expression "param_4 != '\0'" (identifier "param_4") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        local_b8 = (void *)FUN_00135ae4(param_1);\n      }" ({ "{") (expression_statement "local_b8 = (void *)FUN_00135ae4(param_1);" (assignment_expression "local_b8 = (void *)FUN_00135ae4(param_1)" (identifier "local_b8") (= "=") (cast_expression "(void *)FUN_00135ae4(param_1)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00135ae4(param_1)" (identifier "FUN_00135ae4") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n      local_48 = (void *)0x0;\n      pvVar16 = *(void **)(param_3 + 0x10);\n      if (*(void **)(param_3 + 0x10) == (void *)0x0) {\n        pvVar16 = param_1;\n      }\n      cVar3 = FUN_0013e9b4(param_3,pvVar16,&local_48);\n      *(char *)(param_3 + 0x18) = cVar3;\n      if (cVar3 == '\0') goto LAB_001374b5;\n      free(*(void **)(param_3 + 0x10));\n      *(undefined8 *)(param_3 + 0x10) = 0;\n      uVar8 = FUN_001496d9(param_1);\n      *(undefined8 *)(param_3 + 0x10) = uVar8;\n      local_b8 = (void *)FUN_00135ae4(local_48);\n      if (local_48 != local_b8) {\n        free(local_48);\n      }\n    }" (else "else") (compound_statement "{\n      local_48 = (void *)0x0;\n      pvVar16 = *(void **)(param_3 + 0x10);\n      if (*(void **)(param_3 + 0x10) == (void *)0x0) {\n        pvVar16 = param_1;\n      }\n      cVar3 = FUN_0013e9b4(param_3,pvVar16,&local_48);\n      *(char *)(param_3 + 0x18) = cVar3;\n      if (cVar3 == '\0') goto LAB_001374b5;\n      free(*(void **)(param_3 + 0x10));\n      *(undefined8 *)(param_3 + 0x10) = 0;\n      uVar8 = FUN_001496d9(param_1);\n      *(undefined8 *)(param_3 + 0x10) = uVar8;\n      local_b8 = (void *)FUN_00135ae4(local_48);\n      if (local_48 != local_b8) {\n        free(local_48);\n      }\n    }" ({ "{") (expression_statement "local_48 = (void *)0x0;" (assignment_expression "local_48 = (void *)0x0" (identifier "local_48") (= "=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pvVar16 = *(void **)(param_3 + 0x10);" (assignment_expression "pvVar16 = *(void **)(param_3 + 0x10)" (identifier "pvVar16") (= "=") (pointer_expression "*(void **)(param_3 + 0x10)" (* "*") (cast_expression "(void **)(param_3 + 0x10)" (( "(") (type_descriptor "void **" (primitive_type "void") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_3 + 0x10)" (( "(") (binary_expression "param_3 + 0x10" (identifier "param_3") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (if_statement "if (*(void **)(param_3 + 0x10) == (void *)0x0) {\n        pvVar16 = param_1;\n      }" (if "if") (parenthesized_expression "(*(void **)(param_3 + 0x10) == (void *)0x0)" (( "(") (binary_expression "*(void **)(param_3 + 0x10) == (void *)0x0" (pointer_expression "*(void **)(param_3 + 0x10)" (* "*") (cast_expression "(void **)(param_3 + 0x10)" (( "(") (type_descriptor "void **" (primitive_type "void") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_3 + 0x10)" (( "(") (binary_expression "param_3 + 0x10" (identifier "param_3") (+ "+") (number_literal "0x10")) () ")")))) (== "==") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        pvVar16 = param_1;\n      }" ({ "{") (expression_statement "pvVar16 = param_1;" (assignment_expression "pvVar16 = param_1" (identifier "pvVar16") (= "=") (identifier "param_1")) (; ";")) (} "}"))) (expression_statement "cVar3 = FUN_0013e9b4(param_3,pvVar16,&local_48);" (assignment_expression "cVar3 = FUN_0013e9b4(param_3,pvVar16,&local_48)" (identifier "cVar3") (= "=") (call_expression "FUN_0013e9b4(param_3,pvVar16,&local_48)" (identifier "FUN_0013e9b4") (argument_list "(param_3,pvVar16,&local_48)" (( "(") (identifier "param_3") (, ",") (identifier "pvVar16") (, ",") (pointer_expression "&local_48" (& "&") (identifier "local_48")) () ")")))) (; ";")) (expression_statement "*(char *)(param_3 + 0x18) = cVar3;" (assignment_expression "*(char *)(param_3 + 0x18) = cVar3" (pointer_expression "*(char *)(param_3 + 0x18)" (* "*") (cast_expression "(char *)(param_3 + 0x18)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x18)" (( "(") (binary_expression "param_3 + 0x18" (identifier "param_3") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (identifier "cVar3")) (; ";")) (if_statement "if (cVar3 == '\0') goto LAB_001374b5;" (if "if") (parenthesized_expression "(cVar3 == '\0')" (( "(") (binary_expression "cVar3 == '\0'" (identifier "cVar3") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_001374b5;" (goto "goto") (statement_identifier "LAB_001374b5") (; ";"))) (expression_statement "free(*(void **)(param_3 + 0x10));" (call_expression "free(*(void **)(param_3 + 0x10))" (identifier "free") (argument_list "(*(void **)(param_3 + 0x10))" (( "(") (pointer_expression "*(void **)(param_3 + 0x10)" (* "*") (cast_expression "(void **)(param_3 + 0x10)" (( "(") (type_descriptor "void **" (primitive_type "void") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_3 + 0x10)" (( "(") (binary_expression "param_3 + 0x10" (identifier "param_3") (+ "+") (number_literal "0x10")) () ")")))) () ")"))) (; ";")) (expression_statement "*(undefined8 *)(param_3 + 0x10) = 0;" (assignment_expression "*(undefined8 *)(param_3 + 0x10) = 0" (pointer_expression "*(undefined8 *)(param_3 + 0x10)" (* "*") (cast_expression "(undefined8 *)(param_3 + 0x10)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x10)" (( "(") (binary_expression "param_3 + 0x10" (identifier "param_3") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar8 = FUN_001496d9(param_1);" (assignment_expression "uVar8 = FUN_001496d9(param_1)" (identifier "uVar8") (= "=") (call_expression "FUN_001496d9(param_1)" (identifier "FUN_001496d9") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (expression_statement "*(undefined8 *)(param_3 + 0x10) = uVar8;" (assignment_expression "*(undefined8 *)(param_3 + 0x10) = uVar8" (pointer_expression "*(undefined8 *)(param_3 + 0x10)" (* "*") (cast_expression "(undefined8 *)(param_3 + 0x10)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x10)" (( "(") (binary_expression "param_3 + 0x10" (identifier "param_3") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "uVar8")) (; ";")) (expression_statement "local_b8 = (void *)FUN_00135ae4(local_48);" (assignment_expression "local_b8 = (void *)FUN_00135ae4(local_48)" (identifier "local_b8") (= "=") (cast_expression "(void *)FUN_00135ae4(local_48)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00135ae4(local_48)" (identifier "FUN_00135ae4") (argument_list "(local_48)" (( "(") (identifier "local_48") () ")"))))) (; ";")) (if_statement "if (local_48 != local_b8) {\n        free(local_48);\n      }" (if "if") (parenthesized_expression "(local_48 != local_b8)" (( "(") (binary_expression "local_48 != local_b8" (identifier "local_48") (!= "!=") (identifier "local_b8")) () ")")) (compound_statement "{\n        free(local_48);\n      }" ({ "{") (expression_statement "free(local_48);" (call_expression "free(local_48)" (identifier "free") (argument_list "(local_48)" (( "(") (identifier "local_48") () ")"))) (; ";")) (} "}"))) (} "}")))) (expression_statement "uVar13 = 0xffffffffffffffff;" (assignment_expression "uVar13 = 0xffffffffffffffff" (identifier "uVar13") (= "=") (number_literal "0xffffffffffffffff")) (; ";")) (expression_statement "pcVar11 = (&PTR_s_http____0016e348)[(ulong)uVar4 * 3];" (assignment_expression "pcVar11 = (&PTR_s_http____0016e348)[(ulong)uVar4 * 3]" (identifier "pcVar11") (= "=") (subscript_expression "(&PTR_s_http____0016e348)[(ulong)uVar4 * 3]" (parenthesized_expression "(&PTR_s_http____0016e348)" (( "(") (pointer_expression "&PTR_s_http____0016e348" (& "&") (identifier "PTR_s_http____0016e348")) () ")")) ([ "[") (binary_expression "(ulong)uVar4 * 3" (cast_expression "(ulong)uVar4" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar4")) (* "*") (number_literal "3")) (] "]"))) (; ";")) (do_statement "do {\n      if (uVar13 == 0) break;\n      uVar13 = uVar13 - 1;\n      cVar3 = *pcVar11;\n      pcVar11 = pcVar11 + (ulong)bVar17 * -2 + 1;\n    } while (cVar3 != '\0');" (do "do") (compound_statement "{\n      if (uVar13 == 0) break;\n      uVar13 = uVar13 - 1;\n      cVar3 = *pcVar11;\n      pcVar11 = pcVar11 + (ulong)bVar17 * -2 + 1;\n    }" ({ "{") (if_statement "if (uVar13 == 0) break;" (if "if") (parenthesized_expression "(uVar13 == 0)" (( "(") (binary_expression "uVar13 == 0" (identifier "uVar13") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar13 = uVar13 - 1;" (assignment_expression "uVar13 = uVar13 - 1" (identifier "uVar13") (= "=") (binary_expression "uVar13 - 1" (identifier "uVar13") (- "-") (number_literal "1"))) (; ";")) (expression_statement "cVar3 = *pcVar11;" (assignment_expression "cVar3 = *pcVar11" (identifier "cVar3") (= "=") (pointer_expression "*pcVar11" (* "*") (identifier "pcVar11"))) (; ";")) (expression_statement "pcVar11 = pcVar11 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pcVar11 = pcVar11 + (ulong)bVar17 * -2 + 1" (identifier "pcVar11") (= "=") (binary_expression "pcVar11 + (ulong)bVar17 * -2 + 1" (binary_expression "pcVar11 + (ulong)bVar17 * -2" (identifier "pcVar11") (+ "+") (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar17")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(cVar3 != '\0')" (( "(") (binary_expression "cVar3 != '\0'" (identifier "cVar3") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (; ";")) (expression_statement "pcVar11 = (char *)((long)local_b8 + (~uVar13 - 1));" (assignment_expression "pcVar11 = (char *)((long)local_b8 + (~uVar13 - 1))" (identifier "pcVar11") (= "=") (cast_expression "(char *)((long)local_b8 + (~uVar13 - 1))" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)local_b8 + (~uVar13 - 1))" (( "(") (binary_expression "(long)local_b8 + (~uVar13 - 1)" (cast_expression "(long)local_b8" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "local_b8")) (+ "+") (parenthesized_expression "(~uVar13 - 1)" (( "(") (binary_expression "~uVar13 - 1" (unary_expression "~uVar13" (~ "~") (identifier "uVar13")) (- "-") (number_literal "1")) () ")"))) () ")")))) (; ";")) (expression_statement "pcVar5 = strpbrk(pcVar11,"@/?#;");" (assignment_expression "pcVar5 = strpbrk(pcVar11,"@/?#;")" (identifier "pcVar5") (= "=") (call_expression "strpbrk(pcVar11,"@/?#;")" (identifier "strpbrk") (argument_list "(pcVar11,"@/?#;")" (( "(") (identifier "pcVar11") (, ",") (string_literal ""@/?#;"" (" """) (string_content "@/?#;") (" """)) () ")")))) (; ";")) (expression_statement "pcVar14 = pcVar11;" (assignment_expression "pcVar14 = pcVar11" (identifier "pcVar14") (= "=") (identifier "pcVar11")) (; ";")) (if_statement "if ((pcVar5 != (char *)0x0) && (pcVar14 = pcVar5 + 1, *pcVar5 != '@')) {\n      pcVar14 = pcVar11;\n    }" (if "if") (parenthesized_expression "((pcVar5 != (char *)0x0) && (pcVar14 = pcVar5 + 1, *pcVar5 != '@'))" (( "(") (binary_expression "(pcVar5 != (char *)0x0) && (pcVar14 = pcVar5 + 1, *pcVar5 != '@')" (parenthesized_expression "(pcVar5 != (char *)0x0)" (( "(") (binary_expression "pcVar5 != (char *)0x0" (identifier "pcVar5") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(pcVar14 = pcVar5 + 1, *pcVar5 != '@')" (( "(") (comma_expression "pcVar14 = pcVar5 + 1, *pcVar5 != '@'" (assignment_expression "pcVar14 = pcVar5 + 1" (identifier "pcVar14") (= "=") (binary_expression "pcVar5 + 1" (identifier "pcVar5") (+ "+") (number_literal "1"))) (, ",") (binary_expression "*pcVar5 != '@'" (pointer_expression "*pcVar5" (* "*") (identifier "pcVar5")) (!= "!=") (char_literal "'@'" (' "'") (character "@") (' "'")))) () ")"))) () ")")) (compound_statement "{\n      pcVar14 = pcVar11;\n    }" ({ "{") (expression_statement "pcVar14 = pcVar11;" (assignment_expression "pcVar14 = pcVar11" (identifier "pcVar14") (= "=") (identifier "pcVar11")) (; ";")) (} "}"))) (expression_statement "pcVar5 = (char *)FUN_00135653(uVar4);" (assignment_expression "pcVar5 = (char *)FUN_00135653(uVar4)" (identifier "pcVar5") (= "=") (cast_expression "(char *)FUN_00135653(uVar4)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00135653(uVar4)" (identifier "FUN_00135653") (argument_list "(uVar4)" (( "(") (identifier "uVar4") () ")"))))) (; ";")) (if_statement "if (*pcVar14 == '[') {\n      local_a8 = pcVar14 + 1;\n      local_a0 = strchr(local_a8,0x5d);\n      if (local_a0 == (char *)0x0) {\n        iVar15 = 6;\n      }\n      else {\n        cVar3 = FUN_0011c7c7(local_a8,local_a0);\n        if (cVar3 == '\0') {\n          iVar15 = 8;\n        }\n        else {\n          pcVar6 = local_a0 + 1;\n          pcVar7 = strchr(pcVar5,(int)local_a0[1]);\n          if (pcVar7 != (char *)0x0) goto LAB_00137554;\n          iVar15 = 3;\n        }\n      }\n    }\n    else {\n      pcVar6 = strpbrk(pcVar14,pcVar5);\n      local_a8 = pcVar14;\n      local_a0 = pcVar6;\n      if (pcVar6 == (char *)0x0) {\n        uVar13 = 0xffffffffffffffff;\n        pcVar6 = pcVar14;\n        do {\n          if (uVar13 == 0) break;\n          uVar13 = uVar13 - 1;\n          cVar3 = *pcVar6;\n          pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n        } while (cVar3 != '\0');\n        pcVar6 = pcVar14 + (~uVar13 - 1);\n        local_a0 = pcVar6;\n      }\nLAB_00137554:\n      if (local_a8 == local_a0) {\n        iVar15 = 3;\n      }\n      else {\n        local_74 = *(uint *)(&DAT_0016e350 + (ulong)uVar4 * 0x18);\n        pcVar7 = pcVar6;\n        if (*pcVar6 == ':') {\n          __s = pcVar6 + 1;\n          pcVar7 = strpbrk(__s,pcVar5 + 1);\n          if (pcVar7 == (char *)0x0) {\n            uVar13 = 0xffffffffffffffff;\n            pcVar7 = __s;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar7;\n              pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');\n            pcVar7 = pcVar6 + ~uVar13;\n          }\n          if (__s != pcVar7) {\n            if (__s < pcVar7) {\n              local_74 = (int)pcVar6[1] - 0x30;\n              if (local_74 < 10) {\n                do {\n                  __s = __s + 1;\n                  if (__s == pcVar7) goto LAB_00137584;\n                  if (9 < (int)*__s - 0x30U) {\n                    iVar15 = 4;\n                    goto LAB_00137c65;\n                  }\n                  local_74 = *__s + -0x30 + local_74 * 10;\n                } while ((int)local_74 < 0x10000);\n                iVar15 = 4;\n              }\n              else {\n                iVar15 = 4;\n              }\n              goto LAB_00137c65;\n            }\n            local_74 = 0;\n          }\n        }\nLAB_00137584:\n        local_80 = (char *)0x0;\n        local_88 = (char *)0x0;\n        pcVar6 = pcVar7;\n        if (*pcVar7 == '/') {\n          local_88 = pcVar7 + 1;\n          pcVar6 = strpbrk(local_88,pcVar5 + 2);\n          local_80 = pcVar6;\n          if (pcVar6 == (char *)0x0) {\n            uVar13 = 0xffffffffffffffff;\n            pcVar6 = local_88;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');\n            pcVar6 = pcVar7 + ~uVar13;\n            local_80 = pcVar6;\n          }\n        }\n        local_90 = pcVar5 + 3;\n        uVar2 = (&DAT_0016e354)[(ulong)uVar4 * 6];\n        if ((uVar2 & 2) == 0) {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n        }\n        else {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n          pcVar7 = pcVar6;\n          if (*pcVar6 == ';') {\n            local_70 = pcVar6 + 1;\n            pcVar7 = strpbrk(local_70,local_90);\n            local_60 = pcVar7;\n            if (pcVar7 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar7 = local_70;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar7;\n                pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar7 = pcVar6 + ~uVar13;\n              local_60 = pcVar7;\n            }\n          }\n          local_90 = pcVar5 + 4;\n          pcVar6 = pcVar7;\n        }\n        if ((uVar2 & 4) == 0) {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n        }\n        else {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n          pcVar5 = pcVar6;\n          if (*pcVar6 == '?') {\n            local_b0 = pcVar6 + 1;\n            pcVar5 = strpbrk(local_b0,local_90);\n            local_58 = pcVar5;\n            if (pcVar5 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_b0;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar5 = pcVar6 + ~uVar13;\n              local_58 = pcVar5;\n            }\n          }\n          local_90 = local_90 + 1;\n          pcVar6 = pcVar5;\n        }\n        if ((uVar2 & 8) == 0) {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n        }\n        else {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n          if (*pcVar6 == '#') {\n            local_68 = pcVar6 + 1;\n            local_50 = strpbrk(local_68,local_90);\n            if (local_50 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_68;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              local_50 = pcVar6 + ~uVar13;\n            }\n          }\n        }\n        if (pcVar11 == pcVar14) {\n          pcVar5 = (char *)0x0;\n          uVar8 = 0;\nLAB_001379c6:\n          piVar9 = (int *)FUN_0014967c(1,0x60);\n          piVar9[2] = uVar4;\n          uVar10 = FUN_0013a40c(local_a8,local_a0);\n          *(undefined8 *)(piVar9 + 4) = uVar10;\n          piVar9[6] = local_74;\n          *(undefined8 *)(piVar9 + 0x14) = uVar8;\n          *(char **)(piVar9 + 0x16) = pcVar5;\n          pcVar11 = (char *)FUN_0013a40c(local_88,local_80);\n          *(char **)(piVar9 + 8) = pcVar11;\n          uVar13 = 0xffffffffffffffff;\n          pcVar14 = pcVar11;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar3 = *pcVar14;\n            pcVar14 = pcVar14 + (ulong)bVar17 * -2 + 1;\n          } while (cVar3 != '\0');\n          pcVar14 = pcVar11 + (~uVar13 - 1);\n          pcVar5 = pcVar11;\n          if (pcVar11 < pcVar14) {\n            pcVar7 = pcVar11;\n            pcVar6 = pcVar11;\n            do {\n              cVar3 = *pcVar11;\n              if (cVar3 == '.') {\n                cVar1 = pcVar11[1];\n                if ((cVar1 == '/') || (cVar1 == '\0')) {\n                  pcVar11 = pcVar11 + 2;\n                }\n                else {\n                  if ((cVar1 != '.') || ((pcVar11[2] != '/' && (pcVar11[2] != '\0'))))\n                  goto LAB_00137e1d;\n                  if (pcVar6 < pcVar7) {\n                    pcVar5 = pcVar7 + -1;\n                    if (pcVar6 < pcVar5) {\n                      cVar3 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar3 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar3 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar5 = pcVar7;\n                    if (uVar4 - 2 < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }\n                  pcVar11 = pcVar11 + 3;\n                  pcVar7 = pcVar5;\n                }\n              }\n              else {\nLAB_00137e1d:\n                if (pcVar7 == pcVar11) {\n                  pcVar5 = pcVar7;\n                  if (pcVar14 <= pcVar7) break;\n                  cVar3 = *pcVar7;\n                  while (cVar3 != '/') {\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar14;\n                    if (pcVar14 == pcVar5) goto LAB_00137d7b;\n                    cVar3 = *pcVar5;\n                  }\n                  pcVar11 = pcVar5 + 1;\n                  pcVar7 = pcVar5 + 1;\n                }\n                else {\n                  pcVar5 = pcVar11;\n                  if (pcVar14 <= pcVar11) break;\n                  while (cVar3 != '/') {\n                    pcVar11 = pcVar11 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar3;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar14;\n                    if (pcVar14 == pcVar11) goto LAB_00137d7b;\n                    cVar3 = *pcVar11;\n                  }\n                  *pcVar7 = *pcVar11;\n                  pcVar11 = pcVar11 + 1;\n                  pcVar7 = pcVar7 + 1;\n                }\n              }\n              pcVar5 = pcVar11;\n            } while (pcVar11 < pcVar14);\nLAB_00137d7b:\n            pcVar11 = pcVar7;\n            if (pcVar5 != pcVar7) {\n              *pcVar7 = '\0';\n            }\n          }\n          pcVar14 = *(char **)(piVar9 + 8);\n          pcVar6 = strrchr(pcVar14,0x2f);\n          if (pcVar6 == (char *)0x0) {\n            uVar8 = FUN_001496d9(&DAT_0015ea35);\n            *(undefined8 *)(piVar9 + 0x10) = uVar8;\n            uVar8 = FUN_001496d9(pcVar14);\n            *(undefined8 *)(piVar9 + 0x12) = uVar8;\n          }\n          else {\n            uVar8 = FUN_0013a40c(pcVar14,pcVar6);\n            *(undefined8 *)(piVar9 + 0x10) = uVar8;\n            uVar8 = FUN_001496d9(pcVar6 + 1);\n            *(undefined8 *)(piVar9 + 0x12) = uVar8;\n          }\n          FUN_00135c58(*(undefined8 *)(piVar9 + 0x10));\n          FUN_00135c58(*(undefined8 *)(piVar9 + 0x12));\n          pcVar14 = *(char **)(piVar9 + 4);\n          cVar3 = *pcVar14;\n          if (cVar3 == '\0') {\n            bVar17 = 0;\n          }\n          else {\n            bVar17 = 0;\n            do {\n              if ((int)cVar3 - 0x41U < 0x1a) {\n                *pcVar14 = cVar3 + ' ';\n                bVar17 = 1;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            } while (cVar3 != '\0');\n          }\n          pcVar14 = *(char **)(piVar9 + 4);\n          pcVar6 = strchr(pcVar14,0x25);\n          if (pcVar6 != (char *)0x0) {\n            FUN_00135c58(pcVar14);\n            pcVar14 = *(char **)(piVar9 + 4);\n            cVar3 = *pcVar14;\n            while (cVar3 != '\0') {\n              if ((-1 < cVar3) && ((cVar3 < ' ' || (cVar3 == '\x7f')))) {\n                FUN_0013629a(piVar9);\n                iVar15 = 3;\n                goto LAB_00137c65;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            }\n            bVar17 = param_3 != 0 & DAT_00177606;\n            if (bVar17 == 0) {\n              bVar17 = 1;\n            }\n            else {\n              lVar12 = FUN_0013eaa4(param_3);\n              if (lVar12 != 0) {\n                free(*(void **)(piVar9 + 4));\n                *(long *)(piVar9 + 4) = lVar12;\n              }\n            }\n          }\n          if (local_70 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_70,local_60);\n            *(undefined8 *)(piVar9 + 10) = uVar8;\n          }\n          if (local_b0 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_b0,local_58);\n            *(undefined8 *)(piVar9 + 0xc) = uVar8;\n          }\n          if (local_68 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_68,local_50);\n            *(undefined8 *)(piVar9 + 0xe) = uVar8;\n          }\n          param_2 = piVar9;\n          if ((((DAT_00177606 == 0) && (pcVar5 == pcVar11)) && (*(long *)(piVar9 + 0xe) == 0)) &&\n             ((local_88 != local_80 && (bVar17 == 0)))) {\n            if (local_b8 == param_1) {\n              uVar8 = FUN_001496d9(param_1);\n              *(undefined8 *)piVar9 = uVar8;\n            }\n            else {\n              *(void **)piVar9 = local_b8;\n            }\n          }\n          else {\n            uVar8 = FUN_00137051(piVar9,0);\n            *(undefined8 *)piVar9 = uVar8;\n            if (local_b8 != param_1) {\n              free(local_b8);\n            }\n          }\n          goto LAB_00137c95;\n        }\n        pcVar14 = pcVar14 + -1;\n        if (pcVar14 == pcVar11) {\n          iVar15 = 5;\n        }\n        else {\n          pcVar6 = (char *)memchr(pcVar11,0x3a,(long)pcVar14 - (long)pcVar11);\n          if (pcVar11 != pcVar6) {\n            pcVar5 = pcVar6;\n            if (pcVar6 != (char *)0x0) {\n              pcVar5 = (char *)FUN_0013a40c(pcVar6 + 1,pcVar14);\n              FUN_00135c58(pcVar5);\n              pcVar14 = pcVar6;\n            }\n            uVar8 = FUN_0013a40c(pcVar11,pcVar14);\n            FUN_00135c58(uVar8);\n            goto LAB_001379c6;\n          }\n          iVar15 = 5;\n        }\n      }\n    }" (if "if") (parenthesized_expression "(*pcVar14 == '[')" (( "(") (binary_expression "*pcVar14 == '['" (pointer_expression "*pcVar14" (* "*") (identifier "pcVar14")) (== "==") (char_literal "'['" (' "'") (character "[") (' "'"))) () ")")) (compound_statement "{\n      local_a8 = pcVar14 + 1;\n      local_a0 = strchr(local_a8,0x5d);\n      if (local_a0 == (char *)0x0) {\n        iVar15 = 6;\n      }\n      else {\n        cVar3 = FUN_0011c7c7(local_a8,local_a0);\n        if (cVar3 == '\0') {\n          iVar15 = 8;\n        }\n        else {\n          pcVar6 = local_a0 + 1;\n          pcVar7 = strchr(pcVar5,(int)local_a0[1]);\n          if (pcVar7 != (char *)0x0) goto LAB_00137554;\n          iVar15 = 3;\n        }\n      }\n    }" ({ "{") (expression_statement "local_a8 = pcVar14 + 1;" (assignment_expression "local_a8 = pcVar14 + 1" (identifier "local_a8") (= "=") (binary_expression "pcVar14 + 1" (identifier "pcVar14") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_a0 = strchr(local_a8,0x5d);" (assignment_expression "local_a0 = strchr(local_a8,0x5d)" (identifier "local_a0") (= "=") (call_expression "strchr(local_a8,0x5d)" (identifier "strchr") (argument_list "(local_a8,0x5d)" (( "(") (identifier "local_a8") (, ",") (number_literal "0x5d") () ")")))) (; ";")) (if_statement "if (local_a0 == (char *)0x0) {\n        iVar15 = 6;\n      }\n      else {\n        cVar3 = FUN_0011c7c7(local_a8,local_a0);\n        if (cVar3 == '\0') {\n          iVar15 = 8;\n        }\n        else {\n          pcVar6 = local_a0 + 1;\n          pcVar7 = strchr(pcVar5,(int)local_a0[1]);\n          if (pcVar7 != (char *)0x0) goto LAB_00137554;\n          iVar15 = 3;\n        }\n      }" (if "if") (parenthesized_expression "(local_a0 == (char *)0x0)" (( "(") (binary_expression "local_a0 == (char *)0x0" (identifier "local_a0") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        iVar15 = 6;\n      }" ({ "{") (expression_statement "iVar15 = 6;" (assignment_expression "iVar15 = 6" (identifier "iVar15") (= "=") (number_literal "6")) (; ";")) (} "}")) (else_clause "else {\n        cVar3 = FUN_0011c7c7(local_a8,local_a0);\n        if (cVar3 == '\0') {\n          iVar15 = 8;\n        }\n        else {\n          pcVar6 = local_a0 + 1;\n          pcVar7 = strchr(pcVar5,(int)local_a0[1]);\n          if (pcVar7 != (char *)0x0) goto LAB_00137554;\n          iVar15 = 3;\n        }\n      }" (else "else") (compound_statement "{\n        cVar3 = FUN_0011c7c7(local_a8,local_a0);\n        if (cVar3 == '\0') {\n          iVar15 = 8;\n        }\n        else {\n          pcVar6 = local_a0 + 1;\n          pcVar7 = strchr(pcVar5,(int)local_a0[1]);\n          if (pcVar7 != (char *)0x0) goto LAB_00137554;\n          iVar15 = 3;\n        }\n      }" ({ "{") (expression_statement "cVar3 = FUN_0011c7c7(local_a8,local_a0);" (assignment_expression "cVar3 = FUN_0011c7c7(local_a8,local_a0)" (identifier "cVar3") (= "=") (call_expression "FUN_0011c7c7(local_a8,local_a0)" (identifier "FUN_0011c7c7") (argument_list "(local_a8,local_a0)" (( "(") (identifier "local_a8") (, ",") (identifier "local_a0") () ")")))) (; ";")) (if_statement "if (cVar3 == '\0') {\n          iVar15 = 8;\n        }\n        else {\n          pcVar6 = local_a0 + 1;\n          pcVar7 = strchr(pcVar5,(int)local_a0[1]);\n          if (pcVar7 != (char *)0x0) goto LAB_00137554;\n          iVar15 = 3;\n        }" (if "if") (parenthesized_expression "(cVar3 == '\0')" (( "(") (binary_expression "cVar3 == '\0'" (identifier "cVar3") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n          iVar15 = 8;\n        }" ({ "{") (expression_statement "iVar15 = 8;" (assignment_expression "iVar15 = 8" (identifier "iVar15") (= "=") (number_literal "8")) (; ";")) (} "}")) (else_clause "else {\n          pcVar6 = local_a0 + 1;\n          pcVar7 = strchr(pcVar5,(int)local_a0[1]);\n          if (pcVar7 != (char *)0x0) goto LAB_00137554;\n          iVar15 = 3;\n        }" (else "else") (compound_statement "{\n          pcVar6 = local_a0 + 1;\n          pcVar7 = strchr(pcVar5,(int)local_a0[1]);\n          if (pcVar7 != (char *)0x0) goto LAB_00137554;\n          iVar15 = 3;\n        }" ({ "{") (expression_statement "pcVar6 = local_a0 + 1;" (assignment_expression "pcVar6 = local_a0 + 1" (identifier "pcVar6") (= "=") (binary_expression "local_a0 + 1" (identifier "local_a0") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pcVar7 = strchr(pcVar5,(int)local_a0[1]);" (assignment_expression "pcVar7 = strchr(pcVar5,(int)local_a0[1])" (identifier "pcVar7") (= "=") (call_expression "strchr(pcVar5,(int)local_a0[1])" (identifier "strchr") (argument_list "(pcVar5,(int)local_a0[1])" (( "(") (identifier "pcVar5") (, ",") (cast_expression "(int)local_a0[1]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "local_a0[1]" (identifier "local_a0") ([ "[") (number_literal "1") (] "]"))) () ")")))) (; ";")) (if_statement "if (pcVar7 != (char *)0x0) goto LAB_00137554;" (if "if") (parenthesized_expression "(pcVar7 != (char *)0x0)" (( "(") (binary_expression "pcVar7 != (char *)0x0" (identifier "pcVar7") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00137554;" (goto "goto") (statement_identifier "LAB_00137554") (; ";"))) (expression_statement "iVar15 = 3;" (assignment_expression "iVar15 = 3" (identifier "iVar15") (= "=") (number_literal "3")) (; ";")) (} "}")))) (} "}")))) (} "}")) (else_clause "else {\n      pcVar6 = strpbrk(pcVar14,pcVar5);\n      local_a8 = pcVar14;\n      local_a0 = pcVar6;\n      if (pcVar6 == (char *)0x0) {\n        uVar13 = 0xffffffffffffffff;\n        pcVar6 = pcVar14;\n        do {\n          if (uVar13 == 0) break;\n          uVar13 = uVar13 - 1;\n          cVar3 = *pcVar6;\n          pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n        } while (cVar3 != '\0');\n        pcVar6 = pcVar14 + (~uVar13 - 1);\n        local_a0 = pcVar6;\n      }\nLAB_00137554:\n      if (local_a8 == local_a0) {\n        iVar15 = 3;\n      }\n      else {\n        local_74 = *(uint *)(&DAT_0016e350 + (ulong)uVar4 * 0x18);\n        pcVar7 = pcVar6;\n        if (*pcVar6 == ':') {\n          __s = pcVar6 + 1;\n          pcVar7 = strpbrk(__s,pcVar5 + 1);\n          if (pcVar7 == (char *)0x0) {\n            uVar13 = 0xffffffffffffffff;\n            pcVar7 = __s;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar7;\n              pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');\n            pcVar7 = pcVar6 + ~uVar13;\n          }\n          if (__s != pcVar7) {\n            if (__s < pcVar7) {\n              local_74 = (int)pcVar6[1] - 0x30;\n              if (local_74 < 10) {\n                do {\n                  __s = __s + 1;\n                  if (__s == pcVar7) goto LAB_00137584;\n                  if (9 < (int)*__s - 0x30U) {\n                    iVar15 = 4;\n                    goto LAB_00137c65;\n                  }\n                  local_74 = *__s + -0x30 + local_74 * 10;\n                } while ((int)local_74 < 0x10000);\n                iVar15 = 4;\n              }\n              else {\n                iVar15 = 4;\n              }\n              goto LAB_00137c65;\n            }\n            local_74 = 0;\n          }\n        }\nLAB_00137584:\n        local_80 = (char *)0x0;\n        local_88 = (char *)0x0;\n        pcVar6 = pcVar7;\n        if (*pcVar7 == '/') {\n          local_88 = pcVar7 + 1;\n          pcVar6 = strpbrk(local_88,pcVar5 + 2);\n          local_80 = pcVar6;\n          if (pcVar6 == (char *)0x0) {\n            uVar13 = 0xffffffffffffffff;\n            pcVar6 = local_88;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');\n            pcVar6 = pcVar7 + ~uVar13;\n            local_80 = pcVar6;\n          }\n        }\n        local_90 = pcVar5 + 3;\n        uVar2 = (&DAT_0016e354)[(ulong)uVar4 * 6];\n        if ((uVar2 & 2) == 0) {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n        }\n        else {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n          pcVar7 = pcVar6;\n          if (*pcVar6 == ';') {\n            local_70 = pcVar6 + 1;\n            pcVar7 = strpbrk(local_70,local_90);\n            local_60 = pcVar7;\n            if (pcVar7 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar7 = local_70;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar7;\n                pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar7 = pcVar6 + ~uVar13;\n              local_60 = pcVar7;\n            }\n          }\n          local_90 = pcVar5 + 4;\n          pcVar6 = pcVar7;\n        }\n        if ((uVar2 & 4) == 0) {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n        }\n        else {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n          pcVar5 = pcVar6;\n          if (*pcVar6 == '?') {\n            local_b0 = pcVar6 + 1;\n            pcVar5 = strpbrk(local_b0,local_90);\n            local_58 = pcVar5;\n            if (pcVar5 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_b0;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar5 = pcVar6 + ~uVar13;\n              local_58 = pcVar5;\n            }\n          }\n          local_90 = local_90 + 1;\n          pcVar6 = pcVar5;\n        }\n        if ((uVar2 & 8) == 0) {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n        }\n        else {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n          if (*pcVar6 == '#') {\n            local_68 = pcVar6 + 1;\n            local_50 = strpbrk(local_68,local_90);\n            if (local_50 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_68;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              local_50 = pcVar6 + ~uVar13;\n            }\n          }\n        }\n        if (pcVar11 == pcVar14) {\n          pcVar5 = (char *)0x0;\n          uVar8 = 0;\nLAB_001379c6:\n          piVar9 = (int *)FUN_0014967c(1,0x60);\n          piVar9[2] = uVar4;\n          uVar10 = FUN_0013a40c(local_a8,local_a0);\n          *(undefined8 *)(piVar9 + 4) = uVar10;\n          piVar9[6] = local_74;\n          *(undefined8 *)(piVar9 + 0x14) = uVar8;\n          *(char **)(piVar9 + 0x16) = pcVar5;\n          pcVar11 = (char *)FUN_0013a40c(local_88,local_80);\n          *(char **)(piVar9 + 8) = pcVar11;\n          uVar13 = 0xffffffffffffffff;\n          pcVar14 = pcVar11;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar3 = *pcVar14;\n            pcVar14 = pcVar14 + (ulong)bVar17 * -2 + 1;\n          } while (cVar3 != '\0');\n          pcVar14 = pcVar11 + (~uVar13 - 1);\n          pcVar5 = pcVar11;\n          if (pcVar11 < pcVar14) {\n            pcVar7 = pcVar11;\n            pcVar6 = pcVar11;\n            do {\n              cVar3 = *pcVar11;\n              if (cVar3 == '.') {\n                cVar1 = pcVar11[1];\n                if ((cVar1 == '/') || (cVar1 == '\0')) {\n                  pcVar11 = pcVar11 + 2;\n                }\n                else {\n                  if ((cVar1 != '.') || ((pcVar11[2] != '/' && (pcVar11[2] != '\0'))))\n                  goto LAB_00137e1d;\n                  if (pcVar6 < pcVar7) {\n                    pcVar5 = pcVar7 + -1;\n                    if (pcVar6 < pcVar5) {\n                      cVar3 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar3 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar3 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar5 = pcVar7;\n                    if (uVar4 - 2 < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }\n                  pcVar11 = pcVar11 + 3;\n                  pcVar7 = pcVar5;\n                }\n              }\n              else {\nLAB_00137e1d:\n                if (pcVar7 == pcVar11) {\n                  pcVar5 = pcVar7;\n                  if (pcVar14 <= pcVar7) break;\n                  cVar3 = *pcVar7;\n                  while (cVar3 != '/') {\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar14;\n                    if (pcVar14 == pcVar5) goto LAB_00137d7b;\n                    cVar3 = *pcVar5;\n                  }\n                  pcVar11 = pcVar5 + 1;\n                  pcVar7 = pcVar5 + 1;\n                }\n                else {\n                  pcVar5 = pcVar11;\n                  if (pcVar14 <= pcVar11) break;\n                  while (cVar3 != '/') {\n                    pcVar11 = pcVar11 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar3;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar14;\n                    if (pcVar14 == pcVar11) goto LAB_00137d7b;\n                    cVar3 = *pcVar11;\n                  }\n                  *pcVar7 = *pcVar11;\n                  pcVar11 = pcVar11 + 1;\n                  pcVar7 = pcVar7 + 1;\n                }\n              }\n              pcVar5 = pcVar11;\n            } while (pcVar11 < pcVar14);\nLAB_00137d7b:\n            pcVar11 = pcVar7;\n            if (pcVar5 != pcVar7) {\n              *pcVar7 = '\0';\n            }\n          }\n          pcVar14 = *(char **)(piVar9 + 8);\n          pcVar6 = strrchr(pcVar14,0x2f);\n          if (pcVar6 == (char *)0x0) {\n            uVar8 = FUN_001496d9(&DAT_0015ea35);\n            *(undefined8 *)(piVar9 + 0x10) = uVar8;\n            uVar8 = FUN_001496d9(pcVar14);\n            *(undefined8 *)(piVar9 + 0x12) = uVar8;\n          }\n          else {\n            uVar8 = FUN_0013a40c(pcVar14,pcVar6);\n            *(undefined8 *)(piVar9 + 0x10) = uVar8;\n            uVar8 = FUN_001496d9(pcVar6 + 1);\n            *(undefined8 *)(piVar9 + 0x12) = uVar8;\n          }\n          FUN_00135c58(*(undefined8 *)(piVar9 + 0x10));\n          FUN_00135c58(*(undefined8 *)(piVar9 + 0x12));\n          pcVar14 = *(char **)(piVar9 + 4);\n          cVar3 = *pcVar14;\n          if (cVar3 == '\0') {\n            bVar17 = 0;\n          }\n          else {\n            bVar17 = 0;\n            do {\n              if ((int)cVar3 - 0x41U < 0x1a) {\n                *pcVar14 = cVar3 + ' ';\n                bVar17 = 1;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            } while (cVar3 != '\0');\n          }\n          pcVar14 = *(char **)(piVar9 + 4);\n          pcVar6 = strchr(pcVar14,0x25);\n          if (pcVar6 != (char *)0x0) {\n            FUN_00135c58(pcVar14);\n            pcVar14 = *(char **)(piVar9 + 4);\n            cVar3 = *pcVar14;\n            while (cVar3 != '\0') {\n              if ((-1 < cVar3) && ((cVar3 < ' ' || (cVar3 == '\x7f')))) {\n                FUN_0013629a(piVar9);\n                iVar15 = 3;\n                goto LAB_00137c65;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            }\n            bVar17 = param_3 != 0 & DAT_00177606;\n            if (bVar17 == 0) {\n              bVar17 = 1;\n            }\n            else {\n              lVar12 = FUN_0013eaa4(param_3);\n              if (lVar12 != 0) {\n                free(*(void **)(piVar9 + 4));\n                *(long *)(piVar9 + 4) = lVar12;\n              }\n            }\n          }\n          if (local_70 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_70,local_60);\n            *(undefined8 *)(piVar9 + 10) = uVar8;\n          }\n          if (local_b0 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_b0,local_58);\n            *(undefined8 *)(piVar9 + 0xc) = uVar8;\n          }\n          if (local_68 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_68,local_50);\n            *(undefined8 *)(piVar9 + 0xe) = uVar8;\n          }\n          param_2 = piVar9;\n          if ((((DAT_00177606 == 0) && (pcVar5 == pcVar11)) && (*(long *)(piVar9 + 0xe) == 0)) &&\n             ((local_88 != local_80 && (bVar17 == 0)))) {\n            if (local_b8 == param_1) {\n              uVar8 = FUN_001496d9(param_1);\n              *(undefined8 *)piVar9 = uVar8;\n            }\n            else {\n              *(void **)piVar9 = local_b8;\n            }\n          }\n          else {\n            uVar8 = FUN_00137051(piVar9,0);\n            *(undefined8 *)piVar9 = uVar8;\n            if (local_b8 != param_1) {\n              free(local_b8);\n            }\n          }\n          goto LAB_00137c95;\n        }\n        pcVar14 = pcVar14 + -1;\n        if (pcVar14 == pcVar11) {\n          iVar15 = 5;\n        }\n        else {\n          pcVar6 = (char *)memchr(pcVar11,0x3a,(long)pcVar14 - (long)pcVar11);\n          if (pcVar11 != pcVar6) {\n            pcVar5 = pcVar6;\n            if (pcVar6 != (char *)0x0) {\n              pcVar5 = (char *)FUN_0013a40c(pcVar6 + 1,pcVar14);\n              FUN_00135c58(pcVar5);\n              pcVar14 = pcVar6;\n            }\n            uVar8 = FUN_0013a40c(pcVar11,pcVar14);\n            FUN_00135c58(uVar8);\n            goto LAB_001379c6;\n          }\n          iVar15 = 5;\n        }\n      }\n    }" (else "else") (compound_statement "{\n      pcVar6 = strpbrk(pcVar14,pcVar5);\n      local_a8 = pcVar14;\n      local_a0 = pcVar6;\n      if (pcVar6 == (char *)0x0) {\n        uVar13 = 0xffffffffffffffff;\n        pcVar6 = pcVar14;\n        do {\n          if (uVar13 == 0) break;\n          uVar13 = uVar13 - 1;\n          cVar3 = *pcVar6;\n          pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n        } while (cVar3 != '\0');\n        pcVar6 = pcVar14 + (~uVar13 - 1);\n        local_a0 = pcVar6;\n      }\nLAB_00137554:\n      if (local_a8 == local_a0) {\n        iVar15 = 3;\n      }\n      else {\n        local_74 = *(uint *)(&DAT_0016e350 + (ulong)uVar4 * 0x18);\n        pcVar7 = pcVar6;\n        if (*pcVar6 == ':') {\n          __s = pcVar6 + 1;\n          pcVar7 = strpbrk(__s,pcVar5 + 1);\n          if (pcVar7 == (char *)0x0) {\n            uVar13 = 0xffffffffffffffff;\n            pcVar7 = __s;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar7;\n              pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');\n            pcVar7 = pcVar6 + ~uVar13;\n          }\n          if (__s != pcVar7) {\n            if (__s < pcVar7) {\n              local_74 = (int)pcVar6[1] - 0x30;\n              if (local_74 < 10) {\n                do {\n                  __s = __s + 1;\n                  if (__s == pcVar7) goto LAB_00137584;\n                  if (9 < (int)*__s - 0x30U) {\n                    iVar15 = 4;\n                    goto LAB_00137c65;\n                  }\n                  local_74 = *__s + -0x30 + local_74 * 10;\n                } while ((int)local_74 < 0x10000);\n                iVar15 = 4;\n              }\n              else {\n                iVar15 = 4;\n              }\n              goto LAB_00137c65;\n            }\n            local_74 = 0;\n          }\n        }\nLAB_00137584:\n        local_80 = (char *)0x0;\n        local_88 = (char *)0x0;\n        pcVar6 = pcVar7;\n        if (*pcVar7 == '/') {\n          local_88 = pcVar7 + 1;\n          pcVar6 = strpbrk(local_88,pcVar5 + 2);\n          local_80 = pcVar6;\n          if (pcVar6 == (char *)0x0) {\n            uVar13 = 0xffffffffffffffff;\n            pcVar6 = local_88;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');\n            pcVar6 = pcVar7 + ~uVar13;\n            local_80 = pcVar6;\n          }\n        }\n        local_90 = pcVar5 + 3;\n        uVar2 = (&DAT_0016e354)[(ulong)uVar4 * 6];\n        if ((uVar2 & 2) == 0) {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n        }\n        else {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n          pcVar7 = pcVar6;\n          if (*pcVar6 == ';') {\n            local_70 = pcVar6 + 1;\n            pcVar7 = strpbrk(local_70,local_90);\n            local_60 = pcVar7;\n            if (pcVar7 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar7 = local_70;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar7;\n                pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar7 = pcVar6 + ~uVar13;\n              local_60 = pcVar7;\n            }\n          }\n          local_90 = pcVar5 + 4;\n          pcVar6 = pcVar7;\n        }\n        if ((uVar2 & 4) == 0) {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n        }\n        else {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n          pcVar5 = pcVar6;\n          if (*pcVar6 == '?') {\n            local_b0 = pcVar6 + 1;\n            pcVar5 = strpbrk(local_b0,local_90);\n            local_58 = pcVar5;\n            if (pcVar5 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_b0;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar5 = pcVar6 + ~uVar13;\n              local_58 = pcVar5;\n            }\n          }\n          local_90 = local_90 + 1;\n          pcVar6 = pcVar5;\n        }\n        if ((uVar2 & 8) == 0) {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n        }\n        else {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n          if (*pcVar6 == '#') {\n            local_68 = pcVar6 + 1;\n            local_50 = strpbrk(local_68,local_90);\n            if (local_50 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_68;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              local_50 = pcVar6 + ~uVar13;\n            }\n          }\n        }\n        if (pcVar11 == pcVar14) {\n          pcVar5 = (char *)0x0;\n          uVar8 = 0;\nLAB_001379c6:\n          piVar9 = (int *)FUN_0014967c(1,0x60);\n          piVar9[2] = uVar4;\n          uVar10 = FUN_0013a40c(local_a8,local_a0);\n          *(undefined8 *)(piVar9 + 4) = uVar10;\n          piVar9[6] = local_74;\n          *(undefined8 *)(piVar9 + 0x14) = uVar8;\n          *(char **)(piVar9 + 0x16) = pcVar5;\n          pcVar11 = (char *)FUN_0013a40c(local_88,local_80);\n          *(char **)(piVar9 + 8) = pcVar11;\n          uVar13 = 0xffffffffffffffff;\n          pcVar14 = pcVar11;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar3 = *pcVar14;\n            pcVar14 = pcVar14 + (ulong)bVar17 * -2 + 1;\n          } while (cVar3 != '\0');\n          pcVar14 = pcVar11 + (~uVar13 - 1);\n          pcVar5 = pcVar11;\n          if (pcVar11 < pcVar14) {\n            pcVar7 = pcVar11;\n            pcVar6 = pcVar11;\n            do {\n              cVar3 = *pcVar11;\n              if (cVar3 == '.') {\n                cVar1 = pcVar11[1];\n                if ((cVar1 == '/') || (cVar1 == '\0')) {\n                  pcVar11 = pcVar11 + 2;\n                }\n                else {\n                  if ((cVar1 != '.') || ((pcVar11[2] != '/' && (pcVar11[2] != '\0'))))\n                  goto LAB_00137e1d;\n                  if (pcVar6 < pcVar7) {\n                    pcVar5 = pcVar7 + -1;\n                    if (pcVar6 < pcVar5) {\n                      cVar3 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar3 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar3 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar5 = pcVar7;\n                    if (uVar4 - 2 < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }\n                  pcVar11 = pcVar11 + 3;\n                  pcVar7 = pcVar5;\n                }\n              }\n              else {\nLAB_00137e1d:\n                if (pcVar7 == pcVar11) {\n                  pcVar5 = pcVar7;\n                  if (pcVar14 <= pcVar7) break;\n                  cVar3 = *pcVar7;\n                  while (cVar3 != '/') {\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar14;\n                    if (pcVar14 == pcVar5) goto LAB_00137d7b;\n                    cVar3 = *pcVar5;\n                  }\n                  pcVar11 = pcVar5 + 1;\n                  pcVar7 = pcVar5 + 1;\n                }\n                else {\n                  pcVar5 = pcVar11;\n                  if (pcVar14 <= pcVar11) break;\n                  while (cVar3 != '/') {\n                    pcVar11 = pcVar11 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar3;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar14;\n                    if (pcVar14 == pcVar11) goto LAB_00137d7b;\n                    cVar3 = *pcVar11;\n                  }\n                  *pcVar7 = *pcVar11;\n                  pcVar11 = pcVar11 + 1;\n                  pcVar7 = pcVar7 + 1;\n                }\n              }\n              pcVar5 = pcVar11;\n            } while (pcVar11 < pcVar14);\nLAB_00137d7b:\n            pcVar11 = pcVar7;\n            if (pcVar5 != pcVar7) {\n              *pcVar7 = '\0';\n            }\n          }\n          pcVar14 = *(char **)(piVar9 + 8);\n          pcVar6 = strrchr(pcVar14,0x2f);\n          if (pcVar6 == (char *)0x0) {\n            uVar8 = FUN_001496d9(&DAT_0015ea35);\n            *(undefined8 *)(piVar9 + 0x10) = uVar8;\n            uVar8 = FUN_001496d9(pcVar14);\n            *(undefined8 *)(piVar9 + 0x12) = uVar8;\n          }\n          else {\n            uVar8 = FUN_0013a40c(pcVar14,pcVar6);\n            *(undefined8 *)(piVar9 + 0x10) = uVar8;\n            uVar8 = FUN_001496d9(pcVar6 + 1);\n            *(undefined8 *)(piVar9 + 0x12) = uVar8;\n          }\n          FUN_00135c58(*(undefined8 *)(piVar9 + 0x10));\n          FUN_00135c58(*(undefined8 *)(piVar9 + 0x12));\n          pcVar14 = *(char **)(piVar9 + 4);\n          cVar3 = *pcVar14;\n          if (cVar3 == '\0') {\n            bVar17 = 0;\n          }\n          else {\n            bVar17 = 0;\n            do {\n              if ((int)cVar3 - 0x41U < 0x1a) {\n                *pcVar14 = cVar3 + ' ';\n                bVar17 = 1;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            } while (cVar3 != '\0');\n          }\n          pcVar14 = *(char **)(piVar9 + 4);\n          pcVar6 = strchr(pcVar14,0x25);\n          if (pcVar6 != (char *)0x0) {\n            FUN_00135c58(pcVar14);\n            pcVar14 = *(char **)(piVar9 + 4);\n            cVar3 = *pcVar14;\n            while (cVar3 != '\0') {\n              if ((-1 < cVar3) && ((cVar3 < ' ' || (cVar3 == '\x7f')))) {\n                FUN_0013629a(piVar9);\n                iVar15 = 3;\n                goto LAB_00137c65;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            }\n            bVar17 = param_3 != 0 & DAT_00177606;\n            if (bVar17 == 0) {\n              bVar17 = 1;\n            }\n            else {\n              lVar12 = FUN_0013eaa4(param_3);\n              if (lVar12 != 0) {\n                free(*(void **)(piVar9 + 4));\n                *(long *)(piVar9 + 4) = lVar12;\n              }\n            }\n          }\n          if (local_70 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_70,local_60);\n            *(undefined8 *)(piVar9 + 10) = uVar8;\n          }\n          if (local_b0 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_b0,local_58);\n            *(undefined8 *)(piVar9 + 0xc) = uVar8;\n          }\n          if (local_68 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_68,local_50);\n            *(undefined8 *)(piVar9 + 0xe) = uVar8;\n          }\n          param_2 = piVar9;\n          if ((((DAT_00177606 == 0) && (pcVar5 == pcVar11)) && (*(long *)(piVar9 + 0xe) == 0)) &&\n             ((local_88 != local_80 && (bVar17 == 0)))) {\n            if (local_b8 == param_1) {\n              uVar8 = FUN_001496d9(param_1);\n              *(undefined8 *)piVar9 = uVar8;\n            }\n            else {\n              *(void **)piVar9 = local_b8;\n            }\n          }\n          else {\n            uVar8 = FUN_00137051(piVar9,0);\n            *(undefined8 *)piVar9 = uVar8;\n            if (local_b8 != param_1) {\n              free(local_b8);\n            }\n          }\n          goto LAB_00137c95;\n        }\n        pcVar14 = pcVar14 + -1;\n        if (pcVar14 == pcVar11) {\n          iVar15 = 5;\n        }\n        else {\n          pcVar6 = (char *)memchr(pcVar11,0x3a,(long)pcVar14 - (long)pcVar11);\n          if (pcVar11 != pcVar6) {\n            pcVar5 = pcVar6;\n            if (pcVar6 != (char *)0x0) {\n              pcVar5 = (char *)FUN_0013a40c(pcVar6 + 1,pcVar14);\n              FUN_00135c58(pcVar5);\n              pcVar14 = pcVar6;\n            }\n            uVar8 = FUN_0013a40c(pcVar11,pcVar14);\n            FUN_00135c58(uVar8);\n            goto LAB_001379c6;\n          }\n          iVar15 = 5;\n        }\n      }\n    }" ({ "{") (expression_statement "pcVar6 = strpbrk(pcVar14,pcVar5);" (assignment_expression "pcVar6 = strpbrk(pcVar14,pcVar5)" (identifier "pcVar6") (= "=") (call_expression "strpbrk(pcVar14,pcVar5)" (identifier "strpbrk") (argument_list "(pcVar14,pcVar5)" (( "(") (identifier "pcVar14") (, ",") (identifier "pcVar5") () ")")))) (; ";")) (expression_statement "local_a8 = pcVar14;" (assignment_expression "local_a8 = pcVar14" (identifier "local_a8") (= "=") (identifier "pcVar14")) (; ";")) (expression_statement "local_a0 = pcVar6;" (assignment_expression "local_a0 = pcVar6" (identifier "local_a0") (= "=") (identifier "pcVar6")) (; ";")) (if_statement "if (pcVar6 == (char *)0x0) {\n        uVar13 = 0xffffffffffffffff;\n        pcVar6 = pcVar14;\n        do {\n          if (uVar13 == 0) break;\n          uVar13 = uVar13 - 1;\n          cVar3 = *pcVar6;\n          pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n        } while (cVar3 != '\0');\n        pcVar6 = pcVar14 + (~uVar13 - 1);\n        local_a0 = pcVar6;\n      }" (if "if") (parenthesized_expression "(pcVar6 == (char *)0x0)" (( "(") (binary_expression "pcVar6 == (char *)0x0" (identifier "pcVar6") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        uVar13 = 0xffffffffffffffff;\n        pcVar6 = pcVar14;\n        do {\n          if (uVar13 == 0) break;\n          uVar13 = uVar13 - 1;\n          cVar3 = *pcVar6;\n          pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n        } while (cVar3 != '\0');\n        pcVar6 = pcVar14 + (~uVar13 - 1);\n        local_a0 = pcVar6;\n      }" ({ "{") (expression_statement "uVar13 = 0xffffffffffffffff;" (assignment_expression "uVar13 = 0xffffffffffffffff" (identifier "uVar13") (= "=") (number_literal "0xffffffffffffffff")) (; ";")) (expression_statement "pcVar6 = pcVar14;" (assignment_expression "pcVar6 = pcVar14" (identifier "pcVar6") (= "=") (identifier "pcVar14")) (; ";")) (do_statement "do {\n          if (uVar13 == 0) break;\n          uVar13 = uVar13 - 1;\n          cVar3 = *pcVar6;\n          pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n        } while (cVar3 != '\0');" (do "do") (compound_statement "{\n          if (uVar13 == 0) break;\n          uVar13 = uVar13 - 1;\n          cVar3 = *pcVar6;\n          pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n        }" ({ "{") (if_statement "if (uVar13 == 0) break;" (if "if") (parenthesized_expression "(uVar13 == 0)" (( "(") (binary_expression "uVar13 == 0" (identifier "uVar13") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar13 = uVar13 - 1;" (assignment_expression "uVar13 = uVar13 - 1" (identifier "uVar13") (= "=") (binary_expression "uVar13 - 1" (identifier "uVar13") (- "-") (number_literal "1"))) (; ";")) (expression_statement "cVar3 = *pcVar6;" (assignment_expression "cVar3 = *pcVar6" (identifier "cVar3") (= "=") (pointer_expression "*pcVar6" (* "*") (identifier "pcVar6"))) (; ";")) (expression_statement "pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1" (identifier "pcVar6") (= "=") (binary_expression "pcVar6 + (ulong)bVar17 * -2 + 1" (binary_expression "pcVar6 + (ulong)bVar17 * -2" (identifier "pcVar6") (+ "+") (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar17")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(cVar3 != '\0')" (( "(") (binary_expression "cVar3 != '\0'" (identifier "cVar3") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (; ";")) (expression_statement "pcVar6 = pcVar14 + (~uVar13 - 1);" (assignment_expression "pcVar6 = pcVar14 + (~uVar13 - 1)" (identifier "pcVar6") (= "=") (binary_expression "pcVar14 + (~uVar13 - 1)" (identifier "pcVar14") (+ "+") (parenthesized_expression "(~uVar13 - 1)" (( "(") (binary_expression "~uVar13 - 1" (unary_expression "~uVar13" (~ "~") (identifier "uVar13")) (- "-") (number_literal "1")) () ")")))) (; ";")) (expression_statement "local_a0 = pcVar6;" (assignment_expression "local_a0 = pcVar6" (identifier "local_a0") (= "=") (identifier "pcVar6")) (; ";")) (} "}"))) (labeled_statement "LAB_00137554:\n      if (local_a8 == local_a0) {\n        iVar15 = 3;\n      }\n      else {\n        local_74 = *(uint *)(&DAT_0016e350 + (ulong)uVar4 * 0x18);\n        pcVar7 = pcVar6;\n        if (*pcVar6 == ':') {\n          __s = pcVar6 + 1;\n          pcVar7 = strpbrk(__s,pcVar5 + 1);\n          if (pcVar7 == (char *)0x0) {\n            uVar13 = 0xffffffffffffffff;\n            pcVar7 = __s;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar7;\n              pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');\n            pcVar7 = pcVar6 + ~uVar13;\n          }\n          if (__s != pcVar7) {\n            if (__s < pcVar7) {\n              local_74 = (int)pcVar6[1] - 0x30;\n              if (local_74 < 10) {\n                do {\n                  __s = __s + 1;\n                  if (__s == pcVar7) goto LAB_00137584;\n                  if (9 < (int)*__s - 0x30U) {\n                    iVar15 = 4;\n                    goto LAB_00137c65;\n                  }\n                  local_74 = *__s + -0x30 + local_74 * 10;\n                } while ((int)local_74 < 0x10000);\n                iVar15 = 4;\n              }\n              else {\n                iVar15 = 4;\n              }\n              goto LAB_00137c65;\n            }\n            local_74 = 0;\n          }\n        }\nLAB_00137584:\n        local_80 = (char *)0x0;\n        local_88 = (char *)0x0;\n        pcVar6 = pcVar7;\n        if (*pcVar7 == '/') {\n          local_88 = pcVar7 + 1;\n          pcVar6 = strpbrk(local_88,pcVar5 + 2);\n          local_80 = pcVar6;\n          if (pcVar6 == (char *)0x0) {\n            uVar13 = 0xffffffffffffffff;\n            pcVar6 = local_88;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');\n            pcVar6 = pcVar7 + ~uVar13;\n            local_80 = pcVar6;\n          }\n        }\n        local_90 = pcVar5 + 3;\n        uVar2 = (&DAT_0016e354)[(ulong)uVar4 * 6];\n        if ((uVar2 & 2) == 0) {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n        }\n        else {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n          pcVar7 = pcVar6;\n          if (*pcVar6 == ';') {\n            local_70 = pcVar6 + 1;\n            pcVar7 = strpbrk(local_70,local_90);\n            local_60 = pcVar7;\n            if (pcVar7 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar7 = local_70;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar7;\n                pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar7 = pcVar6 + ~uVar13;\n              local_60 = pcVar7;\n            }\n          }\n          local_90 = pcVar5 + 4;\n          pcVar6 = pcVar7;\n        }\n        if ((uVar2 & 4) == 0) {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n        }\n        else {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n          pcVar5 = pcVar6;\n          if (*pcVar6 == '?') {\n            local_b0 = pcVar6 + 1;\n            pcVar5 = strpbrk(local_b0,local_90);\n            local_58 = pcVar5;\n            if (pcVar5 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_b0;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar5 = pcVar6 + ~uVar13;\n              local_58 = pcVar5;\n            }\n          }\n          local_90 = local_90 + 1;\n          pcVar6 = pcVar5;\n        }\n        if ((uVar2 & 8) == 0) {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n        }\n        else {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n          if (*pcVar6 == '#') {\n            local_68 = pcVar6 + 1;\n            local_50 = strpbrk(local_68,local_90);\n            if (local_50 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_68;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              local_50 = pcVar6 + ~uVar13;\n            }\n          }\n        }\n        if (pcVar11 == pcVar14) {\n          pcVar5 = (char *)0x0;\n          uVar8 = 0;\nLAB_001379c6:\n          piVar9 = (int *)FUN_0014967c(1,0x60);\n          piVar9[2] = uVar4;\n          uVar10 = FUN_0013a40c(local_a8,local_a0);\n          *(undefined8 *)(piVar9 + 4) = uVar10;\n          piVar9[6] = local_74;\n          *(undefined8 *)(piVar9 + 0x14) = uVar8;\n          *(char **)(piVar9 + 0x16) = pcVar5;\n          pcVar11 = (char *)FUN_0013a40c(local_88,local_80);\n          *(char **)(piVar9 + 8) = pcVar11;\n          uVar13 = 0xffffffffffffffff;\n          pcVar14 = pcVar11;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar3 = *pcVar14;\n            pcVar14 = pcVar14 + (ulong)bVar17 * -2 + 1;\n          } while (cVar3 != '\0');\n          pcVar14 = pcVar11 + (~uVar13 - 1);\n          pcVar5 = pcVar11;\n          if (pcVar11 < pcVar14) {\n            pcVar7 = pcVar11;\n            pcVar6 = pcVar11;\n            do {\n              cVar3 = *pcVar11;\n              if (cVar3 == '.') {\n                cVar1 = pcVar11[1];\n                if ((cVar1 == '/') || (cVar1 == '\0')) {\n                  pcVar11 = pcVar11 + 2;\n                }\n                else {\n                  if ((cVar1 != '.') || ((pcVar11[2] != '/' && (pcVar11[2] != '\0'))))\n                  goto LAB_00137e1d;\n                  if (pcVar6 < pcVar7) {\n                    pcVar5 = pcVar7 + -1;\n                    if (pcVar6 < pcVar5) {\n                      cVar3 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar3 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar3 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar5 = pcVar7;\n                    if (uVar4 - 2 < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }\n                  pcVar11 = pcVar11 + 3;\n                  pcVar7 = pcVar5;\n                }\n              }\n              else {\nLAB_00137e1d:\n                if (pcVar7 == pcVar11) {\n                  pcVar5 = pcVar7;\n                  if (pcVar14 <= pcVar7) break;\n                  cVar3 = *pcVar7;\n                  while (cVar3 != '/') {\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar14;\n                    if (pcVar14 == pcVar5) goto LAB_00137d7b;\n                    cVar3 = *pcVar5;\n                  }\n                  pcVar11 = pcVar5 + 1;\n                  pcVar7 = pcVar5 + 1;\n                }\n                else {\n                  pcVar5 = pcVar11;\n                  if (pcVar14 <= pcVar11) break;\n                  while (cVar3 != '/') {\n                    pcVar11 = pcVar11 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar3;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar14;\n                    if (pcVar14 == pcVar11) goto LAB_00137d7b;\n                    cVar3 = *pcVar11;\n                  }\n                  *pcVar7 = *pcVar11;\n                  pcVar11 = pcVar11 + 1;\n                  pcVar7 = pcVar7 + 1;\n                }\n              }\n              pcVar5 = pcVar11;\n            } while (pcVar11 < pcVar14);\nLAB_00137d7b:\n            pcVar11 = pcVar7;\n            if (pcVar5 != pcVar7) {\n              *pcVar7 = '\0';\n            }\n          }\n          pcVar14 = *(char **)(piVar9 + 8);\n          pcVar6 = strrchr(pcVar14,0x2f);\n          if (pcVar6 == (char *)0x0) {\n            uVar8 = FUN_001496d9(&DAT_0015ea35);\n            *(undefined8 *)(piVar9 + 0x10) = uVar8;\n            uVar8 = FUN_001496d9(pcVar14);\n            *(undefined8 *)(piVar9 + 0x12) = uVar8;\n          }\n          else {\n            uVar8 = FUN_0013a40c(pcVar14,pcVar6);\n            *(undefined8 *)(piVar9 + 0x10) = uVar8;\n            uVar8 = FUN_001496d9(pcVar6 + 1);\n            *(undefined8 *)(piVar9 + 0x12) = uVar8;\n          }\n          FUN_00135c58(*(undefined8 *)(piVar9 + 0x10));\n          FUN_00135c58(*(undefined8 *)(piVar9 + 0x12));\n          pcVar14 = *(char **)(piVar9 + 4);\n          cVar3 = *pcVar14;\n          if (cVar3 == '\0') {\n            bVar17 = 0;\n          }\n          else {\n            bVar17 = 0;\n            do {\n              if ((int)cVar3 - 0x41U < 0x1a) {\n                *pcVar14 = cVar3 + ' ';\n                bVar17 = 1;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            } while (cVar3 != '\0');\n          }\n          pcVar14 = *(char **)(piVar9 + 4);\n          pcVar6 = strchr(pcVar14,0x25);\n          if (pcVar6 != (char *)0x0) {\n            FUN_00135c58(pcVar14);\n            pcVar14 = *(char **)(piVar9 + 4);\n            cVar3 = *pcVar14;\n            while (cVar3 != '\0') {\n              if ((-1 < cVar3) && ((cVar3 < ' ' || (cVar3 == '\x7f')))) {\n                FUN_0013629a(piVar9);\n                iVar15 = 3;\n                goto LAB_00137c65;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            }\n            bVar17 = param_3 != 0 & DAT_00177606;\n            if (bVar17 == 0) {\n              bVar17 = 1;\n            }\n            else {\n              lVar12 = FUN_0013eaa4(param_3);\n              if (lVar12 != 0) {\n                free(*(void **)(piVar9 + 4));\n                *(long *)(piVar9 + 4) = lVar12;\n              }\n            }\n          }\n          if (local_70 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_70,local_60);\n            *(undefined8 *)(piVar9 + 10) = uVar8;\n          }\n          if (local_b0 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_b0,local_58);\n            *(undefined8 *)(piVar9 + 0xc) = uVar8;\n          }\n          if (local_68 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_68,local_50);\n            *(undefined8 *)(piVar9 + 0xe) = uVar8;\n          }\n          param_2 = piVar9;\n          if ((((DAT_00177606 == 0) && (pcVar5 == pcVar11)) && (*(long *)(piVar9 + 0xe) == 0)) &&\n             ((local_88 != local_80 && (bVar17 == 0)))) {\n            if (local_b8 == param_1) {\n              uVar8 = FUN_001496d9(param_1);\n              *(undefined8 *)piVar9 = uVar8;\n            }\n            else {\n              *(void **)piVar9 = local_b8;\n            }\n          }\n          else {\n            uVar8 = FUN_00137051(piVar9,0);\n            *(undefined8 *)piVar9 = uVar8;\n            if (local_b8 != param_1) {\n              free(local_b8);\n            }\n          }\n          goto LAB_00137c95;\n        }\n        pcVar14 = pcVar14 + -1;\n        if (pcVar14 == pcVar11) {\n          iVar15 = 5;\n        }\n        else {\n          pcVar6 = (char *)memchr(pcVar11,0x3a,(long)pcVar14 - (long)pcVar11);\n          if (pcVar11 != pcVar6) {\n            pcVar5 = pcVar6;\n            if (pcVar6 != (char *)0x0) {\n              pcVar5 = (char *)FUN_0013a40c(pcVar6 + 1,pcVar14);\n              FUN_00135c58(pcVar5);\n              pcVar14 = pcVar6;\n            }\n            uVar8 = FUN_0013a40c(pcVar11,pcVar14);\n            FUN_00135c58(uVar8);\n            goto LAB_001379c6;\n          }\n          iVar15 = 5;\n        }\n      }" (statement_identifier "LAB_00137554") (: ":") (if_statement "if (local_a8 == local_a0) {\n        iVar15 = 3;\n      }\n      else {\n        local_74 = *(uint *)(&DAT_0016e350 + (ulong)uVar4 * 0x18);\n        pcVar7 = pcVar6;\n        if (*pcVar6 == ':') {\n          __s = pcVar6 + 1;\n          pcVar7 = strpbrk(__s,pcVar5 + 1);\n          if (pcVar7 == (char *)0x0) {\n            uVar13 = 0xffffffffffffffff;\n            pcVar7 = __s;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar7;\n              pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');\n            pcVar7 = pcVar6 + ~uVar13;\n          }\n          if (__s != pcVar7) {\n            if (__s < pcVar7) {\n              local_74 = (int)pcVar6[1] - 0x30;\n              if (local_74 < 10) {\n                do {\n                  __s = __s + 1;\n                  if (__s == pcVar7) goto LAB_00137584;\n                  if (9 < (int)*__s - 0x30U) {\n                    iVar15 = 4;\n                    goto LAB_00137c65;\n                  }\n                  local_74 = *__s + -0x30 + local_74 * 10;\n                } while ((int)local_74 < 0x10000);\n                iVar15 = 4;\n              }\n              else {\n                iVar15 = 4;\n              }\n              goto LAB_00137c65;\n            }\n            local_74 = 0;\n          }\n        }\nLAB_00137584:\n        local_80 = (char *)0x0;\n        local_88 = (char *)0x0;\n        pcVar6 = pcVar7;\n        if (*pcVar7 == '/') {\n          local_88 = pcVar7 + 1;\n          pcVar6 = strpbrk(local_88,pcVar5 + 2);\n          local_80 = pcVar6;\n          if (pcVar6 == (char *)0x0) {\n            uVar13 = 0xffffffffffffffff;\n            pcVar6 = local_88;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');\n            pcVar6 = pcVar7 + ~uVar13;\n            local_80 = pcVar6;\n          }\n        }\n        local_90 = pcVar5 + 3;\n        uVar2 = (&DAT_0016e354)[(ulong)uVar4 * 6];\n        if ((uVar2 & 2) == 0) {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n        }\n        else {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n          pcVar7 = pcVar6;\n          if (*pcVar6 == ';') {\n            local_70 = pcVar6 + 1;\n            pcVar7 = strpbrk(local_70,local_90);\n            local_60 = pcVar7;\n            if (pcVar7 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar7 = local_70;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar7;\n                pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar7 = pcVar6 + ~uVar13;\n              local_60 = pcVar7;\n            }\n          }\n          local_90 = pcVar5 + 4;\n          pcVar6 = pcVar7;\n        }\n        if ((uVar2 & 4) == 0) {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n        }\n        else {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n          pcVar5 = pcVar6;\n          if (*pcVar6 == '?') {\n            local_b0 = pcVar6 + 1;\n            pcVar5 = strpbrk(local_b0,local_90);\n            local_58 = pcVar5;\n            if (pcVar5 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_b0;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar5 = pcVar6 + ~uVar13;\n              local_58 = pcVar5;\n            }\n          }\n          local_90 = local_90 + 1;\n          pcVar6 = pcVar5;\n        }\n        if ((uVar2 & 8) == 0) {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n        }\n        else {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n          if (*pcVar6 == '#') {\n            local_68 = pcVar6 + 1;\n            local_50 = strpbrk(local_68,local_90);\n            if (local_50 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_68;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              local_50 = pcVar6 + ~uVar13;\n            }\n          }\n        }\n        if (pcVar11 == pcVar14) {\n          pcVar5 = (char *)0x0;\n          uVar8 = 0;\nLAB_001379c6:\n          piVar9 = (int *)FUN_0014967c(1,0x60);\n          piVar9[2] = uVar4;\n          uVar10 = FUN_0013a40c(local_a8,local_a0);\n          *(undefined8 *)(piVar9 + 4) = uVar10;\n          piVar9[6] = local_74;\n          *(undefined8 *)(piVar9 + 0x14) = uVar8;\n          *(char **)(piVar9 + 0x16) = pcVar5;\n          pcVar11 = (char *)FUN_0013a40c(local_88,local_80);\n          *(char **)(piVar9 + 8) = pcVar11;\n          uVar13 = 0xffffffffffffffff;\n          pcVar14 = pcVar11;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar3 = *pcVar14;\n            pcVar14 = pcVar14 + (ulong)bVar17 * -2 + 1;\n          } while (cVar3 != '\0');\n          pcVar14 = pcVar11 + (~uVar13 - 1);\n          pcVar5 = pcVar11;\n          if (pcVar11 < pcVar14) {\n            pcVar7 = pcVar11;\n            pcVar6 = pcVar11;\n            do {\n              cVar3 = *pcVar11;\n              if (cVar3 == '.') {\n                cVar1 = pcVar11[1];\n                if ((cVar1 == '/') || (cVar1 == '\0')) {\n                  pcVar11 = pcVar11 + 2;\n                }\n                else {\n                  if ((cVar1 != '.') || ((pcVar11[2] != '/' && (pcVar11[2] != '\0'))))\n                  goto LAB_00137e1d;\n                  if (pcVar6 < pcVar7) {\n                    pcVar5 = pcVar7 + -1;\n                    if (pcVar6 < pcVar5) {\n                      cVar3 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar3 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar3 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar5 = pcVar7;\n                    if (uVar4 - 2 < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }\n                  pcVar11 = pcVar11 + 3;\n                  pcVar7 = pcVar5;\n                }\n              }\n              else {\nLAB_00137e1d:\n                if (pcVar7 == pcVar11) {\n                  pcVar5 = pcVar7;\n                  if (pcVar14 <= pcVar7) break;\n                  cVar3 = *pcVar7;\n                  while (cVar3 != '/') {\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar14;\n                    if (pcVar14 == pcVar5) goto LAB_00137d7b;\n                    cVar3 = *pcVar5;\n                  }\n                  pcVar11 = pcVar5 + 1;\n                  pcVar7 = pcVar5 + 1;\n                }\n                else {\n                  pcVar5 = pcVar11;\n                  if (pcVar14 <= pcVar11) break;\n                  while (cVar3 != '/') {\n                    pcVar11 = pcVar11 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar3;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar14;\n                    if (pcVar14 == pcVar11) goto LAB_00137d7b;\n                    cVar3 = *pcVar11;\n                  }\n                  *pcVar7 = *pcVar11;\n                  pcVar11 = pcVar11 + 1;\n                  pcVar7 = pcVar7 + 1;\n                }\n              }\n              pcVar5 = pcVar11;\n            } while (pcVar11 < pcVar14);\nLAB_00137d7b:\n            pcVar11 = pcVar7;\n            if (pcVar5 != pcVar7) {\n              *pcVar7 = '\0';\n            }\n          }\n          pcVar14 = *(char **)(piVar9 + 8);\n          pcVar6 = strrchr(pcVar14,0x2f);\n          if (pcVar6 == (char *)0x0) {\n            uVar8 = FUN_001496d9(&DAT_0015ea35);\n            *(undefined8 *)(piVar9 + 0x10) = uVar8;\n            uVar8 = FUN_001496d9(pcVar14);\n            *(undefined8 *)(piVar9 + 0x12) = uVar8;\n          }\n          else {\n            uVar8 = FUN_0013a40c(pcVar14,pcVar6);\n            *(undefined8 *)(piVar9 + 0x10) = uVar8;\n            uVar8 = FUN_001496d9(pcVar6 + 1);\n            *(undefined8 *)(piVar9 + 0x12) = uVar8;\n          }\n          FUN_00135c58(*(undefined8 *)(piVar9 + 0x10));\n          FUN_00135c58(*(undefined8 *)(piVar9 + 0x12));\n          pcVar14 = *(char **)(piVar9 + 4);\n          cVar3 = *pcVar14;\n          if (cVar3 == '\0') {\n            bVar17 = 0;\n          }\n          else {\n            bVar17 = 0;\n            do {\n              if ((int)cVar3 - 0x41U < 0x1a) {\n                *pcVar14 = cVar3 + ' ';\n                bVar17 = 1;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            } while (cVar3 != '\0');\n          }\n          pcVar14 = *(char **)(piVar9 + 4);\n          pcVar6 = strchr(pcVar14,0x25);\n          if (pcVar6 != (char *)0x0) {\n            FUN_00135c58(pcVar14);\n            pcVar14 = *(char **)(piVar9 + 4);\n            cVar3 = *pcVar14;\n            while (cVar3 != '\0') {\n              if ((-1 < cVar3) && ((cVar3 < ' ' || (cVar3 == '\x7f')))) {\n                FUN_0013629a(piVar9);\n                iVar15 = 3;\n                goto LAB_00137c65;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            }\n            bVar17 = param_3 != 0 & DAT_00177606;\n            if (bVar17 == 0) {\n              bVar17 = 1;\n            }\n            else {\n              lVar12 = FUN_0013eaa4(param_3);\n              if (lVar12 != 0) {\n                free(*(void **)(piVar9 + 4));\n                *(long *)(piVar9 + 4) = lVar12;\n              }\n            }\n          }\n          if (local_70 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_70,local_60);\n            *(undefined8 *)(piVar9 + 10) = uVar8;\n          }\n          if (local_b0 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_b0,local_58);\n            *(undefined8 *)(piVar9 + 0xc) = uVar8;\n          }\n          if (local_68 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_68,local_50);\n            *(undefined8 *)(piVar9 + 0xe) = uVar8;\n          }\n          param_2 = piVar9;\n          if ((((DAT_00177606 == 0) && (pcVar5 == pcVar11)) && (*(long *)(piVar9 + 0xe) == 0)) &&\n             ((local_88 != local_80 && (bVar17 == 0)))) {\n            if (local_b8 == param_1) {\n              uVar8 = FUN_001496d9(param_1);\n              *(undefined8 *)piVar9 = uVar8;\n            }\n            else {\n              *(void **)piVar9 = local_b8;\n            }\n          }\n          else {\n            uVar8 = FUN_00137051(piVar9,0);\n            *(undefined8 *)piVar9 = uVar8;\n            if (local_b8 != param_1) {\n              free(local_b8);\n            }\n          }\n          goto LAB_00137c95;\n        }\n        pcVar14 = pcVar14 + -1;\n        if (pcVar14 == pcVar11) {\n          iVar15 = 5;\n        }\n        else {\n          pcVar6 = (char *)memchr(pcVar11,0x3a,(long)pcVar14 - (long)pcVar11);\n          if (pcVar11 != pcVar6) {\n            pcVar5 = pcVar6;\n            if (pcVar6 != (char *)0x0) {\n              pcVar5 = (char *)FUN_0013a40c(pcVar6 + 1,pcVar14);\n              FUN_00135c58(pcVar5);\n              pcVar14 = pcVar6;\n            }\n            uVar8 = FUN_0013a40c(pcVar11,pcVar14);\n            FUN_00135c58(uVar8);\n            goto LAB_001379c6;\n          }\n          iVar15 = 5;\n        }\n      }" (if "if") (parenthesized_expression "(local_a8 == local_a0)" (( "(") (binary_expression "local_a8 == local_a0" (identifier "local_a8") (== "==") (identifier "local_a0")) () ")")) (compound_statement "{\n        iVar15 = 3;\n      }" ({ "{") (expression_statement "iVar15 = 3;" (assignment_expression "iVar15 = 3" (identifier "iVar15") (= "=") (number_literal "3")) (; ";")) (} "}")) (else_clause "else {\n        local_74 = *(uint *)(&DAT_0016e350 + (ulong)uVar4 * 0x18);\n        pcVar7 = pcVar6;\n        if (*pcVar6 == ':') {\n          __s = pcVar6 + 1;\n          pcVar7 = strpbrk(__s,pcVar5 + 1);\n          if (pcVar7 == (char *)0x0) {\n            uVar13 = 0xffffffffffffffff;\n            pcVar7 = __s;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar7;\n              pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');\n            pcVar7 = pcVar6 + ~uVar13;\n          }\n          if (__s != pcVar7) {\n            if (__s < pcVar7) {\n              local_74 = (int)pcVar6[1] - 0x30;\n              if (local_74 < 10) {\n                do {\n                  __s = __s + 1;\n                  if (__s == pcVar7) goto LAB_00137584;\n                  if (9 < (int)*__s - 0x30U) {\n                    iVar15 = 4;\n                    goto LAB_00137c65;\n                  }\n                  local_74 = *__s + -0x30 + local_74 * 10;\n                } while ((int)local_74 < 0x10000);\n                iVar15 = 4;\n              }\n              else {\n                iVar15 = 4;\n              }\n              goto LAB_00137c65;\n            }\n            local_74 = 0;\n          }\n        }\nLAB_00137584:\n        local_80 = (char *)0x0;\n        local_88 = (char *)0x0;\n        pcVar6 = pcVar7;\n        if (*pcVar7 == '/') {\n          local_88 = pcVar7 + 1;\n          pcVar6 = strpbrk(local_88,pcVar5 + 2);\n          local_80 = pcVar6;\n          if (pcVar6 == (char *)0x0) {\n            uVar13 = 0xffffffffffffffff;\n            pcVar6 = local_88;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');\n            pcVar6 = pcVar7 + ~uVar13;\n            local_80 = pcVar6;\n          }\n        }\n        local_90 = pcVar5 + 3;\n        uVar2 = (&DAT_0016e354)[(ulong)uVar4 * 6];\n        if ((uVar2 & 2) == 0) {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n        }\n        else {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n          pcVar7 = pcVar6;\n          if (*pcVar6 == ';') {\n            local_70 = pcVar6 + 1;\n            pcVar7 = strpbrk(local_70,local_90);\n            local_60 = pcVar7;\n            if (pcVar7 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar7 = local_70;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar7;\n                pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar7 = pcVar6 + ~uVar13;\n              local_60 = pcVar7;\n            }\n          }\n          local_90 = pcVar5 + 4;\n          pcVar6 = pcVar7;\n        }\n        if ((uVar2 & 4) == 0) {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n        }\n        else {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n          pcVar5 = pcVar6;\n          if (*pcVar6 == '?') {\n            local_b0 = pcVar6 + 1;\n            pcVar5 = strpbrk(local_b0,local_90);\n            local_58 = pcVar5;\n            if (pcVar5 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_b0;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar5 = pcVar6 + ~uVar13;\n              local_58 = pcVar5;\n            }\n          }\n          local_90 = local_90 + 1;\n          pcVar6 = pcVar5;\n        }\n        if ((uVar2 & 8) == 0) {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n        }\n        else {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n          if (*pcVar6 == '#') {\n            local_68 = pcVar6 + 1;\n            local_50 = strpbrk(local_68,local_90);\n            if (local_50 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_68;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              local_50 = pcVar6 + ~uVar13;\n            }\n          }\n        }\n        if (pcVar11 == pcVar14) {\n          pcVar5 = (char *)0x0;\n          uVar8 = 0;\nLAB_001379c6:\n          piVar9 = (int *)FUN_0014967c(1,0x60);\n          piVar9[2] = uVar4;\n          uVar10 = FUN_0013a40c(local_a8,local_a0);\n          *(undefined8 *)(piVar9 + 4) = uVar10;\n          piVar9[6] = local_74;\n          *(undefined8 *)(piVar9 + 0x14) = uVar8;\n          *(char **)(piVar9 + 0x16) = pcVar5;\n          pcVar11 = (char *)FUN_0013a40c(local_88,local_80);\n          *(char **)(piVar9 + 8) = pcVar11;\n          uVar13 = 0xffffffffffffffff;\n          pcVar14 = pcVar11;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar3 = *pcVar14;\n            pcVar14 = pcVar14 + (ulong)bVar17 * -2 + 1;\n          } while (cVar3 != '\0');\n          pcVar14 = pcVar11 + (~uVar13 - 1);\n          pcVar5 = pcVar11;\n          if (pcVar11 < pcVar14) {\n            pcVar7 = pcVar11;\n            pcVar6 = pcVar11;\n            do {\n              cVar3 = *pcVar11;\n              if (cVar3 == '.') {\n                cVar1 = pcVar11[1];\n                if ((cVar1 == '/') || (cVar1 == '\0')) {\n                  pcVar11 = pcVar11 + 2;\n                }\n                else {\n                  if ((cVar1 != '.') || ((pcVar11[2] != '/' && (pcVar11[2] != '\0'))))\n                  goto LAB_00137e1d;\n                  if (pcVar6 < pcVar7) {\n                    pcVar5 = pcVar7 + -1;\n                    if (pcVar6 < pcVar5) {\n                      cVar3 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar3 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar3 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar5 = pcVar7;\n                    if (uVar4 - 2 < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }\n                  pcVar11 = pcVar11 + 3;\n                  pcVar7 = pcVar5;\n                }\n              }\n              else {\nLAB_00137e1d:\n                if (pcVar7 == pcVar11) {\n                  pcVar5 = pcVar7;\n                  if (pcVar14 <= pcVar7) break;\n                  cVar3 = *pcVar7;\n                  while (cVar3 != '/') {\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar14;\n                    if (pcVar14 == pcVar5) goto LAB_00137d7b;\n                    cVar3 = *pcVar5;\n                  }\n                  pcVar11 = pcVar5 + 1;\n                  pcVar7 = pcVar5 + 1;\n                }\n                else {\n                  pcVar5 = pcVar11;\n                  if (pcVar14 <= pcVar11) break;\n                  while (cVar3 != '/') {\n                    pcVar11 = pcVar11 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar3;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar14;\n                    if (pcVar14 == pcVar11) goto LAB_00137d7b;\n                    cVar3 = *pcVar11;\n                  }\n                  *pcVar7 = *pcVar11;\n                  pcVar11 = pcVar11 + 1;\n                  pcVar7 = pcVar7 + 1;\n                }\n              }\n              pcVar5 = pcVar11;\n            } while (pcVar11 < pcVar14);\nLAB_00137d7b:\n            pcVar11 = pcVar7;\n            if (pcVar5 != pcVar7) {\n              *pcVar7 = '\0';\n            }\n          }\n          pcVar14 = *(char **)(piVar9 + 8);\n          pcVar6 = strrchr(pcVar14,0x2f);\n          if (pcVar6 == (char *)0x0) {\n            uVar8 = FUN_001496d9(&DAT_0015ea35);\n            *(undefined8 *)(piVar9 + 0x10) = uVar8;\n            uVar8 = FUN_001496d9(pcVar14);\n            *(undefined8 *)(piVar9 + 0x12) = uVar8;\n          }\n          else {\n            uVar8 = FUN_0013a40c(pcVar14,pcVar6);\n            *(undefined8 *)(piVar9 + 0x10) = uVar8;\n            uVar8 = FUN_001496d9(pcVar6 + 1);\n            *(undefined8 *)(piVar9 + 0x12) = uVar8;\n          }\n          FUN_00135c58(*(undefined8 *)(piVar9 + 0x10));\n          FUN_00135c58(*(undefined8 *)(piVar9 + 0x12));\n          pcVar14 = *(char **)(piVar9 + 4);\n          cVar3 = *pcVar14;\n          if (cVar3 == '\0') {\n            bVar17 = 0;\n          }\n          else {\n            bVar17 = 0;\n            do {\n              if ((int)cVar3 - 0x41U < 0x1a) {\n                *pcVar14 = cVar3 + ' ';\n                bVar17 = 1;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            } while (cVar3 != '\0');\n          }\n          pcVar14 = *(char **)(piVar9 + 4);\n          pcVar6 = strchr(pcVar14,0x25);\n          if (pcVar6 != (char *)0x0) {\n            FUN_00135c58(pcVar14);\n            pcVar14 = *(char **)(piVar9 + 4);\n            cVar3 = *pcVar14;\n            while (cVar3 != '\0') {\n              if ((-1 < cVar3) && ((cVar3 < ' ' || (cVar3 == '\x7f')))) {\n                FUN_0013629a(piVar9);\n                iVar15 = 3;\n                goto LAB_00137c65;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            }\n            bVar17 = param_3 != 0 & DAT_00177606;\n            if (bVar17 == 0) {\n              bVar17 = 1;\n            }\n            else {\n              lVar12 = FUN_0013eaa4(param_3);\n              if (lVar12 != 0) {\n                free(*(void **)(piVar9 + 4));\n                *(long *)(piVar9 + 4) = lVar12;\n              }\n            }\n          }\n          if (local_70 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_70,local_60);\n            *(undefined8 *)(piVar9 + 10) = uVar8;\n          }\n          if (local_b0 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_b0,local_58);\n            *(undefined8 *)(piVar9 + 0xc) = uVar8;\n          }\n          if (local_68 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_68,local_50);\n            *(undefined8 *)(piVar9 + 0xe) = uVar8;\n          }\n          param_2 = piVar9;\n          if ((((DAT_00177606 == 0) && (pcVar5 == pcVar11)) && (*(long *)(piVar9 + 0xe) == 0)) &&\n             ((local_88 != local_80 && (bVar17 == 0)))) {\n            if (local_b8 == param_1) {\n              uVar8 = FUN_001496d9(param_1);\n              *(undefined8 *)piVar9 = uVar8;\n            }\n            else {\n              *(void **)piVar9 = local_b8;\n            }\n          }\n          else {\n            uVar8 = FUN_00137051(piVar9,0);\n            *(undefined8 *)piVar9 = uVar8;\n            if (local_b8 != param_1) {\n              free(local_b8);\n            }\n          }\n          goto LAB_00137c95;\n        }\n        pcVar14 = pcVar14 + -1;\n        if (pcVar14 == pcVar11) {\n          iVar15 = 5;\n        }\n        else {\n          pcVar6 = (char *)memchr(pcVar11,0x3a,(long)pcVar14 - (long)pcVar11);\n          if (pcVar11 != pcVar6) {\n            pcVar5 = pcVar6;\n            if (pcVar6 != (char *)0x0) {\n              pcVar5 = (char *)FUN_0013a40c(pcVar6 + 1,pcVar14);\n              FUN_00135c58(pcVar5);\n              pcVar14 = pcVar6;\n            }\n            uVar8 = FUN_0013a40c(pcVar11,pcVar14);\n            FUN_00135c58(uVar8);\n            goto LAB_001379c6;\n          }\n          iVar15 = 5;\n        }\n      }" (else "else") (compound_statement "{\n        local_74 = *(uint *)(&DAT_0016e350 + (ulong)uVar4 * 0x18);\n        pcVar7 = pcVar6;\n        if (*pcVar6 == ':') {\n          __s = pcVar6 + 1;\n          pcVar7 = strpbrk(__s,pcVar5 + 1);\n          if (pcVar7 == (char *)0x0) {\n            uVar13 = 0xffffffffffffffff;\n            pcVar7 = __s;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar7;\n              pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');\n            pcVar7 = pcVar6 + ~uVar13;\n          }\n          if (__s != pcVar7) {\n            if (__s < pcVar7) {\n              local_74 = (int)pcVar6[1] - 0x30;\n              if (local_74 < 10) {\n                do {\n                  __s = __s + 1;\n                  if (__s == pcVar7) goto LAB_00137584;\n                  if (9 < (int)*__s - 0x30U) {\n                    iVar15 = 4;\n                    goto LAB_00137c65;\n                  }\n                  local_74 = *__s + -0x30 + local_74 * 10;\n                } while ((int)local_74 < 0x10000);\n                iVar15 = 4;\n              }\n              else {\n                iVar15 = 4;\n              }\n              goto LAB_00137c65;\n            }\n            local_74 = 0;\n          }\n        }\nLAB_00137584:\n        local_80 = (char *)0x0;\n        local_88 = (char *)0x0;\n        pcVar6 = pcVar7;\n        if (*pcVar7 == '/') {\n          local_88 = pcVar7 + 1;\n          pcVar6 = strpbrk(local_88,pcVar5 + 2);\n          local_80 = pcVar6;\n          if (pcVar6 == (char *)0x0) {\n            uVar13 = 0xffffffffffffffff;\n            pcVar6 = local_88;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');\n            pcVar6 = pcVar7 + ~uVar13;\n            local_80 = pcVar6;\n          }\n        }\n        local_90 = pcVar5 + 3;\n        uVar2 = (&DAT_0016e354)[(ulong)uVar4 * 6];\n        if ((uVar2 & 2) == 0) {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n        }\n        else {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n          pcVar7 = pcVar6;\n          if (*pcVar6 == ';') {\n            local_70 = pcVar6 + 1;\n            pcVar7 = strpbrk(local_70,local_90);\n            local_60 = pcVar7;\n            if (pcVar7 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar7 = local_70;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar7;\n                pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar7 = pcVar6 + ~uVar13;\n              local_60 = pcVar7;\n            }\n          }\n          local_90 = pcVar5 + 4;\n          pcVar6 = pcVar7;\n        }\n        if ((uVar2 & 4) == 0) {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n        }\n        else {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n          pcVar5 = pcVar6;\n          if (*pcVar6 == '?') {\n            local_b0 = pcVar6 + 1;\n            pcVar5 = strpbrk(local_b0,local_90);\n            local_58 = pcVar5;\n            if (pcVar5 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_b0;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar5 = pcVar6 + ~uVar13;\n              local_58 = pcVar5;\n            }\n          }\n          local_90 = local_90 + 1;\n          pcVar6 = pcVar5;\n        }\n        if ((uVar2 & 8) == 0) {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n        }\n        else {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n          if (*pcVar6 == '#') {\n            local_68 = pcVar6 + 1;\n            local_50 = strpbrk(local_68,local_90);\n            if (local_50 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_68;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              local_50 = pcVar6 + ~uVar13;\n            }\n          }\n        }\n        if (pcVar11 == pcVar14) {\n          pcVar5 = (char *)0x0;\n          uVar8 = 0;\nLAB_001379c6:\n          piVar9 = (int *)FUN_0014967c(1,0x60);\n          piVar9[2] = uVar4;\n          uVar10 = FUN_0013a40c(local_a8,local_a0);\n          *(undefined8 *)(piVar9 + 4) = uVar10;\n          piVar9[6] = local_74;\n          *(undefined8 *)(piVar9 + 0x14) = uVar8;\n          *(char **)(piVar9 + 0x16) = pcVar5;\n          pcVar11 = (char *)FUN_0013a40c(local_88,local_80);\n          *(char **)(piVar9 + 8) = pcVar11;\n          uVar13 = 0xffffffffffffffff;\n          pcVar14 = pcVar11;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar3 = *pcVar14;\n            pcVar14 = pcVar14 + (ulong)bVar17 * -2 + 1;\n          } while (cVar3 != '\0');\n          pcVar14 = pcVar11 + (~uVar13 - 1);\n          pcVar5 = pcVar11;\n          if (pcVar11 < pcVar14) {\n            pcVar7 = pcVar11;\n            pcVar6 = pcVar11;\n            do {\n              cVar3 = *pcVar11;\n              if (cVar3 == '.') {\n                cVar1 = pcVar11[1];\n                if ((cVar1 == '/') || (cVar1 == '\0')) {\n                  pcVar11 = pcVar11 + 2;\n                }\n                else {\n                  if ((cVar1 != '.') || ((pcVar11[2] != '/' && (pcVar11[2] != '\0'))))\n                  goto LAB_00137e1d;\n                  if (pcVar6 < pcVar7) {\n                    pcVar5 = pcVar7 + -1;\n                    if (pcVar6 < pcVar5) {\n                      cVar3 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar3 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar3 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar5 = pcVar7;\n                    if (uVar4 - 2 < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }\n                  pcVar11 = pcVar11 + 3;\n                  pcVar7 = pcVar5;\n                }\n              }\n              else {\nLAB_00137e1d:\n                if (pcVar7 == pcVar11) {\n                  pcVar5 = pcVar7;\n                  if (pcVar14 <= pcVar7) break;\n                  cVar3 = *pcVar7;\n                  while (cVar3 != '/') {\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar14;\n                    if (pcVar14 == pcVar5) goto LAB_00137d7b;\n                    cVar3 = *pcVar5;\n                  }\n                  pcVar11 = pcVar5 + 1;\n                  pcVar7 = pcVar5 + 1;\n                }\n                else {\n                  pcVar5 = pcVar11;\n                  if (pcVar14 <= pcVar11) break;\n                  while (cVar3 != '/') {\n                    pcVar11 = pcVar11 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar3;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar14;\n                    if (pcVar14 == pcVar11) goto LAB_00137d7b;\n                    cVar3 = *pcVar11;\n                  }\n                  *pcVar7 = *pcVar11;\n                  pcVar11 = pcVar11 + 1;\n                  pcVar7 = pcVar7 + 1;\n                }\n              }\n              pcVar5 = pcVar11;\n            } while (pcVar11 < pcVar14);\nLAB_00137d7b:\n            pcVar11 = pcVar7;\n            if (pcVar5 != pcVar7) {\n              *pcVar7 = '\0';\n            }\n          }\n          pcVar14 = *(char **)(piVar9 + 8);\n          pcVar6 = strrchr(pcVar14,0x2f);\n          if (pcVar6 == (char *)0x0) {\n            uVar8 = FUN_001496d9(&DAT_0015ea35);\n            *(undefined8 *)(piVar9 + 0x10) = uVar8;\n            uVar8 = FUN_001496d9(pcVar14);\n            *(undefined8 *)(piVar9 + 0x12) = uVar8;\n          }\n          else {\n            uVar8 = FUN_0013a40c(pcVar14,pcVar6);\n            *(undefined8 *)(piVar9 + 0x10) = uVar8;\n            uVar8 = FUN_001496d9(pcVar6 + 1);\n            *(undefined8 *)(piVar9 + 0x12) = uVar8;\n          }\n          FUN_00135c58(*(undefined8 *)(piVar9 + 0x10));\n          FUN_00135c58(*(undefined8 *)(piVar9 + 0x12));\n          pcVar14 = *(char **)(piVar9 + 4);\n          cVar3 = *pcVar14;\n          if (cVar3 == '\0') {\n            bVar17 = 0;\n          }\n          else {\n            bVar17 = 0;\n            do {\n              if ((int)cVar3 - 0x41U < 0x1a) {\n                *pcVar14 = cVar3 + ' ';\n                bVar17 = 1;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            } while (cVar3 != '\0');\n          }\n          pcVar14 = *(char **)(piVar9 + 4);\n          pcVar6 = strchr(pcVar14,0x25);\n          if (pcVar6 != (char *)0x0) {\n            FUN_00135c58(pcVar14);\n            pcVar14 = *(char **)(piVar9 + 4);\n            cVar3 = *pcVar14;\n            while (cVar3 != '\0') {\n              if ((-1 < cVar3) && ((cVar3 < ' ' || (cVar3 == '\x7f')))) {\n                FUN_0013629a(piVar9);\n                iVar15 = 3;\n                goto LAB_00137c65;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            }\n            bVar17 = param_3 != 0 & DAT_00177606;\n            if (bVar17 == 0) {\n              bVar17 = 1;\n            }\n            else {\n              lVar12 = FUN_0013eaa4(param_3);\n              if (lVar12 != 0) {\n                free(*(void **)(piVar9 + 4));\n                *(long *)(piVar9 + 4) = lVar12;\n              }\n            }\n          }\n          if (local_70 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_70,local_60);\n            *(undefined8 *)(piVar9 + 10) = uVar8;\n          }\n          if (local_b0 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_b0,local_58);\n            *(undefined8 *)(piVar9 + 0xc) = uVar8;\n          }\n          if (local_68 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_68,local_50);\n            *(undefined8 *)(piVar9 + 0xe) = uVar8;\n          }\n          param_2 = piVar9;\n          if ((((DAT_00177606 == 0) && (pcVar5 == pcVar11)) && (*(long *)(piVar9 + 0xe) == 0)) &&\n             ((local_88 != local_80 && (bVar17 == 0)))) {\n            if (local_b8 == param_1) {\n              uVar8 = FUN_001496d9(param_1);\n              *(undefined8 *)piVar9 = uVar8;\n            }\n            else {\n              *(void **)piVar9 = local_b8;\n            }\n          }\n          else {\n            uVar8 = FUN_00137051(piVar9,0);\n            *(undefined8 *)piVar9 = uVar8;\n            if (local_b8 != param_1) {\n              free(local_b8);\n            }\n          }\n          goto LAB_00137c95;\n        }\n        pcVar14 = pcVar14 + -1;\n        if (pcVar14 == pcVar11) {\n          iVar15 = 5;\n        }\n        else {\n          pcVar6 = (char *)memchr(pcVar11,0x3a,(long)pcVar14 - (long)pcVar11);\n          if (pcVar11 != pcVar6) {\n            pcVar5 = pcVar6;\n            if (pcVar6 != (char *)0x0) {\n              pcVar5 = (char *)FUN_0013a40c(pcVar6 + 1,pcVar14);\n              FUN_00135c58(pcVar5);\n              pcVar14 = pcVar6;\n            }\n            uVar8 = FUN_0013a40c(pcVar11,pcVar14);\n            FUN_00135c58(uVar8);\n            goto LAB_001379c6;\n          }\n          iVar15 = 5;\n        }\n      }" ({ "{") (expression_statement "local_74 = *(uint *)(&DAT_0016e350 + (ulong)uVar4 * 0x18);" (assignment_expression "local_74 = *(uint *)(&DAT_0016e350 + (ulong)uVar4 * 0x18)" (identifier "local_74") (= "=") (pointer_expression "*(uint *)(&DAT_0016e350 + (ulong)uVar4 * 0x18)" (* "*") (cast_expression "(uint *)(&DAT_0016e350 + (ulong)uVar4 * 0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_0016e350 + (ulong)uVar4 * 0x18)" (( "(") (binary_expression "&DAT_0016e350 + (ulong)uVar4 * 0x18" (pointer_expression "&DAT_0016e350" (& "&") (identifier "DAT_0016e350")) (+ "+") (binary_expression "(ulong)uVar4 * 0x18" (cast_expression "(ulong)uVar4" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar4")) (* "*") (number_literal "0x18"))) () ")"))))) (; ";")) (expression_statement "pcVar7 = pcVar6;" (assignment_expression "pcVar7 = pcVar6" (identifier "pcVar7") (= "=") (identifier "pcVar6")) (; ";")) (if_statement "if (*pcVar6 == ':') {\n          __s = pcVar6 + 1;\n          pcVar7 = strpbrk(__s,pcVar5 + 1);\n          if (pcVar7 == (char *)0x0) {\n            uVar13 = 0xffffffffffffffff;\n            pcVar7 = __s;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar7;\n              pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');\n            pcVar7 = pcVar6 + ~uVar13;\n          }\n          if (__s != pcVar7) {\n            if (__s < pcVar7) {\n              local_74 = (int)pcVar6[1] - 0x30;\n              if (local_74 < 10) {\n                do {\n                  __s = __s + 1;\n                  if (__s == pcVar7) goto LAB_00137584;\n                  if (9 < (int)*__s - 0x30U) {\n                    iVar15 = 4;\n                    goto LAB_00137c65;\n                  }\n                  local_74 = *__s + -0x30 + local_74 * 10;\n                } while ((int)local_74 < 0x10000);\n                iVar15 = 4;\n              }\n              else {\n                iVar15 = 4;\n              }\n              goto LAB_00137c65;\n            }\n            local_74 = 0;\n          }\n        }" (if "if") (parenthesized_expression "(*pcVar6 == ':')" (( "(") (binary_expression "*pcVar6 == ':'" (pointer_expression "*pcVar6" (* "*") (identifier "pcVar6")) (== "==") (char_literal "':'" (' "'") (character ":") (' "'"))) () ")")) (compound_statement "{\n          __s = pcVar6 + 1;\n          pcVar7 = strpbrk(__s,pcVar5 + 1);\n          if (pcVar7 == (char *)0x0) {\n            uVar13 = 0xffffffffffffffff;\n            pcVar7 = __s;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar7;\n              pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');\n            pcVar7 = pcVar6 + ~uVar13;\n          }\n          if (__s != pcVar7) {\n            if (__s < pcVar7) {\n              local_74 = (int)pcVar6[1] - 0x30;\n              if (local_74 < 10) {\n                do {\n                  __s = __s + 1;\n                  if (__s == pcVar7) goto LAB_00137584;\n                  if (9 < (int)*__s - 0x30U) {\n                    iVar15 = 4;\n                    goto LAB_00137c65;\n                  }\n                  local_74 = *__s + -0x30 + local_74 * 10;\n                } while ((int)local_74 < 0x10000);\n                iVar15 = 4;\n              }\n              else {\n                iVar15 = 4;\n              }\n              goto LAB_00137c65;\n            }\n            local_74 = 0;\n          }\n        }" ({ "{") (expression_statement "__s = pcVar6 + 1;" (assignment_expression "__s = pcVar6 + 1" (identifier "__s") (= "=") (binary_expression "pcVar6 + 1" (identifier "pcVar6") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pcVar7 = strpbrk(__s,pcVar5 + 1);" (assignment_expression "pcVar7 = strpbrk(__s,pcVar5 + 1)" (identifier "pcVar7") (= "=") (call_expression "strpbrk(__s,pcVar5 + 1)" (identifier "strpbrk") (argument_list "(__s,pcVar5 + 1)" (( "(") (identifier "__s") (, ",") (binary_expression "pcVar5 + 1" (identifier "pcVar5") (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if (pcVar7 == (char *)0x0) {\n            uVar13 = 0xffffffffffffffff;\n            pcVar7 = __s;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar7;\n              pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');\n            pcVar7 = pcVar6 + ~uVar13;\n          }" (if "if") (parenthesized_expression "(pcVar7 == (char *)0x0)" (( "(") (binary_expression "pcVar7 == (char *)0x0" (identifier "pcVar7") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            uVar13 = 0xffffffffffffffff;\n            pcVar7 = __s;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar7;\n              pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');\n            pcVar7 = pcVar6 + ~uVar13;\n          }" ({ "{") (expression_statement "uVar13 = 0xffffffffffffffff;" (assignment_expression "uVar13 = 0xffffffffffffffff" (identifier "uVar13") (= "=") (number_literal "0xffffffffffffffff")) (; ";")) (expression_statement "pcVar7 = __s;" (assignment_expression "pcVar7 = __s" (identifier "pcVar7") (= "=") (identifier "__s")) (; ";")) (do_statement "do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar7;\n              pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');" (do "do") (compound_statement "{\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar7;\n              pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n            }" ({ "{") (if_statement "if (uVar13 == 0) break;" (if "if") (parenthesized_expression "(uVar13 == 0)" (( "(") (binary_expression "uVar13 == 0" (identifier "uVar13") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar13 = uVar13 - 1;" (assignment_expression "uVar13 = uVar13 - 1" (identifier "uVar13") (= "=") (binary_expression "uVar13 - 1" (identifier "uVar13") (- "-") (number_literal "1"))) (; ";")) (expression_statement "cVar3 = *pcVar7;" (assignment_expression "cVar3 = *pcVar7" (identifier "cVar3") (= "=") (pointer_expression "*pcVar7" (* "*") (identifier "pcVar7"))) (; ";")) (expression_statement "pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1" (identifier "pcVar7") (= "=") (binary_expression "pcVar7 + (ulong)bVar17 * -2 + 1" (binary_expression "pcVar7 + (ulong)bVar17 * -2" (identifier "pcVar7") (+ "+") (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar17")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(cVar3 != '\0')" (( "(") (binary_expression "cVar3 != '\0'" (identifier "cVar3") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (; ";")) (expression_statement "pcVar7 = pcVar6 + ~uVar13;" (assignment_expression "pcVar7 = pcVar6 + ~uVar13" (identifier "pcVar7") (= "=") (binary_expression "pcVar6 + ~uVar13" (identifier "pcVar6") (+ "+") (unary_expression "~uVar13" (~ "~") (identifier "uVar13")))) (; ";")) (} "}"))) (if_statement "if (__s != pcVar7) {\n            if (__s < pcVar7) {\n              local_74 = (int)pcVar6[1] - 0x30;\n              if (local_74 < 10) {\n                do {\n                  __s = __s + 1;\n                  if (__s == pcVar7) goto LAB_00137584;\n                  if (9 < (int)*__s - 0x30U) {\n                    iVar15 = 4;\n                    goto LAB_00137c65;\n                  }\n                  local_74 = *__s + -0x30 + local_74 * 10;\n                } while ((int)local_74 < 0x10000);\n                iVar15 = 4;\n              }\n              else {\n                iVar15 = 4;\n              }\n              goto LAB_00137c65;\n            }\n            local_74 = 0;\n          }" (if "if") (parenthesized_expression "(__s != pcVar7)" (( "(") (binary_expression "__s != pcVar7" (identifier "__s") (!= "!=") (identifier "pcVar7")) () ")")) (compound_statement "{\n            if (__s < pcVar7) {\n              local_74 = (int)pcVar6[1] - 0x30;\n              if (local_74 < 10) {\n                do {\n                  __s = __s + 1;\n                  if (__s == pcVar7) goto LAB_00137584;\n                  if (9 < (int)*__s - 0x30U) {\n                    iVar15 = 4;\n                    goto LAB_00137c65;\n                  }\n                  local_74 = *__s + -0x30 + local_74 * 10;\n                } while ((int)local_74 < 0x10000);\n                iVar15 = 4;\n              }\n              else {\n                iVar15 = 4;\n              }\n              goto LAB_00137c65;\n            }\n            local_74 = 0;\n          }" ({ "{") (if_statement "if (__s < pcVar7) {\n              local_74 = (int)pcVar6[1] - 0x30;\n              if (local_74 < 10) {\n                do {\n                  __s = __s + 1;\n                  if (__s == pcVar7) goto LAB_00137584;\n                  if (9 < (int)*__s - 0x30U) {\n                    iVar15 = 4;\n                    goto LAB_00137c65;\n                  }\n                  local_74 = *__s + -0x30 + local_74 * 10;\n                } while ((int)local_74 < 0x10000);\n                iVar15 = 4;\n              }\n              else {\n                iVar15 = 4;\n              }\n              goto LAB_00137c65;\n            }" (if "if") (parenthesized_expression "(__s < pcVar7)" (( "(") (binary_expression "__s < pcVar7" (identifier "__s") (< "<") (identifier "pcVar7")) () ")")) (compound_statement "{\n              local_74 = (int)pcVar6[1] - 0x30;\n              if (local_74 < 10) {\n                do {\n                  __s = __s + 1;\n                  if (__s == pcVar7) goto LAB_00137584;\n                  if (9 < (int)*__s - 0x30U) {\n                    iVar15 = 4;\n                    goto LAB_00137c65;\n                  }\n                  local_74 = *__s + -0x30 + local_74 * 10;\n                } while ((int)local_74 < 0x10000);\n                iVar15 = 4;\n              }\n              else {\n                iVar15 = 4;\n              }\n              goto LAB_00137c65;\n            }" ({ "{") (expression_statement "local_74 = (int)pcVar6[1] - 0x30;" (assignment_expression "local_74 = (int)pcVar6[1] - 0x30" (identifier "local_74") (= "=") (binary_expression "(int)pcVar6[1] - 0x30" (cast_expression "(int)pcVar6[1]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "pcVar6[1]" (identifier "pcVar6") ([ "[") (number_literal "1") (] "]"))) (- "-") (number_literal "0x30"))) (; ";")) (if_statement "if (local_74 < 10) {\n                do {\n                  __s = __s + 1;\n                  if (__s == pcVar7) goto LAB_00137584;\n                  if (9 < (int)*__s - 0x30U) {\n                    iVar15 = 4;\n                    goto LAB_00137c65;\n                  }\n                  local_74 = *__s + -0x30 + local_74 * 10;\n                } while ((int)local_74 < 0x10000);\n                iVar15 = 4;\n              }\n              else {\n                iVar15 = 4;\n              }" (if "if") (parenthesized_expression "(local_74 < 10)" (( "(") (binary_expression "local_74 < 10" (identifier "local_74") (< "<") (number_literal "10")) () ")")) (compound_statement "{\n                do {\n                  __s = __s + 1;\n                  if (__s == pcVar7) goto LAB_00137584;\n                  if (9 < (int)*__s - 0x30U) {\n                    iVar15 = 4;\n                    goto LAB_00137c65;\n                  }\n                  local_74 = *__s + -0x30 + local_74 * 10;\n                } while ((int)local_74 < 0x10000);\n                iVar15 = 4;\n              }" ({ "{") (do_statement "do {\n                  __s = __s + 1;\n                  if (__s == pcVar7) goto LAB_00137584;\n                  if (9 < (int)*__s - 0x30U) {\n                    iVar15 = 4;\n                    goto LAB_00137c65;\n                  }\n                  local_74 = *__s + -0x30 + local_74 * 10;\n                } while ((int)local_74 < 0x10000);" (do "do") (compound_statement "{\n                  __s = __s + 1;\n                  if (__s == pcVar7) goto LAB_00137584;\n                  if (9 < (int)*__s - 0x30U) {\n                    iVar15 = 4;\n                    goto LAB_00137c65;\n                  }\n                  local_74 = *__s + -0x30 + local_74 * 10;\n                }" ({ "{") (expression_statement "__s = __s + 1;" (assignment_expression "__s = __s + 1" (identifier "__s") (= "=") (binary_expression "__s + 1" (identifier "__s") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (__s == pcVar7) goto LAB_00137584;" (if "if") (parenthesized_expression "(__s == pcVar7)" (( "(") (binary_expression "__s == pcVar7" (identifier "__s") (== "==") (identifier "pcVar7")) () ")")) (goto_statement "goto LAB_00137584;" (goto "goto") (statement_identifier "LAB_00137584") (; ";"))) (if_statement "if (9 < (int)*__s - 0x30U) {\n                    iVar15 = 4;\n                    goto LAB_00137c65;\n                  }" (if "if") (parenthesized_expression "(9 < (int)*__s - 0x30U)" (( "(") (binary_expression "9 < (int)*__s - 0x30U" (number_literal "9") (< "<") (binary_expression "(int)*__s - 0x30U" (cast_expression "(int)*__s" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*__s" (* "*") (identifier "__s"))) (- "-") (number_literal "0x30U"))) () ")")) (compound_statement "{\n                    iVar15 = 4;\n                    goto LAB_00137c65;\n                  }" ({ "{") (expression_statement "iVar15 = 4;" (assignment_expression "iVar15 = 4" (identifier "iVar15") (= "=") (number_literal "4")) (; ";")) (goto_statement "goto LAB_00137c65;" (goto "goto") (statement_identifier "LAB_00137c65") (; ";")) (} "}"))) (expression_statement "local_74 = *__s + -0x30 + local_74 * 10;" (assignment_expression "local_74 = *__s + -0x30 + local_74 * 10" (identifier "local_74") (= "=") (binary_expression "*__s + -0x30 + local_74 * 10" (binary_expression "*__s + -0x30" (pointer_expression "*__s" (* "*") (identifier "__s")) (+ "+") (number_literal "-0x30")) (+ "+") (binary_expression "local_74 * 10" (identifier "local_74") (* "*") (number_literal "10")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((int)local_74 < 0x10000)" (( "(") (binary_expression "(int)local_74 < 0x10000" (cast_expression "(int)local_74" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_74")) (< "<") (number_literal "0x10000")) () ")")) (; ";")) (expression_statement "iVar15 = 4;" (assignment_expression "iVar15 = 4" (identifier "iVar15") (= "=") (number_literal "4")) (; ";")) (} "}")) (else_clause "else {\n                iVar15 = 4;\n              }" (else "else") (compound_statement "{\n                iVar15 = 4;\n              }" ({ "{") (expression_statement "iVar15 = 4;" (assignment_expression "iVar15 = 4" (identifier "iVar15") (= "=") (number_literal "4")) (; ";")) (} "}")))) (goto_statement "goto LAB_00137c65;" (goto "goto") (statement_identifier "LAB_00137c65") (; ";")) (} "}"))) (expression_statement "local_74 = 0;" (assignment_expression "local_74 = 0" (identifier "local_74") (= "=") (number_literal "0")) (; ";")) (} "}"))) (} "}"))) (labeled_statement "LAB_00137584:\n        local_80 = (char *)0x0;" (statement_identifier "LAB_00137584") (: ":") (expression_statement "local_80 = (char *)0x0;" (assignment_expression "local_80 = (char *)0x0" (identifier "local_80") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";"))) (expression_statement "local_88 = (char *)0x0;" (assignment_expression "local_88 = (char *)0x0" (identifier "local_88") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pcVar6 = pcVar7;" (assignment_expression "pcVar6 = pcVar7" (identifier "pcVar6") (= "=") (identifier "pcVar7")) (; ";")) (if_statement "if (*pcVar7 == '/') {\n          local_88 = pcVar7 + 1;\n          pcVar6 = strpbrk(local_88,pcVar5 + 2);\n          local_80 = pcVar6;\n          if (pcVar6 == (char *)0x0) {\n            uVar13 = 0xffffffffffffffff;\n            pcVar6 = local_88;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');\n            pcVar6 = pcVar7 + ~uVar13;\n            local_80 = pcVar6;\n          }\n        }" (if "if") (parenthesized_expression "(*pcVar7 == '/')" (( "(") (binary_expression "*pcVar7 == '/'" (pointer_expression "*pcVar7" (* "*") (identifier "pcVar7")) (== "==") (char_literal "'/'" (' "'") (character "/") (' "'"))) () ")")) (compound_statement "{\n          local_88 = pcVar7 + 1;\n          pcVar6 = strpbrk(local_88,pcVar5 + 2);\n          local_80 = pcVar6;\n          if (pcVar6 == (char *)0x0) {\n            uVar13 = 0xffffffffffffffff;\n            pcVar6 = local_88;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');\n            pcVar6 = pcVar7 + ~uVar13;\n            local_80 = pcVar6;\n          }\n        }" ({ "{") (expression_statement "local_88 = pcVar7 + 1;" (assignment_expression "local_88 = pcVar7 + 1" (identifier "local_88") (= "=") (binary_expression "pcVar7 + 1" (identifier "pcVar7") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pcVar6 = strpbrk(local_88,pcVar5 + 2);" (assignment_expression "pcVar6 = strpbrk(local_88,pcVar5 + 2)" (identifier "pcVar6") (= "=") (call_expression "strpbrk(local_88,pcVar5 + 2)" (identifier "strpbrk") (argument_list "(local_88,pcVar5 + 2)" (( "(") (identifier "local_88") (, ",") (binary_expression "pcVar5 + 2" (identifier "pcVar5") (+ "+") (number_literal "2")) () ")")))) (; ";")) (expression_statement "local_80 = pcVar6;" (assignment_expression "local_80 = pcVar6" (identifier "local_80") (= "=") (identifier "pcVar6")) (; ";")) (if_statement "if (pcVar6 == (char *)0x0) {\n            uVar13 = 0xffffffffffffffff;\n            pcVar6 = local_88;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');\n            pcVar6 = pcVar7 + ~uVar13;\n            local_80 = pcVar6;\n          }" (if "if") (parenthesized_expression "(pcVar6 == (char *)0x0)" (( "(") (binary_expression "pcVar6 == (char *)0x0" (identifier "pcVar6") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            uVar13 = 0xffffffffffffffff;\n            pcVar6 = local_88;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');\n            pcVar6 = pcVar7 + ~uVar13;\n            local_80 = pcVar6;\n          }" ({ "{") (expression_statement "uVar13 = 0xffffffffffffffff;" (assignment_expression "uVar13 = 0xffffffffffffffff" (identifier "uVar13") (= "=") (number_literal "0xffffffffffffffff")) (; ";")) (expression_statement "pcVar6 = local_88;" (assignment_expression "pcVar6 = local_88" (identifier "pcVar6") (= "=") (identifier "local_88")) (; ";")) (do_statement "do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            } while (cVar3 != '\0');" (do "do") (compound_statement "{\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar3 = *pcVar6;\n              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;\n            }" ({ "{") (if_statement "if (uVar13 == 0) break;" (if "if") (parenthesized_expression "(uVar13 == 0)" (( "(") (binary_expression "uVar13 == 0" (identifier "uVar13") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar13 = uVar13 - 1;" (assignment_expression "uVar13 = uVar13 - 1" (identifier "uVar13") (= "=") (binary_expression "uVar13 - 1" (identifier "uVar13") (- "-") (number_literal "1"))) (; ";")) (expression_statement "cVar3 = *pcVar6;" (assignment_expression "cVar3 = *pcVar6" (identifier "cVar3") (= "=") (pointer_expression "*pcVar6" (* "*") (identifier "pcVar6"))) (; ";")) (expression_statement "pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1" (identifier "pcVar6") (= "=") (binary_expression "pcVar6 + (ulong)bVar17 * -2 + 1" (binary_expression "pcVar6 + (ulong)bVar17 * -2" (identifier "pcVar6") (+ "+") (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar17")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(cVar3 != '\0')" (( "(") (binary_expression "cVar3 != '\0'" (identifier "cVar3") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (; ";")) (expression_statement "pcVar6 = pcVar7 + ~uVar13;" (assignment_expression "pcVar6 = pcVar7 + ~uVar13" (identifier "pcVar6") (= "=") (binary_expression "pcVar7 + ~uVar13" (identifier "pcVar7") (+ "+") (unary_expression "~uVar13" (~ "~") (identifier "uVar13")))) (; ";")) (expression_statement "local_80 = pcVar6;" (assignment_expression "local_80 = pcVar6" (identifier "local_80") (= "=") (identifier "pcVar6")) (; ";")) (} "}"))) (} "}"))) (expression_statement "local_90 = pcVar5 + 3;" (assignment_expression "local_90 = pcVar5 + 3" (identifier "local_90") (= "=") (binary_expression "pcVar5 + 3" (identifier "pcVar5") (+ "+") (number_literal "3"))) (; ";")) (expression_statement "uVar2 = (&DAT_0016e354)[(ulong)uVar4 * 6];" (assignment_expression "uVar2 = (&DAT_0016e354)[(ulong)uVar4 * 6]" (identifier "uVar2") (= "=") (subscript_expression "(&DAT_0016e354)[(ulong)uVar4 * 6]" (parenthesized_expression "(&DAT_0016e354)" (( "(") (pointer_expression "&DAT_0016e354" (& "&") (identifier "DAT_0016e354")) () ")")) ([ "[") (binary_expression "(ulong)uVar4 * 6" (cast_expression "(ulong)uVar4" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar4")) (* "*") (number_literal "6")) (] "]"))) (; ";")) (if_statement "if ((uVar2 & 2) == 0) {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n        }\n        else {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n          pcVar7 = pcVar6;\n          if (*pcVar6 == ';') {\n            local_70 = pcVar6 + 1;\n            pcVar7 = strpbrk(local_70,local_90);\n            local_60 = pcVar7;\n            if (pcVar7 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar7 = local_70;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar7;\n                pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar7 = pcVar6 + ~uVar13;\n              local_60 = pcVar7;\n            }\n          }\n          local_90 = pcVar5 + 4;\n          pcVar6 = pcVar7;\n        }" (if "if") (parenthesized_expression "((uVar2 & 2) == 0)" (( "(") (binary_expression "(uVar2 & 2) == 0" (parenthesized_expression "(uVar2 & 2)" (( "(") (binary_expression "uVar2 & 2" (identifier "uVar2") (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n        }" ({ "{") (expression_statement "local_60 = (char *)0x0;" (assignment_expression "local_60 = (char *)0x0" (identifier "local_60") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_70 = (char *)0x0;" (assignment_expression "local_70 = (char *)0x0" (identifier "local_70") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")) (else_clause "else {\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n          pcVar7 = pcVar6;\n          if (*pcVar6 == ';') {\n            local_70 = pcVar6 + 1;\n            pcVar7 = strpbrk(local_70,local_90);\n            local_60 = pcVar7;\n            if (pcVar7 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar7 = local_70;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar7;\n                pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar7 = pcVar6 + ~uVar13;\n              local_60 = pcVar7;\n            }\n          }\n          local_90 = pcVar5 + 4;\n          pcVar6 = pcVar7;\n        }" (else "else") (compound_statement "{\n          local_60 = (char *)0x0;\n          local_70 = (char *)0x0;\n          pcVar7 = pcVar6;\n          if (*pcVar6 == ';') {\n            local_70 = pcVar6 + 1;\n            pcVar7 = strpbrk(local_70,local_90);\n            local_60 = pcVar7;\n            if (pcVar7 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar7 = local_70;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar7;\n                pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar7 = pcVar6 + ~uVar13;\n              local_60 = pcVar7;\n            }\n          }\n          local_90 = pcVar5 + 4;\n          pcVar6 = pcVar7;\n        }" ({ "{") (expression_statement "local_60 = (char *)0x0;" (assignment_expression "local_60 = (char *)0x0" (identifier "local_60") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_70 = (char *)0x0;" (assignment_expression "local_70 = (char *)0x0" (identifier "local_70") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pcVar7 = pcVar6;" (assignment_expression "pcVar7 = pcVar6" (identifier "pcVar7") (= "=") (identifier "pcVar6")) (; ";")) (if_statement "if (*pcVar6 == ';') {\n            local_70 = pcVar6 + 1;\n            pcVar7 = strpbrk(local_70,local_90);\n            local_60 = pcVar7;\n            if (pcVar7 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar7 = local_70;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar7;\n                pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar7 = pcVar6 + ~uVar13;\n              local_60 = pcVar7;\n            }\n          }" (if "if") (parenthesized_expression "(*pcVar6 == ';')" (( "(") (binary_expression "*pcVar6 == ';'" (pointer_expression "*pcVar6" (* "*") (identifier "pcVar6")) (== "==") (char_literal "';'" (' "'") (character ";") (' "'"))) () ")")) (compound_statement "{\n            local_70 = pcVar6 + 1;\n            pcVar7 = strpbrk(local_70,local_90);\n            local_60 = pcVar7;\n            if (pcVar7 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar7 = local_70;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar7;\n                pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar7 = pcVar6 + ~uVar13;\n              local_60 = pcVar7;\n            }\n          }" ({ "{") (expression_statement "local_70 = pcVar6 + 1;" (assignment_expression "local_70 = pcVar6 + 1" (identifier "local_70") (= "=") (binary_expression "pcVar6 + 1" (identifier "pcVar6") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pcVar7 = strpbrk(local_70,local_90);" (assignment_expression "pcVar7 = strpbrk(local_70,local_90)" (identifier "pcVar7") (= "=") (call_expression "strpbrk(local_70,local_90)" (identifier "strpbrk") (argument_list "(local_70,local_90)" (( "(") (identifier "local_70") (, ",") (identifier "local_90") () ")")))) (; ";")) (expression_statement "local_60 = pcVar7;" (assignment_expression "local_60 = pcVar7" (identifier "local_60") (= "=") (identifier "pcVar7")) (; ";")) (if_statement "if (pcVar7 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar7 = local_70;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar7;\n                pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar7 = pcVar6 + ~uVar13;\n              local_60 = pcVar7;\n            }" (if "if") (parenthesized_expression "(pcVar7 == (char *)0x0)" (( "(") (binary_expression "pcVar7 == (char *)0x0" (identifier "pcVar7") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              uVar13 = 0xffffffffffffffff;\n              pcVar7 = local_70;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar7;\n                pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar7 = pcVar6 + ~uVar13;\n              local_60 = pcVar7;\n            }" ({ "{") (expression_statement "uVar13 = 0xffffffffffffffff;" (assignment_expression "uVar13 = 0xffffffffffffffff" (identifier "uVar13") (= "=") (number_literal "0xffffffffffffffff")) (; ";")) (expression_statement "pcVar7 = local_70;" (assignment_expression "pcVar7 = local_70" (identifier "pcVar7") (= "=") (identifier "local_70")) (; ";")) (do_statement "do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar7;\n                pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');" (do "do") (compound_statement "{\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar7;\n                pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;\n              }" ({ "{") (if_statement "if (uVar13 == 0) break;" (if "if") (parenthesized_expression "(uVar13 == 0)" (( "(") (binary_expression "uVar13 == 0" (identifier "uVar13") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar13 = uVar13 - 1;" (assignment_expression "uVar13 = uVar13 - 1" (identifier "uVar13") (= "=") (binary_expression "uVar13 - 1" (identifier "uVar13") (- "-") (number_literal "1"))) (; ";")) (expression_statement "cVar3 = *pcVar7;" (assignment_expression "cVar3 = *pcVar7" (identifier "cVar3") (= "=") (pointer_expression "*pcVar7" (* "*") (identifier "pcVar7"))) (; ";")) (expression_statement "pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1" (identifier "pcVar7") (= "=") (binary_expression "pcVar7 + (ulong)bVar17 * -2 + 1" (binary_expression "pcVar7 + (ulong)bVar17 * -2" (identifier "pcVar7") (+ "+") (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar17")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(cVar3 != '\0')" (( "(") (binary_expression "cVar3 != '\0'" (identifier "cVar3") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (; ";")) (expression_statement "pcVar7 = pcVar6 + ~uVar13;" (assignment_expression "pcVar7 = pcVar6 + ~uVar13" (identifier "pcVar7") (= "=") (binary_expression "pcVar6 + ~uVar13" (identifier "pcVar6") (+ "+") (unary_expression "~uVar13" (~ "~") (identifier "uVar13")))) (; ";")) (expression_statement "local_60 = pcVar7;" (assignment_expression "local_60 = pcVar7" (identifier "local_60") (= "=") (identifier "pcVar7")) (; ";")) (} "}"))) (} "}"))) (expression_statement "local_90 = pcVar5 + 4;" (assignment_expression "local_90 = pcVar5 + 4" (identifier "local_90") (= "=") (binary_expression "pcVar5 + 4" (identifier "pcVar5") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "pcVar6 = pcVar7;" (assignment_expression "pcVar6 = pcVar7" (identifier "pcVar6") (= "=") (identifier "pcVar7")) (; ";")) (} "}")))) (if_statement "if ((uVar2 & 4) == 0) {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n        }\n        else {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n          pcVar5 = pcVar6;\n          if (*pcVar6 == '?') {\n            local_b0 = pcVar6 + 1;\n            pcVar5 = strpbrk(local_b0,local_90);\n            local_58 = pcVar5;\n            if (pcVar5 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_b0;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar5 = pcVar6 + ~uVar13;\n              local_58 = pcVar5;\n            }\n          }\n          local_90 = local_90 + 1;\n          pcVar6 = pcVar5;\n        }" (if "if") (parenthesized_expression "((uVar2 & 4) == 0)" (( "(") (binary_expression "(uVar2 & 4) == 0" (parenthesized_expression "(uVar2 & 4)" (( "(") (binary_expression "uVar2 & 4" (identifier "uVar2") (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n        }" ({ "{") (expression_statement "local_58 = (char *)0x0;" (assignment_expression "local_58 = (char *)0x0" (identifier "local_58") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_b0 = (char *)0x0;" (assignment_expression "local_b0 = (char *)0x0" (identifier "local_b0") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")) (else_clause "else {\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n          pcVar5 = pcVar6;\n          if (*pcVar6 == '?') {\n            local_b0 = pcVar6 + 1;\n            pcVar5 = strpbrk(local_b0,local_90);\n            local_58 = pcVar5;\n            if (pcVar5 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_b0;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar5 = pcVar6 + ~uVar13;\n              local_58 = pcVar5;\n            }\n          }\n          local_90 = local_90 + 1;\n          pcVar6 = pcVar5;\n        }" (else "else") (compound_statement "{\n          local_58 = (char *)0x0;\n          local_b0 = (char *)0x0;\n          pcVar5 = pcVar6;\n          if (*pcVar6 == '?') {\n            local_b0 = pcVar6 + 1;\n            pcVar5 = strpbrk(local_b0,local_90);\n            local_58 = pcVar5;\n            if (pcVar5 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_b0;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar5 = pcVar6 + ~uVar13;\n              local_58 = pcVar5;\n            }\n          }\n          local_90 = local_90 + 1;\n          pcVar6 = pcVar5;\n        }" ({ "{") (expression_statement "local_58 = (char *)0x0;" (assignment_expression "local_58 = (char *)0x0" (identifier "local_58") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_b0 = (char *)0x0;" (assignment_expression "local_b0 = (char *)0x0" (identifier "local_b0") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pcVar5 = pcVar6;" (assignment_expression "pcVar5 = pcVar6" (identifier "pcVar5") (= "=") (identifier "pcVar6")) (; ";")) (if_statement "if (*pcVar6 == '?') {\n            local_b0 = pcVar6 + 1;\n            pcVar5 = strpbrk(local_b0,local_90);\n            local_58 = pcVar5;\n            if (pcVar5 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_b0;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar5 = pcVar6 + ~uVar13;\n              local_58 = pcVar5;\n            }\n          }" (if "if") (parenthesized_expression "(*pcVar6 == '?')" (( "(") (binary_expression "*pcVar6 == '?'" (pointer_expression "*pcVar6" (* "*") (identifier "pcVar6")) (== "==") (char_literal "'?'" (' "'") (character "?") (' "'"))) () ")")) (compound_statement "{\n            local_b0 = pcVar6 + 1;\n            pcVar5 = strpbrk(local_b0,local_90);\n            local_58 = pcVar5;\n            if (pcVar5 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_b0;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar5 = pcVar6 + ~uVar13;\n              local_58 = pcVar5;\n            }\n          }" ({ "{") (expression_statement "local_b0 = pcVar6 + 1;" (assignment_expression "local_b0 = pcVar6 + 1" (identifier "local_b0") (= "=") (binary_expression "pcVar6 + 1" (identifier "pcVar6") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pcVar5 = strpbrk(local_b0,local_90);" (assignment_expression "pcVar5 = strpbrk(local_b0,local_90)" (identifier "pcVar5") (= "=") (call_expression "strpbrk(local_b0,local_90)" (identifier "strpbrk") (argument_list "(local_b0,local_90)" (( "(") (identifier "local_b0") (, ",") (identifier "local_90") () ")")))) (; ";")) (expression_statement "local_58 = pcVar5;" (assignment_expression "local_58 = pcVar5" (identifier "local_58") (= "=") (identifier "pcVar5")) (; ";")) (if_statement "if (pcVar5 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_b0;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar5 = pcVar6 + ~uVar13;\n              local_58 = pcVar5;\n            }" (if "if") (parenthesized_expression "(pcVar5 == (char *)0x0)" (( "(") (binary_expression "pcVar5 == (char *)0x0" (identifier "pcVar5") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_b0;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              pcVar5 = pcVar6 + ~uVar13;\n              local_58 = pcVar5;\n            }" ({ "{") (expression_statement "uVar13 = 0xffffffffffffffff;" (assignment_expression "uVar13 = 0xffffffffffffffff" (identifier "uVar13") (= "=") (number_literal "0xffffffffffffffff")) (; ";")) (expression_statement "pcVar5 = local_b0;" (assignment_expression "pcVar5 = local_b0" (identifier "pcVar5") (= "=") (identifier "local_b0")) (; ";")) (do_statement "do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');" (do "do") (compound_statement "{\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              }" ({ "{") (if_statement "if (uVar13 == 0) break;" (if "if") (parenthesized_expression "(uVar13 == 0)" (( "(") (binary_expression "uVar13 == 0" (identifier "uVar13") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar13 = uVar13 - 1;" (assignment_expression "uVar13 = uVar13 - 1" (identifier "uVar13") (= "=") (binary_expression "uVar13 - 1" (identifier "uVar13") (- "-") (number_literal "1"))) (; ";")) (expression_statement "cVar3 = *pcVar5;" (assignment_expression "cVar3 = *pcVar5" (identifier "cVar3") (= "=") (pointer_expression "*pcVar5" (* "*") (identifier "pcVar5"))) (; ";")) (expression_statement "pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1" (identifier "pcVar5") (= "=") (binary_expression "pcVar5 + (ulong)bVar17 * -2 + 1" (binary_expression "pcVar5 + (ulong)bVar17 * -2" (identifier "pcVar5") (+ "+") (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar17")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(cVar3 != '\0')" (( "(") (binary_expression "cVar3 != '\0'" (identifier "cVar3") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (; ";")) (expression_statement "pcVar5 = pcVar6 + ~uVar13;" (assignment_expression "pcVar5 = pcVar6 + ~uVar13" (identifier "pcVar5") (= "=") (binary_expression "pcVar6 + ~uVar13" (identifier "pcVar6") (+ "+") (unary_expression "~uVar13" (~ "~") (identifier "uVar13")))) (; ";")) (expression_statement "local_58 = pcVar5;" (assignment_expression "local_58 = pcVar5" (identifier "local_58") (= "=") (identifier "pcVar5")) (; ";")) (} "}"))) (} "}"))) (expression_statement "local_90 = local_90 + 1;" (assignment_expression "local_90 = local_90 + 1" (identifier "local_90") (= "=") (binary_expression "local_90 + 1" (identifier "local_90") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pcVar6 = pcVar5;" (assignment_expression "pcVar6 = pcVar5" (identifier "pcVar6") (= "=") (identifier "pcVar5")) (; ";")) (} "}")))) (if_statement "if ((uVar2 & 8) == 0) {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n        }\n        else {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n          if (*pcVar6 == '#') {\n            local_68 = pcVar6 + 1;\n            local_50 = strpbrk(local_68,local_90);\n            if (local_50 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_68;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              local_50 = pcVar6 + ~uVar13;\n            }\n          }\n        }" (if "if") (parenthesized_expression "((uVar2 & 8) == 0)" (( "(") (binary_expression "(uVar2 & 8) == 0" (parenthesized_expression "(uVar2 & 8)" (( "(") (binary_expression "uVar2 & 8" (identifier "uVar2") (& "&") (number_literal "8")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n        }" ({ "{") (expression_statement "local_50 = (char *)0x0;" (assignment_expression "local_50 = (char *)0x0" (identifier "local_50") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_68 = (char *)0x0;" (assignment_expression "local_68 = (char *)0x0" (identifier "local_68") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")) (else_clause "else {\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n          if (*pcVar6 == '#') {\n            local_68 = pcVar6 + 1;\n            local_50 = strpbrk(local_68,local_90);\n            if (local_50 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_68;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              local_50 = pcVar6 + ~uVar13;\n            }\n          }\n        }" (else "else") (compound_statement "{\n          local_50 = (char *)0x0;\n          local_68 = (char *)0x0;\n          if (*pcVar6 == '#') {\n            local_68 = pcVar6 + 1;\n            local_50 = strpbrk(local_68,local_90);\n            if (local_50 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_68;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              local_50 = pcVar6 + ~uVar13;\n            }\n          }\n        }" ({ "{") (expression_statement "local_50 = (char *)0x0;" (assignment_expression "local_50 = (char *)0x0" (identifier "local_50") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_68 = (char *)0x0;" (assignment_expression "local_68 = (char *)0x0" (identifier "local_68") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if (*pcVar6 == '#') {\n            local_68 = pcVar6 + 1;\n            local_50 = strpbrk(local_68,local_90);\n            if (local_50 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_68;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              local_50 = pcVar6 + ~uVar13;\n            }\n          }" (if "if") (parenthesized_expression "(*pcVar6 == '#')" (( "(") (binary_expression "*pcVar6 == '#'" (pointer_expression "*pcVar6" (* "*") (identifier "pcVar6")) (== "==") (char_literal "'#'" (' "'") (character "#") (' "'"))) () ")")) (compound_statement "{\n            local_68 = pcVar6 + 1;\n            local_50 = strpbrk(local_68,local_90);\n            if (local_50 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_68;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              local_50 = pcVar6 + ~uVar13;\n            }\n          }" ({ "{") (expression_statement "local_68 = pcVar6 + 1;" (assignment_expression "local_68 = pcVar6 + 1" (identifier "local_68") (= "=") (binary_expression "pcVar6 + 1" (identifier "pcVar6") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_50 = strpbrk(local_68,local_90);" (assignment_expression "local_50 = strpbrk(local_68,local_90)" (identifier "local_50") (= "=") (call_expression "strpbrk(local_68,local_90)" (identifier "strpbrk") (argument_list "(local_68,local_90)" (( "(") (identifier "local_68") (, ",") (identifier "local_90") () ")")))) (; ";")) (if_statement "if (local_50 == (char *)0x0) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_68;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              local_50 = pcVar6 + ~uVar13;\n            }" (if "if") (parenthesized_expression "(local_50 == (char *)0x0)" (( "(") (binary_expression "local_50 == (char *)0x0" (identifier "local_50") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              uVar13 = 0xffffffffffffffff;\n              pcVar5 = local_68;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');\n              local_50 = pcVar6 + ~uVar13;\n            }" ({ "{") (expression_statement "uVar13 = 0xffffffffffffffff;" (assignment_expression "uVar13 = 0xffffffffffffffff" (identifier "uVar13") (= "=") (number_literal "0xffffffffffffffff")) (; ";")) (expression_statement "pcVar5 = local_68;" (assignment_expression "pcVar5 = local_68" (identifier "pcVar5") (= "=") (identifier "local_68")) (; ";")) (do_statement "do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              } while (cVar3 != '\0');" (do "do") (compound_statement "{\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar3 = *pcVar5;\n                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;\n              }" ({ "{") (if_statement "if (uVar13 == 0) break;" (if "if") (parenthesized_expression "(uVar13 == 0)" (( "(") (binary_expression "uVar13 == 0" (identifier "uVar13") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar13 = uVar13 - 1;" (assignment_expression "uVar13 = uVar13 - 1" (identifier "uVar13") (= "=") (binary_expression "uVar13 - 1" (identifier "uVar13") (- "-") (number_literal "1"))) (; ";")) (expression_statement "cVar3 = *pcVar5;" (assignment_expression "cVar3 = *pcVar5" (identifier "cVar3") (= "=") (pointer_expression "*pcVar5" (* "*") (identifier "pcVar5"))) (; ";")) (expression_statement "pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1" (identifier "pcVar5") (= "=") (binary_expression "pcVar5 + (ulong)bVar17 * -2 + 1" (binary_expression "pcVar5 + (ulong)bVar17 * -2" (identifier "pcVar5") (+ "+") (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar17")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(cVar3 != '\0')" (( "(") (binary_expression "cVar3 != '\0'" (identifier "cVar3") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (; ";")) (expression_statement "local_50 = pcVar6 + ~uVar13;" (assignment_expression "local_50 = pcVar6 + ~uVar13" (identifier "local_50") (= "=") (binary_expression "pcVar6 + ~uVar13" (identifier "pcVar6") (+ "+") (unary_expression "~uVar13" (~ "~") (identifier "uVar13")))) (; ";")) (} "}"))) (} "}"))) (} "}")))) (if_statement "if (pcVar11 == pcVar14) {\n          pcVar5 = (char *)0x0;\n          uVar8 = 0;\nLAB_001379c6:\n          piVar9 = (int *)FUN_0014967c(1,0x60);\n          piVar9[2] = uVar4;\n          uVar10 = FUN_0013a40c(local_a8,local_a0);\n          *(undefined8 *)(piVar9 + 4) = uVar10;\n          piVar9[6] = local_74;\n          *(undefined8 *)(piVar9 + 0x14) = uVar8;\n          *(char **)(piVar9 + 0x16) = pcVar5;\n          pcVar11 = (char *)FUN_0013a40c(local_88,local_80);\n          *(char **)(piVar9 + 8) = pcVar11;\n          uVar13 = 0xffffffffffffffff;\n          pcVar14 = pcVar11;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar3 = *pcVar14;\n            pcVar14 = pcVar14 + (ulong)bVar17 * -2 + 1;\n          } while (cVar3 != '\0');\n          pcVar14 = pcVar11 + (~uVar13 - 1);\n          pcVar5 = pcVar11;\n          if (pcVar11 < pcVar14) {\n            pcVar7 = pcVar11;\n            pcVar6 = pcVar11;\n            do {\n              cVar3 = *pcVar11;\n              if (cVar3 == '.') {\n                cVar1 = pcVar11[1];\n                if ((cVar1 == '/') || (cVar1 == '\0')) {\n                  pcVar11 = pcVar11 + 2;\n                }\n                else {\n                  if ((cVar1 != '.') || ((pcVar11[2] != '/' && (pcVar11[2] != '\0'))))\n                  goto LAB_00137e1d;\n                  if (pcVar6 < pcVar7) {\n                    pcVar5 = pcVar7 + -1;\n                    if (pcVar6 < pcVar5) {\n                      cVar3 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar3 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar3 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar5 = pcVar7;\n                    if (uVar4 - 2 < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }\n                  pcVar11 = pcVar11 + 3;\n                  pcVar7 = pcVar5;\n                }\n              }\n              else {\nLAB_00137e1d:\n                if (pcVar7 == pcVar11) {\n                  pcVar5 = pcVar7;\n                  if (pcVar14 <= pcVar7) break;\n                  cVar3 = *pcVar7;\n                  while (cVar3 != '/') {\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar14;\n                    if (pcVar14 == pcVar5) goto LAB_00137d7b;\n                    cVar3 = *pcVar5;\n                  }\n                  pcVar11 = pcVar5 + 1;\n                  pcVar7 = pcVar5 + 1;\n                }\n                else {\n                  pcVar5 = pcVar11;\n                  if (pcVar14 <= pcVar11) break;\n                  while (cVar3 != '/') {\n                    pcVar11 = pcVar11 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar3;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar14;\n                    if (pcVar14 == pcVar11) goto LAB_00137d7b;\n                    cVar3 = *pcVar11;\n                  }\n                  *pcVar7 = *pcVar11;\n                  pcVar11 = pcVar11 + 1;\n                  pcVar7 = pcVar7 + 1;\n                }\n              }\n              pcVar5 = pcVar11;\n            } while (pcVar11 < pcVar14);\nLAB_00137d7b:\n            pcVar11 = pcVar7;\n            if (pcVar5 != pcVar7) {\n              *pcVar7 = '\0';\n            }\n          }\n          pcVar14 = *(char **)(piVar9 + 8);\n          pcVar6 = strrchr(pcVar14,0x2f);\n          if (pcVar6 == (char *)0x0) {\n            uVar8 = FUN_001496d9(&DAT_0015ea35);\n            *(undefined8 *)(piVar9 + 0x10) = uVar8;\n            uVar8 = FUN_001496d9(pcVar14);\n            *(undefined8 *)(piVar9 + 0x12) = uVar8;\n          }\n          else {\n            uVar8 = FUN_0013a40c(pcVar14,pcVar6);\n            *(undefined8 *)(piVar9 + 0x10) = uVar8;\n            uVar8 = FUN_001496d9(pcVar6 + 1);\n            *(undefined8 *)(piVar9 + 0x12) = uVar8;\n          }\n          FUN_00135c58(*(undefined8 *)(piVar9 + 0x10));\n          FUN_00135c58(*(undefined8 *)(piVar9 + 0x12));\n          pcVar14 = *(char **)(piVar9 + 4);\n          cVar3 = *pcVar14;\n          if (cVar3 == '\0') {\n            bVar17 = 0;\n          }\n          else {\n            bVar17 = 0;\n            do {\n              if ((int)cVar3 - 0x41U < 0x1a) {\n                *pcVar14 = cVar3 + ' ';\n                bVar17 = 1;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            } while (cVar3 != '\0');\n          }\n          pcVar14 = *(char **)(piVar9 + 4);\n          pcVar6 = strchr(pcVar14,0x25);\n          if (pcVar6 != (char *)0x0) {\n            FUN_00135c58(pcVar14);\n            pcVar14 = *(char **)(piVar9 + 4);\n            cVar3 = *pcVar14;\n            while (cVar3 != '\0') {\n              if ((-1 < cVar3) && ((cVar3 < ' ' || (cVar3 == '\x7f')))) {\n                FUN_0013629a(piVar9);\n                iVar15 = 3;\n                goto LAB_00137c65;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            }\n            bVar17 = param_3 != 0 & DAT_00177606;\n            if (bVar17 == 0) {\n              bVar17 = 1;\n            }\n            else {\n              lVar12 = FUN_0013eaa4(param_3);\n              if (lVar12 != 0) {\n                free(*(void **)(piVar9 + 4));\n                *(long *)(piVar9 + 4) = lVar12;\n              }\n            }\n          }\n          if (local_70 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_70,local_60);\n            *(undefined8 *)(piVar9 + 10) = uVar8;\n          }\n          if (local_b0 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_b0,local_58);\n            *(undefined8 *)(piVar9 + 0xc) = uVar8;\n          }\n          if (local_68 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_68,local_50);\n            *(undefined8 *)(piVar9 + 0xe) = uVar8;\n          }\n          param_2 = piVar9;\n          if ((((DAT_00177606 == 0) && (pcVar5 == pcVar11)) && (*(long *)(piVar9 + 0xe) == 0)) &&\n             ((local_88 != local_80 && (bVar17 == 0)))) {\n            if (local_b8 == param_1) {\n              uVar8 = FUN_001496d9(param_1);\n              *(undefined8 *)piVar9 = uVar8;\n            }\n            else {\n              *(void **)piVar9 = local_b8;\n            }\n          }\n          else {\n            uVar8 = FUN_00137051(piVar9,0);\n            *(undefined8 *)piVar9 = uVar8;\n            if (local_b8 != param_1) {\n              free(local_b8);\n            }\n          }\n          goto LAB_00137c95;\n        }" (if "if") (parenthesized_expression "(pcVar11 == pcVar14)" (( "(") (binary_expression "pcVar11 == pcVar14" (identifier "pcVar11") (== "==") (identifier "pcVar14")) () ")")) (compound_statement "{\n          pcVar5 = (char *)0x0;\n          uVar8 = 0;\nLAB_001379c6:\n          piVar9 = (int *)FUN_0014967c(1,0x60);\n          piVar9[2] = uVar4;\n          uVar10 = FUN_0013a40c(local_a8,local_a0);\n          *(undefined8 *)(piVar9 + 4) = uVar10;\n          piVar9[6] = local_74;\n          *(undefined8 *)(piVar9 + 0x14) = uVar8;\n          *(char **)(piVar9 + 0x16) = pcVar5;\n          pcVar11 = (char *)FUN_0013a40c(local_88,local_80);\n          *(char **)(piVar9 + 8) = pcVar11;\n          uVar13 = 0xffffffffffffffff;\n          pcVar14 = pcVar11;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar3 = *pcVar14;\n            pcVar14 = pcVar14 + (ulong)bVar17 * -2 + 1;\n          } while (cVar3 != '\0');\n          pcVar14 = pcVar11 + (~uVar13 - 1);\n          pcVar5 = pcVar11;\n          if (pcVar11 < pcVar14) {\n            pcVar7 = pcVar11;\n            pcVar6 = pcVar11;\n            do {\n              cVar3 = *pcVar11;\n              if (cVar3 == '.') {\n                cVar1 = pcVar11[1];\n                if ((cVar1 == '/') || (cVar1 == '\0')) {\n                  pcVar11 = pcVar11 + 2;\n                }\n                else {\n                  if ((cVar1 != '.') || ((pcVar11[2] != '/' && (pcVar11[2] != '\0'))))\n                  goto LAB_00137e1d;\n                  if (pcVar6 < pcVar7) {\n                    pcVar5 = pcVar7 + -1;\n                    if (pcVar6 < pcVar5) {\n                      cVar3 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar3 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar3 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar5 = pcVar7;\n                    if (uVar4 - 2 < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }\n                  pcVar11 = pcVar11 + 3;\n                  pcVar7 = pcVar5;\n                }\n              }\n              else {\nLAB_00137e1d:\n                if (pcVar7 == pcVar11) {\n                  pcVar5 = pcVar7;\n                  if (pcVar14 <= pcVar7) break;\n                  cVar3 = *pcVar7;\n                  while (cVar3 != '/') {\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar14;\n                    if (pcVar14 == pcVar5) goto LAB_00137d7b;\n                    cVar3 = *pcVar5;\n                  }\n                  pcVar11 = pcVar5 + 1;\n                  pcVar7 = pcVar5 + 1;\n                }\n                else {\n                  pcVar5 = pcVar11;\n                  if (pcVar14 <= pcVar11) break;\n                  while (cVar3 != '/') {\n                    pcVar11 = pcVar11 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar3;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar14;\n                    if (pcVar14 == pcVar11) goto LAB_00137d7b;\n                    cVar3 = *pcVar11;\n                  }\n                  *pcVar7 = *pcVar11;\n                  pcVar11 = pcVar11 + 1;\n                  pcVar7 = pcVar7 + 1;\n                }\n              }\n              pcVar5 = pcVar11;\n            } while (pcVar11 < pcVar14);\nLAB_00137d7b:\n            pcVar11 = pcVar7;\n            if (pcVar5 != pcVar7) {\n              *pcVar7 = '\0';\n            }\n          }\n          pcVar14 = *(char **)(piVar9 + 8);\n          pcVar6 = strrchr(pcVar14,0x2f);\n          if (pcVar6 == (char *)0x0) {\n            uVar8 = FUN_001496d9(&DAT_0015ea35);\n            *(undefined8 *)(piVar9 + 0x10) = uVar8;\n            uVar8 = FUN_001496d9(pcVar14);\n            *(undefined8 *)(piVar9 + 0x12) = uVar8;\n          }\n          else {\n            uVar8 = FUN_0013a40c(pcVar14,pcVar6);\n            *(undefined8 *)(piVar9 + 0x10) = uVar8;\n            uVar8 = FUN_001496d9(pcVar6 + 1);\n            *(undefined8 *)(piVar9 + 0x12) = uVar8;\n          }\n          FUN_00135c58(*(undefined8 *)(piVar9 + 0x10));\n          FUN_00135c58(*(undefined8 *)(piVar9 + 0x12));\n          pcVar14 = *(char **)(piVar9 + 4);\n          cVar3 = *pcVar14;\n          if (cVar3 == '\0') {\n            bVar17 = 0;\n          }\n          else {\n            bVar17 = 0;\n            do {\n              if ((int)cVar3 - 0x41U < 0x1a) {\n                *pcVar14 = cVar3 + ' ';\n                bVar17 = 1;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            } while (cVar3 != '\0');\n          }\n          pcVar14 = *(char **)(piVar9 + 4);\n          pcVar6 = strchr(pcVar14,0x25);\n          if (pcVar6 != (char *)0x0) {\n            FUN_00135c58(pcVar14);\n            pcVar14 = *(char **)(piVar9 + 4);\n            cVar3 = *pcVar14;\n            while (cVar3 != '\0') {\n              if ((-1 < cVar3) && ((cVar3 < ' ' || (cVar3 == '\x7f')))) {\n                FUN_0013629a(piVar9);\n                iVar15 = 3;\n                goto LAB_00137c65;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            }\n            bVar17 = param_3 != 0 & DAT_00177606;\n            if (bVar17 == 0) {\n              bVar17 = 1;\n            }\n            else {\n              lVar12 = FUN_0013eaa4(param_3);\n              if (lVar12 != 0) {\n                free(*(void **)(piVar9 + 4));\n                *(long *)(piVar9 + 4) = lVar12;\n              }\n            }\n          }\n          if (local_70 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_70,local_60);\n            *(undefined8 *)(piVar9 + 10) = uVar8;\n          }\n          if (local_b0 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_b0,local_58);\n            *(undefined8 *)(piVar9 + 0xc) = uVar8;\n          }\n          if (local_68 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_68,local_50);\n            *(undefined8 *)(piVar9 + 0xe) = uVar8;\n          }\n          param_2 = piVar9;\n          if ((((DAT_00177606 == 0) && (pcVar5 == pcVar11)) && (*(long *)(piVar9 + 0xe) == 0)) &&\n             ((local_88 != local_80 && (bVar17 == 0)))) {\n            if (local_b8 == param_1) {\n              uVar8 = FUN_001496d9(param_1);\n              *(undefined8 *)piVar9 = uVar8;\n            }\n            else {\n              *(void **)piVar9 = local_b8;\n            }\n          }\n          else {\n            uVar8 = FUN_00137051(piVar9,0);\n            *(undefined8 *)piVar9 = uVar8;\n            if (local_b8 != param_1) {\n              free(local_b8);\n            }\n          }\n          goto LAB_00137c95;\n        }" ({ "{") (expression_statement "pcVar5 = (char *)0x0;" (assignment_expression "pcVar5 = (char *)0x0" (identifier "pcVar5") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" (identifier "uVar8") (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_001379c6:\n          piVar9 = (int *)FUN_0014967c(1,0x60);" (statement_identifier "LAB_001379c6") (: ":") (expression_statement "piVar9 = (int *)FUN_0014967c(1,0x60);" (assignment_expression "piVar9 = (int *)FUN_0014967c(1,0x60)" (identifier "piVar9") (= "=") (cast_expression "(int *)FUN_0014967c(1,0x60)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0014967c(1,0x60)" (identifier "FUN_0014967c") (argument_list "(1,0x60)" (( "(") (number_literal "1") (, ",") (number_literal "0x60") () ")"))))) (; ";"))) (expression_statement "piVar9[2] = uVar4;" (assignment_expression "piVar9[2] = uVar4" (subscript_expression "piVar9[2]" (identifier "piVar9") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "uVar10 = FUN_0013a40c(local_a8,local_a0);" (assignment_expression "uVar10 = FUN_0013a40c(local_a8,local_a0)" (identifier "uVar10") (= "=") (call_expression "FUN_0013a40c(local_a8,local_a0)" (identifier "FUN_0013a40c") (argument_list "(local_a8,local_a0)" (( "(") (identifier "local_a8") (, ",") (identifier "local_a0") () ")")))) (; ";")) (expression_statement "*(undefined8 *)(piVar9 + 4) = uVar10;" (assignment_expression "*(undefined8 *)(piVar9 + 4) = uVar10" (pointer_expression "*(undefined8 *)(piVar9 + 4)" (* "*") (cast_expression "(undefined8 *)(piVar9 + 4)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar9 + 4)" (( "(") (binary_expression "piVar9 + 4" (identifier "piVar9") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "uVar10")) (; ";")) (expression_statement "piVar9[6] = local_74;" (assignment_expression "piVar9[6] = local_74" (subscript_expression "piVar9[6]" (identifier "piVar9") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "local_74")) (; ";")) (expression_statement "*(undefined8 *)(piVar9 + 0x14) = uVar8;" (assignment_expression "*(undefined8 *)(piVar9 + 0x14) = uVar8" (pointer_expression "*(undefined8 *)(piVar9 + 0x14)" (* "*") (cast_expression "(undefined8 *)(piVar9 + 0x14)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar9 + 0x14)" (( "(") (binary_expression "piVar9 + 0x14" (identifier "piVar9") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (identifier "uVar8")) (; ";")) (expression_statement "*(char **)(piVar9 + 0x16) = pcVar5;" (assignment_expression "*(char **)(piVar9 + 0x16) = pcVar5" (pointer_expression "*(char **)(piVar9 + 0x16)" (* "*") (cast_expression "(char **)(piVar9 + 0x16)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(piVar9 + 0x16)" (( "(") (binary_expression "piVar9 + 0x16" (identifier "piVar9") (+ "+") (number_literal "0x16")) () ")")))) (= "=") (identifier "pcVar5")) (; ";")) (expression_statement "pcVar11 = (char *)FUN_0013a40c(local_88,local_80);" (assignment_expression "pcVar11 = (char *)FUN_0013a40c(local_88,local_80)" (identifier "pcVar11") (= "=") (cast_expression "(char *)FUN_0013a40c(local_88,local_80)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0013a40c(local_88,local_80)" (identifier "FUN_0013a40c") (argument_list "(local_88,local_80)" (( "(") (identifier "local_88") (, ",") (identifier "local_80") () ")"))))) (; ";")) (expression_statement "*(char **)(piVar9 + 8) = pcVar11;" (assignment_expression "*(char **)(piVar9 + 8) = pcVar11" (pointer_expression "*(char **)(piVar9 + 8)" (* "*") (cast_expression "(char **)(piVar9 + 8)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(piVar9 + 8)" (( "(") (binary_expression "piVar9 + 8" (identifier "piVar9") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "pcVar11")) (; ";")) (expression_statement "uVar13 = 0xffffffffffffffff;" (assignment_expression "uVar13 = 0xffffffffffffffff" (identifier "uVar13") (= "=") (number_literal "0xffffffffffffffff")) (; ";")) (expression_statement "pcVar14 = pcVar11;" (assignment_expression "pcVar14 = pcVar11" (identifier "pcVar14") (= "=") (identifier "pcVar11")) (; ";")) (do_statement "do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar3 = *pcVar14;\n            pcVar14 = pcVar14 + (ulong)bVar17 * -2 + 1;\n          } while (cVar3 != '\0');" (do "do") (compound_statement "{\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar3 = *pcVar14;\n            pcVar14 = pcVar14 + (ulong)bVar17 * -2 + 1;\n          }" ({ "{") (if_statement "if (uVar13 == 0) break;" (if "if") (parenthesized_expression "(uVar13 == 0)" (( "(") (binary_expression "uVar13 == 0" (identifier "uVar13") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar13 = uVar13 - 1;" (assignment_expression "uVar13 = uVar13 - 1" (identifier "uVar13") (= "=") (binary_expression "uVar13 - 1" (identifier "uVar13") (- "-") (number_literal "1"))) (; ";")) (expression_statement "cVar3 = *pcVar14;" (assignment_expression "cVar3 = *pcVar14" (identifier "cVar3") (= "=") (pointer_expression "*pcVar14" (* "*") (identifier "pcVar14"))) (; ";")) (expression_statement "pcVar14 = pcVar14 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pcVar14 = pcVar14 + (ulong)bVar17 * -2 + 1" (identifier "pcVar14") (= "=") (binary_expression "pcVar14 + (ulong)bVar17 * -2 + 1" (binary_expression "pcVar14 + (ulong)bVar17 * -2" (identifier "pcVar14") (+ "+") (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar17")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(cVar3 != '\0')" (( "(") (binary_expression "cVar3 != '\0'" (identifier "cVar3") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (; ";")) (expression_statement "pcVar14 = pcVar11 + (~uVar13 - 1);" (assignment_expression "pcVar14 = pcVar11 + (~uVar13 - 1)" (identifier "pcVar14") (= "=") (binary_expression "pcVar11 + (~uVar13 - 1)" (identifier "pcVar11") (+ "+") (parenthesized_expression "(~uVar13 - 1)" (( "(") (binary_expression "~uVar13 - 1" (unary_expression "~uVar13" (~ "~") (identifier "uVar13")) (- "-") (number_literal "1")) () ")")))) (; ";")) (expression_statement "pcVar5 = pcVar11;" (assignment_expression "pcVar5 = pcVar11" (identifier "pcVar5") (= "=") (identifier "pcVar11")) (; ";")) (if_statement "if (pcVar11 < pcVar14) {\n            pcVar7 = pcVar11;\n            pcVar6 = pcVar11;\n            do {\n              cVar3 = *pcVar11;\n              if (cVar3 == '.') {\n                cVar1 = pcVar11[1];\n                if ((cVar1 == '/') || (cVar1 == '\0')) {\n                  pcVar11 = pcVar11 + 2;\n                }\n                else {\n                  if ((cVar1 != '.') || ((pcVar11[2] != '/' && (pcVar11[2] != '\0'))))\n                  goto LAB_00137e1d;\n                  if (pcVar6 < pcVar7) {\n                    pcVar5 = pcVar7 + -1;\n                    if (pcVar6 < pcVar5) {\n                      cVar3 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar3 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar3 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar5 = pcVar7;\n                    if (uVar4 - 2 < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }\n                  pcVar11 = pcVar11 + 3;\n                  pcVar7 = pcVar5;\n                }\n              }\n              else {\nLAB_00137e1d:\n                if (pcVar7 == pcVar11) {\n                  pcVar5 = pcVar7;\n                  if (pcVar14 <= pcVar7) break;\n                  cVar3 = *pcVar7;\n                  while (cVar3 != '/') {\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar14;\n                    if (pcVar14 == pcVar5) goto LAB_00137d7b;\n                    cVar3 = *pcVar5;\n                  }\n                  pcVar11 = pcVar5 + 1;\n                  pcVar7 = pcVar5 + 1;\n                }\n                else {\n                  pcVar5 = pcVar11;\n                  if (pcVar14 <= pcVar11) break;\n                  while (cVar3 != '/') {\n                    pcVar11 = pcVar11 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar3;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar14;\n                    if (pcVar14 == pcVar11) goto LAB_00137d7b;\n                    cVar3 = *pcVar11;\n                  }\n                  *pcVar7 = *pcVar11;\n                  pcVar11 = pcVar11 + 1;\n                  pcVar7 = pcVar7 + 1;\n                }\n              }\n              pcVar5 = pcVar11;\n            } while (pcVar11 < pcVar14);\nLAB_00137d7b:\n            pcVar11 = pcVar7;\n            if (pcVar5 != pcVar7) {\n              *pcVar7 = '\0';\n            }\n          }" (if "if") (parenthesized_expression "(pcVar11 < pcVar14)" (( "(") (binary_expression "pcVar11 < pcVar14" (identifier "pcVar11") (< "<") (identifier "pcVar14")) () ")")) (compound_statement "{\n            pcVar7 = pcVar11;\n            pcVar6 = pcVar11;\n            do {\n              cVar3 = *pcVar11;\n              if (cVar3 == '.') {\n                cVar1 = pcVar11[1];\n                if ((cVar1 == '/') || (cVar1 == '\0')) {\n                  pcVar11 = pcVar11 + 2;\n                }\n                else {\n                  if ((cVar1 != '.') || ((pcVar11[2] != '/' && (pcVar11[2] != '\0'))))\n                  goto LAB_00137e1d;\n                  if (pcVar6 < pcVar7) {\n                    pcVar5 = pcVar7 + -1;\n                    if (pcVar6 < pcVar5) {\n                      cVar3 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar3 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar3 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar5 = pcVar7;\n                    if (uVar4 - 2 < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }\n                  pcVar11 = pcVar11 + 3;\n                  pcVar7 = pcVar5;\n                }\n              }\n              else {\nLAB_00137e1d:\n                if (pcVar7 == pcVar11) {\n                  pcVar5 = pcVar7;\n                  if (pcVar14 <= pcVar7) break;\n                  cVar3 = *pcVar7;\n                  while (cVar3 != '/') {\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar14;\n                    if (pcVar14 == pcVar5) goto LAB_00137d7b;\n                    cVar3 = *pcVar5;\n                  }\n                  pcVar11 = pcVar5 + 1;\n                  pcVar7 = pcVar5 + 1;\n                }\n                else {\n                  pcVar5 = pcVar11;\n                  if (pcVar14 <= pcVar11) break;\n                  while (cVar3 != '/') {\n                    pcVar11 = pcVar11 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar3;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar14;\n                    if (pcVar14 == pcVar11) goto LAB_00137d7b;\n                    cVar3 = *pcVar11;\n                  }\n                  *pcVar7 = *pcVar11;\n                  pcVar11 = pcVar11 + 1;\n                  pcVar7 = pcVar7 + 1;\n                }\n              }\n              pcVar5 = pcVar11;\n            } while (pcVar11 < pcVar14);\nLAB_00137d7b:\n            pcVar11 = pcVar7;\n            if (pcVar5 != pcVar7) {\n              *pcVar7 = '\0';\n            }\n          }" ({ "{") (expression_statement "pcVar7 = pcVar11;" (assignment_expression "pcVar7 = pcVar11" (identifier "pcVar7") (= "=") (identifier "pcVar11")) (; ";")) (expression_statement "pcVar6 = pcVar11;" (assignment_expression "pcVar6 = pcVar11" (identifier "pcVar6") (= "=") (identifier "pcVar11")) (; ";")) (do_statement "do {\n              cVar3 = *pcVar11;\n              if (cVar3 == '.') {\n                cVar1 = pcVar11[1];\n                if ((cVar1 == '/') || (cVar1 == '\0')) {\n                  pcVar11 = pcVar11 + 2;\n                }\n                else {\n                  if ((cVar1 != '.') || ((pcVar11[2] != '/' && (pcVar11[2] != '\0'))))\n                  goto LAB_00137e1d;\n                  if (pcVar6 < pcVar7) {\n                    pcVar5 = pcVar7 + -1;\n                    if (pcVar6 < pcVar5) {\n                      cVar3 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar3 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar3 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar5 = pcVar7;\n                    if (uVar4 - 2 < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }\n                  pcVar11 = pcVar11 + 3;\n                  pcVar7 = pcVar5;\n                }\n              }\n              else {\nLAB_00137e1d:\n                if (pcVar7 == pcVar11) {\n                  pcVar5 = pcVar7;\n                  if (pcVar14 <= pcVar7) break;\n                  cVar3 = *pcVar7;\n                  while (cVar3 != '/') {\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar14;\n                    if (pcVar14 == pcVar5) goto LAB_00137d7b;\n                    cVar3 = *pcVar5;\n                  }\n                  pcVar11 = pcVar5 + 1;\n                  pcVar7 = pcVar5 + 1;\n                }\n                else {\n                  pcVar5 = pcVar11;\n                  if (pcVar14 <= pcVar11) break;\n                  while (cVar3 != '/') {\n                    pcVar11 = pcVar11 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar3;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar14;\n                    if (pcVar14 == pcVar11) goto LAB_00137d7b;\n                    cVar3 = *pcVar11;\n                  }\n                  *pcVar7 = *pcVar11;\n                  pcVar11 = pcVar11 + 1;\n                  pcVar7 = pcVar7 + 1;\n                }\n              }\n              pcVar5 = pcVar11;\n            } while (pcVar11 < pcVar14);" (do "do") (compound_statement "{\n              cVar3 = *pcVar11;\n              if (cVar3 == '.') {\n                cVar1 = pcVar11[1];\n                if ((cVar1 == '/') || (cVar1 == '\0')) {\n                  pcVar11 = pcVar11 + 2;\n                }\n                else {\n                  if ((cVar1 != '.') || ((pcVar11[2] != '/' && (pcVar11[2] != '\0'))))\n                  goto LAB_00137e1d;\n                  if (pcVar6 < pcVar7) {\n                    pcVar5 = pcVar7 + -1;\n                    if (pcVar6 < pcVar5) {\n                      cVar3 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar3 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar3 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar5 = pcVar7;\n                    if (uVar4 - 2 < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }\n                  pcVar11 = pcVar11 + 3;\n                  pcVar7 = pcVar5;\n                }\n              }\n              else {\nLAB_00137e1d:\n                if (pcVar7 == pcVar11) {\n                  pcVar5 = pcVar7;\n                  if (pcVar14 <= pcVar7) break;\n                  cVar3 = *pcVar7;\n                  while (cVar3 != '/') {\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar14;\n                    if (pcVar14 == pcVar5) goto LAB_00137d7b;\n                    cVar3 = *pcVar5;\n                  }\n                  pcVar11 = pcVar5 + 1;\n                  pcVar7 = pcVar5 + 1;\n                }\n                else {\n                  pcVar5 = pcVar11;\n                  if (pcVar14 <= pcVar11) break;\n                  while (cVar3 != '/') {\n                    pcVar11 = pcVar11 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar3;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar14;\n                    if (pcVar14 == pcVar11) goto LAB_00137d7b;\n                    cVar3 = *pcVar11;\n                  }\n                  *pcVar7 = *pcVar11;\n                  pcVar11 = pcVar11 + 1;\n                  pcVar7 = pcVar7 + 1;\n                }\n              }\n              pcVar5 = pcVar11;\n            }" ({ "{") (expression_statement "cVar3 = *pcVar11;" (assignment_expression "cVar3 = *pcVar11" (identifier "cVar3") (= "=") (pointer_expression "*pcVar11" (* "*") (identifier "pcVar11"))) (; ";")) (if_statement "if (cVar3 == '.') {\n                cVar1 = pcVar11[1];\n                if ((cVar1 == '/') || (cVar1 == '\0')) {\n                  pcVar11 = pcVar11 + 2;\n                }\n                else {\n                  if ((cVar1 != '.') || ((pcVar11[2] != '/' && (pcVar11[2] != '\0'))))\n                  goto LAB_00137e1d;\n                  if (pcVar6 < pcVar7) {\n                    pcVar5 = pcVar7 + -1;\n                    if (pcVar6 < pcVar5) {\n                      cVar3 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar3 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar3 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar5 = pcVar7;\n                    if (uVar4 - 2 < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }\n                  pcVar11 = pcVar11 + 3;\n                  pcVar7 = pcVar5;\n                }\n              }\n              else {\nLAB_00137e1d:\n                if (pcVar7 == pcVar11) {\n                  pcVar5 = pcVar7;\n                  if (pcVar14 <= pcVar7) break;\n                  cVar3 = *pcVar7;\n                  while (cVar3 != '/') {\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar14;\n                    if (pcVar14 == pcVar5) goto LAB_00137d7b;\n                    cVar3 = *pcVar5;\n                  }\n                  pcVar11 = pcVar5 + 1;\n                  pcVar7 = pcVar5 + 1;\n                }\n                else {\n                  pcVar5 = pcVar11;\n                  if (pcVar14 <= pcVar11) break;\n                  while (cVar3 != '/') {\n                    pcVar11 = pcVar11 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar3;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar14;\n                    if (pcVar14 == pcVar11) goto LAB_00137d7b;\n                    cVar3 = *pcVar11;\n                  }\n                  *pcVar7 = *pcVar11;\n                  pcVar11 = pcVar11 + 1;\n                  pcVar7 = pcVar7 + 1;\n                }\n              }" (if "if") (parenthesized_expression "(cVar3 == '.')" (( "(") (binary_expression "cVar3 == '.'" (identifier "cVar3") (== "==") (char_literal "'.'" (' "'") (character ".") (' "'"))) () ")")) (compound_statement "{\n                cVar1 = pcVar11[1];\n                if ((cVar1 == '/') || (cVar1 == '\0')) {\n                  pcVar11 = pcVar11 + 2;\n                }\n                else {\n                  if ((cVar1 != '.') || ((pcVar11[2] != '/' && (pcVar11[2] != '\0'))))\n                  goto LAB_00137e1d;\n                  if (pcVar6 < pcVar7) {\n                    pcVar5 = pcVar7 + -1;\n                    if (pcVar6 < pcVar5) {\n                      cVar3 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar3 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar3 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar5 = pcVar7;\n                    if (uVar4 - 2 < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }\n                  pcVar11 = pcVar11 + 3;\n                  pcVar7 = pcVar5;\n                }\n              }" ({ "{") (expression_statement "cVar1 = pcVar11[1];" (assignment_expression "cVar1 = pcVar11[1]" (identifier "cVar1") (= "=") (subscript_expression "pcVar11[1]" (identifier "pcVar11") ([ "[") (number_literal "1") (] "]"))) (; ";")) (if_statement "if ((cVar1 == '/') || (cVar1 == '\0')) {\n                  pcVar11 = pcVar11 + 2;\n                }\n                else {\n                  if ((cVar1 != '.') || ((pcVar11[2] != '/' && (pcVar11[2] != '\0'))))\n                  goto LAB_00137e1d;\n                  if (pcVar6 < pcVar7) {\n                    pcVar5 = pcVar7 + -1;\n                    if (pcVar6 < pcVar5) {\n                      cVar3 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar3 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar3 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar5 = pcVar7;\n                    if (uVar4 - 2 < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }\n                  pcVar11 = pcVar11 + 3;\n                  pcVar7 = pcVar5;\n                }" (if "if") (parenthesized_expression "((cVar1 == '/') || (cVar1 == '\0'))" (( "(") (binary_expression "(cVar1 == '/') || (cVar1 == '\0')" (parenthesized_expression "(cVar1 == '/')" (( "(") (binary_expression "cVar1 == '/'" (identifier "cVar1") (== "==") (char_literal "'/'" (' "'") (character "/") (' "'"))) () ")")) (|| "||") (parenthesized_expression "(cVar1 == '\0')" (( "(") (binary_expression "cVar1 == '\0'" (identifier "cVar1") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n                  pcVar11 = pcVar11 + 2;\n                }" ({ "{") (expression_statement "pcVar11 = pcVar11 + 2;" (assignment_expression "pcVar11 = pcVar11 + 2" (identifier "pcVar11") (= "=") (binary_expression "pcVar11 + 2" (identifier "pcVar11") (+ "+") (number_literal "2"))) (; ";")) (} "}")) (else_clause "else {\n                  if ((cVar1 != '.') || ((pcVar11[2] != '/' && (pcVar11[2] != '\0'))))\n                  goto LAB_00137e1d;\n                  if (pcVar6 < pcVar7) {\n                    pcVar5 = pcVar7 + -1;\n                    if (pcVar6 < pcVar5) {\n                      cVar3 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar3 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar3 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar5 = pcVar7;\n                    if (uVar4 - 2 < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }\n                  pcVar11 = pcVar11 + 3;\n                  pcVar7 = pcVar5;\n                }" (else "else") (compound_statement "{\n                  if ((cVar1 != '.') || ((pcVar11[2] != '/' && (pcVar11[2] != '\0'))))\n                  goto LAB_00137e1d;\n                  if (pcVar6 < pcVar7) {\n                    pcVar5 = pcVar7 + -1;\n                    if (pcVar6 < pcVar5) {\n                      cVar3 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar3 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar3 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar5 = pcVar7;\n                    if (uVar4 - 2 < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }\n                  pcVar11 = pcVar11 + 3;\n                  pcVar7 = pcVar5;\n                }" ({ "{") (if_statement "if ((cVar1 != '.') || ((pcVar11[2] != '/' && (pcVar11[2] != '\0'))))\n                  goto LAB_00137e1d;" (if "if") (parenthesized_expression "((cVar1 != '.') || ((pcVar11[2] != '/' && (pcVar11[2] != '\0'))))" (( "(") (binary_expression "(cVar1 != '.') || ((pcVar11[2] != '/' && (pcVar11[2] != '\0')))" (parenthesized_expression "(cVar1 != '.')" (( "(") (binary_expression "cVar1 != '.'" (identifier "cVar1") (!= "!=") (char_literal "'.'" (' "'") (character ".") (' "'"))) () ")")) (|| "||") (parenthesized_expression "((pcVar11[2] != '/' && (pcVar11[2] != '\0')))" (( "(") (parenthesized_expression "(pcVar11[2] != '/' && (pcVar11[2] != '\0'))" (( "(") (binary_expression "pcVar11[2] != '/' && (pcVar11[2] != '\0')" (binary_expression "pcVar11[2] != '/'" (subscript_expression "pcVar11[2]" (identifier "pcVar11") ([ "[") (number_literal "2") (] "]")) (!= "!=") (char_literal "'/'" (' "'") (character "/") (' "'"))) (&& "&&") (parenthesized_expression "(pcVar11[2] != '\0')" (( "(") (binary_expression "pcVar11[2] != '\0'" (subscript_expression "pcVar11[2]" (identifier "pcVar11") ([ "[") (number_literal "2") (] "]")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) () ")"))) () ")")) (goto_statement "goto LAB_00137e1d;" (goto "goto") (statement_identifier "LAB_00137e1d") (; ";"))) (if_statement "if (pcVar6 < pcVar7) {\n                    pcVar5 = pcVar7 + -1;\n                    if (pcVar6 < pcVar5) {\n                      cVar3 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar3 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar3 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar5 = pcVar7;\n                    if (uVar4 - 2 < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }" (if "if") (parenthesized_expression "(pcVar6 < pcVar7)" (( "(") (binary_expression "pcVar6 < pcVar7" (identifier "pcVar6") (< "<") (identifier "pcVar7")) () ")")) (compound_statement "{\n                    pcVar5 = pcVar7 + -1;\n                    if (pcVar6 < pcVar5) {\n                      cVar3 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar3 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar3 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }\n                  }" ({ "{") (expression_statement "pcVar5 = pcVar7 + -1;" (assignment_expression "pcVar5 = pcVar7 + -1" (identifier "pcVar5") (= "=") (binary_expression "pcVar7 + -1" (identifier "pcVar7") (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (pcVar6 < pcVar5) {\n                      cVar3 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar3 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar3 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }" (if "if") (parenthesized_expression "(pcVar6 < pcVar5)" (( "(") (binary_expression "pcVar6 < pcVar5" (identifier "pcVar6") (< "<") (identifier "pcVar5")) () ")")) (compound_statement "{\n                      cVar3 = pcVar7[-2];\n                      pcVar7 = pcVar5;\n                      while ((pcVar5 = pcVar7, cVar3 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar3 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }\n                    }" ({ "{") (expression_statement "cVar3 = pcVar7[-2];" (assignment_expression "cVar3 = pcVar7[-2]" (identifier "cVar3") (= "=") (subscript_expression "pcVar7[-2]" (identifier "pcVar7") ([ "[") (number_literal "-2") (] "]"))) (; ";")) (expression_statement "pcVar7 = pcVar5;" (assignment_expression "pcVar7 = pcVar5" (identifier "pcVar7") (= "=") (identifier "pcVar5")) (; ";")) (while_statement "while ((pcVar5 = pcVar7, cVar3 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {\n                        cVar3 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }" (while "while") (parenthesized_expression "((pcVar5 = pcVar7, cVar3 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5)))" (( "(") (parenthesized_expression "(pcVar5 = pcVar7, cVar3 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))" (( "(") (comma_expression "pcVar5 = pcVar7, cVar3 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5)" (assignment_expression "pcVar5 = pcVar7" (identifier "pcVar5") (= "=") (identifier "pcVar7")) (, ",") (binary_expression "cVar3 != '/' &&\n                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5)" (binary_expression "cVar3 != '/'" (identifier "cVar3") (!= "!=") (char_literal "'/'" (' "'") (character "/") (' "'"))) (&& "&&") (parenthesized_expression "(pcVar5 = pcVar7 + -1, pcVar6 != pcVar5)" (( "(") (comma_expression "pcVar5 = pcVar7 + -1, pcVar6 != pcVar5" (assignment_expression "pcVar5 = pcVar7 + -1" (identifier "pcVar5") (= "=") (binary_expression "pcVar7 + -1" (identifier "pcVar7") (+ "+") (number_literal "-1"))) (, ",") (binary_expression "pcVar6 != pcVar5" (identifier "pcVar6") (!= "!=") (identifier "pcVar5"))) () ")")))) () ")")) () ")")) (compound_statement "{\n                        cVar3 = pcVar7[-2];\n                        pcVar7 = pcVar5;\n                      }" ({ "{") (expression_statement "cVar3 = pcVar7[-2];" (assignment_expression "cVar3 = pcVar7[-2]" (identifier "cVar3") (= "=") (subscript_expression "pcVar7[-2]" (identifier "pcVar7") ([ "[") (number_literal "-2") (] "]"))) (; ";")) (expression_statement "pcVar7 = pcVar5;" (assignment_expression "pcVar7 = pcVar5" (identifier "pcVar7") (= "=") (identifier "pcVar5")) (; ";")) (} "}"))) (} "}"))) (} "}")) (else_clause "else {\n                    pcVar5 = pcVar7;\n                    if (uVar4 - 2 < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }" (else "else") (compound_statement "{\n                    pcVar5 = pcVar7;\n                    if (uVar4 - 2 < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }\n                  }" ({ "{") (expression_statement "pcVar5 = pcVar7;" (assignment_expression "pcVar5 = pcVar7" (identifier "pcVar5") (= "=") (identifier "pcVar7")) (; ";")) (if_statement "if (uVar4 - 2 < 2) {\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }" (if "if") (parenthesized_expression "(uVar4 - 2 < 2)" (( "(") (binary_expression "uVar4 - 2 < 2" (binary_expression "uVar4 - 2" (identifier "uVar4") (- "-") (number_literal "2")) (< "<") (number_literal "2")) () ")")) (compound_statement "{\n                      pcVar6 = pcVar7 + 3;\n                      goto LAB_00137e1d;\n                    }" ({ "{") (expression_statement "pcVar6 = pcVar7 + 3;" (assignment_expression "pcVar6 = pcVar7 + 3" (identifier "pcVar6") (= "=") (binary_expression "pcVar7 + 3" (identifier "pcVar7") (+ "+") (number_literal "3"))) (; ";")) (goto_statement "goto LAB_00137e1d;" (goto "goto") (statement_identifier "LAB_00137e1d") (; ";")) (} "}"))) (} "}")))) (expression_statement "pcVar11 = pcVar11 + 3;" (assignment_expression "pcVar11 = pcVar11 + 3" (identifier "pcVar11") (= "=") (binary_expression "pcVar11 + 3" (identifier "pcVar11") (+ "+") (number_literal "3"))) (; ";")) (expression_statement "pcVar7 = pcVar5;" (assignment_expression "pcVar7 = pcVar5" (identifier "pcVar7") (= "=") (identifier "pcVar5")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\nLAB_00137e1d:\n                if (pcVar7 == pcVar11) {\n                  pcVar5 = pcVar7;\n                  if (pcVar14 <= pcVar7) break;\n                  cVar3 = *pcVar7;\n                  while (cVar3 != '/') {\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar14;\n                    if (pcVar14 == pcVar5) goto LAB_00137d7b;\n                    cVar3 = *pcVar5;\n                  }\n                  pcVar11 = pcVar5 + 1;\n                  pcVar7 = pcVar5 + 1;\n                }\n                else {\n                  pcVar5 = pcVar11;\n                  if (pcVar14 <= pcVar11) break;\n                  while (cVar3 != '/') {\n                    pcVar11 = pcVar11 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar3;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar14;\n                    if (pcVar14 == pcVar11) goto LAB_00137d7b;\n                    cVar3 = *pcVar11;\n                  }\n                  *pcVar7 = *pcVar11;\n                  pcVar11 = pcVar11 + 1;\n                  pcVar7 = pcVar7 + 1;\n                }\n              }" (else "else") (compound_statement "{\nLAB_00137e1d:\n                if (pcVar7 == pcVar11) {\n                  pcVar5 = pcVar7;\n                  if (pcVar14 <= pcVar7) break;\n                  cVar3 = *pcVar7;\n                  while (cVar3 != '/') {\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar14;\n                    if (pcVar14 == pcVar5) goto LAB_00137d7b;\n                    cVar3 = *pcVar5;\n                  }\n                  pcVar11 = pcVar5 + 1;\n                  pcVar7 = pcVar5 + 1;\n                }\n                else {\n                  pcVar5 = pcVar11;\n                  if (pcVar14 <= pcVar11) break;\n                  while (cVar3 != '/') {\n                    pcVar11 = pcVar11 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar3;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar14;\n                    if (pcVar14 == pcVar11) goto LAB_00137d7b;\n                    cVar3 = *pcVar11;\n                  }\n                  *pcVar7 = *pcVar11;\n                  pcVar11 = pcVar11 + 1;\n                  pcVar7 = pcVar7 + 1;\n                }\n              }" ({ "{") (labeled_statement "LAB_00137e1d:\n                if (pcVar7 == pcVar11) {\n                  pcVar5 = pcVar7;\n                  if (pcVar14 <= pcVar7) break;\n                  cVar3 = *pcVar7;\n                  while (cVar3 != '/') {\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar14;\n                    if (pcVar14 == pcVar5) goto LAB_00137d7b;\n                    cVar3 = *pcVar5;\n                  }\n                  pcVar11 = pcVar5 + 1;\n                  pcVar7 = pcVar5 + 1;\n                }\n                else {\n                  pcVar5 = pcVar11;\n                  if (pcVar14 <= pcVar11) break;\n                  while (cVar3 != '/') {\n                    pcVar11 = pcVar11 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar3;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar14;\n                    if (pcVar14 == pcVar11) goto LAB_00137d7b;\n                    cVar3 = *pcVar11;\n                  }\n                  *pcVar7 = *pcVar11;\n                  pcVar11 = pcVar11 + 1;\n                  pcVar7 = pcVar7 + 1;\n                }" (statement_identifier "LAB_00137e1d") (: ":") (if_statement "if (pcVar7 == pcVar11) {\n                  pcVar5 = pcVar7;\n                  if (pcVar14 <= pcVar7) break;\n                  cVar3 = *pcVar7;\n                  while (cVar3 != '/') {\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar14;\n                    if (pcVar14 == pcVar5) goto LAB_00137d7b;\n                    cVar3 = *pcVar5;\n                  }\n                  pcVar11 = pcVar5 + 1;\n                  pcVar7 = pcVar5 + 1;\n                }\n                else {\n                  pcVar5 = pcVar11;\n                  if (pcVar14 <= pcVar11) break;\n                  while (cVar3 != '/') {\n                    pcVar11 = pcVar11 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar3;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar14;\n                    if (pcVar14 == pcVar11) goto LAB_00137d7b;\n                    cVar3 = *pcVar11;\n                  }\n                  *pcVar7 = *pcVar11;\n                  pcVar11 = pcVar11 + 1;\n                  pcVar7 = pcVar7 + 1;\n                }" (if "if") (parenthesized_expression "(pcVar7 == pcVar11)" (( "(") (binary_expression "pcVar7 == pcVar11" (identifier "pcVar7") (== "==") (identifier "pcVar11")) () ")")) (compound_statement "{\n                  pcVar5 = pcVar7;\n                  if (pcVar14 <= pcVar7) break;\n                  cVar3 = *pcVar7;\n                  while (cVar3 != '/') {\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar14;\n                    if (pcVar14 == pcVar5) goto LAB_00137d7b;\n                    cVar3 = *pcVar5;\n                  }\n                  pcVar11 = pcVar5 + 1;\n                  pcVar7 = pcVar5 + 1;\n                }" ({ "{") (expression_statement "pcVar5 = pcVar7;" (assignment_expression "pcVar5 = pcVar7" (identifier "pcVar5") (= "=") (identifier "pcVar7")) (; ";")) (if_statement "if (pcVar14 <= pcVar7) break;" (if "if") (parenthesized_expression "(pcVar14 <= pcVar7)" (( "(") (binary_expression "pcVar14 <= pcVar7" (identifier "pcVar14") (<= "<=") (identifier "pcVar7")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "cVar3 = *pcVar7;" (assignment_expression "cVar3 = *pcVar7" (identifier "cVar3") (= "=") (pointer_expression "*pcVar7" (* "*") (identifier "pcVar7"))) (; ";")) (while_statement "while (cVar3 != '/') {\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar14;\n                    if (pcVar14 == pcVar5) goto LAB_00137d7b;\n                    cVar3 = *pcVar5;\n                  }" (while "while") (parenthesized_expression "(cVar3 != '/')" (( "(") (binary_expression "cVar3 != '/'" (identifier "cVar3") (!= "!=") (char_literal "'/'" (' "'") (character "/") (' "'"))) () ")")) (compound_statement "{\n                    pcVar5 = pcVar5 + 1;\n                    pcVar7 = pcVar14;\n                    if (pcVar14 == pcVar5) goto LAB_00137d7b;\n                    cVar3 = *pcVar5;\n                  }" ({ "{") (expression_statement "pcVar5 = pcVar5 + 1;" (assignment_expression "pcVar5 = pcVar5 + 1" (identifier "pcVar5") (= "=") (binary_expression "pcVar5 + 1" (identifier "pcVar5") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pcVar7 = pcVar14;" (assignment_expression "pcVar7 = pcVar14" (identifier "pcVar7") (= "=") (identifier "pcVar14")) (; ";")) (if_statement "if (pcVar14 == pcVar5) goto LAB_00137d7b;" (if "if") (parenthesized_expression "(pcVar14 == pcVar5)" (( "(") (binary_expression "pcVar14 == pcVar5" (identifier "pcVar14") (== "==") (identifier "pcVar5")) () ")")) (goto_statement "goto LAB_00137d7b;" (goto "goto") (statement_identifier "LAB_00137d7b") (; ";"))) (expression_statement "cVar3 = *pcVar5;" (assignment_expression "cVar3 = *pcVar5" (identifier "cVar3") (= "=") (pointer_expression "*pcVar5" (* "*") (identifier "pcVar5"))) (; ";")) (} "}"))) (expression_statement "pcVar11 = pcVar5 + 1;" (assignment_expression "pcVar11 = pcVar5 + 1" (identifier "pcVar11") (= "=") (binary_expression "pcVar5 + 1" (identifier "pcVar5") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pcVar7 = pcVar5 + 1;" (assignment_expression "pcVar7 = pcVar5 + 1" (identifier "pcVar7") (= "=") (binary_expression "pcVar5 + 1" (identifier "pcVar5") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (else_clause "else {\n                  pcVar5 = pcVar11;\n                  if (pcVar14 <= pcVar11) break;\n                  while (cVar3 != '/') {\n                    pcVar11 = pcVar11 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar3;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar14;\n                    if (pcVar14 == pcVar11) goto LAB_00137d7b;\n                    cVar3 = *pcVar11;\n                  }\n                  *pcVar7 = *pcVar11;\n                  pcVar11 = pcVar11 + 1;\n                  pcVar7 = pcVar7 + 1;\n                }" (else "else") (compound_statement "{\n                  pcVar5 = pcVar11;\n                  if (pcVar14 <= pcVar11) break;\n                  while (cVar3 != '/') {\n                    pcVar11 = pcVar11 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar3;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar14;\n                    if (pcVar14 == pcVar11) goto LAB_00137d7b;\n                    cVar3 = *pcVar11;\n                  }\n                  *pcVar7 = *pcVar11;\n                  pcVar11 = pcVar11 + 1;\n                  pcVar7 = pcVar7 + 1;\n                }" ({ "{") (expression_statement "pcVar5 = pcVar11;" (assignment_expression "pcVar5 = pcVar11" (identifier "pcVar5") (= "=") (identifier "pcVar11")) (; ";")) (if_statement "if (pcVar14 <= pcVar11) break;" (if "if") (parenthesized_expression "(pcVar14 <= pcVar11)" (( "(") (binary_expression "pcVar14 <= pcVar11" (identifier "pcVar14") (<= "<=") (identifier "pcVar11")) () ")")) (break_statement "break;" (break "break") (; ";"))) (while_statement "while (cVar3 != '/') {\n                    pcVar11 = pcVar11 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar3;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar14;\n                    if (pcVar14 == pcVar11) goto LAB_00137d7b;\n                    cVar3 = *pcVar11;\n                  }" (while "while") (parenthesized_expression "(cVar3 != '/')" (( "(") (binary_expression "cVar3 != '/'" (identifier "cVar3") (!= "!=") (char_literal "'/'" (' "'") (character "/") (' "'"))) () ")")) (compound_statement "{\n                    pcVar11 = pcVar11 + 1;\n                    pcVar5 = pcVar7 + 1;\n                    *pcVar7 = cVar3;\n                    pcVar7 = pcVar5;\n                    pcVar5 = pcVar14;\n                    if (pcVar14 == pcVar11) goto LAB_00137d7b;\n                    cVar3 = *pcVar11;\n                  }" ({ "{") (expression_statement "pcVar11 = pcVar11 + 1;" (assignment_expression "pcVar11 = pcVar11 + 1" (identifier "pcVar11") (= "=") (binary_expression "pcVar11 + 1" (identifier "pcVar11") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pcVar5 = pcVar7 + 1;" (assignment_expression "pcVar5 = pcVar7 + 1" (identifier "pcVar5") (= "=") (binary_expression "pcVar7 + 1" (identifier "pcVar7") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*pcVar7 = cVar3;" (assignment_expression "*pcVar7 = cVar3" (pointer_expression "*pcVar7" (* "*") (identifier "pcVar7")) (= "=") (identifier "cVar3")) (; ";")) (expression_statement "pcVar7 = pcVar5;" (assignment_expression "pcVar7 = pcVar5" (identifier "pcVar7") (= "=") (identifier "pcVar5")) (; ";")) (expression_statement "pcVar5 = pcVar14;" (assignment_expression "pcVar5 = pcVar14" (identifier "pcVar5") (= "=") (identifier "pcVar14")) (; ";")) (if_statement "if (pcVar14 == pcVar11) goto LAB_00137d7b;" (if "if") (parenthesized_expression "(pcVar14 == pcVar11)" (( "(") (binary_expression "pcVar14 == pcVar11" (identifier "pcVar14") (== "==") (identifier "pcVar11")) () ")")) (goto_statement "goto LAB_00137d7b;" (goto "goto") (statement_identifier "LAB_00137d7b") (; ";"))) (expression_statement "cVar3 = *pcVar11;" (assignment_expression "cVar3 = *pcVar11" (identifier "cVar3") (= "=") (pointer_expression "*pcVar11" (* "*") (identifier "pcVar11"))) (; ";")) (} "}"))) (expression_statement "*pcVar7 = *pcVar11;" (assignment_expression "*pcVar7 = *pcVar11" (pointer_expression "*pcVar7" (* "*") (identifier "pcVar7")) (= "=") (pointer_expression "*pcVar11" (* "*") (identifier "pcVar11"))) (; ";")) (expression_statement "pcVar11 = pcVar11 + 1;" (assignment_expression "pcVar11 = pcVar11 + 1" (identifier "pcVar11") (= "=") (binary_expression "pcVar11 + 1" (identifier "pcVar11") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pcVar7 = pcVar7 + 1;" (assignment_expression "pcVar7 = pcVar7 + 1" (identifier "pcVar7") (= "=") (binary_expression "pcVar7 + 1" (identifier "pcVar7") (+ "+") (number_literal "1"))) (; ";")) (} "}"))))) (} "}")))) (expression_statement "pcVar5 = pcVar11;" (assignment_expression "pcVar5 = pcVar11" (identifier "pcVar5") (= "=") (identifier "pcVar11")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pcVar11 < pcVar14)" (( "(") (binary_expression "pcVar11 < pcVar14" (identifier "pcVar11") (< "<") (identifier "pcVar14")) () ")")) (; ";")) (labeled_statement "LAB_00137d7b:\n            pcVar11 = pcVar7;" (statement_identifier "LAB_00137d7b") (: ":") (expression_statement "pcVar11 = pcVar7;" (assignment_expression "pcVar11 = pcVar7" (identifier "pcVar11") (= "=") (identifier "pcVar7")) (; ";"))) (if_statement "if (pcVar5 != pcVar7) {\n              *pcVar7 = '\0';\n            }" (if "if") (parenthesized_expression "(pcVar5 != pcVar7)" (( "(") (binary_expression "pcVar5 != pcVar7" (identifier "pcVar5") (!= "!=") (identifier "pcVar7")) () ")")) (compound_statement "{\n              *pcVar7 = '\0';\n            }" ({ "{") (expression_statement "*pcVar7 = '\0';" (assignment_expression "*pcVar7 = '\0'" (pointer_expression "*pcVar7" (* "*") (identifier "pcVar7")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "pcVar14 = *(char **)(piVar9 + 8);" (assignment_expression "pcVar14 = *(char **)(piVar9 + 8)" (identifier "pcVar14") (= "=") (pointer_expression "*(char **)(piVar9 + 8)" (* "*") (cast_expression "(char **)(piVar9 + 8)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(piVar9 + 8)" (( "(") (binary_expression "piVar9 + 8" (identifier "piVar9") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "pcVar6 = strrchr(pcVar14,0x2f);" (assignment_expression "pcVar6 = strrchr(pcVar14,0x2f)" (identifier "pcVar6") (= "=") (call_expression "strrchr(pcVar14,0x2f)" (identifier "strrchr") (argument_list "(pcVar14,0x2f)" (( "(") (identifier "pcVar14") (, ",") (number_literal "0x2f") () ")")))) (; ";")) (if_statement "if (pcVar6 == (char *)0x0) {\n            uVar8 = FUN_001496d9(&DAT_0015ea35);\n            *(undefined8 *)(piVar9 + 0x10) = uVar8;\n            uVar8 = FUN_001496d9(pcVar14);\n            *(undefined8 *)(piVar9 + 0x12) = uVar8;\n          }\n          else {\n            uVar8 = FUN_0013a40c(pcVar14,pcVar6);\n            *(undefined8 *)(piVar9 + 0x10) = uVar8;\n            uVar8 = FUN_001496d9(pcVar6 + 1);\n            *(undefined8 *)(piVar9 + 0x12) = uVar8;\n          }" (if "if") (parenthesized_expression "(pcVar6 == (char *)0x0)" (( "(") (binary_expression "pcVar6 == (char *)0x0" (identifier "pcVar6") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            uVar8 = FUN_001496d9(&DAT_0015ea35);\n            *(undefined8 *)(piVar9 + 0x10) = uVar8;\n            uVar8 = FUN_001496d9(pcVar14);\n            *(undefined8 *)(piVar9 + 0x12) = uVar8;\n          }" ({ "{") (expression_statement "uVar8 = FUN_001496d9(&DAT_0015ea35);" (assignment_expression "uVar8 = FUN_001496d9(&DAT_0015ea35)" (identifier "uVar8") (= "=") (call_expression "FUN_001496d9(&DAT_0015ea35)" (identifier "FUN_001496d9") (argument_list "(&DAT_0015ea35)" (( "(") (pointer_expression "&DAT_0015ea35" (& "&") (identifier "DAT_0015ea35")) () ")")))) (; ";")) (expression_statement "*(undefined8 *)(piVar9 + 0x10) = uVar8;" (assignment_expression "*(undefined8 *)(piVar9 + 0x10) = uVar8" (pointer_expression "*(undefined8 *)(piVar9 + 0x10)" (* "*") (cast_expression "(undefined8 *)(piVar9 + 0x10)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar9 + 0x10)" (( "(") (binary_expression "piVar9 + 0x10" (identifier "piVar9") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "uVar8")) (; ";")) (expression_statement "uVar8 = FUN_001496d9(pcVar14);" (assignment_expression "uVar8 = FUN_001496d9(pcVar14)" (identifier "uVar8") (= "=") (call_expression "FUN_001496d9(pcVar14)" (identifier "FUN_001496d9") (argument_list "(pcVar14)" (( "(") (identifier "pcVar14") () ")")))) (; ";")) (expression_statement "*(undefined8 *)(piVar9 + 0x12) = uVar8;" (assignment_expression "*(undefined8 *)(piVar9 + 0x12) = uVar8" (pointer_expression "*(undefined8 *)(piVar9 + 0x12)" (* "*") (cast_expression "(undefined8 *)(piVar9 + 0x12)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar9 + 0x12)" (( "(") (binary_expression "piVar9 + 0x12" (identifier "piVar9") (+ "+") (number_literal "0x12")) () ")")))) (= "=") (identifier "uVar8")) (; ";")) (} "}")) (else_clause "else {\n            uVar8 = FUN_0013a40c(pcVar14,pcVar6);\n            *(undefined8 *)(piVar9 + 0x10) = uVar8;\n            uVar8 = FUN_001496d9(pcVar6 + 1);\n            *(undefined8 *)(piVar9 + 0x12) = uVar8;\n          }" (else "else") (compound_statement "{\n            uVar8 = FUN_0013a40c(pcVar14,pcVar6);\n            *(undefined8 *)(piVar9 + 0x10) = uVar8;\n            uVar8 = FUN_001496d9(pcVar6 + 1);\n            *(undefined8 *)(piVar9 + 0x12) = uVar8;\n          }" ({ "{") (expression_statement "uVar8 = FUN_0013a40c(pcVar14,pcVar6);" (assignment_expression "uVar8 = FUN_0013a40c(pcVar14,pcVar6)" (identifier "uVar8") (= "=") (call_expression "FUN_0013a40c(pcVar14,pcVar6)" (identifier "FUN_0013a40c") (argument_list "(pcVar14,pcVar6)" (( "(") (identifier "pcVar14") (, ",") (identifier "pcVar6") () ")")))) (; ";")) (expression_statement "*(undefined8 *)(piVar9 + 0x10) = uVar8;" (assignment_expression "*(undefined8 *)(piVar9 + 0x10) = uVar8" (pointer_expression "*(undefined8 *)(piVar9 + 0x10)" (* "*") (cast_expression "(undefined8 *)(piVar9 + 0x10)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar9 + 0x10)" (( "(") (binary_expression "piVar9 + 0x10" (identifier "piVar9") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "uVar8")) (; ";")) (expression_statement "uVar8 = FUN_001496d9(pcVar6 + 1);" (assignment_expression "uVar8 = FUN_001496d9(pcVar6 + 1)" (identifier "uVar8") (= "=") (call_expression "FUN_001496d9(pcVar6 + 1)" (identifier "FUN_001496d9") (argument_list "(pcVar6 + 1)" (( "(") (binary_expression "pcVar6 + 1" (identifier "pcVar6") (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "*(undefined8 *)(piVar9 + 0x12) = uVar8;" (assignment_expression "*(undefined8 *)(piVar9 + 0x12) = uVar8" (pointer_expression "*(undefined8 *)(piVar9 + 0x12)" (* "*") (cast_expression "(undefined8 *)(piVar9 + 0x12)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar9 + 0x12)" (( "(") (binary_expression "piVar9 + 0x12" (identifier "piVar9") (+ "+") (number_literal "0x12")) () ")")))) (= "=") (identifier "uVar8")) (; ";")) (} "}")))) (expression_statement "FUN_00135c58(*(undefined8 *)(piVar9 + 0x10));" (call_expression "FUN_00135c58(*(undefined8 *)(piVar9 + 0x10))" (identifier "FUN_00135c58") (argument_list "(*(undefined8 *)(piVar9 + 0x10))" (( "(") (pointer_expression "*(undefined8 *)(piVar9 + 0x10)" (* "*") (cast_expression "(undefined8 *)(piVar9 + 0x10)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar9 + 0x10)" (( "(") (binary_expression "piVar9 + 0x10" (identifier "piVar9") (+ "+") (number_literal "0x10")) () ")")))) () ")"))) (; ";")) (expression_statement "FUN_00135c58(*(undefined8 *)(piVar9 + 0x12));" (call_expression "FUN_00135c58(*(undefined8 *)(piVar9 + 0x12))" (identifier "FUN_00135c58") (argument_list "(*(undefined8 *)(piVar9 + 0x12))" (( "(") (pointer_expression "*(undefined8 *)(piVar9 + 0x12)" (* "*") (cast_expression "(undefined8 *)(piVar9 + 0x12)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar9 + 0x12)" (( "(") (binary_expression "piVar9 + 0x12" (identifier "piVar9") (+ "+") (number_literal "0x12")) () ")")))) () ")"))) (; ";")) (expression_statement "pcVar14 = *(char **)(piVar9 + 4);" (assignment_expression "pcVar14 = *(char **)(piVar9 + 4)" (identifier "pcVar14") (= "=") (pointer_expression "*(char **)(piVar9 + 4)" (* "*") (cast_expression "(char **)(piVar9 + 4)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(piVar9 + 4)" (( "(") (binary_expression "piVar9 + 4" (identifier "piVar9") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "cVar3 = *pcVar14;" (assignment_expression "cVar3 = *pcVar14" (identifier "cVar3") (= "=") (pointer_expression "*pcVar14" (* "*") (identifier "pcVar14"))) (; ";")) (if_statement "if (cVar3 == '\0') {\n            bVar17 = 0;\n          }\n          else {\n            bVar17 = 0;\n            do {\n              if ((int)cVar3 - 0x41U < 0x1a) {\n                *pcVar14 = cVar3 + ' ';\n                bVar17 = 1;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            } while (cVar3 != '\0');\n          }" (if "if") (parenthesized_expression "(cVar3 == '\0')" (( "(") (binary_expression "cVar3 == '\0'" (identifier "cVar3") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n            bVar17 = 0;\n          }" ({ "{") (expression_statement "bVar17 = 0;" (assignment_expression "bVar17 = 0" (identifier "bVar17") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n            bVar17 = 0;\n            do {\n              if ((int)cVar3 - 0x41U < 0x1a) {\n                *pcVar14 = cVar3 + ' ';\n                bVar17 = 1;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            } while (cVar3 != '\0');\n          }" (else "else") (compound_statement "{\n            bVar17 = 0;\n            do {\n              if ((int)cVar3 - 0x41U < 0x1a) {\n                *pcVar14 = cVar3 + ' ';\n                bVar17 = 1;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            } while (cVar3 != '\0');\n          }" ({ "{") (expression_statement "bVar17 = 0;" (assignment_expression "bVar17 = 0" (identifier "bVar17") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n              if ((int)cVar3 - 0x41U < 0x1a) {\n                *pcVar14 = cVar3 + ' ';\n                bVar17 = 1;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            } while (cVar3 != '\0');" (do "do") (compound_statement "{\n              if ((int)cVar3 - 0x41U < 0x1a) {\n                *pcVar14 = cVar3 + ' ';\n                bVar17 = 1;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            }" ({ "{") (if_statement "if ((int)cVar3 - 0x41U < 0x1a) {\n                *pcVar14 = cVar3 + ' ';\n                bVar17 = 1;\n              }" (if "if") (parenthesized_expression "((int)cVar3 - 0x41U < 0x1a)" (( "(") (binary_expression "(int)cVar3 - 0x41U < 0x1a" (binary_expression "(int)cVar3 - 0x41U" (cast_expression "(int)cVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "cVar3")) (- "-") (number_literal "0x41U")) (< "<") (number_literal "0x1a")) () ")")) (compound_statement "{\n                *pcVar14 = cVar3 + ' ';\n                bVar17 = 1;\n              }" ({ "{") (expression_statement "*pcVar14 = cVar3 + ' ';" (assignment_expression "*pcVar14 = cVar3 + ' '" (pointer_expression "*pcVar14" (* "*") (identifier "pcVar14")) (= "=") (binary_expression "cVar3 + ' '" (identifier "cVar3") (+ "+") (char_literal "' '" (' "'") (character " ") (' "'")))) (; ";")) (expression_statement "bVar17 = 1;" (assignment_expression "bVar17 = 1" (identifier "bVar17") (= "=") (number_literal "1")) (; ";")) (} "}"))) (expression_statement "pcVar14 = pcVar14 + 1;" (assignment_expression "pcVar14 = pcVar14 + 1" (identifier "pcVar14") (= "=") (binary_expression "pcVar14 + 1" (identifier "pcVar14") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "cVar3 = *pcVar14;" (assignment_expression "cVar3 = *pcVar14" (identifier "cVar3") (= "=") (pointer_expression "*pcVar14" (* "*") (identifier "pcVar14"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(cVar3 != '\0')" (( "(") (binary_expression "cVar3 != '\0'" (identifier "cVar3") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (; ";")) (} "}")))) (expression_statement "pcVar14 = *(char **)(piVar9 + 4);" (assignment_expression "pcVar14 = *(char **)(piVar9 + 4)" (identifier "pcVar14") (= "=") (pointer_expression "*(char **)(piVar9 + 4)" (* "*") (cast_expression "(char **)(piVar9 + 4)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(piVar9 + 4)" (( "(") (binary_expression "piVar9 + 4" (identifier "piVar9") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "pcVar6 = strchr(pcVar14,0x25);" (assignment_expression "pcVar6 = strchr(pcVar14,0x25)" (identifier "pcVar6") (= "=") (call_expression "strchr(pcVar14,0x25)" (identifier "strchr") (argument_list "(pcVar14,0x25)" (( "(") (identifier "pcVar14") (, ",") (number_literal "0x25") () ")")))) (; ";")) (if_statement "if (pcVar6 != (char *)0x0) {\n            FUN_00135c58(pcVar14);\n            pcVar14 = *(char **)(piVar9 + 4);\n            cVar3 = *pcVar14;\n            while (cVar3 != '\0') {\n              if ((-1 < cVar3) && ((cVar3 < ' ' || (cVar3 == '\x7f')))) {\n                FUN_0013629a(piVar9);\n                iVar15 = 3;\n                goto LAB_00137c65;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            }\n            bVar17 = param_3 != 0 & DAT_00177606;\n            if (bVar17 == 0) {\n              bVar17 = 1;\n            }\n            else {\n              lVar12 = FUN_0013eaa4(param_3);\n              if (lVar12 != 0) {\n                free(*(void **)(piVar9 + 4));\n                *(long *)(piVar9 + 4) = lVar12;\n              }\n            }\n          }" (if "if") (parenthesized_expression "(pcVar6 != (char *)0x0)" (( "(") (binary_expression "pcVar6 != (char *)0x0" (identifier "pcVar6") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            FUN_00135c58(pcVar14);\n            pcVar14 = *(char **)(piVar9 + 4);\n            cVar3 = *pcVar14;\n            while (cVar3 != '\0') {\n              if ((-1 < cVar3) && ((cVar3 < ' ' || (cVar3 == '\x7f')))) {\n                FUN_0013629a(piVar9);\n                iVar15 = 3;\n                goto LAB_00137c65;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            }\n            bVar17 = param_3 != 0 & DAT_00177606;\n            if (bVar17 == 0) {\n              bVar17 = 1;\n            }\n            else {\n              lVar12 = FUN_0013eaa4(param_3);\n              if (lVar12 != 0) {\n                free(*(void **)(piVar9 + 4));\n                *(long *)(piVar9 + 4) = lVar12;\n              }\n            }\n          }" ({ "{") (expression_statement "FUN_00135c58(pcVar14);" (call_expression "FUN_00135c58(pcVar14)" (identifier "FUN_00135c58") (argument_list "(pcVar14)" (( "(") (identifier "pcVar14") () ")"))) (; ";")) (expression_statement "pcVar14 = *(char **)(piVar9 + 4);" (assignment_expression "pcVar14 = *(char **)(piVar9 + 4)" (identifier "pcVar14") (= "=") (pointer_expression "*(char **)(piVar9 + 4)" (* "*") (cast_expression "(char **)(piVar9 + 4)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(piVar9 + 4)" (( "(") (binary_expression "piVar9 + 4" (identifier "piVar9") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "cVar3 = *pcVar14;" (assignment_expression "cVar3 = *pcVar14" (identifier "cVar3") (= "=") (pointer_expression "*pcVar14" (* "*") (identifier "pcVar14"))) (; ";")) (while_statement "while (cVar3 != '\0') {\n              if ((-1 < cVar3) && ((cVar3 < ' ' || (cVar3 == '\x7f')))) {\n                FUN_0013629a(piVar9);\n                iVar15 = 3;\n                goto LAB_00137c65;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            }" (while "while") (parenthesized_expression "(cVar3 != '\0')" (( "(") (binary_expression "cVar3 != '\0'" (identifier "cVar3") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n              if ((-1 < cVar3) && ((cVar3 < ' ' || (cVar3 == '\x7f')))) {\n                FUN_0013629a(piVar9);\n                iVar15 = 3;\n                goto LAB_00137c65;\n              }\n              pcVar14 = pcVar14 + 1;\n              cVar3 = *pcVar14;\n            }" ({ "{") (if_statement "if ((-1 < cVar3) && ((cVar3 < ' ' || (cVar3 == '\x7f')))) {\n                FUN_0013629a(piVar9);\n                iVar15 = 3;\n                goto LAB_00137c65;\n              }" (if "if") (parenthesized_expression "((-1 < cVar3) && ((cVar3 < ' ' || (cVar3 == '\x7f'))))" (( "(") (binary_expression "(-1 < cVar3) && ((cVar3 < ' ' || (cVar3 == '\x7f')))" (parenthesized_expression "(-1 < cVar3)" (( "(") (binary_expression "-1 < cVar3" (number_literal "-1") (< "<") (identifier "cVar3")) () ")")) (&& "&&") (parenthesized_expression "((cVar3 < ' ' || (cVar3 == '\x7f')))" (( "(") (parenthesized_expression "(cVar3 < ' ' || (cVar3 == '\x7f'))" (( "(") (binary_expression "cVar3 < ' ' || (cVar3 == '\x7f')" (binary_expression "cVar3 < ' '" (identifier "cVar3") (< "<") (char_literal "' '" (' "'") (character " ") (' "'"))) (|| "||") (parenthesized_expression "(cVar3 == '\x7f')" (( "(") (binary_expression "cVar3 == '\x7f'" (identifier "cVar3") (== "==") (char_literal "'\x7f'" (' "'") (escape_sequence "\x7f") (' "'"))) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n                FUN_0013629a(piVar9);\n                iVar15 = 3;\n                goto LAB_00137c65;\n              }" ({ "{") (expression_statement "FUN_0013629a(piVar9);" (call_expression "FUN_0013629a(piVar9)" (identifier "FUN_0013629a") (argument_list "(piVar9)" (( "(") (identifier "piVar9") () ")"))) (; ";")) (expression_statement "iVar15 = 3;" (assignment_expression "iVar15 = 3" (identifier "iVar15") (= "=") (number_literal "3")) (; ";")) (goto_statement "goto LAB_00137c65;" (goto "goto") (statement_identifier "LAB_00137c65") (; ";")) (} "}"))) (expression_statement "pcVar14 = pcVar14 + 1;" (assignment_expression "pcVar14 = pcVar14 + 1" (identifier "pcVar14") (= "=") (binary_expression "pcVar14 + 1" (identifier "pcVar14") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "cVar3 = *pcVar14;" (assignment_expression "cVar3 = *pcVar14" (identifier "cVar3") (= "=") (pointer_expression "*pcVar14" (* "*") (identifier "pcVar14"))) (; ";")) (} "}"))) (expression_statement "bVar17 = param_3 != 0 & DAT_00177606;" (assignment_expression "bVar17 = param_3 != 0 & DAT_00177606" (identifier "bVar17") (= "=") (binary_expression "param_3 != 0 & DAT_00177606" (binary_expression "param_3 != 0" (identifier "param_3") (!= "!=") (number_literal "0")) (& "&") (identifier "DAT_00177606"))) (; ";")) (if_statement "if (bVar17 == 0) {\n              bVar17 = 1;\n            }\n            else {\n              lVar12 = FUN_0013eaa4(param_3);\n              if (lVar12 != 0) {\n                free(*(void **)(piVar9 + 4));\n                *(long *)(piVar9 + 4) = lVar12;\n              }\n            }" (if "if") (parenthesized_expression "(bVar17 == 0)" (( "(") (binary_expression "bVar17 == 0" (identifier "bVar17") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              bVar17 = 1;\n            }" ({ "{") (expression_statement "bVar17 = 1;" (assignment_expression "bVar17 = 1" (identifier "bVar17") (= "=") (number_literal "1")) (; ";")) (} "}")) (else_clause "else {\n              lVar12 = FUN_0013eaa4(param_3);\n              if (lVar12 != 0) {\n                free(*(void **)(piVar9 + 4));\n                *(long *)(piVar9 + 4) = lVar12;\n              }\n            }" (else "else") (compound_statement "{\n              lVar12 = FUN_0013eaa4(param_3);\n              if (lVar12 != 0) {\n                free(*(void **)(piVar9 + 4));\n                *(long *)(piVar9 + 4) = lVar12;\n              }\n            }" ({ "{") (expression_statement "lVar12 = FUN_0013eaa4(param_3);" (assignment_expression "lVar12 = FUN_0013eaa4(param_3)" (identifier "lVar12") (= "=") (call_expression "FUN_0013eaa4(param_3)" (identifier "FUN_0013eaa4") (argument_list "(param_3)" (( "(") (identifier "param_3") () ")")))) (; ";")) (if_statement "if (lVar12 != 0) {\n                free(*(void **)(piVar9 + 4));\n                *(long *)(piVar9 + 4) = lVar12;\n              }" (if "if") (parenthesized_expression "(lVar12 != 0)" (( "(") (binary_expression "lVar12 != 0" (identifier "lVar12") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                free(*(void **)(piVar9 + 4));\n                *(long *)(piVar9 + 4) = lVar12;\n              }" ({ "{") (expression_statement "free(*(void **)(piVar9 + 4));" (call_expression "free(*(void **)(piVar9 + 4))" (identifier "free") (argument_list "(*(void **)(piVar9 + 4))" (( "(") (pointer_expression "*(void **)(piVar9 + 4)" (* "*") (cast_expression "(void **)(piVar9 + 4)" (( "(") (type_descriptor "void **" (primitive_type "void") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(piVar9 + 4)" (( "(") (binary_expression "piVar9 + 4" (identifier "piVar9") (+ "+") (number_literal "4")) () ")")))) () ")"))) (; ";")) (expression_statement "*(long *)(piVar9 + 4) = lVar12;" (assignment_expression "*(long *)(piVar9 + 4) = lVar12" (pointer_expression "*(long *)(piVar9 + 4)" (* "*") (cast_expression "(long *)(piVar9 + 4)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar9 + 4)" (( "(") (binary_expression "piVar9 + 4" (identifier "piVar9") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "lVar12")) (; ";")) (} "}"))) (} "}")))) (} "}"))) (if_statement "if (local_70 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_70,local_60);\n            *(undefined8 *)(piVar9 + 10) = uVar8;\n          }" (if "if") (parenthesized_expression "(local_70 != (char *)0x0)" (( "(") (binary_expression "local_70 != (char *)0x0" (identifier "local_70") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            uVar8 = FUN_0013a40c(local_70,local_60);\n            *(undefined8 *)(piVar9 + 10) = uVar8;\n          }" ({ "{") (expression_statement "uVar8 = FUN_0013a40c(local_70,local_60);" (assignment_expression "uVar8 = FUN_0013a40c(local_70,local_60)" (identifier "uVar8") (= "=") (call_expression "FUN_0013a40c(local_70,local_60)" (identifier "FUN_0013a40c") (argument_list "(local_70,local_60)" (( "(") (identifier "local_70") (, ",") (identifier "local_60") () ")")))) (; ";")) (expression_statement "*(undefined8 *)(piVar9 + 10) = uVar8;" (assignment_expression "*(undefined8 *)(piVar9 + 10) = uVar8" (pointer_expression "*(undefined8 *)(piVar9 + 10)" (* "*") (cast_expression "(undefined8 *)(piVar9 + 10)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar9 + 10)" (( "(") (binary_expression "piVar9 + 10" (identifier "piVar9") (+ "+") (number_literal "10")) () ")")))) (= "=") (identifier "uVar8")) (; ";")) (} "}"))) (if_statement "if (local_b0 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_b0,local_58);\n            *(undefined8 *)(piVar9 + 0xc) = uVar8;\n          }" (if "if") (parenthesized_expression "(local_b0 != (char *)0x0)" (( "(") (binary_expression "local_b0 != (char *)0x0" (identifier "local_b0") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            uVar8 = FUN_0013a40c(local_b0,local_58);\n            *(undefined8 *)(piVar9 + 0xc) = uVar8;\n          }" ({ "{") (expression_statement "uVar8 = FUN_0013a40c(local_b0,local_58);" (assignment_expression "uVar8 = FUN_0013a40c(local_b0,local_58)" (identifier "uVar8") (= "=") (call_expression "FUN_0013a40c(local_b0,local_58)" (identifier "FUN_0013a40c") (argument_list "(local_b0,local_58)" (( "(") (identifier "local_b0") (, ",") (identifier "local_58") () ")")))) (; ";")) (expression_statement "*(undefined8 *)(piVar9 + 0xc) = uVar8;" (assignment_expression "*(undefined8 *)(piVar9 + 0xc) = uVar8" (pointer_expression "*(undefined8 *)(piVar9 + 0xc)" (* "*") (cast_expression "(undefined8 *)(piVar9 + 0xc)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar9 + 0xc)" (( "(") (binary_expression "piVar9 + 0xc" (identifier "piVar9") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (identifier "uVar8")) (; ";")) (} "}"))) (if_statement "if (local_68 != (char *)0x0) {\n            uVar8 = FUN_0013a40c(local_68,local_50);\n            *(undefined8 *)(piVar9 + 0xe) = uVar8;\n          }" (if "if") (parenthesized_expression "(local_68 != (char *)0x0)" (( "(") (binary_expression "local_68 != (char *)0x0" (identifier "local_68") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            uVar8 = FUN_0013a40c(local_68,local_50);\n            *(undefined8 *)(piVar9 + 0xe) = uVar8;\n          }" ({ "{") (expression_statement "uVar8 = FUN_0013a40c(local_68,local_50);" (assignment_expression "uVar8 = FUN_0013a40c(local_68,local_50)" (identifier "uVar8") (= "=") (call_expression "FUN_0013a40c(local_68,local_50)" (identifier "FUN_0013a40c") (argument_list "(local_68,local_50)" (( "(") (identifier "local_68") (, ",") (identifier "local_50") () ")")))) (; ";")) (expression_statement "*(undefined8 *)(piVar9 + 0xe) = uVar8;" (assignment_expression "*(undefined8 *)(piVar9 + 0xe) = uVar8" (pointer_expression "*(undefined8 *)(piVar9 + 0xe)" (* "*") (cast_expression "(undefined8 *)(piVar9 + 0xe)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar9 + 0xe)" (( "(") (binary_expression "piVar9 + 0xe" (identifier "piVar9") (+ "+") (number_literal "0xe")) () ")")))) (= "=") (identifier "uVar8")) (; ";")) (} "}"))) (expression_statement "param_2 = piVar9;" (assignment_expression "param_2 = piVar9" (identifier "param_2") (= "=") (identifier "piVar9")) (; ";")) (if_statement "if ((((DAT_00177606 == 0) && (pcVar5 == pcVar11)) && (*(long *)(piVar9 + 0xe) == 0)) &&\n             ((local_88 != local_80 && (bVar17 == 0)))) {\n            if (local_b8 == param_1) {\n              uVar8 = FUN_001496d9(param_1);\n              *(undefined8 *)piVar9 = uVar8;\n            }\n            else {\n              *(void **)piVar9 = local_b8;\n            }\n          }\n          else {\n            uVar8 = FUN_00137051(piVar9,0);\n            *(undefined8 *)piVar9 = uVar8;\n            if (local_b8 != param_1) {\n              free(local_b8);\n            }\n          }" (if "if") (parenthesized_expression "((((DAT_00177606 == 0) && (pcVar5 == pcVar11)) && (*(long *)(piVar9 + 0xe) == 0)) &&\n             ((local_88 != local_80 && (bVar17 == 0))))" (( "(") (binary_expression "(((DAT_00177606 == 0) && (pcVar5 == pcVar11)) && (*(long *)(piVar9 + 0xe) == 0)) &&\n             ((local_88 != local_80 && (bVar17 == 0)))" (parenthesized_expression "(((DAT_00177606 == 0) && (pcVar5 == pcVar11)) && (*(long *)(piVar9 + 0xe) == 0))" (( "(") (binary_expression "((DAT_00177606 == 0) && (pcVar5 == pcVar11)) && (*(long *)(piVar9 + 0xe) == 0)" (parenthesized_expression "((DAT_00177606 == 0) && (pcVar5 == pcVar11))" (( "(") (binary_expression "(DAT_00177606 == 0) && (pcVar5 == pcVar11)" (parenthesized_expression "(DAT_00177606 == 0)" (( "(") (binary_expression "DAT_00177606 == 0" (identifier "DAT_00177606") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(pcVar5 == pcVar11)" (( "(") (binary_expression "pcVar5 == pcVar11" (identifier "pcVar5") (== "==") (identifier "pcVar11")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(*(long *)(piVar9 + 0xe) == 0)" (( "(") (binary_expression "*(long *)(piVar9 + 0xe) == 0" (pointer_expression "*(long *)(piVar9 + 0xe)" (* "*") (cast_expression "(long *)(piVar9 + 0xe)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar9 + 0xe)" (( "(") (binary_expression "piVar9 + 0xe" (identifier "piVar9") (+ "+") (number_literal "0xe")) () ")")))) (== "==") (number_literal "0")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((local_88 != local_80 && (bVar17 == 0)))" (( "(") (parenthesized_expression "(local_88 != local_80 && (bVar17 == 0))" (( "(") (binary_expression "local_88 != local_80 && (bVar17 == 0)" (binary_expression "local_88 != local_80" (identifier "local_88") (!= "!=") (identifier "local_80")) (&& "&&") (parenthesized_expression "(bVar17 == 0)" (( "(") (binary_expression "bVar17 == 0" (identifier "bVar17") (== "==") (number_literal "0")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n            if (local_b8 == param_1) {\n              uVar8 = FUN_001496d9(param_1);\n              *(undefined8 *)piVar9 = uVar8;\n            }\n            else {\n              *(void **)piVar9 = local_b8;\n            }\n          }" ({ "{") (if_statement "if (local_b8 == param_1) {\n              uVar8 = FUN_001496d9(param_1);\n              *(undefined8 *)piVar9 = uVar8;\n            }\n            else {\n              *(void **)piVar9 = local_b8;\n            }" (if "if") (parenthesized_expression "(local_b8 == param_1)" (( "(") (binary_expression "local_b8 == param_1" (identifier "local_b8") (== "==") (identifier "param_1")) () ")")) (compound_statement "{\n              uVar8 = FUN_001496d9(param_1);\n              *(undefined8 *)piVar9 = uVar8;\n            }" ({ "{") (expression_statement "uVar8 = FUN_001496d9(param_1);" (assignment_expression "uVar8 = FUN_001496d9(param_1)" (identifier "uVar8") (= "=") (call_expression "FUN_001496d9(param_1)" (identifier "FUN_001496d9") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (expression_statement "*(undefined8 *)piVar9 = uVar8;" (assignment_expression "*(undefined8 *)piVar9 = uVar8" (pointer_expression "*(undefined8 *)piVar9" (* "*") (cast_expression "(undefined8 *)piVar9" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "piVar9"))) (= "=") (identifier "uVar8")) (; ";")) (} "}")) (else_clause "else {\n              *(void **)piVar9 = local_b8;\n            }" (else "else") (compound_statement "{\n              *(void **)piVar9 = local_b8;\n            }" ({ "{") (expression_statement "*(void **)piVar9 = local_b8;" (assignment_expression "*(void **)piVar9 = local_b8" (pointer_expression "*(void **)piVar9" (* "*") (cast_expression "(void **)piVar9" (( "(") (type_descriptor "void **" (primitive_type "void") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "piVar9"))) (= "=") (identifier "local_b8")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n            uVar8 = FUN_00137051(piVar9,0);\n            *(undefined8 *)piVar9 = uVar8;\n            if (local_b8 != param_1) {\n              free(local_b8);\n            }\n          }" (else "else") (compound_statement "{\n            uVar8 = FUN_00137051(piVar9,0);\n            *(undefined8 *)piVar9 = uVar8;\n            if (local_b8 != param_1) {\n              free(local_b8);\n            }\n          }" ({ "{") (expression_statement "uVar8 = FUN_00137051(piVar9,0);" (assignment_expression "uVar8 = FUN_00137051(piVar9,0)" (identifier "uVar8") (= "=") (call_expression "FUN_00137051(piVar9,0)" (identifier "FUN_00137051") (argument_list "(piVar9,0)" (( "(") (identifier "piVar9") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "*(undefined8 *)piVar9 = uVar8;" (assignment_expression "*(undefined8 *)piVar9 = uVar8" (pointer_expression "*(undefined8 *)piVar9" (* "*") (cast_expression "(undefined8 *)piVar9" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "piVar9"))) (= "=") (identifier "uVar8")) (; ";")) (if_statement "if (local_b8 != param_1) {\n              free(local_b8);\n            }" (if "if") (parenthesized_expression "(local_b8 != param_1)" (( "(") (binary_expression "local_b8 != param_1" (identifier "local_b8") (!= "!=") (identifier "param_1")) () ")")) (compound_statement "{\n              free(local_b8);\n            }" ({ "{") (expression_statement "free(local_b8);" (call_expression "free(local_b8)" (identifier "free") (argument_list "(local_b8)" (( "(") (identifier "local_b8") () ")"))) (; ";")) (} "}"))) (} "}")))) (goto_statement "goto LAB_00137c95;" (goto "goto") (statement_identifier "LAB_00137c95") (; ";")) (} "}"))) (expression_statement "pcVar14 = pcVar14 + -1;" (assignment_expression "pcVar14 = pcVar14 + -1" (identifier "pcVar14") (= "=") (binary_expression "pcVar14 + -1" (identifier "pcVar14") (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (pcVar14 == pcVar11) {\n          iVar15 = 5;\n        }\n        else {\n          pcVar6 = (char *)memchr(pcVar11,0x3a,(long)pcVar14 - (long)pcVar11);\n          if (pcVar11 != pcVar6) {\n            pcVar5 = pcVar6;\n            if (pcVar6 != (char *)0x0) {\n              pcVar5 = (char *)FUN_0013a40c(pcVar6 + 1,pcVar14);\n              FUN_00135c58(pcVar5);\n              pcVar14 = pcVar6;\n            }\n            uVar8 = FUN_0013a40c(pcVar11,pcVar14);\n            FUN_00135c58(uVar8);\n            goto LAB_001379c6;\n          }\n          iVar15 = 5;\n        }" (if "if") (parenthesized_expression "(pcVar14 == pcVar11)" (( "(") (binary_expression "pcVar14 == pcVar11" (identifier "pcVar14") (== "==") (identifier "pcVar11")) () ")")) (compound_statement "{\n          iVar15 = 5;\n        }" ({ "{") (expression_statement "iVar15 = 5;" (assignment_expression "iVar15 = 5" (identifier "iVar15") (= "=") (number_literal "5")) (; ";")) (} "}")) (else_clause "else {\n          pcVar6 = (char *)memchr(pcVar11,0x3a,(long)pcVar14 - (long)pcVar11);\n          if (pcVar11 != pcVar6) {\n            pcVar5 = pcVar6;\n            if (pcVar6 != (char *)0x0) {\n              pcVar5 = (char *)FUN_0013a40c(pcVar6 + 1,pcVar14);\n              FUN_00135c58(pcVar5);\n              pcVar14 = pcVar6;\n            }\n            uVar8 = FUN_0013a40c(pcVar11,pcVar14);\n            FUN_00135c58(uVar8);\n            goto LAB_001379c6;\n          }\n          iVar15 = 5;\n        }" (else "else") (compound_statement "{\n          pcVar6 = (char *)memchr(pcVar11,0x3a,(long)pcVar14 - (long)pcVar11);\n          if (pcVar11 != pcVar6) {\n            pcVar5 = pcVar6;\n            if (pcVar6 != (char *)0x0) {\n              pcVar5 = (char *)FUN_0013a40c(pcVar6 + 1,pcVar14);\n              FUN_00135c58(pcVar5);\n              pcVar14 = pcVar6;\n            }\n            uVar8 = FUN_0013a40c(pcVar11,pcVar14);\n            FUN_00135c58(uVar8);\n            goto LAB_001379c6;\n          }\n          iVar15 = 5;\n        }" ({ "{") (expression_statement "pcVar6 = (char *)memchr(pcVar11,0x3a,(long)pcVar14 - (long)pcVar11);" (assignment_expression "pcVar6 = (char *)memchr(pcVar11,0x3a,(long)pcVar14 - (long)pcVar11)" (identifier "pcVar6") (= "=") (cast_expression "(char *)memchr(pcVar11,0x3a,(long)pcVar14 - (long)pcVar11)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "memchr(pcVar11,0x3a,(long)pcVar14 - (long)pcVar11)" (identifier "memchr") (argument_list "(pcVar11,0x3a,(long)pcVar14 - (long)pcVar11)" (( "(") (identifier "pcVar11") (, ",") (number_literal "0x3a") (, ",") (binary_expression "(long)pcVar14 - (long)pcVar11" (cast_expression "(long)pcVar14" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pcVar14")) (- "-") (cast_expression "(long)pcVar11" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pcVar11"))) () ")"))))) (; ";")) (if_statement "if (pcVar11 != pcVar6) {\n            pcVar5 = pcVar6;\n            if (pcVar6 != (char *)0x0) {\n              pcVar5 = (char *)FUN_0013a40c(pcVar6 + 1,pcVar14);\n              FUN_00135c58(pcVar5);\n              pcVar14 = pcVar6;\n            }\n            uVar8 = FUN_0013a40c(pcVar11,pcVar14);\n            FUN_00135c58(uVar8);\n            goto LAB_001379c6;\n          }" (if "if") (parenthesized_expression "(pcVar11 != pcVar6)" (( "(") (binary_expression "pcVar11 != pcVar6" (identifier "pcVar11") (!= "!=") (identifier "pcVar6")) () ")")) (compound_statement "{\n            pcVar5 = pcVar6;\n            if (pcVar6 != (char *)0x0) {\n              pcVar5 = (char *)FUN_0013a40c(pcVar6 + 1,pcVar14);\n              FUN_00135c58(pcVar5);\n              pcVar14 = pcVar6;\n            }\n            uVar8 = FUN_0013a40c(pcVar11,pcVar14);\n            FUN_00135c58(uVar8);\n            goto LAB_001379c6;\n          }" ({ "{") (expression_statement "pcVar5 = pcVar6;" (assignment_expression "pcVar5 = pcVar6" (identifier "pcVar5") (= "=") (identifier "pcVar6")) (; ";")) (if_statement "if (pcVar6 != (char *)0x0) {\n              pcVar5 = (char *)FUN_0013a40c(pcVar6 + 1,pcVar14);\n              FUN_00135c58(pcVar5);\n              pcVar14 = pcVar6;\n            }" (if "if") (parenthesized_expression "(pcVar6 != (char *)0x0)" (( "(") (binary_expression "pcVar6 != (char *)0x0" (identifier "pcVar6") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              pcVar5 = (char *)FUN_0013a40c(pcVar6 + 1,pcVar14);\n              FUN_00135c58(pcVar5);\n              pcVar14 = pcVar6;\n            }" ({ "{") (expression_statement "pcVar5 = (char *)FUN_0013a40c(pcVar6 + 1,pcVar14);" (assignment_expression "pcVar5 = (char *)FUN_0013a40c(pcVar6 + 1,pcVar14)" (identifier "pcVar5") (= "=") (cast_expression "(char *)FUN_0013a40c(pcVar6 + 1,pcVar14)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0013a40c(pcVar6 + 1,pcVar14)" (identifier "FUN_0013a40c") (argument_list "(pcVar6 + 1,pcVar14)" (( "(") (binary_expression "pcVar6 + 1" (identifier "pcVar6") (+ "+") (number_literal "1")) (, ",") (identifier "pcVar14") () ")"))))) (; ";")) (expression_statement "FUN_00135c58(pcVar5);" (call_expression "FUN_00135c58(pcVar5)" (identifier "FUN_00135c58") (argument_list "(pcVar5)" (( "(") (identifier "pcVar5") () ")"))) (; ";")) (expression_statement "pcVar14 = pcVar6;" (assignment_expression "pcVar14 = pcVar6" (identifier "pcVar14") (= "=") (identifier "pcVar6")) (; ";")) (} "}"))) (expression_statement "uVar8 = FUN_0013a40c(pcVar11,pcVar14);" (assignment_expression "uVar8 = FUN_0013a40c(pcVar11,pcVar14)" (identifier "uVar8") (= "=") (call_expression "FUN_0013a40c(pcVar11,pcVar14)" (identifier "FUN_0013a40c") (argument_list "(pcVar11,pcVar14)" (( "(") (identifier "pcVar11") (, ",") (identifier "pcVar14") () ")")))) (; ";")) (expression_statement "FUN_00135c58(uVar8);" (call_expression "FUN_00135c58(uVar8)" (identifier "FUN_00135c58") (argument_list "(uVar8)" (( "(") (identifier "uVar8") () ")"))) (; ";")) (goto_statement "goto LAB_001379c6;" (goto "goto") (statement_identifier "LAB_001379c6") (; ";")) (} "}"))) (expression_statement "iVar15 = 5;" (assignment_expression "iVar15 = 5" (identifier "iVar15") (= "=") (number_literal "5")) (; ";")) (} "}")))) (} "}"))))) (} "}")))) (labeled_statement "LAB_00137c65:\n    if ((local_b8 != (void *)0x0) && (local_b8 != param_1)) {\n      free(local_b8);\n    }" (statement_identifier "LAB_00137c65") (: ":") (if_statement "if ((local_b8 != (void *)0x0) && (local_b8 != param_1)) {\n      free(local_b8);\n    }" (if "if") (parenthesized_expression "((local_b8 != (void *)0x0) && (local_b8 != param_1))" (( "(") (binary_expression "(local_b8 != (void *)0x0) && (local_b8 != param_1)" (parenthesized_expression "(local_b8 != (void *)0x0)" (( "(") (binary_expression "local_b8 != (void *)0x0" (identifier "local_b8") (!= "!=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(local_b8 != param_1)" (( "(") (binary_expression "local_b8 != param_1" (identifier "local_b8") (!= "!=") (identifier "param_1")) () ")"))) () ")")) (compound_statement "{\n      free(local_b8);\n    }" ({ "{") (expression_statement "free(local_b8);" (call_expression "free(local_b8)" (identifier "free") (argument_list "(local_b8)" (( "(") (identifier "local_b8") () ")"))) (; ";")) (} "}")))) (} "}")))) (if_statement "if (param_2 != (int *)0x0) {\n    *param_2 = iVar15;\n    param_2 = (int *)0x0;\n  }" (if "if") (parenthesized_expression "(param_2 != (int *)0x0)" (( "(") (binary_expression "param_2 != (int *)0x0" (identifier "param_2") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    *param_2 = iVar15;\n    param_2 = (int *)0x0;\n  }" ({ "{") (expression_statement "*param_2 = iVar15;" (assignment_expression "*param_2 = iVar15" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (identifier "iVar15")) (; ";")) (expression_statement "param_2 = (int *)0x0;" (assignment_expression "param_2 = (int *)0x0" (identifier "param_2") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}"))) (labeled_statement "LAB_00137c95:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return param_2;\n  }" (statement_identifier "LAB_00137c95") (: ":") (if_statement "if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return param_2;\n  }" (if "if") (parenthesized_expression "(local_40 == *(long *)(in_FS_OFFSET + 0x28))" (( "(") (binary_expression "local_40 == *(long *)(in_FS_OFFSET + 0x28)" (identifier "local_40") (== "==") (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" (* "*") (cast_expression "(long *)(in_FS_OFFSET + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_FS_OFFSET + 0x28)" (( "(") (binary_expression "in_FS_OFFSET + 0x28" (identifier "in_FS_OFFSET") (+ "+") (number_literal "0x28")) () ")"))))) () ")")) (compound_statement "{\n    return param_2;\n  }" ({ "{") (return_statement "return param_2;" (return "return") (identifier "param_2") (; ";")) (} "}")))) (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" (identifier "__stack_chk_fail") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))

/* WARNING: Enum "anon_enum_32": Some values do not have unique names */

type_1 * function_1(char *type_1,int *var_45,type_2 *type_2,type_3 percent_encode)

{
  char var_31;
  type_4 var_26;
  type_3 _Var3;
  char var_13;
  type_5 var_2;
  char *var_15;
  char *var_22;
  char *var_21;
  char *var_12;
  type_1 *url_00;
  type_6 var_11;
  char *var_17;
  int iVar11;
  type_7 var_36;
  char *var_24;
  long var_1;
  char *var_10;
  char *var_39;
  char *var_23;
  char *var_19;
  char *var_27;
  char *var_41;
  char *var_42;
  type_4 var_25;
  char *var_38;
  char *var_40;
  char *local_60;
  char *local_58;
  char *var_28;
  char *var_9;
  long var_46;
  
  var_36 = 0;
  var_46 = *(long *)(var_1 + 0x28);
  var_2 = type_5(type_1);
  if (var_2 == var_3) {
    _Var3 = var_4(type_1);
    iVar11 = !_Var3 + 1;
  }
  else {
    if ((type_2 == (type_2 *)0x0) || (type_2->utf8_encode == false)) {
LAB_001374b5:
      var_10 = type_1;
      if (percent_encode) {
        var_10 = var_5(type_1);
      }
    }
    else {
      var_9 = (char *)0x0;
      var_12 = type_2->orig_url;
      if (type_2->orig_url == (char *)0x0) {
        var_12 = type_1;
      }
      _Var3 = var_6(type_2,var_12,&var_9);
      type_2->utf8_encode = _Var3;
      if (!_Var3) goto LAB_001374b5;
      var_7(type_2->orig_url);
      type_2->orig_url = (char *)0x0;
      var_12 = var_8(type_1);
      type_2->orig_url = var_12;
      var_10 = var_5(var_9);
      if (var_9 != var_10) {
        var_7(var_9);
      }
    }
    var_11 = 0xffffffffffffffff;
    var_12 = supported_schemes[var_2].leading_string;
    do {
      if (var_11 == 0) break;
      var_11 = var_11 - 1;
      var_13 = *var_12;
      var_12 = var_12 + (type_6)var_36 * -2 + 1;
    } while (var_13 != '\0');
    var_12 = var_10 + (~var_11 - 1);
    var_15 = var_14(var_12,"@/?#;");
    var_17 = var_12;
    if ((var_15 != (char *)0x0) && (var_17 = var_15 + 1, *var_15 != '@')) {
      var_17 = var_12;
    }
    var_15 = var_16(var_2);
    if (*var_17 == '[') {
      var_23 = var_17 + 1;
      var_19 = var_18(var_23,0x5d);
      if (var_19 == (char *)0x0) {
        iVar11 = 6;
      }
      else {
        _Var3 = var_20(var_23,var_19);
        if (_Var3) {
          var_22 = var_19 + 1;
          var_21 = var_18(var_15,(int)var_19[1]);
          if (var_21 != (char *)0x0) goto LAB_00137554;
          iVar11 = 3;
        }
        else {
          iVar11 = 8;
        }
      }
    }
    else {
      var_22 = var_14(var_17,var_15);
      var_23 = var_17;
      var_19 = var_22;
      if (var_22 == (char *)0x0) {
        var_11 = 0xffffffffffffffff;
        var_22 = var_17;
        do {
          if (var_11 == 0) break;
          var_11 = var_11 - 1;
          var_13 = *var_22;
          var_22 = var_22 + (type_6)var_36 * -2 + 1;
        } while (var_13 != '\0');
        var_22 = var_17 + (~var_11 - 1);
        var_19 = var_22;
      }
LAB_00137554:
      if (var_23 == var_19) {
        iVar11 = 3;
      }
      else {
        var_25 = supported_schemes[var_2].default_port;
        var_21 = var_22;
        if (*var_22 == ':') {
          var_24 = var_22 + 1;
          var_21 = var_14(var_24,var_15 + 1);
          if (var_21 == (char *)0x0) {
            var_11 = 0xffffffffffffffff;
            var_21 = var_24;
            do {
              if (var_11 == 0) break;
              var_11 = var_11 - 1;
              var_13 = *var_21;
              var_21 = var_21 + (type_6)var_36 * -2 + 1;
            } while (var_13 != '\0');
            var_21 = var_22 + ~var_11;
          }
          if (var_24 != var_21) {
            if (var_24 < var_21) {
              var_25 = (int)var_22[1] - 0x30;
              if (var_25 < 10) {
                do {
                  var_24 = var_24 + 1;
                  if (var_24 == var_21) goto LAB_00137584;
                  if (9 < (int)*var_24 - 0x30U) {
                    iVar11 = 4;
                    goto LAB_00137c65;
                  }
                  var_25 = *var_24 + -0x30 + var_25 * 10;
                } while ((int)var_25 < 0x10000);
                iVar11 = 4;
              }
              else {
                iVar11 = 4;
              }
              goto LAB_00137c65;
            }
            var_25 = 0;
          }
        }
LAB_00137584:
        var_42 = (char *)0x0;
        var_41 = (char *)0x0;
        var_22 = var_21;
        if (*var_21 == '/') {
          var_41 = var_21 + 1;
          var_22 = var_14(var_41,var_15 + 2);
          var_42 = var_22;
          if (var_22 == (char *)0x0) {
            var_11 = 0xffffffffffffffff;
            var_22 = var_41;
            do {
              if (var_11 == 0) break;
              var_11 = var_11 - 1;
              var_13 = *var_22;
              var_22 = var_22 + (type_6)var_36 * -2 + 1;
            } while (var_13 != '\0');
            var_22 = var_21 + ~var_11;
            var_42 = var_22;
          }
        }
        var_27 = var_15 + 3;
        var_26 = supported_schemes[var_2].flags;
        if ((var_26 & 2) == 0) {
          local_60 = (char *)0x0;
          var_38 = (char *)0x0;
        }
        else {
          local_60 = (char *)0x0;
          var_38 = (char *)0x0;
          var_21 = var_22;
          if (*var_22 == ';') {
            var_38 = var_22 + 1;
            var_21 = var_14(var_38,var_27);
            local_60 = var_21;
            if (var_21 == (char *)0x0) {
              var_11 = 0xffffffffffffffff;
              var_21 = var_38;
              do {
                if (var_11 == 0) break;
                var_11 = var_11 - 1;
                var_13 = *var_21;
                var_21 = var_21 + (type_6)var_36 * -2 + 1;
              } while (var_13 != '\0');
              var_21 = var_22 + ~var_11;
              local_60 = var_21;
            }
          }
          var_27 = var_15 + 4;
          var_22 = var_21;
        }
        if ((var_26 & 4) == 0) {
          local_58 = (char *)0x0;
          var_39 = (char *)0x0;
        }
        else {
          local_58 = (char *)0x0;
          var_39 = (char *)0x0;
          var_15 = var_22;
          if (*var_22 == '?') {
            var_39 = var_22 + 1;
            var_15 = var_14(var_39,var_27);
            local_58 = var_15;
            if (var_15 == (char *)0x0) {
              var_11 = 0xffffffffffffffff;
              var_15 = var_39;
              do {
                if (var_11 == 0) break;
                var_11 = var_11 - 1;
                var_13 = *var_15;
                var_15 = var_15 + (type_6)var_36 * -2 + 1;
              } while (var_13 != '\0');
              var_15 = var_22 + ~var_11;
              local_58 = var_15;
            }
          }
          var_27 = var_27 + 1;
          var_22 = var_15;
        }
        if ((var_26 & 8) == 0) {
          var_28 = (char *)0x0;
          var_40 = (char *)0x0;
        }
        else {
          var_28 = (char *)0x0;
          var_40 = (char *)0x0;
          if (*var_22 == '#') {
            var_40 = var_22 + 1;
            var_28 = var_14(var_40,var_27);
            if (var_28 == (char *)0x0) {
              var_11 = 0xffffffffffffffff;
              var_15 = var_40;
              do {
                if (var_11 == 0) break;
                var_11 = var_11 - 1;
                var_13 = *var_15;
                var_15 = var_15 + (type_6)var_36 * -2 + 1;
              } while (var_13 != '\0');
              var_28 = var_22 + ~var_11;
            }
          }
        }
        if (var_12 == var_17) {
          var_15 = (char *)0x0;
          var_12 = (char *)0x0;
LAB_001379c6:
          url_00 = (type_1 *)var_29(1,0x60);
          url_00->var_2 = var_2;
          var_17 = var_30(var_23,var_19);
          url_00->host = var_17;
          url_00->port = var_25;
          url_00->user = var_12;
          url_00->passwd = var_15;
          var_12 = var_30(var_41,var_42);
          url_00->path = var_12;
          var_11 = 0xffffffffffffffff;
          var_17 = var_12;
          do {
            if (var_11 == 0) break;
            var_11 = var_11 - 1;
            var_13 = *var_17;
            var_17 = var_17 + (type_6)var_36 * -2 + 1;
          } while (var_13 != '\0');
          var_17 = var_12 + (~var_11 - 1);
          var_15 = var_12;
          if (var_12 < var_17) {
            var_21 = var_12;
            var_22 = var_12;
            do {
              var_13 = *var_12;
              if (var_13 == '.') {
                var_31 = var_12[1];
                if ((var_31 == '/') || (var_31 == '\0')) {
                  var_12 = var_12 + 2;
                }
                else {
                  if ((var_31 != '.') || ((var_12[2] != '/' && (var_12[2] != '\0'))))
                  goto LAB_00137e1d;
                  if (var_22 < var_21) {
                    var_15 = var_21 + -1;
                    if (var_22 < var_15) {
                      var_13 = var_21[-2];
                      var_21 = var_15;
                      while ((var_15 = var_21, var_13 != '/' &&
                             (var_15 = var_21 + -1, var_22 != var_15))) {
                        var_13 = var_21[-2];
                        var_21 = var_15;
                      }
                    }
                  }
                  else {
                    var_15 = var_21;
                    if (var_2 - var_32 < 2) {
                      var_22 = var_21 + 3;
                      goto LAB_00137e1d;
                    }
                  }
                  var_12 = var_12 + 3;
                  var_21 = var_15;
                }
              }
              else {
LAB_00137e1d:
                if (var_21 == var_12) {
                  var_15 = var_21;
                  if (var_17 <= var_21) break;
                  var_13 = *var_21;
                  while (var_13 != '/') {
                    var_15 = var_15 + 1;
                    var_21 = var_17;
                    if (var_17 == var_15) goto LAB_00137d7b;
                    var_13 = *var_15;
                  }
                  var_12 = var_15 + 1;
                  var_21 = var_15 + 1;
                }
                else {
                  var_15 = var_12;
                  if (var_17 <= var_12) break;
                  while (var_13 != '/') {
                    var_12 = var_12 + 1;
                    var_15 = var_21 + 1;
                    *var_21 = var_13;
                    var_21 = var_15;
                    var_15 = var_17;
                    if (var_17 == var_12) goto LAB_00137d7b;
                    var_13 = *var_12;
                  }
                  *var_21 = *var_12;
                  var_12 = var_12 + 1;
                  var_21 = var_21 + 1;
                }
              }
              var_15 = var_12;
            } while (var_12 < var_17);
LAB_00137d7b:
            var_12 = var_21;
            if (var_15 != var_21) {
              *var_21 = '\0';
            }
          }
          var_17 = url_00->path;
          var_22 = var_33(var_17,0x2f);
          if (var_22 == (char *)0x0) {
            var_22 = var_8("");
            url_00->dir = var_22;
            var_17 = var_8(var_17);
            url_00->file = var_17;
          }
          else {
            var_17 = var_30(var_17,var_22);
            url_00->dir = var_17;
            var_17 = var_8(var_22 + 1);
            url_00->file = var_17;
          }
          var_34(url_00->dir);
          var_34(url_00->file);
          var_17 = url_00->host;
          var_13 = *var_17;
          if (var_13 == '\0') {
            var_36 = 0;
          }
          else {
            var_36 = 0;
            do {
              if ((int)var_13 - 0x41U < 0x1a) {
                *var_17 = var_13 + ' ';
                var_36 = 1;
              }
              var_17 = var_17 + 1;
              var_13 = *var_17;
            } while (var_13 != '\0');
          }
          var_17 = url_00->host;
          var_22 = var_18(var_17,0x25);
          if (var_22 != (char *)0x0) {
            var_34(var_17);
            var_17 = url_00->host;
            var_13 = *var_17;
            var_22 = var_17;
            while (var_13 != '\0') {
              if ((-1 < var_13) && ((var_13 < ' ' || (var_13 == '\x7f')))) {
                var_35(url_00);
                iVar11 = 3;
                goto LAB_00137c65;
              }
              var_22 = var_22 + 1;
              var_13 = *var_22;
            }
            var_36 = type_2 != (type_2 *)0x0 & opt.enable_iri;
            if (var_36 == 0) {
              var_36 = 1;
            }
            else {
              var_17 = var_37(type_2,var_17);
              if (var_17 != (char *)0x0) {
                var_7(url_00->host);
                url_00->host = var_17;
              }
            }
          }
          if (var_38 != (char *)0x0) {
            var_17 = var_30(var_38,local_60);
            url_00->params = var_17;
          }
          if (var_39 != (char *)0x0) {
            var_17 = var_30(var_39,local_58);
            url_00->query = var_17;
          }
          if (var_40 != (char *)0x0) {
            var_17 = var_30(var_40,var_28);
            url_00->fragment = var_17;
          }
          var_45 = (int *)url_00;
          if ((((opt.enable_iri == false) && (var_15 == var_12)) &&
              (url_00->fragment == (char *)0x0)) && ((var_41 != var_42 && (var_36 == 0)))) {
            if (var_10 == type_1) {
              var_12 = var_8(type_1);
              url_00->type_1 = var_12;
            }
            else {
              url_00->type_1 = var_10;
            }
          }
          else {
            var_12 = var_43(url_00,URL_AUTH_SHOW);
            url_00->type_1 = var_12;
            if (var_10 != type_1) {
              var_7(var_10);
            }
          }
          goto LAB_00137c95;
        }
        var_17 = var_17 + -1;
        if (var_17 == var_12) {
          iVar11 = 5;
        }
        else {
          var_22 = (char *)var_44(var_12,0x3a,(long)var_17 - (long)var_12);
          if (var_12 != var_22) {
            var_15 = var_22;
            if (var_22 != (char *)0x0) {
              var_15 = var_30(var_22 + 1,var_17);
              var_34(var_15);
              var_17 = var_22;
            }
            var_12 = var_30(var_12,var_17);
            var_34(var_12);
            goto LAB_001379c6;
          }
          iVar11 = 5;
        }
      }
    }
LAB_00137c65:
    if ((var_10 != (char *)0x0) && (var_10 != type_1)) {
      var_7(var_10);
    }
  }
  if (var_45 != (int *)0x0) {
    *var_45 = iVar11;
    var_45 = (int *)0x0;
  }
LAB_00137c95:
  if (var_46 == *(long *)(var_1 + 0x28)) {
    return (type_1 *)var_45;
  }
                    /* WARNING: Subroutine does not return */
  var_47();
}


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

int * MASKED(void *param_1,int *param_2,long param_3,char param_4)

{
  char cVar1;
  uint uVar2;
  char cVar3;
  uint uVar4;
  char *pcVar5;
  char *pcVar6;
  char *pcVar7;
  undefined8 uVar8;
  int *piVar9;
  undefined8 uVar10;
  char *pcVar11;
  long lVar12;
  ulong uVar13;
  char *pcVar14;
  int iVar15;
  void *pvVar16;
  byte bVar17;
  char *__s;
  long in_FS_OFFSET;
  void *local_b8;
  char *local_b0;
  char *local_a8;
  char *local_a0;
  char *local_90;
  char *local_88;
  char *local_80;
  uint local_74;
  char *local_70;
  char *local_68;
  char *local_60;
  char *local_58;
  char *local_50;
  void *local_48;
  long local_40;
  
  bVar17 = 0;
  local_40 = *(long *)(in_FS_OFFSET + 0x28);
  uVar4 = FUN_00135f73();
  if (uVar4 == 4) {
    cVar3 = FUN_00136004(param_1);
    iVar15 = (cVar3 == '\0') + 1;
  }
  else {
    if ((param_3 == 0) || (*(char *)(param_3 + 0x18) == '\0')) {
LAB_001374b5:
      local_b8 = param_1;
      if (param_4 != '\0') {
        local_b8 = (void *)FUN_00135ae4(param_1);
      }
    }
    else {
      local_48 = (void *)0x0;
      pvVar16 = *(void **)(param_3 + 0x10);
      if (*(void **)(param_3 + 0x10) == (void *)0x0) {
        pvVar16 = param_1;
      }
      cVar3 = FUN_0013e9b4(param_3,pvVar16,&local_48);
      *(char *)(param_3 + 0x18) = cVar3;
      if (cVar3 == '\0') goto LAB_001374b5;
      free(*(void **)(param_3 + 0x10));
      *(undefined8 *)(param_3 + 0x10) = 0;
      uVar8 = FUN_001496d9(param_1);
      *(undefined8 *)(param_3 + 0x10) = uVar8;
      local_b8 = (void *)FUN_00135ae4(local_48);
      if (local_48 != local_b8) {
        free(local_48);
      }
    }
    uVar13 = 0xffffffffffffffff;
    pcVar11 = (&PTR_s_http____0016e348)[(ulong)uVar4 * 3];
    do {
      if (uVar13 == 0) break;
      uVar13 = uVar13 - 1;
      cVar3 = *pcVar11;
      pcVar11 = pcVar11 + (ulong)bVar17 * -2 + 1;
    } while (cVar3 != '\0');
    pcVar11 = (char *)((long)local_b8 + (~uVar13 - 1));
    pcVar5 = strpbrk(pcVar11,"@/?#;");
    pcVar14 = pcVar11;
    if ((pcVar5 != (char *)0x0) && (pcVar14 = pcVar5 + 1, *pcVar5 != '@')) {
      pcVar14 = pcVar11;
    }
    pcVar5 = (char *)FUN_00135653(uVar4);
    if (*pcVar14 == '[') {
      local_a8 = pcVar14 + 1;
      local_a0 = strchr(local_a8,0x5d);
      if (local_a0 == (char *)0x0) {
        iVar15 = 6;
      }
      else {
        cVar3 = FUN_0011c7c7(local_a8,local_a0);
        if (cVar3 == '\0') {
          iVar15 = 8;
        }
        else {
          pcVar6 = local_a0 + 1;
          pcVar7 = strchr(pcVar5,(int)local_a0[1]);
          if (pcVar7 != (char *)0x0) goto LAB_00137554;
          iVar15 = 3;
        }
      }
    }
    else {
      pcVar6 = strpbrk(pcVar14,pcVar5);
      local_a8 = pcVar14;
      local_a0 = pcVar6;
      if (pcVar6 == (char *)0x0) {
        uVar13 = 0xffffffffffffffff;
        pcVar6 = pcVar14;
        do {
          if (uVar13 == 0) break;
          uVar13 = uVar13 - 1;
          cVar3 = *pcVar6;
          pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;
        } while (cVar3 != '\0');
        pcVar6 = pcVar14 + (~uVar13 - 1);
        local_a0 = pcVar6;
      }
LAB_00137554:
      if (local_a8 == local_a0) {
        iVar15 = 3;
      }
      else {
        local_74 = *(uint *)(&DAT_0016e350 + (ulong)uVar4 * 0x18);
        pcVar7 = pcVar6;
        if (*pcVar6 == ':') {
          __s = pcVar6 + 1;
          pcVar7 = strpbrk(__s,pcVar5 + 1);
          if (pcVar7 == (char *)0x0) {
            uVar13 = 0xffffffffffffffff;
            pcVar7 = __s;
            do {
              if (uVar13 == 0) break;
              uVar13 = uVar13 - 1;
              cVar3 = *pcVar7;
              pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;
            } while (cVar3 != '\0');
            pcVar7 = pcVar6 + ~uVar13;
          }
          if (__s != pcVar7) {
            if (__s < pcVar7) {
              local_74 = (int)pcVar6[1] - 0x30;
              if (local_74 < 10) {
                do {
                  __s = __s + 1;
                  if (__s == pcVar7) goto LAB_00137584;
                  if (9 < (int)*__s - 0x30U) {
                    iVar15 = 4;
                    goto LAB_00137c65;
                  }
                  local_74 = *__s + -0x30 + local_74 * 10;
                } while ((int)local_74 < 0x10000);
                iVar15 = 4;
              }
              else {
                iVar15 = 4;
              }
              goto LAB_00137c65;
            }
            local_74 = 0;
          }
        }
LAB_00137584:
        local_80 = (char *)0x0;
        local_88 = (char *)0x0;
        pcVar6 = pcVar7;
        if (*pcVar7 == '/') {
          local_88 = pcVar7 + 1;
          pcVar6 = strpbrk(local_88,pcVar5 + 2);
          local_80 = pcVar6;
          if (pcVar6 == (char *)0x0) {
            uVar13 = 0xffffffffffffffff;
            pcVar6 = local_88;
            do {
              if (uVar13 == 0) break;
              uVar13 = uVar13 - 1;
              cVar3 = *pcVar6;
              pcVar6 = pcVar6 + (ulong)bVar17 * -2 + 1;
            } while (cVar3 != '\0');
            pcVar6 = pcVar7 + ~uVar13;
            local_80 = pcVar6;
          }
        }
        local_90 = pcVar5 + 3;
        uVar2 = (&DAT_0016e354)[(ulong)uVar4 * 6];
        if ((uVar2 & 2) == 0) {
          local_60 = (char *)0x0;
          local_70 = (char *)0x0;
        }
        else {
          local_60 = (char *)0x0;
          local_70 = (char *)0x0;
          pcVar7 = pcVar6;
          if (*pcVar6 == ';') {
            local_70 = pcVar6 + 1;
            pcVar7 = strpbrk(local_70,local_90);
            local_60 = pcVar7;
            if (pcVar7 == (char *)0x0) {
              uVar13 = 0xffffffffffffffff;
              pcVar7 = local_70;
              do {
                if (uVar13 == 0) break;
                uVar13 = uVar13 - 1;
                cVar3 = *pcVar7;
                pcVar7 = pcVar7 + (ulong)bVar17 * -2 + 1;
              } while (cVar3 != '\0');
              pcVar7 = pcVar6 + ~uVar13;
              local_60 = pcVar7;
            }
          }
          local_90 = pcVar5 + 4;
          pcVar6 = pcVar7;
        }
        if ((uVar2 & 4) == 0) {
          local_58 = (char *)0x0;
          local_b0 = (char *)0x0;
        }
        else {
          local_58 = (char *)0x0;
          local_b0 = (char *)0x0;
          pcVar5 = pcVar6;
          if (*pcVar6 == '?') {
            local_b0 = pcVar6 + 1;
            pcVar5 = strpbrk(local_b0,local_90);
            local_58 = pcVar5;
            if (pcVar5 == (char *)0x0) {
              uVar13 = 0xffffffffffffffff;
              pcVar5 = local_b0;
              do {
                if (uVar13 == 0) break;
                uVar13 = uVar13 - 1;
                cVar3 = *pcVar5;
                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;
              } while (cVar3 != '\0');
              pcVar5 = pcVar6 + ~uVar13;
              local_58 = pcVar5;
            }
          }
          local_90 = local_90 + 1;
          pcVar6 = pcVar5;
        }
        if ((uVar2 & 8) == 0) {
          local_50 = (char *)0x0;
          local_68 = (char *)0x0;
        }
        else {
          local_50 = (char *)0x0;
          local_68 = (char *)0x0;
          if (*pcVar6 == '#') {
            local_68 = pcVar6 + 1;
            local_50 = strpbrk(local_68,local_90);
            if (local_50 == (char *)0x0) {
              uVar13 = 0xffffffffffffffff;
              pcVar5 = local_68;
              do {
                if (uVar13 == 0) break;
                uVar13 = uVar13 - 1;
                cVar3 = *pcVar5;
                pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;
              } while (cVar3 != '\0');
              local_50 = pcVar6 + ~uVar13;
            }
          }
        }
        if (pcVar11 == pcVar14) {
          pcVar5 = (char *)0x0;
          uVar8 = 0;
LAB_001379c6:
          piVar9 = (int *)FUN_0014967c(1,0x60);
          piVar9[2] = uVar4;
          uVar10 = FUN_0013a40c(local_a8,local_a0);
          *(undefined8 *)(piVar9 + 4) = uVar10;
          piVar9[6] = local_74;
          *(undefined8 *)(piVar9 + 0x14) = uVar8;
          *(char **)(piVar9 + 0x16) = pcVar5;
          pcVar11 = (char *)FUN_0013a40c(local_88,local_80);
          *(char **)(piVar9 + 8) = pcVar11;
          uVar13 = 0xffffffffffffffff;
          pcVar14 = pcVar11;
          do {
            if (uVar13 == 0) break;
            uVar13 = uVar13 - 1;
            cVar3 = *pcVar14;
            pcVar14 = pcVar14 + (ulong)bVar17 * -2 + 1;
          } while (cVar3 != '\0');
          pcVar14 = pcVar11 + (~uVar13 - 1);
          pcVar5 = pcVar11;
          if (pcVar11 < pcVar14) {
            pcVar7 = pcVar11;
            pcVar6 = pcVar11;
            do {
              cVar3 = *pcVar11;
              if (cVar3 == '.') {
                cVar1 = pcVar11[1];
                if ((cVar1 == '/') || (cVar1 == '\0')) {
                  pcVar11 = pcVar11 + 2;
                }
                else {
                  if ((cVar1 != '.') || ((pcVar11[2] != '/' && (pcVar11[2] != '\0'))))
                  goto LAB_00137e1d;
                  if (pcVar6 < pcVar7) {
                    pcVar5 = pcVar7 + -1;
                    if (pcVar6 < pcVar5) {
                      cVar3 = pcVar7[-2];
                      pcVar7 = pcVar5;
                      while ((pcVar5 = pcVar7, cVar3 != '/' &&
                             (pcVar5 = pcVar7 + -1, pcVar6 != pcVar5))) {
                        cVar3 = pcVar7[-2];
                        pcVar7 = pcVar5;
                      }
                    }
                  }
                  else {
                    pcVar5 = pcVar7;
                    if (uVar4 - 2 < 2) {
                      pcVar6 = pcVar7 + 3;
                      goto LAB_00137e1d;
                    }
                  }
                  pcVar11 = pcVar11 + 3;
                  pcVar7 = pcVar5;
                }
              }
              else {
LAB_00137e1d:
                if (pcVar7 == pcVar11) {
                  pcVar5 = pcVar7;
                  if (pcVar14 <= pcVar7) break;
                  cVar3 = *pcVar7;
                  while (cVar3 != '/') {
                    pcVar5 = pcVar5 + 1;
                    pcVar7 = pcVar14;
                    if (pcVar14 == pcVar5) goto LAB_00137d7b;
                    cVar3 = *pcVar5;
                  }
                  pcVar11 = pcVar5 + 1;
                  pcVar7 = pcVar5 + 1;
                }
                else {
                  pcVar5 = pcVar11;
                  if (pcVar14 <= pcVar11) break;
                  while (cVar3 != '/') {
                    pcVar11 = pcVar11 + 1;
                    pcVar5 = pcVar7 + 1;
                    *pcVar7 = cVar3;
                    pcVar7 = pcVar5;
                    pcVar5 = pcVar14;
                    if (pcVar14 == pcVar11) goto LAB_00137d7b;
                    cVar3 = *pcVar11;
                  }
                  *pcVar7 = *pcVar11;
                  pcVar11 = pcVar11 + 1;
                  pcVar7 = pcVar7 + 1;
                }
              }
              pcVar5 = pcVar11;
            } while (pcVar11 < pcVar14);
LAB_00137d7b:
            pcVar11 = pcVar7;
            if (pcVar5 != pcVar7) {
              *pcVar7 = '\0';
            }
          }
          pcVar14 = *(char **)(piVar9 + 8);
          pcVar6 = strrchr(pcVar14,0x2f);
          if (pcVar6 == (char *)0x0) {
            uVar8 = FUN_001496d9(&DAT_0015ea35);
            *(undefined8 *)(piVar9 + 0x10) = uVar8;
            uVar8 = FUN_001496d9(pcVar14);
            *(undefined8 *)(piVar9 + 0x12) = uVar8;
          }
          else {
            uVar8 = FUN_0013a40c(pcVar14,pcVar6);
            *(undefined8 *)(piVar9 + 0x10) = uVar8;
            uVar8 = FUN_001496d9(pcVar6 + 1);
            *(undefined8 *)(piVar9 + 0x12) = uVar8;
          }
          FUN_00135c58(*(undefined8 *)(piVar9 + 0x10));
          FUN_00135c58(*(undefined8 *)(piVar9 + 0x12));
          pcVar14 = *(char **)(piVar9 + 4);
          cVar3 = *pcVar14;
          if (cVar3 == '\0') {
            bVar17 = 0;
          }
          else {
            bVar17 = 0;
            do {
              if ((int)cVar3 - 0x41U < 0x1a) {
                *pcVar14 = cVar3 + ' ';
                bVar17 = 1;
              }
              pcVar14 = pcVar14 + 1;
              cVar3 = *pcVar14;
            } while (cVar3 != '\0');
          }
          pcVar14 = *(char **)(piVar9 + 4);
          pcVar6 = strchr(pcVar14,0x25);
          if (pcVar6 != (char *)0x0) {
            FUN_00135c58(pcVar14);
            pcVar14 = *(char **)(piVar9 + 4);
            cVar3 = *pcVar14;
            while (cVar3 != '\0') {
              if ((-1 < cVar3) && ((cVar3 < ' ' || (cVar3 == '\x7f')))) {
                FUN_0013629a(piVar9);
                iVar15 = 3;
                goto LAB_00137c65;
              }
              pcVar14 = pcVar14 + 1;
              cVar3 = *pcVar14;
            }
            bVar17 = param_3 != 0 & DAT_00177606;
            if (bVar17 == 0) {
              bVar17 = 1;
            }
            else {
              lVar12 = FUN_0013eaa4(param_3);
              if (lVar12 != 0) {
                free(*(void **)(piVar9 + 4));
                *(long *)(piVar9 + 4) = lVar12;
              }
            }
          }
          if (local_70 != (char *)0x0) {
            uVar8 = FUN_0013a40c(local_70,local_60);
            *(undefined8 *)(piVar9 + 10) = uVar8;
          }
          if (local_b0 != (char *)0x0) {
            uVar8 = FUN_0013a40c(local_b0,local_58);
            *(undefined8 *)(piVar9 + 0xc) = uVar8;
          }
          if (local_68 != (char *)0x0) {
            uVar8 = FUN_0013a40c(local_68,local_50);
            *(undefined8 *)(piVar9 + 0xe) = uVar8;
          }
          param_2 = piVar9;
          if ((((DAT_00177606 == 0) && (pcVar5 == pcVar11)) && (*(long *)(piVar9 + 0xe) == 0)) &&
             ((local_88 != local_80 && (bVar17 == 0)))) {
            if (local_b8 == param_1) {
              uVar8 = FUN_001496d9(param_1);
              *(undefined8 *)piVar9 = uVar8;
            }
            else {
              *(void **)piVar9 = local_b8;
            }
          }
          else {
            uVar8 = FUN_00137051(piVar9,0);
            *(undefined8 *)piVar9 = uVar8;
            if (local_b8 != param_1) {
              free(local_b8);
            }
          }
          goto LAB_00137c95;
        }
        pcVar14 = pcVar14 + -1;
        if (pcVar14 == pcVar11) {
          iVar15 = 5;
        }
        else {
          pcVar6 = (char *)memchr(pcVar11,0x3a,(long)pcVar14 - (long)pcVar11);
          if (pcVar11 != pcVar6) {
            pcVar5 = pcVar6;
            if (pcVar6 != (char *)0x0) {
              pcVar5 = (char *)FUN_0013a40c(pcVar6 + 1,pcVar14);
              FUN_00135c58(pcVar5);
              pcVar14 = pcVar6;
            }
            uVar8 = FUN_0013a40c(pcVar11,pcVar14);
            FUN_00135c58(uVar8);
            goto LAB_001379c6;
          }
          iVar15 = 5;
        }
      }
    }
LAB_00137c65:
    if ((local_b8 != (void *)0x0) && (local_b8 != param_1)) {
      free(local_b8);
    }
  }
  if (param_2 != (int *)0x0) {
    *param_2 = iVar15;
    param_2 = (int *)0x0;
  }
LAB_00137c95:
  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {
    return param_2;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail();
}

